PCMD record format

A PCMD record is logically divided into several parts known as containers. Containers are sorted and can be present multiple times. They can be of fixed or variable size and must be divisible by four. If the size is not divisible by four, padding 0s are appended.

If the system IP address inserted in the PCMD record is IPv6, the maximum session record size is:
  • 1248 bytes for standard records
  • 1532 bytes for extended records
  • 32 bytes for heartbeat records

If the system IP address inserted in the PCMD record is IPv4, the sizes are decreased by 12 bytes. The PCMD record size equals the UDP payload length of the IP packet, if there is just one PCMD record present.

Every PCMD record begins with a header as defined in PCMD record header format. The version of the PCMD record conveyed in the PCMD header changes when either of the following occurs:

  1. The structure or format of any container changes.
  2. A new container type is introduced.

The PCMD version for this release is 6.

The following notation specifies the structure of each container. This notation is similar to the 3GPP specifications, with the left side of a byte holding the most significant bit. Four bytes are shown per table row. The leftmost byte is transmitted first.

bytes: 0 1 2 3
bits: 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

When more than one byte is merged in a single information element, the bit numbering is contiguous and the left is the logically more significant. See HeaderFlags in PCMD record report header2 for an example.

PCMD record header format

The PCMD record header is composed of the PCMD record common header, the PCMD record report header, and the SendingNodeIP container.

PCMD record common header

Table 2. PCMD record common header
Bytes 0 1 2 3
0 PCMDVersion=6 RecordType RecordLength

PCMD record report header2

Table 3. PCMD record report header2
Bytes 0 1 2 3
0 RecordOpeningTime
4
8 RecordSequenceNumber
12 GwId MscpGroupId SendingNodeType HeaderFlags
16 Reserved
20 UEid
24
Table 4. HeaderFlags
7 6 5 4 3 2 1 0
SendingNodeIpV6 Reserved

For descriptions of the PCMD record header container information elements, see Header information elements.

SendingNodeIP container

The length of the SendingNodeIP container depends on the IP address type:

  • 4 bytes for IPv4

  • 16 bytes for IPv6
Table 5. SendingNode IP container (IPv4)
Bytes 0 1 2 3
0 Sending node IPv4
Table 6. SendingNode IP container (IPv6)
Bytes 0 1 2 3
0 Sending node IPv6
4
8
12

Session PCMD record format

The following tables describe the formats of the Session PCMD and Session Extended PCMD records.

Note:

The IMEI container is present when the ImeiFlag is set to 1.

The MSISDN container is present when the MsisdnFlag is set to 1.

The APN container is present when ApnFlag is set to 1.

The Procedure container is present only once, except if another procedure or procedures occur before the original procedure completes. See PCMD record generation for more information about the meaning of a concurrent procedure.

The Bearer, TEID, FTEID IP and Bearer Extended containers are present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

The Session Extended container and Bearer Extended container are present when the ExtendedFlag is set to 1.

One MessageAI container is present for every Message container.

One Charging container is present if BLC=0.

One Charging container is present for every Bearer container if BLC=1.

Table 7. Session PCMD record
Container Multiplicity
PCMD Record Common Header 1
PCMD Record Report Header2
Sending Node IP container
Session Decoding container 2
Session 3 container
Procedure container 1-3
IMEI container 1
MSISDN container
Peers container
APN container
Message container 0-40
Message_n container
MessageAI_1 container 0-40
MessageAI_n container
Bearer/QoS Flow container 0-11
TEID container
FTEID IP container
5G QoS container
Charging container 1-11
Charging_n container
UE IP container 1
SNSSAI container 0-1
Table 8. Extended session PCMD record
Container Multiplicity
PCMD Record Common Header 1
PCMD Record Report Header2
Sending Node IP container
Session Decoding container2
Session 3 container
Procedure container 1-3
IMEI container 1
MSISDN container
Peers container
APN container
Session Extended container
Message_1 container 0-40
Message_n container
MessageAI_1 container 0-40
MessageAI_n container
Bearer/QoS Flow container 0-11
TEID container
FTEID IP container
Bearer Extended container
5G QoS container
Charging_1 container 1-11
Charging_n container
UE IP container 1
SNSSAI container 0-1

Session PCMD Decoding container 2

Table 9. Session Decoding container 2
Bytes 0 1 2 3
0 MessageNum

ProcNum

(4 bits)

PeerNum

(4 bits)

Reserved SessionFlagsV2
4 SessionFlags2 Reserved
Table 10. SessionFlagsV2
7 6 5 4 3 2 1 0
BrNum ApnFlag Extended Flag ImeiFlag MsisdnFlag
Table 11. SessionFlags2
7 6 5 4 3 2 1 0
SnssaiFlag UliTypeFlag Reserved

Session3 container

Table 12. Session3 PCMD container
Bytes 0 1 2 3
0 RatType

(4 bits)

DT

(2 bits)

BLC

(1 bit)

CI

(1 bit)

PDN Type

(3 bits)

Iwki

(3 bits)

Reserved

(3 bits)

UP Selection

(6 bits)

SSCM

(2 bits)

PduSessionId
Table 13. UPSelection
7 6 5 4 3 2 1 0
UPSAttributes UPSelectionPeer
Note: If UPSAttributes equals 0, the UPSelectionPeer field is not used. The UPSAttributes is always 0 in this release.

Procedure container

Table 14. Procedure container
Bytes 0 1 2 3
0 ProcedureID ProcedureResult ProcedureCause
4 ProcedureDetailedCause ProcedureDuration

IMEI container

Table 15. IMEI container
Bytes 0 1 2 3
0 IMEI
4

MSISDN container

Table 16. MSISDN container
Bytes 0 1 2 3
0 MSISDN
4

Peer container

Table 17. Peer container
Bytes 0 1 2 3
0 Peer1TypeV2 Peer2TypeV2 or padding Peer3TypeV2 or padding Peer4TypeV2 or padding
...
4 - 12 PeerXTypeV2 Peer(X+1)TypeV2 or padding Peer(X+2)TypeV2 or padding Peer(X+3)TypeV2 or padding
4 - 16 Peer1Id
... ...
... 252 PeerYId
Note:
  • X in [5..13]
  • Y in [2..15] = PeerNum

The Peer container contains at least 1 peer and up to 15 peers maximum, as specified by PeerNum in the Session PCMD Decoding container 2.

Each peer is described by a PeerTypeV2 field and a PeerId field.

PeerTypeV2 field:

  • Length is 1 byte.
  • Padding may be added after the PeerTypeV2 fields to align with a 4-byte boundary.
  • The total number of bytes depends on the total number of peers in the record:
    • 1 to 4 peers use 4 bytes
    • 5 to 8 peers use 8 bytes
    • 9 to 12 peers use 12 bytes
    • 13 to 15 peers use 16 bytes

The PeerId field length is 4 bytes (IPv4) or 16 bytes (IPv6 or UUID), as specified by the PeerIdType.

The maximum length of a Peer container is 256 bytes.
Table 18. PeerNTypeV2
7 6 5 4 3 2 1 0
PeerIdType PeerType

APN container

Table 19. APN container
Bytes 0 1 2 3
0 ApnLength APN (0 – 2 bytes)
... APN (continued)
96 (APN continued) Padding to 4 bytes if needed
Note: The APN container size is up to 100 bytes, depending on the APN length, and is always a multiple of 4 bytes.

Session Extended container

Table 20. Session Extended container
Bytes 0 1 2 3
0 UliLength ULI
... ULI (continued)
16 ULI (continued) Padding to 4 bytes if needed
Note:

The Session Extended container size is up to 20 bytes, depending on the ULI length, and is always a multiple of 4 bytes; for example, for 5G sessions it can be up to 17 bytes.

Message container

There is one Message container for every message that is transmitted or received in the reported procedure. The Message containers are appended in chronological order.

When concurrent procedures are reported, to preserve the chronology the messages of the concurrent procedure are interleaved with the messages of the reported procedure.

Table 21. Message container
Bits 31-22 21-17 16 15-0
0 MessageMarker_n ReferencePoint_n Direction_n timestampMM_n

MessageAI container

There is one MessageAI (additional information) container for each Message container. Matching of the MessageAI container to the Message container is performed in the order that the Message containers appear.

Table 22. MessageAI container
Bytes 0 1 2 3
0 MessageCauseCode Padding to 4 bytes at the last MessageAI container

Bearer / QoS Flow container

Table 23. Bearer / QoS Flow container
Bits 31-28 27-24 23-16 15-8 7 6 5- 2 1 0
0 BearerID LBI BearerResult BearerCause
4 BearerDetailedCause Bearer QCI PVI PCI PL Reserved 5GQos Flag
8 FTeidUIp V4BrIdRef (4 bit) FTeidUIp V6 BrIdRef (4 bit) 5GTun Ipv4

(1 bit)

5GTun Ipv6

(1 bit)

Reserved

TEID container

Table 24. TEID container
Bytes 0 1 2 3
0 TeidU

FTEID IP container

The length of the FTEID IP container shown in the following tables depends on the IP address type:

  • 4 bytes for IPv4
  • 16 bytes for IPv6
  • 20 bytes for IPv4 followed by IPv6
Table 25. FTEID IP container (IPv4)
Bytes 0 1 2 3
0 FTEID IPv4
Table 26. FTEID IP container (IPv6)
Bytes 0 1 2 3
0 FTEID IPv6
4
8
12
Table 27. FTEID IP container (IPv4 and IPv6)
Bytes 0 1 2 3
0 FTEID IPv4 and IPv6
4
8
12
16

Bearer Extended container

Table 28. Bearer Extended container
Bytes 0 1 2 3
0 Uplink APN-AMBR
4 Downlink APN-AMBR
8 Uplink MBR
12 Downlink MBR
16 Uplink GBR
20 Downlink GBR

5G QoS container

Table 29. 5G QoS container
Bytes 0 1 2 3
0 QFI (6bit) RT (2 bit) PDB (5 bit) PEB (3 bit) QNC (1 bit) RQI (1 bit) Reserved
4 AW (12 bit) MBV (12 bit) Reserved

Charging container

There is one Charging container per procedure, when BLC=0. There is one Charging container for each Bearer container when BLC=1. The Charging container to Bearer container matching is performed in the order that the Bearer containers appear.

Table 30. Charging container
Bytes 0 1 2 3
0 GCID

UE IP container

The length of the UE IP container shown in the following tables depends on the IP address type:

  • 4 bytes for IPv4
  • 16 bytes for IPv6
  • 20 bytes for IPv4 followed by IPv6
Table 31. UE IP container (IPv4)
Bytes 0 1 2 3
0 UE IPv4
Table 32. UE IP container (IPv6)
Bytes 0 1 2 3
0 UE IPv6
4
8
12
Table 33. UE IP container (IPv4 and IPv6)
Bytes 0 1 2 3
0 UE IPv4 and IPv6
4
8
12
16

SNSSAI container

Table 34. SNSSAI container
Bytes 0 1 2 3
0 sst sd

PCMD Heartbeat format

The following table describes the PCMD Heartbeat format.

PCMD Heartbeat container

Table 36. PCMD Heartbeat container
Bytes 0 1 2 3
0 HBSequenceNumber GwId HBFlags
4 Reserved
8 HBTxTime
Table 37. HBFlags
7 6 5 4 3 2 1 0
SendingNodeIpV6 Reserved