pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34883?usp=email )


Change subject: epdg: Include BearerContext in CreateSessionResponse
......................................................................

epdg: Include BearerContext in CreateSessionResponse

Change-Id: I89e364a5be68105ae8811e8bc917f32511f9e6ef
---
M epdg/EPDG_Tests.ttcn
M library/GTPv2_Templates.ttcn
2 files changed, 49 insertions(+), 5 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/83/34883/1

diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn
index 580d4d4..e7c8633 100644
--- a/epdg/EPDG_Tests.ttcn
+++ b/epdg/EPDG_Tests.ttcn
@@ -393,9 +393,12 @@
        var PDU_GTPCv2 rx_msg;
        var template (value) FullyQualifiedTEID fteid_c_ie, fteid_u_ie;
        var template (value) PDN_AddressAllocation paa;
+       var uint4_t bid;
+       var template (value) BearerContextIEs bctx_ies;

        [] GTP2.receive(tr_GTP2C_CreateSessionReq(g_pars.imsi)) -> value rx_msg 
{
                /* TODO: parse TEIC and TEID and store it in 
g_pars.remote_tei{c,d} */
+               bid := 
rx_msg.gtpcv2_pdu.createSessionRequest.bearerContextGrouped[0].bearerContextIEs.ePS_Bearer_ID.ePS_Bearer_ID_Value;

                /* allocate + register TEID-C on local side */
                g_pars.teic := f_gtp2_allocate_teid();
@@ -409,8 +412,11 @@
                fteid_u_ie := ts_GTP2C_FTEID(FTEID_IF_S2bU_ePDG_GTPU, 
g_pars.teid, 2,
                                        f_inet_addr(mp_s2b_local_ip), omit);
                paa := ts_GTP2C_PdnAddrAlloc_v4(f_inet_addr(g_pars.ue_ip));
-
-               GTP2.send(ts_GTP2C_CreateSessionResp({ fteid_c_ie }, paa));
+               bctx_ies := ts_GTP2C_BcContextIE(bid := bid,
+                                                teid_list := { fteid_u_ie },
+                                                qos := 
ts_GTP2C_BearerQos('09'O, 0,0,0,0),
+                                                charging_id := 
ts_GTP2C_ChargingID(g_pars.teic));
+               GTP2.send(ts_GTP2C_CreateSessionResp({ fteid_c_ie }, paa, { 
ts_GTP2C_BcGrouped(bctx_ies) } ));
                setverdict(pass);
        }
        [] GTP2.receive(PDU_GTPCv2:?) -> value rx_msg {
diff --git a/library/GTPv2_Templates.ttcn b/library/GTPv2_Templates.ttcn
index 6bd3ba6..e1e71f0 100644
--- a/library/GTPv2_Templates.ttcn
+++ b/library/GTPv2_Templates.ttcn
@@ -505,6 +505,25 @@
 }

 /* 8.28 */
+template (value) BearerContextIEs
+ts_GTP2C_BcContextIE(template (value) uint4_t bid,
+                  template (omit) FullyQualifiedTEID_List teid_list := omit,
+                  template (omit) Bearer_QoS qos := ts_GTP2C_BearerQos('09'O, 
0,0,0,0),
+                  template (omit) ChargingID charging_id := omit) := {
+       ePS_Bearer_ID                   := ts_GTP2C_EpsBearerId(bid),
+       cause                           := ts_GTP2C_Cause(Request_accepted, 
'0'B),
+       ePS_Bearer_TFT                  := omit,
+       fullyQualifiedTEID              := teid_list,
+       bearerLevel_QoS                 := qos,
+       chargingID                      := charging_id,
+       bearerFlags                     := omit,
+       transactionIdentifier           := omit,
+       protocolConfigOptions           := omit,
+       rAN_NASCause                    := omit,
+       additionalProtocolConfigOptions := omit,
+       extendedProtocolConfigOptions   := omit
+}
+
 template (value) BearerContextGrouped
 ts_GTP2C_BcGrouped(template (value) BearerContextIEs ies) := {
        elementIdentifier := '5D'O,
@@ -522,7 +541,16 @@
        bearerContextIEs := ies
 }

-
+/* 8.29 */
+template (value) ChargingID
+ts_GTP2C_ChargingID(template (value) OCT4 chargingID_Value) := {
+       elementIdentifier := '5D'O,
+       lengthIndicator := 0, /* overwritten */
+       instance := '0000'B,
+       spare := '0000'B,
+       chargingID_Value := chargingID_Value,
+       additionalOctets := omit
+}

 /* 8.30 */
 template (value) ChargingCharacteristics
@@ -811,7 +839,8 @@

 template (value) PDU_GTPCv2
 ts_GTP2C_CreateSessionResp(template (value) FullyQualifiedTEID_List fteids,
-                          template (value) PDN_AddressAllocation addr) :=
+                          template (value) PDN_AddressAllocation addr,
+                          template (omit) BearerContextGrouped_List 
bearerContextGrouped := omit) :=
 ts_PDU_GTP2C('00000000'O, '000000'O, '21'O, {
        createSessionResponse := {
                cause := ts_GTP2C_Cause(Request_accepted, '0'B),
@@ -824,7 +853,7 @@
                ambr := omit,
                linkedEPS_Bearer_ID := omit,
                protocolConfigOptions := omit,
-               bearerContextGrouped := omit,
+               bearerContextGrouped := bearerContextGrouped,
                recovery := omit,
                chargingGatewayName := omit,
                chargingGatewayAddress := omit,

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/34883?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I89e364a5be68105ae8811e8bc917f32511f9e6ef
Gerrit-Change-Number: 34883
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to