PCMD record format

Learn about the PCMD record format, which is logically divided into several containers that can be present multiple times.

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 record IEs.

SendingNodeIP container

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

  • 4 bytes for IPv4

  • 16 bytes for IPv6
Table 5. SendingNodeIP container (IPv4)
Bytes 0 1 2 3
0 Sending node IPv4
Table 6. SendingNodeIP 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.

The multiplicity values listed in the tables indicate, at the container level, how often a container may appear in the record:
  • 1 – appears exactly one time (always present)
  • 0 to 1 – appears one time or not at all (optional)
  • 0 to n – appears multiple times or not at all (optional)
  • 1 to n – appears one or more times (mandatory)
  • 0 to 40, 1 to 40 – bounded multiplicity ranges with a fixed maximum number of occurrences
Table 7. Session PCMD record
Container Multiplicity Information Elements (IEs)
PCMD record common header 1 Common Header IEs
PCMD record report header2 Report Header2 IEs
SendingNodeIP container Sending Node IP container IEs
Session PCMD Decoding container 2 Session Decoding container IEs
Session3 container Session3 container IEs

Procedure container

Present only one time, except if another procedure or procedures occur before the original procedure completes; see PCMD record generation for information about a concurrent procedure.

1 to 3 Procedure container IEs

IMEI container

Present when the ImeiFlag is set to 1.

1 IMEI container IEs

MSISDN container

Present when the MsisdnFlag is set to 1.

MSISDN container IEs
Peer container Peers container IEs
APN container

Present when the ApnFlag is set to 1.

APN container IEs

Message container

Message_1 container to Message_n container

0 to 40 Message container IEs

MessageAI container

MessageAI_1 container to MessageAI_n container

One MessageAI container is present for every Message container.

MessageAI container IEs

Bearer / QoS Flow container

Present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

0 to 11 Bearer and QoS Flow container IEs

TEID container

Present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

TEID container IEs

FTEID IP container

Present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

FTEID IP container IEs
5G QoS container 5GC QoS container IEs

Charging container

Charging_1 to Charging_n container

One Charging container is present if BLC is 0.

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

1 to 11 Charging container IEs
UE IP container 1 UE IP container IEs
SNSSAI container 0 to 1 SNSSAI container IEs
Table 8. Extended session PCMD record
Container Multiplicity Record format and IE
PCMD record common header 1 Common Header IEs
PCMD record report header2 Report Header2 IEs
SendingNodeIP container Sending Node IP container IEs
Session PCMD Decoding container 2 Session Decoding container IEs
Session3 container Session3 container IEs

Procedure container

Present only one time, except if another procedure or procedures occur before the original procedure completes; see PCMD record generation for information about a concurrent procedure.

1 to 3 Procedure container IEs

IMEI container

Present when the ImeiFlag is set to 1.

1 IMEI container IEs

MSISDN container

Present when the MsisdnFlag is set to 1.

MSISDN container IEs
Peer container Peers container IEs

APN container

Present when the ApnFlag is set to 1.

APN container IEs

Session Extended container

Present when the ExtendedFlag is set to 1.

Session extended container IEs

Message container

Message_1 container to Message_n container

0 to 40 Message container IEs

MessageAI container

MessageAI_1 container to Message AI_n container

One MessageAI container is present for every Message container.

MessageAI container IEs

Bearer / QoS Flow container

Present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

0 to 11 Bearer and QoS Flow container IEs

TEID container

Present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

TEID container IEs

FTEID IP container

Present only when a bearer is involved in the procedure (bearer creation, modification, and deletion).

FTEID IP container IEs

Bearer Extended container

Present when the ExtendedFlag is set to 1 and when a bearer is involved in the procedure (bearer creation, modification, and deletion).

Bearer extended container IEs
5G QoS container 5GC QoS container IEs

Charging container

Charging_1 container to Charging_n container

One Charging container is present if BLC is 0.

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

1 to 11

Charging container IEs

UE IP container 1 UE IP container IEs
SNSSAI container 0 to 1 SNSSAI container IEs

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 ExtendedFlag 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

In the following table, if the UPSAttributes is 0, the UPSelectionPeer field is not used. The UPSAttributes is always 0 in this release.

Table 13. UPSelection
7 6 5 4 3 2 1 0
UPSAttributes UPSelectionPeer

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

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. The following apply for the PeerTypeV2 field:

  • Length is 1 byte.
  • Padding may be added after the PeerTypeV2 fields to align with a 4-byte boundary.
  • 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

In the PeerXTypeV2, the range for X is [5..13]; if x is 13 there is padding (not peer 16).

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

Maximum length of a Peer container is 256 bytes.

In the PeerYId, Y is the PeerNum and the range for Y is [2..15]; if Y is 15 there is padding.

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
Table 18. PeerNTypeV2
7 6 5 4 3 2 1 0
PeerIdType PeerType

APN container

In the following table, the APN container size is up to 100 bytes, depending on the APN length, and is always a multiple of 4 bytes.

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

Session Extended container

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.

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

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 when BLC is 0 and one Charging container for each Bearer container when BLC is 1.

The MAG-c performs the Charging container to Bearer container matching in the order in which 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