| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NGAP is the protocol(an Application Layer Protocol) being used in the communication between between gNB and AMF as illustrated below. What I am going to do in this note is to provide details of NG Interface and NGAP (Protocol for NG Interface). Followings are the list of the topics on this note.
Overall Protocol StackStructure of the protocol stack for this interface is illustrated as below. Overall description and requirement of NGAP specified in 38.412 (very short specification). Since NGAP packet is encapsulated by IP and SCTP which are more of generic purpose (i.e, not 3GPP only), further details are specified in various RFC documents (Refer to 38.412 to know which RFC document you have to refer to). For the details of signaling procedure over NGAP, refer to 38.413. General Principles of NG InterfaceGeneral principles of NG Interface is described in 38.410 - 4.2 as follows :
NGAP CapabilitiesAccording to 38.410-4.4, NGAP support following capabilities :
NGAP Elementary ProcedureFollowings are the list of signaling messages (Elementary Procedure) of NGAP. There are two types of elementary procedure classified into Class 1 and Class 2. The definition of Class 1 and Class 2 is stated in 38.413 - 3.1 as follows :
The list of NGAP Elementary procedure and corresponding signaling message is defined in 38.413-8.1 as follows. < 38.413 v16.7- Table 8.1-1: Class 1 procedures >
< 38.413 - v16.7 :Table 8.1-2: Class 2 procedures >
NGAP Packet StructureIf you take packet capture (e.g, Wireshark capture) over the interface, you would get the packet structure as below. Following is SCTP initial setup process captured with Wireshark from Amarisoft Callbox. (a),(b),(c),(d) is the initial setup of SCTP which is explained in this note , the procedure (1)~(13) is the procedure that will be described in this note. NGAP EstablishThis procedure is to establish the signaling connection between gNB and AMF (i.e, the first connection process). This is not UE specific and this will apply to every UE that are connected to the specified AMF. This process is specified in 38.413-8.7.1. The overall procedure is simple two way handshaking as illustrated below. < 38.413-Figure 8.7.1.2-1: NG setup: successful operation > For the description of some important IEs in NG SETUP REQUEST and NG SETUP RESPONSE message, refer to 38.413-8.7.1.2. I think it is relatively clearly described in this specification. The IEs with the description as per 38.413 v16.7 is listed as below. Most of these IEs are optional, so you may not see all of these IEs configured in NGAP log.
In most cases, AMF accept NGSetupRequest from gNB and send NGSetupReponse, but if any of the following IE does not match with what AMF expects, it would refuse the connection.
Following is the message structure and requirement of NG SETUP REQUEST from 48.413-9.2.6.1
Following is the message structure and requirement of NG SETUP RESPONSE from 48.413-9.2.6.2
Followings are statements from 38.413-8.7.1.2 that are related to processing the information elements in NG SETUP REQUEST message.
Followings are statements from 38.413-8.7.1.2 that are related to processing the information elements in NG SETUP RESPONSE message.
(1) NG Setup RequestThe NGSetupRequest defines the structure and information that the gNB (or other nodes) needs to provide to the AMF when initiating the NG Setup procedure. The message format ensures that both the gNB and AMF can correctly interpret the content and establish a connection. FunctionalityThe NG Setup Request (NGSetupRequest) message is the initial step in the NG Setup procedure, responsible for establishing communication and exchanging essential configuration data between a gNB (gNodeB) and an AMF (Access and Mobility Management Function) in a 5G network. This message is sent by the gNB to the AMF and acts as a foundation for their interaction. Here's a breakdown of the NG Setup Request process based on the provided sources:
Contents of the MessageThis is the NGAP-PDU initiatingMessage with NGSetupRequest.
This NG Setup process is essential for managing the gNodeB's connectivity to the network, enabling it to serve UEs within its coverage area. Once the setup request is processed and accepted by the core network, it responds with an NGSetupResponse, confirming the gNodeB is ready to handle 5G communications..
ExamplesInternet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 108 Identification: 0x0001 (1) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x24b1 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0x3dba6023 [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 3757580128, SID: 0, SSN: 0, PPID: 60, payload length: 58 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 74 Transmission sequence number: 3757580128 [This chunk is acked in frame: 138] [The RTT to SACK was: 0.000032008 seconds] Stream identifier: 0x0000 Stream sequence number: 0 Payload protocol identifier: NGAP (60) Chunk padding: 0000 NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-NGSetup (21) criticality: reject (0) value NGSetupRequest protocolIEs: 4 items Item 0: id-GlobalRANNodeID ProtocolIE-Field id: id-GlobalRANNodeID (27) criticality: reject (0) value GlobalRANNodeID: globalGNB-ID (0) globalGNB-ID pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) gNB-ID: gNB-ID (0) gNB-ID: 00123450 [bit length 28, 4 LSB pad bits, ....] Item 1: id-RANNodeName ProtocolIE-Field id: id-RANNodeName (82) criticality: ignore (1) value RANNodeName: gnb0012345 Item 2: id-SupportedTAList ProtocolIE-Field id: id-SupportedTAList (102) criticality: reject (0) value SupportedTAList: 1 item Item 0 SupportedTAItem tAC: 100 (0x000064) broadcastPLMNList: 1 item Item 0 BroadcastPLMNItem pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) tAISliceSupportList: 1 item Item 0 SliceSupportItem s-NSSAI sST: 01 Item 3: id-DefaultPagingDRX ProtocolIE-Field id: id-DefaultPagingDRX (21) criticality: ignore (1) value PagingDRX: v128 (2) (2) NG Setup ResponseThis is a NGSetupResponse message within the NGAP (Next Generation Application Protocol) for 5G systems. This message is part of the signaling between the 5G gNodeB (base station) and the core network, particularly the AMF (Access and Mobility Management Function). It is categorized as a successfulOutcome, indicating a successful completion of the NG Setup procedure that was initiated by a NGSetupRequest. FunctionalityThe NG Setup Response (NGSetupResponse) message is sent by the AMF to the gNB in response to the gNB's NGSetupRequest message. The NGSetupResponse serves to acknowledge the gNB's request and to provide the AMF's configuration data to the gNB.
Contents of the Message\Here is the breakdown of the NGSetupResponse message:
Each ProtocolIE-Field is composed of an id, criticality, and value. The criticality of reject indicates that the receiving entity should reject the message and potentially notify the sender if it does not understand the IE, whereas ignore indicates that the message should be processed normally even if the IE is not understood ServedGUAMIList vs PLMNSupportListBoth ServedGUAMIList and PLMNSupportList are crucial information elements (IEs) within the NGSetupResponse message of the NGAP protocol. However, they serve different purposes in establishing the connection between a gNB and an AMF. Here's a breakdown of comparison(their differences) in functionality:
Both are essential for a successful NG Setup procedure, enabling the gNB and AMF to establish a connection and work collaboratively to manage the 5G network effectively. ExamplesInternet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 140 Identification: 0xadd1 (44497) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x76c0 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.162 Destination Address: 10.0.0.185 Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041) Source port: 38412 Destination port: 48041 Verification tag: 0x8d10a6cf [Association index: 65535] Checksum: 0x5a3ac41a [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 4169966867, SID: 0, SSN: 0, PPID: 60, payload length: 89 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 105 Transmission sequence number: 4169966867 [This chunk is acked in frame: 140] [The RTT to SACK was: 0.004556150 seconds] Stream identifier: 0x0000 Stream sequence number: 0 Payload protocol identifier: NGAP (60) Chunk padding: 000000 NGAP-PDU: successfulOutcome (1) successfulOutcome procedureCode: id-NGSetup (21) criticality: reject (0) value NGSetupResponse protocolIEs: 4 items Item 0: id-AMFName ProtocolIE-Field id: id-AMFName (1) criticality: reject (0) value AMFName: amarisoft.amf.5gc.mnc001.mcc001.3gppnetwork.org Item 1: id-ServedGUAMIList ProtocolIE-Field id: id-ServedGUAMIList (96) criticality: reject (0) value ServedGUAMIList: 1 item Item 0 ServedGUAMIItem gUAMI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) aMFRegionID: 80 [bit length 8, 1000 0000 decimal value 128] aMFSetID: 0100 [bit length 10, 6 LSB pad bits, 0000 0001 00.. .... decimal value 4] aMFPointer: 04 [bit length 6, 2 LSB pad bits, 0000 01.. decimal value 1] Item 2: id-RelativeAMFCapacity ProtocolIE-Field id: id-RelativeAMFCapacity (86) criticality: ignore (1) value RelativeAMFCapacity: 50 Item 3: id-PLMNSupportList ProtocolIE-Field id: id-PLMNSupportList (80) criticality: reject (0) value PLMNSupportList: 1 item Item 0 PLMNSupportItem pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) sliceSupportList: 1 item Item 0 SliceSupportItem s-NSSAI sST: 01 NR SA RegistrationThe Initial UE Message procedure is used when the NG-RAN node has received from the radio interface the first uplink NAS message to be forwarded to an AMF. < 38.413-Figure 8.6.1.2-1: Initial UE message > Following is from 38.413 - 9.2.5.1 about the message structure and requirement for INITIAL UE MESSAGE.
Followings are statements from 38.413-8.6.1.2 that are related to processing the information elements in this message.
(3) InitialUEMessageThis is InitialUEMessage NGAP PDU which is an initiating message sent from a User Equipment (UE) to the 5G core network through the gNodeB. It is used to establish initial contact with the network and to carry the first NAS (Non-Access Stratum) message from the UE. The InitialUEMessage is critical for the UE to communicate its presence and to begin the necessary procedures for service within the 5G network, such as registration or a service request. The NAS PDU carries essential security and capability information that the network needs to authenticate the UE and provide the appropriate services. This message is part of the 5G NR signaling process and contains multiple information elements (IEs) that serve different purposes:
Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 188 Identification: 0x0009 (9) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x2459 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0xdd43ee10 [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 3757580129, SID: 1, SSN: 0, PPID: 60, payload length: 137 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 153 Transmission sequence number: 3757580129 [This chunk is acked in frame: 886] [The RTT to SACK was: 0.000119970 seconds] Stream identifier: 0x0001 Stream sequence number: 0 Payload protocol identifier: NGAP (60) Chunk padding: 000000 NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-InitialUEMessage (15) criticality: ignore (1) value InitialUEMessage protocolIEs: 5 items Item 0: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 1: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: reject (0) value NAS-PDU: 7e017d335df8077e004109000bf200f110... Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0001 = Security header type: Integrity protected (1) Message authentication code: 0x7d335df8 Sequence number: 7 Plain NAS 5GS Message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0000 = Security header type: Plain NAS message, not security protected (0) Message type: Registration request (0x41) 5GS registration type .... 1... = Follow-On Request bit (FOR): Follow-on request pending .... .001 = 5GS registration type: initial registration (1) NAS key set identifier 0... .... = Type of security context flag(TSC): Native security context (for KSIAMF) .000 .... = NAS key set identifier: 0 5GS mobile identity Length: 11 .... 0... = Odd/even indication: Even number of identity digits .... .010 = Type of identity: 5G-GUTI (2) Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) AMF Region ID: 128 0000 0001 00.. .... = AMF Set ID: 4 ..00 0001 = AMF Pointer: 1 5G-TMSI: 3776478432 (0xe1187ce0) UE security capability Element ID: 0x2e Length: 4 1... .... = 5G-EA0: Supported .1.. .... = 128-5G-EA1: Supported ..1. .... = 128-5G-EA2: Supported ...1 .... = 128-5G-EA3: Supported .... 0... = 5G-EA4: Not supported .... .0.. = 5G-EA5: Not supported .... ..0. = 5G-EA6: Not supported .... ...0 = 5G-EA7: Not supported 0... .... = 5G-IA0: Not supported .1.. .... = 128-5G-IA1: Supported ..1. .... = 128-5G-IA2: Supported ...1 .... = 128-5G-IA3: Supported .... 0... = 5G-IA4: Not supported .... .0.. = 5G-IA5: Not supported .... ..0. = 5G-IA6: Not supported .... ...0 = 5G-IA7: Not supported 1... .... = EEA0: Supported .1.. .... = 128-EEA1: Supported ..1. .... = 128-EEA2: Supported ...1 .... = 128-EEA3: Supported .... 0... = EEA4: Not supported .... .0.. = EEA5: Not supported .... ..0. = EEA6: Not supported .... ...0 = EEA7: Not supported 0... .... = EIA0: Not supported .1.. .... = 128-EIA1: Supported ..1. .... = 128-EIA2: Supported ...1 .... = 128-EIA3: Supported .... 0... = EIA4: Not supported .... .0.. = EIA5: Not supported .... ..0. = EIA6: Not supported .... ...0 = EIA7: Not supported NAS message container Element ID: 0x71 Length: 56 Non-Access-Stratum 5GS (NAS)PDU Plain NAS 5GS Message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0000 = Security header type: Plain NAS message, not security protected (0) Message type: Registration request (0x41) 5GS registration type .... 1... = Follow-On Request bit (FOR): Follow-on request pending .... .001 = 5GS registration type: initial registration (1) NAS key set identifier 0... .... = Type of security context flag(TSC) : Native security context (for KSIAMF) .000 ....=NAS key set identifier:0 5GS mobile identity Length: 11 .... 0... = Odd/even indication: Even number of identity digits .... .010 = Type of identity: 5G-GUTI (2) Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) AMF Region ID: 128 0000 0001 00.. .... = AMF Set ID: 4 ..00 0001 = AMF Pointer: 1 5G-TMSI: 3776478432 (0xe1187ce0) 5GMM capability Element ID: 0x10 Length: 1 0... .... = Spare: 0 .0.. .... = Spare: 0 ..0. .... = Spare: 0 ...0 .... = Spare: 0 .... 0... = Spare: 0 .... .0.. = LTE PositioningProtocol (LPP) capability: Not Requested .... ..1. = HO attach: Supported .... ...1 = S1 mode: Requested UE security capability Element ID: 0x2e Length: 4 1... .... = 5G-EA0: Supported .1.. .... = 128-5G-EA1: Supported ..1. .... = 128-5G-EA2: Supported ...1 .... = 128-5G-EA3: Supported .... 0... = 5G-EA4: Not supported .... .0.. = 5G-EA5: Not supported .... ..0. = 5G-EA6: Not supported .... ...0 = 5G-EA7: Not supported 0... .... = 5G-IA0: Not supported .1.. .... = 128-5G-IA1: Supported ..1. .... = 128-5G-IA2: Supported ...1 .... = 128-5G-IA3: Supported .... 0... = 5G-IA4: Not supported .... .0.. = 5G-IA5: Not supported .... ..0. = 5G-IA6: Not supported .... ...0 = 5G-IA7: Not supported 1... .... = EEA0: Supported .1.. .... = 128-EEA1: Supported ..1. .... = 128-EEA2: Supported ...1 .... = 128-EEA3: Supported .... 0... = EEA4: Not supported .... .0.. = EEA5: Not supported .... ..0. = EEA6: Not supported .... ...0 = EEA7: Not supported 0... .... = EIA0: Not supported .1.. .... = 128-EIA1: Supported ..1. .... = 128-EIA2: Supported ...1 .... = 128-EIA3: Supported .... 0... = EIA4: Not supported .... .0.. = EIA5: Not supported .... ..0. = EIA6: Not supported .... ...0 = EIA7: Not supported NSSAI - Requested NSSAI Element ID: 0x2f Length: 2 S-NSSAI 1 Length: 1 Slice/service type (SST): 1 5GS tracking area identity - Last visited registered TAI Element ID: 0x52 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) TAC: 100 UE network capability Element ID: 0x17 Length: 7 1... .... = EEA0: Supported .1.. .... = 128-EEA1: Supported ..1. .... = 128-EEA2: Supported ...1 .... = 128-EEA3: Supported .... 0... = EEA4: Not supported .... .0.. = EEA5: Not supported .... ..0. = EEA6: Not supported .... ...0 = EEA7: Not supported 0... .... = EIA0: Not supported .1.. .... = 128-EIA1: Supported ..1. .... = 128-EIA2: Supported ...1 .... = 128-EIA3: Supported .... 0... = EIA4: Not supported .... .0.. = EIA5: Not supported .... ..0. = EIA6: Not supported .... ...0 = EIA7: Not supported 1... .... = UEA0: Supported .1.. .... = UEA1: Supported ..0. .... = UEA2: Not supported ...0 .... = UEA3: Not supported .... 0... = UEA4: Not supported .... .0.. = UEA5: Not supported .... ..0. = UEA6: Not supported .... ...0 = UEA7: Not supported 0... .... = UCS2 support (UCS2): The UE has a preference for the default alphabet .1.. .... = UIA1: Supported ..0. .... = UIA2: Not supported ...0 .... = UIA3: Not supported .... 0... = UIA4: Not supported .... .0.. = UIA5: Not supported .... ..0. = UIA6: Not supported .... ...0 = UIA7: Not supported 0... .... = ProSe direct discovery: Not supported .0.. .... = ProSe: Not supported ..0. .... = H.245 After SRVCC Handover: Not supported ...1 .... = Access class control for CSFB: Supported .... 1... = LTE Positioning Protocol: Supported .... .0.. = Location services (LCS) notification mechanisms: Not supported .... ..0. = SRVCC from E-UTRAN to cdma2000 1xCS: Not supported .... ...1 = Notification procedure: Supported 1... .... = Extended protocol configuration options: Supported .0.. .... = Header compression for control plane CIoT EPS optimization: Not supported ..0. .... = EMM-REGISTERED w/o PDN connectivity: Not supported ...0 .... = S1-U data transfer: Not supported .... 0... = User plane CIoT EPS optimization: Not supported .... .0.. = Control plane CIoT EPS optimization: Not supported .... ..0. = ProSe UE-to-network relay: Not supported .... ...0 = ProSe direct communication: Not supported 1... .... = Signalling for a max number of 15 EPS bearer contexts: Supported .0.. .... = Service gap control: Not supported ..1. .... = N1 mode: Supported ...1 .... = Dual connectivity with NR: Supported .... 0... = Control plane data backoff: Not supported .... .0.. = Restriction on use of enhanced coverage:Not supported .... ..0. = V2X communication over PC5: Not supported .... ...0 = Multiple DRB: Not supported UE's usage setting Element ID: 0x18 Length: 1 .... 0... = Spare: 0 .... .0.. = Spare: 0 .... ..0. = Spare: 0 .... ...1 = UE's usage setting: Data centric LADN indication Element ID: 0x74 Length: 0 Network slicing indication 1001 .... = Element ID: 0x9- .... 0... = Spare: 0 .... .0.. = Spare: 0 .... ..0. = Default configuredNSSAI indication (DCNI): Requested NSSAI not created from default configured NSSAI .... ...0 = Network slicing subscription change indication (NSSCI): Not Changed 5GS update type Element ID: 0x53 Length: 1 .... 0... = Spare: 0 .... .0.. = Spare: 0 .... ..0. = NG-RAN Radio Capability Update (NG-RAN-RCU): Not Needed .... ...1 = SMS requested: SMS over NAS supported Item 2: id-UserLocationInformation ProtocolIE-Field id: id-UserLocationInformation (121) criticality: reject (0) value UserLocationInformation: userLocationInformationNR (1) userLocationInformationNR nR-CGI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) nRCellIdentity: 0x0001234501 tAI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) tAC: 100 (0x000064) Item 3: id-RRCEstablishmentCause ProtocolIE-Field id: id-RRCEstablishmentCause (90) criticality: ignore (1) value RRCEstablishmentCause: mo-Signalling (3) Item 4: id-UEContextRequest ProtocolIE-Field id: id-UEContextRequest (112) criticality: ignore (1) value UEContextRequest: requested (0) (4) DownlinkNasTransportThis is DownlinkNASTransport message which carries NAS Security Mode Command message. The message contains three main information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 116 Identification: 0xadd8 (44504) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x76d1 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.162 Destination Address: 10.0.0.185 Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041) Source port: 38412 Destination port: 48041 Verification tag: 0x8d10a6cf [Association index: 65535] Checksum: 0xe5d8cd9f [unverified] [Checksum Status: Unverified] SACK chunk (Cumulative TSN: 3757580129, a_rwnd: 106496, gaps: 0, duplicate TSNs: 0) Chunk type: SACK (3) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x00 .... ...0 = Nounce sum: 0 Chunk length: 16 Cumulative TSN ACK: 3757580129 [Acknowledges TSN: 3757580129] [Acknowledges TSN in frame: 885] [The RTT since DATA was: 0.000119970 seconds] Advertised receiver window credit (a_rwnd): 106496 Number of gap acknowledgement blocks: 0 Number of duplicated TSNs: 0 DATA chunk(ordered, complete segment, TSN: 4169966868, SID: 1, SSN: 0, PPID: 60, payload length: 50 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 66 Transmission sequence number: 4169966868 [This chunk is acked in frame: 893] [The RTT to SACK was: 0.046143403 seconds] Stream identifier: 0x0001 Stream sequence number: 0 Payload protocol identifier: NGAP (60) Chunk padding: 0000 NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-DownlinkNASTransport (4) criticality: ignore (1) value DownlinkNASTransport protocolIEs: 3 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: reject (0) value NAS-PDU: 7e034cd87aa9067e005d020004f070f070e157021904f070c040 Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0011 = Security header type: Integrity protected with new 5GS security context (3) Message authentication code: 0x4cd87aa9 Sequence number: 6 Plain NAS 5GS Message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0000 = Security header type: Plain NAS message, not security protected (0) Message type: Security mode command (0x5d) NAS security algorithms 0000 .... = Type of ciphering algorithm: 5G-EA0 (null ciphering algorithm) (0) .... 0010 = Type of integrity protection algorithm: 128-5G-IA2 (2) 0000 .... = Spare Half Octet: 0 NAS key set identifier - ngKSI .... 0... = Type of security context flag(TSC): Native security context (for KSIAMF) .... .000 = NAS key set identifier: 0 UE security capability - Replayed UE security capabilities Length: 4 1... .... = 5G-EA0: Supported .1.. .... = 128-5G-EA1: Supported ..1. .... = 128-5G-EA2: Supported ...1 .... = 128-5G-EA3: Supported .... 0... = 5G-EA4: Not supported .... .0.. = 5G-EA5: Not supported .... ..0. = 5G-EA6: Not supported .... ...0 = 5G-EA7: Not supported 0... .... = 5G-IA0: Not supported .1.. .... = 128-5G-IA1: Supported ..1. .... = 128-5G-IA2: Supported ...1 .... = 128-5G-IA3: Supported .... 0... = 5G-IA4: Not supported .... .0.. = 5G-IA5: Not supported .... ..0. = 5G-IA6: Not supported .... ...0 = 5G-IA7: Not supported 1... .... = EEA0: Supported .1.. .... = 128-EEA1: Supported ..1. .... = 128-EEA2: Supported ...1 .... = 128-EEA3: Supported .... 0... = EEA4: Not supported .... .0.. = EEA5: Not supported .... ..0. = EEA6: Not supported .... ...0 = EEA7: Not supported 0... .... = EIA0: Not supported .1.. .... = 128-EIA1: Supported ..1. .... = 128-EIA2: Supported ...1 .... = 128-EIA3: Supported .... 0... = EIA4: Not supported .... .0.. = EIA5: Not supported .... ..0. = EIA6: Not supported .... ...0 = EIA7: Not supported IMEISV request 1110 .... = Element ID: 0xe- .... 0... = Spare bit(s): 0x00 .... .001 = IMEISV request: IMEISV requested(1) NAS security algorithms - Selected EPS NAS security algorithms Element ID: 0x57 0... .... = Spare bit(s): 0x00 .000 .... = Type of ciphering algorithm: EPS encryption algorithm EEA0 .... 0... = Spare bit(s): 0x00 .... .010 = Type of integrity protection algorithm: EPS integrity algorithm 128-EIA2 UE security capability - Replayed S1 UE security capabilities Element ID: 0x19 Length: 4 1... .... = EEA0: Supported .1.. .... = 128-EEA1: Supported ..1. .... = 128-EEA2: Supported ...1 .... = 128-EEA3: Supported .... 0... = EEA4: Not supported .... .0.. = EEA5: Not supported .... ..0. = EEA6: Not supported .... ...0 = EEA7: Not supported 0... .... = EIA0: Not supported .1.. .... = 128-EIA1: Supported ..1. .... = 128-EIA2: Supported ...1 .... = 128-EIA3: Supported .... 0... = EIA4: Not supported .... .0.. = EIA5: Not supported .... ..0. = EIA6: Not supported .... ...0 = EIA7: Not supported 1... .... = UEA0: Supported .1.. .... = UEA1: Supported ..0. .... = UEA2: Not supported ...0 .... = UEA3: Not supported .... 0... = UEA4: Not supported .... .0.. = UEA5: Not supported .... ..0. = UEA6: Not supported .... ...0 = UEA7: Not supported 0... .... = Spare bit(s): 0x0 .1.. .... = UIA1: Supported ..0. .... = UIA2: Not supported ...0 .... = UIA3: Not supported .... 0... = UIA4: Not supported .... .0.. = UIA5: Not supported .... ..0. = UIA6: Not supported .... ...0 = UIA7: Not supported (5) UplinkNasTransportThis is the UplinkNASTransport message which is essential in scenarios where the UE needs to send information to the core network that requires secure transport, such as signaling for service request, response to authentication, or any NAS signaling related to mobility management and session management in 5G. The contents of the message in this example consists of several information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 132 Identification: 0x000a (10) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x2490 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0xb39a1aad [unverified] [Checksum Status: Unverified] SACK chunk (Cumulative TSN: 4169966868, a_rwnd: 106496, gaps: 0, duplicate TSNs: 0) Chunk type: SACK (3) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x00 .... ...0 = Nounce sum: 0 Chunk length: 16 Cumulative TSN ACK: 4169966868 [Acknowledges TSN: 4169966868] [Acknowledges TSN in frame: 886] [The RTT since DATA was: 0.046143403 seconds] Advertised receiver window credit (a_rwnd): 106496 Number of gap acknowledgement blocks: 0 Number of duplicated TSNs: 0 DATA chunk(ordered, complete segment, TSN: 3757580130, SID: 1, SSN: 1, PPID: 60, payload length: 65 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 81 Transmission sequence number: 3757580130 [This chunk is acked in frame: 894] [The RTT to SACK was: 0.000370058 seconds] Stream identifier: 0x0001 Stream sequence number: 1 Payload protocol identifier: NGAP (60) Chunk padding: 000000 NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-UplinkNASTransport (46) criticality: ignore (1) value UplinkNASTransport protocolIEs: 4 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: reject (0) value NAS-PDU: 7e04d3e72791087e005e7700098596500765532619f3 Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0100 = Security header type: Integrity protected and ciphered with new 5GS security context (4) Message authentication code: 0xd3e72791 Sequence number: 8 Encrypted data Item 3: id-UserLocationInformation ProtocolIE-Field id: id-UserLocationInformation (121) criticality: ignore (1) value UserLocationInformation: userLocationInformationNR (1) userLocationInformationNR nR-CGI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) nRCellIdentity: 0x0001234501 tAI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) tAC: 100 (0x000064) (6) InitialContextSetupRequestThe InitialContextSetupRequest is used to establish the necessary user plane and control plane contexts for a UE (User Equipment) at the gNodeB. This message initiates the process of setting up the initial context after a UE has been successfully authenticated and authorized to access the network's services. It is a critical step in the 5G call flow that configures the user and control plane contexts for the UE, setting the stage for all subsequent communications over the 5G network. The message includes several IEs (Information Elements) that provide the gNodeB with information needed to configure resources for the UE:
Internet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 216 Identification: 0xadd9 (44505) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x766c [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.162 Destination Address: 10.0.0.185 Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041) Source port: 38412 Destination port: 48041 Verification tag: 0x8d10a6cf [Association index: 65535] Checksum: 0x564117e2 [unverified] [Checksum Status: Unverified] SACK chunk (Cumulative TSN: 3757580130, a_rwnd: 106496, gaps: 0, duplicate TSNs: 0) Chunk type: SACK (3) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x00 .... ...0 = Nounce sum: 0 Chunk length: 16 Cumulative TSN ACK: 3757580130 [Acknowledges TSN: 3757580130] [Acknowledges TSN in frame: 893] [The RTT since DATA was: 0.000370058 seconds] Advertised receiver window credit (a_rwnd): 106496 Number of gap acknowledgement blocks: 0 Number of duplicated TSNs: 0 DATA chunk(ordered, complete segment, TSN: 4169966869, SID: 1, SSN: 1, PPID: 60, payload length: 152 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 168 Transmission sequence number: 4169966869 [This chunk is acked in frame: 901] [The RTT to SACK was: 0.131696577 seconds] Stream identifier: 0x0001 Stream sequence number: 1 Payload protocol identifier: NGAP (60) NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-InitialContextSetup (14) criticality: reject (0) value InitialContextSetupRequest protocolIEs: 8 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-GUAMI ProtocolIE-Field id: id-GUAMI (28) criticality: reject (0) value GUAMI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) aMFRegionID: 80 [bit length 8, 1000 0000 decimal value 128] aMFSetID: 0100 [bit length 10, 6 LSB pad bits, 0000 0001 00.. .... decimal value 4] aMFPointer: 04 [bit length 6, 2 LSB pad bits, 0000 01.. decimal value 1] Item 3: id-AllowedNSSAI ProtocolIE-Field id: id-AllowedNSSAI (0) criticality: reject (0) value AllowedNSSAI: 1 item Item 0 AllowedNSSAI-Item s-NSSAI sST: 01 Item 4: id-UESecurityCapabilities ProtocolIE-Field id: id-UESecurityCapabilities (119) criticality: reject (0) value UESecurityCapabilities nRencryptionAlgorithms: e000 [bit length 16, 1110 0000 0000 0000 decimal value 57344] 1... .... .... .... = 128-NEA1: Supported .1.. .... .... .... = 128-NEA2: Supported ..1. .... .... .... = 128-NEA3: Supported ...0 0000 0000 0000 = Reserved: 0x0000 nRintegrityProtectionAlgorithms: e000 [bit length 16, 1110 0000 0000 0000 decimal value 57344] 1... .... .... .... = 128-NIA1: Supported .1.. .... .... .... = 128-NIA2: Supported ..1. .... .... .... = 128-NIA3: Supported ...0 0000 0000 0000 = Reserved: 0x0000 eUTRAencryptionAlgorithms: e000 [bit length 16, 1110 0000 0000 0000 decimal value 57344] 1... .... .... .... = 128-EEA1: Supported .1.. .... .... .... = 128-EEA2: Supported ..1. .... .... .... = 128-EEA3: Supported ...0 0000 0000 0000 = Reserved: 0x0000 eUTRAintegrityProtectionAlgorithms: e000 [bit length 16, 1110 0000 0000 0000 decimal value 57344] 1... .... .... .... = 128-EIA1: Supported .1.. .... .... .... = 128-EIA2: Supported ..1. .... .... .... = 128-EIA3: Supported ...0 0000 0000 0000 = Reserved: 0x0000 Item 5: id-SecurityKey ProtocolIE-Field id: id-SecurityKey (94) criticality: reject (0) value SecurityKey: 0cf3d559d8db4b4cb2193a8bbda7... [bit length 256] Item 6: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: ignore (1) value NAS-PDU: 7e02989f23dc077e0042010977000bf200f110800101 Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0010 = Security header type: Integrity protected and ciphered (2) Message authentication code: 0x989f23dc Sequence number: 7 Encrypted data Item 7: id-RedirectionVoiceFallback ProtocolIE-Field id: id-RedirectionVoiceFallback (146) criticality: ignore (1) value RedirectionVoiceFallback: possible (0) (7) UERadioCapabilityInformationThis carries Rrc UE capability Information message. This part is not printed in this note since this is more like Rrc Information. (8) InitialContextSetupRequestThe InitialContextSetupResponse is sent by the gNodeB to the AMF as part of the UE's initial context setup process. This message indicates a successful outcome of the initial context setup procedure initiated by the InitialContextSetupRequest. It indicates that the gNodeB has successfully set up the context for the UE as requested by the AMF. This setup includes the allocation of necessary resources and configurations to facilitate communication with the UE, such as radio bearers and security configurations. The successful outcome allows the UE to proceed with further communication and data transfer over the 5G network. This response contains two main information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 68 Identification: 0x000d (13) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x24cd [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0x2c975cf3 [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 3757580133, SID: 1, SSN: 3, PPID: 60, payload length: 19 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 35 Transmission sequence number: 3757580133 [This chunk is acked in frame: 907] [The RTT to SACK was: 0.000376547 seconds] Stream identifier: 0x0001 Stream sequence number: 3 Payload protocol identifier: NGAP (60) Chunk padding: 00 NGAP-PDU: successfulOutcome (1) successfulOutcome procedureCode: id-InitialContextSetup (14) criticality: reject (0) value InitialContextSetupResponse protocolIEs: 2 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: ignore (1) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: ignore (1) value RAN-UE-NGAP-ID: 1 (9) UplinkNASTransportThe UplinkNASTransport message is sent from the gNodeB to the AMF (Access and Mobility Management Function) and is responsible for transporting NAS messages from the UE to the core network. It is crucial for the delivery of NAS messages that are typically related to mobility management, session management, or authentication to the AMF from the UE. It allows the core network to receive information from the UE, process it, and take necessary actions based on the content of the NAS message. The message consists of the following information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 104 Identification: 0x000e (14) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x24a8 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0x4643a66d [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 3757580134, SID: 1, SSN: 4, PPID: 60, payload length: 53 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 69 Transmission sequence number: 3757580134 [This chunk is acked in frame: 907] [The RTT to SACK was: 0.000018275 seconds] Stream identifier: 0x0001 Stream sequence number: 4 Payload protocol identifier: NGAP (60) Chunk padding: 000000 NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-UplinkNASTransport (46) criticality: ignore (1) value UplinkNASTransport protocolIEs: 4 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: reject (0) value NAS-PDU: 7e021bc4e845097e0043 Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0010 = Security header type: Integrity protected and ciphered (2) Message authentication code: 0x1bc4e845 Sequence number: 9 Encrypted data Item 3: id-UserLocationInformation ProtocolIE-Field id: id-UserLocationInformation (121) criticality: ignore (1) value UserLocationInformation: userLocationInformationNR (1) userLocationInformationNR nR-CGI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) nRCellIdentity: 0x0001234501 tAI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) tAC: 100 (0x000064) (10) DownlinkNASTransportThe DownlinkNASTransport is used in 5G networks to communicate from the core network to the gNodeB, specifically for the purpose of delivering NAS messages to the UE. It is used for a variety of purposes, including delivering commands from the core network to the UE, such as service accept or reject messages, authentication requests, or security mode commands. This secure transport of NAS messages ensures that commands and responses between the UE and the core network maintain their confidentiality and integrity as they pass through the radio interface. This message contains three primary information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 124 Identification: 0xaddc (44508) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x76c5 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.162 Destination Address: 10.0.0.185 Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041) Source port: 38412 Destination port: 48041 Verification tag: 0x8d10a6cf [Association index: 65535] Checksum: 0xd913f52a [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 4169966870, SID: 1, SSN: 2, PPID: 60, payload length: 76 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 92 Transmission sequence number: 4169966870 [This chunk is acked in frame: 909] [The RTT to SACK was: 0.299073623 seconds] Stream identifier: 0x0001 Stream sequence number: 2 Payload protocol identifier: NGAP (60) NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-DownlinkNASTransport (4) criticality: ignore (1) value DownlinkNASTransport protocolIEs: 3 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: reject (0) value NAS-PDU: 7e02708c9be0087e0054431081c176589e9ebfcd Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0010 = Security header type: Integrity protected and ciphered (2) Message authentication code: 0x708c9be0 Sequence number: 8 Encrypted data (11) UplinkNASTransportThe UplinkNASTransport message is used within the 5G network for conveying NAS messages from the UE to the core network, specifically the AMF, through the gNodeB. It plays a vital role in the communication between the UE and the core network, especially for processes that require secure transport, such as authentication response, service request, or any mobility management message from the UE. This message consists of the following key information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 228 Identification: 0x0010 (16) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x242a [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0x39273ca9 [unverified] [Checksum Status: Unverified] DATA chunk(ordered, complete segment, TSN: 3757580135, SID: 1, SSN: 5, PPID: 60, payload length: 180 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 196 Transmission sequence number: 3757580135 [This chunk is acked in frame: 911] [The RTT to SACK was: 0.000140996 seconds] Stream identifier: 0x0001 Stream sequence number: 5 Payload protocol identifier: NGAP (60) NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-UplinkNASTransport (46) criticality: ignore (1) value UplinkNASTransport protocolIEs: 4 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-NAS-PDU ProtocolIE-Field id: id-NAS-PDU (38) criticality: reject (0) value NAS-PDU: 7e02c3faa3fa0a7e006701006b2e0114c1000093280100 Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0010 = Security header type: Integrity protected and ciphered (2) Message authentication code: 0xc3faa3fa Sequence number: 10 Encrypted data Item 3: id-UserLocationInformation ProtocolIE-Field id: id-UserLocationInformation (121) criticality: ignore (1) value UserLocationInformation: userLocationInformationNR (1) userLocationInformationNR nR-CGI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) nRCellIdentity: 0x0001234501 tAI pLMNIdentity: 00f110 Mobile Country Code (MCC): Unknown (1) Mobile Network Code (MNC): Unknown (01) tAC: 100 (0x000064) UPLINK NAS TRANSPORTThe Uplink NAS Transport procedure is used when the NG-RAN node has received from the radio interface a NAS message to be forwarded to the AMF to which a UE-associated logical NG-connection for the UE exists. Most of NAS message sent by UE is conveyed to core network via Uplink Nas Transport.
< 38.413-Figure 8.6.3.2-1: Uplink NAS transport >
< 38.413 - 9.2.5.3 >
< 29.510 - Table 6.1.6.2.51-1: Definition of type WAgfInfo >
< 29.510 - Table 6.1.6.2.52-1: Definition of type TngfInfo >
< 29.510 - Table 6.1.6.2.61-1: Definition of type TwifInfo > Example 1 >initiatingMessage: { procedureCode id-UplinkNASTransport, criticality ignore, value { protocolIEs { { id id-AMF-UE-NGAP-ID, criticality reject, value 100 }, { id id-RAN-UE-NGAP-ID, criticality reject, value 1 }, { id id-NAS-PDU, criticality reject, value '7E0118....'H // NAS message is contained here, decoded by AMF to NAS message }, { id id-UserLocationInformation, criticality ignore, value userLocationInformationNR: { nR-CGI { pLMNIdentity '00F110'H, nRCellIdentity '001234501'H }, tAI { pLMNIdentity '00F110'H, tAC '000064'H } } } } } } NOTE : common NAS messages carried by Uplink NAS transport
DOWNLINK NAS TRANSPORTThe Downlink NAS Transport procedure is used when the AMF only needs to send a NAS message transparently via the NG-RAN node to the UE, and a UE-associated logical NG-connection exists for the UE or the AMF has received the RAN UE NGAP ID IE in an INITIAL UE MESSAGE message or if the NG-RAN node has already initiated a UEassociated logical NG-connection by sending an INITIAL UE MESSAGE message via another NG interface instance. < 38.413-Figure 8.6.2.2-1: Downlink NAS transport >
< 38.413 - 9.2.5.2 >
Example 1 >initiatingMessage: { procedureCode id-DownlinkNASTransport, criticality ignore, value { protocolIEs { { id id-AMF-UE-NGAP-ID, criticality reject, value 100 }, { id id-RAN-UE-NGAP-ID, criticality reject, value 1 }, { id id-NAS-PDU, criticality reject, value '7E03....'H // NAS message is contained here, decoded by gNB to NAS message } } } } NOTE : common NAS messages carried by Downlink NAS transport
PDU Session Resource SetupThe purpose of the PDU Session Resource Setup is as follows :
Overall signaling procecedure is as follows and the details are described in 38.413 - 8.2.1. < 38.413 - Figure 8.2.1.2-1: PDU session resource setup: successful operation > This process is the one that get a huge list of parameters involved. The details are described in 38.413-8.2.1, but it doesn't make clear sense to me yet. I would need more study and log analysis for deeper understanding. The list of parameters explained in this specification is as follows to give you some generic idea.
(12) PDUSessionResourceSetupRequestThe PDUSessionResourceSetupRequest is a message used within the 5G NGAP to establish PDU sessions, which are the connections that carry the user data between the UE and the network. This request is sent from the AMF to the gNodeB. This message is critical for setting up the PDU session, which includes configuring the transport layer for user plane data and establishing the QoS flows necessary for the UE to send and receive data within the specified service quality constraints. The PDUSessionResourceSetupRequest is a step in the process of connecting the UE to the data network, allowing it to access internet services and other data-centric applications. Here is the breakdown of the PDUSessionResourceSetupRequest message:
Internet Protocol Version 4, Src: 10.0.0.162, Dst: 10.0.0.185 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 292 Identification: 0xaddd (44509) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x761c [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.162 Destination Address: 10.0.0.185 Stream Control Transmission Protocol, Src Port: 38412 (38412), Dst Port: 48041 (48041) Source port: 38412 Destination port: 48041 Verification tag: 0x8d10a6cf [Association index: 65535] Checksum: 0xf21498ba [unverified] [Checksum Status: Unverified] SACK chunk (Cumulative TSN: 3757580135, a_rwnd: 106496, gaps: 0, duplicate TSNs: 0) Chunk type: SACK (3) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x00 .... ...0 = Nounce sum: 0 Chunk length: 16 Cumulative TSN ACK: 3757580135 [Acknowledges TSN: 3757580135] [Acknowledges TSN in frame: 910] [The RTT since DATA was: 0.000140996 seconds] Advertised receiver window credit (a_rwnd): 106496 Number of gap acknowledgement blocks: 0 Number of duplicated TSNs: 0 DATA chunk(ordered, complete segment, TSN: 4169966871, SID: 1, SSN: 3, PPID: 60, payload length: 228 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 244 Transmission sequence number: 4169966871 [This chunk is acked in frame: 914] [The RTT to SACK was: 0.035658957 seconds] Stream identifier: 0x0001 Stream sequence number: 3 Payload protocol identifier: NGAP (60) NGAP-PDU: initiatingMessage (0) initiatingMessage procedureCode: id-PDUSessionResourceSetup (29) criticality: reject (0) value PDUSessionResourceSetupRequest protocolIEs: 4 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: reject (0) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: reject (0) value RAN-UE-NGAP-ID: 1 Item 2: id-PDUSessionResourceSetupListSUReq ProtocolIE-Field id: id-PDUSessionResourceSetupListSUReq (74) criticality: reject (0) value PDUSessionResourceSetupListSUReq: 1 item Item 0 PDUSessionResourceSetupItemSUReq pDUSessionID: 1 pDUSessionNAS-PDU: 7e02ba31020b097e006801 Non-Access-Stratum 5GS (NAS)PDU Security protected NAS 5GS message Extended protocol discriminator: 5G mobility management messages (126) 0000 .... = Spare Half Octet: 0 .... 0010 = Security header type: Integrity protected and ciphered (2) Message authentication code: 0xba31020b Sequence number: 9 Encrypted data s-NSSAI sST: 01 pDUSessionResourceSetupRequestTransfer: 0000040082 PDUSessionResourceSetupRequestTransfer protocolIEs: 4 items Item 0: id-PDUSessionAggregateMaximumBitRate ProtocolIE-Field id: id-PDUSessionAggregateMaximumBitRate criticality: reject (0) value PDUSessionAggregateMaximumBitRate pDUSessionAggregateMaximumBitRateDL: 3000000000bits/s pDUSessionAggregateMaximumBitRateUL: 1000000000bits/s Item 1: id-UL-NGU-UP-TNLInformation ProtocolIE-Field id: id-UL-NGU-UP-TNLInformation (139) criticality: reject (0) value UPTransportLayerInformation: gTPTunnel(0) gTPTunnel transportLayerAddress: 0a0000a2] TransportLayerAddress (IPv4): 10.0.0.162 gTP-TEID: 4f485cc3 Item 2: id-PDUSessionType ProtocolIE-Field id: id-PDUSessionType (134) criticality: reject (0) value PDUSessionType: ipv4 (0) Item 3: id-QosFlowSetupRequestList ProtocolIE-Field id: id-QosFlowSetupRequestList (136) criticality: reject (0) value QosFlowSetupRequestList: 1 item Item 0 QosFlowSetupRequestItem qosFlowIdentifier: 1 qosFlowLevelQosParameters qosCharacteristics: nonDynamic5QI (0) nonDynamic5QI fiveQI: 9 allocationAndRetentionPriority priorityLevelARP: 15 pre-emptionCapability: shall-not-trigger- pre-emption preemptionVulnerability: not-pre-emptable (0) e-RAB-ID: 5 Item 3: id-UEAggregateMaximumBitRate ProtocolIE-Field id: id-UEAggregateMaximumBitRate (110) criticality: ignore (1) value UEAggregateMaximumBitRate uEAggregateMaximumBitRateDL: 3000000000bits/s uEAggregateMaximumBitRateUL: 1000000000bits/s (13) PDUSessionResourceSetupResponseThe PDUSessionResourceSetupResponse is sent by the gNodeB to the AMF as a reply to the PDUSessionResourceSetupRequest, indicating that the requested PDU session resources have been successfully set up or that there was an issue with the setup. The successful outcome of this message signifies that the gNodeB has allocated the necessary resources for the PDU session and is now ready for data transfer related to this specific session. The transport layer information included in the response is critical for routing the data packets to and from the UE. This message contains the following information elements (IEs):
Internet Protocol Version 4, Src: 10.0.0.185, Dst: 10.0.0.162 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x02 (DSCP: CS0, ECN: ECT(0)) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..10 = Explicit Congestion Notification: ECN-Capable Transport codepoint '10' (2) Total Length: 104 Identification: 0x0011 (17) Flags: 0x40, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: SCTP (132) Header Checksum: 0x24a5 [validation disabled] [Header checksum status: Unverified] Source Address: 10.0.0.185 Destination Address: 10.0.0.162 Stream Control Transmission Protocol, Src Port: 48041 (48041), Dst Port: 38412 (38412) Source port: 48041 Destination port: 38412 Verification tag: 0x790ad620 [Association index: 65535] Checksum: 0x1ef6563e [unverified] [Checksum Status: Unverified] SACK chunk (Cumulative TSN: 4169966871, a_rwnd: 106496, gaps: 0, duplicate TSNs: 0) Chunk type: SACK (3) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x00 .... ...0 = Nounce sum: 0 Chunk length: 16 Cumulative TSN ACK: 4169966871 [Acknowledges TSN: 4169966871] [Acknowledges TSN in frame: 911] [The RTT since DATA was: 0.035658957 seconds] Advertised receiver window credit (a_rwnd): 106496 Number of gap acknowledgement blocks: 0 Number of duplicated TSNs: 0 DATA chunk(ordered, complete segment, TSN: 3757580136, SID: 1, SSN: 6, PPID: 60, payload length: 40 bytes) Chunk type: DATA (0) 0... .... = Bit: Stop processing of the packet .0.. .... = Bit: Do not report Chunk flags: 0x03 .... 0... = I-Bit: Possibly delay SACK .... .0.. = U-Bit: Ordered delivery .... ..1. = B-Bit: First segment .... ...1 = E-Bit: Last segment Chunk length: 56 Transmission sequence number: 3757580136 [This chunk is acked in frame: 931] [The RTT to SACK was: 0.201436229 seconds] Stream identifier: 0x0001 Stream sequence number: 6 Payload protocol identifier: NGAP (60) NGAP-PDU: successfulOutcome (1) successfulOutcome procedureCode: id-PDUSessionResourceSetup (29) criticality: reject (0) value PDUSessionResourceSetupResponse protocolIEs: 3 items Item 0: id-AMF-UE-NGAP-ID ProtocolIE-Field id: id-AMF-UE-NGAP-ID (10) criticality: ignore (1) value AMF-UE-NGAP-ID: 102 Item 1: id-RAN-UE-NGAP-ID ProtocolIE-Field id: id-RAN-UE-NGAP-ID (85) criticality: ignore (1) value RAN-UE-NGAP-ID: 1 Item 2: id-PDUSessionResourceSetupListSURes ProtocolIE-Field id: id-PDUSessionResourceSetupListSURes (75) criticality: ignore (1) value PDUSessionResourceSetupListSURes: 1 item Item 0 PDUSessionResourceSetupItemSURes pDUSessionID: 1 pDUSessionResourceSetupResponseTransfer: 0003e00a0000b9a968d0db0001 PDUSessionResourceSetupResponseTransfer dLQosFlowPerTNLInformation uPTransportLayerInformation: gTPTunnel (0) gTPTunnel transportLayerAddress: 0a0000b9 TransportLayerAddress (IPv4): 10.0.0.185 gTP-TEID: a968d0db associatedQosFlowList: 1 item Item 0 AssociatedQosFlowItem qosFlowIdentifier: 1 NGAP Messages/ASNHere I am listing some of the NGAP messages that I personally come across most frequently. ASN structure is from 38.413 and Example messages are from Amarisoft Callbox log. < NGSetupRequest>NGSetupRequest ::= SEQUENCE { protocolIEs ProtocolIE-Container { {NGSetupRequestIEs} }, ... } NGSetupRequestIEs NGAP-PROTOCOL-IES ::= { { ID id-GlobalRANNodeID CRITICALITY reject TYPE GlobalRANNodeID PRESENCE mandatory }| { ID id-RANNodeName CRITICALITY ignore TYPE RANNodeName PRESENCE optional }| { ID id-SupportedTAList CRITICALITY reject TYPE SupportedTAList PRESENCE mandatory }| { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory }| { ID id-UERetentionInformation CRITICALITY ignore TYPE UERetentionInformation PRESENCE optional }| { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional }| { ID id-Extended-RANNodeName CRITICALITY ignore TYPE Extended-RANNodeName PRESENCE optional },
< Example 01 >
initiatingMessage: { procedureCode id-NGSetup, criticality reject, value { protocolIEs { { id id-GlobalRANNodeID, criticality reject, value globalGNB-ID: { pLMNIdentity '00F110'H, gNB-ID gNB-ID: '0012345'H } }, { id id-RANNodeName, criticality ignore, value "gnb0012345" }, { id id-SupportedTAList, criticality reject, value { { tAC '000064'H, broadcastPLMNList { { pLMNIdentity '00F110'H, tAISliceSupportList { { s-NSSAI { sST '01'H } } } } } } } }, { id id-DefaultPagingDRX, criticality ignore, value v128 } } } } < NGSetupResponse>NGSetupResponse ::= SEQUENCE { protocolIEs ProtocolIE-Container { {NGSetupResponseIEs} }, ... } NGSetupResponseIEs NGAP-PROTOCOL-IES ::= { { ID id-AMFName CRITICALITY reject TYPE AMFName PRESENCE mandatory }| { ID id-ServedGUAMIList CRITICALITY reject TYPE ServedGUAMIList PRESENCE mandatory }| { ID id-RelativeAMFCapacity CRITICALITY ignore TYPE RelativeAMFCapacity PRESENCE mandatory }| { ID id-PLMNSupportList CRITICALITY reject TYPE PLMNSupportList PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| { ID id-UERetentionInformation CRITICALITY ignore TYPE UERetentionInformation PRESENCE optional }| { ID id-IAB-Supported CRITICALITY ignore TYPE IAB-Supported PRESENCE optional }| { ID id-Extended-AMFName CRITICALITY ignore TYPE Extended-AMFName PRESENCE optional }, ... }
Message: 127.0.1.100:38412 NG setup response
Data: successfulOutcome: { procedureCode id-NGSetup, criticality reject, value { protocolIEs { { id id-AMFName, criticality reject, value "amarisoft.amf.5gc.mnc001.mcc001.3gppnetwork.org" }, { id id-ServedGUAMIList, criticality reject, value { { gUAMI { pLMNIdentity '00F110'H, aMFRegionID '80'H, aMFSetID '0000000100'B, aMFPointer '000001'B } } } }, { id id-RelativeAMFCapacity, criticality ignore, value 50 }, { id id-PLMNSupportList, criticality reject, value { { pLMNIdentity '00F110'H, sliceSupportList { { s-NSSAI { sST '01'H } } } } } } } } } < UE Context Release >InitiatingMessage ::= SEQUENCE { procedureCode NGAP-ELEMENTARY-PROCEDURE.&procedureCode ({NGAP-ELEMENTARY-PROCEDURES}), criticality NGAP-ELEMENTARY-PROCEDURE.&criticality ({NGAP-ELEMENTARY-PROCEDURES}{@procedureCode}), value NGAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({NGAP-ELEMENTARY-PROCEDURES}{@procedureCode}) }
uEContextRelease NGAP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE UEContextReleaseCommand SUCCESSFUL OUTCOME UEContextReleaseComplete PROCEDURE CODE id-UEContextRelease CRITICALITY reject }
UEContextReleaseCommand ::= SEQUENCE { protocolIEs ProtocolIE-Container { {UEContextReleaseCommand-IEs} }, ... }
UEContextReleaseCommand-IEs NGAP-PROTOCOL-IES ::= { { ID id-UE-NGAP-IDs CRITICALITY reject TYPE UE-NGAP-IDs PRESENCE mandatory }| { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }, ... }
UEContextReleaseComplete ::= SEQUENCE { protocolIEs ProtocolIE-Container { {UEContextReleaseComplete-IEs} }, ... }
UEContextReleaseComplete-IEs NGAP-PROTOCOL-IES ::= { { ID id-AMF-UE-NGAP-ID CRITICALITY ignore TYPE AMF-UE-NGAP-ID PRESENCE mandatory }| { ID id-RAN-UE-NGAP-ID CRITICALITY ignore TYPE RAN-UE-NGAP-ID PRESENCE mandatory }| { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| { ID id-InfoOnRecommendedCellsAndRANNodesForPaging CRITICALITY ignore TYPE InfoOnRecommendedCellsAndRANNodesForPaging PRESENCE optional }| { ID id-PDUSessionResourceListCxtRelCpl CRITICALITY reject TYPE PDUSessionResourceListCxtRelCpl PRESENCE optional }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| { ID id-PagingAssisDataforCEcapabUE CRITICALITY ignore TYPE PagingAssisDataforCEcapabUE PRESENCE optional }, ... }
Cause ::= CHOICE { radioNetwork CauseRadioNetwork, transport CauseTransport, nas CauseNas, protocol CauseProtocol, misc CauseMisc, choice-Extensions ProtocolIE-SingleContainer { {Cause-ExtIEs} } }
CauseRadioNetwork ::= ENUMERATED { unspecified, txnrelocoverall-expiry, successful-handover, release-due-to-ngran-generated-reason, release-due-to-5gc-generated-reason, handover-cancelled, partial-handover, ho-failure-in-target-5GC-ngran-node-or-target-system, ho-target-not-allowed, tngrelocoverall-expiry, tngrelocprep-expiry, cell-not-available, unknown-targetID, no-radio-resources-available-in-target-cell, unknown-local-UE-NGAP-ID, inconsistent-remote-UE-NGAP-ID, handover-desirable-for-radio-reason, time-critical-handover, resource-optimisation-handover, reduce-load-in-serving-cell, user-inactivity, radio-connection-with-ue-lost, radio-resources-not-available, invalid-qos-combination, failure-in-radio-interface-procedure, interaction-with-other-procedure, unknown-PDU-session-ID, unkown-qos-flow-ID, multiple-PDU-session-ID-instances, multiple-qos-flow-ID-instances, encryption-and-or-integrity-protection-algorithms-not-supported, ng-intra-system-handover-triggered, ng-inter-system-handover-triggered, xn-handover-triggered, not-supported-5QI-value, ue-context-transfer, ims-voice-eps-fallback-or-rat-fallback-triggered, up-integrity-protection-not-possible, up-confidentiality-protection-not-possible, slice-not-supported, ue-in-rrc-inactive-state-not-reachable, redirection, resources-not-available-for-the-slice, ue-max-integrity-protected-data-rate-reason, release-due-to-cn-detected-mobility, ..., n26-interface-not-available, release-due-to-pre-emption, multiple-location-reporting-reference-ID-instances, rsn-not-available-for-the-up, npn-access-denied, cag-only-access-denied, insufficient-ue-capabilities, redcap-ue-not-supported, unknown-MBS-Session-ID, indicated-MBS-session-area-information-not-served-by-the-gNB, inconsistent-slice-info-for-the-session, misaligned-association-for-multicast-unicast }
CauseTransport ::= ENUMERATED { transport-resource-unavailable, unspecified, ... }
CauseNas ::= ENUMERATED { normal-release, authentication-failure, deregister, unspecified, ..., uE-not-in-PLMN-serving-area }
CauseProtocol ::= ENUMERATED { transfer-syntax-error, abstract-syntax-error-reject, abstract-syntax-error-ignore-and-notify, message-not-compatible-with-receiver-state, semantic-error, abstract-syntax-error-falsely-constructed-message, unspecified, ... }
CauseMisc ::= ENUMERATED { control-processing-overload, not-enough-user-plane-processing-resources, hardware-failure, om-intervention, unknown-PLMN-or-SNPN, unspecified, ... }
initiatingMessage: { procedureCode id-UEContextRelease, criticality reject, value { protocolIEs { { id id-UE-NGAP-IDs, criticality reject, value uE-NGAP-ID-pair: { aMF-UE-NGAP-ID 100, rAN-UE-NGAP-ID 1 } }, { id id-Cause, criticality ignore, value radioNetwork: user-inactivity } } } } < InitialContextSetupRequest>InitialContextSetupRequest ::= SEQUENCE { protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} }, ... }
InitialContextSetupRequestIEs NGAP-PROTOCOL-IES ::= { { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }| { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }| { ID id-OldAMF CRITICALITY reject TYPE AMFName PRESENCE optional }| { ID id-UEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE conditional }| { ID id-CoreNetworkAssistanceInformationForInactive CRITICALITY ignore TYPE CoreNetworkAssistanceInformationForInactive PRESENCE optional }| { ID id-GUAMI CRITICALITY reject TYPE GUAMI PRESENCE mandatory }| { ID id-PDUSessionResourceSetupListCxtReq CRITICALITY reject TYPE PDUSessionResourceSetupListCxtReq PRESENCE optional }| { ID id-AllowedNSSAI CRITICALITY reject TYPE AllowedNSSAI PRESENCE mandatory }| { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory }| { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| { ID id-MobilityRestrictionList CRITICALITY ignore TYPE MobilityRestrictionList PRESENCE optional }| { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| { ID id-IndexToRFSP CRITICALITY ignore TYPE IndexToRFSP PRESENCE optional }| { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }| { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional }| { ID id-EmergencyFallbackIndicator CRITICALITY reject TYPE EmergencyFallbackIndicator PRESENCE optional }| { ID id-RRCInactiveTransitionReportRequest CRITICALITY ignore TYPE RRCInactiveTransitionReportRequest PRESENCE optional }| { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional }| { ID id-RedirectionVoiceFallback CRITICALITY ignore TYPE RedirectionVoiceFallback PRESENCE optional }| { ID id-LocationReportingRequestType CRITICALITY ignore TYPE LocationReportingRequestType PRESENCE optional }| { ID id-CNAssistedRANTuning CRITICALITY ignore TYPE CNAssistedRANTuning PRESENCE optional }| { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| { ID id-IAB-Authorized CRITICALITY ignore TYPE IAB-Authorized PRESENCE optional }| { ID id-Enhanced-CoverageRestriction CRITICALITY ignore TYPE Enhanced-CoverageRestriction PRESENCE optional }| { ID id-Extended-ConnectedTime CRITICALITY ignore TYPE Extended-ConnectedTime PRESENCE optional }| { ID id-UE-DifferentiationInfo CRITICALITY ignore TYPE UE-DifferentiationInfo PRESENCE optional }| { ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional }| { ID id-LTEV2XServicesAuthorized CRITICALITY ignore TYPE LTEV2XServicesAuthorized PRESENCE optional }| { ID id-NRUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }| { ID id-LTEUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }| { ID id-PC5QoSParameters CRITICALITY ignore TYPE PC5QoSParameters PRESENCE optional }| { ID id-CEmodeBrestricted CRITICALITY ignore TYPE CEmodeBrestricted PRESENCE optional }| { ID id-UE-UP-CIoT-Support CRITICALITY ignore TYPE UE-UP-CIoT-Support PRESENCE optional }| { ID id-RGLevelWirelineAccessCharacteristics CRITICALITY ignore TYPE RGLevelWirelineAccessCharacteristics PRESENCE optional }| { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }| { ID id-UERadioCapabilityID CRITICALITY reject TYPE UERadioCapabilityID PRESENCE optional }| { ID id-TimeSyncAssistanceInfo CRITICALITY ignore TYPE TimeSyncAssistanceInfo PRESENCE optional }| { ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }| { ID id-TargetNSSAIInformation CRITICALITY ignore TYPE TargetNSSAIInformation PRESENCE optional }| { ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }| { ID id-FiveG-ProSeAuthorized CRITICALITY ignore TYPE FiveG-ProSeAuthorized PRESENCE optional }| { ID id-FiveG-ProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }| { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional }, ... } < InitialContextSetupResponse >InitialContextSetupResponse ::= SEQUENCE { protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} }, ... } InitialContextSetupResponseIEs NGAP-PROTOCOL-IES ::= { { ID id-AMF-UE-NGAP-ID CRITICALITY ignore TYPE AMF-UE-NGAP-ID PRESENCE mandatory }| { ID id-RAN-UE-NGAP-ID CRITICALITY ignore TYPE RAN-UE-NGAP-ID PRESENCE mandatory }| { ID id-PDUSessionResourceSetupListCxtRes CRITICALITY ignore TYPE PDUSessionResourceSetupListCxtRes PRESENCE optional }| { ID id-PDUSessionResourceFailedToSetupListCxtRes CRITICALITY ignore TYPE PDUSessionResourceFailedToSetupListCxtRes PRESENCE optional }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, ... }
PDUSessionResourceSetupListCxtRes ::= SEQUENCE (SIZE(1..maxnoofPDUSessions)) OF PDUSessionResourceSetupItemCxtRes
PDUSessionResourceSetupItemCxtRes ::= SEQUENCE { pDUSessionID PDUSessionID, pDUSessionResourceSetupResponseTransfer OCTET STRING (CONTAINING PDUSessionResourceSetupResponseTransfer), iE-Extensions ProtocolExtensionContainer { {PDUSessionResourceSetupItemCxtRes-ExtIEs} } OPTIONAL, ... }
PDUSessionResourceSetupResponseTransfer ::= SEQUENCE { dLQosFlowPerTNLInformation QosFlowPerTNLInformation, additionalDLQosFlowPerTNLInformation QosFlowPerTNLInformationList OPTIONAL, securityResult SecurityResult OPTIONAL, qosFlowFailedToSetupList QosFlowListWithCause OPTIONAL, iE-Extensions ProtocolExtensionContainer { {PDUSessionResourceSetupResponseTransfer-ExtIEs} } OPTIONAL, ... } PDUSessionResourceSetupResponseTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= { { ID id-RedundantDLQosFlowPerTNLInformation CRITICALITY ignore EXTENSION QosFlowPerTNLInformation PRESENCE optional }| { ID id-AdditionalRedundantDLQosFlowPerTNLInformation CRITICALITY ignore EXTENSION QosFlowPerTNLInformationList PRESENCE optional }| { ID id-UsedRSNInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional }| { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }| { ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional }| { ID id-MBSSessionSetupResponseList CRITICALITY ignore EXTENSION MBSSessionSetupResponseList PRESENCE optional }| { ID id-MBSSessionFailedtoSetupList CRITICALITY ignore EXTENSION MBSSessionFailedtoSetupList PRESENCE optional }, ... } < InitialUEMessage >InitialUEMessage ::= SEQUENCE { protocolIEs ProtocolIE-Container { {InitialUEMessage-IEs} }, ... } InitialUEMessage-IEs NGAP-PROTOCOL-IES ::= { { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }| { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory }| { ID id-UserLocationInformation CRITICALITY reject TYPE UserLocationInformation PRESENCE mandatory }| { ID id-RRCEstablishmentCause CRITICALITY ignore TYPE RRCEstablishmentCause PRESENCE mandatory }| { ID id-FiveG-S-TMSI CRITICALITY reject TYPE FiveG-S-TMSI PRESENCE optional }| { ID id-AMFSetID CRITICALITY ignore TYPE AMFSetID PRESENCE optional }| { ID id-UEContextRequest CRITICALITY ignore TYPE UEContextRequest PRESENCE optional }| { ID id-AllowedNSSAI CRITICALITY reject TYPE AllowedNSSAI PRESENCE optional }| { ID id-SourceToTarget-AMFInformationReroute CRITICALITY ignore TYPE SourceToTarget-AMFInformationReroute PRESENCE optional }| { ID id-SelectedPLMNIdentity CRITICALITY ignore TYPE PLMNIdentity PRESENCE optional }| { ID id-IABNodeIndication CRITICALITY reject TYPE IABNodeIndication PRESENCE optional }| { ID id-CEmodeBSupport-Indicator CRITICALITY reject TYPE CEmodeBSupport-Indicator PRESENCE optional }| { ID id-LTEM-Indication CRITICALITY ignore TYPE LTEM-Indication PRESENCE optional }| { ID id-EDT-Session CRITICALITY ignore TYPE EDT-Session PRESENCE optional }| { ID id-AuthenticatedIndication CRITICALITY ignore TYPE AuthenticatedIndication PRESENCE optional }| { ID id-NPN-AccessInformation CRITICALITY reject TYPE NPN-AccessInformation PRESENCE optional }| { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional }, ... } < UEContextModificationRequest >UEContextModificationRequest ::= SEQUENCE { protocolIEs ProtocolIE-Container { {UEContextModificationRequestIEs} }, ... }
UEContextModificationRequestIEs NGAP-PROTOCOL-IES ::= { { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }| { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }| { ID id-RANPagingPriority CRITICALITY ignore TYPE RANPagingPriority PRESENCE optional }| { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }| { ID id-IndexToRFSP CRITICALITY ignore TYPE IndexToRFSP PRESENCE optional }| { ID id-UEAggregateMaximumBitRate CRITICALITY ignore TYPE UEAggregateMaximumBitRate PRESENCE optional }| { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional }| { ID id-CoreNetworkAssistanceInformationForInactive CRITICALITY ignore TYPE CoreNetworkAssistanceInformationForInactive PRESENCE optional }| { ID id-EmergencyFallbackIndicator CRITICALITY reject TYPE EmergencyFallbackIndicator PRESENCE optional }| { ID id-NewAMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE optional }| { ID id-RRCInactiveTransitionReportRequest CRITICALITY ignore TYPE RRCInactiveTransitionReportRequest PRESENCE optional }| { ID id-NewGUAMI CRITICALITY reject TYPE GUAMI PRESENCE optional }| { ID id-CNAssistedRANTuning CRITICALITY ignore TYPE CNAssistedRANTuning PRESENCE optional }| { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| { ID id-IAB-Authorized CRITICALITY ignore TYPE IAB-Authorized PRESENCE optional }| { ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional }| { ID id-LTEV2XServicesAuthorized CRITICALITY ignore TYPE LTEV2XServicesAuthorized PRESENCE optional }| { ID id-NRUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }| { ID id-LTEUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }| { ID id-PC5QoSParameters CRITICALITY ignore TYPE PC5QoSParameters PRESENCE optional }| { ID id-UERadioCapabilityID CRITICALITY reject TYPE UERadioCapabilityID PRESENCE optional }| { ID id-RGLevelWirelineAccessCharacteristics CRITICALITY ignore TYPE RGLevelWirelineAccessCharacteristics PRESENCE optional }| { ID id-TimeSyncAssistanceInfo CRITICALITY ignore TYPE TimeSyncAssistanceInfo PRESENCE optional }| { ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }| { ID id-QMCDeactivation CRITICALITY ignore TYPE QMCDeactivation PRESENCE optional }| { ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }| { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }| { ID id-FiveG-ProSeAuthorized CRITICALITY ignore TYPE FiveG-ProSeAuthorized PRESENCE optional }| { ID id-FiveG-ProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }| { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional}, < UEContextModificationResponse >UEContextModificationResponse ::= SEQUENCE { protocolIEs ProtocolIE-Container { {UEContextModificationResponseIEs} }, ... } UEContextModificationResponseIEs NGAP-PROTOCOL-IES ::= { { ID id-AMF-UE-NGAP-ID CRITICALITY ignore TYPE AMF-UE-NGAP-ID PRESENCE mandatory }| { ID id-RAN-UE-NGAP-ID CRITICALITY ignore TYPE RAN-UE-NGAP-ID PRESENCE mandatory }| { ID id-RRCState CRITICALITY ignore TYPE RRCState PRESENCE optional }| { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... }
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||