aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hnodeb/HNB_Tests.ttcn20
-rw-r--r--library/HNBLLIF_Templates.ttcn34
-rw-r--r--library/HNBLLIF_Types.ttcn17
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)" };