Skip to content
Commits on Source (11)
  • Pau Espin Pedrol's avatar
    cosmetic: Fix trailing whitespace · 890eb69b
    Pau Espin Pedrol authored
    890eb69b
  • Pau Espin Pedrol's avatar
    NAS_Common_Templates: cdr_NR5GC_UENetworkCap(): Fix build with titan · 7adf9a92
    Pau Espin Pedrol authored
    titan 11.0.0 doesn't support concatenating templates.
    7adf9a92
  • Pau Espin Pedrol's avatar
    NAS_CommonTypeDefs.ttcn: Use specific type instead of 'record of' · eb41232b
    Pau Espin Pedrol authored
    This fixes build errors with titan 11.0.0:
    
    NAS_CommonTemplates.ttcn:1448.20-39: error: Type mismatch: a value or template of type `@NAS_CommonTypeDefs.ExtdProtocolConfigOptions.pco' was expected instead of `@NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type'
    
    NAS_AuxiliaryDefsAndFunctions.ttcn:124.42-50: error: Type mismatch: a value or template of type `@NAS_CommonTypeDefs.ProtocolConfigOptions.pco' was expected instead of `@NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type
    
    NAS_AuxiliaryDefsAndFunctions.ttcn:124.42-50: error: Type mismatch: a value or template of type `@NAS_CommonTypeDefs.NAS_ProtocolConfigOptions_Type' was expected instead of `@NAS_CommonTypeDefs.NAS_ExtdProtocolConfigOptions_Type'
    eb41232b
  • Pau Espin Pedrol's avatar
    NG_NAS_TypeDefs.ttcn: Use specific type instead of 'record of' · af8b2b18
    Pau Espin Pedrol authored
    titan 11.0.0 fails during compilation with:
    
    NG_NAS_Common.ttcn:405.21-55: error: Type mismatch: a value of type `@NG_NAS_TypeDefs.XtdRejectedS_NSSAI_List' was expected instead of `@NG_NAS_TypeDefs.PartialXtdRejectedNSSAIType0.rejectS_NSSAI'
    NG_NAS_Templates.ttcn:2212.22-32: error: Type mismatch: a value or template of type `@NG_NAS_TypeDefs.QoS_Flow.parameterList' was expected instead of `@NAS_CommonTypeDefs.QoSParametersList
    NG_NAS_Templates.ttcn:2364.24-34: error: Type mismatch: a value or template of type `@NG_NAS_TypeDefs.QoSFlowDescr.listofFlows' was expected instead of `@NG_NAS_TypeDefs.QoS_FlowList
    af8b2b18
  • Pau Espin Pedrol's avatar
    NAS_AuxiliaryDefsAndFunctions.ttcn: Fix build with titan · 2b3d98ba
    Pau Espin Pedrol authored
    titan 11.0.0 fails to compile:
       NAS_AuxiliaryDefsAndFunctions.ttcn:319.12-34: error: Reference to a value was expected instead of template variable `v_ProtocolContainerList'
       NAS_AuxiliaryDefsAndFunctions.ttcn:319.38-70: error: Reference to a value was expected instead of template parameter `p_AdditionalProtocolConfigOptions'
    2b3d98ba
  • Pau Espin Pedrol's avatar
    CommonDefs.ttcn: Fix compilation errors · 86d05d81
    Pau Espin Pedrol authored
    Fix compilation errors building with titan 9.0.0:
    CommonDefs.ttcn:1298.12-23: error: Reference to a value was expected instead of template variable `v_Substring1'
    CommonDefs.ttcn:1298.12-31: In the right operand of operation `&':
    CommonDefs.ttcn:1298.27-31: error: Reference to a value was expected instead of template parameter `p_Bit'
    CommonDefs.ttcn:1298.12-46: In the right operand of operation `&':
    CommonDefs.ttcn:1298.35-46: error: Reference to a value was expected instead of template variable `v_Substring2'
    86d05d81
  • Pau Espin Pedrol's avatar
  • Pau Espin Pedrol's avatar
  • Pau Espin Pedrol's avatar
  • Pau Espin Pedrol's avatar
    NG_NAS_TypeDefs.ttcn: Fix dec of NG_SECURITY_MODE_COMMAND · 4bb557ec
    Pau Espin Pedrol authored
    The iei field in nasSecurityAlgorithms is filled by the decoder, which should be
    decoded as "omit".
    type record NAS_KeySetIdentifier already has a variant "FORCEOMIT(iei)"
    in its definition, but according to "Programmers' Technical Reference
    Guide for the TITAN TTCN-3 Toolset", FORCEOMIT "Forces the lower-level
    optional field(s) specified by the parameters to always be
    omitted. It does not affect the own fields of the defining record/set."
    
    Applying the variant in the parent-level record fixes the decoding
    issue.
    4bb557ec
  • Bostjan Pintar's avatar
    Merge branch 'pespin/pr' into 'main' · 1d79f32e
    Bostjan Pintar authored
    Multiple fixes to build and run with eclipse titan
    
    See merge request int/5g-core/nas!6
    1d79f32e
...@@ -1285,8 +1285,8 @@ module CommonDefs { ...@@ -1285,8 +1285,8 @@ module CommonDefs {
template (present) B1_Type p_Bit) return template (present) bitstring template (present) B1_Type p_Bit) return template (present) bitstring
{ /* ES 201 873-1 clause 15.6.1 does not allow index notation */ { /* ES 201 873-1 clause 15.6.1 does not allow index notation */
/* p_Bitstring needs to be a bitstring with well-defined length (i.e. allowing lengthof(p_Bitstring)) */ /* p_Bitstring needs to be a bitstring with well-defined length (i.e. allowing lengthof(p_Bitstring)) */
var template (present) bitstring v_Substring1; var bitstring v_Substring1;
var template (present) bitstring v_Substring2; var bitstring v_Substring2;
var integer v_Length := lengthof(p_Bitstring); var integer v_Length := lengthof(p_Bitstring);
if (p_Position >= v_Length) { if (p_Position >= v_Length) {
...@@ -1295,7 +1295,7 @@ module CommonDefs { ...@@ -1295,7 +1295,7 @@ module CommonDefs {
v_Substring1 := substr(p_Bitstring, 0, p_Position); v_Substring1 := substr(p_Bitstring, 0, p_Position);
v_Substring2 := substr(p_Bitstring, p_Position + 1, v_Length - p_Position - 1); v_Substring2 := substr(p_Bitstring, p_Position + 1, v_Length - p_Position - 1);
return v_Substring1 & p_Bit & v_Substring2; return v_Substring1 & valueof(p_Bit) & v_Substring2;
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
......
...@@ -117,7 +117,7 @@ module NAS_AuxiliaryDefsAndFunctions { ...@@ -117,7 +117,7 @@ module NAS_AuxiliaryDefsAndFunctions {
function f_ExtdProtocolConfigOptions_Get(template (omit) ExtdProtocolConfigOptions p_Pco, function f_ExtdProtocolConfigOptions_Get(template (omit) ExtdProtocolConfigOptions p_Pco,
O2_Type p_ProtocolID) return template (omit) octetstring O2_Type p_ProtocolID) return template (omit) octetstring
{ {
var NAS_ProtocolConfigOptions_Type v_ProtocolConfigOptions; var NAS_ExtdProtocolConfigOptions_Type v_ProtocolConfigOptions;
var integer i; var integer i;
if (isvalue(p_Pco.pco)) { if (isvalue(p_Pco.pco)) {
...@@ -316,7 +316,7 @@ module NAS_AuxiliaryDefsAndFunctions { ...@@ -316,7 +316,7 @@ module NAS_AuxiliaryDefsAndFunctions {
v_PcoCnt := v_PcoCnt + 1; v_PcoCnt := v_PcoCnt + 1;
} }
} }
return v_ProtocolContainerList & p_AdditionalProtocolConfigOptions; return valueof(v_ProtocolContainerList) & valueof(p_AdditionalProtocolConfigOptions);
} }
/* /*
......
...@@ -1034,8 +1034,8 @@ module NAS_CommonTemplates { ...@@ -1034,8 +1034,8 @@ module NAS_CommonTemplates {
template (present) UE_NetworkCap cdr_NR5GC_UENetworkCap (template (omit) IEI8_Type p_IEI) template (present) UE_NetworkCap cdr_NR5GC_UENetworkCap (template (omit) IEI8_Type p_IEI)
modifies cr_UENetworkCap_Any := modifies cr_UENetworkCap_Any :=
{ /* @status APPROVED (ENDC, NR5GC_IRAT) */ { /* @status APPROVED (ENDC, NR5GC_IRAT) */
cIoT_proSeCap := ('1'B & ? length (7)), // @sic R5-196647, R5-217714 sic@ cIoT_proSeCap := '1???????'B, // @sic R5-196647, R5-217714 sic@
cIoT_V2X := (? length (2) & '1'B & ? length (5)) cIoT_V2X := '??1?????'B
}; };
template (present) VoiceDomainPref cr_VoiceDomainPref_Any := template (present) VoiceDomainPref cr_VoiceDomainPref_Any :=
......
...@@ -24,8 +24,8 @@ module NAS_CommonTypeDefs { ...@@ -24,8 +24,8 @@ module NAS_CommonTypeDefs {
type HalfOctet_Type IEI4_Type; /* 4 bit info element identifier for type 1 IEs */ type HalfOctet_Type IEI4_Type; /* 4 bit info element identifier for type 1 IEs */
type Octet_Type IEI8_Type; /* 8 bit info element identifier */ type Octet_Type IEI8_Type; /* 8 bit info element identifier */
type O1_Type Type4Length_Type; type O1_Type Type4Length_Type with { variant "COMP(nosign), BYTEORDER(last)" };
type O2_Type Type6Length_Type; type O2_Type Type6Length_Type with { variant "COMP(nosign), BYTEORDER(last)" };
type HalfOctet_Type SpareHalfOctet; type HalfOctet_Type SpareHalfOctet;
...@@ -458,7 +458,7 @@ module NAS_CommonTypeDefs { ...@@ -458,7 +458,7 @@ module NAS_CommonTypeDefs {
bitstring spareBits2 optional bitstring spareBits2 optional
} with { } with {
variant "FIELDORDER(msb)"; 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) "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, spareBits2)";
variant (iel) "BYTEORDER(last)"; variant (iel) "BYTEORDER(last)";
variant (spareBits2) "BYTEORDER(last)"; variant (spareBits2) "BYTEORDER(last)";
}; };
...@@ -637,8 +637,7 @@ type record Non3GPP_NW_ProvidedPolicies { ...@@ -637,8 +637,7 @@ type record Non3GPP_NW_ProvidedPolicies {
B1_Type ext, B1_Type ext,
B4_Type spare, B4_Type spare,
B3_Type configProtocol, B3_Type configProtocol,
record length (0..83) of NAS_ProtocolConfigOptions_Type pco optional
ProtocolContainer pco optional
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
// FIXME variant (pco) "FORCEOMIT(protocolLongLength)"; // FIXME variant (pco) "FORCEOMIT(protocolLongLength)";
...@@ -658,7 +657,7 @@ type record Non3GPP_NW_ProvidedPolicies { ...@@ -658,7 +657,7 @@ type record Non3GPP_NW_ProvidedPolicies {
variant (content) "BYTEORDER(last)"; variant (content) "BYTEORDER(last)";
}; };
type ProtocolConfigOptions.pco NAS_ProtocolConfigOptions_Type; type record length (0..83) of ProtocolContainer NAS_ProtocolConfigOptions_Type;
type record APNRateControlParams { // 3GPP 24.008 / 10.5.6.3.2 type record APNRateControlParams { // 3GPP 24.008 / 10.5.6.3.2
B4_Type spare, B4_Type spare,
...@@ -1202,10 +1201,10 @@ type record NBIFOMContainer { ...@@ -1202,10 +1201,10 @@ type record NBIFOMContainer {
B1_Type ext, B1_Type ext,
B4_Type spare, B4_Type spare,
B3_Type configProtocol, B3_Type configProtocol,
record of ProtocolContainer pco optional NAS_ExtdProtocolConfigOptions_Type pco optional
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (iel) "LENGTHTO (ext, spare, configProtocol, configProtocol)"; variant (iel) "LENGTHTO (ext, spare, configProtocol, pco)";
variant (iel) "BYTEORDER(last)"; variant (iel) "BYTEORDER(last)";
}; };
...@@ -1387,7 +1386,7 @@ type record NBIFOMContainer { ...@@ -1387,7 +1386,7 @@ type record NBIFOMContainer {
B8_Type guaranteedBitRateDL_Ext2 optional // @sic R5s1300195 Baseline Moving, R5s180640 sic@ B8_Type guaranteedBitRateDL_Ext2 optional // @sic R5s1300195 Baseline Moving, R5s180640 sic@
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (iel) "LENGTHTO (maxBitRateUl, maxBitRateDl, guaranteedBitRateUl, guaranteedBitRateDl, maxBitRateUlExt, maxBitRateDlExt, guaranteedBitRateUlExt, guaranteedBitRateDlExt, maxBitRateUL_Ext2, maxBitRateDL_Ext2, guaranteedBitRateUL_Ext2, guaranteedBitRateDL_Ext2)"; variant (iel) "LENGTHTO (qci, maxBitRateUl, maxBitRateDl, guaranteedBitRateUl, guaranteedBitRateDl, maxBitRateUlExt, maxBitRateDlExt, guaranteedBitRateUlExt, guaranteedBitRateDlExt, maxBitRateUL_Ext2, maxBitRateDL_Ext2, guaranteedBitRateUL_Ext2, guaranteedBitRateDL_Ext2)";
variant (iel) "BYTEORDER(last)"; variant (iel) "BYTEORDER(last)";
}; };
...@@ -1400,7 +1399,7 @@ type record NBIFOMContainer { ...@@ -1400,7 +1399,7 @@ type record NBIFOMContainer {
B8_Type ebi8_15 /* EBI(8)- EBI(15)*/ B8_Type ebi8_15 /* EBI(8)- EBI(15)*/
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (iel) "LENGTHTO (ebi5_7, ebi4_1, spare, ebi5_7)"; variant (iel) "LENGTHTO (ebi5_7, ebi4_1, spare, ebi8_15)";
variant (iel) "BYTEORDER(last)"; variant (iel) "BYTEORDER(last)";
}; };
......
...@@ -742,6 +742,7 @@ module NG_NAS_TypeDefs { ...@@ -742,6 +742,7 @@ module NG_NAS_TypeDefs {
S1_UE_SecurityCapability replayedUESecurityCap optional /* cl. 9.11.3.48A O TLV 4-7 IEI=19 Dec18 @sic R5s190421 sic@*/ S1_UE_SecurityCapability replayedUESecurityCap optional /* cl. 9.11.3.48A O TLV 4-7 IEI=19 Dec18 @sic R5s190421 sic@*/
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (nasSecurityAlgorithms) "FORCEOMIT(iei)";
variant (ngNasKSI) "FORCEOMIT(iei)"; variant (ngNasKSI) "FORCEOMIT(iei)";
variant (ueSecurityCapability) "FORCEOMIT(iei)"; variant (ueSecurityCapability) "FORCEOMIT(iei)";
variant "TAG(imeisvRequest, iei = 'E'H; variant "TAG(imeisvRequest, iei = 'E'H;
...@@ -2218,7 +2219,7 @@ module NG_NAS_TypeDefs { ...@@ -2218,7 +2219,7 @@ module NG_NAS_TypeDefs {
B1_Type spare, B1_Type spare,
B3_Type typeOfList ('000'B), B3_Type typeOfList ('000'B),
B4_Type numOfElements, B4_Type numOfElements,
record of XtdRejectedS_NSSAI rejectS_NSSAI // @sic RAN5#97 sidebar sic@ XtdRejectedS_NSSAI_List rejectS_NSSAI // @sic RAN5#97 sidebar sic@
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
}; };
...@@ -2249,6 +2250,7 @@ module NG_NAS_TypeDefs { ...@@ -2249,6 +2250,7 @@ module NG_NAS_TypeDefs {
PartialXtdRejectedNSSAI_List partialXtd // @sic RAN5#97 sidebar sic@ PartialXtdRejectedNSSAI_List partialXtd // @sic RAN5#97 sidebar sic@
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (iel) "LENGTHTO(partialXtd)";
}; };
type record NG_PagingRestriction { /* 24.501 cl. 9.11.3.77 */ type record NG_PagingRestriction { /* 24.501 cl. 9.11.3.77 */
...@@ -2508,7 +2510,7 @@ module NG_NAS_TypeDefs { ...@@ -2508,7 +2510,7 @@ module NG_NAS_TypeDefs {
B6_Type spare6, B6_Type spare6,
B1_Type eBit, B1_Type eBit,
B6_Type numOfParameters, B6_Type numOfParameters,
record of QoSParameters parameterList optional QoSParametersList parameterList optional
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
}; };
...@@ -2517,7 +2519,7 @@ module NG_NAS_TypeDefs { ...@@ -2517,7 +2519,7 @@ module NG_NAS_TypeDefs {
type record QoSFlowDescr { /* 24.501 cl. 9.11.4.12 */ type record QoSFlowDescr { /* 24.501 cl. 9.11.4.12 */
IEI8_Type iei, // @sic R5s190470 sic@ IEI8_Type iei, // @sic R5s190470 sic@
Type6Length_Type iel, Type6Length_Type iel,
record of QoS_Flow listofFlows QoS_FlowList listofFlows
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (iel) "LENGTHTO (listofFlows)"; variant (iel) "LENGTHTO (listofFlows)";
...@@ -2893,6 +2895,7 @@ module NG_NAS_TypeDefs { ...@@ -2893,6 +2895,7 @@ module NG_NAS_TypeDefs {
PacketCounterValueList counterValue PacketCounterValueList counterValue
} with { } with {
variant "FIELDORDER(msb)"; variant "FIELDORDER(msb)";
variant (iel) "LENGTHTO(counterValue)";
}; };
type record UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE { type record UE_TEST_LOOP_NR_SIDELINK_COUNTER_RESPONSE {
......