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


Change subject: WIP: PDU Session Req
......................................................................

WIP: PDU Session Req

Change-Id: If0769afd07a4bae7778d7a7c347cebaa5909b5f8
---
M 5gc/C5G_Tests.ttcn
M deps/Makefile
M library/NGAP_Functions.ttcn
M library/NG_NAS_Osmo_Templates.ttcn
M library/ngap/NGAP_Templates.ttcn
5 files changed, 273 insertions(+), 6 deletions(-)



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

diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index cd7007b..f997e7b 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -19,6 +19,8 @@
 import from Osmocom_Types all;
 import from GSM_Types all;

+import from DNS_Helpers all;
+
 import from Milenage_Functions all;

 import from NGAP_PDU_Descriptions all;
@@ -62,6 +64,7 @@
        octetstring mp_usim_key := '762a2206fe0b4151ace403c86a11e479'O;
        octetstring mp_usim_opc := '3c6e0b8a9c15224a8228b9a98ca1531d'O;
        uint24_t mp_tac := 1;
+       charstring mp_apn := "internet";
 }

 /* parameters of emulated gNB / ng-eNB */
@@ -383,7 +386,6 @@
                                              ngiaCap := '40'O /* ONLY NIA1 
supported */);

        [] NGAP.receive(cr_NG_SECURITY_MODE_COMMAND(p_UECap := ue_sec_cap)) -> 
value rx_nas {
-               log("Rx inner NAS: ", rx_nas);
                /* Configure integrity protection: */
                cfg := {
                        set_nas_alg_int := NG_NAS_ALG_IP_NIA1
@@ -417,6 +419,66 @@
        }
 }

+private function f_pdu_sess_establish() runs on ConnHdlr {
+       var template (value) NG_NAS_UL_Message_Type nas_ul_msg;
+       var NGAP_PDU rx_ngap;
+       var NG_NAS_DL_Message_Type rx_nas;
+       var NAS_PDU nas_pdu;
+
+       nas_ul_msg := 
cs_NG_PDU_SESSION_ESTABLISHMENT_REQUEST(cs_NG_PDU_SessionIdV('01'O), '01'O,
+                                                             
p_IntegrityProtMaxDataRate := cs_IntegrityProtMaxDataRateV('FF'O, 'FF'O),
+                                                             p_PDU_SessionType 
:= cs_PDU_SessionTypeTV('001'B), /* IPv4 */
+                                                             p_SSC_Mode := 
cs_SSC_ModeTV('001'B));
+       nas_pdu := enc_NG_NAS_UL_Message_Type(valueof(nas_ul_msg));
+       nas_ul_msg := 
cs_NG_UL_NAS_TRANSPORT(cs_PayloadContainerType(tsc_PayloadContainerESMMsg),
+                                            cs_PayloadContainerLV(nas_pdu),
+                                            p_PDU_SessionId := 
cs_NG_PDU_SessionIdTV('01'O),
+                                            p_RequestType := 
cs_NG_Request_TypeTV('001'B),
+                                            p_DNN := 
cs_DNN_TLV(f_enc_dns_hostname(mp_apn)));
+       NGAP.send(nas_ul_msg);
+
+       
NGAP.receive(mw_ngap_initMsg(mw_n2_InitialContextSetupRequest_withPDUSessionList))
 -> value rx_ngap;
+       NGAP.receive(cr_NG_DL_NAS_TRANSPORT) -> value rx_nas;
+       log("PESPIN: Rx DL_NAST_TRANSPORT: ", rx_nas);
+
+       var NG_NAS_DL_Message_Type inner_nas := 
dec_NG_NAS_DL_Message_Type(rx_nas.dl_Nas_Transport.payload.payload);
+       log("PESPIN: Rx inner NAS: ", inner_nas);
+
+       /* TODO: the above is being decoded wrong;
+19:49:40.663833 1901 NGAP_Emulation.ttcn:570 Sent on NGAP_CLIENT to 
TC_ng_register0(4) @NG_NAS_MsgContainers.NG_NAS_DL_Message_Type : {
+    dl_Nas_Transport := {
+        protocolDiscriminator := '01111110'B,
+        spareHalfOctet := '0'H,
+        securityHeaderType := '0000'B,
+        messageType := '01101000'B,
+        spareHalfOctet2 := '0'H,
+        payloadContainerType := {
+            iei := omit,
+            container := '0001'B
+        },
+        payload := {
+            iei := omit,
+            iel := '3500'O,
+            payload := 
'2E0101C211000901000631310101FF010603F42403F4242905010A2D0002220101790006012041010109250908696E7465726E65741201'O
+        },
+        pduSessionId := omit,
+        additionalInfo := omit,
+        gmmCause := omit,
+        backOffTimerValue := omit,
+        lowerBoundTimerValue := omit
+    }
+}
+
+    dl_Nas_Transport := {
+       The last '1201'O in .payload.payload should actually end up decoded in 
pduSessionId!!!! Looks like a bug in TTCN3?
+*/
+
+       /* TODO: we should also decode 
ngap.initiatingMessage.value_.initialContextSetupRequest.protocolIEs[id==id_PDUSessionResourceSetupListCxtReq].value_.pDUSessionResourceSetupListCxtReq.pDUSessionResourceSetupRequestTransfer
 */
+
+       /* TODO: answer with InitialContextSetupResponse */
+       f_sleep(5.0);
+}
+
 private function f_register() runs on ConnHdlr {
        var template (value) NGAP_PDU tx_pdu;
        var template (value) NG_NAS_UL_Message_Type nas_ul_msg;
@@ -454,8 +516,7 @@

        as_ngap_handle_configuration_update();

-       /* TODO: PDU session establishment request */
-       f_sleep(5.0);
+       f_pdu_sess_establish();
 }

 /* NG Setup procedure to 5GC using a Global gNB ID containing unknown/foreign 
PLMN.
diff --git a/deps/Makefile b/deps/Makefile
index 0792c09..37922d4 100644
--- a/deps/Makefile
+++ b/deps/Makefile
@@ -85,7 +85,7 @@
 # Do not put references to branches here, except for local testing: this 
breaks the caching
 # logic of docker containers, which only invalidate their cached ttcn3 
dependencies if this
 # file changed.
-nas_commit=                                    
eff069b772a53e16773638f07599e7936ffcdd9a
+nas_commit=                                    
a51e51b2739d93ed3212a3dd85878627676137ea
 titan.Libraries.TCCUsefulFunctions_commit=     R.35.B-6-gb3687da
 titan.ProtocolEmulations.M3UA_commit=          
b58f92046e48a7b1ed531e243a2319ebca53bf4c
 titan.ProtocolEmulations.SCCP_commit=          
750a3e836831e58eae59d4757ef5d0c759f9ca5d
diff --git a/library/NGAP_Functions.ttcn b/library/NGAP_Functions.ttcn
index 523754e..f6c1389 100644
--- a/library/NGAP_Functions.ttcn
+++ b/library/NGAP_Functions.ttcn
@@ -25,6 +25,9 @@
                case (id_DownlinkNASTransport) {
                        return 
im.value_.downlinkNASTransport.protocolIEs[0].value_.aMF_UE_NGAP_ID;
                        }
+               case (id_InitialContextSetup) {
+                       return 
im.value_.initialContextSetupRequest.protocolIEs[0].value_.aMF_UE_NGAP_ID;
+                       }
                case (id_UEContextRelease) {
                        return 
im.value_.uEContextReleaseCommand.protocolIEs[0].value_.uE_NGAP_IDs.uE_NGAP_ID_pair.aMF_UE_NGAP_ID;
                        }
@@ -65,8 +68,11 @@
                case (id_DownlinkNASTransport) {
                        return 
im.value_.downlinkNASTransport.protocolIEs[1].value_.RAN_UE_NGAP_ID;
                        }
+               case (id_InitialContextSetup) {
+                       return 
im.value_.initialContextSetupRequest.protocolIEs[1].value_.RAN_UE_NGAP_ID;
+                       }
                case (id_UEContextRelease) {
-                       return 
im.value_.uEContextReleaseCommand.protocolIEs[0].value_.uE_NGAP_IDs.uE_NGAP_ID_pair.rAN_UE_NGAP_ID;
+                       return 
im.value_.uEContextReleaseCommand.protocolIEs[1].value_.uE_NGAP_IDs.uE_NGAP_ID_pair.rAN_UE_NGAP_ID;
                        }
                /* TODO */
                }
@@ -126,6 +132,19 @@
                        }
                        return omit;
                }
+               case (id_InitialContextSetup) {
+                       var InitialContextSetupRequest msg := 
im.value_.initialContextSetupRequest;
+                       for (i := 0; i < lengthof(msg.protocolIEs); i := i+1) {
+                               if (msg.protocolIEs[i].id == 
id_PDUSessionResourceSetupListCxtReq) {
+                                       var PDUSessionResourceSetupListCxtReq 
req_li := msg.protocolIEs[i].value_.pDUSessionResourceSetupListCxtReq;
+                                       for (j := 0; j < lengthof(req_li); j := 
j+1) {
+                                               return req_li[j].nAS_PDU;
+                                               /* FIXME: we should be 
returning req_li[j].pDUSessionResourceSetupRequestTransfer too... */
+                                       }
+                               }
+                       }
+                       return omit;
+                       }
                }
        }
        return omit;
diff --git a/library/NG_NAS_Osmo_Templates.ttcn 
b/library/NG_NAS_Osmo_Templates.ttcn
index 9e61249..eaa8eda 100644
--- a/library/NG_NAS_Osmo_Templates.ttcn
+++ b/library/NG_NAS_Osmo_Templates.ttcn
@@ -101,6 +101,75 @@
        resultValue     := p_Result
 };

+/* 24.501 cl. 9.11.3.21 */
+template (value) DNN
+cs_DNN_TLV(template (value) octetstring p_DNN) :=
+{
+       iei              := '25'O,
+       iel              := '00'O, /* overwritten by RAW encoder */
+       dnnValue         := p_DNN
+};
+
+/* 24.501 cl. 9.11.3.39 */
+template (value) PayloadContainer
+cs_PayloadContainerLV(octetstring p_EncodedGSMMsg) :=
+{
+       iei       := omit,
+       iel       := '0000'O, /* overwritten by RAW encoder */
+       payload   := p_EncodedGSMMsg
+};
+
+/* 24.501 cl. 9.11.3.41 */
+template (value) NG_PDU_SessionId
+cs_NG_PDU_SessionIdV(template (value) O1_Type p_Id := '00'O) := // @sic 
R5s190338 sic@
+{
+       iei  := omit,
+       sessionId := p_Id
+};
+template (value) NG_PDU_SessionId
+cs_NG_PDU_SessionIdTV(template (value) O1_Type p_Id := '00'O) := // @sic 
R5s190338 sic@
+{
+       iei  := '12'O,
+       sessionId := p_Id
+};
+
+/* 24.501 cl. 9.11.3.47 */
+template (value) NG_Request_Type cs_NG_Request_TypeTV(B3_Type p_RequestValue) 
:=
+{
+       iei             := '8'H,
+       spare           := tsc_Spare1,
+       requestValue    := p_RequestValue
+};
+
+
+/* 24.501 cl. 9.11.4.7 */
+template (value) IntegrityProtMaxDataRate
+cs_IntegrityProtMaxDataRateV(template (value) O1_Type maxDataRateUL,
+                            template (value) O1_Type maxDataRateD) :=
+{
+       iei := omit,
+       maxDataRateUL := maxDataRateUL,
+       maxDataRateDL := maxDataRateD
+};
+
+/* 24.501 cl. 9.11.4.11 */
+template (value) PDU_SessionType
+cs_PDU_SessionTypeTV(template (value) B3_Type p_Type) :=
+{
+       iei        := '9'H,
+       spare      := tsc_Spare1,
+       typeValue  := p_Type
+};
+
+/* 24.501 cl. 9.11.4.16 */
+template (value) SSC_Mode
+cs_SSC_ModeTV(B3_Type p_SSCMode) :=
+{
+       iei         := 'A'H,
+       spare       := tsc_Spare1,
+       sscModeValue := p_SSCMode
+};
+
 /* 24.501 cl. 8.2.1 */
 template (present) NG_NAS_DL_Message_Type
 cr_NG_AUTHENTICATION_REQUEST(template (present) NAS_KsiValue p_KeySetId := ?,
@@ -278,6 +347,64 @@
        }
 }

+/* 24.501 cl. 8.2.10 */
+template (value) NG_NAS_UL_Message_Type
+cs_NG_UL_NAS_TRANSPORT(template (value) PayloadContainerType 
p_PayloadContainerType,
+                      template (value) PayloadContainer p_PayloadContainer,
+                      template (omit) NG_PDU_SessionId p_PDU_SessionId := omit,
+                      template (omit) NG_PDU_SessionId p_OldPDU_SessionId := 
omit,
+                      template (omit) NG_Request_Type p_RequestType := omit,
+                      template (omit) S_NSSAI_Type p_S_NSSAI := omit,
+                      template (omit) DNN p_DNN := omit,
+                      template (omit) AdditionalInformation p_AdditionalInfo 
:= omit,
+                      template (omit) MA_PDUSessionInfo p_MA_PDUSessionInfo := 
omit,
+                      template (omit) ReleaseAssistanceInd 
p_ReleaseAssistanceInd := omit) :=
+{
+       ul_Nas_Transport := {
+               protocolDiscriminator   := tsc_EPD_GMM,                     /* 
cl. 9.2       M V 1   */
+               spareHalfOctet          := tsc_SpareHalfOctet,              /* 
cl. 9.3      M V 1/2 */
+               securityHeaderType      := tsc_SHT_NoSecurityProtection,
+               messageType             := tsc_MT_NG_UL_NASTransport,       /* 
cl. 9.7      M V 1   */
+               spareHalfOctet2         := tsc_SpareHalfOctet,              /* 
cl. 9.5      M V 1/2 */
+               payloadContainerType    := p_PayloadContainerType,          /* 
cl. 9.11.3.40 M V 1/2 */
+               payload                 := p_PayloadContainer,              /* 
cl. 9.11.3.39 M LV-E 3-65537 */
+               pduSessionId            := p_PDU_SessionId,                 /* 
cl. 9.11.3.41 C TV 2 IEI=70 */
+               oldPDUSessionId         := p_OldPDU_SessionId,              /* 
cl. 9.11.3.41 O TV 3 IEI=61 */
+               requestType             := p_RequestType,                   /* 
cl. 9.`0.3.47 O TV 1 IEI=8 */
+               s_NSSAI                 := p_S_NSSAI,                       /* 
cl. 9.11.2.8  O TLV 3-10 IEI=22 */
+               dnn                     := p_DNN,                           /* 
cl. 9.11.3.21 O TLV 3-102 IEI=25 */
+               additionalInfo          := p_AdditionalInfo,                /* 
cl. 9.11.2.1  O TLV 3-n IEI=24 */
+               maPDUSessionInfo        := p_MA_PDUSessionInfo,             /* 
cl. 9.11.3.31A  O TV 1 IEI=A Sep20 @sic R5s201387 Baseline Moving sic@ */
+               releaseAssistanceInd    := p_ReleaseAssistanceInd          /* 
cl. 9.11.3.46A  O TV 1 IEI=F Sep20 @sic R5s201387 Baseline Moving sic@ */
+       }
+}
+
+/* 24.501 cl. 8.2.11 */
+template (present) NG_NAS_DL_Message_Type
+cr_NG_DL_NAS_TRANSPORT(template (present) PayloadContainerType 
p_PayloadContainerType := ?,
+                      template (present) PayloadContainer p_Payload := ?,
+                      template NG_PDU_SessionId p_PDU_SessionId := *,
+                      template AdditionalInformation p_AdditionalInfo := *,
+                      template GMM_GSM_Cause p_Cause := *,
+                      template GPRS_Timer3 p_BackOff := *,
+                      template GPRS_Timer3 p_LowerBoundTimerValue := *) :=
+{
+       dl_Nas_Transport := {
+               protocolDiscriminator   := tsc_EPD_GMM,                     /* 
cl. 9.2       M V 1   */
+               spareHalfOctet          := tsc_SpareHalfOctet,              /* 
cl. 9.3      M V 1/2 */
+               securityHeaderType      := tsc_SHT_NoSecurityProtection,
+               messageType             := tsc_MT_NG_DL_NASTransport,       /* 
cl. 9.7      M V 1   */
+               spareHalfOctet2         := tsc_SpareHalfOctet,              /* 
cl. 9.5      M V 1/2 */
+               payloadContainerType    := p_PayloadContainerType,          /* 
cl. 9.11.3.40 M V 1/2 */
+               payload                 := p_Payload,                       /* 
cl. 9.11.3.39 M LV-E 3-65537 */
+               pduSessionId            := p_PDU_SessionId,                 /* 
cl. 9.11.3.41 C TV 2 IEI=70 */
+               additionalInfo          := p_AdditionalInfo,                /* 
cl. 9.11.2.1  O TLV 3-n IEI=24 */
+               gmmCause                := p_Cause,                         /* 
cl. 9.11.3.2  O TV 2 IEI=58  */
+               backOffTimerValue       := p_BackOff,                       /* 
cl. 9.11.2.5  O TLV 3 IEI=37 */
+               lowerBoundTimerValue    := p_LowerBoundTimerValue           /* 
cl. 9.11.2.5  O TLV 3 IEI=3A Sep22 @sic R5s221179 Baseline Moving sic@ */
+       }
+}
+
 /* 24.501 cl. 8.2.19 */
 template (present) NG_NAS_DL_Message_Type
 cr_NG_CONFIGURATION_UPDATE_COMMAND(template ConfigUpdateInd p_ConfigUpdateInd 
:= *,
@@ -453,4 +580,52 @@
        }
 }

+/* 24.501 cl. 8.3.1 */
+template (omit) NG_NAS_UL_Message_Type
+cs_NG_PDU_SESSION_ESTABLISHMENT_REQUEST(template (value) NG_PDU_SessionId 
p_PDU_SessionId,
+                                       template (value) 
ProcedureTransactionIdentifier p_PTI,
+                                       template (omit) 
IntegrityProtMaxDataRate p_IntegrityProtMaxDataRate := omit,
+                                       template (omit) PDU_SessionType 
p_PDU_SessionType := omit,
+                                       template (omit) SSC_Mode p_SSC_Mode := 
omit,
+                                       template (omit) NG_UE_SM_Cap p_UECap := 
omit,
+                                       template (omit) MaxNumPacketFilters 
p_MaxNumPacketFilters := omit,
+                                       template (omit) AlwaysOnPDUSessionReq 
p_AlwaysOnPDUSessionReq := omit,
+                                       template (omit) 
SM_PDU_DN_RequestContainer p_PDUReq := omit,
+                                       template (omit) 
ExtdProtocolConfigOptions p_ExtdPCO := omit,
+                                       template (omit) 
IPHeaderCompressionConfig p_IPHeaderCompConfig := omit,
+                                       template (omit) 
DS_TT_EthernetPortMACAddr p_DS_TT_EthernetPortMACAddr := omit,
+                                       template (omit) UE_DS_TT_ResidenceTime 
p_UE_DS_TT_ResidenceTime := omit,
+                                       template (omit) 
PortManagementInfoContainer p_PortManagementInfoContainer := omit,
+                                       template (omit) 
EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := omit,
+                                       template (omit) PDU_Address 
p_SuggestedInterfaceId := omit,
+                                       template (omit) ServiceLvlAAContainer 
p_ServiceLvlAA := omit,
+                                       template (omit) RequestedMBSContainer 
p_RequestedMBS := omit,
+                                       template (omit) PDUSessionPairId 
p_PduSessionPairId := omit,
+                                       template (omit) RSN p_RSN := omit) := {
+       pdu_Session_Establishment_Request := {
+               protocolDiscriminator         := tsc_EPD_GSM,                   
  /* cl. 9.2       M V 1   */
+               pduSessionId                  := p_PDU_SessionId,               
  /* cl. 9.4       M V 1   */
+               procedureTransactionIdentifier  := p_PTI,                   /* 
cl. 9.6       M V 1   */
+               messageType                   := 
tsc_MT_NG_PDUSessionEstablishmentRequest, /* cl. 9.7       M V 1   */
+               integrityProtMaxDataRate      := p_IntegrityProtMaxDataRate,    
 /* cl. 9.11.4.7  M V 2 */
+               pduSessionType                := p_PDU_SessionType,             
  /* cl. 9.11.4.11 O TV 1 IEI=9 */
+               sscMode                       := p_SSC_Mode,                    
  /* cl. 9.11.4.16 O TV 1 IEI=A */
+               smCapability                  := p_UECap,                       
  /* cl. 9.11.4.1  O TLV 3-15 IEI=28 */
+               maxNumPacketFilters           := p_MaxNumPacketFilters,         
  /* cl. 9.11.4.6  O TV 3 IEI=55 */
+               alwaysOnPDUSessionReq         := p_AlwaysOnPDUSessionReq,       
  /* cl. 9.11.4.4  O TV 1 IEI=B */
+               smPDU_RequestContainer        := p_PDUReq,                      
  /* cl. 9.11.4.15 O TLV ? ? */
+               extdProtocolConfigurationOptions := p_ExtdPCO,                  
  /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */
+               ipHeaderCompressionConfig     := p_IPHeaderCompConfig,          
  /* cl. 9.11.4.24   O TLV 5-257 IEI=66 Sep20 @sic R5s201387 Baseline Moving 
sic@ */
+               ds_TT_EthernetPortMACAddr     := p_DS_TT_EthernetPortMACAddr,   
  /* cl. 9.11.4.25  O TLV 8 IEI=6E Sep20 @sic R5s201387 Baseline Moving sic@ */
+               ueDS_TT_ResidenceTime         := p_UE_DS_TT_ResidenceTime,      
  /* cl. 9.11.4.26  O TLV 10 IEI=6F Sep20 @sic R5s201387 Baseline Moving sic@ */
+               portManagementInfoContainer   := p_PortManagementInfoContainer, 
  /* cl. 9.11.4.27  O TLV-E 8-65538 IEI=7C Sep20 @sic R5s201387 Baseline Moving 
sic@ */
+               ethernetHeaderCompressConfig  := p_EthernetHeaderCompConfig,    
  /* cl. 9.11.4.28  O TLV 3 IEI=1F Sep20 @sic R5s201387 Baseline Moving sic@ */
+               suggestedInterfaceId          := p_SuggestedInterfaceId,        
  /* cl. 9.11.4.10  O TLV 11 IEI=29 Sep20 @sic R5s201387 Baseline Moving sic@ */
+               serviceLvlAA                  := p_ServiceLvlAA,                
  /* cl. 9.11.2.10  O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving 
sic@ */
+               requestedMBS                  := p_RequestedMBS,                
  /* cl. 9.11.4.30  O TLV-E 8-65538 IEI=70 Sep22 @sic R5s221179 Baseline Moving 
sic@ */
+               pduSessionPairId              := p_PduSessionPairId,            
  /* cl. 9.11.4.32  O TLV 3 IEI=34 Sep22 @sic R5s221179 Baseline Moving sic@ */
+               rsn                           := p_RSN                          
  /* cl. 9.11.4.33  O TLV 3 IEI=35 Sep22 @sic R5s221179 Baseline Moving sic@ */
+       }
+}
+
 }
diff --git a/library/ngap/NGAP_Templates.ttcn b/library/ngap/NGAP_Templates.ttcn
index dde7844..e9cd7a7 100644
--- a/library/ngap/NGAP_Templates.ttcn
+++ b/library/ngap/NGAP_Templates.ttcn
@@ -1380,11 +1380,13 @@
                         template (present) InitiatingMessage 
mw_n2_InitialContextSetupRequest_withPDUSessionList(
                                                                                
               template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?,
                                                                                
               template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?,
+                                                                               
               template (present) UEAggregateMaximumBitRate 
p_uEAggregateMaximumBitRate := ?,
                                                                                
               template (present) GUAMI p_gUAMI := ?,
                                                                                
               template (present) PDUSessionResourceSetupListCxtReq 
p_pDUSessionResourceSetupListCxtReq := ?,
                                                                                
               template (present) AllowedNSSAI p_allowedNSSAI := ?,
                                                                                
               template (present) UESecurityCapabilities 
p_uESecurityCapabilities := ?,
-                                                                               
               template (present) SecurityKey p_nextHopNH := ?
+                                                                               
               template (present) SecurityKey p_nextHopNH := ?,
+                                                                               
               template (present) MaskedIMEISV p_maskedIMEISV := ?
                                                                                
               ) := {
                             procedureCode := id_InitialContextSetup,
                             criticality   := reject,
@@ -1402,6 +1404,11 @@
                                                                                
                  value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID }
                                                                                
              },
                                                                                
              {
+                                                                               
                  id := id_UEAggregateMaximumBitRate,
+                                                                               
                  criticality := reject,
+                                                                               
                  value_ := { UEAggregateMaximumBitRate := 
p_uEAggregateMaximumBitRate }
+                                                                               
              },
+                                                                               
              {
                                                                                
                         id := id_GUAMI,
                                                                                
                  criticality := reject,
                                                                                
                  value_ := { GUAMI := p_gUAMI }
@@ -1425,6 +1432,11 @@
                                                                                
                         id := id_SecurityKey,
                                                                                
                  criticality := reject,
                                                                                
                  value_ := { SecurityKey := p_nextHopNH }
+                                                                               
              },
+                                                                               
              { /* Optional: */
+                                                                               
                         id := id_MaskedIMEISV,
+                                                                               
                  criticality := ignore,
+                                                                               
                  value_ := { maskedIMEISV := p_maskedIMEISV }
                                                                                
              }
                                                                                
             }
                                                                             }

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

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

Reply via email to