diff options
-rw-r--r-- | hnodeb/HNB_Tests.ttcn | 20 | ||||
-rw-r--r-- | library/HNBLLIF_Templates.ttcn | 34 | ||||
-rw-r--r-- | library/HNBLLIF_Types.ttcn | 17 |
3 files changed, 36 insertions, 35 deletions
diff --git a/hnodeb/HNB_Tests.ttcn b/hnodeb/HNB_Tests.ttcn index ca42e5c2..c801ee61 100644 --- a/hnodeb/HNB_Tests.ttcn +++ b/hnodeb/HNB_Tests.ttcn @@ -296,6 +296,7 @@ private function f_tc_cs_mo_call(charstring id) runs on HNBGW_ConnHdlr { var HostName hnodeb_rtp_addr; var PortNumber hnodeb_rtp_port; timer Tu; + var uint32_t audio_conn_id; f_handle_hnbap_hnb_register_req(); @@ -317,8 +318,9 @@ private function f_tc_cs_mo_call(charstring id) runs on HNBGW_ConnHdlr { /* Now LLSK provides the remote TransportLayerAddress from RabAssReq and asks SUT to provide a local address: */ LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_ESTABLISH_REQ(context_id, g_pars.hnbgw_rtp_port, HNBLL_IF_ADDR_TYPE_IPV4, f_HNBLLIF_Addr(HNBLL_IF_ADDR_TYPE_IPV4, g_pars.hnbgw_addr)))); - LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(context_id, 0, ?, HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd; + LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(context_id, ?, 0, ?, HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd; + audio_conn_id := sd.data.u.audio.u.conn_establish.u.cnf.audio_conn_id; hnodeb_rtp_addr := f_inet_ntoa(sd.data.u.audio.u.conn_establish.u.cnf.local_addr); if (not match(g_pars.hnodeb_addr, hnodeb_rtp_addr)) { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "hnodeb RTP local address doesn't match expectations"); @@ -328,7 +330,7 @@ private function f_tc_cs_mo_call(charstring id) runs on HNBGW_ConnHdlr { f_HNBGW_rtpem_activate(rtp_payload, hnodeb_rtp_addr, hnodeb_rtp_port); /* Make sure that Uplink frames are received at the HNBGW */ RTPEM_DATA.clear; - LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_DATA_REQ(context_id, rtp_payload))); + LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_DATA_REQ(audio_conn_id, rtp_payload))); Tu.start(2.0); alt { [] RTPEM_DATA.receive(PDU_RTP:?) -> value rtp_pdu { @@ -344,11 +346,11 @@ private function f_tc_cs_mo_call(charstring id) runs on HNBGW_ConnHdlr { } Tu.stop; /* We should also have received some RTP from the HNBGW: */ - LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_DATA_IND(context_id, rtp_payload))); + LLSK.receive(f_llsk_rx(tr_HNBLLIF_AUDIO_CONN_DATA_IND(audio_conn_id, rtp_payload))); f_rtpem_mode(RTPEM_CTRL, RTPEM_MODE_NONE); - LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(context_id))); + LLSK.send(f_llsk_tx(ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(audio_conn_id))); /* UE sends Iu Release Complete to release the conn */ LLSK.send(f_llsk_tx(ts_HNBLLIF_IUH_CONN_RELEASE_REQ(context_id, 0, 0, 0, hex2oct(iu_release_compl)))); @@ -371,6 +373,7 @@ private function f_tc_ps_mo_gtp_ping_pong(charstring id) runs on HNBGW_ConnHdlr var uint32_t local_tei; var octetstring gtp_payload := f_rnd_octstring(40); var HNBLLIF_send_data sd; + var uint32_t gtp_conn_id; f_gtp_register_teid(int2oct(remote_tei, 4)); @@ -394,18 +397,19 @@ private function f_tc_ps_mo_gtp_ping_pong(charstring id) runs on HNBGW_ConnHdlr /* Now LLSK provides the remote TransportLayerAddress from RabAssReq and asks SUT to provide a local address: */ LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_ESTABLISH_REQ(context_id, remote_tei, HNBLL_IF_ADDR_TYPE_IPV4, f_HNBLLIF_Addr(HNBLL_IF_ADDR_TYPE_IPV4, g_pars.hnbgw_addr)))); - LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(context_id, ?, 0, + LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(context_id, ?, ?, 0, HNBLL_IF_ADDR_TYPE_IPV4, ?))) -> value sd; + gtp_conn_id := sd.data.u.gtp.u.conn_establish.u.cnf.gtp_conn_id; local_tei := sd.data.u.gtp.u.conn_establish.u.cnf.local_tei; /* Forward GTP data in both directions */ - LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_DATA_REQ(context_id, remote_tei, gtp_payload))); + LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_DATA_REQ(gtp_conn_id, gtp_payload))); GTP.receive(tr_GTPU_GPDU(ts_GtpPeerU(g_pars.hnodeb_addr), int2oct(remote_tei, 4), gtp_payload)); f_gtpu_send(local_tei, gtp_payload); - LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_DATA_IND(context_id, local_tei, gtp_payload))); + LLSK.receive(f_llsk_rx(tr_HNBLLIF_GTP_CONN_DATA_IND(gtp_conn_id, gtp_payload))); /* Done, release GTP conn */ - LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_RELEASE_REQ(context_id, remote_tei))); + LLSK.send(f_llsk_tx(ts_HNBLLIF_GTP_CONN_RELEASE_REQ(gtp_conn_id))); /* UE sends Iu Release Complete to release the conn */ LLSK.send(f_llsk_tx(ts_HNBLLIF_IUH_CONN_RELEASE_REQ(context_id, 1, 0, 0, hex2oct(iu_release_compl)))); diff --git a/library/HNBLLIF_Templates.ttcn b/library/HNBLLIF_Templates.ttcn index 78cf89a4..fc82a725 100644 --- a/library/HNBLLIF_Templates.ttcn +++ b/library/HNBLLIF_Templates.ttcn @@ -279,6 +279,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_ESTABLISH_REQ(template (v } template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?, + template (present) uint32_t audio_conn_id := ?, template (present) uint8_t error_code := ?, template (present) uint16_t local_rtp_port:= ?, template (present) HNBLLIF_AddrType local_rtp_address_type := ?, @@ -293,6 +294,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(template u := { cnf := { context_id := context_id, + audio_conn_id := audio_conn_id, local_rtp_port := local_rtp_port, error_code := error_code, local_rtp_address_type := local_rtp_address_type, @@ -305,7 +307,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_ESTABLISH_CNF(template } } -template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (value) uint32_t context_id) := { +template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (value) uint32_t audio_conn_id) := { sapi := HNBLL_IF_SAPI_AUDIO, u := { audio := { @@ -315,7 +317,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (val op := HNBLL_IF_OP_REQUEST, u := { req := { - context_id := context_id + audio_conn_id := audio_conn_id } } } @@ -324,7 +326,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_RELEASE_REQ(template (val } } -template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (present) uint32_t context_id := ?, +template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (present) uint32_t audio_conn_id := ?, template (present) octetstring data := ?) := { sapi := HNBLL_IF_SAPI_AUDIO, u := { @@ -335,7 +337,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (pres op := HNBLL_IF_OP_INDICATION, u := { ind := { - context_id := context_id, + audio_conn_id := audio_conn_id, data_len := ?, data := data } @@ -346,7 +348,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_AUDIO_CONN_DATA_IND(template (pres } } -template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_DATA_REQ(template (value) uint32_t context_id, +template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_DATA_REQ(template (value) uint32_t audio_conn_id, template (value) octetstring data) := { sapi := HNBLL_IF_SAPI_AUDIO, u := { @@ -357,7 +359,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_AUDIO_CONN_DATA_REQ(template (value) op := HNBLL_IF_OP_REQUEST, u := { req := { - context_id := context_id, + audio_conn_id := audio_conn_id, data_len := lengthof(data), data := data } @@ -399,6 +401,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_ESTABLISH_REQ(template (val } template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(template (present) uint32_t context_id := ?, + template (present) uint32_t gtp_conn_id := ?, template (present) uint32_t local_tei := ?, template (present) uint8_t error_code := ?, template (present) HNBLLIF_AddrType local_gtpu_address_type := ?, @@ -413,6 +416,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(template (p u := { cnf := { context_id := context_id, + gtp_conn_id := gtp_conn_id, local_tei := local_tei, error_code := error_code, local_gtpu_address_type := local_gtpu_address_type, @@ -425,8 +429,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_ESTABLISH_CNF(template (p } } -template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value) uint32_t context_id, - template (value) uint32_t remote_tei) := { +template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value) uint32_t gtp_conn_id) := { sapi := HNBLL_IF_SAPI_GTP, u := { gtp := { @@ -436,8 +439,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value op := HNBLL_IF_OP_REQUEST, u := { req := { - context_id := context_id, - remote_tei := remote_tei + gtp_conn_id := gtp_conn_id } } } @@ -446,8 +448,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_RELEASE_REQ(template (value } } -template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (present) uint32_t context_id := ?, - template (present) uint32_t local_tei := ?, +template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (present) uint32_t gtp_conn_id, template (present) octetstring data := ?) := { sapi := HNBLL_IF_SAPI_GTP, u := { @@ -458,8 +459,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (presen op := HNBLL_IF_OP_INDICATION, u := { ind := { - context_id := context_id, - local_tei := local_tei, + gtp_conn_id := gtp_conn_id, data_len := ?, data := data } @@ -470,8 +470,7 @@ template (present) HNBLLIF_Message tr_HNBLLIF_GTP_CONN_DATA_IND(template (presen } } -template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_DATA_REQ(template (value) uint32_t context_id, - template (value) uint32_t remote_tei, +template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_DATA_REQ(template (value) uint32_t gtp_conn_id, template (value) octetstring data) := { sapi := HNBLL_IF_SAPI_GTP, u := { @@ -482,8 +481,7 @@ template (value) HNBLLIF_Message ts_HNBLLIF_GTP_CONN_DATA_REQ(template (value) u op := HNBLL_IF_OP_REQUEST, u := { req := { - context_id := context_id, - remote_tei := remote_tei, + gtp_conn_id := gtp_conn_id, data_len := lengthof(data), data := data } diff --git a/library/HNBLLIF_Types.ttcn b/library/HNBLLIF_Types.ttcn index 95f91fc6..a3a6c4c8 100644 --- a/library/HNBLLIF_Types.ttcn +++ b/library/HNBLLIF_Types.ttcn @@ -252,6 +252,7 @@ type record HNBLLIF_AUDIO_conn_establish_req { type record HNBLLIF_AUDIO_conn_establish_cnf { uint32_t context_id, + uint32_t audio_conn_id, uint16_t local_rtp_port, uint8_t error_code, HNBLLIF_AddrType local_rtp_address_type, @@ -273,7 +274,7 @@ type record HNBLLIF_AUDIO_PrimOp_conn_establish { /* CONN_RELEASE */ type record HNBLLIF_AUDIO_conn_release_req { - uint32_t context_id + uint32_t audio_conn_id } with { variant "" }; @@ -290,13 +291,13 @@ type record HNBLLIF_AUDIO_PrimOp_conn_release { /* CONN_DATA */ type record HNBLLIF_AUDIO_conn_data_ind { - uint32_t context_id, + uint32_t audio_conn_id, uint32_t data_len, octetstring data /* RANAP message */ } with { variant (data_len) "LENGTHTO (data)" }; type record HNBLLIF_AUDIO_conn_data_req { - uint32_t context_id, + uint32_t audio_conn_id, uint32_t data_len, octetstring data /* RANAP message */ } with { variant (data_len) "LENGTHTO (data)" }; @@ -350,6 +351,7 @@ type record HNBLLIF_GTP_conn_establish_req { type record HNBLLIF_GTP_conn_establish_cnf { uint32_t context_id, + uint32_t gtp_conn_id, uint32_t local_tei, uint8_t error_code, HNBLLIF_AddrType local_gtpu_address_type, @@ -371,8 +373,7 @@ type record HNBLLIF_GTP_PrimOp_conn_establish { /* CONN_RELEASE */ type record HNBLLIF_GTP_conn_release_req { - uint32_t context_id, - uint32_t remote_tei + uint32_t gtp_conn_id } with { variant "" }; type union HNBLLIF_GTP_PrimOpUnion_conn_release { @@ -388,15 +389,13 @@ type record HNBLLIF_GTP_PrimOp_conn_release { /* CONN_DATA */ type record HNBLLIF_GTP_conn_data_req { - uint32_t context_id, - uint32_t remote_tei, + uint32_t gtp_conn_id, uint32_t data_len, octetstring data /* RANAP message */ } with { variant (data_len) "LENGTHTO (data)" }; type record HNBLLIF_GTP_conn_data_ind { - uint32_t context_id, - uint32_t local_tei, + uint32_t gtp_conn_id, uint32_t data_len, octetstring data /* RANAP message */ } with { variant (data_len) "LENGTHTO (data)" }; |