Loading ccsrc/Externals/LIB_NG_NAS_Functions_ext.cc +4 −4 Viewed Changes for ccsrc/Externals/LIB_NG_NAS_Functions_ext.cc: 4 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -16,8 +16,8 @@ namespace LIB__NG__NAS__Functions { } INTEGER fx__f1(const BITSTRING& p_authK, const BITSTRING& p_rand, const BITSTRING& p_sqn, const BITSTRING& p_amf, BITSTRING& p_mac_a) { loggers::get_instance().log_msg(">>> fx__f1: p_authK: ", p_authK); loggers::get_instance().log_msg(">>> fx__f1: p_rand: ", p_rand); loggers::get_instance().log_msg(">>> fx__f1: p_authK: ", bit2oct(p_authK)); loggers::get_instance().log_msg(">>> fx__f1: p_rand: ", bit2oct(p_rand)); rijndael r; OCTETSTRING authK = bit2oct(p_authK); Loading Loading @@ -74,8 +74,8 @@ namespace LIB__NG__NAS__Functions { } INTEGER fx__f1star(const BITSTRING& p_authK, const BITSTRING& p_rand, const BITSTRING& p_sqn, const BITSTRING& p_amf, BITSTRING& p_mac_s) { loggers::get_instance().log_msg(">>> fx__f1star: p_authK: ", p_authK); loggers::get_instance().log_msg(">>> fx__f1star: p_rand: ", p_rand); loggers::get_instance().log_msg(">>> fx__f1star: p_authK: ", bit2oct(p_authK)); loggers::get_instance().log_msg(">>> fx__f1star: p_rand: ", bit2oct(p_rand)); rijndael r; OCTETSTRING authK = bit2oct(p_authK); Loading ccsrc/Externals/common_ext.cc +9 −0 Viewed Changes for ccsrc/Externals/common_ext.cc: 9 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -26,13 +26,17 @@ namespace CommonDefs { */ //INTEGER fx__KeyDerivationFunction(INTEGER const&, BITSTRING const&, OCTETSTRING const&){ BITSTRING fx__KeyDerivationFunction(const INTEGER& p__KDF, const BITSTRING& p__Key, const OCTETSTRING& p__String){ loggers::get_instance().log_msg(">>> fx__KeyDerivationFunction: p__KDF: ", p__KDF); loggers::get_instance().log_msg(">>> fx__KeyDerivationFunction: p__Key: ", bit2oct(p__Key)); hmac h; // hash_algorithms::sha_256: p__KDF == 1 (tsc_KDF_HMAC_SHA_256 see CommonDefs.ttcn) OCTETSTRING res; if (h.generate(p__String, bit2oct(p__Key), res) == -1) { loggers::get_instance().error("fx__KeyDerivationFunction: Key derivation failed"); return int2bit(0, 0); } loggers::get_instance().log_msg("<<< fx__KeyDerivationFunction: res: ", res); return oct2bit(res); } /** Loading @@ -42,6 +46,11 @@ namespace CommonDefs { */ //INTEGER fx__GetSystemTime(CommonDefs::Struct__tm__Type&, INTEGER&){ void fx__GetSystemTime(CommonDefs::Struct__tm__Type& p__Struct__tm, INTEGER& p__TimezoneInfo){ const time_t t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); tm* now = std::localtime(&t); p__Struct__tm = Struct__tm__Type(now->tm_sec, now->tm_min, now->tm_hour, now->tm_mday, now->tm_mon, now->tm_year, now->tm_wday, now->tm_yday, now->tm_isdst); p__TimezoneInfo = 0; // TODO FSCOM return; } //void fx__CalculateFCS32(BITSTRING const&) { Loading ccsrc/Ports/LibNGAP/NGAPPort.cc +2 −2 Viewed Changes for ccsrc/Ports/LibNGAP/NGAPPort.cc: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -77,12 +77,12 @@ namespace LibNGAP__Interface { } static_cast<ngap_layer*>(_layer)->add_upper_port(this); // Create layer /*IJ commented out // Create layer _layer = layer_stack_builder::get_instance()->create_layer_stack(it->second.c_str()); if (static_cast<ngap_layer*>(_layer) == NULL) { loggers::get_instance().error("NGAPPort::user_map: Invalid stack configuration: %s", it->second.c_str()); } static_cast<ngap_layer*>(_layer)->add_upper_port(this); static_cast<ngap_layer*>(_layer)->add_upper_port(this);*/ } else { loggers::get_instance().error("NGAPPort::user_map: No layers defined in configuration file"); } Loading ttcn/Lib3GPP/Common/CommonDefs.ttcn +65 −63 Viewed Changes for ttcn/Lib3GPP/Common/CommonDefs.ttcn: 65 added lines, 63 removed lines. Original line number Diff line number Diff line Loading @@ -14,77 +14,77 @@ module CommonDefs { //---------------------------------------------------------------------------- // type definitions: type bitstring B1_Type length(1); type bitstring B2_Type length(2); type bitstring B3_Type length(3); type bitstring B4_Type length(4); type bitstring B5_Type length(5); type bitstring B6_Type length(6); type bitstring B7_Type length(7); type bitstring B1_Type length(1) with { variant "FIELDLENGTH(1)" }; type bitstring B2_Type length(2) with { variant "FIELDLENGTH(2)" }; type bitstring B3_Type length(3) with { variant "FIELDLENGTH(3)" }; type bitstring B4_Type length(4) with { variant "FIELDLENGTH(4)" }; type bitstring B5_Type length(5) with { variant "FIELDLENGTH(5)" }; type bitstring B6_Type length(6) with { variant "FIELDLENGTH(6)" }; type bitstring B7_Type length(7) with { variant "FIELDLENGTH(7)" }; type bitstring B7_15_Type length(7..15); // NOTE: length restriction can only be a range but not two destinct lengths type bitstring B8_Type length(8); type bitstring B9_Type length(9); type bitstring B10_Type length(10); type bitstring B11_Type length(11); type bitstring B12_Type length(12); type bitstring B13_Type length(13); type bitstring B14_Type length(14); type bitstring B15_Type length(15); type bitstring B16_Type length(16); type bitstring B18_Type length(18); type bitstring B20_Type length(20); type bitstring B22_Type length(22); type bitstring B24_Type length(24); type bitstring B27_Type length(27); type bitstring B28_Type length(28); type bitstring B32_Type length(32); type bitstring B36_Type length(36); type bitstring B40_Type length(40); type bitstring B41_Type length(41); type bitstring B42_Type length(42); type bitstring B43_Type length(43); type bitstring B45_Type length(45); type bitstring B47_Type length(47); type bitstring B48_Type length(48); type bitstring B56_Type length(56); type bitstring B64_Type length(64); type bitstring B80_Type length(80); type bitstring B112_Type length(112); type bitstring B128_Type length(128); type bitstring B160_Type length(160); type bitstring B184_Type length(184); type bitstring B192_Type length(192); type bitstring B256_Type length(256); type bitstring B8_Type length(8) with { variant "FIELDLENGTH(8)" }; type bitstring B9_Type length(9) with { variant "FIELDLENGTH(9)" }; type bitstring B10_Type length(10) with { variant "FIELDLENGTH(10)" }; type bitstring B11_Type length(11) with { variant "FIELDLENGTH(11)" }; type bitstring B12_Type length(12) with { variant "FIELDLENGTH(12)" }; type bitstring B13_Type length(13) with { variant "FIELDLENGTH(13)" }; type bitstring B14_Type length(14) with { variant "FIELDLENGTH(14)" }; type bitstring B15_Type length(15) with { variant "FIELDLENGTH(15)" }; type bitstring B16_Type length(16) with { variant "FIELDLENGTH(16)" }; type bitstring B18_Type length(18) with { variant "FIELDLENGTH(18)" }; type bitstring B20_Type length(20) with { variant "FIELDLENGTH(20)" }; type bitstring B22_Type length(22) with { variant "FIELDLENGTH(22)" }; type bitstring B24_Type length(24) with { variant "FIELDLENGTH(24)" }; type bitstring B27_Type length(27) with { variant "FIELDLENGTH(27)" }; type bitstring B28_Type length(28) with { variant "FIELDLENGTH(28)" }; type bitstring B32_Type length(32) with { variant "FIELDLENGTH(32)" }; type bitstring B36_Type length(36) with { variant "FIELDLENGTH(36)" }; type bitstring B40_Type length(40) with { variant "FIELDLENGTH(40)" }; type bitstring B41_Type length(41) with { variant "FIELDLENGTH(41)" }; type bitstring B42_Type length(42) with { variant "FIELDLENGTH(42)" }; type bitstring B43_Type length(43) with { variant "FIELDLENGTH(43)" }; type bitstring B45_Type length(45) with { variant "FIELDLENGTH(45)" }; type bitstring B47_Type length(47) with { variant "FIELDLENGTH(47)" }; type bitstring B48_Type length(48) with { variant "FIELDLENGTH(48)" }; type bitstring B56_Type length(56) with { variant "FIELDLENGTH(56)" }; type bitstring B64_Type length(64) with { variant "FIELDLENGTH(64)" }; type bitstring B80_Type length(80) with { variant "FIELDLENGTH(80)" }; type bitstring B112_Type length(112) with { variant "FIELDLENGTH(112)" }; type bitstring B128_Type length(128) with { variant "FIELDLENGTH(128)" }; type bitstring B160_Type length(160) with { variant "FIELDLENGTH(160)" }; type bitstring B184_Type length(184) with { variant "FIELDLENGTH(184)" }; type bitstring B192_Type length(192) with { variant "FIELDLENGTH(192)" }; type bitstring B256_Type length(256) with { variant "FIELDLENGTH(256)" }; type bitstring B32_128_Type length(32..128); type B128_Type B128_Key_Type; /* 128 bit security key */ type B256_Type B256_Key_Type; /* 256 bit security key */ type octetstring O1_Type length(1); type octetstring O2_Type length(2); type octetstring O3_Type length(3); type octetstring O4_Type length(4); type octetstring O5_Type length(5); type octetstring O6_Type length(6); type octetstring O8_Type length(8); type octetstring O9_Type length(9); type octetstring O10_Type length(10); type octetstring O13_Type length(13); type octetstring O14_Type length(14); type octetstring O15_Type length(15); type octetstring O16_Type length(16); type octetstring O28_Type length(28); type octetstring O32_Type length(32); type octetstring O43_Type length(43); type hexstring H1_Type length(1); type hexstring H2_Type length(2); type hexstring H4_Type length(4); type hexstring H12_Type length(12); type hexstring H14_Type length(14); type octetstring O1_Type length(1) with { variant "FIELDLENGTH(1)" }; type octetstring O2_Type length(2) with { variant "FIELDLENGTH(2)" }; type octetstring O3_Type length(3) with { variant "FIELDLENGTH(3)" }; type octetstring O4_Type length(4) with { variant "FIELDLENGTH(4)" }; type octetstring O5_Type length(5) with { variant "FIELDLENGTH(5)" }; type octetstring O6_Type length(6) with { variant "FIELDLENGTH(6)" }; type octetstring O8_Type length(8) with { variant "FIELDLENGTH(8)" }; type octetstring O9_Type length(9) with { variant "FIELDLENGTH(9)" }; type octetstring O10_Type length(10) with { variant "FIELDLENGTH(10)" }; type octetstring O13_Type length(13) with { variant "FIELDLENGTH(13)" }; type octetstring O14_Type length(14) with { variant "FIELDLENGTH(14)" }; type octetstring O15_Type length(15) with { variant "FIELDLENGTH(15)" }; type octetstring O16_Type length(16) with { variant "FIELDLENGTH(16)" }; type octetstring O28_Type length(28) with { variant "FIELDLENGTH(28)" }; type octetstring O32_Type length(32) with { variant "FIELDLENGTH(32)" }; type octetstring O43_Type length(43) with { variant "FIELDLENGTH(43)" }; type hexstring H1_Type length(1) with { variant "FIELDLENGTH(1)" }; type hexstring H2_Type length(2) with { variant "FIELDLENGTH(2)" }; type hexstring H4_Type length(4) with { variant "FIELDLENGTH(4)" }; type hexstring H12_Type length(12) with { variant "FIELDLENGTH(12)" }; type hexstring H14_Type length(14) with { variant "FIELDLENGTH(14)" }; type O1_Type Octet_Type; type hexstring HalfOctet_Type length(1); type hexstring HalfOctet_Type length(1) with { variant "FIELDLENGTH(1)" }; type record of B8_Type B8_List_Type; Loading Loading @@ -1695,4 +1695,6 @@ module CommonDefs { } return omit; } } with { encode "RAW" } ttcn/Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn +278 −18 Viewed Changes for ttcn/Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn: 278 added lines, 18 removed lines. Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ module NAS_CommonTypeDefs { type HalfOctet_Type SpareHalfOctet; type hexstring NAS_Mcc length(3); //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). type hexstring NAS_Mcc length(3) with { variant "FIELDLENGTH(3)" }; //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). type record of hexstring EmergencyNumList; Loading Loading @@ -65,7 +65,7 @@ module NAS_CommonTypeDefs { type B3_Type PdnTypeValue; type bitstring BcdDigit_Bit length(4); type bitstring BcdDigit_Bit length(4) with { variant "FIELDLENGTH(4)" }; type B3_Type NAS_IdType; type B8_Type NAS_CauseValue_Type; Loading @@ -92,6 +92,11 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ Type4Length_Type iel, octetstring nameValue length(1..100) } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (nameValue)"; variant (iel) "BYTEORDER(last)"; variant (nameValue) "BYTEORDER(last)"; }; type record AdditionalUpdateType { /* 24.301 cl. 9.9.3.0B @sic R5s100135 sic@ */ Loading @@ -99,6 +104,8 @@ module NAS_CommonTypeDefs { B2_Type pnb_CIOT, // 0=no additional info, 1=CP, 2=UP, 3=reserved @sic R5s160711 Baseline Moving sic@ B1_Type signallingActiveFlag, // @sic R5s160711 Baseline Moving sic@ B1_Type addUpdateTypeValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -110,6 +117,8 @@ module NAS_CommonTypeDefs { IEI4_Type iei optional, // '1000'B B1_Type spare1, KeySeq keySeq } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -120,6 +129,8 @@ module NAS_CommonTypeDefs { type record ConnectivityType { IEI4_Type iei, B4_Type connectivityValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -130,6 +141,8 @@ module NAS_CommonTypeDefs { // IEI is always skipped B1_Type switchOff, NAS_AttDetValue_Type typeOfDetach } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -141,6 +154,8 @@ module NAS_CommonTypeDefs { IEI4_Type iei, B3_Type spare, B1_Type lowPriority } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -154,6 +169,8 @@ module NAS_CommonTypeDefs { B4_Type cnDRXcoef, // CN specific DRX cycle length coefficient B1_Type splitOnCCCH, // Split on CCCCH B3_Type nonDRXtimer // non-DRX timer } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -164,6 +181,8 @@ module NAS_CommonTypeDefs { type record EmergServCat { B1_Type spare, B7_Type emergSCValue // Emergency Service Category value } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -175,6 +194,11 @@ module NAS_CommonTypeDefs { Type4Length_Type len, // length EmergServCat emergServCat, // Emergency Service Category octetstring digits length(0..10) // BCD numbers } with { variant "FIELDORDER(msb)"; variant (len) "LENGTHTO (emergServCat, digits)"; variant (len) "BYTEORDER(last)"; variant (digits) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -186,6 +210,10 @@ module NAS_CommonTypeDefs { IEI8_Type iei, // '00110100'B (34 hex) @sic R5s110420 sic@ Type4Length_Type iel, // length @sic R5s110420 sic@ record length (1..10) of EmergNum emergNum // Emergency Number } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (emergNum)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -197,6 +225,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ GprsTimerUnit unit, B5_Type timerValue } with { variant "FIELDORDER(msb)"; }; type B3_Type GprsTimerUnit; Loading @@ -211,6 +241,10 @@ module NAS_CommonTypeDefs { Type4Length_Type iel, // length @sic R5s110420 sic@ GprsTimerUnit unit, // Unit B5_Type gprsTimerValue // Timer value } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (unit, gprsTimerValue)"; variant (iel) "BYTEORDER(last)"; }; type GPRS_Timer2 GPRS_Timer3; // definition is identical @sic R5s150329 Baseline Moving sic@ Loading @@ -224,6 +258,8 @@ module NAS_CommonTypeDefs { IEI4_Type iei optional, /* present in case of TV; omit in case of V */ B1_Type spare, B3_Type requestValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -235,6 +271,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, NAS_PlmnId plmn, // MCC + MNC 3 digits each NAS_Lac lac // LAC } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -246,6 +284,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ LocAreaId lai, /* MCC + MNC + LAC */ O1_Type rac /* RAC */ } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -256,6 +296,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ B4_Type spare, B4_Type llcSapiValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -271,6 +313,11 @@ module NAS_CommonTypeDefs { B1_Type oddEvenInd, // Odd/even indicator NAS_IdType typeOfId, // Type of identity octetstring otherDigits length(0..10) // Other identity digits (10 octets rather than 8 to cover Guti as well) } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (idDigit1, oddEvenInd, typeOfId, otherDigits)"; variant (iel) "BYTEORDER(last)"; variant (otherDigits) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -301,6 +348,10 @@ module NAS_CommonTypeDefs { B1_Type cMSP, // CM Service Prompt Support B1_Type a5_3, // Algorithm A5/3 Support B1_Type a5_2 // Algorithm A5/2 Support } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare1_1, revLvl, eSIND, a5_1, rFPwrCap, spare1_2, pSCap, sSSI, sMCap, vBS, vGCS, fC, cM3, spare1_3, lCSVA, uCS2, soLSA, cMSP, a5_3, a5_2)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -405,6 +456,11 @@ module NAS_CommonTypeDefs { B1_Type xtdTSCSetCap optional, // @sic R5s150329 Baseline Moving sic@ B1_Type xtdEARFCNValueRange optional, // @sic R5s160712 Baseline Moving sic@ bitstring spareBits2 optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spareBit, multibandSupported, a5_7, a5_6, a5_5, a5_4, associatedRadioCapabilty2, spareBits1, associatedRadioCapabilty1, maskBit1, rGSM_RadioCapability, maskBit2, multiSlotClass, uCS2Treatment, extMeasurementCapability, maskBit3, msMeasurementCapability, maskBit4, msPositioningMethod, maskBit5, eDGE_MultiSlot, maskBit6, psk8_Struct, maskBit7, gSM400BandsSupported, gSM400AssociatedRadioCapability, maskBit8, gSM850AssociatedRadiioCapability, maskBit9, pCS1900AssociatedRadiioCapability, uMTS_FDD_RAT_Capability, uMTS384TDD_RAT_Capability, cDMA2000_RAT_Capability, maskBit10, dTM_GPRS_MultiSlotSubclass, singleSlotDTM, maskBit11, dTM_EGPRS_MultiSlorSubclass, maskBit12, singleBandSupport, maskBit13, gSM700AssociatedRadioCapability, uMTS128TDD_RAT_Capability, gERANFeatPack1, mask14, extDTM_GPRS_MultiSlotSubclass, etxDTM_EGPRS_MultiSlotSubclass, mask15, highMultislotCap, spare2, gERANFeatPack2, gMSKMultislotPowerProfile, pSKMultislotPowerProfile, mask17, tGSM400BandsSupported, tGSM400AssocRadioCap, spare, dlAdvancedRxPerf, dTMEhancCap, mask19, dTMGPRSHighMultislotClass, offsetReq, mask20, dTMEGPRSHighMultislotClass, rptdACCHCap, mask21, gsm710AssocRadioCap, mask22, tgsm810AssocRadioCap, cipheringModeSettingCap, addPositionCap, eutraFDDSupport, eutraTDDSupport, eutraMeasAndReporting, priorityBasedReselection, utraCSGCellsReporting, vamosLevel, tighterCap, selectCipheringDLSACCH, csPS_SRVCC_G2U, csPS_SRVCC_G2E, geranNwkSharing, eutraWidebandRSRQMeas, erBandSupport, utraMultipleFreqBandInd, eutraMultipleFreqBandInd, xtdTSCSetCap, xtdEARFCNValueRange)"; variant (iel) "BYTEORDER(last)"; variant (spareBits2) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -417,6 +473,8 @@ module NAS_CommonTypeDefs { B2_Type eDGE_RF_PowerCapability1 optional, // not present if pwrMask1 = 0 B1_Type pwrMask2, B2_Type eDGE_RF_PowerCapability2 optional // not present if pwrMask2 = 0 } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -426,6 +484,8 @@ module NAS_CommonTypeDefs { type record MS_MeasCapability { B4_Type sMS_VALUE, B4_Type sM_VALUE } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading Loading @@ -468,6 +528,11 @@ module NAS_CommonTypeDefs { B1_Type restrictEnhancedCoverageCap optional, // @sic R5s170598 Baseline Moving sic@ B1_Type dualConnectivityEUTRA_NR optional, // @sic R5s180553 Baseline Moving sic@ bitstring spareBits length (0..43) optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (gea1, smCapDedicated, smCapGPRS, ucs2, ssScreeningIndicator, soLSACap, revLevelIndicator, pfcFeatureMode, gea2, gea3, gea4, gea5, gea6, gea7, lcsVACap, psHOtoUTRAN_IuModeCap, psHOtoEUTRAN_S1ModeCap, emmCombinedCap, isrSupport, srvccToGERAN_UTRANCap, epcCap, nfCap, gERANNtwkShareCap, userPlaneIntegrityProtSupport, gia4, gia5, gia6, gia7, ePCOInd, restrictEnhancedCoverageCap, dualConnectivityEUTRA_NR, spareBits)"; variant (iel) "BYTEORDER(last)"; variant (spareBits) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -479,6 +544,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei, B3_Type spareBits, B1_Type n3ENInd } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -491,6 +558,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type iel, // B10_Type nriContainerValue, // @sic R5s140778 sic@ B6_Type spareBits // @sic R5s140778 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (nriContainerValue, spareBits)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -503,6 +574,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type iel, // @sic R5s110420 sic@ B1_Type spare, B7_Type idValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, idValue)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -514,6 +589,10 @@ type record Non3GPP_NW_ProvidedPolicies { IEI8_Type iei, Type4Length_Type iel, NAS_PlmnId plmn } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (plmn)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -526,6 +605,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type iel, // @sic R5s110420 sic@ record length(1..15) of NAS_PlmnId plmnList /* list of PLMNs */ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (plmnList)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -537,6 +620,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei, B3_Type spare, B1_Type extdPeriodicTimers } with { variant "FIELDORDER(msb)"; }; type PLMN_List.plmnList NAS_PlmnIdList_Type; Loading @@ -554,6 +639,11 @@ type record Non3GPP_NW_ProvidedPolicies { B3_Type configProtocol, record length (0..83) of ProtocolContainer pco optional } with { variant "FIELDORDER(msb)"; // FIXME variant (pco) "FORCEOMIT(protocolLongLength)"; variant (iel) "LENGTHTO (ext, spare, configProtocol, pco)"; variant (iel) "BYTEORDER(last)"; }; type record ProtocolContainer { Loading @@ -561,6 +651,11 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type protocolLength optional, // @sic R5s201386 Baseline Moving sic@ Type6Length_Type protocolLongLength optional, // always set to omit in UL @sic R5s201386 Baseline Moving sic@ octetstring content optional } with { variant "FIELDORDER(msb)"; variant (protocolLength) "LENGTHTO (content)"; variant (protocolLength) "BYTEORDER(last)"; variant (content) "BYTEORDER(last)"; }; type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; Loading @@ -570,6 +665,9 @@ type record Non3GPP_NW_ProvidedPolicies { B1_Type aer, B3_Type uplinkTimeUnit, O3_Type maxUplinkRate optional // @sic R5s170598 Baseline Moving sic@ } with { variant "FIELDORDER(msb)"; variant (maxUplinkRate) "BYTEORDER(last)"; }; // ============================================================================= // Structured Type Definition Loading @@ -580,6 +678,11 @@ type record Non3GPP_NW_ProvidedPolicies { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ Type4Length_Type iel optional, // only present in 24.008 version of DETACH REQUEST message O3_Type signatureValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (signatureValue)"; variant (iel) "BYTEORDER(last)"; variant (signatureValue) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -620,6 +723,10 @@ type record Non3GPP_NW_ProvidedPolicies { B8_Type guaranteedBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ B8_Type maxBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ B8_Type guaranteedBitRateUL_Ext2 optional // @sic R5s1300195 Baseline Moving sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare1, delayClass, relabilityClass, peakThroughput, spare2, precedenceClass, spare3, meanThroughput, trafficClass, deliveryOrder, deliveryErrorSDU, maxSduSize, maxBitRateUL, maxBitRateDL, residualBER, sduErrorRatio, transferDelay, trafficHandlingPrio, guaranteedBitRateUL, guaranteedBitRateDL, spare4, signallingInd, sourceStatisticsDescriptor, maxBitRateDL_Ext, guaranteedBitRateDL_Ext, maxBitRateUL_Ext, guaranteedBitRateUL_Ext, maxBitRateDL_Ext2, guaranteedBitRateDL_Ext2, maxBitRateUL_Ext2, guaranteedBitRateUL_Ext2)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -631,6 +738,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei optional, /* present in case of TV; omit in case of V */ B1_Type spare, B3_Type levelValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -643,6 +752,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type len, // length B8_Type bitMap1to8, // codec bitmap bits 1-8 B8_Type bitMap9to16 optional // codec bitmap bits 9-16 } with { variant "FIELDORDER(msb)"; variant (len) "LENGTHTO (bitMap1to8, bitMap9to16)"; variant (len) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -654,6 +767,10 @@ type record Non3GPP_NW_ProvidedPolicies { IEI8_Type iei, // '01000000'B (40 hex) @sic R5s110420 sic@ Type4Length_Type iel, // length @sic R5s110420 sic@ record of Codec codec// list of codecs } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (codec)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -665,6 +782,8 @@ type record Non3GPP_NW_ProvidedPolicies { // IEI is always skipped B1_Type spare, B3_Type typeValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -676,6 +795,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei optional, B3_Type spare3, TmsiStatusValue flag // Flag } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -691,12 +812,21 @@ type record Non3GPP_NW_ProvidedPolicies { B4_Type noOfPktFilter, record of PacketFilter packetFilterList optional, record of TftParameter parameterList optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (tftOperationCode, eBit, noOfPktFilter, packetFilterList, parameterList)"; variant (iel) "BYTEORDER(last)"; }; type record TftParameter { IEI8_Type iei, Type4Length_Type iel, octetstring contents } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (contents)"; variant (iel) "BYTEORDER(last)"; variant (contents) "BYTEORDER(last)"; }; type record PacketFilter { Loading @@ -706,6 +836,11 @@ type record Non3GPP_NW_ProvidedPolicies { B8_Type precedence optional, Type4Length_Type iel optional, PacketFilterContents contents optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (contents)"; variant (iel) "BYTEORDER(last)"; variant (contents) "BYTEORDER(last)"; }; type record of PacketFilterComponent PacketFilterContents; Loading @@ -713,7 +848,9 @@ type record Non3GPP_NW_ProvidedPolicies { type record PacketFilterComponent { O1_Type id, PacketFilterComponentValue packetFilterComponentValue } with { variant (id)"FIELDLENGTH(8)";}; } with { variant "FIELDORDER(msb)"; }; type union PacketFilterComponentValue { O8_Type ipv4RemoteAddress, Loading @@ -726,6 +863,17 @@ type record Non3GPP_NW_ProvidedPolicies { O4_Type securityParameterIndex, O2_Type typeOfServiceTrafficClass, O3_Type flowLabel } with { variant "FIELDORDER(msb)"; variant (ipv4RemoteAddress) "BYTEORDER(last)"; variant (ipv6RemoteAddress) "BYTEORDER(last)"; variant (singleLocalPort) "BYTEORDER(last)"; variant (localPortRange) "BYTEORDER(last)"; variant (singleRemotePort) "BYTEORDER(last)"; variant (remotePortRange) "BYTEORDER(last)"; variant (securityParameterIndex) "BYTEORDER(last)"; variant (typeOfServiceTrafficClass) "BYTEORDER(last)"; variant (flowLabel) "BYTEORDER(last)"; }; type record UE_NetworkCap { // 24.301 cl. 9.9.3.34 Loading @@ -743,6 +891,8 @@ type record Non3GPP_NW_ProvidedPolicies { octetstring spare optional // @sic R5s100135 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO(eeaCap, eiaCap, ueaCap, uiaCap, srvcc_LPP_ProSeCap, cIoT_proSeCap, cIoT_V2X, edt_WUS, musim, spare)"; variant (iel) "BYTEORDER(last)"; } type record ReAttemptIndicator { // 24.301 cl. 9.9.4.13A, 24.008 cl. 10.5.6.5A Loading @@ -755,6 +905,8 @@ type record Non3GPP_NW_ProvidedPolicies { B1_Type ratcValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO(spare, eplmncValue, ratcValue)"; variant (iel) "BYTEORDER(last)"; } // ============================================================================= Loading @@ -768,8 +920,9 @@ type record Non3GPP_NW_ProvidedPolicies { B128_Type aUTN /* (as for UMTS) */ } with { variant "FIELDORDER(msb)"; variant "PRESENCE (iei = '20'O)"; variant (iel) "LENGTHTO (aUTN)" variant (iel) "LENGTHTO (aUTN)"; variant (iel) "BYTEORDER(last)"; variant (aUTN) "BYTEORDER(last)"; } // ============================================================================= Loading @@ -784,8 +937,9 @@ type record Non3GPP_NW_ProvidedPolicies { B112_Type auts // AUTS, 14 octets } with { variant "FIELDORDER(msb)"; variant "PRESENCE (iei = '30'O)"; variant (iel) "LENGTHTO (auts)" variant (iel) "LENGTHTO (auts)"; variant (iel) "BYTEORDER(last)"; variant (auts) "BYTEORDER(last)"; } // ============================================================================= Loading @@ -798,7 +952,7 @@ type record Non3GPP_NW_ProvidedPolicies { B128_Type randValue // Authentication Parameter RAND value } with { variant "FIELDORDER(msb)"; variant "PRESENCE (iei = '21'O)" variant (randValue) "BYTEORDER(last)"; } type record DaylightSavingTime { /* 24.301 cl. 9.9.3.5 -> 24.008 cl. 10.5.3.12 */ Loading @@ -808,6 +962,8 @@ type record Non3GPP_NW_ProvidedPolicies { B2_Type val } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, val)"; variant (iel) "BYTEORDER(last)"; }; type record NetworkName { /* 24.301 cl. 9.9.3.21 -> 24.008 cl. 10.5.3.5a */ Loading @@ -820,6 +976,9 @@ type record Non3GPP_NW_ProvidedPolicies { octetstring text } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (ext, codingScheme, addCI, spareBitCnt, text)"; variant (iel) "BYTEORDER(last)"; variant (text) "BYTEORDER(last)"; }; type record TimeZone { /* 24.301 cl. 9.9.3.26 -> 24.008 cl. 10.5.3.8 */ Loading Loading @@ -855,6 +1014,8 @@ type record Non3GPP_NW_ProvidedPolicies { B2_Type voiceDomainPrefEUTRA // @sic R5s110233 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spareBits, ueUsageSetting, voiceDomainPrefEUTRA)"; variant (iel) "BYTEORDER(last)"; }; type record IdentityType { /* 24.301 cl. 9.9.3.15 -> 24.008 cl. 10.5.3.4 */ Loading Loading @@ -919,6 +1080,9 @@ type record Non3GPP_NW_ProvidedPolicies { octetstring components // ASN.1 definitions BER encoded } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (components)"; variant (iel) "BYTEORDER(last)"; variant (components) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -946,6 +1110,8 @@ type record Non3GPP_NW_ProvidedPolicies { O1_Type sS_VersionInfo // ss version information } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (sS_VersionInfo)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -987,6 +1153,10 @@ type record ExtdDRXParams { B4_Type pagingTimeWindow, B4_Type eDRXValue, B8_Type extdPTW optional // @sic R5s221182 Baseline Moving Rel-17 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (pagingTimeWindow, eDRXValue, extdPTW)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -998,6 +1168,11 @@ type record NBIFOMContainer { IEI8_Type iei, Type4Length_Type iel, // length octetstring containerContents } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (containerContents)"; variant (iel) "BYTEORDER(last)"; variant (containerContents) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1009,6 +1184,11 @@ type record NBIFOMContainer { IEI8_Type iei, Type4Length_Type iel, O2_Type dcnIdValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (dcnIdValue)"; variant (iel) "BYTEORDER(last)"; variant (dcnIdValue) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1023,6 +1203,10 @@ type record NBIFOMContainer { B4_Type spare, B3_Type configProtocol, record of ProtocolContainer pco optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (ext, spare, configProtocol, configProtocol)"; variant (iel) "BYTEORDER(last)"; }; type record of ProtocolContainer NAS_ExtdProtocolConfigOptions_Type; /* @sic R5-2001649 sic@ @status APPROVED (LTE_A_PRO, NBIOT) */ Loading @@ -1035,6 +1219,11 @@ type record NBIFOMContainer { IEI8_Type iei, Type4Length_Type iel, octetstring additionalInfo } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (additionalInfo)"; variant (iel) "BYTEORDER(last)"; variant (additionalInfo) "BYTEORDER(last)"; }; type record AuthenticationResponseParameter { /* 24.301 cl. 9.9.3.4 */ Loading @@ -1042,8 +1231,10 @@ type record NBIFOMContainer { Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ B32_128_Type res /* 4..16 octets */ } with { variant "PRESENCE (iei = '2D'O)"; variant (iel) "LENGTHTO (res)" variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (res)"; variant (iel) "BYTEORDER(last)"; variant (res) "BYTEORDER(last)"; } type record NAS_KeySetIdentifier { /* 24.301 cl. 9.9.3.21 */ Loading @@ -1052,8 +1243,6 @@ type record NBIFOMContainer { NAS_KsiValue nasKeySetId } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant "FIELDLENGTH(4)"; } type record HashMME { /* 24.301 cl. 9.9.3.50 @sic R5s170597 Baseline Moving sic@ */ Loading @@ -1062,8 +1251,9 @@ type record NBIFOMContainer { O8_Type hashMME } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant "FIELDLENGTH(4)"; variant (iel) "LENGTHTO (hashMME)"; variant (iel) "BYTEORDER(last)"; variant (hashMME) "BYTEORDER(last)"; } type record PDN_Address { /* 24.301 cl. 9.9.4.9 */ Loading @@ -1074,8 +1264,9 @@ type record NBIFOMContainer { octetstring adressInfo length(4..12) } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant (iel) "LENGTHTO (adressInfo)"; variant (iel) "LENGTHTO (spare, typeValue, adressInfo)"; variant (iel) "BYTEORDER(last)"; variant (adressInfo) "BYTEORDER(last)"; }; type record ReplayedNASMessageContainer { /* 24.301 cl. 9.9.3.51 @sic R5s170597 Baseline Moving sic@ */ Loading @@ -1084,8 +1275,9 @@ type record NBIFOMContainer { octetstring replayedNASMsgContainerValue } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant (iel) "LENGTHTO (replayedNASMsgContainerValue)"; variant (iel) "BYTEORDER(last)"; variant (replayedNASMsgContainerValue) "BYTEORDER(last)"; }; type record NAS_SecurityAlgorithms { /* 24.301 cl. 9.9.3.23 */ Loading @@ -1094,6 +1286,8 @@ type record NBIFOMContainer { B3_Type cipheringType, /* Type of ciphering algorithm */ B1_Type spare2, B3_Type integrityType /* Type of integrity protection algorithm */ } with { variant "FIELDORDER(msb)"; }; type record Extd_EPS_QOS { /* 24.301 cl. 9.9.4.30 */ Loading @@ -1109,6 +1303,10 @@ type record NBIFOMContainer { B8_Type guaranteedBitRateUl_2, B8_Type guaranteedBitRateDl_1, B8_Type guaranteedBitRateDl_2 } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (unitMaxBitRate, maxBitRateUl_1, maxBitRateUl_2, maxBitRateDl_1, maxBitRateDl_2, unitGuaranteedBitRate, guaranteedBitRateUl_1, guaranteedBitRateUl_2, guaranteedBitRateDl_1, guaranteedBitRateDl_2)"; variant (iel) "BYTEORDER(last)"; }; type record UE_Status { // 24.501 cl. 9.11.3.56 Loading @@ -1117,6 +1315,10 @@ type record NBIFOMContainer { B6_Type spare, B1_Type n1ModeRegistered, B1_Type s1ModeRegistered } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, n1ModeRegistered, s1ModeRegistered)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1130,6 +1332,10 @@ type record NBIFOMContainer { B7_Type spareBits, // @sic R5s201386 Baseline Moving sic@ B1_Type extdEmergNumListValidity, record of ExtdEmergNum emergNum } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spareBits, extdEmergNumListValidity, emergNum)"; variant (iel) "BYTEORDER(last)"; }; type record ExtdEmergNum { Loading @@ -1137,6 +1343,12 @@ type record NBIFOMContainer { octetstring digits, // BCD numbers Type4Length_Type lengthOfSubService, octetstring subServices } with { variant "FIELDORDER(msb)"; variant (lengthOfSubService) "LENGTHTO (subServices)"; variant (lengthOfSubService) "BYTEORDER(last)"; variant (digits) "BYTEORDER(last)"; variant (subServices) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1151,6 +1363,10 @@ type record NBIFOMContainer { O1_Type ueaCap optional, // @sic R5s100135 sic@ O1_Type uiaCap optional, // @sic R5s100135 sic@ O1_Type geaCap optional // @sic R5s100135 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (eeaCap, eiaCap, ueaCap, uiaCap, geaCap)"; variant (iel) "BYTEORDER(last)"; }; type record EPS_QualityOfService { /* 24.301 cl. 9.9.4.3 */ Loading @@ -1169,6 +1385,10 @@ type record NBIFOMContainer { B8_Type maxBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving, R5s180640 sic@ B8_Type guaranteedBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving, R5s180640 sic@ B8_Type guaranteedBitRateDL_Ext2 optional // @sic R5s1300195 Baseline Moving, R5s180640 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (maxBitRateUl, maxBitRateDl, guaranteedBitRateUl, guaranteedBitRateDl, maxBitRateUlExt, maxBitRateDlExt, guaranteedBitRateUlExt, guaranteedBitRateDlExt, maxBitRateUL_Ext2, maxBitRateDL_Ext2, guaranteedBitRateUL_Ext2, guaranteedBitRateDL_Ext2)"; variant (iel) "BYTEORDER(last)"; }; type record EPS_BearerContextStatus { /* 24.301 cl. 9.9.2.1 */ Loading @@ -1178,18 +1398,29 @@ type record NBIFOMContainer { B4_Type ebi4_1, /* EBI(1)- EBI(4) @sic R5s180552 Baseline Moving 2018 Phase 2 sic@ */ B1_Type spare, /* EBI(0) is spare and shall be coded as zero @sic R5s180552 Baseline Moving 2018 Phase 2 sic@ */ B8_Type ebi8_15 /* EBI(8)- EBI(15)*/ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (ebi5_7, ebi4_1, spare, ebi5_7)"; variant (iel) "BYTEORDER(last)"; }; type record UERadioCapId { /* 24.501 cl. 9.11.3.68 */ IEI8_Type iei optional, /* present in case of TV or TLV; omit in case of V */ Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ octetstring id } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (id)"; variant (iel) "BYTEORDER(last)"; variant (id) "BYTEORDER(last)"; }; type record UERadioCapIdDeletion { /* 24.501 cl. 9.11.3.69 */ IEI4_Type iei optional, B1_Type spare, B3_Type deleteReq } with { variant "FIELDORDER(msb)"; }; type record DRXParamCommon { /* 24.301 cl. 9.9.3.63 */ Loading @@ -1197,42 +1428,67 @@ type record NBIFOMContainer { Type4Length_Type iel, B4_Type spare, B4_Type drxValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, drxValue)"; variant (iel) "BYTEORDER(last)"; }; type record ReleaseAssistanceInd { /* 24.301 cl. 9.9.4.25 */ IEI4_Type iei optional, B2_Type spare, B2_Type dlDataExpected } with { variant "FIELDORDER(msb)"; }; type record WUSAssistInfo { /* 24.301 cl. 9.9.3.62 */ IEI8_Type iei optional, Type4Length_Type iel, record of WusInfoType infoType } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (infoType)"; variant (iel) "BYTEORDER(last)"; }; type record WusInfoType { B3_Type wusType, B5_Type pagingProbability, octetstring wusValue optional } with { variant "FIELDORDER(msb)"; variant (wusValue) "BYTEORDER(last)"; }; type record ServingPLMNRateControl { /* 24.301 cl. 9.9.4.28 */ IEI8_Type iei optional, Type4Length_Type iel, O2_Type servingPLMNRate } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (servingPLMNRate)"; variant (iel) "BYTEORDER(last)"; variant (servingPLMNRate) "BYTEORDER(last)"; }; type record ControlPlaneInd { /* 24.301 cl. 9.9.4.23 */ IEI4_Type iei optional, B3_Type spare, B1_Type cpIndValue } with { variant "FIELDORDER(msb)"; }; type record QoSParameters { O1_Type id, Type4Length_Type lenOfContent, octetstring qosParam } with { variant "FIELDORDER(msb)"; variant (lenOfContent) "LENGTHTO (qosParam)"; variant (lenOfContent) "BYTEORDER(last)"; variant (qosParam) "BYTEORDER(last)"; }; type record of QoSParameters QoSParametersList; Loading @@ -1242,7 +1498,11 @@ type record NBIFOMContainer { Type4Length_Type iel, B4_Type spare, B4_Type requestType } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, requestType)"; variant (iel) "BYTEORDER(last)"; }; //} with { encode "NAS Types" } } with { encode "RAW"; variant "" } } with { encode "RAW" } Loading
ccsrc/Externals/LIB_NG_NAS_Functions_ext.cc +4 −4 Viewed Changes for ccsrc/Externals/LIB_NG_NAS_Functions_ext.cc: 4 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -16,8 +16,8 @@ namespace LIB__NG__NAS__Functions { } INTEGER fx__f1(const BITSTRING& p_authK, const BITSTRING& p_rand, const BITSTRING& p_sqn, const BITSTRING& p_amf, BITSTRING& p_mac_a) { loggers::get_instance().log_msg(">>> fx__f1: p_authK: ", p_authK); loggers::get_instance().log_msg(">>> fx__f1: p_rand: ", p_rand); loggers::get_instance().log_msg(">>> fx__f1: p_authK: ", bit2oct(p_authK)); loggers::get_instance().log_msg(">>> fx__f1: p_rand: ", bit2oct(p_rand)); rijndael r; OCTETSTRING authK = bit2oct(p_authK); Loading Loading @@ -74,8 +74,8 @@ namespace LIB__NG__NAS__Functions { } INTEGER fx__f1star(const BITSTRING& p_authK, const BITSTRING& p_rand, const BITSTRING& p_sqn, const BITSTRING& p_amf, BITSTRING& p_mac_s) { loggers::get_instance().log_msg(">>> fx__f1star: p_authK: ", p_authK); loggers::get_instance().log_msg(">>> fx__f1star: p_rand: ", p_rand); loggers::get_instance().log_msg(">>> fx__f1star: p_authK: ", bit2oct(p_authK)); loggers::get_instance().log_msg(">>> fx__f1star: p_rand: ", bit2oct(p_rand)); rijndael r; OCTETSTRING authK = bit2oct(p_authK); Loading
ccsrc/Externals/common_ext.cc +9 −0 Viewed Changes for ccsrc/Externals/common_ext.cc: 9 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -26,13 +26,17 @@ namespace CommonDefs { */ //INTEGER fx__KeyDerivationFunction(INTEGER const&, BITSTRING const&, OCTETSTRING const&){ BITSTRING fx__KeyDerivationFunction(const INTEGER& p__KDF, const BITSTRING& p__Key, const OCTETSTRING& p__String){ loggers::get_instance().log_msg(">>> fx__KeyDerivationFunction: p__KDF: ", p__KDF); loggers::get_instance().log_msg(">>> fx__KeyDerivationFunction: p__Key: ", bit2oct(p__Key)); hmac h; // hash_algorithms::sha_256: p__KDF == 1 (tsc_KDF_HMAC_SHA_256 see CommonDefs.ttcn) OCTETSTRING res; if (h.generate(p__String, bit2oct(p__Key), res) == -1) { loggers::get_instance().error("fx__KeyDerivationFunction: Key derivation failed"); return int2bit(0, 0); } loggers::get_instance().log_msg("<<< fx__KeyDerivationFunction: res: ", res); return oct2bit(res); } /** Loading @@ -42,6 +46,11 @@ namespace CommonDefs { */ //INTEGER fx__GetSystemTime(CommonDefs::Struct__tm__Type&, INTEGER&){ void fx__GetSystemTime(CommonDefs::Struct__tm__Type& p__Struct__tm, INTEGER& p__TimezoneInfo){ const time_t t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); tm* now = std::localtime(&t); p__Struct__tm = Struct__tm__Type(now->tm_sec, now->tm_min, now->tm_hour, now->tm_mday, now->tm_mon, now->tm_year, now->tm_wday, now->tm_yday, now->tm_isdst); p__TimezoneInfo = 0; // TODO FSCOM return; } //void fx__CalculateFCS32(BITSTRING const&) { Loading
ccsrc/Ports/LibNGAP/NGAPPort.cc +2 −2 Viewed Changes for ccsrc/Ports/LibNGAP/NGAPPort.cc: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -77,12 +77,12 @@ namespace LibNGAP__Interface { } static_cast<ngap_layer*>(_layer)->add_upper_port(this); // Create layer /*IJ commented out // Create layer _layer = layer_stack_builder::get_instance()->create_layer_stack(it->second.c_str()); if (static_cast<ngap_layer*>(_layer) == NULL) { loggers::get_instance().error("NGAPPort::user_map: Invalid stack configuration: %s", it->second.c_str()); } static_cast<ngap_layer*>(_layer)->add_upper_port(this); static_cast<ngap_layer*>(_layer)->add_upper_port(this);*/ } else { loggers::get_instance().error("NGAPPort::user_map: No layers defined in configuration file"); } Loading
ttcn/Lib3GPP/Common/CommonDefs.ttcn +65 −63 Viewed Changes for ttcn/Lib3GPP/Common/CommonDefs.ttcn: 65 added lines, 63 removed lines. Original line number Diff line number Diff line Loading @@ -14,77 +14,77 @@ module CommonDefs { //---------------------------------------------------------------------------- // type definitions: type bitstring B1_Type length(1); type bitstring B2_Type length(2); type bitstring B3_Type length(3); type bitstring B4_Type length(4); type bitstring B5_Type length(5); type bitstring B6_Type length(6); type bitstring B7_Type length(7); type bitstring B1_Type length(1) with { variant "FIELDLENGTH(1)" }; type bitstring B2_Type length(2) with { variant "FIELDLENGTH(2)" }; type bitstring B3_Type length(3) with { variant "FIELDLENGTH(3)" }; type bitstring B4_Type length(4) with { variant "FIELDLENGTH(4)" }; type bitstring B5_Type length(5) with { variant "FIELDLENGTH(5)" }; type bitstring B6_Type length(6) with { variant "FIELDLENGTH(6)" }; type bitstring B7_Type length(7) with { variant "FIELDLENGTH(7)" }; type bitstring B7_15_Type length(7..15); // NOTE: length restriction can only be a range but not two destinct lengths type bitstring B8_Type length(8); type bitstring B9_Type length(9); type bitstring B10_Type length(10); type bitstring B11_Type length(11); type bitstring B12_Type length(12); type bitstring B13_Type length(13); type bitstring B14_Type length(14); type bitstring B15_Type length(15); type bitstring B16_Type length(16); type bitstring B18_Type length(18); type bitstring B20_Type length(20); type bitstring B22_Type length(22); type bitstring B24_Type length(24); type bitstring B27_Type length(27); type bitstring B28_Type length(28); type bitstring B32_Type length(32); type bitstring B36_Type length(36); type bitstring B40_Type length(40); type bitstring B41_Type length(41); type bitstring B42_Type length(42); type bitstring B43_Type length(43); type bitstring B45_Type length(45); type bitstring B47_Type length(47); type bitstring B48_Type length(48); type bitstring B56_Type length(56); type bitstring B64_Type length(64); type bitstring B80_Type length(80); type bitstring B112_Type length(112); type bitstring B128_Type length(128); type bitstring B160_Type length(160); type bitstring B184_Type length(184); type bitstring B192_Type length(192); type bitstring B256_Type length(256); type bitstring B8_Type length(8) with { variant "FIELDLENGTH(8)" }; type bitstring B9_Type length(9) with { variant "FIELDLENGTH(9)" }; type bitstring B10_Type length(10) with { variant "FIELDLENGTH(10)" }; type bitstring B11_Type length(11) with { variant "FIELDLENGTH(11)" }; type bitstring B12_Type length(12) with { variant "FIELDLENGTH(12)" }; type bitstring B13_Type length(13) with { variant "FIELDLENGTH(13)" }; type bitstring B14_Type length(14) with { variant "FIELDLENGTH(14)" }; type bitstring B15_Type length(15) with { variant "FIELDLENGTH(15)" }; type bitstring B16_Type length(16) with { variant "FIELDLENGTH(16)" }; type bitstring B18_Type length(18) with { variant "FIELDLENGTH(18)" }; type bitstring B20_Type length(20) with { variant "FIELDLENGTH(20)" }; type bitstring B22_Type length(22) with { variant "FIELDLENGTH(22)" }; type bitstring B24_Type length(24) with { variant "FIELDLENGTH(24)" }; type bitstring B27_Type length(27) with { variant "FIELDLENGTH(27)" }; type bitstring B28_Type length(28) with { variant "FIELDLENGTH(28)" }; type bitstring B32_Type length(32) with { variant "FIELDLENGTH(32)" }; type bitstring B36_Type length(36) with { variant "FIELDLENGTH(36)" }; type bitstring B40_Type length(40) with { variant "FIELDLENGTH(40)" }; type bitstring B41_Type length(41) with { variant "FIELDLENGTH(41)" }; type bitstring B42_Type length(42) with { variant "FIELDLENGTH(42)" }; type bitstring B43_Type length(43) with { variant "FIELDLENGTH(43)" }; type bitstring B45_Type length(45) with { variant "FIELDLENGTH(45)" }; type bitstring B47_Type length(47) with { variant "FIELDLENGTH(47)" }; type bitstring B48_Type length(48) with { variant "FIELDLENGTH(48)" }; type bitstring B56_Type length(56) with { variant "FIELDLENGTH(56)" }; type bitstring B64_Type length(64) with { variant "FIELDLENGTH(64)" }; type bitstring B80_Type length(80) with { variant "FIELDLENGTH(80)" }; type bitstring B112_Type length(112) with { variant "FIELDLENGTH(112)" }; type bitstring B128_Type length(128) with { variant "FIELDLENGTH(128)" }; type bitstring B160_Type length(160) with { variant "FIELDLENGTH(160)" }; type bitstring B184_Type length(184) with { variant "FIELDLENGTH(184)" }; type bitstring B192_Type length(192) with { variant "FIELDLENGTH(192)" }; type bitstring B256_Type length(256) with { variant "FIELDLENGTH(256)" }; type bitstring B32_128_Type length(32..128); type B128_Type B128_Key_Type; /* 128 bit security key */ type B256_Type B256_Key_Type; /* 256 bit security key */ type octetstring O1_Type length(1); type octetstring O2_Type length(2); type octetstring O3_Type length(3); type octetstring O4_Type length(4); type octetstring O5_Type length(5); type octetstring O6_Type length(6); type octetstring O8_Type length(8); type octetstring O9_Type length(9); type octetstring O10_Type length(10); type octetstring O13_Type length(13); type octetstring O14_Type length(14); type octetstring O15_Type length(15); type octetstring O16_Type length(16); type octetstring O28_Type length(28); type octetstring O32_Type length(32); type octetstring O43_Type length(43); type hexstring H1_Type length(1); type hexstring H2_Type length(2); type hexstring H4_Type length(4); type hexstring H12_Type length(12); type hexstring H14_Type length(14); type octetstring O1_Type length(1) with { variant "FIELDLENGTH(1)" }; type octetstring O2_Type length(2) with { variant "FIELDLENGTH(2)" }; type octetstring O3_Type length(3) with { variant "FIELDLENGTH(3)" }; type octetstring O4_Type length(4) with { variant "FIELDLENGTH(4)" }; type octetstring O5_Type length(5) with { variant "FIELDLENGTH(5)" }; type octetstring O6_Type length(6) with { variant "FIELDLENGTH(6)" }; type octetstring O8_Type length(8) with { variant "FIELDLENGTH(8)" }; type octetstring O9_Type length(9) with { variant "FIELDLENGTH(9)" }; type octetstring O10_Type length(10) with { variant "FIELDLENGTH(10)" }; type octetstring O13_Type length(13) with { variant "FIELDLENGTH(13)" }; type octetstring O14_Type length(14) with { variant "FIELDLENGTH(14)" }; type octetstring O15_Type length(15) with { variant "FIELDLENGTH(15)" }; type octetstring O16_Type length(16) with { variant "FIELDLENGTH(16)" }; type octetstring O28_Type length(28) with { variant "FIELDLENGTH(28)" }; type octetstring O32_Type length(32) with { variant "FIELDLENGTH(32)" }; type octetstring O43_Type length(43) with { variant "FIELDLENGTH(43)" }; type hexstring H1_Type length(1) with { variant "FIELDLENGTH(1)" }; type hexstring H2_Type length(2) with { variant "FIELDLENGTH(2)" }; type hexstring H4_Type length(4) with { variant "FIELDLENGTH(4)" }; type hexstring H12_Type length(12) with { variant "FIELDLENGTH(12)" }; type hexstring H14_Type length(14) with { variant "FIELDLENGTH(14)" }; type O1_Type Octet_Type; type hexstring HalfOctet_Type length(1); type hexstring HalfOctet_Type length(1) with { variant "FIELDLENGTH(1)" }; type record of B8_Type B8_List_Type; Loading Loading @@ -1695,4 +1695,6 @@ module CommonDefs { } return omit; } } with { encode "RAW" }
ttcn/Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn +278 −18 Viewed Changes for ttcn/Lib3GPP/NAS/NAS_CommonTypeDefs.ttcn: 278 added lines, 18 removed lines. Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ module NAS_CommonTypeDefs { type HalfOctet_Type SpareHalfOctet; type hexstring NAS_Mcc length(3); //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). type hexstring NAS_Mcc length(3) with { variant "FIELDLENGTH(3)" }; //* @desc Type which can be used to represent an MCC (as string of 3 decimal digits). type record of hexstring EmergencyNumList; Loading Loading @@ -65,7 +65,7 @@ module NAS_CommonTypeDefs { type B3_Type PdnTypeValue; type bitstring BcdDigit_Bit length(4); type bitstring BcdDigit_Bit length(4) with { variant "FIELDLENGTH(4)" }; type B3_Type NAS_IdType; type B8_Type NAS_CauseValue_Type; Loading @@ -92,6 +92,11 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TLV; omit in case of LV */ Type4Length_Type iel, octetstring nameValue length(1..100) } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (nameValue)"; variant (iel) "BYTEORDER(last)"; variant (nameValue) "BYTEORDER(last)"; }; type record AdditionalUpdateType { /* 24.301 cl. 9.9.3.0B @sic R5s100135 sic@ */ Loading @@ -99,6 +104,8 @@ module NAS_CommonTypeDefs { B2_Type pnb_CIOT, // 0=no additional info, 1=CP, 2=UP, 3=reserved @sic R5s160711 Baseline Moving sic@ B1_Type signallingActiveFlag, // @sic R5s160711 Baseline Moving sic@ B1_Type addUpdateTypeValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -110,6 +117,8 @@ module NAS_CommonTypeDefs { IEI4_Type iei optional, // '1000'B B1_Type spare1, KeySeq keySeq } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -120,6 +129,8 @@ module NAS_CommonTypeDefs { type record ConnectivityType { IEI4_Type iei, B4_Type connectivityValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -130,6 +141,8 @@ module NAS_CommonTypeDefs { // IEI is always skipped B1_Type switchOff, NAS_AttDetValue_Type typeOfDetach } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -141,6 +154,8 @@ module NAS_CommonTypeDefs { IEI4_Type iei, B3_Type spare, B1_Type lowPriority } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -154,6 +169,8 @@ module NAS_CommonTypeDefs { B4_Type cnDRXcoef, // CN specific DRX cycle length coefficient B1_Type splitOnCCCH, // Split on CCCCH B3_Type nonDRXtimer // non-DRX timer } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -164,6 +181,8 @@ module NAS_CommonTypeDefs { type record EmergServCat { B1_Type spare, B7_Type emergSCValue // Emergency Service Category value } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -175,6 +194,11 @@ module NAS_CommonTypeDefs { Type4Length_Type len, // length EmergServCat emergServCat, // Emergency Service Category octetstring digits length(0..10) // BCD numbers } with { variant "FIELDORDER(msb)"; variant (len) "LENGTHTO (emergServCat, digits)"; variant (len) "BYTEORDER(last)"; variant (digits) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -186,6 +210,10 @@ module NAS_CommonTypeDefs { IEI8_Type iei, // '00110100'B (34 hex) @sic R5s110420 sic@ Type4Length_Type iel, // length @sic R5s110420 sic@ record length (1..10) of EmergNum emergNum // Emergency Number } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (emergNum)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -197,6 +225,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ GprsTimerUnit unit, B5_Type timerValue } with { variant "FIELDORDER(msb)"; }; type B3_Type GprsTimerUnit; Loading @@ -211,6 +241,10 @@ module NAS_CommonTypeDefs { Type4Length_Type iel, // length @sic R5s110420 sic@ GprsTimerUnit unit, // Unit B5_Type gprsTimerValue // Timer value } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (unit, gprsTimerValue)"; variant (iel) "BYTEORDER(last)"; }; type GPRS_Timer2 GPRS_Timer3; // definition is identical @sic R5s150329 Baseline Moving sic@ Loading @@ -224,6 +258,8 @@ module NAS_CommonTypeDefs { IEI4_Type iei optional, /* present in case of TV; omit in case of V */ B1_Type spare, B3_Type requestValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -235,6 +271,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, NAS_PlmnId plmn, // MCC + MNC 3 digits each NAS_Lac lac // LAC } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -246,6 +284,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ LocAreaId lai, /* MCC + MNC + LAC */ O1_Type rac /* RAC */ } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -256,6 +296,8 @@ module NAS_CommonTypeDefs { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ B4_Type spare, B4_Type llcSapiValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -271,6 +313,11 @@ module NAS_CommonTypeDefs { B1_Type oddEvenInd, // Odd/even indicator NAS_IdType typeOfId, // Type of identity octetstring otherDigits length(0..10) // Other identity digits (10 octets rather than 8 to cover Guti as well) } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (idDigit1, oddEvenInd, typeOfId, otherDigits)"; variant (iel) "BYTEORDER(last)"; variant (otherDigits) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -301,6 +348,10 @@ module NAS_CommonTypeDefs { B1_Type cMSP, // CM Service Prompt Support B1_Type a5_3, // Algorithm A5/3 Support B1_Type a5_2 // Algorithm A5/2 Support } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare1_1, revLvl, eSIND, a5_1, rFPwrCap, spare1_2, pSCap, sSSI, sMCap, vBS, vGCS, fC, cM3, spare1_3, lCSVA, uCS2, soLSA, cMSP, a5_3, a5_2)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -405,6 +456,11 @@ module NAS_CommonTypeDefs { B1_Type xtdTSCSetCap optional, // @sic R5s150329 Baseline Moving sic@ B1_Type xtdEARFCNValueRange optional, // @sic R5s160712 Baseline Moving sic@ bitstring spareBits2 optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spareBit, multibandSupported, a5_7, a5_6, a5_5, a5_4, associatedRadioCapabilty2, spareBits1, associatedRadioCapabilty1, maskBit1, rGSM_RadioCapability, maskBit2, multiSlotClass, uCS2Treatment, extMeasurementCapability, maskBit3, msMeasurementCapability, maskBit4, msPositioningMethod, maskBit5, eDGE_MultiSlot, maskBit6, psk8_Struct, maskBit7, gSM400BandsSupported, gSM400AssociatedRadioCapability, maskBit8, gSM850AssociatedRadiioCapability, maskBit9, pCS1900AssociatedRadiioCapability, uMTS_FDD_RAT_Capability, uMTS384TDD_RAT_Capability, cDMA2000_RAT_Capability, maskBit10, dTM_GPRS_MultiSlotSubclass, singleSlotDTM, maskBit11, dTM_EGPRS_MultiSlorSubclass, maskBit12, singleBandSupport, maskBit13, gSM700AssociatedRadioCapability, uMTS128TDD_RAT_Capability, gERANFeatPack1, mask14, extDTM_GPRS_MultiSlotSubclass, etxDTM_EGPRS_MultiSlotSubclass, mask15, highMultislotCap, spare2, gERANFeatPack2, gMSKMultislotPowerProfile, pSKMultislotPowerProfile, mask17, tGSM400BandsSupported, tGSM400AssocRadioCap, spare, dlAdvancedRxPerf, dTMEhancCap, mask19, dTMGPRSHighMultislotClass, offsetReq, mask20, dTMEGPRSHighMultislotClass, rptdACCHCap, mask21, gsm710AssocRadioCap, mask22, tgsm810AssocRadioCap, cipheringModeSettingCap, addPositionCap, eutraFDDSupport, eutraTDDSupport, eutraMeasAndReporting, priorityBasedReselection, utraCSGCellsReporting, vamosLevel, tighterCap, selectCipheringDLSACCH, csPS_SRVCC_G2U, csPS_SRVCC_G2E, geranNwkSharing, eutraWidebandRSRQMeas, erBandSupport, utraMultipleFreqBandInd, eutraMultipleFreqBandInd, xtdTSCSetCap, xtdEARFCNValueRange)"; variant (iel) "BYTEORDER(last)"; variant (spareBits2) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -417,6 +473,8 @@ module NAS_CommonTypeDefs { B2_Type eDGE_RF_PowerCapability1 optional, // not present if pwrMask1 = 0 B1_Type pwrMask2, B2_Type eDGE_RF_PowerCapability2 optional // not present if pwrMask2 = 0 } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -426,6 +484,8 @@ module NAS_CommonTypeDefs { type record MS_MeasCapability { B4_Type sMS_VALUE, B4_Type sM_VALUE } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading Loading @@ -468,6 +528,11 @@ module NAS_CommonTypeDefs { B1_Type restrictEnhancedCoverageCap optional, // @sic R5s170598 Baseline Moving sic@ B1_Type dualConnectivityEUTRA_NR optional, // @sic R5s180553 Baseline Moving sic@ bitstring spareBits length (0..43) optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (gea1, smCapDedicated, smCapGPRS, ucs2, ssScreeningIndicator, soLSACap, revLevelIndicator, pfcFeatureMode, gea2, gea3, gea4, gea5, gea6, gea7, lcsVACap, psHOtoUTRAN_IuModeCap, psHOtoEUTRAN_S1ModeCap, emmCombinedCap, isrSupport, srvccToGERAN_UTRANCap, epcCap, nfCap, gERANNtwkShareCap, userPlaneIntegrityProtSupport, gia4, gia5, gia6, gia7, ePCOInd, restrictEnhancedCoverageCap, dualConnectivityEUTRA_NR, spareBits)"; variant (iel) "BYTEORDER(last)"; variant (spareBits) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -479,6 +544,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei, B3_Type spareBits, B1_Type n3ENInd } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -491,6 +558,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type iel, // B10_Type nriContainerValue, // @sic R5s140778 sic@ B6_Type spareBits // @sic R5s140778 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (nriContainerValue, spareBits)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -503,6 +574,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type iel, // @sic R5s110420 sic@ B1_Type spare, B7_Type idValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, idValue)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -514,6 +589,10 @@ type record Non3GPP_NW_ProvidedPolicies { IEI8_Type iei, Type4Length_Type iel, NAS_PlmnId plmn } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (plmn)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -526,6 +605,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type iel, // @sic R5s110420 sic@ record length(1..15) of NAS_PlmnId plmnList /* list of PLMNs */ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (plmnList)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -537,6 +620,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei, B3_Type spare, B1_Type extdPeriodicTimers } with { variant "FIELDORDER(msb)"; }; type PLMN_List.plmnList NAS_PlmnIdList_Type; Loading @@ -554,6 +639,11 @@ type record Non3GPP_NW_ProvidedPolicies { B3_Type configProtocol, record length (0..83) of ProtocolContainer pco optional } with { variant "FIELDORDER(msb)"; // FIXME variant (pco) "FORCEOMIT(protocolLongLength)"; variant (iel) "LENGTHTO (ext, spare, configProtocol, pco)"; variant (iel) "BYTEORDER(last)"; }; type record ProtocolContainer { Loading @@ -561,6 +651,11 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type protocolLength optional, // @sic R5s201386 Baseline Moving sic@ Type6Length_Type protocolLongLength optional, // always set to omit in UL @sic R5s201386 Baseline Moving sic@ octetstring content optional } with { variant "FIELDORDER(msb)"; variant (protocolLength) "LENGTHTO (content)"; variant (protocolLength) "BYTEORDER(last)"; variant (content) "BYTEORDER(last)"; }; type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; Loading @@ -570,6 +665,9 @@ type record Non3GPP_NW_ProvidedPolicies { B1_Type aer, B3_Type uplinkTimeUnit, O3_Type maxUplinkRate optional // @sic R5s170598 Baseline Moving sic@ } with { variant "FIELDORDER(msb)"; variant (maxUplinkRate) "BYTEORDER(last)"; }; // ============================================================================= // Structured Type Definition Loading @@ -580,6 +678,11 @@ type record Non3GPP_NW_ProvidedPolicies { IEI8_Type iei optional, /* present in case of TV; omit in case of V */ Type4Length_Type iel optional, // only present in 24.008 version of DETACH REQUEST message O3_Type signatureValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (signatureValue)"; variant (iel) "BYTEORDER(last)"; variant (signatureValue) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -620,6 +723,10 @@ type record Non3GPP_NW_ProvidedPolicies { B8_Type guaranteedBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ B8_Type maxBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving sic@ B8_Type guaranteedBitRateUL_Ext2 optional // @sic R5s1300195 Baseline Moving sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare1, delayClass, relabilityClass, peakThroughput, spare2, precedenceClass, spare3, meanThroughput, trafficClass, deliveryOrder, deliveryErrorSDU, maxSduSize, maxBitRateUL, maxBitRateDL, residualBER, sduErrorRatio, transferDelay, trafficHandlingPrio, guaranteedBitRateUL, guaranteedBitRateDL, spare4, signallingInd, sourceStatisticsDescriptor, maxBitRateDL_Ext, guaranteedBitRateDL_Ext, maxBitRateUL_Ext, guaranteedBitRateUL_Ext, maxBitRateDL_Ext2, guaranteedBitRateDL_Ext2, maxBitRateUL_Ext2, guaranteedBitRateUL_Ext2)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -631,6 +738,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei optional, /* present in case of TV; omit in case of V */ B1_Type spare, B3_Type levelValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -643,6 +752,10 @@ type record Non3GPP_NW_ProvidedPolicies { Type4Length_Type len, // length B8_Type bitMap1to8, // codec bitmap bits 1-8 B8_Type bitMap9to16 optional // codec bitmap bits 9-16 } with { variant "FIELDORDER(msb)"; variant (len) "LENGTHTO (bitMap1to8, bitMap9to16)"; variant (len) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -654,6 +767,10 @@ type record Non3GPP_NW_ProvidedPolicies { IEI8_Type iei, // '01000000'B (40 hex) @sic R5s110420 sic@ Type4Length_Type iel, // length @sic R5s110420 sic@ record of Codec codec// list of codecs } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (codec)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -665,6 +782,8 @@ type record Non3GPP_NW_ProvidedPolicies { // IEI is always skipped B1_Type spare, B3_Type typeValue } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -676,6 +795,8 @@ type record Non3GPP_NW_ProvidedPolicies { IEI4_Type iei optional, B3_Type spare3, TmsiStatusValue flag // Flag } with { variant "FIELDORDER(msb)"; }; // ============================================================================= Loading @@ -691,12 +812,21 @@ type record Non3GPP_NW_ProvidedPolicies { B4_Type noOfPktFilter, record of PacketFilter packetFilterList optional, record of TftParameter parameterList optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (tftOperationCode, eBit, noOfPktFilter, packetFilterList, parameterList)"; variant (iel) "BYTEORDER(last)"; }; type record TftParameter { IEI8_Type iei, Type4Length_Type iel, octetstring contents } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (contents)"; variant (iel) "BYTEORDER(last)"; variant (contents) "BYTEORDER(last)"; }; type record PacketFilter { Loading @@ -706,6 +836,11 @@ type record Non3GPP_NW_ProvidedPolicies { B8_Type precedence optional, Type4Length_Type iel optional, PacketFilterContents contents optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (contents)"; variant (iel) "BYTEORDER(last)"; variant (contents) "BYTEORDER(last)"; }; type record of PacketFilterComponent PacketFilterContents; Loading @@ -713,7 +848,9 @@ type record Non3GPP_NW_ProvidedPolicies { type record PacketFilterComponent { O1_Type id, PacketFilterComponentValue packetFilterComponentValue } with { variant (id)"FIELDLENGTH(8)";}; } with { variant "FIELDORDER(msb)"; }; type union PacketFilterComponentValue { O8_Type ipv4RemoteAddress, Loading @@ -726,6 +863,17 @@ type record Non3GPP_NW_ProvidedPolicies { O4_Type securityParameterIndex, O2_Type typeOfServiceTrafficClass, O3_Type flowLabel } with { variant "FIELDORDER(msb)"; variant (ipv4RemoteAddress) "BYTEORDER(last)"; variant (ipv6RemoteAddress) "BYTEORDER(last)"; variant (singleLocalPort) "BYTEORDER(last)"; variant (localPortRange) "BYTEORDER(last)"; variant (singleRemotePort) "BYTEORDER(last)"; variant (remotePortRange) "BYTEORDER(last)"; variant (securityParameterIndex) "BYTEORDER(last)"; variant (typeOfServiceTrafficClass) "BYTEORDER(last)"; variant (flowLabel) "BYTEORDER(last)"; }; type record UE_NetworkCap { // 24.301 cl. 9.9.3.34 Loading @@ -743,6 +891,8 @@ type record Non3GPP_NW_ProvidedPolicies { octetstring spare optional // @sic R5s100135 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO(eeaCap, eiaCap, ueaCap, uiaCap, srvcc_LPP_ProSeCap, cIoT_proSeCap, cIoT_V2X, edt_WUS, musim, spare)"; variant (iel) "BYTEORDER(last)"; } type record ReAttemptIndicator { // 24.301 cl. 9.9.4.13A, 24.008 cl. 10.5.6.5A Loading @@ -755,6 +905,8 @@ type record Non3GPP_NW_ProvidedPolicies { B1_Type ratcValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO(spare, eplmncValue, ratcValue)"; variant (iel) "BYTEORDER(last)"; } // ============================================================================= Loading @@ -768,8 +920,9 @@ type record Non3GPP_NW_ProvidedPolicies { B128_Type aUTN /* (as for UMTS) */ } with { variant "FIELDORDER(msb)"; variant "PRESENCE (iei = '20'O)"; variant (iel) "LENGTHTO (aUTN)" variant (iel) "LENGTHTO (aUTN)"; variant (iel) "BYTEORDER(last)"; variant (aUTN) "BYTEORDER(last)"; } // ============================================================================= Loading @@ -784,8 +937,9 @@ type record Non3GPP_NW_ProvidedPolicies { B112_Type auts // AUTS, 14 octets } with { variant "FIELDORDER(msb)"; variant "PRESENCE (iei = '30'O)"; variant (iel) "LENGTHTO (auts)" variant (iel) "LENGTHTO (auts)"; variant (iel) "BYTEORDER(last)"; variant (auts) "BYTEORDER(last)"; } // ============================================================================= Loading @@ -798,7 +952,7 @@ type record Non3GPP_NW_ProvidedPolicies { B128_Type randValue // Authentication Parameter RAND value } with { variant "FIELDORDER(msb)"; variant "PRESENCE (iei = '21'O)" variant (randValue) "BYTEORDER(last)"; } type record DaylightSavingTime { /* 24.301 cl. 9.9.3.5 -> 24.008 cl. 10.5.3.12 */ Loading @@ -808,6 +962,8 @@ type record Non3GPP_NW_ProvidedPolicies { B2_Type val } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, val)"; variant (iel) "BYTEORDER(last)"; }; type record NetworkName { /* 24.301 cl. 9.9.3.21 -> 24.008 cl. 10.5.3.5a */ Loading @@ -820,6 +976,9 @@ type record Non3GPP_NW_ProvidedPolicies { octetstring text } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (ext, codingScheme, addCI, spareBitCnt, text)"; variant (iel) "BYTEORDER(last)"; variant (text) "BYTEORDER(last)"; }; type record TimeZone { /* 24.301 cl. 9.9.3.26 -> 24.008 cl. 10.5.3.8 */ Loading Loading @@ -855,6 +1014,8 @@ type record Non3GPP_NW_ProvidedPolicies { B2_Type voiceDomainPrefEUTRA // @sic R5s110233 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spareBits, ueUsageSetting, voiceDomainPrefEUTRA)"; variant (iel) "BYTEORDER(last)"; }; type record IdentityType { /* 24.301 cl. 9.9.3.15 -> 24.008 cl. 10.5.3.4 */ Loading Loading @@ -919,6 +1080,9 @@ type record Non3GPP_NW_ProvidedPolicies { octetstring components // ASN.1 definitions BER encoded } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (components)"; variant (iel) "BYTEORDER(last)"; variant (components) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -946,6 +1110,8 @@ type record Non3GPP_NW_ProvidedPolicies { O1_Type sS_VersionInfo // ss version information } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (sS_VersionInfo)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading Loading @@ -987,6 +1153,10 @@ type record ExtdDRXParams { B4_Type pagingTimeWindow, B4_Type eDRXValue, B8_Type extdPTW optional // @sic R5s221182 Baseline Moving Rel-17 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (pagingTimeWindow, eDRXValue, extdPTW)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -998,6 +1168,11 @@ type record NBIFOMContainer { IEI8_Type iei, Type4Length_Type iel, // length octetstring containerContents } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (containerContents)"; variant (iel) "BYTEORDER(last)"; variant (containerContents) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1009,6 +1184,11 @@ type record NBIFOMContainer { IEI8_Type iei, Type4Length_Type iel, O2_Type dcnIdValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (dcnIdValue)"; variant (iel) "BYTEORDER(last)"; variant (dcnIdValue) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1023,6 +1203,10 @@ type record NBIFOMContainer { B4_Type spare, B3_Type configProtocol, record of ProtocolContainer pco optional } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (ext, spare, configProtocol, configProtocol)"; variant (iel) "BYTEORDER(last)"; }; type record of ProtocolContainer NAS_ExtdProtocolConfigOptions_Type; /* @sic R5-2001649 sic@ @status APPROVED (LTE_A_PRO, NBIOT) */ Loading @@ -1035,6 +1219,11 @@ type record NBIFOMContainer { IEI8_Type iei, Type4Length_Type iel, octetstring additionalInfo } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (additionalInfo)"; variant (iel) "BYTEORDER(last)"; variant (additionalInfo) "BYTEORDER(last)"; }; type record AuthenticationResponseParameter { /* 24.301 cl. 9.9.3.4 */ Loading @@ -1042,8 +1231,10 @@ type record NBIFOMContainer { Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ B32_128_Type res /* 4..16 octets */ } with { variant "PRESENCE (iei = '2D'O)"; variant (iel) "LENGTHTO (res)" variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (res)"; variant (iel) "BYTEORDER(last)"; variant (res) "BYTEORDER(last)"; } type record NAS_KeySetIdentifier { /* 24.301 cl. 9.9.3.21 */ Loading @@ -1052,8 +1243,6 @@ type record NBIFOMContainer { NAS_KsiValue nasKeySetId } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant "FIELDLENGTH(4)"; } type record HashMME { /* 24.301 cl. 9.9.3.50 @sic R5s170597 Baseline Moving sic@ */ Loading @@ -1062,8 +1251,9 @@ type record NBIFOMContainer { O8_Type hashMME } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant "FIELDLENGTH(4)"; variant (iel) "LENGTHTO (hashMME)"; variant (iel) "BYTEORDER(last)"; variant (hashMME) "BYTEORDER(last)"; } type record PDN_Address { /* 24.301 cl. 9.9.4.9 */ Loading @@ -1074,8 +1264,9 @@ type record NBIFOMContainer { octetstring adressInfo length(4..12) } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant (iel) "LENGTHTO (adressInfo)"; variant (iel) "LENGTHTO (spare, typeValue, adressInfo)"; variant (iel) "BYTEORDER(last)"; variant (adressInfo) "BYTEORDER(last)"; }; type record ReplayedNASMessageContainer { /* 24.301 cl. 9.9.3.51 @sic R5s170597 Baseline Moving sic@ */ Loading @@ -1084,8 +1275,9 @@ type record NBIFOMContainer { octetstring replayedNASMsgContainerValue } with { variant "FIELDORDER(msb)"; variant "FORCEOMIT(iei)"; variant (iel) "LENGTHTO (replayedNASMsgContainerValue)"; variant (iel) "BYTEORDER(last)"; variant (replayedNASMsgContainerValue) "BYTEORDER(last)"; }; type record NAS_SecurityAlgorithms { /* 24.301 cl. 9.9.3.23 */ Loading @@ -1094,6 +1286,8 @@ type record NBIFOMContainer { B3_Type cipheringType, /* Type of ciphering algorithm */ B1_Type spare2, B3_Type integrityType /* Type of integrity protection algorithm */ } with { variant "FIELDORDER(msb)"; }; type record Extd_EPS_QOS { /* 24.301 cl. 9.9.4.30 */ Loading @@ -1109,6 +1303,10 @@ type record NBIFOMContainer { B8_Type guaranteedBitRateUl_2, B8_Type guaranteedBitRateDl_1, B8_Type guaranteedBitRateDl_2 } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (unitMaxBitRate, maxBitRateUl_1, maxBitRateUl_2, maxBitRateDl_1, maxBitRateDl_2, unitGuaranteedBitRate, guaranteedBitRateUl_1, guaranteedBitRateUl_2, guaranteedBitRateDl_1, guaranteedBitRateDl_2)"; variant (iel) "BYTEORDER(last)"; }; type record UE_Status { // 24.501 cl. 9.11.3.56 Loading @@ -1117,6 +1315,10 @@ type record NBIFOMContainer { B6_Type spare, B1_Type n1ModeRegistered, B1_Type s1ModeRegistered } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, n1ModeRegistered, s1ModeRegistered)"; variant (iel) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1130,6 +1332,10 @@ type record NBIFOMContainer { B7_Type spareBits, // @sic R5s201386 Baseline Moving sic@ B1_Type extdEmergNumListValidity, record of ExtdEmergNum emergNum } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spareBits, extdEmergNumListValidity, emergNum)"; variant (iel) "BYTEORDER(last)"; }; type record ExtdEmergNum { Loading @@ -1137,6 +1343,12 @@ type record NBIFOMContainer { octetstring digits, // BCD numbers Type4Length_Type lengthOfSubService, octetstring subServices } with { variant "FIELDORDER(msb)"; variant (lengthOfSubService) "LENGTHTO (subServices)"; variant (lengthOfSubService) "BYTEORDER(last)"; variant (digits) "BYTEORDER(last)"; variant (subServices) "BYTEORDER(last)"; }; // ============================================================================= Loading @@ -1151,6 +1363,10 @@ type record NBIFOMContainer { O1_Type ueaCap optional, // @sic R5s100135 sic@ O1_Type uiaCap optional, // @sic R5s100135 sic@ O1_Type geaCap optional // @sic R5s100135 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (eeaCap, eiaCap, ueaCap, uiaCap, geaCap)"; variant (iel) "BYTEORDER(last)"; }; type record EPS_QualityOfService { /* 24.301 cl. 9.9.4.3 */ Loading @@ -1169,6 +1385,10 @@ type record NBIFOMContainer { B8_Type maxBitRateDL_Ext2 optional, // @sic R5s1300195 Baseline Moving, R5s180640 sic@ B8_Type guaranteedBitRateUL_Ext2 optional, // @sic R5s1300195 Baseline Moving, R5s180640 sic@ B8_Type guaranteedBitRateDL_Ext2 optional // @sic R5s1300195 Baseline Moving, R5s180640 sic@ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (maxBitRateUl, maxBitRateDl, guaranteedBitRateUl, guaranteedBitRateDl, maxBitRateUlExt, maxBitRateDlExt, guaranteedBitRateUlExt, guaranteedBitRateDlExt, maxBitRateUL_Ext2, maxBitRateDL_Ext2, guaranteedBitRateUL_Ext2, guaranteedBitRateDL_Ext2)"; variant (iel) "BYTEORDER(last)"; }; type record EPS_BearerContextStatus { /* 24.301 cl. 9.9.2.1 */ Loading @@ -1178,18 +1398,29 @@ type record NBIFOMContainer { B4_Type ebi4_1, /* EBI(1)- EBI(4) @sic R5s180552 Baseline Moving 2018 Phase 2 sic@ */ B1_Type spare, /* EBI(0) is spare and shall be coded as zero @sic R5s180552 Baseline Moving 2018 Phase 2 sic@ */ B8_Type ebi8_15 /* EBI(8)- EBI(15)*/ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (ebi5_7, ebi4_1, spare, ebi5_7)"; variant (iel) "BYTEORDER(last)"; }; type record UERadioCapId { /* 24.501 cl. 9.11.3.68 */ IEI8_Type iei optional, /* present in case of TV or TLV; omit in case of V */ Type4Length_Type iel optional, /* present in case of LV or TLV; omit in case of V */ octetstring id } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (id)"; variant (iel) "BYTEORDER(last)"; variant (id) "BYTEORDER(last)"; }; type record UERadioCapIdDeletion { /* 24.501 cl. 9.11.3.69 */ IEI4_Type iei optional, B1_Type spare, B3_Type deleteReq } with { variant "FIELDORDER(msb)"; }; type record DRXParamCommon { /* 24.301 cl. 9.9.3.63 */ Loading @@ -1197,42 +1428,67 @@ type record NBIFOMContainer { Type4Length_Type iel, B4_Type spare, B4_Type drxValue } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, drxValue)"; variant (iel) "BYTEORDER(last)"; }; type record ReleaseAssistanceInd { /* 24.301 cl. 9.9.4.25 */ IEI4_Type iei optional, B2_Type spare, B2_Type dlDataExpected } with { variant "FIELDORDER(msb)"; }; type record WUSAssistInfo { /* 24.301 cl. 9.9.3.62 */ IEI8_Type iei optional, Type4Length_Type iel, record of WusInfoType infoType } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (infoType)"; variant (iel) "BYTEORDER(last)"; }; type record WusInfoType { B3_Type wusType, B5_Type pagingProbability, octetstring wusValue optional } with { variant "FIELDORDER(msb)"; variant (wusValue) "BYTEORDER(last)"; }; type record ServingPLMNRateControl { /* 24.301 cl. 9.9.4.28 */ IEI8_Type iei optional, Type4Length_Type iel, O2_Type servingPLMNRate } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (servingPLMNRate)"; variant (iel) "BYTEORDER(last)"; variant (servingPLMNRate) "BYTEORDER(last)"; }; type record ControlPlaneInd { /* 24.301 cl. 9.9.4.23 */ IEI4_Type iei optional, B3_Type spare, B1_Type cpIndValue } with { variant "FIELDORDER(msb)"; }; type record QoSParameters { O1_Type id, Type4Length_Type lenOfContent, octetstring qosParam } with { variant "FIELDORDER(msb)"; variant (lenOfContent) "LENGTHTO (qosParam)"; variant (lenOfContent) "BYTEORDER(last)"; variant (qosParam) "BYTEORDER(last)"; }; type record of QoSParameters QoSParametersList; Loading @@ -1242,7 +1498,11 @@ type record NBIFOMContainer { Type4Length_Type iel, B4_Type spare, B4_Type requestType } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, requestType)"; variant (iel) "BYTEORDER(last)"; }; //} with { encode "NAS Types" } } with { encode "RAW"; variant "" } } with { encode "RAW" }