<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26571">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">hnodeb: Adapt HNBLIF to latest changes<br><br>Change-Id: I50a1b9be579ace9f0f85c6c68b5648d504f5f51c<br>---<br>M hnodeb/HNB_Tests.ttcn<br>M library/HNBLLIF_Templates.ttcn<br>M library/HNBLLIF_Types.ttcn<br>3 files changed, 36 insertions(+), 35 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/26571/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/hnodeb/HNB_Tests.ttcn b/hnodeb/HNB_Tests.ttcn</span><br><span>index ca42e5c..c801ee6 100644</span><br><span>--- a/hnodeb/HNB_Tests.ttcn</span><br><span>+++ b/hnodeb/HNB_Tests.ttcn</span><br><span>@@ -296,6 +296,7 @@</span><br><span> var HostName hnodeb_rtp_addr;</span><br><span> var PortNumber hnodeb_rtp_port;</span><br><span> timer Tu;</span><br><span style="color: hsl(120, 100%, 40%);">+ var uint32_t audio_conn_id;</span><br><span> </span><br><span> f_handle_hnbap_hnb_register_req();</span><br><span> </span><br><span>@@ -317,8 +318,9 @@</span><br><span> /* Now LLSK provides the remote TransportLayerAddress from RabAssReq and asks SUT to provide a local address: */</span><br><span> LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_ESTABLISH_REQ(context_id, g_pars.hnbgw_rtp_port, HNBLL_IF_ADDR_TYPE_IPV4,</span><br><span> f_HNBLLIF_Addr(HNBLL_IF_ADDR_TYPE_IPV4, g_pars.hnbgw_addr))));</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(context_id, 0, ?, HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd;</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(context_id, ?, 0, ?, HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ audio_conn_id := sd.data.u.audio.u.conn_establish.u.cnf.audio_conn_id;</span><br><span> hnodeb_rtp_addr := f_inet_ntoa(sd.data.u.audio.u.conn_establish.u.cnf.local_addr);</span><br><span> if (not match(g_pars.hnodeb_addr, hnodeb_rtp_addr)) {</span><br><span> Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "hnodeb RTP local address doesn't match expectations");</span><br><span>@@ -328,7 +330,7 @@</span><br><span> f_HNBGW_rtpem_activate(rtp_payload, hnodeb_rtp_addr, hnodeb_rtp_port);</span><br><span> /* Make sure that Uplink frames are received at the HNBGW */</span><br><span> RTPEM_DATA.clear;</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_DATA_REQ(context_id, rtp_payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_DATA_REQ(audio_conn_id, rtp_payload)));</span><br><span> Tu.start(2.0);</span><br><span> alt {</span><br><span> [] RTPEM_DATA.receive(PDU_RTP:?) -> value rtp_pdu {</span><br><span>@@ -344,11 +346,11 @@</span><br><span> }</span><br><span> Tu.stop;</span><br><span> /* We should also have received some RTP from the HNBGW: */</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_DATA_IND(context_id, rtp_payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_DATA_IND(audio_conn_id, rtp_payload)));</span><br><span> </span><br><span> f_rtpem_mode(RTPEM_CTRL, RTPEM_MODE_NONE);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(context_id)));</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(audio_conn_id)));</span><br><span> </span><br><span> /* UE sends Iu Release Complete to release the conn */</span><br><span> LLSK.send(f_llsk_tx(ts_HNBLLIF_IUH_CONN_RELEASE_REQ(context_id, 0, 0, 0, hex2oct(iu_release_compl))));</span><br><span>@@ -371,6 +373,7 @@</span><br><span> var uint32_t local_tei;</span><br><span> var octetstring gtp_payload := f_rnd_octstring(40);</span><br><span> var HNBLLIF_send_data sd;</span><br><span style="color: hsl(120, 100%, 40%);">+ var uint32_t gtp_conn_id;</span><br><span> </span><br><span> f_gtp_register_teid(int2oct(remote_tei, 4));</span><br><span> </span><br><span>@@ -394,18 +397,19 @@</span><br><span> /* Now LLSK provides the remote TransportLayerAddress from RabAssReq and asks SUT to provide a local address: */</span><br><span> LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_ESTABLISH_REQ(context_id, remote_tei, HNBLL_IF_ADDR_TYPE_IPV4,</span><br><span> f_HNBLLIF_Addr(HNBLL_IF_ADDR_TYPE_IPV4, g_pars.hnbgw_addr))));</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(context_id, ?, 0,</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(context_id, ?, ?, 0,</span><br><span> HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd;</span><br><span style="color: hsl(120, 100%, 40%);">+ gtp_conn_id := sd.data.u.gtp.u.conn_establish.u.cnf.gtp_conn_id;</span><br><span> local_tei := sd.data.u.gtp.u.conn_establish.u.cnf.local_tei;</span><br><span> </span><br><span> /* Forward GTP data in both directions */</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_DATA_REQ(context_id, remote_tei, gtp_payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_DATA_REQ(gtp_conn_id, gtp_payload)));</span><br><span> GTP.receive(tr_GTPU_GPDU(ts_GtpPeerU(g_pars.hnodeb_addr), int2oct(remote_tei, 4), gtp_payload));</span><br><span> f_gtpu_send(local_tei, gtp_payload);</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_DATA_IND(context_id, local_tei, gtp_payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_DATA_IND(gtp_conn_id, gtp_payload)));</span><br><span> </span><br><span> /* Done, release GTP conn */</span><br><span style="color: hsl(0, 100%, 40%);">- LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_RELEASE_REQ(context_id, remote_tei)));</span><br><span style="color: hsl(120, 100%, 40%);">+ LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_RELEASE_REQ(gtp_conn_id)));</span><br><span> </span><br><span> /* UE sends Iu Release Complete to release the conn */</span><br><span> LLSK.send(f_llsk_tx(ts_HNBLLIF_IUH_CONN_RELEASE_REQ(context_id, 1, 0, 0, hex2oct(iu_release_compl))));</span><br><span>diff --git a/library/HNBLLIF_Templates.ttcn b/library/HNBLLIF_Templates.ttcn</span><br><span>index 78cf89a..fc82a72 100644</span><br><span>--- a/library/HNBLLIF_Templates.ttcn</span><br><span>+++ b/library/HNBLLIF_Templates.ttcn</span><br><span>@@ -279,6 +279,7 @@</span><br><span> }</span><br><span> </span><br><span> template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) uint32_t audio_conn_id := ?,</span><br><span> template (present) uint8_t error_code := ?,</span><br><span> template (present) uint16_t local_rtp_port:= ?,</span><br><span> template (present) HNBLLIF_AddrType local_rtp_address_type := ?,</span><br><span>@@ -293,6 +294,7 @@</span><br><span> u := {</span><br><span> cnf := {</span><br><span> context_id := context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ audio_conn_id := audio_conn_id,</span><br><span> local_rtp_port := local_rtp_port,</span><br><span> error_code := error_code,</span><br><span> local_rtp_address_type := local_rtp_address_type,</span><br><span>@@ -305,7 +307,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (value) uint32_t context_id) := {</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (value) uint32_t audio_conn_id) := {</span><br><span> sapi := HNBLL_IF_SAPI_AUDIO,</span><br><span> u := {</span><br><span> audio := {</span><br><span>@@ -315,7 +317,7 @@</span><br><span> op := HNBLL_IF_OP_REQUEST,</span><br><span> u := {</span><br><span> req := {</span><br><span style="color: hsl(0, 100%, 40%);">- context_id := context_id</span><br><span style="color: hsl(120, 100%, 40%);">+ audio_conn_id := audio_conn_id</span><br><span> }</span><br><span> }</span><br><span> }</span><br><span>@@ -324,7 +326,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (present) uint32_t context_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (present) uint32_t audio_conn_id := ?,</span><br><span> template (present) octetstring data := ?) := {</span><br><span> sapi := HNBLL_IF_SAPI_AUDIO,</span><br><span> u := {</span><br><span>@@ -335,7 +337,7 @@</span><br><span> op := HNBLL_IF_OP_INDICATION,</span><br><span> u := {</span><br><span> ind := {</span><br><span style="color: hsl(0, 100%, 40%);">- context_id := context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ audio_conn_id := audio_conn_id,</span><br><span> data_len := ?,</span><br><span> data := data</span><br><span> }</span><br><span>@@ -346,7 +348,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_DATA_REQ(template (value) uint32_t context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_DATA_REQ(template (value) uint32_t audio_conn_id,</span><br><span> template (value) octetstring data) := {</span><br><span> sapi := HNBLL_IF_SAPI_AUDIO,</span><br><span> u := {</span><br><span>@@ -357,7 +359,7 @@</span><br><span> op := HNBLL_IF_OP_REQUEST,</span><br><span> u := {</span><br><span> req := {</span><br><span style="color: hsl(0, 100%, 40%);">- context_id := context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ audio_conn_id := audio_conn_id,</span><br><span> data_len := lengthof(data),</span><br><span> data := data</span><br><span> }</span><br><span>@@ -399,6 +401,7 @@</span><br><span> }</span><br><span> </span><br><span> template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) uint32_t gtp_conn_id := ?,</span><br><span> template (present) uint32_t local_tei := ?,</span><br><span> template (present) uint8_t error_code := ?,</span><br><span> template (present) HNBLLIF_AddrType local_gtpu_address_type := ?,</span><br><span>@@ -413,6 +416,7 @@</span><br><span> u := {</span><br><span> cnf := {</span><br><span> context_id := context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ gtp_conn_id := gtp_conn_id,</span><br><span> local_tei := local_tei,</span><br><span> error_code := error_code,</span><br><span> local_gtpu_address_type := local_gtpu_address_type,</span><br><span>@@ -425,8 +429,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value) uint32_t context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) uint32_t remote_tei) := {</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value) uint32_t gtp_conn_id) := {</span><br><span> sapi := HNBLL_IF_SAPI_GTP,</span><br><span> u := {</span><br><span> gtp := {</span><br><span>@@ -436,8 +439,7 @@</span><br><span> op := HNBLL_IF_OP_REQUEST,</span><br><span> u := {</span><br><span> req := {</span><br><span style="color: hsl(0, 100%, 40%);">- context_id := context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- remote_tei := remote_tei</span><br><span style="color: hsl(120, 100%, 40%);">+ gtp_conn_id := gtp_conn_id</span><br><span> }</span><br><span> }</span><br><span> }</span><br><span>@@ -446,8 +448,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (present) uint32_t context_id := ?,</span><br><span style="color: hsl(0, 100%, 40%);">- template (present) uint32_t local_tei := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (present) uint32_t gtp_conn_id,</span><br><span> template (present) octetstring data := ?) := {</span><br><span> sapi := HNBLL_IF_SAPI_GTP,</span><br><span> u := {</span><br><span>@@ -458,8 +459,7 @@</span><br><span> op := HNBLL_IF_OP_INDICATION,</span><br><span> u := {</span><br><span> ind := {</span><br><span style="color: hsl(0, 100%, 40%);">- context_id := context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- local_tei := local_tei,</span><br><span style="color: hsl(120, 100%, 40%);">+ gtp_conn_id := gtp_conn_id,</span><br><span> data_len := ?,</span><br><span> data := data</span><br><span> }</span><br><span>@@ -470,8 +470,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_DATA_REQ(template (value) uint32_t context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) uint32_t remote_tei,</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_DATA_REQ(template (value) uint32_t gtp_conn_id,</span><br><span> template (value) octetstring data) := {</span><br><span> sapi := HNBLL_IF_SAPI_GTP,</span><br><span> u := {</span><br><span>@@ -482,8 +481,7 @@</span><br><span> op := HNBLL_IF_OP_REQUEST,</span><br><span> u := {</span><br><span> req := {</span><br><span style="color: hsl(0, 100%, 40%);">- context_id := context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- remote_tei := remote_tei,</span><br><span style="color: hsl(120, 100%, 40%);">+ gtp_conn_id := gtp_conn_id,</span><br><span> data_len := lengthof(data),</span><br><span> data := data</span><br><span> }</span><br><span>diff --git a/library/HNBLLIF_Types.ttcn b/library/HNBLLIF_Types.ttcn</span><br><span>index 95f91fc..a3a6c4c 100644</span><br><span>--- a/library/HNBLLIF_Types.ttcn</span><br><span>+++ b/library/HNBLLIF_Types.ttcn</span><br><span>@@ -252,6 +252,7 @@</span><br><span> </span><br><span> type record HNBLLIF_AUDIO_conn_establish_cnf {</span><br><span> uint32_t context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t audio_conn_id,</span><br><span> uint16_t local_rtp_port,</span><br><span> uint8_t error_code,</span><br><span> HNBLLIF_AddrType local_rtp_address_type,</span><br><span>@@ -273,7 +274,7 @@</span><br><span> </span><br><span> /* CONN_RELEASE */</span><br><span> type record HNBLLIF_AUDIO_conn_release_req {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t context_id</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t audio_conn_id</span><br><span> } with { variant "" };</span><br><span> </span><br><span> </span><br><span>@@ -290,13 +291,13 @@</span><br><span> </span><br><span> /* CONN_DATA */</span><br><span> type record HNBLLIF_AUDIO_conn_data_ind {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t audio_conn_id,</span><br><span> uint32_t data_len,</span><br><span> octetstring data /* RANAP message */</span><br><span> } with { variant (data_len) "LENGTHTO (data)" };</span><br><span> </span><br><span> type record HNBLLIF_AUDIO_conn_data_req {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t audio_conn_id,</span><br><span> uint32_t data_len,</span><br><span> octetstring data /* RANAP message */</span><br><span> } with { variant (data_len) "LENGTHTO (data)" };</span><br><span>@@ -350,6 +351,7 @@</span><br><span> </span><br><span> type record HNBLLIF_GTP_conn_establish_cnf {</span><br><span> uint32_t context_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t gtp_conn_id,</span><br><span> uint32_t local_tei,</span><br><span> uint8_t error_code,</span><br><span> HNBLLIF_AddrType local_gtpu_address_type,</span><br><span>@@ -371,8 +373,7 @@</span><br><span> </span><br><span> /* CONN_RELEASE */</span><br><span> type record HNBLLIF_GTP_conn_release_req {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t remote_tei</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t gtp_conn_id</span><br><span> } with { variant "" };</span><br><span> </span><br><span> type union HNBLLIF_GTP_PrimOpUnion_conn_release {</span><br><span>@@ -388,15 +389,13 @@</span><br><span> </span><br><span> /* CONN_DATA */</span><br><span> type record HNBLLIF_GTP_conn_data_req {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t remote_tei,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t gtp_conn_id,</span><br><span> uint32_t data_len,</span><br><span> octetstring data /* RANAP message */</span><br><span> } with { variant (data_len) "LENGTHTO (data)" };</span><br><span> </span><br><span> type record HNBLLIF_GTP_conn_data_ind {</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t context_id,</span><br><span style="color: hsl(0, 100%, 40%);">- uint32_t local_tei,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint32_t gtp_conn_id,</span><br><span> uint32_t data_len,</span><br><span> octetstring data /* RANAP message */</span><br><span> } with { variant (data_len) "LENGTHTO (data)" };</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26571">change 26571</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26571"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I50a1b9be579ace9f0f85c6c68b5648d504f5f51c </div>
<div style="display:none"> Gerrit-Change-Number: 26571 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>