4G/LTE - NAS

 

 

 

 

Protocol Configuration Options

 

Protocol Configuration Options (PCO) is a component of NAS message and this component can be carried by many different messages as follows.

  • PDN Connectivity Request (LTE)
  • ActivateDefaultEPSBearerContextRequest (LTE)
  • ActivateDefaultEPSBearerContextAccept (LTE)
  • PDU session establishment request (NR)
  • PDU session establishment accept (NR)

Followings are the list of the details on PCO :

 

 

 

Data Structure of PCO

 

Data Structure of PCO is very flexible (complicated) which may give a lot of difficulties in message decoding process. The structure is as follows.

 

 

There are various Container ID as shown below. The list would get longer and longer as specification evolves.

NOTE : These are only some of the container IDs that are commonly used based on my experience. There are many more in the specification. Check out 24.008-10.5.6.3 for the complete list.

 

Container ID

Description (Network to MS Direction)

0001H

P-CSCF IPv6 Address Request

0002H

IM CN Subsystem Signaling Flag

0003H

DNS Server IPv6 Address Request

0004H

Policy Control rejection code

0005H

Selected Bearer Control Mode;

0006H

Reserved

0007H

DSMIPv6 Home Agent Address

0008H

DSMIPv6 Home Network Prefix

0009H

DSMIPv6 IPv4 Home Agent Address

000AH

reserved

000BH

reserved

000CH

P-CSCF IPv4 Address

000DH

DNS Server IPv4 Address

000EH

MSISDN Request

000FH

IFOM-Support

0010H

IPv4 Link MTU

0011H

Network support of Local address in TFT indicator

0012H

Reserved

0013H

NBIFOM accepted indicator

0014H

NBIFOM mode

0015H

Non-IP Link MTU

0016H

APN rate control parameters

0017H

3GPP PS data off support indication

0018H

Reliable Data Service accepted indicator

0019H

Additional APN rate control for exception data parameters

001AH

reserved

001BH

S-NSSAI

001CH

QoS rules

001DH

Session-AMBR

001EH

PDU session address lifetime

001FH

QoS flow descriptions

0020H

Ethernet Frame Payload MTU

0021H

Unstructured Link MTU

0022H

reserved

0023H

QoS rules with the length of two octets

0024H

QoS flow descriptions with the length of two octets

0025H

Small data rate control parameters

0026H

Additional small data rate control for exception data parameters

0027H

ACS information

0028H

Initial small data rate control parameters

0029H

Initial additional small data rate control for exception data parameters

002AH

Initial APN rate control parameters

002BH

Initial additional APN rate control for exception data parameters

0030H

ATSSS response with the length of two octets

0031H

DNS server security information with length of two octets

0032H

ECS address with the length of two octets

0035H

ECSP identifier

0036H

PVS IPv4 Address

0037H

PVS IPv6 Address

0038H

PVS name

0039H

reserved

003AH

EAS rediscovery indication without indicated impact

003BH

EAS rediscovery indication with impacted EAS IPv4 address range

003CH

EAS rediscovery indication with impacted EAS IPv6 address range

003DH

EAS rediscovery indication with impacted EAS FQDN

003EH

Uplink data not allowed

003FH

Uplink data allowed

0040H

UAS services not allowed indication

0041H

Service-level-AA container with the length of two octets

0047H

Reserved

0048H

EDC usage allowed indicator

0049H

EDC usage required indicator

004AH

etwork support of MAC address range in 5GS indicator

C021H

LCP (refer to RFC 3232)

C023H

PAP (refer to RFC 3232)

C223H

CHAP (refer to RFC 3232)

8021H

IPCP (refer to RFC 3232)

FF00H

FFFFH reserved for operator specific use.

 

 

Example 1 : 271B80802110030000108106C0A801028306C0A80102000D04C0A80102

    Octet 1 (Protocol Configuration Option IEI): 27H

    Octet 2 (Length of protocol configuration options contents): 1BH=27

    Octet 3 : 80H = 10000000b

      ext = 1

      spare = 0000

      Configuration Protocol = 000

    Octet 4-253 : 802110030000108106C0A801028306C0A80102000D04C0A80102

      Protocol ID 1 : 8021H (IPCP)

      Length of Protocol ID 1 Contents : 10H=16

      Protocol ID 1 Contents = 030000108106C0A801028306C0A80102H

      Protocol ID 2 : 0004H(DNS)

      Length of Protocol ID 2 Contents : 04H=4

      Protocol ID 2 Contents = C0A80102H

 

 

 

How Network Configure PCO ?

 

The simplest answer is "It is completely up to Network !", but one common scenario is "It sends whatever requested by PCO from UE" as shown below.

    i) UE --> NW : PCO in PDN Connectivity Request (UE request the information it want to get)

    ii) UE <-- NW : PCO in Activate Default EPS Bearer Request (NW informs UE of what it want)

 

< Example 1 >

 

In this example, what NW sends in PCO matches exactly what UE requested in PCO

 

Protocol Configuration Options - in PDN Connectivity Request

   Element ID: 0x27

   Length: 26

   [Link direction: MS to network (0)]

   1... .... = Extension: True

   Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

   Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

       Length: 0x10 (16)

       PPP IP Control Protocol

           Code: Configuration Request (1)

           Identifier: 0 (0x00)

           Length: 16

           Options: (12 bytes), Primary DNS Server IP Address, Secondary DNS Server IP Address

               Primary DNS Server IP Address: 0.0.0.0

                   Type: Primary DNS Server IP Address (129)

                   Length: 6

                   Primary DNS Address: 0.0.0.0 (0.0.0.0)

               Secondary DNS Server IP Address: 0.0.0.0

                   Type: Secondary DNS Server IP Address (131)

                   Length: 6

                   Secondary DNS Address: 0.0.0.0 (0.0.0.0)

   Protocol or Container ID: DNS Server IPv4 Address Request (0x000d)

       Length: 0x00 (0)

   Protocol or Container ID: IP address allocation via NAS signalling (0x000a)

       Length: 0x00 (0)

 

Protocol Configuration Options - in Activate Default EPS Bearer Request

    Element ID: 0x27

    Length: 27

    [Link direction: Network to MS (1)]

    1... .... = Extension: True

    Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

    Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

        Length: 0x10 (16)

        PPP IP Control Protocol

            Code: Configuration Nak (3)

            Identifier: 0 (0x00)

            Length: 16

            Options: (12 bytes), Primary DNS Server IP Address, Secondary DNS Server IP Address

                Primary DNS Server IP Address: 192.168.1.2

                    Type: Primary DNS Server IP Address (129)

                    Length: 6

                    Primary DNS Address: 192.168.1.2 (192.168.1.2)

                Secondary DNS Server IP Address: 192.168.1.2

                    Type: Secondary DNS Server IP Address (131)

                    Length: 6

                    Secondary DNS Address: 192.168.1.2 (192.168.1.2)

    Protocol or Container ID: DNS Server IPv4 Address (0x000d)

        Length: 0x04 (4)

        IPv4: 192.168.1.2

 

 

< Example 2 >

 

In this example, what NW sends in PCO matches roughly what UE requested in PCO, but in detail some of the information (e.g, CSCF IPv6 address) is missing. However, UE may accept this.

 

Protocol Configuration Options - in PDN Connectivity Request

    Element ID: 0x27

    Length: 35

    [Link direction: MS to network (0)]

    1... .... = Extension: True

    Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

    Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

        Length: 0x10 (16)

        PPP IP Control Protocol

            Code: Configuration Request (1)

            Identifier: 0 (0x00)

            Length: 16

            Options: (12 bytes), Primary DNS Server IP Address, Secondary DNS Server IP Address

                Primary DNS Server IP Address: 0.0.0.0

                    Type: Primary DNS Server IP Address (129)

                    Length: 6

                    Primary DNS Address: 0.0.0.0 (0.0.0.0)

                Secondary DNS Server IP Address: 0.0.0.0

                    Type: Secondary DNS Server IP Address (131)

                    Length: 6

                    Secondary DNS Address: 0.0.0.0 (0.0.0.0)

    Protocol or Container ID: DNS Server IPv4 Address Request (0x000d)

        Length: 0x00 (0)

    Protocol or Container ID: DNS Server IPv6 Address Request (0x0003)

        Length: 0x00 (0)

    Protocol or Container ID: P-CSCF IPv6 Address Request (0x0001)

        Length: 0x00 (0)

    Protocol or Container ID: P-CSCF IPv4 Address Request (0x000c)

        Length: 0x00 (0)

 

 

Protocol Configuration Options - in Activate Default EPS Bearer Request

    Element ID: 0x27

    Length: 15

    [Link direction: Network to MS (1)]

    1... .... = Extension: True

    Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

    Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

        Length: 0x04 (4)

        PPP IP Control Protocol

            Code: Configuration Nak (3)

            Identifier: 0 (0x00)

            Length: 4

    Protocol or Container ID: P-CSCF IPv4 Address (0x000c)

        Length: 0x04 (4)

        IPv4: 192.168.137.1

 

 

< Example 3 >

 

Protocol Configuration Options - in PDN Connectivity Request

    NAS EPS session management messages: PDN connectivity request (0xd0)

     0001 .... = PDN type: IPv4 (1)

     .... 0001 = Request type: initial request (1)

     ESM information transfer flag

         1101 .... = Element ID: 0xd-

         .... 000. = Spare bit(s): 0x00

         .... ...1 = EIT (ESM information transfer): Security protected ESM information transfer required

     Protocol Configuration Options

         Element ID: 0x27

         Length: 29

         [Link direction: MS to network (0)]

         1... .... = Extension: True

         Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

         Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

             Length: 0x10 (16)

             PPP IP Control Protocol

                 Code: Configuration Request (1)

                 Identifier: 0 (0x00)

                 Length: 16

                 Options: (12 bytes), Primary DNS Server IP Address, Secondary DNS Server IP Address

                     Primary DNS Server IP Address: 0.0.0.0

                         Type: Primary DNS Server IP Address (129)

                         Length: 6

                         Primary DNS Address: 0.0.0.0 (0.0.0.0)

                     Secondary DNS Server IP Address: 0.0.0.0

                         Type: Secondary DNS Server IP Address (131)

                         Length: 6

                         Secondary DNS Address: 0.0.0.0 (0.0.0.0)

         Protocol or Container ID: DNS Server IPv4 Address Request (0x000d)

             Length: 0x00 (0)

         Protocol or Container ID: IP address allocation via NAS signalling (0x000a)

             Length: 0x00 (0)

         Protocol or Container ID: IPv4 Link MTU Request (0x0010)

             Length: 0x00 (0)

 

Protocol Configuration Options - in Activate Default EPS Bearer Request

    NAS EPS session management messages: Activate default EPS bearer context request (0xc1)

    EPS quality of service

        Length: 1

        Quality of Service Class Identifier (QCI): QCI 9 (9)

    Access Point Name

        Length: 12

        APN: nxtgenphone

    PDN address

        Length: 5

        0000 0... = Spare bit(s): 0x00

        PDN type: IPv4 (1)

        PDN IPv4: 192.168.1.1 (192.168.1.1)

    Protocol Configuration Options

        Element ID: 0x27

        Length: 27

        [Link direction: Network to MS (1)]

        1... .... = Extension: True

        Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

        Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

            Length: 0x10 (16)

            PPP IP Control Protocol

                Code: Configuration Nak (3)

                Identifier: 0 (0x00)

                Length: 16

                Options: (12 bytes), Primary DNS Server IP Address, Secondary DNS Server IP Address

                    Primary DNS Server IP Address: 192.168.1.2

                        Type: Primary DNS Server IP Address (129)

                        Length: 6

                        Primary DNS Address: 192.168.1.2 (192.168.1.2)

                    Secondary DNS Server IP Address: 192.168.1.2

                        Type: Secondary DNS Server IP Address (131)

                        Length: 6

                        Secondary DNS Address: 192.168.1.2 (192.168.1.2)

        Protocol or Container ID: DNS Server IPv4 Address (0x000d)

            Length: 0x04 (4)

            IPv4: 192.168.1.2

 

 

< Example 4 >

 

Protocol Configuration Options - in PDN Connectivity Request

 

    NAS EPS session management messages: PDN connectivity request (0xd0)

    0011 .... = PDN type: IPv4v6 (3)

    .... 0001 = Request type: initial request (1)

    Access Point Name

        Element ID: 0x28

        Length: 4

        APN: ims

    Protocol Configuration Options

        Element ID: 0x27

        Length: 38

        [Link direction: MS to network (0)]

        1... .... = Extension: True

        Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

        Protocol or Container ID: Internet Protocol Control Protocol (0x8021)

            Length: 0x10 (16)

            PPP IP Control Protocol

                Code: Configuration Request (1)

                Identifier: 0 (0x00)

                Length: 16

                Options: (12 bytes), Primary DNS Server IP Address, Secondary DNS Server IP Address

                    Primary DNS Server IP Address: 0.0.0.0

                        Type: Primary DNS Server IP Address (129)

                        Length: 6

                        Primary DNS Address: 0.0.0.0 (0.0.0.0)

                    Secondary DNS Server IP Address: 0.0.0.0

                        Type: Secondary DNS Server IP Address (131)

                        Length: 6

                        Secondary DNS Address: 0.0.0.0 (0.0.0.0)

        Protocol or Container ID: DNS Server IPv4 Address Request (0x000d)

            Length: 0x00 (0)

        Protocol or Container ID: DNS Server IPv6 Address Request (0x0003)

            Length: 0x00 (0)

        Protocol or Container ID: P-CSCF IPv6 Address Request (0x0001)

            Length: 0x00 (0)

        Protocol or Container ID: P-CSCF IPv4 Address Request (0x000c)

            Length: 0x00 (0)

        Protocol or Container ID: IP address allocation via NAS signalling (0x000a)

            Length: 0x00 (0)

        Protocol or Container ID: IPv4 Link MTU Request (0x0010)

            Length: 0x00 (0)

 

Protocol Configuration Options - in Activate Default EPS Bearer Request

 

    NAS EPS session management messages: Activate default EPS bearer context request (0xc1)

    EPS quality of service

        Length: 1

        Quality of Service Class Identifier (QCI): QCI 5 (5)

    Access Point Name

        Length: 4

        APN: ims

    PDN address

        Length: 9

        0000 0... = Spare bit(s): 0x00

        PDN type: IPv6 (2)

        PDN IPv6 if id: 0000000000000011

    ESM cause

        Element ID: 0x58

        Cause: PDN type IPv6 only allowed (51)

    Protocol Configuration Options

        Element ID: 0x27

        Length: 39

        [Link direction: Network to MS (1)]

        1... .... = Extension: True

        Configuration Protocol: PPP for use with IP PDP type or IP PDN type (0)

        Protocol or Container ID: DNS Server IPv6 Address (0x0003)

            Length: 0x10 (16)

            IPv6: 2001:0:0:1::2

        Protocol or Container ID: P-CSCF IPv6 Address (0x0001)

            Length: 0x10 (16)

            IPv6: 2001:0:0:1::2

 

 

< Example 5 >

 

Protocol Configuration Options - in PDU session establishment request

 

    Protocol discriminator = 0x2e (5GS Session Management)

    PDU session identity = 1

    Procedure transaction identity = 5

    Message type = 0xc1 (PDU session establishment request)

    Integrity protection maximum data data:

      Maximum data rate per UE for user-plane integrity protection for uplink = 0x00 (64 kbps)

      Maximum data rate per UE for user-plane integrity protection for downlink = 0x00 (64 kbps)

    PDU session type = 0x3 (IPv4v6)

    5GSM capability:

      0x00 (TPMIC=0, ATSSS-ST=0, EPT-S1=0, MH6-PDU=0, RqoS=0)

    Extended protocol configuration options:

      Ext = 1

      Configuration protocol = 0

      Protocol ID = 0xc223 (CHAP)

      Data = 01 00 00 16 10 11 f7 7e 7e 11 f7 7e 7e 11 f7 7e 7e 11 f7 7e 7e 2a

      Protocol ID = 0xc223 (CHAP)

      Data = 02 00 00 16 10 9a 62 f4 9f cd d9 60 54 7a a9 37 58 60 99 f0 77 2a

      Protocol ID = 0x8021 (IPCP)

      Data = 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00

      Protocol ID = 0x000d (DNS Server IPv4 Address Request)

      Data =

      Protocol ID = 0x0003 (DNS Server IPv6 Address Request)

      Data =

      Protocol ID = 0x000a (IP address allocation via NAS signalling)

      Data =

      Protocol ID = 0x0005 (MS Support of Network Requested Bearer Control indicator)

      Data =

      Protocol ID = 0x0010 (IPv4 Link MTU Request)

      Data =

      Protocol ID = 0x0011 (MS support of Local address in TFT indicator)

      Data =

      Protocol ID = 0x0023 (QoS rules with the length of two octets support indicator)

      Data =

      Protocol ID = 0x0024 (QoS flow descriptions with the length of two octets support indicator)

      Data =

 

 

Protocol Configuration Options - in PDU session establishment accept

 

    Protocol discriminator = 0x2e (5GS Session Management)

    PDU session identity = 1

    Procedure transaction identity = 5

    Message type = 0xc2 (PDU session establishment accept)

    Selected PDU session type = 0x1 (IPv4)

    Selected SSC mode = 0x1 (1)

    Authorized QoS rules:

      QoS rule 1:

        QoS rule identifier = 1

        Rule operation code = 1 (create new QoS rule)

        DQR = 1 (the QoS rule is the default QoS rule)

        Number of packet filters = 1

        Packet filter identifier = 15

          Packet filter direction = 3 (bidirectional)

          Match-all

        QoS rule precedence = 255

        QFI = 1

    Session AMBR:

      Session-AMBR for downlink = 5000 Mbps

      Session-AMBR for uplink = 2000000 kbps

    5GSM cause = 0x32 (PDU session type IPv4 only allowed)

    PDU address:

      SI6LLA = 0

      PDU session type = 1 (IPv4)

      IPv4 = 192.168.3.2

    S-NSSAI:

      Length of S-NSSAI contents = 1 (SST)

      SST = 0x01

    Mapped EPS bearer contexts:

      Mapped EPS bearer context 1:

        EPS bearer identity = 5

        Operation code = 1 (create new EPS bearer)

        E = 1 (parameters list is included)

        Number of EPS parameters = 2

        Mapped EPS QoS parameters:

          QCI = 9

        APN-AMBR:

          APN-AMBR for downlink = 4864000000 bits

          APN-AMBR for uplink = 1792000000 bits

    Authorized QoS flow descriptions:

      QoS flow description 1:

        QFI = 1

        Operation code = 1 (create new QoS flow description)

        E = 1 (parameters list is included)

        Number of parameters = 2

        5QI = 9

        EPS bearer identity = 5

    Extended protocol configuration options:

      Ext = 1

      Configuration protocol = 0

      Protocol ID = 0x8021 (IPCP)

      Data = 03 00 00 0a 81 06 08 08 08 08

      Protocol ID = 0x000d (DNS Server IPv4 Address)

      Data = 8.8.8.8

    DNN = "internet.mnc001.mcc001.gprs"