diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c24254352b71a0b76474ad9981fac41d875aebcc..7c98eee47f69c446b7964cd60796dc33eea69267 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,28 +5,33 @@ before_script: stages: - Syntax - - Lint - - Compile + - CompileAndLint + - Merge + +checkXSD: + stage: Syntax + script: + - python3 testing/check_xsd.py parseASN1: stage: Syntax script: - python3 testing/parse_asn1.py -checkXSD: - stage: Syntax +compileASN1: + stage: CompileAndLint script: - - python3 testing/check_xsd.py + - python3 testing/compile_asn1.py lintASN1: - stage: Lint + stage: CompileAndLint script: - python3 testing/lint_asn1.py allow_failure: true -compileASN1: - stage: Compile +MergeTest: + stage: Merge script: - - python3 testing/compile_asn1.py - allow_failure: true + - python3 testing/merge_test.py + diff --git a/33128/r15/TS33128Payloads.asn b/33128/r15/TS33128Payloads.asn index f1abf2475fc6342dc258d7fbc65f1b166d0d0e6c..fce967396ca66aadfacc23d11201b0bc45202173 100644 --- a/33128/r15/TS33128Payloads.asn +++ b/33128/r15/TS33128Payloads.asn @@ -141,7 +141,7 @@ LINotificationPayload ::= SEQUENCE LINotificationMessage ::= CHOICE { - lINotification [1] LINotification + lINotification [1] LINotification } -- ================== @@ -413,7 +413,7 @@ QFI ::= INTEGER (0..63) -- 5G UDM definitions -- ================== -UDMServingSystemMessage ::= SEQUENCE +UDMServingSystemMessage ::= SEQUENCE { sUPI [1] SUPI, pEI [2] PEI OPTIONAL, @@ -512,7 +512,7 @@ LALSReport ::= SEQUENCE PDHeaderReport ::= SEQUENCE { - pDUSessionID [1] PDUSessionID, + pDUSessionID [1] PDUSessionID, sourceIPAddress [2] IPAddress, sourcePort [3] PortNumber OPTIONAL, destinationIPAddress [4] IPAddress, @@ -834,9 +834,9 @@ UEEndpointAddress ::= CHOICE Location ::= SEQUENCE { - locationInfo [1] LocationInfo OPTIONAL, - positioningInfo [2] PositioningInfo OPTIONAL, - locationPresenceReport [3] LocationPresenceReport OPTIONAL + locationInfo [1] LocationInfo OPTIONAL, + positioningInfo [2] PositioningInfo OPTIONAL, + locationPresenceReport [3] LocationPresenceReport OPTIONAL } CellSiteInformation ::= SEQUENCE @@ -850,7 +850,7 @@ CellSiteInformation ::= SEQUENCE LocationInfo ::= SEQUENCE { userLocation [1] UserLocation OPTIONAL, - currentLoc [2] BOOLEAN OPTIONAL, + currentLoc [2] BOOLEAN OPTIONAL, geoInfo [3] GeographicArea OPTIONAL, rATType [4] RATType OPTIONAL, timeZone [5] TimeZone OPTIONAL, @@ -872,8 +872,8 @@ EUTRALocation ::= SEQUENCE eCGI [2] ECGI, ageOfLocatonInfo [3] INTEGER OPTIONAL, uELocationTimestamp [4] Timestamp OPTIONAL, - geographicalInformation [5] UTF8String OPTIONAL, - geodeticInformation [6] UTF8String OPTIONAL, + geographicalInformation [5] UTF8String OPTIONAL, + geodeticInformation [6] UTF8String OPTIONAL, globalNGENbID [7] GlobalRANNodeID OPTIONAL, cellSiteInformation [8] CellSiteInformation OPTIONAL } @@ -886,7 +886,7 @@ NRLocation ::= SEQUENCE ageOfLocatonInfo [3] INTEGER OPTIONAL, uELocationTimestamp [4] Timestamp OPTIONAL, geographicalInformation [5] UTF8String OPTIONAL, - geodeticInformation [6] UTF8String OPTIONAL, + geodeticInformation [6] UTF8String OPTIONAL, globalGNbID [7] GlobalRANNodeID OPTIONAL, cellSiteInformation [8] CellSiteInformation OPTIONAL } @@ -895,7 +895,7 @@ NRLocation ::= SEQUENCE N3GALocation ::= SEQUENCE { tAI [1] TAI OPTIONAL, - n3IWFID [2] N3IWFIDNGAP OPTIONAL, + n3IWFID [2] N3IWFIDNGAP OPTIONAL, uEIPAddr [3] IPAddr OPTIONAL, portNumber [4] INTEGER OPTIONAL } @@ -949,7 +949,7 @@ RANCGI ::= CHOICE nCGI [2] NCGI } -CellInformation ::= SEQUENCE +CellInformation ::= SEQUENCE { rANCGI [1] RANCGI, cellSiteinformation [2] CellSiteInformation OPTIONAL, @@ -983,12 +983,12 @@ NGENbID ::= CHOICE PositioningInfo ::= SEQUENCE { positionInfo [1] LocationData OPTIONAL, - rawMLPResponse [2] RawMLPResponse OPTIONAL + rawMLPResponse [2] RawMLPResponse OPTIONAL } RawMLPResponse ::= CHOICE { - -- The following parameter contains a copy of unparsed XML code of the + -- The following parameter contains a copy of unparsed XML code of the -- MLP response message, i.e. the entire XML document containing -- a (described in OMA-TS-MLP-V3_5-20181211-C [20], clause 5.2.3.2.2) or -- a (described in OMA-TS-MLP-V3_5-20181211-C [20], clause 5.2.3.2.3) MLP message. @@ -1287,7 +1287,7 @@ HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE vUncertainty [6] SpeedUncertainty } --- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1 +-- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1 Altitude ::= UTF8String Angle ::= INTEGER (0..360) Uncertainty ::= INTEGER (0..127) @@ -1351,4 +1351,4 @@ Usage ::= ENUMERATED -- TS 29.571 [17], table 5.2.2-1 TimeZone ::= UTF8String -END \ No newline at end of file +END diff --git a/33128/r15/urn_3GPP_ns_li_3GPPX1Extensions.xsd b/33128/r15/urn_3GPP_ns_li_3GPPX1Extensions.xsd index 196afbf86ffc976b3ecdc4bcb24192f7391fa8d7..de3e2f2019ff781fe86a97e689e2a410d3580e48 100644 --- a/33128/r15/urn_3GPP_ns_li_3GPPX1Extensions.xsd +++ b/33128/r15/urn_3GPP_ns_li_3GPPX1Extensions.xsd @@ -155,13 +155,13 @@ - + - + @@ -225,5 +225,5 @@ - - \ No newline at end of file + + diff --git a/33128/r16/TS33128IdentityAssociation.asn b/33128/r16/TS33128IdentityAssociation.asn index bf97cb47d1a412f89c37d68e5987fd4bbc9a6ae4..82aca7c5de53349463bb0497a4021197bdcef220 100644 --- a/33128/r16/TS33128IdentityAssociation.asn +++ b/33128/r16/TS33128IdentityAssociation.asn @@ -96,4 +96,4 @@ EUI64 ::= OCTET STRING (SIZE(8)) SUCI ::= OCTET STRING (SIZE(8..3008)) -END +END \ No newline at end of file diff --git a/33128/r16/TS33128Payloads.asn b/33128/r16/TS33128Payloads.asn index 46381fce08d02dd0debb8d825f162a036f5d754d..269b5f40a60635a603d2de9ce30d0b6f9bd75450 100644 --- a/33128/r16/TS33128Payloads.asn +++ b/33128/r16/TS33128Payloads.asn @@ -1,5 +1,5 @@ TS33128Payloads -{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19) r16(16) version5(5)} +{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19) r16(16) version8(8)} DEFINITIONS IMPLICIT TAGS EXTENSIBILITY IMPLIED ::= @@ -9,7 +9,7 @@ BEGIN -- Relative OIDs -- ============= -tS33128PayloadsOID RELATIVE-OID ::= {threeGPP(4) ts33128(19) r16(16) version5(5)} +tS33128PayloadsOID RELATIVE-OID ::= {threeGPP(4) ts33128(19) r16(16) version8(8)} xIRIPayloadOID RELATIVE-OID ::= {tS33128PayloadsOID xIRI(1)} xCCPayloadOID RELATIVE-OID ::= {tS33128PayloadsOID xCC(2)} @@ -118,7 +118,7 @@ XIRIEvent ::= CHOICE mMEIdentifierAssocation [63] MMEIdentifierAssocation, -- PDU to MA PDU session-related events, see clause 6.2.3.2.8 -sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification + sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification } -- ============== @@ -167,7 +167,7 @@ IRIEvent ::= CHOICE pDHeaderReport [14] PDHeaderReport, pDSummaryReport [15] PDSummaryReport, - -- MDF-related events, see clause 7.3.4 + -- MDF-related events, see clause 7.3.2 mDFCellSiteReport [16] MDFCellSiteReport, -- MMS-related events, see clause 7.4.2 @@ -245,7 +245,7 @@ IRITargetIdentifier ::= SEQUENCE CCPayload ::= SEQUENCE { - cCPayloadOID [1] RELATIVE-OID, + cCPayloadOID [1] RELATIVE-OID, pDU [2] CCPDU } @@ -253,7 +253,8 @@ CCPDU ::= CHOICE { uPFCCPDU [1] UPFCCPDU, extendedUPFCCPDU [2] ExtendedUPFCCPDU, - mMSCCPDU [3] MMSCCPDU + mMSCCPDU [3] MMSCCPDU, + pTCCCPDU [4] PTCCCPDU } -- =========================== @@ -263,12 +264,12 @@ CCPDU ::= CHOICE LINotificationPayload ::= SEQUENCE { lINotificationPayloadOID [1] RELATIVE-OID, - notification [2] LINotificationMessage + notification [2] LINotificationMessage } LINotificationMessage ::= CHOICE { - lINotification [1] LINotification + lINotification [1] LINotification } -- ================== @@ -680,10 +681,10 @@ SMFMAAcceptedIndication ::= BOOLEAN -- see Clause 6.1.6.3.8 of TS 29.502[16] for the details of this structure. SMFErrorCodes ::= UTF8String --- see Clause 6.1.6.3.2 of TS 29.502[16] for details of this structure. +-- see Clause 6.1.6.3.2 of TS 29.502[16] for details of this structure. UEEPSPDNConnection ::= OCTET STRING --- see Clause 6.1.6.3.6 of TS 29.502[16] for the details of this structure. +-- see Clause 6.1.6.3.6 of TS 29.502[16] for the details of this structure. RequestIndication ::= ENUMERATED { uEREQPDUSESMOD(0), @@ -726,7 +727,7 @@ QFI ::= INTEGER (0..63) -- 5G UDM definitions -- ================== -UDMServingSystemMessage ::= SEQUENCE +UDMServingSystemMessage ::= SEQUENCE { sUPI [1] SUPI, pEI [2] PEI OPTIONAL, @@ -952,7 +953,7 @@ MMSSendByNonLocalTarget ::= SEQUENCE dRMContent [23] BOOLEAN OPTIONAL, adaptationAllowed [24] MMSAdaptation OPTIONAL } - + MMSNotification ::= SEQUENCE { transactionID [1] UTF8String, @@ -968,7 +969,7 @@ MMSNotification ::= SEQUENCE expiry [11] MMSExpiry, replyCharging [12] MMSReplyCharging OPTIONAL } - + MMSSendToNonLocalTarget ::= SEQUENCE { version [1] MMSVersion, @@ -1022,7 +1023,7 @@ MMSRetrieval ::= SEQUENCE state [12] MMState OPTIONAL, flags [13] MMFlags OPTIONAL, messageClass [14] MMSMessageClass OPTIONAL, - priority [15] MMSPriority, + priority [15] MMSPriority, deliveryReport [16] BOOLEAN OPTIONAL, readReport [17] BOOLEAN OPTIONAL, replyCharging [18] MMSReplyCharging OPTIONAL, @@ -1056,7 +1057,7 @@ MMSForward ::= SEQUENCE cCRecipients [6] SEQUENCE OF MMSParty OPTIONAL, bCCRecipients [7] SEQUENCE OF MMSParty OPTIONAL, direction [8] MMSDirection, - expiry [9] MMSExpiry OPTIONAL, + expiry [9] MMSExpiry OPTIONAL, desiredDeliveryTime [10] Timestamp OPTIONAL, deliveryReportAllowed [11] BOOLEAN OPTIONAL, deliveryReport [12] BOOLEAN OPTIONAL, @@ -1068,10 +1069,10 @@ MMSForward ::= SEQUENCE responseStatus [18] MMSResponseStatus, responseStatusText [19] UTF8String OPTIONAL, messageID [20] UTF8String OPTIONAL, - contentLocationConf [21] UTF8String OPTIONAL, + contentLocationConf [21] UTF8String OPTIONAL, storeStatus [22] MMSStoreStatus OPTIONAL, storeStatusText [23] UTF8String OPTIONAL -} +} MMSDeleteFromRelay ::= SEQUENCE { @@ -1089,13 +1090,13 @@ MMSMBoxStore ::= SEQUENCE transactionID [1] UTF8String, version [2] MMSVersion, direction [3] MMSDirection, - contentLocationReq [4] UTF8String, + contentLocationReq [4] UTF8String, state [5] MMState OPTIONAL, flags [6] MMFlags OPTIONAL, - contentLocationConf [7] UTF8String OPTIONAL, + contentLocationConf [7] UTF8String OPTIONAL, storeStatus [8] MMSStoreStatus, storeStatusText [9] UTF8String OPTIONAL -} +} MMSMBoxUpload ::= SEQUENCE { @@ -1105,11 +1106,11 @@ MMSMBoxUpload ::= SEQUENCE state [4] MMState OPTIONAL, flags [5] MMFlags OPTIONAL, contentType [6] UTF8String, - contentLocation [7] UTF8String OPTIONAL, + contentLocation [7] UTF8String OPTIONAL, storeStatus [8] MMSStoreStatus, storeStatusText [9] UTF8String OPTIONAL, mMessages [10] SEQUENCE OF MMBoxDescription -} +} MMSMBoxDelete ::= SEQUENCE { @@ -1189,7 +1190,7 @@ MMSCancel ::= SEQUENCE version [2] MMSVersion, cancelID [3] UTF8String, direction [4] MMSDirection -} +} MMSMBoxViewRequest ::= SEQUENCE { @@ -1246,7 +1247,7 @@ MMBoxDescription ::= SEQUENCE -- ========= -- MMS CCPDU -- ========= - + MMSCCPDU ::= SEQUENCE { version [1] MMSVersion, @@ -1312,7 +1313,7 @@ MMSDeleteResponseStatus ::= ENUMERATED errorPermanentReplyChargingNotSupported(24), errorPermanentAddressHidingNotSupported(25), errorPermanentLackOfPrepaid(26) -} +} MMSDirection ::= ENUMERATED { @@ -1327,13 +1328,13 @@ MMSElementDescriptor ::= SEQUENCE value [3] UTF8String OPTIONAL } -MMSExpiry ::= SEQUENCE +MMSExpiry ::= SEQUENCE { expiryPeriod [1] INTEGER, - periodFormat [2] MMSPeriodFormat + periodFormat [2] MMSPeriodFormat } -MMFlags ::= SEQUENCE +MMFlags ::= SEQUENCE { length [1] INTEGER, flag [2] MMStateFlag, @@ -1363,7 +1364,7 @@ MMSPartyID ::= CHOICE iMPI [5] IMPI, sUPI [6] SUPI, gPSI [7] GPSI -} +} MMSPeriodFormat ::= ENUMERATED { @@ -1511,7 +1512,7 @@ MMSVersion ::= SEQUENCE { majorVersion [1] INTEGER, minorVersion [2] INTEGER -} +} -- ================== -- 5G PTC definitions @@ -1568,7 +1569,7 @@ PTCSessionEnd ::= SEQUENCE pTCDirection [2] Direction, pTCServerURI [3] UTF8String, pTCSessionInfo [4] PTCSessionInfo, - pTCParticipants [5] SEQUENCE OF PTCTargetInformation OPTIONAL, + pTCParticipants [5] SEQUENCE OF PTCTargetInformation OPTIONAL, location [6] Location OPTIONAL, pTCSessionEndCause [7] PTCSessionEndCause } @@ -1578,7 +1579,7 @@ PTCStartOfInterception ::= SEQUENCE pTCTargetInformation [1] PTCTargetInformation, pTCDirection [2] Direction, preEstSessionID [3] PTCSessionInfo OPTIONAL, - pTCOriginatingID [4] PTCTargetInformation, + pTCOriginatingID [4] PTCTargetInformation, pTCSessionInfo [5] PTCSessionInfo OPTIONAL, pTCHost [6] PTCTargetInformation OPTIONAL, pTCParticipants [7] SEQUENCE OF PTCTargetInformation OPTIONAL, @@ -1704,6 +1705,11 @@ PTCAccessPolicy ::= SEQUENCE pTCAccessPolicyFailure [7] PTCAccessPolicyFailure OPTIONAL } +-- ========= +-- PTC CCPDU +-- ========= + +PTCCCPDU ::= OCTET STRING -- ================= -- 5G PTC parameters @@ -1748,7 +1754,7 @@ PTCIdentifiers ::= CHOICE PTCSessionInfo ::= SEQUENCE { - pTCSessionURI [1] UTF8String, + pTCSessionURI [1] UTF8String, pTCSessionType [2] PTCSessionType } @@ -1792,7 +1798,7 @@ RTPSetting ::= SEQUENCE PTCIDList ::= SEQUENCE { pTCPartyID [1] PTCTargetInformation, - pTCChatGroupID [2] PTCChatGroupID + pTCChatGroupID [2] PTCChatGroupID } PTCChatGroupID ::= SEQUENCE @@ -1897,7 +1903,7 @@ PTCAccessPolicyFailure ::= ENUMERATED { requestUnsuccessful(1), requestUnknown(2) -} +} -- =================== -- 5G LALS definitions @@ -1906,9 +1912,12 @@ PTCAccessPolicyFailure ::= ENUMERATED LALSReport ::= SEQUENCE { sUPI [1] SUPI OPTIONAL, - pEI [2] PEI OPTIONAL, + -- pEI [2] PEI OPTIONAL, deprecated in Release-16, do not re-use this tag number gPSI [3] GPSI OPTIONAL, - location [4] Location OPTIONAL + location [4] Location OPTIONAL, + iMPU [5] IMPU OPTIONAL, + iMSI [7] IMSI OPTIONAL, + mSISDN [8] MSISDN OPTIONAL } -- ===================== @@ -1917,7 +1926,7 @@ LALSReport ::= SEQUENCE PDHeaderReport ::= SEQUENCE { - pDUSessionID [1] PDUSessionID, + pDUSessionID [1] PDUSessionID, sourceIPAddress [2] IPAddress, sourcePort [3] PortNumber OPTIONAL, destinationIPAddress [4] IPAddress, @@ -2063,6 +2072,8 @@ E164Number ::= NumericString (SIZE(1..15)) EmailAddress ::= UTF8String +EUI64 ::= OCTET STRING (SIZE(8)) + FiveGGUTI ::= SEQUENCE { mCC [1] MCC, @@ -2203,7 +2214,9 @@ PDUSessionType ::= ENUMERATED PEI ::= CHOICE { iMEI [1] IMEI, - iMEISV [2] IMEISV + iMEISV [2] IMEISV, + mACAddress [3] MACAddress, + eUI64 [4] EUI64 } PortNumber ::= INTEGER(0..65535) @@ -2317,9 +2330,9 @@ UEEndpointAddress ::= CHOICE Location ::= SEQUENCE { - locationInfo [1] LocationInfo OPTIONAL, - positioningInfo [2] PositioningInfo OPTIONAL, - locationPresenceReport [3] LocationPresenceReport OPTIONAL + locationInfo [1] LocationInfo OPTIONAL, + positioningInfo [2] PositioningInfo OPTIONAL, + locationPresenceReport [3] LocationPresenceReport OPTIONAL } CellSiteInformation ::= SEQUENCE @@ -2333,7 +2346,7 @@ CellSiteInformation ::= SEQUENCE LocationInfo ::= SEQUENCE { userLocation [1] UserLocation OPTIONAL, - currentLoc [2] BOOLEAN OPTIONAL, + currentLoc [2] BOOLEAN OPTIONAL, geoInfo [3] GeographicArea OPTIONAL, rATType [4] RATType OPTIONAL, timeZone [5] TimeZone OPTIONAL, @@ -2355,8 +2368,8 @@ EUTRALocation ::= SEQUENCE eCGI [2] ECGI, ageOfLocatonInfo [3] INTEGER OPTIONAL, uELocationTimestamp [4] Timestamp OPTIONAL, - geographicalInformation [5] UTF8String OPTIONAL, - geodeticInformation [6] UTF8String OPTIONAL, + geographicalInformation [5] UTF8String OPTIONAL, + geodeticInformation [6] UTF8String OPTIONAL, globalNGENbID [7] GlobalRANNodeID OPTIONAL, cellSiteInformation [8] CellSiteInformation OPTIONAL, globalENbID [9] GlobalRANNodeID OPTIONAL @@ -2370,7 +2383,7 @@ NRLocation ::= SEQUENCE ageOfLocatonInfo [3] INTEGER OPTIONAL, uELocationTimestamp [4] Timestamp OPTIONAL, geographicalInformation [5] UTF8String OPTIONAL, - geodeticInformation [6] UTF8String OPTIONAL, + geodeticInformation [6] UTF8String OPTIONAL, globalGNbID [7] GlobalRANNodeID OPTIONAL, cellSiteInformation [8] CellSiteInformation OPTIONAL } @@ -2379,9 +2392,15 @@ NRLocation ::= SEQUENCE N3GALocation ::= SEQUENCE { tAI [1] TAI OPTIONAL, - n3IWFID [2] N3IWFIDNGAP OPTIONAL, + n3IWFID [2] N3IWFIDNGAP OPTIONAL, uEIPAddr [3] IPAddr OPTIONAL, - portNumber [4] INTEGER OPTIONAL + portNumber [4] INTEGER OPTIONAL, + tNAPID [5] TNAPID OPTIONAL, + tWAPID [6] TWAPID OPTIONAL, + hFCNodeID [7] HFCNodeID OPTIONAL, + gLI [8] GLI OPTIONAL, + w5GBANLineType [9] W5GBANLineType OPTIONAL, + gCI [10] GCI OPTIONAL } -- TS 38.413 [23], clause 9.3.2.4 @@ -2404,7 +2423,9 @@ ANNodeID ::= CHOICE n3IWFID [1] N3IWFIDSBI, gNbID [2] GNbID, nGENbID [3] NGENbID, - eNbID [4] ENbID + eNbID [4] ENbID, + wAGFID [5] WAGFID, + tNGFID [6] TNGFID } -- TS 38.413 [23], clause 9.3.1.6 @@ -2423,7 +2444,7 @@ ECGI ::= SEQUENCE { pLMNID [1] PLMNID, eUTRACellID [2] EUTRACellID, - nID [3] NID OPTIONAL + nID [3] NID OPTIONAL } TAIList ::= SEQUENCE OF TAI @@ -2442,7 +2463,7 @@ RANCGI ::= CHOICE nCGI [2] NCGI } -CellInformation ::= SEQUENCE +CellInformation ::= SEQUENCE { rANCGI [1] RANCGI, cellSiteinformation [2] CellSiteInformation OPTIONAL, @@ -2455,6 +2476,51 @@ N3IWFIDNGAP ::= BIT STRING (SIZE(16)) -- TS 29.571 [17], clause 5.4.4.28 N3IWFIDSBI ::= UTF8String +-- TS 29.571 [17], clause 5.4.4.28 and table 5.4.2-1 +TNGFID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.28 and table 5.4.2-1 +WAGFID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.62 +TNAPID ::= SEQUENCE +{ + sSID [1] SSID OPTIONAL, + bSSID [2] BSSID OPTIONAL, + civicAddress [3] CivicAddressBytes OPTIONAL +} + +-- TS 29.571 [17], clause 5.4.4.64 +TWAPID ::= SEQUENCE +{ + sSID [1] SSID OPTIONAL, + bSSID [2] BSSID OPTIONAL, + civicAddress [3] CivicAddressBytes OPTIONAL +} + +-- TS 29.571 [17], clause 5.4.4.62 and clause 5.4.4.64 +SSID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.62 and clause 5.4.4.64 +BSSID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.36 and table 5.4.2-1 +HFCNodeID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.10 and table 5.4.2-1 +-- Contains the original binary data i.e. value of the YAML field after base64 encoding is removed +GLI ::= OCTET STRING (SIZE(0..150)) + +-- TS 29.571 [17], clause 5.4.4.10 and table 5.4.2-1 +GCI ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.10 and clause 5.4.3.33 +W5GBANLineType ::= ENUMERATED +{ + dSL(1), + pON(2) +} + -- TS 29.571 [17], table 5.4.2-1 TAC ::= OCTET STRING (SIZE(2..3)) @@ -2488,12 +2554,12 @@ ENbID ::= CHOICE PositioningInfo ::= SEQUENCE { positionInfo [1] LocationData OPTIONAL, - rawMLPResponse [2] RawMLPResponse OPTIONAL + rawMLPResponse [2] RawMLPResponse OPTIONAL } RawMLPResponse ::= CHOICE { - -- The following parameter contains a copy of unparsed XML code of the + -- The following parameter contains a copy of unparsed XML code of the -- MLP response message, i.e. the entire XML document containing -- a (described in OMA-TS-MLP-V3_5-20181211-C [20], clause 5.2.3.2.2) or -- a (described in OMA-TS-MLP-V3_5-20181211-C [20], clause 5.2.3.2.3) MLP message. @@ -2674,6 +2740,10 @@ CivicAddress ::= SEQUENCE pom [31] UTF8String OPTIONAL } +-- TS 29.571 [17], clauses 5.4.4.62 and 5.4.4.64 +-- Contains the original binary data i.e. value of the YAML field after base64 encoding is removed +CivicAddressBytes ::= OCTET STRING + -- TS 29.572 [24], clause 6.1.6.2.15 PositioningMethodAndUsage ::= SEQUENCE { @@ -2797,7 +2867,7 @@ HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE vUncertainty [6] SpeedUncertainty } --- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1 +-- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1 Altitude ::= UTF8String Angle ::= INTEGER (0..360) Uncertainty ::= INTEGER (0..127) @@ -2877,4 +2947,4 @@ OGCURN ::= UTF8String -- TS 29.572 [24], clause 6.1.6.2.15 MethodCode ::= INTEGER (16..31) -END +END \ No newline at end of file diff --git a/33128/r16/urn_3GPP_ns_li_3GPPIdentityExtensions_r16_v1.xsd b/33128/r16/urn_3GPP_ns_li_3GPPIdentityExtensions.xsd similarity index 53% rename from 33128/r16/urn_3GPP_ns_li_3GPPIdentityExtensions_r16_v1.xsd rename to 33128/r16/urn_3GPP_ns_li_3GPPIdentityExtensions.xsd index da7b1b01b98d5dc25a803380d3f6895fca6affd6..99957b66773303cb5ec74838487b51fae770bc35 100644 --- a/33128/r16/urn_3GPP_ns_li_3GPPIdentityExtensions_r16_v1.xsd +++ b/33128/r16/urn_3GPP_ns_li_3GPPIdentityExtensions.xsd @@ -1,9 +1,9 @@ @@ -87,6 +87,7 @@ + @@ -112,5 +113,107 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/33128/r16/urn_3GPP_ns_li_3GPPStateTransfer.xsd b/33128/r16/urn_3GPP_ns_li_3GPPStateTransfer.xsd new file mode 100644 index 0000000000000000000000000000000000000000..f07c07279806306d38f715c4a89722d4cfc88330 --- /dev/null +++ b/33128/r16/urn_3GPP_ns_li_3GPPStateTransfer.xsd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/33128/r16/urn_3GPP_ns_li_3GPPX1Extensions_r16_v3.xsd b/33128/r16/urn_3GPP_ns_li_3GPPX1Extensions.xsd similarity index 99% rename from 33128/r16/urn_3GPP_ns_li_3GPPX1Extensions_r16_v3.xsd rename to 33128/r16/urn_3GPP_ns_li_3GPPX1Extensions.xsd index 20e67843d527f533a7d4a6dcc5ecc6ed997411e9..5b042a9ac5c7806192fdac23a40c18ea4d701347 100644 --- a/33128/r16/urn_3GPP_ns_li_3GPPX1Extensions_r16_v3.xsd +++ b/33128/r16/urn_3GPP_ns_li_3GPPX1Extensions.xsd @@ -25,11 +25,11 @@ - + - + @@ -186,13 +186,13 @@ - + - + @@ -245,4 +245,5 @@ - + + \ No newline at end of file diff --git a/33128/r17/TS33128IdentityAssociation.asn b/33128/r17/TS33128IdentityAssociation.asn index bf97cb47d1a412f89c37d68e5987fd4bbc9a6ae4..707aaa27da1deeba4edd67c8676e7299731b03fc 100644 --- a/33128/r17/TS33128IdentityAssociation.asn +++ b/33128/r17/TS33128IdentityAssociation.asn @@ -1,12 +1,12 @@ TS33128IdentityAssociation -{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) tS33128IdentityAssociation(20) r16(16) version2(2)} +{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) tS33128IdentityAssociation(20) r17(17) version0(0)} DEFINITIONS IMPLICIT TAGS EXTENSIBILITY IMPLIED ::= BEGIN -tS33128IdentityAssociationOID RELATIVE-OID ::= {threeGPP(4) tS33128IdentityAssociation(20) r16(16) version2(2)} +tS33128IdentityAssociationOID RELATIVE-OID ::= {threeGPP(4) tS33128IdentityAssociation(20) r17(17) version0(0)} iEFRecordOID RELATIVE-OID ::= {tS33128IdentityAssociationOID iEF(1)} @@ -34,7 +34,8 @@ IEFAssociationRecord ::= SEQUENCE nCGITime [6] GeneralizedTime, sUCI [7] SUCI OPTIONAL, pEI [8] PEI OPTIONAL, - fiveGSTAIList [9] FiveGSTAIList OPTIONAL + fiveGSTAIList [9] FiveGSTAIList OPTIONAL, + gPSI [10] GPSI OPTIONAL } IEFDeassociationRecord ::= SEQUENCE @@ -95,5 +96,12 @@ EUI64 ::= OCTET STRING (SIZE(8)) SUCI ::= OCTET STRING (SIZE(8..3008)) +GPSI ::= CHOICE +{ + gPSIMSISDN [1] MSISDN, + gPSINAI [2] NAI +} + +MSISDN ::= NumericString (SIZE(1..15)) -END +END \ No newline at end of file diff --git a/33128/r17/TS33128Payloads.asn b/33128/r17/TS33128Payloads.asn index 46381fce08d02dd0debb8d825f162a036f5d754d..952d65126dd6dbd476cf5371bd20697058a0cb00 100644 --- a/33128/r17/TS33128Payloads.asn +++ b/33128/r17/TS33128Payloads.asn @@ -1,5 +1,5 @@ TS33128Payloads -{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19) r16(16) version5(5)} +{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19) r17(17) version2(2)} DEFINITIONS IMPLICIT TAGS EXTENSIBILITY IMPLIED ::= @@ -9,7 +9,7 @@ BEGIN -- Relative OIDs -- ============= -tS33128PayloadsOID RELATIVE-OID ::= {threeGPP(4) ts33128(19) r16(16) version5(5)} +tS33128PayloadsOID RELATIVE-OID ::= {threeGPP(4) ts33128(19) r17(17) version2(2)} xIRIPayloadOID RELATIVE-OID ::= {tS33128PayloadsOID xIRI(1)} xCCPayloadOID RELATIVE-OID ::= {tS33128PayloadsOID xCC(2)} @@ -114,11 +114,70 @@ XIRIEvent ::= CHOICE unsuccessfulMASMProcedure [61] SMFMAUnsuccessfulProcedure, -- Identifier Association events, see clauses 6.2.2.2.7 and 6.3.2.2.2 - aMFIdentifierAssocation [62] AMFIdentifierAssocation, - mMEIdentifierAssocation [63] MMEIdentifierAssocation, + aMFIdentifierAssociation [62] AMFIdentifierAssociation, + mMEIdentifierAssociation [63] MMEIdentifierAssociation, - -- PDU to MA PDU session-related events, see clause 6.2.3.2.8 -sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification + -- PDU to MA PDU session-related events, see clause 6.2.3.2.8 + sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification, + + -- NEF services related events, see clause 7.7.2 + nEFPDUSessionEstablishment [65] NEFPDUSessionEstablishment, + nEFPDUSessionModification [66] NEFPDUSessionModification, + nEFPDUSessionRelease [67] NEFPDUSessionRelease, + nEFUnsuccessfulProcedure [68] NEFUnsuccessfulProcedure, + nEFStartOfInterceptionWithEstablishedPDUSession [69] NEFStartOfInterceptionWithEstablishedPDUSession, + nEFdeviceTrigger [70] NEFDeviceTrigger, + nEFdeviceTriggerReplace [71] NEFDeviceTriggerReplace, + nEFdeviceTriggerCancellation [72] NEFDeviceTriggerCancellation, + nEFdeviceTriggerReportNotify [73] NEFDeviceTriggerReportNotify, + nEFMSISDNLessMOSMS [74] NEFMSISDNLessMOSMS, + nEFExpectedUEBehaviourUpdate [75] NEFExpectedUEBehaviourUpdate, + + -- SCEF services related events, see clause 7.8.2 + sCEFPDNConnectionEstablishment [76] SCEFPDNConnectionEstablishment, + sCEFPDNConnectionUpdate [77] SCEFPDNConnectionUpdate, + sCEFPDNConnectionRelease [78] SCEFPDNConnectionRelease, + sCEFUnsuccessfulProcedure [79] SCEFUnsuccessfulProcedure, + sCEFStartOfInterceptionWithEstablishedPDNConnection [80] SCEFStartOfInterceptionWithEstablishedPDNConnection, + sCEFdeviceTrigger [81] SCEFDeviceTrigger, + sCEFdeviceTriggerReplace [82] SCEFDeviceTriggerReplace, + sCEFdeviceTriggerCancellation [83] SCEFDeviceTriggerCancellation, + sCEFdeviceTriggerReportNotify [84] SCEFDeviceTriggerReportNotify, + sCEFMSISDNLessMOSMS [85] SCEFMSISDNLessMOSMS, + sCEFCommunicationPatternUpdate [86] SCEFCommunicationPatternUpdate, + + -- EPS Events, see clause 6.3 + + -- MME Events, see clause 6.3.2.2 + mMEAttach [87] MMEAttach, + mMEDetach [88] MMEDetach, + mMELocationUpdate [89] MMELocationUpdate, + mMEStartOfInterceptionWithEPSAttachedUE [90] MMEStartOfInterceptionWithEPSAttachedUE, + mMEUnsuccessfulProcedure [91] MMEUnsuccessfulProcedure, + + -- AKMA key management events, see clause 7.9.1 + aAnFAnchorKeyRegister [92] AAnFAnchorKeyRegister, + aAnFKAKMAApplicationKeyGet [93] AAnFKAKMAApplicationKeyGet, + aAnFStartOfInterceptWithEstablishedAKMAKeyMaterial [94] AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial, + aAnFAKMAContextRemovalRecord [95] AAnFAKMAContextRemovalRecord, + aFAKMAApplicationKeyRefresh [96] AFAKMAApplicationKeyRefresh, + aFStartOfInterceptWithEstablishedAKMAApplicationKey [97] AFStartOfInterceptWithEstablishedAKMAApplicationKey, + aFAuxiliarySecurityParameterEstablishment [98] AFAuxiliarySecurityParameterEstablishment, + aFApplicationKeyRemoval [99] AFApplicationKeyRemoval, + + -- HR LI Events, see clause 7.10.3.3 + n9HRPDUSessionInfo [100] N9HRPDUSessionInfo, + s8HRBearerInfo [101] S8HRBearerInfo, + + -- Separated Location Reporting, see clause 7.3.4 + separatedLocationReporting [102] SeparatedLocationReporting, + + -- STIR SHAKEN and RCD/eCNAM Events, see clause 7.11.2 + sTIRSHAKENSignatureGeneration [103] STIRSHAKENSignatureGeneration, + sTIRSHAKENSignatureValidation [104] STIRSHAKENSignatureValidation, + -- IMS events, see clause 7.11.4.2 + iMSMessage [105] IMSMessage, + startOfInterceptionForActiveIMSSession [106] StartOfInterceptionForActiveIMSSession } -- ============== @@ -167,7 +226,7 @@ IRIEvent ::= CHOICE pDHeaderReport [14] PDHeaderReport, pDSummaryReport [15] PDSummaryReport, - -- MDF-related events, see clause 7.3.4 + -- MDF-related events, see clause 7.3.2 mDFCellSiteReport [16] MDFCellSiteReport, -- MMS-related events, see clause 7.4.2 @@ -226,11 +285,71 @@ IRIEvent ::= CHOICE unsuccessfulMASMProcedure [61] SMFMAUnsuccessfulProcedure, -- Identifier Association events, see clauses 6.2.2.2.7 and 6.3.2.2.2 - aMFIdentifierAssocation [62] AMFIdentifierAssocation, - mMEIdentifierAssocation [63] MMEIdentifierAssocation, + aMFIdentifierAssociation [62] AMFIdentifierAssociation, + mMEIdentifierAssociation [63] MMEIdentifierAssociation, -- PDU to MA PDU session-related events, see clause 6.2.3.2.8 - sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification + sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification, + + -- NEF services related events, see clause 7.7.2, + nEFPDUSessionEstablishment [65] NEFPDUSessionEstablishment, + nEFPDUSessionModification [66] NEFPDUSessionModification, + nEFPDUSessionRelease [67] NEFPDUSessionRelease, + nEFUnsuccessfulProcedure [68] NEFUnsuccessfulProcedure, + nEFStartOfInterceptionWithEstablishedPDUSession [69] NEFStartOfInterceptionWithEstablishedPDUSession, + nEFdeviceTrigger [70] NEFDeviceTrigger, + nEFdeviceTriggerReplace [71] NEFDeviceTriggerReplace, + nEFdeviceTriggerCancellation [72] NEFDeviceTriggerCancellation, + nEFdeviceTriggerReportNotify [73] NEFDeviceTriggerReportNotify, + nEFMSISDNLessMOSMS [74] NEFMSISDNLessMOSMS, + nEFExpectedUEBehaviourUpdate [75] NEFExpectedUEBehaviourUpdate, + + -- SCEF services related events, see clause 7.8.2 + sCEFPDNConnectionEstablishment [76] SCEFPDNConnectionEstablishment, + sCEFPDNConnectionUpdate [77] SCEFPDNConnectionUpdate, + sCEFPDNConnectionRelease [78] SCEFPDNConnectionRelease, + sCEFUnsuccessfulProcedure [79] SCEFUnsuccessfulProcedure, + sCEFStartOfInterceptionWithEstablishedPDNConnection [80] SCEFStartOfInterceptionWithEstablishedPDNConnection, + sCEFdeviceTrigger [81] SCEFDeviceTrigger, + sCEFdeviceTriggerReplace [82] SCEFDeviceTriggerReplace, + sCEFdeviceTriggerCancellation [83] SCEFDeviceTriggerCancellation, + sCEFdeviceTriggerReportNotify [84] SCEFDeviceTriggerReportNotify, + sCEFMSISDNLessMOSMS [85] SCEFMSISDNLessMOSMS, + sCEFCommunicationPatternUpdate [86] SCEFCommunicationPatternUpdate, + + -- EPS Events, see clause 6.3 + + -- MME Events, see clause 6.3.2.2 + mMEAttach [87] MMEAttach, + mMEDetach [88] MMEDetach, + mMELocationUpdate [89] MMELocationUpdate, + mMEStartOfInterceptionWithEPSAttachedUE [90] MMEStartOfInterceptionWithEPSAttachedUE, + mMEUnsuccessfulProcedure [91] MMEUnsuccessfulProcedure, + + -- AKMA key management events, see clause 7.9.1 + aAnFAnchorKeyRegister [92] AAnFAnchorKeyRegister, + aAnFKAKMAApplicationKeyGet [93] AAnFKAKMAApplicationKeyGet, + aAnFStartOfInterceptWithEstablishedAKMAKeyMaterial [94] AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial, + aAnFAKMAContextRemovalRecord [95] AAnFAKMAContextRemovalRecord, + aFAKMAApplicationKeyRefresh [96] AFAKMAApplicationKeyRefresh, + aFStartOfInterceptWithEstablishedAKMAApplicationKey [97] AFStartOfInterceptWithEstablishedAKMAApplicationKey, + aFAuxiliarySecurityParameterEstablishment [98] AFAuxiliarySecurityParameterEstablishment, + aFApplicationKeyRemoval [99] AFApplicationKeyRemoval, + + -- tag 100 is reserved because there is no equivalent n9HRPDUSessionInfo in IRIEvent. + -- tag 101 is reserved because there is no equivalent S8HRBearerInfo in IRIEvent. + + -- Separated Location Reporting, see clause 7.3.4 + separatedLocationReporting [102] SeparatedLocationReporting, + + -- STIR SHAKEN and RCD/eCNAM Events, see clause 7.11.3 + sTIRSHAKENSignatureGeneration [103] STIRSHAKENSignatureGeneration, + sTIRSHAKENSignatureValidation [104] STIRSHAKENSignatureValidation, + + -- IMS events, see clause 7.11.4.2 + iMSMessage [105] IMSMessage, + startOfInterceptionForActiveIMSSession [106] StartOfInterceptionForActiveIMSSession + } IRITargetIdentifier ::= SEQUENCE @@ -246,14 +365,16 @@ IRITargetIdentifier ::= SEQUENCE CCPayload ::= SEQUENCE { cCPayloadOID [1] RELATIVE-OID, - pDU [2] CCPDU + pDU [2] CCPDU } CCPDU ::= CHOICE { uPFCCPDU [1] UPFCCPDU, extendedUPFCCPDU [2] ExtendedUPFCCPDU, - mMSCCPDU [3] MMSCCPDU + mMSCCPDU [3] MMSCCPDU, + nIDDCCPDU [4] NIDDCCPDU, + pTCCCPDU [5] PTCCCPDU } -- =========================== @@ -263,12 +384,725 @@ CCPDU ::= CHOICE LINotificationPayload ::= SEQUENCE { lINotificationPayloadOID [1] RELATIVE-OID, - notification [2] LINotificationMessage + notification [2] LINotificationMessage } LINotificationMessage ::= CHOICE { - lINotification [1] LINotification + lINotification [1] LINotification +} + +-- ================= +-- HR LI definitions +-- ================= + +N9HRPDUSessionInfo ::= SEQUENCE +{ + sUPI [1] SUPI, + pEI [2] PEI OPTIONAL, + pDUSessionID [3] PDUSessionID, + location [4] Location OPTIONAL, + sNSSAI [5] SNSSAI OPTIONAL, + dNN [6] DNN OPTIONAL, + messageCause [7] N9HRMessageCause +} + +S8HRBearerInfo ::= SEQUENCE +{ + iMSI [1] IMSI, + iMEI [2] IMEI OPTIONAL, + bearerID [3] EPSBearerID, + linkedBearerID [4] EPSBearerID OPTIONAL, + location [5] Location OPTIONAL, + aPN [6] APN OPTIONAL, + sGWIPAddress [7] IPAddress OPTIONAL, + messageCause [8] S8HRMessageCause +} + +-- ================ +-- HR LI parameters +-- ================ + +N9HRMessageCause ::= ENUMERATED +{ + pDUSessionEstablished(1), + pDUSessionModified(2), + pDUSessionReleased(3), + updatedLocationAvailable(4), + sMFChanged(5), + other(6), + hRLIEnabled(7) +} + +S8HRMessageCause ::= ENUMERATED +{ + bearerActivated(1), + bearerModified(2), + bearerDeleted(3), + pDNDisconnected(4), + updatedLocationAvailable(5), + sGWChanged(6), + other(7), + hRLIEnabled(8) +} + +-- ================== +-- 5G NEF definitions +-- ================== + +-- See clause 7.7.2.1.2 for details of this structure +NEFPDUSessionEstablishment ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + pDUSessionID [3] PDUSessionID, + sNSSAI [4] SNSSAI, + nEFID [5] NEFID, + dNN [6] DNN, + rDSSupport [7] RDSSupport, + sMFID [8] SMFID, + aFID [9] AFID +} + +-- See clause 7.7.2.1.3 for details of this structure +NEFPDUSessionModification ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + sNSSAI [3] SNSSAI, + initiator [4] Initiator, + rDSSourcePortNumber [5] RDSPortNumber OPTIONAL, + rDSDestinationPortNumber [6] RDSPortNumber OPTIONAL, + applicationID [7] ApplicationID OPTIONAL, + aFID [8] AFID OPTIONAL, + rDSAction [9] RDSAction OPTIONAL, + serializationFormat [10] SerializationFormat OPTIONAL +} + +-- See clause 7.7.2.1.4 for details of this structure +NEFPDUSessionRelease ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + pDUSessionID [3] PDUSessionID, + timeOfFirstPacket [4] Timestamp OPTIONAL, + timeOfLastPacket [5] Timestamp OPTIONAL, + uplinkVolume [6] INTEGER OPTIONAL, + downlinkVolume [7] INTEGER OPTIONAL, + releaseCause [8] NEFReleaseCause +} + +-- See clause 7.7.2.1.5 for details of this structure +NEFUnsuccessfulProcedure ::= SEQUENCE +{ + failureCause [1] NEFFailureCause, + sUPI [2] SUPI, + gPSI [3] GPSI OPTIONAL, + pDUSessionID [4] PDUSessionID, + dNN [5] DNN OPTIONAL, + sNSSAI [6] SNSSAI OPTIONAL, + rDSDestinationPortNumber [7] RDSPortNumber, + applicationID [8] ApplicationID, + aFID [9] AFID +} + +-- See clause 7.7.2.1.6 for details of this structure +NEFStartOfInterceptionWithEstablishedPDUSession ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + pDUSessionID [3] PDUSessionID, + dNN [4] DNN, + sNSSAI [5] SNSSAI, + nEFID [6] NEFID, + rDSSupport [7] RDSSupport, + sMFID [8] SMFID, + aFID [9] AFID +} + +-- See clause 7.7.3.1.1 for details of this structure +NEFDeviceTrigger ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + triggerId [3] TriggerID, + aFID [4] AFID, + triggerPayload [5] TriggerPayload OPTIONAL, + validityPeriod [6] INTEGER OPTIONAL, + priorityDT [7] PriorityDT OPTIONAL, + sourcePortId [8] PortNumber OPTIONAL, + destinationPortId [9] PortNumber OPTIONAL +} + +-- See clause 7.7.3.1.2 for details of this structure +NEFDeviceTriggerReplace ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + triggerId [3] TriggerID, + aFID [4] AFID, + triggerPayload [5] TriggerPayload OPTIONAL, + validityPeriod [6] INTEGER OPTIONAL, + priorityDT [7] PriorityDT OPTIONAL, + sourcePortId [8] PortNumber OPTIONAL, + destinationPortId [9] PortNumber OPTIONAL +} + +-- See clause 7.7.3.1.3 for details of this structure +NEFDeviceTriggerCancellation ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + triggerId [3] TriggerID +} + +-- See clause 7.7.3.1.4 for details of this structure +NEFDeviceTriggerReportNotify ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + triggerId [3] TriggerID, + deviceTriggerDeliveryResult [4] DeviceTriggerDeliveryResult +} + +-- See clause 7.7.4.1.1 for details of this structure +NEFMSISDNLessMOSMS ::= SEQUENCE +{ + sUPI [1] SUPI, + gPSI [2] GPSI, + terminatingSMSParty [3] AFID, + sMS [4] SMSTPDUData OPTIONAL, + sourcePort [5] PortNumber OPTIONAL, + destinationPort [6] PortNumber OPTIONAL +} + +-- See clause 7.7.5.1.1 for details of this structure +NEFExpectedUEBehaviourUpdate ::= SEQUENCE +{ + gPSI [1] GPSI, + expectedUEMovingTrajectory [2] SEQUENCE OF UMTLocationArea5G OPTIONAL, + stationaryIndication [3] StationaryIndication OPTIONAL, + communicationDurationTime [4] INTEGER OPTIONAL, + periodicTime [5] INTEGER OPTIONAL, + scheduledCommunicationTime [6] ScheduledCommunicationTime OPTIONAL, + scheduledCommunicationType [7] ScheduledCommunicationType OPTIONAL, + batteryIndication [8] BatteryIndication OPTIONAL, + trafficProfile [9] TrafficProfile OPTIONAL, + expectedTimeAndDayOfWeekInTrajectory [10] SEQUENCE OF UMTLocationArea5G OPTIONAL, + aFID [11] AFID, + validityTime [12] Timestamp OPTIONAL +} + +-- ========================== +-- Common SCEF/NEF parameters +-- ========================== + +RDSSupport ::= BOOLEAN + +RDSPortNumber ::= INTEGER (0..15) + +RDSAction ::= ENUMERATED +{ + reservePort(1), + releasePort(2) +} + +SerializationFormat ::= ENUMERATED +{ + xml(1), + json(2), + cbor(3) +} + +ApplicationID ::= OCTET STRING + +NIDDCCPDU ::= OCTET STRING + +TriggerID ::= UTF8String + +PriorityDT ::= ENUMERATED +{ + noPriority(1), + priority(2) +} + +TriggerPayload ::= OCTET STRING + +DeviceTriggerDeliveryResult ::= ENUMERATED +{ + success(1), + unknown(2), + failure(3), + triggered(4), + expired(5), + unconfirmed(6), + replaced(7), + terminate(8) +} + +StationaryIndication ::= ENUMERATED +{ + stationary(1), + mobile(2) +} + +BatteryIndication ::= ENUMERATED +{ + batteryRecharge(1), + batteryReplace(2), + batteryNoRecharge(3), + batteryNoReplace(4), + noBattery(5) +} + +ScheduledCommunicationTime ::= SEQUENCE +{ + days [1] SEQUENCE OF Daytime +} + +UMTLocationArea5G ::= SEQUENCE +{ + timeOfDay [1] Daytime, + durationSec [2] INTEGER, + location [3] NRLocation +} + +Daytime ::= SEQUENCE +{ + daysOfWeek [1] Day OPTIONAL, + timeOfDayStart [2] Timestamp OPTIONAL, + timeOfDayEnd [3] Timestamp OPTIONAL +} + +Day ::= ENUMERATED +{ + monday(1), + tuesday(2), + wednesday(3), + thursday(4), + friday(5), + saturday(6), + sunday(7) +} + +TrafficProfile ::= ENUMERATED +{ + singleTransUL(1), + singleTransDL(2), + dualTransULFirst(3), + dualTransDLFirst(4), + multiTrans(5) +} + +ScheduledCommunicationType ::= ENUMERATED +{ + downlinkOnly(1), + uplinkOnly(2), + bidirectional(3) +} + +-- ================= +-- 5G NEF parameters +-- ================= + +NEFFailureCause ::= ENUMERATED +{ + userUnknown(1), + niddConfigurationNotAvailable(2), + contextNotFound(3), + portNotFree(4), + portNotAssociatedWithSpecifiedApplication(5) +} + +NEFReleaseCause ::= ENUMERATED +{ + sMFRelease(1), + dNRelease(2), + uDMRelease(3), + cHFRelease(4), + localConfigurationPolicy(5), + unknownCause(6) +} + +AFID ::= UTF8String + +NEFID ::= UTF8String + +-- ================== +-- SCEF definitions +-- ================== + +-- See clause 7.8.2.1.2 for details of this structure +SCEFPDNConnectionEstablishment ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + iMEI [4] IMEI OPTIONAL, + ePSBearerID [5] EPSBearerID, + sCEFID [6] SCEFID, + aPN [7] APN, + rDSSupport [8] RDSSupport, + sCSASID [9] SCSASID +} + +-- See clause 7.8.2.1.3 for details of this structure +SCEFPDNConnectionUpdate ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + initiator [4] Initiator, + rDSSourcePortNumber [5] RDSPortNumber OPTIONAL, + rDSDestinationPortNumber [6] RDSPortNumber OPTIONAL, + applicationID [7] ApplicationID OPTIONAL, + sCSASID [8] SCSASID OPTIONAL, + rDSAction [9] RDSAction OPTIONAL, + serializationFormat [10] SerializationFormat OPTIONAL +} + +-- See clause 7.8.2.1.4 for details of this structure +SCEFPDNConnectionRelease ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + ePSBearerID [4] EPSBearerID, + timeOfFirstPacket [5] Timestamp OPTIONAL, + timeOfLastPacket [6] Timestamp OPTIONAL, + uplinkVolume [7] INTEGER OPTIONAL, + downlinkVolume [8] INTEGER OPTIONAL, + releaseCause [9] SCEFReleaseCause +} + +-- See clause 7.8.2.1.5 for details of this structure +SCEFUnsuccessfulProcedure ::= SEQUENCE +{ + failureCause [1] SCEFFailureCause, + iMSI [2] IMSI OPTIONAL, + mSISDN [3] MSISDN OPTIONAL, + externalIdentifier [4] NAI OPTIONAL, + ePSBearerID [5] EPSBearerID, + aPN [6] APN, + rDSDestinationPortNumber [7] RDSPortNumber OPTIONAL, + applicationID [8] ApplicationID OPTIONAL, + sCSASID [9] SCSASID +} + +-- See clause 7.8.2.1.6 for details of this structure +SCEFStartOfInterceptionWithEstablishedPDNConnection ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + iMEI [4] IMEI OPTIONAL, + ePSBearerID [5] EPSBearerID, + sCEFID [6] SCEFID, + aPN [7] APN, + rDSSupport [8] RDSSupport, + sCSASID [9] SCSASID +} + +-- See clause 7.8.3.1.1 for details of this structure +SCEFDeviceTrigger ::= SEQUENCE +{ + iMSI [1] IMSI, + mSISDN [2] MSISDN, + externalIdentifier [3] NAI, + triggerId [4] TriggerID, + sCSASID [5] SCSASID OPTIONAL, + triggerPayload [6] TriggerPayload OPTIONAL, + validityPeriod [7] INTEGER OPTIONAL, + priorityDT [8] PriorityDT OPTIONAL, + sourcePortId [9] PortNumber OPTIONAL, + destinationPortId [10] PortNumber OPTIONAL +} + +-- See clause 7.8.3.1.2 for details of this structure +SCEFDeviceTriggerReplace ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + triggerId [4] TriggerID, + sCSASID [5] SCSASID OPTIONAL, + triggerPayload [6] TriggerPayload OPTIONAL, + validityPeriod [7] INTEGER OPTIONAL, + priorityDT [8] PriorityDT OPTIONAL, + sourcePortId [9] PortNumber OPTIONAL, + destinationPortId [10] PortNumber OPTIONAL +} + +-- See clause 7.8.3.1.3 for details of this structure +SCEFDeviceTriggerCancellation ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + triggerId [4] TriggerID +} + +-- See clause 7.8.3.1.4 for details of this structure +SCEFDeviceTriggerReportNotify ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifier [3] NAI OPTIONAL, + triggerId [4] TriggerID, + deviceTriggerDeliveryResult [5] DeviceTriggerDeliveryResult +} + +-- See clause 7.8.4.1.1 for details of this structure +SCEFMSISDNLessMOSMS ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + externalIdentifie [3] NAI OPTIONAL, + terminatingSMSParty [4] SCSASID, + sMS [5] SMSTPDUData OPTIONAL, + sourcePort [6] PortNumber OPTIONAL, + destinationPort [7] PortNumber OPTIONAL +} + +-- See clause 7.8.5.1.1 for details of this structure +SCEFCommunicationPatternUpdate ::= SEQUENCE +{ + mSISDN [1] MSISDN OPTIONAL, + externalIdentifier [2] NAI OPTIONAL, + periodicCommunicationIndicator [3] PeriodicCommunicationIndicator OPTIONAL, + communicationDurationTime [4] INTEGER OPTIONAL, + periodicTime [5] INTEGER OPTIONAL, + scheduledCommunicationTime [6] ScheduledCommunicationTime OPTIONAL, + scheduledCommunicationType [7] ScheduledCommunicationType OPTIONAL, + stationaryIndication [8] StationaryIndication OPTIONAL, + batteryIndication [9] BatteryIndication OPTIONAL, + trafficProfile [10] TrafficProfile OPTIONAL, + expectedUEMovingTrajectory [11] SEQUENCE OF UMTLocationArea5G OPTIONAL, + sCSASID [13] SCSASID, + validityTime [14] Timestamp OPTIONAL +} + +-- ================= +-- SCEF parameters +-- ================= + +SCEFFailureCause ::= ENUMERATED +{ + userUnknown(1), + niddConfigurationNotAvailable(2), + invalidEPSBearer(3), + operationNotAllowed(4), + portNotFree(5), + portNotAssociatedWithSpecifiedApplication(6) +} + +SCEFReleaseCause ::= ENUMERATED +{ + mMERelease(1), + dNRelease(2), + hSSRelease(3), + localConfigurationPolicy(4), + unknownCause(5) +} + +SCSASID ::= UTF8String + +SCEFID ::= UTF8String + +PeriodicCommunicationIndicator ::= ENUMERATED +{ + periodic(1), + nonPeriodic(2) +} + +EPSBearerID ::= INTEGER (0..255) + +APN ::= UTF8String + +-- ======================= +-- AKMA AAnF definitions +-- ======================= + +AAnFAnchorKeyRegister ::= SEQUENCE +{ + aKID [1] NAI, + sUPI [2] SUPI, + kAKMA [3] KAKMA OPTIONAL +} + +AAnFKAKMAApplicationKeyGet ::= SEQUENCE +{ + type [1] KeyGetType, + aKID [2] NAI, + keyInfo [3] AFKeyInfo +} + +AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial ::= SEQUENCE +{ + aKID [1] NAI, + kAKMA [2] KAKMA OPTIONAL, + aFKeyList [3] SEQUENCE OF AFKeyInfo OPTIONAL +} + +AAnFAKMAContextRemovalRecord ::= SEQUENCE +{ + aKID [1] NAI, + nFID [2] NFID +} + +-- ====================== +-- AKMA common parameters +-- ====================== + +FQDN ::= UTF8String + +NFID ::= UTF8String + +UAProtocolID ::= OCTET STRING (SIZE(5)) + +AKMAAFID ::= SEQUENCE +{ + aFFQDN [1] FQDN, + uaProtocolID [2] UAProtocolID +} + +UAStarParams ::= CHOICE +{ + tls12 [1] TLS12UAStarParams, + generic [2] GenericUAStarParams +} + +GenericUAStarParams ::= SEQUENCE +{ + genericClientParams [1] OCTET STRING, + genericServerParams [2] OCTET STRING +} + +-- =========================================== +-- Specific UaStarParmas for TLS 1.2 (RFC5246) +-- =========================================== + +TLSCipherType ::= ENUMERATED +{ + stream(1), + block(2), + aead(3) +} + +TLSCompressionAlgorithm ::= ENUMERATED +{ + null(1), + deflate(2) +} + +TLSPRFAlgorithm ::= ENUMERATED +{ + rfc5246(1) +} + +TLSCipherSuite ::= SEQUENCE (SIZE(2)) OF INTEGER (0..255) + +TLS12UAStarParams ::= SEQUENCE +{ + preMasterSecret [1] OCTET STRING (SIZE(6)) OPTIONAL, + masterSecret [2] OCTET STRING (SIZE(6)), + pRFAlgorithm [3] TLSPRFAlgorithm, + cipherSuite [4] TLSCipherSuite, + cipherType [5] TLSCipherType, + encKeyLength [6] INTEGER (0..255), + blockLength [7] INTEGER (0..255), + fixedIVLength [8] INTEGER (0..255), + recordIVLength [9] INTEGER (0..255), + macLength [10] INTEGER (0..255), + macKeyLength [11] INTEGER (0..255), + compressionAlgorithm [12] TLSCompressionAlgorithm, + clientRandom [13] OCTET STRING (SIZE(4)), + serverRandom [14] OCTET STRING (SIZE(4)), + clientSequenceNumber [15] INTEGER, + serverSequenceNumber [16] INTEGER, + sessionID [17] OCTET STRING (SIZE(0..32)), + tLSExtensions [18] OCTET STRING (SIZE(0..65535)) +} + +KAF ::= OCTET STRING + +KAKMA ::= OCTET STRING + +-- ==================== +-- AKMA AAnF parameters +-- ==================== + +KeyGetType ::= ENUMERATED +{ + internal(1), + external(2) +} + +AFKeyInfo ::= SEQUENCE +{ + aFID [1] AKMAAFID, + kAF [2] KAF, + kAFExpTime [3] KAFExpiryTime +} + +-- ======================= +-- AKMA AF definitions +-- ======================= + +AFAKMAApplicationKeyRefresh ::= SEQUENCE +{ + aFID [1] AFID, + aKID [2] NAI, + kAF [3] KAF, + uaStarParams [4] UAStarParams OPTIONAL +} + +AFStartOfInterceptWithEstablishedAKMAApplicationKey ::= SEQUENCE +{ + aFID [1] FQDN, + aKID [2] NAI, + kAFParamList [3] SEQUENCE OF AFSecurityParams +} + +AFAuxiliarySecurityParameterEstablishment ::= SEQUENCE +{ + aFSecurityParams [1] AFSecurityParams +} + +AFSecurityParams ::= SEQUENCE +{ + aFID [1] AFID, + aKID [2] NAI, + kAF [3] KAF, + uaStarParams [4] UAStarParams +} + +AFApplicationKeyRemoval ::= SEQUENCE +{ + aFID [1] AFID, + aKID [2] NAI, + removalCause [3] AFKeyRemovalCause +} + +-- =================== +-- AKMA AF parameters +-- =================== + +KAFParams ::= SEQUENCE +{ + aKID [1] NAI, + kAF [2] KAF, + kAFExpTime [3] KAFExpiryTime, + uaStarParams [4] UAStarParams +} + +KAFExpiryTime ::= GeneralizedTime + +AFKeyRemovalCause ::= ENUMERATED +{ + unknown(1), + keyExpiry(2), + applicationSpecific(3) } -- ================== @@ -288,7 +1122,12 @@ AMFRegistration ::= SEQUENCE gUTI [8] FiveGGUTI, location [9] Location OPTIONAL, non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL, - fiveGSTAIList [11] TAIList OPTIONAL + fiveGSTAIList [11] TAIList OPTIONAL, + sMSOverNasIndicator [12] SMSOverNASIndicator OPTIONAL, + oldGUTI [13] EPS5GGUTI OPTIONAL, + eMM5GRegStatus [14] EMM5GMMStatus OPTIONAL, + nonIMEISVPEI [15] NonIMEISVPEI OPTIONAL, + mACRestIndicator [16] MACRestrictionIndicator OPTIONAL } -- See clause 6.2.2.2.3 for details of this structure @@ -302,7 +1141,9 @@ AMFDeregistration ::= SEQUENCE gPSI [6] GPSI OPTIONAL, gUTI [7] FiveGGUTI OPTIONAL, cause [8] FiveGMMCause OPTIONAL, - location [9] Location OPTIONAL + location [9] Location OPTIONAL, + switchOffIndicator [10] SwitchOffIndicator OPTIONAL, + reRegRequiredIndicator [11] ReRegRequiredIndicator OPTIONAL } -- See clause 6.2.2.2.4 for details of this structure @@ -313,7 +1154,9 @@ AMFLocationUpdate ::= SEQUENCE pEI [3] PEI OPTIONAL, gPSI [4] GPSI OPTIONAL, gUTI [5] FiveGGUTI OPTIONAL, - location [6] Location + location [6] Location, + sMSOverNASIndicator [7] SMSOverNASIndicator OPTIONAL, + oldGUTI [8] EPS5GGUTI OPTIONAL } -- See clause 6.2.2.2.5 for details of this structure @@ -330,7 +1173,10 @@ AMFStartOfInterceptionWithRegisteredUE ::= SEQUENCE location [9] Location OPTIONAL, non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL, timeOfRegistration [11] Timestamp OPTIONAL, - fiveGSTAIList [12] TAIList OPTIONAL + fiveGSTAIList [12] TAIList OPTIONAL, + sMSOverNASIndicator [13] SMSOverNASIndicator OPTIONAL, + oldGUTI [14] EPS5GGUTI OPTIONAL, + eMM5GRegStatus [15] EMM5GMMStatus OPTIONAL } -- See clause 6.2.2.2.6 for details of this structure @@ -423,7 +1269,8 @@ SMFPDUSessionEstablishment ::= SEQUENCE accessType [16] AccessType OPTIONAL, rATType [17] RATType OPTIONAL, sMPDUDNRequest [18] SMPDUDNRequest OPTIONAL, - uEEPSPDNConnection [19] UEEPSPDNConnection OPTIONAL + uEEPSPDNConnection [19] UEEPSPDNConnection OPTIONAL, + ePS5GSComboInfo [20] EPS5GSComboInfo OPTIONAL } -- See clause 6.2.3.2.3 for details of this structure @@ -439,7 +1286,8 @@ SMFPDUSessionModification ::= SEQUENCE requestType [8] FiveGSMRequestType, accessType [9] AccessType OPTIONAL, rATType [10] RATType OPTIONAL, - pDUSessionID [11] PDUSessionID OPTIONAL + pDUSessionID [11] PDUSessionID OPTIONAL, + ePS5GSComboInfo [12] EPS5GSComboInfo OPTIONAL } -- See clause 6.2.3.2.4 for details of this structure @@ -454,7 +1302,8 @@ SMFPDUSessionRelease ::= SEQUENCE uplinkVolume [7] INTEGER OPTIONAL, downlinkVolume [8] INTEGER OPTIONAL, location [9] Location OPTIONAL, - cause [10] SMFErrorCodes OPTIONAL + cause [10] SMFErrorCodes OPTIONAL, + ePS5GSComboInfo [11] EPS5GSComboInfo OPTIONAL } -- See clause 6.2.3.2.5 for details of this structure @@ -478,7 +1327,8 @@ SMFStartOfInterceptionWithEstablishedPDUSession ::= SEQUENCE accessType [16] AccessType OPTIONAL, rATType [17] RATType OPTIONAL, sMPDUDNRequest [18] SMPDUDNRequest OPTIONAL, - timeOfSessionEstablishment [19] Timestamp OPTIONAL + timeOfSessionEstablishment [19] Timestamp OPTIONAL, + ePS5GSComboInfo [20] EPS5GSComboInfo OPTIONAL } -- See clause 6.2.3.2.6 for details of this structure @@ -638,6 +1488,8 @@ SMFMAUnsuccessfulProcedure ::= SEQUENCE -- 5G SMF parameters -- ================= +SMFID ::= UTF8String + SMFFailedProcedureType ::= ENUMERATED { pDUSessionEstablishment(1), @@ -680,10 +1532,10 @@ SMFMAAcceptedIndication ::= BOOLEAN -- see Clause 6.1.6.3.8 of TS 29.502[16] for the details of this structure. SMFErrorCodes ::= UTF8String --- see Clause 6.1.6.3.2 of TS 29.502[16] for details of this structure. +-- see Clause 6.1.6.3.2 of TS 29.502[16] for details of this structure. UEEPSPDNConnection ::= OCTET STRING --- see Clause 6.1.6.3.6 of TS 29.502[16] for the details of this structure. +-- see Clause 6.1.6.3.6 of TS 29.502[16] for the details of this structure. RequestIndication ::= ENUMERATED { uEREQPDUSESMOD(0), @@ -696,6 +1548,49 @@ RequestIndication ::= ENUMERATED rELDUETO5GANREQUEST(7) } +-- ====================== +-- PGW-C + SMF Parameters +-- ====================== + +EPS5GSComboInfo ::= SEQUENCE +{ + ePSInterworkingIndication [1] EPSInterworkingIndication, + ePSSubscriberIDs [2] EPSSubscriberIDs, + ePSPDNCnxInfo [3] EPSPDNCnxInfo OPTIONAL, + ePSBearerInfo [4] EPSBearerInfo OPTIONAL +} + +EPSInterworkingIndication ::= ENUMERATED +{ + none(1), + withN26(2), + withoutN26(3), + iwkNon3GPP(4) +} + +EPSSubscriberIDs ::= SEQUENCE +{ + iMSI [1] IMSI OPTIONAL, + mSISDN [2] MSISDN OPTIONAL, + iMEI [3] IMEI OPTIONAL +} + +EPSPDNCnxInfo ::= SEQUENCE +{ + pGWS8ControlPlaneFTEID [1] FTEID, + linkedBearerID [2] EPSBearerID OPTIONAL +} + +EPSBearerInfo ::= SEQUENCE OF EPSBearers + +EPSBearers ::= SEQUENCE +{ + ePSBearerID [1] EPSBearerID, + pGWS8UserPlaneFTEID [2] FTEID, + qCI [3] QCI +} + +QCI ::= INTEGER (0..255) -- ================== -- 5G UPF definitions -- ================== @@ -726,7 +1621,7 @@ QFI ::= INTEGER (0..63) -- 5G UDM definitions -- ================== -UDMServingSystemMessage ::= SEQUENCE +UDMServingSystemMessage ::= SEQUENCE { sUPI [1] SUPI, pEI [2] PEI OPTIONAL, @@ -952,7 +1847,7 @@ MMSSendByNonLocalTarget ::= SEQUENCE dRMContent [23] BOOLEAN OPTIONAL, adaptationAllowed [24] MMSAdaptation OPTIONAL } - + MMSNotification ::= SEQUENCE { transactionID [1] UTF8String, @@ -968,7 +1863,7 @@ MMSNotification ::= SEQUENCE expiry [11] MMSExpiry, replyCharging [12] MMSReplyCharging OPTIONAL } - + MMSSendToNonLocalTarget ::= SEQUENCE { version [1] MMSVersion, @@ -1022,7 +1917,7 @@ MMSRetrieval ::= SEQUENCE state [12] MMState OPTIONAL, flags [13] MMFlags OPTIONAL, messageClass [14] MMSMessageClass OPTIONAL, - priority [15] MMSPriority, + priority [15] MMSPriority, deliveryReport [16] BOOLEAN OPTIONAL, readReport [17] BOOLEAN OPTIONAL, replyCharging [18] MMSReplyCharging OPTIONAL, @@ -1056,7 +1951,7 @@ MMSForward ::= SEQUENCE cCRecipients [6] SEQUENCE OF MMSParty OPTIONAL, bCCRecipients [7] SEQUENCE OF MMSParty OPTIONAL, direction [8] MMSDirection, - expiry [9] MMSExpiry OPTIONAL, + expiry [9] MMSExpiry OPTIONAL, desiredDeliveryTime [10] Timestamp OPTIONAL, deliveryReportAllowed [11] BOOLEAN OPTIONAL, deliveryReport [12] BOOLEAN OPTIONAL, @@ -1068,10 +1963,10 @@ MMSForward ::= SEQUENCE responseStatus [18] MMSResponseStatus, responseStatusText [19] UTF8String OPTIONAL, messageID [20] UTF8String OPTIONAL, - contentLocationConf [21] UTF8String OPTIONAL, + contentLocationConf [21] UTF8String OPTIONAL, storeStatus [22] MMSStoreStatus OPTIONAL, storeStatusText [23] UTF8String OPTIONAL -} +} MMSDeleteFromRelay ::= SEQUENCE { @@ -1089,13 +1984,13 @@ MMSMBoxStore ::= SEQUENCE transactionID [1] UTF8String, version [2] MMSVersion, direction [3] MMSDirection, - contentLocationReq [4] UTF8String, + contentLocationReq [4] UTF8String, state [5] MMState OPTIONAL, flags [6] MMFlags OPTIONAL, - contentLocationConf [7] UTF8String OPTIONAL, + contentLocationConf [7] UTF8String OPTIONAL, storeStatus [8] MMSStoreStatus, storeStatusText [9] UTF8String OPTIONAL -} +} MMSMBoxUpload ::= SEQUENCE { @@ -1105,11 +2000,11 @@ MMSMBoxUpload ::= SEQUENCE state [4] MMState OPTIONAL, flags [5] MMFlags OPTIONAL, contentType [6] UTF8String, - contentLocation [7] UTF8String OPTIONAL, + contentLocation [7] UTF8String OPTIONAL, storeStatus [8] MMSStoreStatus, storeStatusText [9] UTF8String OPTIONAL, mMessages [10] SEQUENCE OF MMBoxDescription -} +} MMSMBoxDelete ::= SEQUENCE { @@ -1189,7 +2084,7 @@ MMSCancel ::= SEQUENCE version [2] MMSVersion, cancelID [3] UTF8String, direction [4] MMSDirection -} +} MMSMBoxViewRequest ::= SEQUENCE { @@ -1246,7 +2141,7 @@ MMBoxDescription ::= SEQUENCE -- ========= -- MMS CCPDU -- ========= - + MMSCCPDU ::= SEQUENCE { version [1] MMSVersion, @@ -1312,7 +2207,7 @@ MMSDeleteResponseStatus ::= ENUMERATED errorPermanentReplyChargingNotSupported(24), errorPermanentAddressHidingNotSupported(25), errorPermanentLackOfPrepaid(26) -} +} MMSDirection ::= ENUMERATED { @@ -1327,13 +2222,13 @@ MMSElementDescriptor ::= SEQUENCE value [3] UTF8String OPTIONAL } -MMSExpiry ::= SEQUENCE +MMSExpiry ::= SEQUENCE { expiryPeriod [1] INTEGER, - periodFormat [2] MMSPeriodFormat + periodFormat [2] MMSPeriodFormat } -MMFlags ::= SEQUENCE +MMFlags ::= SEQUENCE { length [1] INTEGER, flag [2] MMStateFlag, @@ -1363,7 +2258,7 @@ MMSPartyID ::= CHOICE iMPI [5] IMPI, sUPI [6] SUPI, gPSI [7] GPSI -} +} MMSPeriodFormat ::= ENUMERATED { @@ -1511,7 +2406,7 @@ MMSVersion ::= SEQUENCE { majorVersion [1] INTEGER, minorVersion [2] INTEGER -} +} -- ================== -- 5G PTC definitions @@ -1568,7 +2463,7 @@ PTCSessionEnd ::= SEQUENCE pTCDirection [2] Direction, pTCServerURI [3] UTF8String, pTCSessionInfo [4] PTCSessionInfo, - pTCParticipants [5] SEQUENCE OF PTCTargetInformation OPTIONAL, + pTCParticipants [5] SEQUENCE OF PTCTargetInformation OPTIONAL, location [6] Location OPTIONAL, pTCSessionEndCause [7] PTCSessionEndCause } @@ -1578,7 +2473,7 @@ PTCStartOfInterception ::= SEQUENCE pTCTargetInformation [1] PTCTargetInformation, pTCDirection [2] Direction, preEstSessionID [3] PTCSessionInfo OPTIONAL, - pTCOriginatingID [4] PTCTargetInformation, + pTCOriginatingID [4] PTCTargetInformation, pTCSessionInfo [5] PTCSessionInfo OPTIONAL, pTCHost [6] PTCTargetInformation OPTIONAL, pTCParticipants [7] SEQUENCE OF PTCTargetInformation OPTIONAL, @@ -1704,6 +2599,11 @@ PTCAccessPolicy ::= SEQUENCE pTCAccessPolicyFailure [7] PTCAccessPolicyFailure OPTIONAL } +-- ========= +-- PTC CCPDU +-- ========= + +PTCCCPDU ::= OCTET STRING -- ================= -- 5G PTC parameters @@ -1748,7 +2648,7 @@ PTCIdentifiers ::= CHOICE PTCSessionInfo ::= SEQUENCE { - pTCSessionURI [1] UTF8String, + pTCSessionURI [1] UTF8String, pTCSessionType [2] PTCSessionType } @@ -1792,7 +2692,7 @@ RTPSetting ::= SEQUENCE PTCIDList ::= SEQUENCE { pTCPartyID [1] PTCTargetInformation, - pTCChatGroupID [2] PTCChatGroupID + pTCChatGroupID [2] PTCChatGroupID } PTCChatGroupID ::= SEQUENCE @@ -1897,7 +2797,165 @@ PTCAccessPolicyFailure ::= ENUMERATED { requestUnsuccessful(1), requestUnknown(2) -} +} +-- =============== +-- IMS definitions +-- =============== + +-- See clause 7.12.4.2.1 for details of this structure +IMSMessage ::= SEQUENCE +{ + payload [1] IMSPayload, + sessionDirection [2] SessionDirection, + voIPRoamingIndication [3] VoIPRoamingIndication OPTIONAL, + location [6] Location OPTIONAL +} +-- See clause 7.12.4.2.3 for details of this structure +StartOfInterceptionForActiveIMSSession ::= SEQUENCE +{ + originatingId [1] SEQUENCE OF IMPU, + terminatingId [2] IMPU, + sDPState [3] SEQUENCE OF OCTET STRING OPTIONAL, + diversionIdentity [4] IMPU OPTIONAL, + voIPRoamingIndication [5] VoIPRoamingIndication OPTIONAL, + location [7] Location OPTIONAL +} + +-- ============== +-- IMS parameters +-- ============== + +IMSPayload ::= CHOICE +{ + encapsulatedSIPMessage [1] SIPMessage +} + +SIPMessage ::= SEQUENCE +{ + iPSourceAddress [1] IPAddress, + iPDestinationAddress [2] IPAddress, + sIPContent [3] OCTET STRING +} + +VoIPRoamingIndication ::= ENUMERATED +{ + roamingLBO(1), + roamingS8HR(2), + roamingN9HR(3) +} + +SessionDirection ::= ENUMERATED +{ + fromTarget(1), + toTarget(2), + combined(3), + indeterminate(4) +} + +HeaderOnlyIndication ::= BOOLEAN + +-- ================================= +-- STIR/SHAKEN/RCD/eCNAM definitions +-- ================================= + +-- See clause 7.11.2.1.2 for details of this structure +STIRSHAKENSignatureGeneration ::= SEQUENCE +{ + pASSporTs [1] SEQUENCE OF PASSporT +} + +-- See clause 7.11.2.1.3 for details of this structure +STIRSHAKENSignatureValidation ::= SEQUENCE +{ + pASSporTs [1] SEQUENCE OF PASSporT OPTIONAL, + rCDTerminalDisplayInfo [2] RCDDisplayInfo OPTIONAL, + eCNAMTerminalDisplayInfo [3] ECNAMDisplayInfo OPTIONAL, + sHAKENValidationResult [4] SHAKENValidationResult, + sHAKENFailureStatusCode [5] SHAKENFailureStatusCode OPTIONAL +} + +-- ================================ +-- STIR/SHAKEN/RCD/eCNAM parameters +-- ================================ + +PASSporT ::= SEQUENCE +{ + pASSporTHeader [1] PASSporTHeader, + pASSporTPayload [2] PASSporTPayload, + pASSporTSignature [3] OCTET STRING +} + +PASSporTHeader ::= SEQUENCE +{ + type [1] JWSTokenType, + algorithm [2] UTF8String, + ppt [3] UTF8String OPTIONAL, + x5u [4] UTF8String +} + +JWSTokenType ::= ENUMERATED +{ + passport(1) +} + +PASSporTPayload ::= SEQUENCE +{ + issuedAtTime [1] GeneralizedTime, + originator [2] STIRSHAKENOriginator, + destination [3] STIRSHAKENDestinations, + attestation [4] Attestation, + origId [5] UTF8String, + diversion [6] STIRSHAKENDestination +} + +STIRSHAKENOriginator ::= CHOICE +{ + telephoneNumber [1] STIRSHAKENTN, + sTIRSHAKENURI [2] UTF8String +} + +STIRSHAKENDestinations ::= SEQUENCE OF STIRSHAKENDestination + +STIRSHAKENDestination ::= CHOICE +{ + telephoneNumber [1] STIRSHAKENTN, + sTIRSHAKENURI [2] UTF8String +} + + +STIRSHAKENTN ::= CHOICE +{ + mSISDN [1] MSISDN +} + +Attestation ::= ENUMERATED +{ + attestationA(1), + attestationB(2), + attestationC(3) +} + +SHAKENValidationResult ::= ENUMERATED +{ + tNValidationPassed(1), + tNValidationFailed(2), + noTNValidation(3) +} + +SHAKENFailureStatusCode ::= INTEGER + +ECNAMDisplayInfo ::= SEQUENCE +{ + name [1] UTF8String, + additionalInfo [2] OCTET STRING OPTIONAL +} + +RCDDisplayInfo ::= SEQUENCE +{ + name [1] UTF8String, + jcd [2] OCTET STRING OPTIONAL, + jcl [3] OCTET STRING OPTIONAL +} -- =================== -- 5G LALS definitions @@ -1906,9 +2964,12 @@ PTCAccessPolicyFailure ::= ENUMERATED LALSReport ::= SEQUENCE { sUPI [1] SUPI OPTIONAL, - pEI [2] PEI OPTIONAL, +-- pEI [2] PEI OPTIONAL, deprecated in Release-16, do not re-use this tag number gPSI [3] GPSI OPTIONAL, - location [4] Location OPTIONAL + location [4] Location OPTIONAL, + iMPU [5] IMPU OPTIONAL, + iMSI [7] IMSI OPTIONAL, + mSISDN [8] MSISDN OPTIONAL } -- ===================== @@ -1917,7 +2978,7 @@ LALSReport ::= SEQUENCE PDHeaderReport ::= SEQUENCE { - pDUSessionID [1] PDUSessionID, + pDUSessionID [1] PDUSessionID, sourceIPAddress [2] IPAddress, sourcePort [3] PortNumber OPTIONAL, destinationIPAddress [4] IPAddress, @@ -1962,7 +3023,7 @@ PDSRSummaryTrigger ::= ENUMERATED -- Identifier Association definitions -- ================================== -AMFIdentifierAssocation ::= SEQUENCE +AMFIdentifierAssociation ::= SEQUENCE { sUPI [1] SUPI, sUCI [2] SUCI OPTIONAL, @@ -1973,7 +3034,7 @@ AMFIdentifierAssocation ::= SEQUENCE fiveGSTAIList [7] TAIList OPTIONAL } -MMEIdentifierAssocation ::= SEQUENCE +MMEIdentifierAssociation ::= SEQUENCE { iMSI [1] IMSI, iMEI [2] IMEI OPTIONAL, @@ -1987,14 +3048,6 @@ MMEIdentifierAssocation ::= SEQUENCE -- Identifier Association parameters -- ================================= -GUTI ::= SEQUENCE -{ - mCC [1] MCC, - mNC [2] MNC, - mMEGroupID [3] MMEGroupID, - mMECode [4] MMECode, - mTMSI [5] TMSI -} MMEGroupID ::= OCTET STRING (SIZE(2)) @@ -2002,6 +3055,144 @@ MMECode ::= OCTET STRING (SIZE(1)) TMSI ::= OCTET STRING (SIZE(4)) +-- =================== +-- EPS MME definitions +-- =================== + +MMEAttach ::= SEQUENCE +{ + attachType [1] EPSAttachType, + attachResult [2] EPSAttachResult, + iMSI [3] IMSI, + iMEI [4] IMEI OPTIONAL, + mSISDN [5] MSISDN OPTIONAL, + gUTI [6] GUTI OPTIONAL, + location [7] Location OPTIONAL, + ePSTAIList [8] TAIList OPTIONAL, + sMSServiceStatus [9] EPSSMSServiceStatus OPTIONAL, + oldGUTI [10] GUTI OPTIONAL, + eMM5GRegStatus [11] EMM5GMMStatus OPTIONAL +} + +MMEDetach ::= SEQUENCE +{ + detachDirection [1] MMEDirection, + detachType [2] EPSDetachType, + iMSI [3] IMSI, + iMEI [4] IMEI OPTIONAL, + mSISDN [5] MSISDN OPTIONAL, + gUTI [6] GUTI OPTIONAL, + cause [7] EMMCause OPTIONAL, + location [8] Location OPTIONAL, + switchOffIndicator [9] SwitchOffIndicator OPTIONAL +} + +MMELocationUpdate ::= SEQUENCE +{ + iMSI [1] IMSI, + iMEI [2] IMEI OPTIONAL, + mSISDN [3] MSISDN OPTIONAL, + gUTI [4] GUTI OPTIONAL, + location [5] Location OPTIONAL, + oldGUTI [6] GUTI OPTIONAL, + sMSServiceStatus [7] EPSSMSServiceStatus OPTIONAL +} + +MMEStartOfInterceptionWithEPSAttachedUE ::= SEQUENCE +{ + attachType [1] EPSAttachType, + attachResult [2] EPSAttachResult, + iMSI [3] IMSI, + iMEI [4] IMEI OPTIONAL, + mSISDN [5] MSISDN OPTIONAL, + gUTI [6] GUTI OPTIONAL, + location [7] Location OPTIONAL, + ePSTAIList [9] TAIList OPTIONAL, + sMSServiceStatus [10] EPSSMSServiceStatus OPTIONAL, + eMM5GRegStatus [12] EMM5GMMStatus OPTIONAL +} + +MMEUnsuccessfulProcedure ::= SEQUENCE +{ + failedProcedureType [1] MMEFailedProcedureType, + failureCause [2] MMEFailureCause, + iMSI [3] IMSI OPTIONAL, + iMEI [4] IMEI OPTIONAL, + mSISDN [5] MSISDN OPTIONAL, + gUTI [6] GUTI OPTIONAL, + location [7] Location OPTIONAL +} + +-- ================== +-- EPS MME parameters +-- ================== + +EMMCause ::= INTEGER (0..255) + +ESMCause ::= INTEGER (0..255) + +EPSAttachType ::= ENUMERATED +{ + ePSAttach(1), + combinedEPSIMSIAttach(2), + ePSRLOSAttach(3), + ePSEmergencyAttach(4), + reserved(5) +} + +EPSAttachResult ::= ENUMERATED +{ + ePSOnly(1), + combinedEPSIMSI(2) +} + + +EPSDetachType ::= ENUMERATED +{ + ePSDetach(1), + iMSIDetach(2), + combinedEPSIMSIDetach(3), + reAttachRequired(4), + reAttachNotRequired(5), + reserved(6) +} + +EPSSMSServiceStatus ::= ENUMERATED +{ + sMSServicesNotAvailable(1), + sMSServicesNotAvailableInThisPLMN(2), + networkFailure(3), + congestion(4) +} + +MMEDirection ::= ENUMERATED +{ + networkInitiated(1), + uEInitiated(2) +} + +MMEFailedProcedureType ::= ENUMERATED +{ + attachReject(1), + authenticationReject(2), + securityModeReject(3), + serviceReject(4), + trackingAreaUpdateReject(5), + activateDedicatedEPSBearerContextReject(6), + activateDefaultEPSBearerContextReject(7), + bearerResourceAllocationReject(8), + bearerResourceModificationReject(9), + modifyEPSBearerContectReject(10), + pDNConnectivityReject(11), + pDNDisconnectReject(12) +} + +MMEFailureCause ::= CHOICE +{ + eMMCause [1] EMMCause, + eSMCause [2] ESMCause +} + -- =========================== -- LI Notification definitions -- =========================== @@ -2040,6 +3231,52 @@ LIAppliedDeliveryInformation ::= SEQUENCE MDFCellSiteReport ::= SEQUENCE OF CellInformation +-- ============================== +-- 5G EPS Interworking Parameters +-- ============================== + + +EMM5GMMStatus ::= SEQUENCE +{ + eMMRegStatus [1] EMMRegStatus OPTIONAL, + fiveGMMStatus [2] FiveGMMStatus OPTIONAL +} + + +EPS5GGUTI ::= CHOICE +{ + gUTI [1] GUTI, + fiveGGUTI [2] FiveGGUTI +} + +EMMRegStatus ::= ENUMERATED +{ + uEEMMRegistered(1), + uENotEMMRegistered(2) +} + +FiveGMMStatus ::= ENUMERATED +{ + uE5GMMRegistered(1), + uENot5GMMRegistered(2) +} + +-- ======================================== +-- Separated Location Reporting definitions +-- ======================================== + +SeparatedLocationReporting ::= SEQUENCE +{ + sUPI [1] SUPI, + sUCI [2] SUCI OPTIONAL, + pEI [3] PEI OPTIONAL, + gPSI [4] GPSI OPTIONAL, + gUTI [5] FiveGGUTI OPTIONAL, + location [6] Location, + non3GPPAccessEndpoint [7] UEEndpointAddress OPTIONAL, + rATType [8] RATType OPTIONAL +} + -- ================= -- Common Parameters -- ================= @@ -2063,6 +3300,8 @@ E164Number ::= NumericString (SIZE(1..15)) EmailAddress ::= UTF8String +EUI64 ::= OCTET STRING (SIZE(8)) + FiveGGUTI ::= SEQUENCE { mCC [1] MCC, @@ -2116,6 +3355,15 @@ GUMMEI ::= SEQUENCE mNC [3] MNC } +GUTI ::= SEQUENCE +{ + mCC [1] MCC, + mNC [2] MNC, + mMEGroupID [3] MMEGroupID, + mMECode [4] MMECode, + mTMSI [5] TMSI +} + HomeNetworkPublicKeyID ::= OCTET STRING HSMFURI ::= UTF8String @@ -2155,6 +3403,13 @@ IPv6FlowLabel ::= INTEGER(0..1048575) MACAddress ::= OCTET STRING (SIZE(6)) +MACRestrictionIndicator ::= ENUMERATED +{ + noResrictions(1), + mACAddressNotUseableAsEquipmentIdentifier(2), + unknown(3) +} + MCC ::= NumericString (SIZE(3)) MNC ::= NumericString (SIZE(2..3)) @@ -2181,6 +3436,11 @@ NonLocalID ::= ENUMERATED nonLocal(2) } +NonIMEISVPEI ::= CHOICE +{ + mACAddress [1] MACAddress +} + NSSAI ::= SEQUENCE OF SNSSAI PLMNID ::= SEQUENCE @@ -2203,7 +3463,9 @@ PDUSessionType ::= ENUMERATED PEI ::= CHOICE { iMEI [1] IMEI, - iMEISV [2] IMEISV + iMEISV [2] IMEISV, + mACAddress [3] MACAddress, + eUI64 [4] EUI64 } PortNumber ::= INTEGER(0..65535) @@ -2239,6 +3501,12 @@ RejectedSNSSAI ::= SEQUENCE RejectedSliceCauseValue ::= INTEGER (0..255) +ReRegRequiredIndicator ::= ENUMERATED +{ + reRegistrationRequired(1), + reRegistrationNotRequired(2) +} + RoutingIndicator ::= INTEGER (0..9999) SchemeOutput ::= OCTET STRING @@ -2254,6 +3522,13 @@ Slice ::= SEQUENCE SMPDUDNRequest ::= OCTET STRING +-- TS 24.501 [13], clause 9.11.3.6.1 +SMSOverNASIndicator ::= ENUMERATED +{ + sMSOverNASNotAllowed(1), + sMSOverNASAllowed(2) +} + SNSSAI ::= SEQUENCE { sliceServiceType [1] INTEGER (0..255), @@ -2278,6 +3553,12 @@ SUPI ::= CHOICE SUPIUnauthenticatedIndication ::= BOOLEAN +SwitchOffIndicator ::= ENUMERATED +{ + normalDetach(1), + switchOff(2) +} + TargetIdentifier ::= CHOICE { sUPI [1] SUPI, @@ -2317,9 +3598,10 @@ UEEndpointAddress ::= CHOICE Location ::= SEQUENCE { - locationInfo [1] LocationInfo OPTIONAL, - positioningInfo [2] PositioningInfo OPTIONAL, - locationPresenceReport [3] LocationPresenceReport OPTIONAL + locationInfo [1] LocationInfo OPTIONAL, + positioningInfo [2] PositioningInfo OPTIONAL, + locationPresenceReport [3] LocationPresenceReport OPTIONAL, + ePSLocationInfo [4] EPSLocationInfo OPTIONAL } CellSiteInformation ::= SEQUENCE @@ -2333,7 +3615,7 @@ CellSiteInformation ::= SEQUENCE LocationInfo ::= SEQUENCE { userLocation [1] UserLocation OPTIONAL, - currentLoc [2] BOOLEAN OPTIONAL, + currentLoc [2] BOOLEAN OPTIONAL, geoInfo [3] GeographicArea OPTIONAL, rATType [4] RATType OPTIONAL, timeZone [5] TimeZone OPTIONAL, @@ -2353,10 +3635,10 @@ EUTRALocation ::= SEQUENCE { tAI [1] TAI, eCGI [2] ECGI, - ageOfLocatonInfo [3] INTEGER OPTIONAL, + ageOfLocationInfo [3] INTEGER OPTIONAL, uELocationTimestamp [4] Timestamp OPTIONAL, - geographicalInformation [5] UTF8String OPTIONAL, - geodeticInformation [6] UTF8String OPTIONAL, + geographicalInformation [5] UTF8String OPTIONAL, + geodeticInformation [6] UTF8String OPTIONAL, globalNGENbID [7] GlobalRANNodeID OPTIONAL, cellSiteInformation [8] CellSiteInformation OPTIONAL, globalENbID [9] GlobalRANNodeID OPTIONAL @@ -2367,10 +3649,10 @@ NRLocation ::= SEQUENCE { tAI [1] TAI, nCGI [2] NCGI, - ageOfLocatonInfo [3] INTEGER OPTIONAL, + ageOfLocationInfo [3] INTEGER OPTIONAL, uELocationTimestamp [4] Timestamp OPTIONAL, geographicalInformation [5] UTF8String OPTIONAL, - geodeticInformation [6] UTF8String OPTIONAL, + geodeticInformation [6] UTF8String OPTIONAL, globalGNbID [7] GlobalRANNodeID OPTIONAL, cellSiteInformation [8] CellSiteInformation OPTIONAL } @@ -2379,9 +3661,17 @@ NRLocation ::= SEQUENCE N3GALocation ::= SEQUENCE { tAI [1] TAI OPTIONAL, - n3IWFID [2] N3IWFIDNGAP OPTIONAL, + n3IWFID [2] N3IWFIDNGAP OPTIONAL, uEIPAddr [3] IPAddr OPTIONAL, - portNumber [4] INTEGER OPTIONAL + portNumber [4] INTEGER OPTIONAL, + tNAPID [5] TNAPID OPTIONAL, + tWAPID [6] TWAPID OPTIONAL, + hFCNodeID [7] HFCNodeID OPTIONAL, + gLI [8] GLI OPTIONAL, + w5GBANLineType [9] W5GBANLineType OPTIONAL, + gCI [10] GCI OPTIONAL, + ageOfLocationInfo [11] INTEGER OPTIONAL, + uELocationTimestamp [12] Timestamp OPTIONAL } -- TS 38.413 [23], clause 9.3.2.4 @@ -2404,7 +3694,9 @@ ANNodeID ::= CHOICE n3IWFID [1] N3IWFIDSBI, gNbID [2] GNbID, nGENbID [3] NGENbID, - eNbID [4] ENbID + eNbID [4] ENbID, + wAGFID [5] WAGFID, + tNGFID [6] TNGFID } -- TS 38.413 [23], clause 9.3.1.6 @@ -2418,6 +3710,31 @@ TAI ::= SEQUENCE nID [3] NID OPTIONAL } +CGI ::= SEQUENCE +{ + lAI [1] LAI, + cellID [2] CellID +} + +LAI ::= SEQUENCE +{ + pLMNID [1] PLMNID, + lAC [2] LAC +} + +LAC ::= OCTET STRING (SIZE(2)) + +CellID ::= OCTET STRING (SIZE(2)) + +SAI ::= SEQUENCE +{ + pLMNID [1] PLMNID, + lAC [2] LAC, + sAC [3] SAC +} + +SAC ::= OCTET STRING (SIZE(2)) + -- TS 29.571 [17], clause 5.4.4.5 ECGI ::= SEQUENCE { @@ -2442,7 +3759,7 @@ RANCGI ::= CHOICE nCGI [2] NCGI } -CellInformation ::= SEQUENCE +CellInformation ::= SEQUENCE { rANCGI [1] RANCGI, cellSiteinformation [2] CellSiteInformation OPTIONAL, @@ -2455,6 +3772,51 @@ N3IWFIDNGAP ::= BIT STRING (SIZE(16)) -- TS 29.571 [17], clause 5.4.4.28 N3IWFIDSBI ::= UTF8String +-- TS 29.571 [17], clause 5.4.4.28 and table 5.4.2-1 +TNGFID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.28 and table 5.4.2-1 +WAGFID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.62 +TNAPID ::= SEQUENCE +{ + sSID [1] SSID OPTIONAL, + bSSID [2] BSSID OPTIONAL, + civicAddress [3] CivicAddressBytes OPTIONAL +} + +-- TS 29.571 [17], clause 5.4.4.64 +TWAPID ::= SEQUENCE +{ + sSID [1] SSID OPTIONAL, + bSSID [2] BSSID OPTIONAL, + civicAddress [3] CivicAddressBytes OPTIONAL +} + +-- TS 29.571 [17], clause 5.4.4.62 and clause 5.4.4.64 +SSID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.62 and clause 5.4.4.64 +BSSID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.36 and table 5.4.2-1 +HFCNodeID ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.10 and table 5.4.2-1 +-- Contains the original binary data i.e. value of the YAML field after base64 encoding is removed +GLI ::= OCTET STRING (SIZE(0..150)) + +-- TS 29.571 [17], clause 5.4.4.10 and table 5.4.2-1 +GCI ::= UTF8String + +-- TS 29.571 [17], clause 5.4.4.10 and clause 5.4.3.33 +W5GBANLineType ::= ENUMERATED +{ + dSL(1), + pON(2) +} + -- TS 29.571 [17], table 5.4.2-1 TAC ::= OCTET STRING (SIZE(2..3)) @@ -2488,12 +3850,12 @@ ENbID ::= CHOICE PositioningInfo ::= SEQUENCE { positionInfo [1] LocationData OPTIONAL, - rawMLPResponse [2] RawMLPResponse OPTIONAL + rawMLPResponse [2] RawMLPResponse OPTIONAL } RawMLPResponse ::= CHOICE { - -- The following parameter contains a copy of unparsed XML code of the + -- The following parameter contains a copy of unparsed XML code of the -- MLP response message, i.e. the entire XML document containing -- a (described in OMA-TS-MLP-V3_5-20181211-C [20], clause 5.2.3.2.2) or -- a (described in OMA-TS-MLP-V3_5-20181211-C [20], clause 5.2.3.2.3) MLP message. @@ -2518,6 +3880,25 @@ LocationData ::= SEQUENCE barometricPressure [11] BarometricPressure OPTIONAL } +-- TS 29.172 [53], table 6.2.2-2 +EPSLocationInfo ::= SEQUENCE +{ + locationData [1] LocationData, + cGI [2] CGI OPTIONAL, + sAI [3] SAI OPTIONAL, + eSMLCCellInfo [4] ESMLCCellInfo OPTIONAL +} + +-- TS 29.172 [53], clause 7.4.57 +ESMLCCellInfo ::= SEQUENCE +{ + eCGI [1] ECGI, + cellPortionID [2] CellPortionID +} + +-- TS 29.171 [54], clause 7.4.31 +CellPortionID ::= INTEGER (0..4095) + -- TS 29.518 [22], clause 6.2.6.2.5 LocationPresenceReport ::= SEQUENCE { @@ -2674,6 +4055,10 @@ CivicAddress ::= SEQUENCE pom [31] UTF8String OPTIONAL } +-- TS 29.571 [17], clauses 5.4.4.62 and 5.4.4.64 +-- Contains the original binary data i.e. value of the YAML field after base64 encoding is removed +CivicAddressBytes ::= OCTET STRING + -- TS 29.572 [24], clause 6.1.6.2.15 PositioningMethodAndUsage ::= SEQUENCE { @@ -2789,7 +4174,7 @@ HorizontalVelocityWithUncertainty ::= SEQUENCE -- TS 29.572 [24], clause 6.1.6.2.21 HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE { - hspeed [1] HorizontalSpeed, + hSpeed [1] HorizontalSpeed, bearing [2] Angle, vSpeed [3] VerticalSpeed, vDirection [4] VerticalDirection, @@ -2797,7 +4182,7 @@ HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE vUncertainty [6] SpeedUncertainty } --- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1 +-- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1 Altitude ::= UTF8String Angle ::= INTEGER (0..360) Uncertainty ::= INTEGER (0..127) @@ -2877,4 +4262,4 @@ OGCURN ::= UTF8String -- TS 29.572 [24], clause 6.1.6.2.15 MethodCode ::= INTEGER (16..31) -END +END \ No newline at end of file diff --git a/33128/r17/urn_3GPP_ns_li_3GPPIdentityExtensions_r16_v1.xsd b/33128/r17/urn_3GPP_ns_li_3GPPIdentityExtensions.xsd similarity index 51% rename from 33128/r17/urn_3GPP_ns_li_3GPPIdentityExtensions_r16_v1.xsd rename to 33128/r17/urn_3GPP_ns_li_3GPPIdentityExtensions.xsd index da7b1b01b98d5dc25a803380d3f6895fca6affd6..501e60a866c6202fa1fd46ea7e88e511e902f5cb 100644 --- a/33128/r17/urn_3GPP_ns_li_3GPPIdentityExtensions_r16_v1.xsd +++ b/33128/r17/urn_3GPP_ns_li_3GPPIdentityExtensions.xsd @@ -1,9 +1,9 @@ @@ -87,6 +87,8 @@ + + @@ -113,4 +115,114 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/33128/r17/urn_3GPP_ns_li_3GPPStateTransfer.xsd b/33128/r17/urn_3GPP_ns_li_3GPPStateTransfer.xsd new file mode 100644 index 0000000000000000000000000000000000000000..96f3da73e84b4809d90e9a8b2555c8cc2e58788a --- /dev/null +++ b/33128/r17/urn_3GPP_ns_li_3GPPStateTransfer.xsd @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/33128/r17/urn_3GPP_ns_li_3GPPX1Extensions_r16_v3.xsd b/33128/r17/urn_3GPP_ns_li_3GPPX1Extensions.xsd similarity index 75% rename from 33128/r17/urn_3GPP_ns_li_3GPPX1Extensions_r16_v3.xsd rename to 33128/r17/urn_3GPP_ns_li_3GPPX1Extensions.xsd index 20e67843d527f533a7d4a6dcc5ecc6ed997411e9..f3e6b851fb1b6f6285717d09a9a1024148f6c95a 100644 --- a/33128/r17/urn_3GPP_ns_li_3GPPX1Extensions_r16_v3.xsd +++ b/33128/r17/urn_3GPP_ns_li_3GPPX1Extensions.xsd @@ -1,9 +1,12 @@ + + @@ -11,8 +14,8 @@ - - + + @@ -59,16 +62,16 @@ - - + + - - + + @@ -175,24 +178,12 @@ - - + + - - - - - - - - - - - - @@ -245,4 +236,63 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f28b74c24b7c740b8835bf20583f7b77ee0f061e --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# 3GPP SA3-LI - Trial repository + +Trial repository for the 3GPP SA3-LI working group. + +## Guides and How-To + +Visit the [Wiki](https://forge.etsi.org/rep/3GPP/SA3LI/wikis/home) for guides on how to: +* [Log in to the Forge](https://forge.etsi.org/rep/3GPP/SA3LI/wikis/Logging%20in%20to%20the%20Forge) +* [Join the project](https://forge.etsi.org/rep/3GPP/SA3LI/wikis/Joining%20a%20project) +* [Make a CR](https://forge.etsi.org/rep/3GPP/SA3LI/wikis/Making%20a%20CR) + +Don't see a page on something you think should be documented? Then create one! + +## Contribute to the discussion + +Visit the [Issues](https://forge.etsi.org/rep/3GPP/SA3LI/issues) page and give +your thoughts and feedback on how we should use the Forge in SA3-LI. + +Have a question that you don't see an Issue for? Then [create one](https://forge.etsi.org/rep/3GPP/SA3LI/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=)! + +## Licence + +(c) 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). +All rights reserved. \ No newline at end of file diff --git a/Readme.md b/Readme.md deleted file mode 100644 index 5e1d634792c7c9579593c59d84da08cb4f4b21c8..0000000000000000000000000000000000000000 --- a/Readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# 3GPP SA3-LI - -Formal language specifications for the 3GPP SA3-LI working group. - -## Guides and How-To - -Visit the [Wiki](https://forge.3gpp.org/rep/SA3/LI/wikis/home) for guides on how to: -* [Log in to the Forge](https://forge.3gpp.org/rep/SA3/LI/wikis/Logging%20in%20to%20the%20Forge) -* [Join the project](https://forge.3gpp.org/rep/SA3/LI/wikis/Joining%20a%20project) -* [Make a CR](https://forge.3gpp.org/rep/SA3/LI/wikis/Making%20a%20CR) - -Don't see a page on something you think should be documented? Then create one! - -## Contribute to the discussion - -Visit the [Issues](https://forge.etsi.org/rep/SA3/LI/issues) page and give -your thoughts and feedback on how we should use the Forge in SA3-LI. - -Have a question that you don't see an Issue for? Then [create one](https://forge.3gpp.org/rep/SA3/LI/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=)! - -## Licence - -(c) 2021, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). -All rights reserved. diff --git a/testing/check_asn1.py b/testing/check_asn1.py deleted file mode 100644 index ab868ff335d3118e15125cc3f4a2b460c82b4b36..0000000000000000000000000000000000000000 --- a/testing/check_asn1.py +++ /dev/null @@ -1,94 +0,0 @@ -import logging - -from asn1tools import parse_files, compile_dict, ParseError, CompileError -from glob import glob -from pathlib import Path - -from pprint import pprint - - -def parseASN1File (asnFile): - try: - parse_files(asnFile) - except ParseError as ex: - return [ex] - return [] - - -def parseASN1Files (fileList): - if len(fileList) == 0: - logging.warning ("No files specified") - return {} - errors = {} - logging.info("Parsing files...") - for f in fileList: - ex = parseASN1File(f) - if ex: - logging.info (f" {f}: Failed - {ex!r}") - else: - logging.info (f" {f}: OK") - errors[f] = ex - return errors - - -def compileASN1Files (fileList): - logging.info("Compiling files...") - errors = [] - try: - d = parse_files(fileList) - for modulename, module in d.items(): - # Weird fix because the compiler doesn't like RELATIVE-OID as a type - # Not sure if the on-the-wire encoding would be affected or not - # but for most checking purposes this doesn't matter - module['types']["RELATIVE-OID"] = {'type' : 'OBJECT IDENTIFIER'} - c = compile_dict(d) - except CompileError as ex: - logging.info (f"Compiler error: {ex}") - errors.append(ex) - except ParseError as ex: - logging.info (f"Parse error: {ex}") - errors.append(ex) - logging.info ("Compiled OK") - return errors - - -def validateASN1Files (fileList): - parseErrors = parseASN1Files(fileList) -# if len(parseErrors > 0): -# logging.info ("Abandonding compile due to parse errors") - compileErrors = compileASN1Files(fileList) - return parseErrors, compileErrors - - -def validateAllASN1FilesInPath (path): - globPattern = str(Path(path)) + '/*.asn1' - logging.info("Searching: " + globPattern) - schemaGlob = glob(globPattern, recursive=True) - return validateASN1Files(schemaGlob) - - -if __name__ == '__main__': - parseErrors, compileErrors = validateAllASN1FilesInPath("./") - parseErrorCount = 0 - print ("ASN.1 Parser checks:") - print ("-----------------------------") - for filename, errors in parseErrors.items(): - if len(errors) > 0: - parseErrorCount += len(errors) - print (f"{filename}: {len(errors)} errors") - for error in errors: - print (" " + str(error)) - else: - print (f"{filename}: OK") - print ("-----------------------------") - print ("ASN.1 Compilation:") - print ("-----------------------------") - if len(compileErrors) > 0: - for error in compileErrors: - print (" " + str(error)) - else: - print ("Compilation OK") - print ("-----------------------------") - print (f"{parseErrorCount} parse errors, {len(compileErrors)} compile errors") - exit (parseErrorCount + len(compileErrors)) - diff --git a/testing/check_xsd.py b/testing/check_xsd.py index 70cf11fc50534cbc1f69acba0245aa983184d5ab..bbe8a72afa4824f409a90941af00fe244addc42f 100644 --- a/testing/check_xsd.py +++ b/testing/check_xsd.py @@ -1,5 +1,5 @@ import logging - +logging.basicConfig(level=logging.INFO) import glob import sys from pathlib import Path @@ -60,9 +60,7 @@ def ValidateXSDFiles (fileList): def ValidateAllXSDFilesInPath (path): - globPattern = str(Path(path)) + '/*.xsd' - logging.info("Searching: " + globPattern) - schemaGlob = glob.glob(globPattern, recursive=True) + schemaGlob = [str(f) for f in Path(path).rglob("*.xsd")] return ValidateXSDFiles(schemaGlob) diff --git a/testing/compile_asn1.py b/testing/compile_asn1.py index 6bd311bbbf83ce25280d985318b1a54d8d19df9d..35fd5954bd92e0b923980a8debab01595acf5da4 100644 --- a/testing/compile_asn1.py +++ b/testing/compile_asn1.py @@ -1 +1,47 @@ -print ("Not implemented yet") \ No newline at end of file +import logging + +import asn1tools +from pathlib import Path + +from pprint import pprint + +ignoreReleases = {'33108' : [f'r{i}' for i in range(5, 17)], + '33128' : [] } + +def prepareFile(f): + with open(f) as fh: + s = fh.read() + s = s.replace("RELATIVE-OID", "OBJECT IDENTIFIER") # sigh + return s + +if __name__ == '__main__': + fileList = list(Path(".").rglob("*.asn1")) + list(Path(".").rglob("*.asn")) + + ignoredFiles = [file for file in fileList if file.parts[1] in ignoreReleases[file.parts[0]]] + logging.info(f"Ignoring {len(ignoredFiles)} files") + logging.debug(ignoredFiles) + + fileList = [file for file in fileList if file not in ignoredFiles] + + if len(fileList) == 0: + logging.warning ("No files specified") + exit(0) + + print ("ASN.1 Compilation checks:") + print ("-----------------------------") + logging.info("Parsing files...") + errorCount = 0 + for f in fileList: + try: + s = prepareFile(str(f)) + asn1tools.compile_string(s) # this won't work for modules with IMPORTs + except asn1tools.ParseError as ex: + logging.info (f" {f}: Failed - {ex!r}") + print (f" {f}: Failed - {ex!r}") + errorCount += 1 + continue + print (f" {f}: OK") + print ("-----------------------------") + print (f"Compile errors: {errorCount}") + print ("-----------------------------") + exit(errorCount) diff --git a/testing/dependencies/xsd/TS_103_221_01_v010801.xsd b/testing/dependencies/xsd/TS_103_221_01_v010801.xsd new file mode 100644 index 0000000000000000000000000000000000000000..2cf5206327d992c5f46c749e1cbc4b176f61e05b --- /dev/null +++ b/testing/dependencies/xsd/TS_103_221_01_v010801.xsd @@ -0,0 +1,790 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing/dependencies/xsd/TS_103_280_v020401.xsd b/testing/dependencies/xsd/TS_103_280_v020401.xsd new file mode 100644 index 0000000000000000000000000000000000000000..e5c0bdea3682e1962175e2c84bd36a09a20ae821 --- /dev/null +++ b/testing/dependencies/xsd/TS_103_280_v020401.xsd @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing/dockerfile b/testing/dockerfile index d907429836a7429329ca4931d4fc4d296d4bcb22..d71a5bfbb31a252d405d0c71cba867f4fbb23587 100644 --- a/testing/dockerfile +++ b/testing/dockerfile @@ -1,2 +1,7 @@ -FROM python:3.7 -RUN pip3 install -q asn1tools lxml xmlschema \ No newline at end of file +# docker build -t mcanterb/forge-cicd +# docker push mcanterb/forge-cicd + +FROM python:3.8 +RUN apt update && apt-get install -y git +RUN git config --global user.name "forgeRobot" && git config --global user.email "forgeRobot@example.com" +RUN pip3 install -q asn1tools lxml xmlschema requests gitpython \ No newline at end of file diff --git a/testing/lintingexceptions.py b/testing/lintingexceptions.py index 948307e61c09ca8670d06e5f413f3c6550582fca..423b5d3926b9427e35d876e0eceee585a4042569 100644 --- a/testing/lintingexceptions.py +++ b/testing/lintingexceptions.py @@ -3,4 +3,5 @@ exceptedStrings = ["D.4.4: Enumerations for UDMServingSystemMethod start at 0, n "D.4.4: Enumerations for EstablishmentStatus start at 0, not 1", "D.4.4: Enumerations for MMSDirection start at 0, not 1", "D.4.4: Enumerations for MMSReplyCharging start at 0, not 1", -"D.4.4: Enumerations for MMStatusExtension start at 0, not 1"] \ No newline at end of file +"D.4.4: Enumerations for MMStatusExtension start at 0, not 1", +"D.4.4: Enumerations for RequestIndication start at 0, not 1"] diff --git a/testing/merge_test.py b/testing/merge_test.py new file mode 100644 index 0000000000000000000000000000000000000000..b7a82b39c4958ea30d4ac9a96e100e3041fe73c0 --- /dev/null +++ b/testing/merge_test.py @@ -0,0 +1,68 @@ +import os +import pprint +import requests +import json +import subprocess + +crCommitBranch = os.environ.get("CI_COMMIT_REF_NAME", "NOTFOUND") +apiUrl = os.environ.get("CI_API_V4_URL", "https://forge.3gpp.org/rep/api/v4") +projectId = os.environ.get("CI_PROJECT_ID", "13") + +def gapi (query): + url = f"{apiUrl}/projects/{projectId}/{query}" + r = requests.get(url) + return json.loads(r.text) + +def do (commandline): + #print (" Attempting: " + commandline) + completedProc = subprocess.run(commandline, capture_output=True, shell=True) + #print (" STDOUT > " + ("empty" if completedProc.stdout is None else completedProc.stdout.decode('utf-8'))) + #print (" STDERR > " + ("empty" if completedProc.stderr is None else completedProc.stderr.decode('utf-8'))) + #print (f" Completed with code {completedProc.returncode}") + return (completedProc.returncode == 0, completedProc.stdout.decode('utf-8')) + +print ("Searching for corresponding MR...") + +mrs = gapi(f"merge_requests?source_branch={crCommitBranch}&state=opened") +if len(mrs) == 0: + print ("No MR found... aborting") + exit() + +if len(mrs) > 1: + print (f"{len(mrs)} MRs found, 1 expected - aborting") + for m in mrs: + pprint.pprint(m) + exit(-1) + +mr = mrs[0] + +print (f"Found MR {mr['reference']} ({mr['title']})") +print (f"Target branch is {mr['target_branch']}") +print ("Searching for open MRs targeting same branch...") + +mrs = gapi(f"merge_requests?target_branch={mr['target_branch']}&state=opened") +mrs = [m for m in mrs if m['reference'] != mr['reference']] +print (f"{len(mrs)} MRs found") + +mergeConflicts = {} + +for mr in mrs: + source_branch = mr['source_branch'] + print (source_branch) + + try: + do(f"git fetch origin {source_branch}:{source_branch}") + success, errStr = do(f"git merge --no-commit {source_branch}") + if not success: + print ("Merge NOT OK") + mergeConflicts[source_branch] = errStr + else: + print ("Merge OK") + except Exception as ex: + mergeConflicts[source_branch] = str(ex) + raise + finally: + do("git merge --abort") + +print (f"Merge conflicts with following branches: {mergeConflicts}") +exit(len(mergeConflicts.keys())) \ No newline at end of file