Test Payload
The Test Payload is a special data area in the test packet that contains various information about the packet. The Test Payload is identified by a Test Payload ID (TID). The Test Payload is located just before the Ethernet FCS and consists of the following sections:
Test Payload (Normal)
Each Xena test packet contains a special proprietary data area called the Test Payload Data (TPLD), which contains various information about the packet and is identified by a Test Payload ID (TID). The TPLD is located just before the Ethernet FCS and consists of the following sections:
Field |
Length |
Explanation |
|---|---|---|
Payload Integrity Checksum (optional) |
2 bytes |
See the note. |
Sequence Number |
3 bytes |
Packet sequence number used for loss and misordering detection. |
Timestamp |
4 bytes |
Timestamp value used for latency measurements. |
Test Payload ID (TID) |
2 bytes |
Test payload identifier used to identify the sending stream. |
Payload Integrity Offset |
1 byte |
Offset in packet from where to calculate payload integrity. |
First Packet Flag |
1 bit |
Set if this is the first packet after traffic is started. |
Checksum Enabled |
1 bit |
Set if payload integrity checksum is used. |
<reserved> |
7 bits |
|
Payload Integrity Offset (MSB) |
3 bits |
Offset in packet from where to calculate payload integrity, MSB (bits 10:9:8) |
Timestamp Decimals |
4 bits |
Additional decimals for the timestamp. |
Checksum |
8 bytes |
TPLD integrity checksum (CRC-32) |
Total TPLD Size |
20 or 22 bytes |
Note
If the Payload Checksum Offset is enabled on the parent port (value > 0) , then an additional 2-byte checksum field is inserted in the beginning of the TPLD, just before the Sequence Number. This increases the total size of the TPLD to 22 bytes.
Test Payload (Micro)
Field |
Length |
Explanation |
|---|---|---|
First Packet Flag |
1 bit |
Packet sequence number used for loss and misordering detection. |
<reserved> |
1 bit |
|
Test Payload ID (TID) |
10 bits |
Test payload identifier used to identify the sending stream. |
Timestamp |
28 bits |
Timestamp value used for latency measurements. |
Checksum |
8 bits |
TPLD integrity checksum (CRC-32) |
Total Micro-TPLD Size |
6 bytes |
The selection between the default TPLD and the micro-TPLD is done on the parent port. It is thus not possible to use different TPLD types for streams on the same port.
Timestamp Calculation
Timestamp consists of two parts: <Timestamp> and <Timestamp Decimals> (<Timestamp Decimals> not available in micro TPLD).
Timestamp is calculated into nanoseconds by the equation below:
Timestamp = <Timestamp>*8 + <Timestamp Decimals>/2
For instance:
if <Timestamp> = 0x7a2ce291, and <Timestamp Decimals> = 0x0d,
then Timestamp = 2049761937*8 + 13/2 = 16,398,095,502 nsec
Disabling Test Payload
The Test Payload can also be completely disabled for any given stream by setting the Test Payload ID (TID) value for the stream to the value -1.
Xena Wireshark Plugin for TPLD
You can download the Xena TPLD Wireshark pluggin from xenanetworks/tpld-parser-wireshark
Xena offers a Wireshark integration via a dedicated LUA plugin. It allows users to easily read the information in the Xena test signature field. The plugin supports Wireshark 3.x and above.