v10.50 v10.55 Alpha v10.54 Alpha v10.53 Alpha v10.52 Alpha v10.51 Alpha
v10.50 v10.55 Alpha v10.54 Alpha v10.53 Alpha v10.52 Alpha v10.51 Alpha

Input Context Members

All verification scripts have input contexts, special structures that can be used inside of the scripts. The application fills their members. The verification script input contexts have two sets of members:

Note: Unless otherwise specified, all input context members are integers.

If possible values for input context members are not explicitly specified, they should comply with the current USB specifications.

Trace Event-Independent Set of Members

This set of members is defined and can be used for any event passed to a script:

in.Level: Transaction level of the trace event. It can be one of the following constants:

_PKT: Packet level (value = 0)

_TRA: Transaction level (value = 1)

_SPL_TRA: Split Transaction level (value = 2)

_XFER: Transfer level (value = 3)

_SCSI:           SCSI Operation level (value =11)

_PHY_TRA:   PHY Transaction level (value = 15)

in.Index: Index of the event in the trace file (packet number for packets etc).

in.Time: Time of the event (type = list, having format = 2 sec 125 ns -> [2 , 125]. For more information, see VSE Time Object.

in.Channel: Indicates on which channel the event occured. It can be one of the following constants:

_USB2: USB2 traffic (value = 1)

_USB2_1: USB2 Channel 1 traffic (value = 2) (Second channel on platferms that support 2 channels)

_USB2_2: USB2 Channel 2 traffic (value = 3)

_USB2_3: USB2 Channel 3 traffic (value = 4)

_USB3_RX: USB3 Host Receive traffic (Upstream, value = 5)

_USB3_TX: USB3 Host Transmit traffic (Downstream, value = 6)

_USB4_HS_ANALYZER_LEFT: USB4 HS Analyzer Left Port orignated traffic (value = 5)

_USB4_HS_ANALYZER_RIGHT: USB4 HS Analyzer Right Port originated traffic (value = 6)

_USB4_HS_EXERCISER_DUT: USB4 HS Exerciser DUT originated traffic (value = 5)

_USB4_HS_EXERCISER_EXR: USB4 HS Exerciser exerciser originated traffic (value = 6)

_USB4_HS_ANALYZER_LEFT_OR_DUT: USB4 HS Analyzer Left Port or Exerciser DUT orignated traffic (value = 5)

_USB4_HS_ANALYZER_RIGHT_OR_EXR: USB4 HS Analyzer Right Port or Exerciser execiser originated traffic (value = 6)

_USB_PD_0: USB Power Delivery traffic (value = 9)

_USB_CC_0: USB Configuration Channel traffic (value = 10)

_USB4_SB_ANALYZER_LEFT: USB4 SB Analyzer Left Port orignated traffic (value = 15)

_USB4_SB_ANALYZER_RIGHT: USB4 SB Analyzer Right Port originated traffic (value = 16)

_USB4_SB_EXERCISER_DUT: USB4 SB Exerciser DUT originated traffic (value = 15)

_USB4_SB_EXERCISER_EXR: USB4 SB Exerciser exerciser originated traffic (value = 16)

_USB4_SB_ANALYZER_LEFT_OR_DUT: USB4 SB Analyzer Left Port or Exerciser DUT orignated traffic (value = 15)

_USB4_SB_ANALYZER_RIGHT_OR_EXR: USB4 SB Analyzer Right Port or Exerciser exerciser originated traffic (value = 16)

in.Speed: Indicates the speed for the trace event. It can be one of the following constants:

_FS: USB2 Full Speed (value = 1)

_LS: USB2 Low Speed (value = 2)

_HS: USB2 High Speed (value = 0) (NOT 3!)

_SS: USB3 Super Speed (value = 4)

_SSP: USB3.1 Super Speed Plus(value = 5)

_USB4_GEN2: USB4 HS Gen2 Speed (value = 8)

_USB4_GEN3: USB4 HS Gen3 Speed (value = 9)

_USB4_SB: USB4 Sideband Speed (value = 10)

in.Direction: Indicates the direction for the trace event. It can be one of the following constants:

_OUT: Direction is from Host to Device (value = 2)

_IN: Direction is from Device to Host (value = 3)

_BOTH: Trace event involves traffic in both directions (value = 4)

in.TraceEvent: Type of trace events. (Application predefined constants are used. See list of possible events in Verification Script Engine Events.)

in.Notification: Type of notifications. (Application predefined constants are used. Currently no notifications are defined.)

Trace Event-dependent Set of Members

This set of members is defined and can be used only for a specific event or after calling functions that provide values of variables:

USB Packet-Specific Set of Members

Members of this set are valid for all USB packet events:

in.RawPacket: Bit source of the whole packet. Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits() s.

in.RawPacketLength: Length of the packet (in bytes).

in.Duration: Time it took to transmit the packet on the bus (VSE Time object).

in.Errors: A bitmap of packet level errors. The table below describes the current list of possible packet errors and their bit positions in the error bitmap:

Note: For USB4, in.Errors is not applicable. Use HasPacketError() instead, as shown in Chapter 9.5.

Error type

Bit position

Description

USB2 Errors:



PID_ERROR

1

Bad PID value

CRC5_ERROR

2

Bad CRC5

CRC16_ERROR

3

Bad CRC16

PACKETLEN_ERROR

4

Wrong packet length

BIT_STUFF_ERROR

5

Bit stuffing error

EOP_ERROR

6

Bad End Of Packet

BABBLE_START_ERROR

7

Babble start error

BABBLE_END_ERROR

8

Babble end (Loss Of Activity) error

FRAME_LENGTH_ERROR

9

Wrong frame length

HANDSHAKE_TIMEOUT_ERROR

10

Bad turnaroud timing or timeout condition for handshake

INTERNAL_ERROR

11

Analyzer internal error

DATA_TOGGLE_ERROR

12

Data toggling error

MICROFRAME_ERROR

13

Bad frame or microframe number

MOD_8_ERROR

14

Last Byte Incomplete error

OTG_ERROR

15

Bad OTG Signal value




Error type

Bit position

USB3 Errors


CRC5_ERROR

16

CRC16_ERROR

17

CRC32_ERROR

18

DISPARITY_ERROR

19

10BIT_SYMBOL_ERROR

20

UNKNOWN_PACKET_IPS

21

FRAMING_SYMBOL_ERROR

22

LC_DATA_SYMBOL_ERROR

23

BAD_HEADER_PKT_LENGTH

24

BAD_DATA_LENGTH_FIELD

25

SKP_SYMBOL_ERROR

26

DIR_CTRL_ENDP

27

MISSED_DPH_ERROR

28

MISSED_DPP_ERROR

29

SETUP_DP_ERROR

30

SEQNUM_ERROR

31

PM_LC_TIMEOUT_ERROR

32

PM_ENTRY_TIMEOUT_ERROR

33

Ux_EXIT_TIMEOUT_ERROR

34

NON_ZERO_RSVD_FIELD_ERROR

45

MISSED_ITP_ERROR

46

LATE_EARLY_ITP_ERROR_OBSOLETE

47

SSP_CORRECTABLE_SINGLE_BIT_ERROR

57

ABORTED_DPP_ERROR

69

UNKNOWN_PACKET_USS

74

DEFERRED_DELAYED_ERROR

75

PTP/SCSI Errors


PTP_NO_COMMAND_ERROR

35

PTP_NO_RESPONSE_ERROR

36

PTP_ID_DISORDER_ERROR

37

PTP_NO_OPCODE_ERROR

38

SCSI_OP_ERROR_NO_COMMAND

39

SCSI_OP_ERROR_NO_DATA

40

SCSI_OP_ERROR_NO_STATUS

41

SCSI_OP_ERROR_INVALID_OPCODE

42

OBEX_ERROR_NO_STATUS

43

OBEX_ERROR_INVALID_OPCODE

44

PD Errors


CRC32_ERROR

48

UNKNOWN_PACKET_ERROR

49

INCOMPLETE_PACKET_ERROR

50

PDO_TYPE_ERROR

51

PDO_VOLTAGE_ERROR

52

PDO_VOLTAGE_ORDER_ERROR

53

PDO_SAME_VOLTAGE_ERROR

54

VENDOR_ID_ERROR

55

STRUCTURED_VDM_VERSION_ERROR

56

TRA_NO_GOODCRC_ERROR

58

TRA_LATE_GOODCRC_ERROR

59

TRA_CORRUPTED_GOODCRC_ERROR

60

NON_ZERO_RSVD_FIELD_ERROR

61

UNK_PKT_NO_PREAMBLE_ERROR

62

UNK_PKT_START_FRAMING_ERROR

63

UNK_PKT_END_FRAMING_ERROR

64

UNK_PKT_PACKET_LEN_ERROR

65

UNK_PKT_SYMBOL_ERROR

66

RESERVED_MESSAGE_TYPE_ERROR

67

INVALID_MESSAGE_TYPE_ERROR

68

XFER_NO_RESPONSE

70

XFER_POWER_NEGO_NO_REQUEST

71

XFER_NO_PS_RDY

72

XFER_NO_SECOND_PS_RDY

73

UNEXPECTED_PORT_DATA_ROLE_ERROR

76

UNEXPECTED_PORT_POWER_ROLE_ERROR

77

OBJECT_POSITION_ERROR

79

OPERATION_CUR_POW_ERROR

80

MIN_MAX_OPERATING_ERROR

81

NUMBER_OF_DATA_OBJECT_ERROR

82

XFER_DATA_RESET_UNSUCCESSFUL

116

VOLTAGE_REGULATION_ERROR

124

TOUCH_TEMP_ERROR

125

SOURCE_INPUT_ERROR

126

PEAK_CURRENT_ERROR

127

EPR_BATTERY_VARIABLE_NOTSUPPORTED

152

DP Errors


TRA_NO_REPLY_ERROR

78

VBUS Power parameter values

in.Power: The value of VBUS power as measured at the time the packet was transmitted (in microwatts). Will be set to a null value if the power information is not present in the trace.

in.Voltage: The value of the voltage as measured at the time the packet was transmitted (in microvolts). Will be set to a null value if the power information is not present in the trace.

in.Current: The value of the vurrent as measured at the time the packet was transmitted (in microampers). Will be set to a null value if the power information is not present in the trace.

Skew Measurement parameter values

in.SkewL1ToL0: Represents the absolute value (in 10 picosecond units) of skew between lanes L0 and L1. A value of 0xFFFFFFFF indicates that no skew measurement corresponding to the packet is available.

in.SkewL1AfterL0: Indicates whether L1 is ahead of or behind L0. A value of 0 means that that L1 is ahead of L0, while a value of 1 means that L0 is ahead of L1. The value is undefined if no skew measurement corresponding to the packet is available (ie, in.SkewL1ToL0 == 0xFFFFFFFF).

USB Bus Condition-Specific Set of Members

Note: Valid for Bus Condition trace events only, undefined for other events.

in.BusCondition: Type of Bus Condition events. Possible events and values listed below:

Bus Condition

in.BusCondition

Value

Description

CHIRP_K

_CHIRP_K

0

Device "K" Chirp to notify host of Hi Speed capability

CHIRP_J

_CHIRP_J

1

Device "J" Chirp to notify host of Hi Speed capability

FS_K_ON_HS

_FS_K_ON_HS

2

Full Speed "K" signaling on Hi Speed branch

FS_J_ON_HS

_FS_J_ON_HS

3

Full Speed "J" signaling on Hi Speed branch

SUSPEND

_SUSPEND

4

Suspend signaling

RESUME

_RESUME

5

Resume signaling

SE1

_SE1

6

SE1 signaling

SE0

_SE0

7

SE0 FS or LS signaling (can be keep-alive for LS)

VBUS_VOLTAGE_CHANGE

_VBUS_VOLTAGE_CHANGE

44(0x2C)

Change of Vbus Voltage

Reset

_RESET

48(0x30)

Reset signaling

in.BusCondDuration: Duration of the Bus Condition event in nanoseconds.

USB2 Packet-Specific Set of Members

Note: Valid for USB2 packets only, undefined for other events.

The following input context members apply to most USB2 packets:

in.Pid: Packet Identifier value for the packet. It is the full PID value, the following constants are defined in the VS_constants.inc include file and can be used by scripts:

# USB 2.0 PID values

const PID_OUT = 0x87;

const PID_IN = 0x96;

const PID_SOF = 0xA5;

const PID_SETUP = 0xB4;

const PID_DATA0 = 0xC3;

const PID_DATA1 = 0xD2;

const PID_DATA2 = 0xE1;

const PID_MDATA = 0xF0;

const PID_ACK = 0x4B;

const PID_NAK = 0x5A;

const PID_STALL = 0x78;

const PID_NYET = 0x69;

const PID_PRE = 0x3C;

const PID_ERR = 0x3C;

const PID_SPLIT = 0x1E;

const PID_PING = 0x2D;

const PID_EXT = 0x0F;

in.SubPidPacket: If non-zero, signals that this packet is a protocol extension token as defined by the Link Power Management ECN. In this case the Pid value should be treated as the SubPid (only LPM currently defined).

in.CRC5: CRC5 value for packets (not relevant for Data packets).

USB2 Token Packet Members

in.Addr: Value of the Address (ADDR) field of the Token packet.

in.Endp: Value of the Endpoint (ENDP) field of the Token packet.

USB2 Start Of Frame Packet Members

in.FrmNum: Frame number for the current USB2 frame.

in.MicroFrmNum: Microframe number for the current microframe as determined by the Analyzer (would be zero for Full Speed frames).

USB2 Data Packet Members

in.Payload: Bit source of the packet payload.

Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits() function.

in.PayloadLength: Length (in bytes) of the packet payload.

in.CRC16: CRC16 value for the Data packet.

USB2 Split Token Packet Members

in.HubAddr: Hub Address. The USB device address of the hub supporting the specified full-/low-speed device for this full-/low-speed transaction.

in.SC: Start/Complete bit value for the split token.

in.Port: Port field. The port number of the target hub the full-/low-speed transaction is destined for.

in.S: Speed bit value for the split token.

in.E: End bit value for the split token.

in.ET: Endpoint Type field value for the split token.

in.HIRD: Value of the Host Initiated Resume Duration field.

in.bLinkState: Value of the bLinkState field for the LPM extended token.

in.bRemoteWake: Value of the bRemoteWake bit for the LPM extended token.

in.Reserved: Value of the reserved field for the LPM extended token.

USB3 Packet-Specific Set of Members

Note: Valid for USB3 packets only, undefined for other events.

Note: The system does not pass all possible fields of USB3 packets as members of Input Context. If a script needs to use the values of those fields, use the GetHexPktField and GetDecodedPktField functions. See TS1/TS2 Training Sequence Ordered Set Members for examples.

in.LinkWidth:

const LINK_WIDTH_X1 = 0

const LINK_WIDTH_X2 = 1

const LINK_WIDTH_UNKNOWN = 0xFF

in.LaneNumber: Zero-based lane number of the packet. In Bonded mode, lane number of the first symbol.

TSEQ Training Sequence Ordered Set Members

in.Count: Value of TSEQ count, the number of sequential TSEQ sequences sent.

TS1/TS2 Training Sequence Ordered Set Members

in.Count: Value of TS count, the number of sequential TS1 or TS2 sequences sent.

in.LnkFunctionality: Value of the whole Link Functionality (Link Configuration) byte in the training sequence.

in.Reset: Value of the Reset bit in the Link Configuration byte.

in.Rsvd0: Value of reserved bit 1 in the Link Configuration byte.

in.Loopback: Value of the Loopback asserted/deasserted bit in the Link Configuration byte.

in.ScrDisable: Value of the Disable Scrambling bit in the Link Configuration byte.

in.LocalLoopback: Value of the Repeater Local Loopback bit in the Link Configuration byte.

in.RetimerTxCompliance: Value of the Bit-level Re-timer Tx Compliance bit in the Link Configuration byte.

in.Rsvd: Value of reserved bits 6:7 in the Link Configuration byte.

LFPS Packet Members

in.Type: Type of LFPS signaling

in.Duration: Duration of LFPS signaling in nanoseconds

in.DurationSec: Duration of LFPS signaling in second excluding the portion less than 1 second. Should be used together with in.DurationNS. For example returns 3 for duration of 3.845 sec.

in.DurationNS: Duration of LFPS signaling in nanoseconds excluding the portion greater than or equal 1 second. Should be used together with in.DurationSec. For example returns 845000000 for duration of 3.845 sec.

in.PatternType: Type of the pattern that LFPS belongs to. Possible values:

const _NO_PATTERN          = 0x00;

const _SCD1                       = 0x01;

const _SCD2                       = 0x02;

const _PHY_CAP_5             = 0x03;

const _PHY_CAP_10           = 0x04;

const _PHY_READY            = 0x05;

in.StartsPattern: This flag is set when the this packet is first in the pattern it belongs to.

Electrical Idle Packet Members

in.Duration: Duration of Electrical Idle signaling in nanoseconds

in.DurationSec: Duration of Electrical Idle signaling in second excluding the portion less than 1 second. Should be used together with in.DurationNS. For example returns 3 for duration of 3.845 sec.

in.DurationNS: Duration of Electrical Idle signaling in nanoseconds excluding the portion greater than or equal 1 second. Should be used together with in.DurationSec. For example returns 845000000 for duration of 3.845 sec.

in.PatternType: Type of the pattern that Electrical Idle belongs to. Possible values:

const _NO_PATTERN         = 0x00;

const _SCD1                       = 0x01;

const _SCD2                      = 0x02;

const _PHY_CAP_5            = 0x03;

const _PHY_CAP_10           = 0x04;

const _PHY_READY           = 0x05;

in.StartsPattern: This flag is set when the packet is first in the pattern it belongs to.

Inter-Packet Symbols Packet Members

in.NumOfSymbols: Number of symbols in the IPS sequence.

in.LnkCmd: Index of the Link Command type (constants are defined in VS_constants.inc)

in.LinkCmdInfo: Value of the Link Command Information field for the Link Command Word

in.CRC5: Value of CRC5 for the Link Command Word

in.LinkCmdInfo_2: Value of the Link Command Information field for the replica of the Link Command Word

in.CRC5_2: Value of CRC5 for the replica of the Link Command Word

SKIP Packet Members

in.Count: Count of symbols in the SKIP sequence

Logical Idle Packet Members

in.Count: Count of symbols in the Logical Idle sequence.

in.SubType: SubType value for LMP. Use constant definitions from VS_constants.inc.

Isochronous Timestamp Packet Members

in.BusICounter: Bus Interval Counter value for ITP, in 1/8 of a millisecond.

in.Delta: Time Delta value for ITP.

in.BusIAdjCtrl: Bus Interval Adjustment Control value for ITP, specifying the device in control of bus interval adjustment.

Transaction Packet Members

in.SubType: SubType value for Transaction Packet. Use constant definitions from VS_constants.inc.

in.Addr: Address of the device that receives this Transaction Packet.

in.Endp: Endpoint number on the device that receives this Transaction Packet.

in.Dir: Direction for the specified Endpoint.

in.StreamID: Value of the StreamID field.

Data Packet Members

in.Addr: Address of the device that is the recipient of this Data Packet.

in.Endp: Endpoint number on the device which is the recipient of this Data Packet.

in.Dir: Direction for the specified Endpoint.

in.StreamID: Value of the StreamID field.

in.SeqN: Value of the Sequence Number for this Data Packet.

in.DataLength: Length of the payload for this Data Packet.

in.PayloadLength: Length of the payload actually recorded for this Data Packet.

in.Payload: Bit source of the packet payload for this Data Packet.

Note: Extract necessary information using GetNBits(), NextNBits(), or PeekNBits().

in.CRC32: Value of CRC32 protecting the payload for this Data Packet.

Note: In USB Protocol Suite software versions earlier than 3.71 (namely, 3.60 and 3.70), Data Packet Header and Data Packet Payload were two separate packet types with input context members split accordingly between them. Those were combined into a single Data Packet starting with version 3.71.

Getting Values of the Fields not Present in Input Context

As mentioned earlier, not all the possible fields of USB3 packets are passed as members of Input Context. The following are examples of using GetHexPktField and GetDecodedPktField functions to get values of the fields not present in the Input Context.

If( in.TraceEvent == _USB3_LMP_PKT )
{
  # Example of using decoded packet information for LMPs.
 
  # ‘SubType’ field,
  # String value
  str = FormatEx("\tSubType(str) = ‘%s’", GetDecodedPktField("SubType"));
  ReportText( str );
 
  # Hex Value
  val = GetHexPktField ( "SubType" );
  str = FormatEx( "\tSubType(hex) = 0x%X\n", val );
  ReportText( str );
 
  # ‘Hseq’ field
  # String value
  str = FormatEx( "\tHseq(str) = ‘%s’", GetDecodedPktField ( "Hseq" ) );
  ReportText( str );
 
  # Hex Value
  val = GetHexPktField ( "Hseq" );
  str = FormatEx( "\tHseq(hex) = 0x%X\n", val );
  ReportText( str );
}
 
if( ( in.TraceEvent == _USB3_TP_PKT ) && ( in.SubType == TP_ACK ) )
{
  # Example of using decoded packet information for TPs.
 
  # ‘SeqN’ field
  # String value
  str = FormatEx( "\tSeqN(str) = ‘%s’", GetDecodedPktField ( "SeqN" ) );
  ReportText( str );
 
  # Hex Value
  val = GetHexPktField ( "SeqN" );
  str = FormatEx( "\tSeqN(hex) = 0x%X\n", val );
  ReportText( str );
 
  # ‘NumP’ field
  # String value
  str = FormatEx( "\tNumP(str) = ‘%s’", GetDecodedPktField ( "NumP" ) );
  ReportText( str );
 
  # Hex Value
  val = GetHexPktField ( "NumP" );
  str = FormatEx( "\tNumP(hex) = 0x%X\n", val );
  ReportText( str );
}
 
if( in.TraceEvent == _USB3_DP_PKT )
{
  # Example of using decoded packet information for DPs.
 
  # ‘SeqN’ field
  # String value
  str = FormatEx( "\tSeqN(str) = ‘%s’", GetDecodedPktField ( "SeqN" ) );
  ReportText( str );
  
  # Hex Value
  val = ( "SeqN" );
  str = FormatEx( "\tSeqN(hex) = 0x%X\n", val );
  ReportText( str );
 
  # ‘ENDP’ field
  # String value
  str = FormatEx( "\tENDP(str) = ‘%s’", GetDecodedPktField ( "ENDP" ) );
  ReportText( str );
 
  # Hex Value
  val = ( "ENDP" );
  str = FormatEx( "\tENDP(hex) = 0x%X\n", val );
  ReportText( str );
}

# Link Control Word
if( ( in.TraceEvent == _USB3_TP_PKT ) || 
  ( in.TraceEvent == _USB3_DP_PKT ) )
{
  ReportText( "LCW:" );
  val = GetHexPktField ( "Hseq" );
  str = FormatEx( "\tHseq = %d", val );
  ReportText( str );

  val = GetHexPktField ( "Hdepth" );
  str = FormatEx( "\tHDepth = %d", val );
  ReportText( str );

  val = GetHexPktField ( "D1" );
  str = FormatEx( "\tDelayed (D1) = %d", val );
  ReportText( str );

  val = GetHexPktField ( "D2" );
  str = FormatEx( "\tDeferred (D2) = %d\n", val );
  ReportText( str );
}

USB4 Sideband Packet-Specific Set of Members

Note: Valid for USB4 SB packets only, undefined for other events.

in.PacketPortRole: Value of the PacketPortRole of the Token Packet’s Header. Value in.PacketPortRole: 1 means Host, 2 means Device.

USB4 SB LT Command Members

in.LSESymbol: Value of the LSESymbol field of the Token command.

in.ELT: Value of the ELT field of the Token command.

in.Rsvd: Value of the Reserved field of the Token command.

in.LSELane: Value of the LSELane field of the Token command.

in.StartLT: Value of the StartLT field of the Token command.

USB4 SB ELT Command Members

in.Rsvd: Value of the Reserved field of the Token command.

in.ELT: Value of the ELT field of the Token command.

in.ELTtype: Value of the ELTtype field of the Token command.

in.StartLT: Value of the StartLT field of the Token command.

USB4 SB AT Command Members

in.CmdNotResp: Value of the CmdNotResp field of the Token command.

in.ReturnBounce: Value of the ReturnBounce field of the Token command.

in.Recipient: Value of the Recipient field of the Token command.

in.Bounce: Value of the Bounce field of the Token command.

in.Responder: Value of the Responder field of the Token command.

in.Rsvd: Value of the Reserved field of the Token command.

in.StartAT: Value of the StartAT field of the Token command.

in.REG: Value of the Register field of the Token command.

in.LEN: Value of the Data Len field of the Token command.

in.WnR: Value of the READ/WRITE field of the Token command.

in.RegisterDataLen: Size of array in.RegisterData of the Token command

in.RegisterData: Array that contains register data of the Token command. If in.RegisterDataLen = 0, then the Token command has no register data.

Note: SB AT Command may contain AT/RT register members, depending on the value of in.REG member.

USB4 SB RT Command Members

in.CmdNotResp: Value of the CmdNotResp field of the Token command.

in.RTIndex: Value of the Index field of the Token command.

in.Broadcast: Value of the Broadcast field of the Token command.

in.StartRT: Value of the StartRT field of the Token command.

in.REG: Value of the Register field of the Token command. Valid for Addressed commands only.

in.LEN: Value of the Data Len field of the Token command. Valid for Addressed commands only.

in.WnR: Value of the READ/WRITE field of the Token command. Valid for Addressed commands only.

in.RegisterDataLen: Size of array in.RegisterData of the Token command. Valid for Addressed commands only.

in.RegisterData: Array that contains register data of the Token command. If in.RegisterDataLen = 0, then the Token command has no register data. Valid for Addressed commands only.

in.SelectedGen: Value of the SelectedGen field of the Token command. Valid for Broadcast commands only.

in.Enable3Tx: Value of the Enable3Tx field. Valid for Broadcast commands only.

in.Enable3Rx: Value of the Enable3Rx field. Valid for Broadcast commands only.

in.Lane1: Value of the Lane1Enabled field of the Token command. Valid for Broadcast commands only.

in.Lane0: Value of the Lane0Enabled field of the Token command. Valid for Broadcast commands only.

in.Speed: Value of the TBT3-CompatibleSpeed field of the Token command. Valid for Broadcast commands only.

in.SSCAlwaysOn: Value of the SSCAlwaysOn field of the Token command. Valid for Broadcast commands only.

in.RS_FEC: Value of the RS_FEC field of the Token command. Valid for Broadcast commands only.

in.USB4: Value of the USB4 field of the Token command. Valid for Broadcast commands only.

Note: The SB RT Command can contain AT/RT register members, depending on the value of in.REG member.

USB4 SB AT/RT VendorID Register Members

Note: These members are available only for SB AT/RT Commands that have register data and in.REG = 0x0.

in.VendorIDLow

in.VendorIDHigh

in.VendorIDRsvd1

in.VendorIDRsvd2

USB4 SB AT/RT DeviceID Register Members

Note: These members are available only for SB AT/RT Commands that have register data and in.REG = 0x1.

in.DeviceIDLow

in.DeviceIDHigh

in.DeviceIDRsvd1

in.DeviceIDRsvd2

USB4 SB AT/RT USB4Version Register Members

Note: These members are available only for SB AT/RT Commands that have register data and in.REG = 0x2 and GetUsb4LegacyTBT3Protocol() returns true.

in.USB4Version

in.USB4VersionRsvd1

in.USB4VersionRsvd2

in.USB4VersionRsvd3

USB4 SB AT/RT LRDTuning Register Members

Note: These members are available only for SB AT/RT Commands that have register data and in.REG = 0x7 and GetUsb4LegacyTBT3Protocol() returns false.

in.LRDTuningRespReq

in.LRDTuningData0

in.LRDTuningData1

in.LRDTuningData2

in.LRDTuningData3

USB4 SB AT/RT LinkConfiguration Register Members

Note: These members are available only for SB AT/RT Commands that have register data and in.REG = 0xC.

in.LinkCfgLane0Enabled

in.LinkCfgLane1Enabled

im.LinkCfgAsymmetricTx

im.LinkCfgAsymmetricRx

in.LinkCfgRsvd1

in.LinkCfgLane0ReqEnabled

in.LinkCfgLane1ReqEnabled

in.LinkCfgRsvd2

in.LinkCfgBonding

in.LinkCfgGen3

in.LinkCfgRS_FEC_GEN_2

in.LinkCfgRS_FEC_GEN_3

in.LinkCfgRevision1

in.LinkCfgLegacySpeed

in.LinkCfgGen4Support

in.LinkCfgAsymSupportTx

in.LinkCfgAsymSupportRx

in.LinkCfgAsymReqTx

in.LinkCfgAsymReqRx

in.LinkCfgRsvd3

USB4 SB AT/RT SBChannelVersion Register Members

Note: These members are available only for SB AT/RT Commands that have register data and in.REG = 0xF.

in.SBChVersionSubVersion

in.SBChVersionMinorVersion

in.SBChVersionMajorVersionLSB

in.SBChVersionMajorVersionMSB

USB4 SB AT/RT TxFFE Register Members

The following members are common for TxFFE register of non-retimer format and retimer format:

in.Lane0Req, in.Lane0RxLocked, in.Lane0RxActive, in.Lane0ClockSwitchDone, in.Lane0NewReq

in.Lane1Req, in.Lane1RxLocked, in.Lane1RxActive, in.Lane1ClockSwitchDone, in.Lane1NewReq

in.Lane0Setting, in.Lane0ReqDone, in.Lane0TxActive

in.Lane1Setting, in.Lane1ReqDone, in.Lane1TxActive

Members of TxFFE register of non-retimer format:

in.Rsvd1, in.Rsvd2

Members of TxFFE register of retimer format:

in.Lane0FwdSwitchDone, in.RetimerRsvd1

in.Lane1FwdSwitchDone, in.RetimerRsvd2

Members of TxFFE register of additional retimer data:

in.Lane0Req, in.Byte4Rsvd1, in.Lane0RxActive, in.Byte4Rsvd2, in.Lane0NewReq

in.Lane1Req, in.Byte5Rsvd1, in.Lane1RxActive, in.Byte5Rsvd2, in.Lane1NewReq

in.Lane0Setting, in.Byte6Rsvd, in.Lane0TxActive

in.Lane1Setting, in.Byte7Rsvd, in.Lane1TxActive

USB4 SB AT/RT TxFFEGen4 Register Members

in.LinkType: Returns the link type associated with the packet.

Link Type

Description

_USB4_LINK_TYPE_SYMMETRIC

Both link partners operate with two transmitters.

_USB4_LINK_TYPE_ASYMMETRIC_3TX

Packet originates from the 3 Tx side and targets the register mappings of the 3 Rx side.

_USB4_LINK_TYPE_ASYMMETRIC_3RX

Packet originates from the 3 Rx side and targets the register mappings of the 3 Tx side.

Layout of this register depends on the LinkType.

If LinkType is Symmetric, TxFFEGen4 has the following members:

in.G4TxFFEReqRx0, in.G4TxFFERsvdRx0 in.NewRequestRx0

in.G4TxFFEReqRx1, in.G4TxFFERsvdRx1 in.NewRequestRx1

in.G4TxFFESetTx0, in.ReqDoneTx0, in.StartTxFFETx0

in.G4TxFFESetTx1, in.ReqDoneTx1, in.StartTxFFETx1

If LinkType is Aymmetric3Rx, TxFFEGen4 has the following members:

in.G4TxFFEReqRx0, in.G4TxFFERsvdRx0 in.NewRequestRx0

in.G4TxFFEReqRx1, in.G4TxFFERsvdRx1 in.NewRequestRx1

in.G4TxFFEReqRx2, in.G4TxFFERsvdRx2 in.NewRequestRx2

in.G4TxFFESetTx0, in.ReqDoneTx0, in.StartTxFFETx0

If LinkType is Asymmetric3Tx, TxFFEGen4 has the following members:

in.G4TxFFEReqRx0, in.G4TxFFERsvdRx0 in.NewRequestRx0

in.G4TxFFESetTx0, in.ReqDoneTx0, in.StartTxFFETx0

in.G4TxFFESetTx1, in.ReqDoneTx1, in.StartTxFFETx1

in.G4TxFFESetTx2, in.ReqDoneTx2, in.StartTxFFETx2

USB4 SB IPS Packet Members

in.Packet_Len: Value of the Packet Length field of the Token Packet.

in.Data<N>: Value of the Nth byte of the Token Packet, i.e., in.Data0, in.Data1, etc.

Note: The number of Data members is equal to in.Packet_Len. For example, Packet with in.Packet_Len = 4 has in.Data0, in.Data1, in.Data2, in.Data3.

USB4 High Speed Packet-Specific Set of Members

Note: Valid for USB4 HS packets only, undefined for other events.

Note: Valid for all USB4 HS packets, undefined for other events.

in.LinkWidth: Value of the Link Width of the Token Packet’s Header. Value in.LinkWidth = 0 means x1 width, in.LinkWidth = 1 means x2, in.LinkWidth = 2 means x3.

in.IsBonded: Value of the bonding parameter of the Token Packet’s Header. Value in.IsBonded = 0 means that Lanes are unbonded, in.IsBonded = 1 means that Lanes are bonded.

in.LaneNumber: Value of the Lane Number of the Token Packet’s Header. Value in.LaneNumber = 0 means Lane 0, in.LaneNumber = 1 means Lane 1, in.LaneNumber = 2 means Lane 2.

USB4 HS TLP Packet Header Members

in.Header_HEC: Value of the HEC field of the Token Packet’s Header.

in.Header_Length: Value of the Length field of the Token Packet’s Header.

in.Header_HopID: Value of the HopID field of the Token Packet’s Header.

in.Header_SuppID: Value of the SuppID field of the Token Packet’s Header.

in.Header_PDF: Value of the PDF field of the Token Packet’s Header.

USB4 HS Control Packet Members

Note: Control Packet Members include all members of the USB4 HS TLP Packet Header.

in.RouteStringLow_TopologyID: Value of the least significant 32 bits of the TopologyID field of the Token Control Packet.

in.RouteStringHigh_TopologyID: Value of the most significant 24 bits of the TopologyID field of the Token Control Packet.

in.RouteStringHigh_Rsvd: Value of the Reserved field of the Route String High field of the Token Control Packet.

in.RouteStringHigh_CM: Value of the CM field of the Route String High field of the Token Control Packet.

in.CRC: Value of CRC protecting the payload for the Token Control Packet.

USB4 HS Read/Write Packet Members

Note: Read/Write Packet Members include all members of the USB4 HS Control Packet.

in.Address: Value of the Address field of the Token Packet.

in.DataSize: Value of the DataSize field of the Token Packet.

in.AdapterNum: Value of the AdapterNum field of the Token Packet.

in.CS: Value of the CS field of the Token Packet.

in.SN: Value of the SN field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

USB4 HS Read Response/Write Request Packet Members

Note: Read Response/Write Request Packet Members include all members of the USB4 HS Read/Write Packet Members.

in.Data<N>: Value of the Nth byte of Data field of the Token Packet, i.e., in.Data0, in.Data1, etc.

Note: Number of Data-members is equal to in.DataSize * 4 (Number of bytes in DW). For example, Packet with in.DataSize = 1 has in.Data0, in.Data1, in.Data2, in.Data3.

The byte numbers reflect their position within Transport Layer data structures and not the byte order as transmitted (seen in Figure 4-20 of the USB4 specification). For example, in.Data0 represents DWORD 0 bits 7:0.

USB4 HS Power Management Packet Members

in.CLxState: Value of the CLx State field of the Power Management Packet Payload.

USB4 HS SLOS1/SLOS2 Packet Members

in.DataSize: Value of the DataSize field of the Token Packet.

in.Data: Array of bytes representing packet data:

(in.Data[0],

in.Data[1],

…,

in.Data[in.DataSize -1])

in.Rsvd1: Value of the Rsvd1 field of the Token Packet.

in.SN: Value of the SN field of the Token Packet.

in.Rsvd2: Value of the Rsvd2 field of the Token Packet.

USB4 HS Ordered Sets Members

Note: This category belongs to Ordered Sets including: CL1_REQ, CL2_REQ, CL1_ACK, CL2_ACK, CL0s_ACK, CL_NACK, CL_OFF, TSN, DESKEW, SKIP.

in.IsScrambled: Boolean. Indicates whether or not the Ordered Set contents are scrambled.

in.DataSize: Size of packet data in bytes

in.Data: Array of bytes representing packet data:

(in.Data[0],

in.Data[1],

…,

in.Data[in. DataSize -1])

USB4 HS CL_WAKE1/CL_WAKE2 Packet Members

in.RetimerIndex: Value of the RetimerIndex field of the Token Packet.

in.DataSize: Size of the Data field in bytes of the Token Packet.

in.Data<N>: Value of the Nth byte of Data field of the Token Packet, i.e., in.Data0, in.Data1, etc.

Note: The number of Data members is equal to in.DataSize. For example, Packet with in.DataSize = 4 has in.Data0, in.Data1, in.Data2, in.Data3.

The byte numbers reflect their position within Transport Layer data structures and not the byte order as transmitted (seen in Figure 4-20 of the USB4 specification). For example, in.Data0 represents DWORD 0 bits 7:0.

USB4 HS CL_WAKE1-2 Packet Members

in.DataSize: Size of the Data field in bytes of the Token Packet.

in.Data<N>: Value of the Nth byte of Data field of the Token Packet, i.e., in.Data0, in.Data1, etc.

Note: The number of Data members is equal to in.DataSize. For example, Packet with in.DataSize = 4 has in.Data0, in.Data1, in.Data2, in.Data3.

The byte numbers reflect their position within Transport Layer data structures and not the byte order as transmitted (seen in Figure 4-20 of the USB4 specification). For example, in.Data0 represents DWORD 0 bits 7:0.

in.CLWake1RetimerIndexes: List of CL_WAKE1 Retimer Indexes. in.CLWake1RetimerIndexes[N] – Nth CL_WAKE1 Retimer Index (in.CLWake1RetimerIndexes[0], in.CLWake1RetimerIndexes[1], …, in.CLWake1RetimerIndexes[in.CLWake1RetimerIndexesSize-1]).

in.CLWake1RetimerIndexesSize: Number of the CL_WAKE1 Retimer Indexes.

in.CLWake2RetimerIndexes: List of CL_WAKE1 Retimer Indexes. in.CLWake2RetimerIndexes[N] – Nth CL_WAKE2 Retimer Index (in.CLWake2RetimerIndexes[0], in.CLWake2RetimerIndexes[1], …, in.CLWake2RetimerIndexes[in.CLWake2RetimerIndexesSize-1]).

in.CLWake2RetimerIndexesSize: Number of the CL_WAKE2 Retimer Indexes.

USB4 HS TS1/TS2 Packet Members

in.TSID: Value of the TSID field of the Token Packet.

in.Rsvd0: Value of the Rsvd0 field of the Token Packet.

in.LBT2: Value of the LBT2 field of the Token Packet.

in.Rsvd1: Value of the Rsvd1 field of the Token Packet.

in.Rsvd2: Value of the Rsvd2 field of the Token Packet.

in.TSLaneNumber: Value of the Lane Number field of the Token Packet.

in.LBT: Value of the LBT field of the Token Packet.

in.Rsvd3: Value of the Rsvd3 field of the Token Packet.

in.DataSize: Size of packet data in bytes

in.Data: Array of bytes representing packet data:

(in.Data[0],

in.Data[1],

…,

in.Data[in. DataSize -1]).

USB4 HS LFPS Packet Members

in.State: Value of the State field of the Token Packet.

USB4 HS Follow-Up Packet Members

Note: Follow-Up Packet Members include all members of the USB4 HS TLP Packet Header.

in.RequestTSLo: Value of the least significant 32 bits of the RequestTS field of the Token Packet.

in.RequestTSMid: Value from the 32nd to 63rd bits of the RequestTS field of the Token Packet.

in.RequestTSHi: Value of the most significant 16 bits of the RequestTS field of the Token Packet.

in.ResponseTSLo: Value of the least significant 32 bits of the ResponseTS field of the Token Packet.

in.ResponseTSMid: Value from the 32nd to 63rd bits of the ResponseTS field of the Token Packet.

in.ResponseTSHi: Value of the most significant 16 bits of the ResponseTS field of the Token Packet.

in.TimeOffsetFromHRLo: Value of the least significant 32 bits of the TimeOffsetFromHR field of the Token Packet.

in.TimeOffsetFromHRHi: Value of the most significant 32 bits of the TimeOffsetFromHR field of the Token Packet.

in.FreqOffsetFromHR: Value of the FreqOffsetFromHR field of the Token Packet.

in.SleepCyclesN: Value of the SleepCyclesN field of the Token Packet.

in.S2U: Value of the S2U field of the Token Packet.

in.IDTimeStampLo: Value of the least significant 32 bits of the IDTimeStamp field of the Token Packet.

in.IDTimeStampMid: Value from the 32nd to 63rd bits of the IDTimeStamp field of the Token Packet.

in.IDTimeStampHi: Value of the most significant 16 bits of the IDTimeStamp field of the Token Packet.

in.TimeOffsetFromInterDomainHRLo: Value of the least significant 32 bits of the TimeOffsetFromInterDomainHR field of the Token Packet.

in.TimeOffsetFromInterDomainHRHi: Value of the most significant 32 bits of the TimeOffsetFromInterDomainHR field of the Token Packet.

in.FreqOffsetFromInterDomainHR: Value of the FreqOffsetFromInterDomainHR field of the Token Packet.

in.CRC32: Value of CRC32 protecting the payload for the Token Packet.

USB4 HS Inter-Domain Time Stamp Packet Members

Note: Inter-Domain Time Stamp Packet Members include all members of the USB4 HS TLP Packet Header.

in.Rsvd: Value of the Reserved field of the Token Packet.

in.IDTimeStampLo: Value of the least significant 32 bits of the IDTimeStamp field of the Token Packet.

in.IDTimeStampMid: Value from the 32nd to 63rd bits of the IDTimeStamp field of the Token Packet.

in.IDTimeStampHi: Value of the most significant 16 bits of the IDTimeStamp field of the Token Packet.

in.TimeOffsetFromInterDomainGMLo: Value of the least significant 32 bits of the TimeOffsetFromInterDomainGM field of the Token Packet.

in.TimeOffsetFromInterDomainGMHi: Value of the most significant 32 bits of the TimeOffsetFromInterDomainGM field of the Token Packet.

in.FreqOffsetFromInterDomainGM: Value of the FreqOffsetFromInterDomainGM field of the Token Packet.

in.CRC32: Value of CRC32 protecting the payload for the Token Packet.

USB4 HS Credit Grant Packet Members

Note: Credit Grant Packet Members include all members of the USB4 HS TLP Packet Header.

in.Records_Number: Value of the RecordCount field of the Token Packet.

Note: All members of Credit Grant Packet below are indexed. Index is indicated by suffix <N> and depends on the Record number starting from 0. For example, in.ECC<N> means that the Packet has Members in.ECC0, in.ECC1, etc.

in.ECC<N>: Value of the ECC field of the Nth Record of the Token Packet.

in.Credits<N>: Value of the Credits field of the Nth Record of the Token Packet.

in.CreditHopID<N>: Value of the CreditHopID field of the Nth Record of the Token Packet.

in.Rsvd<N>: Value of the Reserved field of the Nth Record of the Token Packet.

in.LFlag<N>: Value of the L Flag field of the Nth Record of the Token Packet.

USB4 HS Path Credit Sync Packet Members

Note: Path Credit Sync Packet Members include all members of the USB4 HS TLP Packet Header.

in.ECC: Value of the ECC field of the Token Packet.

in.PCC: Value of the PCC field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

USB4 HS Shared Buffers Credit Sync Packet Members

Note: Shared Buffers Credit Sync Packet Members include all members of the USB4 HS TLP Packet Header.

in.ECC: Value of the ECC field of the Token Packet.

in.SCC: Value of the SCC field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

USB4 HS Notification Packet Members

Note: Notification Packet Members include all members of the USB4 HS Control Packet.

in.EventCode: Value of the EventCode field of the Token Packet.

in.AdapterNum: Value of the AdapterNum field of the Token Packet. The field is left for compatibility.

in.EventInfo: Value of the EventInfo field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

in.PG: Value of the PG field of the Token Packet.

Note: The following fields are possible if in.EventCode is equal to 36 (DP_CON_CHANGE event)

in.ConnectorNum: Value of the ConnectorNum sub-field of the EventInfo field of the Token Packet.

in.IRQ_HPD: Value of the IRQ_HPD sub-field of the EventInfo field of the Token Packet.

in.PlugUnplug: Value of the PlugUnplug sub-field of the EventInfo field of the Token Packet.

USB4 HS Notification Acknowledgement Packet Members

Note: Notification Acknowledgement Packet Members include all members of the USB4 HS Control Packet.

USB4 HS Hot Plug Event Packet Members

Note: Hot Plug Event Packet Members include all members of the USB4 HS Control Packet.

in.AdapterNum: Value of the AdapterNum field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

in.UPG: Value of the UPG field of the Token Packet.

USB4 HS Tunneled Packet Members

Note: Tunneled Packet Members include all members of the USB4 HS TLP Packet Header.

in.TunneledData: Bit source of the packet’s tunneled payload.

Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits() function.

in.TunneledDataLen: Length (in bytes) of the packet’s tunneled payload.

in.Data<N>: Value of the Nth byte of Data field of the Token Packet, i.e., in.Data0, in.Data1, etc.

Note: Number of Data-members is equal to in.Header_Length. For example, Packet with in.Header_Length = 4 has in.Data0, in.Data1, in.Data2, in.Data3.

The byte numbers reflect their position within Transport Layer data structures and not the byte order as transmitted (seen in Figure 4-20 of the USB4 specification). For example, in.Data0 represents DWORD 0 bits 7:0.

USB4 HS E2E Credit Grant Packet Members

Note: E2E Credit Grant Packet Members include all members of the USB4 HS TLP Packet Header.

in.ECC: Value of the ECC field of the Token Packet.

in.Credits: Value of the Credits field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

in.CS: Value of the CS field of the Token Packet.

USB4 HS E2E Credit Sync Packet Members

Note: E2E Credit Sync Packet Members include all members of the USB4 HS TLP Packet Header.

in.ECC: Value of the ECC field of the Token Packet.

in.Credits: Value of the Credits field of the Token Packet.

in.Rsvd: Value of the Reserved field of the Token Packet.

in.CS: Value of the CS field of the Token Packet.

USB4 HS IPS/USS/START_RS_FEC Packet Members

in.Packet_Len: Value of the Packet Length field of the Token Packet.

in.Data<N>: Value of the Nth byte of the Token Packet, i.e., in.Data0, in.Data1, etc.

Note: The number of Data members is equal to in.Packet_Len. For example, Packet with in.Packet_Len = 4 has in.Data0, in.Data1, in.Data2, in.Data3.

The byte numbers reflect their position within Transport Layer data structures and not the byte order as transmitted (seen in Figure 4-20 of the USB4 specification). For example, in.Data0 represents DWORD 0 bits 7:0.

USB4 HS Filtered Packet Members

Note: Gen2/3 packets only.

in.Type: Value of the origin packet type of the Token Packet.

in.Count: Value of the OS Count of the Token Packet.

USB4 Gen 4 Training Sequences Members

Note: Gen 4 Training Sequences: TS1, TS2, TS3, TS4.

in.Cursor: Value of the Cursor field of the Token Packet.

in.Indication: Value of the Indication field of the Token Packet.

in.IndicationComplement: Value of the Indication Complement field of the Token Packet.

in.Counter: Value of the Counter field of the Token Packet.

in.CounterComplement: Value of the Counter Complement field of the Token Packet.

in.PacketCount: Partial Filter Count for partially filtered packets; otherwise, 1.

Note: TS2.clksw does not have a specific member other than in.PacketCount.

USB4 Gen 4 Ordered Sets Members

Note: Gen 4 Ordered Sets: DESKEW, TSNOS, IGNORE, UNBOND, CL0s_EXIT, CL_OFF.

USB4 Gen 4 DESKEW Packet Members

in.DeskewIndex: Value of the Index field of the Token Packet.

USB4 Gen 4 TSNOS Packet Members

in.SymbolsDelay: Value of the Symbols Delay field of the Token Packet.

USB4 Gen 4 CL0s_EXIT Packet Members

in.CL0sPhase: Value of the CL0sPhase of the Token Packet.

USB4 Gen 4 CL_OFF Packet Members

in.CLOffIndex: Value of the Index field of the Token Packet.

in.CLState: Value of the CLState field of the Token Packet.

USB4 HS Inter-Domain Packet-Specific Set of Members

Note: Valid for USB4 HS Inter-Domain packets only, undefined for other events.

USB4 HS Inter-Domain Request/Response Packet Members

Note: Inter-Domain Request/Response Packet Members include all members of the USB4 HS Control Packet, USB4 HS Inter-Domain Packet Header, and USB4 HS Inter-Domain Packet Payload.

in.DataSize: Value of the DataSize field of the Token Packet.

in.Rsvd1: Value of the Rsvd1 field of the Token Packet.

in.SN: Value of the SN field of the Token Packet.

in.Rsvd2: Value of the Rsvd2 field of the Token Packet.

in.IDPProtocolType: Inter-Domain protocol type of the Token Packet. Available values shown below:

Packet type

Description

_USB4_HS_IDP_DISCOVERY

Inter-Domain Discovery

_USB4_HS_IDP_USB4NET

Inter-Domain USB4NET

USB4 HS Inter-Domain Discovery Packet Members

in.ProtocolUUID<N>: Value of the Nth DWORD of Inter-Domain Discovery Protocol UUID field of the Token Packet’s IDP Header, i.e., in.ProtocolUUID0, in.ProtocolUUID1, etc.

in.IDPPacketType: Value of the Inter-Domain Discovery packet type of the Token Packet. Available values show below:

Packet type

Description

_USB4_HS_IDP_UUID_REQUEST

UUID Request

_USB4_HS_IDP_UUID_RESPONSE

UUID Response

_USB4_HS_IDP_PROPERTIES_READ_REQUEST

Properties Read Request

_USB4_HS_IDP_PROPERTIES_READ_RESPONSE

Properties Read Response

_USB4_HS_IDP_PROPERTIES_CHANGED_NOTIFICATION

Properties Changed Notification

_USB4_HS_IDP_PROPERTIES_CHANGED_RESPONSE

Properties Changed Response

_USB4_HS_IDP_ERROR_RESPONSE

Error Response

_USB4_HS_IDP_LINK_STATE_STATUS_REQUEST

Link State Status Request

_USB4_HS_IDP_LINK_STATE_STATUS_RESPONSE

Link State Status Response

_USB4_HS_IDP_LINK_STATE_CHANGE_REQUEST

Link State Change Request

_USB4_HS_IDP_LINK_STATE_CHANGE_RESPONSE

Link State Change Response

Any other value

Reserved

in.IDPPayloadDataLen: Count of IDP Payload Data bytes of the Token Packet.

in.IDPPayloadData: List of IDP Payload Data bytes. in.IDPPayloadData[N] – Nth IDP Payload Data byte of the Token Packet.

(in.IDPPayloadData[0],

in.IDPPayloadData[1],

…,

in.IDPPayloadData[in.IDPPayloadDataLen-1]).

Note: in.IDPPayloadData provides access to packet data after Inter-Domain Discovery Header data.

USB4 HS Inter-Domain Discovery UUID Request Packet Members

Note: Inter-Domain UUID Request Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

USB4 HS Inter-Domain Discovery UUID Response Packet Members

Note: Inter-Domain UUID Response Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.SourceUUID<N>: Value of the Nth DWORD of Source UUID field of the Token Packet, i.e., in.SourceUUID0, in.SourceUUID1, etc.

in.HasSourceRoute: Indicates whether the Token Packet has Source Route field.

in.SourceRoute<N>: Value of the Nth DWORD of Source Route field of the Token Packet, i.e., in.SourceRoute0, in.SourceRoute1.

USB4 HS Inter-Domain Discovery Properties Read Request Packet Members

Note: Inter-Domain Properties Read Request Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.SourceUUID<N>: Value of the Nth DWORD of Source UUID field of the Token Packet, i.e.,

in.SourceUUID0, in.SourceUUID1, etc.

in.DestinationUUID<N>: Value of the Nth DWORD of Destination UUID field of the Token Packet, i.e., in.DestinationUUID0, in.DestinationUUID1, etc.

in.Offset: Value of the Offset field of the Token Packet.

in.Rsvd3: Value of the Rsvd3 field of the Token Packet.

USB4 HS Inter-Domain Discovery Properties Read Response Packet Members

Note: Inter-Domain Properties Read Response Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.SourceUUID<N>: Value of the Nth DWORD of Source UUID field of the Token Packet, i.e., in.SourceUUID0, in.SourceUUID1, etc.

in.DestinationUUID<N>: Value of the Nth DWORD of Destination UUID field of the Token Packet, i.e., in.DestinationUUID0, in.DestinationUUID1, etc.

in.Offset: Value of the Offset field of the Token Packet.

in.PropertiesBlockSize: Value of the Properties Block Size field of the Token Packet.

in.PropertiesBlockGeneration: Value of the Properties Block Generation field of the Token Packet.

in.PropertiesBlockDataLen: Count of Properties Block Data bytes of the Token Packet.

in.PropertiesBlockData: List of Properties Block Data bytes. in.PropertiesBlockData[N] – Nth Properties Block Data byte of the Token Packet.

(in.PropertiesBlockData[0],

in.PropertiesBlockData[1],

…,

in.PropertiesBlockData[in.PropertiesBlockDataLen-1]).

USB4 HS Inter-Domain Discovery Properties Changed Notification Packet Members

Note: Inter-Domain Properties Changed Notification Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.SourceUUID<N>: Value of the Nth DWORD of Source UUID field of the Token Packet, i.e., in.SourceUUID0, in.SourceUUID1, etc.

USB4 HS Inter-Domain Discovery Error Response Packet Members

Note: Inter-Domain Error Response Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.ErrorResponse: Value of the Error Response field of the Token Packet.

Note: Inter-Domain Link State Status Request Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

Note: Inter-Domain Link State Status Response Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.Status: Value of the Status field of the Token Packet.

in.SLW: Value of the SLW field of the Token Packet.

in.TLW: Value of the TLW field of the Token Packet.

in.SLS: Value of the SLS field of the Token Packet.

in.TLS: Value of the TLS field of the Token Packet.

Note: Inter-Domain Link State Change Request Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.TLW: Value of the TLW field of the Token Packet.

in.TLS: Value of the TLS field of the Token Packet.

in.Rsvd3: Value of the Rsvd3 field of the Token Packet.

Note: Inter-Domain Link State Change Response Packet Members include all members of the USB4 HS Inter-Domain Discovery Packet.

in.Status: Value of the Status field of the Token Packet.

USB4 HS Inter-Domain USB4NET Packet Members

in.ProtocolUUID<N>: Value of the Nth DWORD of Inter-Domain USB4NET Protocol UUID field of the Token Packet’s IDP Header, i.e., in.ProtocolUUID0, in.ProtocolUUID1, etc.

in.RequestorUUID<N>: Value of the Nth DWORD of Inter-Domain USB4NET Requestor UUID field of the Token Packet’s IDP Header, i.e., in.RequestorUUID0, in.RequestorUUID1, etc.

in.ResponderUUID<N>: Value of the Nth DWORD of Inter-Domain USB4NET Responder UUID field of the Token Packet’s IDP Header, i.e., in.ResponderUUID0, in.ResponderUUID1, etc.

in.RequestID: Value of RequestID field of the Token Packet.

in.IDPPacketType: Value of the Inter-Domain USB4NET packet type of the Token Packet. Possible values shown below:

Packet type

Description

_USB4_HS_IDP_LOGIN_REQUEST

Login Request

_USB4_HS_IDP_LOGIN_RESPONSE

Login Response

_USB4_HS_IDP_LOGOUT_REQUEST

Logout Request

_USB4_HS_IDP_LOGOUT_RESPONSE

Logout Response

Any other value

Reserved

in.IDPPayloadDataLen: Count of IDP Payload Data bytes of the Token Packet.

in.IDPPayloadData: List of IDP Payload Data bytes. in.IDPPayloadData[N] – Nth IDP Payload Data byte of the Token Packet.

in.IDPPayloadData[0],

in.IDPPayloadData[1],

…,

in.IDPPayloadData[in.IDPPayloadDataLen-1]).

Note: in.IDPPayloadData provides access to packet data after Inter-Domain USB4NET Header data.

USB4 HS Inter-Domain USB4NET Login Request Packet Members

Note: Inter-Domain Login Request Packet Members include all members of the USB4 HS Inter-Domain USB4NET Packet.

in.Usb4NetServiceRevision: Value of the Usb4NetServiceRevision field of the Token Packet.

in.ServiceHopId: Value of the ServiceHopId field of the Token Packet.

in.Rsvd3: Value of the 3rd Reserved field of the Token Packet.

in.Rsvd4: Value of the 4th Reserved field of the Token Packet.

in.Rsvd5: Value of the 5th Reserved field of the Token Packet.

in.Rsvd6: Value of the 6th Reserved field of the Token Packet.

USB4 HS Inter-Domain USB4NET Login Response Packet Members

Note: Inter-Domain Login Response Packet Members include all members of the USB4 HS Inter-Domain USB4NET Packet.

in.Status: Value of the Status field of the Token Packet.

in.ResponderMACAddressLo: Value of the least significant 32 bits of the ResponderMACAddress field of the Token Packet.

in.ResponderMACAddressHi: Value of the most significant 32 bits of the ResponderMACAddress field of the Token Packet.

in.ResponderMACAddressLength: Value of the ResponderMACAddressLength field of the Token Packet.

in.Rsvd3: Value of the 3rd Reserved field of the Token Packet.

in.Rsvd4: Value of the 4th Reserved field of the Token Packet.

in.Rsvd5: Value of the 5th Reserved field of the Token Packet.

in.Rsvd6: Value of the 6th Reserved field of the Token Packet.

USB4 HS Inter-Domain USB4NET Logout Request Packet Members

Note: Inter-Domain Logout Request Packet Members include all members of the USB4 HS Inter-Domain USB4NET Packet.

USB4 HS Inter-Domain USB4NET Logout Response Packet Members

Note: Inter-Domain Logout Response Packet Members include all members of the USB4 HS Inter-Domain USB4NET Packet.

in.Status: Value of the Status field of the Token Packet.

Note: Valid for USB4 HS Tunneled DP Main Link packets only, undefined for other events.

Note: To get access to given set of members use function SetUsb4TunProtocol().

Note: Tunneled DP Main Link Set of Members include all members of the USB4 HS Tunneled Packet.

in.TunDPLinkWidth: Value of the DP Link Width of the Token Tunneled Packet. Value in.TunDPLinkWidth = 1 means x1 width, in.TunDPLinkWidth = 2 means x2, in.TunDPLinkWidth = 4 means x4. This value depends on the Tunneled Protocol constant passed to SetUsb4TunProtocol() (_USB4_TUN_DP_X1, _USB4_TUN_DP_X2 or _USB4_TUN_DP_X4).

in.TunDPPacketType: Tunneled DP Main Link packet type of the Token Tunneled Packet. Possible values shown below:

Packet type

Description

_USB4_TUN_DP_VIDEO_DATA_PKT

SST Video Data Packet

_USB4_TUN_DP_BLANK_START_PKT

SST Blank Start Packet

_USB4_TUN_DP_MSA_PKT

SST Main Stream Attribute Packet

_USB4_TUN_DP_SDP_PKT

SST Secondary Stream Packet

_USB4_TUN_DP_CLOCK_SYNC_PKT

DP Clock Sync Packet

_USB4_TUN_DP_MULTI_STREAM_PKT

Multi Stream Packet

_USB4_TUN_DP_FEC_DECODE_PKT

FEC Decode Packet

_USB4_TUN_DP_LINKCTRL_ALPM_PKT

DP Link Control ALPM Packet

TU Set Based Packets

Note: This category describes common members for SST Video Data Packet, SST Secondary Stream Packet and Multi Stream Packet.

Note: TU Set Based Packet Members include all members of the Tunneled DP Main Link Packet.

in.TUSetsCount: Count of TU Sets in the Token Packet.

in.TUSet<N>DataLen: Count of Data Symbols of the Nth TU Set in the Token Packet, i.e., in.TUSet0DataLen, in.TUSet1DataLen, etc.

in.TUSet<N>Data: List of Data Symbols of the Nth TU Set in the Token Packet, i.e., in.TUSet0Data, in.TUSet1Data, etc. Number of Data Symbols in in.TUSet<N>Data is equal to in.TUSet<N>DataLen. Supports indexing (i.e., in.TUSet0Data[0] = value of the first Data Symbol in TU Set 0.)

SST Video Data Packet

Note: SST Video Data Packet Members include all members of the TU Set Based Packet.

in.TUSet<N>ECC: ECC field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>VideoCount: Video Count field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>FillCount: Fill Count field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>EOCIndex: EOC Index field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>L: L field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>Rsvd: Reserved field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>EOC: EOC field of TU Header of the Nth TU Set in the Token Packet.

SST Blank Start Packet

Note: SST Blank Start Packet Members include all members of the Tunneled DP Main Link Packet.

in.ECC: ECC field of the Blank Start Header of the Token Packet.

in.FillCount: Fill Count field of the Blank Start Header of the Token Packet.

in.Rsvd: Reserved field of the Blank Start Header of the Token Packet.

in.CP: CP field of the Blank Start Header of the Token Packet.

in.SR: SR field of the Blank Start Header of the Token Packet.

in.VB_ID_0: The 1st VB_ID field of the payload of the Token Packet.

in.VB_ID_1: The 2nd VB_ID field of the payload of the Token Packet.

in.VB_ID_2: The 3rd VB_ID field of the payload of the Token Packet.

in.VB_ID_3: The 4th VB_ID field of the payload of the Token Packet.

in.Mvid70_0: The 1st Mvid 7:0 field of the payload of the Token Packet.

in.Mvid70_1: The 2nd Mvid 7:0 field of the payload of the Token Packet.

in.Mvid70_2: The 3rd Mvid 7:0 field of the payload of the Token Packet.

in.Mvid70_3: The 4th Mvid 7:0 field of the payload of the Token Packet.

in.Maud70_0: The 1st Maud 7:0 field of the payload of the Token Packet.

in.Maud70_1: The 2nd Maud 7:0 field of the payload of the Token Packet.

in.Maud70_2: The 3rd Maud 7:0 field of the payload of the Token Packet.

in.Maud70_3: The 4th Maud 7:0 field of the payload of the Token Packet.

SST Main Stream Attribute Packet

Note: SST Main Stream Attribute Packet Members include all members of the Tunneled DP Main Link Packet.

in.ECC: ECC field of the MSA Header of the Token Packet.

in.FillCount: Fill Count field of the MSA Header Header of the Token Packet.

in.Rsvd: Reserved field of the MSA Header of the Token Packet.

in.Mvid0: The 1st Mvid field of the payload of the Token Packet.

in.Mvid1: The 2nd Mvid field of the payload of the Token Packet.

in.Mvid2: The 3rd Mvid field of the payload of the Token Packet.

in.Mvid3: The 4th Mvid field of the payload of the Token Packet.

in.Nvid: Nvid field of the payload of the Token Packet.

in.Htotal: Htotal field of the payload of the Token Packet.

in.Hstart: Hstart field of the payload of the Token Packet.

in.Hwidth: Hwidth field of the payload of the Token Packet.

in.Vtotal: Vtotal field of the payload of the Token Packet.

in.Vstart: Vstart field of the payload of the Token Packet.

in.Vheight: Vheight field of the payload of the Token Packet.

in.HSP_HSW: HSP_HSW field of the payload of the Token Packet.

in.VSP_VSW: VSP_VSW field of the payload of the Token Packet.

in.MISC0: MISC0 field of the payload of the Token Packet.

in.MISC1: MISC1 field of the payload of the Token Packet.

SST Secondary Stream Packet

Note: SST Secondary Stream Packet Members include all members of the TU Set Based Packet.

in.TUSet<N>ECC: ECC field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>SecondaryCount: SecondaryCount field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>FillCount: FillCount field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>L: L field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>NSE: NSE field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>NSS: NSS field of TU Header of the Nth TU Set in the Token Packet.

in.TUSet<N>ND: ND field of TU Header of the Nth TU Set in the Token Packet.

DP Clock Sync Packet

Note: DP Clock Sync Packet Members include all members of the Tunneled DP Main Link Packet.

in.Rsvd0: The 1st Reserved field of the Token Packet.

in.Rsvd1: The 2nd Reserved field of the Token Packet.

in.WindowCount: WindowCount field of the Token Packet.

in.FLCLo: Value of the least significant 32 bits of FLC field of the Token Packet.

in.FLCMid: Value from the 32nd to 63rd bits of FLC field of the Token Packet.

in.FLCHi: Value of the most significant 8 bits of FLC field of the Token Packet.

in.Rsvd2: The 3rd Reserved field of the Token Packet.

in.Rsvd3: The 4th Reserved field of the Token Packet.

in.CRC32: Value of CRC32 protecting the payload of the Token Packet.

Multi Stream Packet

Note: Multi Stream Packet Members include all members of the TU Set Based Packet.

in.TUSet<N>ECC: ECC field of Sub-MTP TU Header of the Nth Sub-MTP TU Set in the Token Packet.

in.TUSet<N>DataCount: DataCount field of Sub-MTP TU Header of the Nth Sub-MTP TU Set in the Token Packet.

in.TUSet<N>Type: Type field of Sub-MTP TU Header of the Nth Sub-MTP TU Set in the Token Packet.

in.TUSet<N>SlotNumber: SlotNumber field of Sub-MTP TU Header of the Nth Sub-MTP TU Set in the Token Packet.

in.TUSet<N>Parameter: Parameter field of the Nth Sub-MTP TU Set in the Token Packet.

FEC Decode Packet

Note: FEC Decode Packet Members include all members of the Tunneled DP Main Link Packet.

in.Command0SRCount: SRCount field of the 1st FEC Command of the Token Packet.

in.Command0FDS: FDS field of the 1st FEC Command of the Token Packet.

in.Command0FEN: FEN field of the 1st FEC Command of the Token Packet.

in.Rsvd0: The 1st Reserved field of the Token Packet.

in.Command1SRCount: SRCount field of the 2nd FEC Command of the Token Packet.

in.Command1FDS: FDS field of the 2nd FEC Command of the Token Packet.

in.Command1FEN: FEN field of the 2nd FEC Command of the Token Packet.

in.Rsvd1: The 2nd Reserved field of the Token Packet.

in.Command2SRCount: SRCount field of the 3rd FEC Command of the Token Packet.

in.Command2FDS: FDS field of the 3rd FEC Command of the Token Packet.

in.Command2FEN: FEN field of the 3rd FEC Command of the Token Packet.

Note: DP Link Control ALPM Packet Members include all members of the Tunneled DP Main Link Packet.

in.SW: SW field of the Token Packet.

in.SRCount: SRCount field of the Token Packet.

in.Type: Type field of the Token Packet.

USB4 HS Tunneled DP AUX Packet-Specific Set of Members

Note: Valid for USB4 HS Tunneled DP AUX packets only, undefined for other events.

Note: To get access to given set of members use function SetUsb4TunProtocol().

Note: Tunneled DP AUX Set of Members include all members of the USB4 HS Tunneled Packet.

in.TunDPAuxPacketType: Tunneled DP AUX packet type of the Token Tunneled Packet. Possible values shown below:

Packet type

Description

_USB4_TUN_DPAUX_AUX_PKT

AUX Packet

_USB4_TUN_DPAUX_HDP_STATUS_PKT

HDP Status Packet

_USB4_TUN_DPAUX_SET_CONFIG_PKT

SET_CONFIG Packet

_USB4_TUN_DPAUX_ACK_PKT

ACK Packet

AUX Packet

Note: AUX Packet Members include all members of the Tunneled DP AUX Packet.

in.DPAuxPacketDirection: Tunneled DP AUX packet direction of the Token AUX Packet. Possible values shown below:

Direction

Description

_USB4_TUN_DPAUX_DIRECTION_REQUESTER

Display Port Requester

_USB4_TUN_DPAUX_DIRECTION_REPLIER

Display Port Replier

in.CRC32: Value of CRC32 protecting the payload of the Token AUX Packet.

in.DataLen: Size in bytes of Data field of the Token AUX Packet.

in.Data: Data field of the Token AUX Packet.

AUX Request Packet

Note: AUX Request Packet Members include all members of the AUX Packet.

in.RequestCommand: Type of AUX Request Command of the Token Packet. Possible values shown below:

Request command

Description

_USB4_TUN_DPAUX_REQ_I2C_WRITE

I2C Write

_USB4_TUN_DPAUX_REQ_I2C_READ

I2C Read

_USB4_TUN_DPAUX_REQ_I2C_WSUR

I2C Write_Status_Update_Request

_USB4_TUN_DPAUX_REQ_I2C_MOT_WRITE

I2C MOT Write

_USB4_TUN_DPAUX_REQ_I2C_MOT_READ

I2C MOT Read

_USB4_TUN_DPAUX_REQ_I2C_MOT_WSUR

I2C MOT Write_Status_Update_Request

_USB4_TUN_DPAUX_REQ_WRITE

Write

_USB4_TUN_DPAUX_REQ_READ

Read

in.RequestAddress: Address field of the Token AUX Request Packet.

in.RequestDataLen: DataLen field of the Token AUX Request Packet.

AUX Reply Packet

Note: AUX Reply Packet Members include all members of the AUX Packet.

in.ReplyCommand: Type of AUX Reply Command of the Token Packet. Possible values shown below:

Reply command

Description

_USB4_TUN_DPAUX_REP_ACK

ACK

_USB4_TUN_DPAUX_REP_NACK

AUX NACK

_USB4_TUN_DPAUX_REP_DEFER

AUX DEFER

_USB4_TUN_DPAUX_REP_I2C_NACK

I2C NACK

_USB4_TUN_DPAUX_REP_I2C_DEFER

I2C DEFER

HDP Status Packet

Note: HDP Status Packet Members include all members of the Tunneled DP AUX Packet.

in.ECC: ECC field of the Token Packet.

in.Rsvd: Reserved field of the Token Packet.

in.Plug: Plug field of the Token Packet.

SET_CONFIG Packet

Note: SET_CONFIG Packet Members include all members of the Tunneled DP AUX Packet.

in.ECC: ECC field of the Token Packet.

in.LinkRate: LinkRate field of the Token Packet.

in.LinkRate = 0 represents 1.62 GHz

in.LinkRate = 1 represents 2.70 GHz

in.LinkRate = 2 represents 5.40 GHz

in.LinkRate = 3 represents 8.10 GHz

in.LaneCount: LaneCount field of the Token Packet.

in.LaneCount = 0 represents LinkDown

in.LaneCount = 1 represents 1 Lane

in.LaneCount = 2 represents 2 Lanes

in.LaneCount = 4 represents 4 Lanes

in.MessageType: MessageType field of the Token Packet.

in.MessageData: MessageData field of the Token Packet.

ACK Packet

Note: ACK Packet Members include all members of the Tunneled DP AUX Packet.

in.ECC: ECC field of the Token Packet.

in.ACKType: ACKType field of the Token Packet.

in.Rsvd: Reserved field of the Token Packet.

USB4 HS Tunneled PCIe Packet-Specific Set of Members

Note: Valid for USB4 HS Tunneled PCIe packets only, undefined for other events.

Note: To get access to given set of members, use SetUsb4TunProtocol().

Note: Tunneled PCIe Set of Members include all members of the USB4 HS Tunneled Packet.

in.TunPCIePacketType: Tunneled PCIe packet type of the Token Packet. Possible values shown below:

Packet type

Description

_USB4_TUN_PCIE_ORDERED_SET

Ordered Set

_USB4_TUN_PCIE_EIS

Electrical Idle State Packet

_USB4_TUN_PCIE_TLP

TLP Packet

_USB4_TUN_PCIE_DLLP

DLLP Packet

_USB4_TUN_PCIE_PERST_ACTIVE

PERST Active

_USB4_TUN_PCIE_PERST_INACTIVE

PERST Incative

_USB4_TUN_PCIE_TLP_NEXT

TLP Continuation

_USB4_TUN_PCIE_TLP_NULL

Nullified TLP

_USB4_TUN_PCIE_UNKNOWN

Unknown

USB4 HS Tunneled PCIe Ordered Sets

Note: USB4 HS Tunneled PCIe Ordered Sets Members include all members of the Tunneled PCIe Packet.

in.OrderedSetType: Tunneled PCIe Ordered Set type of the Token Packet. Possible values shown below:

OS type

Description

_USB4_TUN_PCIE_EIOS

Electrical Idle Ordered Set

_USB4_TUN_PCIE_TS1

TS1

_USB4_TUN_PCIE_TS2

TS2

_USB4_TUN_PCIE_OS_INVALID

Invalid Ordered Set

USB4 HS Tunneled PCIe EIOS

Note: EIOS Members include all members of the Tunneled PCIe Ordered Sets.

in.EIOS_COMSymbol: EIOS_COMmbols field of the Token Packet.

USB4 HS Tunneled PCIe TS1/TS2 Packet

Note: TS1/TS2 Packet Members include all members of the Tunneled PCIe Ordered Sets.

in.TS_COMSymbol: TS_COMSymbol field of the Token Packet.

in.TS_LinkNumber: TS_LinkNumber field of the Token Packet.

in.TS_LaneNumber: TS_LaneNumber field of the Token Packet.

in.TS_N_FTS: TS_N_FTS field of the Token Packet.

in.TS_TrainingControl: TS_TrainingControl field of the Token Packet.

in.TS_DataRate: TS_DataRate field of the Token Packet.

in.TS_RawSymbols: List of TS1/TS2 Symbols of the Token Packet. The list contains _USB4_TUN_PCIE_TS_SYMBOLS_COUNT (10) elements (in.TS_RawSymbols[0], in.TS_RawSymbols[1], …, in.TS_RawSymbols[_USB4_TUN_PCIE_TS_SYMBOLS_COUNT-1]).

USB4 HS Tunneled PCIe TLP/DLLP Packets

Note: USB4 HS Tunneled PCIe TLP/DLLP Packet Members include all members of the Tunneled PCIe Packet.

Tunneled TLP/DLLP may contain multiple packets, so every field has index of inner packet, which starts with zero. The following fields are common:

in.TS_ Count: The number of inner packets.

in. IsTlp[i]: Whether an inner packet is a TLP

in.IsDllp[i]: Whether an inner packet is a DLLP.

USB4 HS Tunneled PCIe inner TLP Packets

Every field has index of inner packet, which starts with zero.

in.TLPType[i]: Tunneled PCIe TLP type of the Token Packet. Possible values shown below:

TLP type

Description

_USB4_TUN_PCIE_TLP_MRD32

Memory Read Request

_USB4_TUN_PCIE_TLP_MRDLK32

Memory Read Request-Locked

_USB4_TUN_PCIE_TLP_MWR32

Memory Write Request

_USB4_TUN_PCIE_TLP_MRD64

Memory Read Request 64-bit

_USB4_TUN_PCIE_TLP_MRDLK64

Memory Read Request-Locked 64-bit

_USB4_TUN_PCIE_TLP_MWR64

Memory Write Request 64-bit

_USB4_TUN_PCIE_TLP_IORD

I/O Read Request

_USB4_TUN_PCIE_TLP_IOWR

I/O Write Request

_USB4_TUN_PCIE_TLP_CFGRD_0

Configuration Read Type 0

_USB4_TUN_PCIE_TLP_CFGWR_0

Configuration Write Type 0

_USB4_TUN_PCIE_TLP_CFGRD_1

Configuration Read Type 1

_USB4_TUN_PCIE_TLP_CFGWR_1

Configuration Write Type 1

_USB4_TUN_PCIE_TLP_TCFGRD

Trusted Configuration Read (Deprecated)

_USB4_TUN_PCIE_TLP_TCFGWR

Trusted Configuration Write (Deprecated)

_USB4_TUN_PCIE_TLP_MSG

Message Request

_USB4_TUN_PCIE_TLP_MSGD

Message Request with data payload

_USB4_TUN_PCIE_TLP_CPL

Completion without Data

_USB4_TUN_PCIE_TLP_CPLD

Completion with Data

_USB4_TUN_PCIE_TLP_CPLLK

Completion for Locked Memory Read without Data

_USB4_TUN_PCIE_TLP_CPLDLK

Completion for Locked Memory Read

_USB4_TUN_PCIE_TLP_FETCH_ADD

Fetch and Add AtomicOp Request

_USB4_TUN_PCIE_TLP_SWAP

Unconditional Swap AtomicOp Request

_USB4_TUN_PCIE_TLP_CAS

Compare and Swap AtomicOp Request

_USB4_TUN_PCIE_TLP_FETCH_ADD64

Fetch and Add AtomicOp Request 64-bit

_USB4_TUN_PCIE_TLP_SWAP64

Unconditional Swap AtomicOp Request 64-bit

_USB4_TUN_PCIE_TLP_CAS64

Compare and Swap AtomicOp Request 64-bit

_USB4_TUN_PCIE_TLP_LPRFX

Local TLP Prefix

_USB4_TUN_PCIE_TLP_EPRFX

End-End TLP Prefix

_USB4_TUN_PCIE_TLP_INVALID

Invalid TLP

in.TLP_SeqNum[i]: TLP Sequence Number of the of the Token Packet.

in.TLPHeader_Fmt[i]: Fmt field of the TLP Header of the Token Packet.

in.TLPHeader_Type[i]: Type field of the TLP Header of the Token Packet.

in.TLPHeader_T9[i]: T9 field of the TLP Header of the Token Packet.

in.TLPHeader_TC[i]: TC field of the TLP Header of the Token Packet.

in.TLPHeader_T8[i]: T8 field of the TLP Header of the Token Packet.

in.TLPHeader_Attr[i]: Attr field of the TLP Header of the Token Packet.

in.TLPHeader_LN[i]: LN field of the TLP Header of the Token Packet.

in.TLPHeader_TH[i]: TH field of the TLP Header of the Token Packet.

in.TLPHeader_TD[i]: TD field of the TLP Header of the Token Packet.

in.TLPHeader_EP[i]: EP field of the TLP Header of the Token Packet.

in.TLPHeader_Attr2[i]: Attr2 field of the TLP Header of the Token Packet.

in.TLPHeader_AT[i]: AT field of the TLP Header of the Token Packet.

Value in.TLPHeader_AT[i] = 0 means "Untranslated",

in.TLPHeader_AT[i] = 1 means "TranslationRequest",

in.TLPHeader_AT[i] = 2 means "Translated",

in.TLPHeader_AT[i] = 3 means "Reserved".

in.TLPHeader_Length[i]: Length field of the TLP Header of the Token Packet.

in.RequesterID_BusNumber[i]: RequesterID BusNumber field of the of the Token Packet.

in.RequesterID_DeviceNumber[i]: RequesterID DeviceNumber field of the of the Token Packet.

in.RequesterID_FunctionNumber[i]: RequesterID FunctionNumber field of the of the Token Packet.

in.Tag[i]: Tag field of the of the Token Packet.

Note: Some packets have no Tag field in decoding (TLP Vendor Defined Message Packets); they have a Reserved field instead. Most of TLP Packets have a Tag field, so it is included in common TLP fields.

in.DataLen[i]: Length of Data field in bytes of the Token Packet. If packet has no Data field DataLen = 0.

in.Data[i]: Bit source of Data field Of the Token Packet. Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits().

in.HasCRC32[i]: Presence of CRC32 below in the current packet. May be absent, if PCIe TLP does not fit fully.

in.CRC32[i]: Value of CRC32 protecting the payload of the Token Packet.

in.TLP_CHK[i]: CHK field of the of the Token Packet.

Note: Tunneled PCIe TLP packets can have 0 or more prefixes.

in.PrefixCount[i]: Count of TLP prefixes of the Token Packet.

in.PrefixFmtList[i]: List of Fmt fields of prefixes. in.PrefixFmtList[i] [N] – Fmt field of Nth TLP prefix (in.PrefixFmtList[i][0], in.PrefixFmtList[i][1], …, in.PrefixFmtList[i][in.PrefixCount[i]-1]).

in.PrefixTypeList[i]: List of Type fields of prefixes. in.PrefixTypeList[N] – Type field of Nth TLP prefix (in.PrefixTypeList[i][0], in.PrefixTypeList[i][1], …, in.PrefixTypeList[i][in.PrefixCount[i]-1]). Possible values shown below:

Prefix type

Description

_USB4_TUN_PCIE_TLP_PT_LOCAL_MR_IOV

MR-IOV TLP Prefix

_USB4_TUN_PCIE_TLP_PT_LOCAL_VEND_PREFIX_L0

Vendor Defined Local TLP Prefix L0

_USB4_TUN_PCIE_TLP_PT_LOCAL_VEND_PREFIX_L1

Vendor Defined Local TLP Prefix L1

_USB4_TUN_PCIE_TLP_PT_END_END_TPH

TPH TLP Prefix

_USB4_TUN_PCIE_TLP_PT_END_END_PASID

PASID

_USB4_TUN_PCIE_TLP_PT_END_END_VEND_PREFIX_E0

Vendor Defined End-End TLP Prefix E0

_USB4_TUN_PCIE_TLP_PT_END_END_VEND_PREFIX_E1

Vendor Defined End-End TLP Prefix E1

in.PrefixDataList[i]: List of Data fields of prefixes. in.PrefixDataList[i][N] – Data field of Nth TLP prefix.

in.TPHPrefixSTList[i]: List of ST fields of TPH prefixes. in.TPHPrefixSTList[i][N] – ST field of Nth TPH TLP prefix.

in.TPHPrefixRsvdList[i]: List of Rsvd fields of TPH prefixes. in.TPHPrefixRsvdList[i][N] – Rsvd field of Nth TPH TLP prefix.

Note: in.TPHPrefixSTList[i][N] value and in.TPHPrefixRsvdList[i][N] value are correct for TPH prefix; any other prefix has in.PrefixDataList[i][N] value. To maintain correct indexing, each prefix has access to in.TPHPrefixSTList[i][N], in.TPHPrefixRsvdList[i][N], and in.PrefixDataList[i][N].

Example:
for (j = 0; j < in.PrefixCount[i]; ++j)
{
  cur_prefix_fmt = in.PrefixFmtList[i][j];
  cur_preifx_type_name = GetUsb4TunPCIeTLPPrefixName( in.PrefixTypeList[i][j] );
  if (in.PrefixTypeList[i][j] == _USB4_TUN_PCIE_TLP_PT_END_END_TPH)
  {
    cur_TPHPrefix_ST = in.TPHPrefixSTList[i][j];
    cur_TPHPreifx_Rsvd = in.TPHPrefixRsvdList[i][j];
  }
  else
  {
    cur_prefix_data = in.PrefixDataList[i][j];
  }
}

USB4 HS Tunneled PCIe TLP Memory and AtomicOp Request Packets

Note: This category belongs to these TLP Packet types:

  • Memory Read Request 32-bit and 64-bit

  • Memory Read Request-Locked 32-bit and 64-bit

  • Memory Write Request 32-bit and 64-bit

  • Fetch and Add AtomicOp Request 32-bit and 64-bit

  • Unconditional Swap AtomicOp Request 32-bit and 64-bit

  • Compare and Swap AtomicOp Request 32-bit and 64-bit

  • Memory Read Request 32-bit and 64-bit

  • Memory Read Request-Locked 32-bit and 64-bit

  • Memory Write Request 32-bit and 64-bit

  • Fetch and Add AtomicOp Request 32-bit and 64-bit

  • Unconditional Swap AtomicOp Request 32-bit and 64-bit

  • Compare and Swap AtomicOp Request 32-bit and 64-bit

Note: Packets from this category include all members of the Tunneled PCIe TLP Packet.

in.TLPHeader_1stDwBE[i]: 1stDwBE field of the TLP Header of the Token Packet.

in.TLPHeader_LastDwBE[i]: LastDwBE field of the TLP Header of the Token Packet.

in.TLPHeader_PH[i]: PH field of the TLP Header of the Token Packet.

in.TLPHeader_PH[i] = 0 : "Bi-directional data structure";

in.TLPHeader_PH[i] = 1 : "Requester";

in.TLPHeader_PH[i] = 2 : "Target";

in.TLPHeader_PH[i] = 3 : "Target with Priority";

in.TLPHeader_Address[i]: Address field of the TLP Header of the Token Packet. 32-bit packets only.

in.TLPHeader_AddressHi[i]: Value of the most significant DWORD of Address field of the TLP Header of the Token Packet. 64-bit packets only.

in.TLPHeader_AddressLo[i]: Value of the less significant DWORD of Address field of the TLP Header of the Token Packet. 64-bit packets only.

USB4 HS Tunneled PCIe TLP I/O Read Write Request Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Packet.

in.TLPHeader_1stDwBE[i]: 1stDwBE field of the TLP Header of the Token Packet.

in.TLPHeader_LastDwBE[i]: LastDwBE field of the TLP Header of the Token Packet.

in.TLPHeader_Address[i]: Address field of the TLP Header of the Token Packet.

in.TLPHeader_Rsvd[i]: Reserved field of the TLP Header of the Token Packet.

USB4 HS Tunneled PCIe TLP Configuration Packets

Note: This category belongs to these TLP Packet types:

  • Configuration Read Type 0

  • Configuration Write Type 0

  • Configuration Read Type 1

  • Configuration Write Type 1

  • Trusted Configuration Read (Deprecated)

  • Trusted Configuration Write (Deprecated)

Note: Packets from this category include all members of the Tunneled PCIe TLP Packet.

in.TLPHeader_1stDwBE[i]: 1stDwBE field of the TLP Header of the Token Packet.

in.TLPHeader_LastDwBE[i]: LastDwBE field of the TLP Header of the Token Packet.

in.DeviceID_BusNumber[i]: DeviceID BusNumber field of the of the Token Packet.

in.DeviceID_DeviceNumber[i]: DeviceID DeviceNumber field of the of the Token Packet.

in.DeviceID_FunctionNumber[i]: DeviceID FunctionNumber field of the of the Token Packet.

in.TLPHeader_Rsvd[i]: Reserved field of the TLP Header of the Token Packet.

in.TLPHeader_Register[i]: Register field of the TLP Header of the Token Packet.

USB4 HS Tunneled PCIe TLP Completion Packets

Note: This category belongs to these TLP Packet types:

  • Completion without Data

  • Completion with Data

  • Completion for Locked Memory Read without Data

  • Completion for Locked Memory Read

Note: Packets from this category include all members of the Tunneled PCIe TLP Packet.

in.CompleterID_BusNumber[i]: CompleterID BusNumber field of the of the Token Packet.

in.CompleterID_DeviceNumber[i]: CompleterID DeviceNumber field of the of the Token Packet.

in.CompleterID_FunctionNumber[i]: CompleterID FunctionNumber field of the of the Token Packet.

in.TLPHeader_ComplStatus[i]: ComplStatus field of the TLP Header of the Token Packet.

in.TLPHeader_ComplStatus[i] = 0 : "Successful Completion";

in.TLPHeader_ComplStatus[i] = 1 : "Unsupported Request";

in.TLPHeader_ComplStatus[i] = 2 : "Configuration Request Retry Status";

in.TLPHeader_ComplStatus[i] = 4 : "Completer Abort";

in.TLPHeader_BCM[i]: BCM field of the TLP Header of the Token Packet.

in.TLPHeader_ByteCount[i]: ByteCount field of the TLP Header of the Token Packet.

in.TLPHeader_LowerAddress[i]: LowerAddress field of the TLP Header of the Token Packet.

in.TLPHeader_Rsvd[i]: Reserved field of the TLP Header of the Token Packet.

USB4 HS Tunneled PCIe TLP Message Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Packet.

in.TLPHeader_MessageCode[i]: Message Code of the Token TLP Message Packet. Possible values shown below:

Message Code

Description

_USB4_TUN_PCIE_TLP_MSG_CODE_UNLOCK

Unlock

_USB4_TUN_PCIE_TLP_MSG_CODE_INVALID_REQUEST

Invalid Request

_USB4_TUN_PCIE_TLP_MSG_CODE_INVALID_COMPLETION

Invalid Completion

_USB4_TUN_PCIE_TLP_MSG_CODE_PAGE_REQUEST

Page Request

_USB4_TUN_PCIE_TLP_MSG_CODE_PRG_RESPONSE

PRG Response

_USB4_TUN_PCIE_TLP_MSG_CODE_LTR

Locked Transactions Support

_USB4_TUN_PCIE_TLP_MSG_CODE_OBFF

Optimized Buffer Flush/Fill

_USB4_TUN_PCIE_TLP_MSG_CODE_PM_ACTIVE_STATE_NACK

PM_Active_State_Nack

_USB4_TUN_PCIE_TLP_MSG_CODE_PM_PME

PM_PME

_USB4_TUN_PCIE_TLP_MSG_CODE_PME_TURN_OFF

PME_Turn_Off

_USB4_TUN_PCIE_TLP_MSG_CODE_PME_TO_ACK

PME_TO_Ack

_USB4_TUN_PCIE_TLP_MSG_CODE_ASSERT_INTA

Assert_INTA

_USB4_TUN_PCIE_TLP_MSG_CODE_ASSERT_INTB

Assert_INTB

_USB4_TUN_PCIE_TLP_MSG_CODE_ASSERT_INTC

Assert_INTC

_USB4_TUN_PCIE_TLP_MSG_CODE_ASSERT_INTD

Assert_INTD

_USB4_TUN_PCIE_TLP_MSG_CODE_DEASSERT_INTA

Deassert_INTA

_USB4_TUN_PCIE_TLP_MSG_CODE_DEASSERT_INTB

Deassert_INTB

_USB4_TUN_PCIE_TLP_MSG_CODE_DEASSERT_INTC

Deassert_INTC

_USB4_TUN_PCIE_TLP_MSG_CODE_DEASSERT_INTD

Deassert_INTD

_USB4_TUN_PCIE_TLP_MSG_CODE_ERR_COR

ERR_COR

_USB4_TUN_PCIE_TLP_MSG_CODE_ERR_NONFATAL

ERR_NONFATAL

_USB4_TUN_PCIE_TLP_MSG_CODE_ERR_FATAL

ERR_FATAL

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED1

Ignored1

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED2

Ignored2

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED3

Ignored3

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED4

Ignored4

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED5

Ignored5

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED6

Ignored6

_USB4_TUN_PCIE_TLP_MSG_CODE_IGNORED7

Ignored7

_USB4_TUN_PCIE_TLP_MSG_CODE_SET_SLOT_POWER_LIMIT

Set_Slot_Power_limit

_USB4_TUN_PCIE_TLP_MSG_CODE_PTM_REQUEST

PTMRequest

_USB4_TUN_PCIE_TLP_MSG_CODE_PTM_RESPONSE_RESPONSE_D

PTMResponse_ResponseD

_USB4_TUN_PCIE_TLP_MSG_CODE_VENDOR_DEFINED_TYPE0

Vendor_Defined_Type_0

_USB4_TUN_PCIE_TLP_MSG_CODE_VENDOR_DEFINED_TYPE1

Vendor_Defined_Type_1

USB4 HS Tunneled PCIe TLP Message Reserved Packets

Note: This category belongs to these TLP Message Codes:

  • Assert_INTA

  • Assert_INTB

  • Assert_INTC

  • Assert_INT,

  • Deassert_INTA

  • Deassert_INTB

  • Deassert_INTC

  • Deassert_INTD

  • PM_Active_State_Nack

  • PM_PME

  • PME_Turn_Off

  • PME_TO_Ack

  • ERR_COR

  • ERR_NONFATAL

  • ERR_FATAL

  • Unlock

  • PTMRequest

  • PTMResponse_ResponseD (in case of in.TLPType[i] = _USB4_TUN_PCIE_TLP_MSG, else – see USB4 HS Tunneled PCIe TLP PTM Response_ResponseD Packets)

  • Set_Slot_Power_limit

Note: Packets from this category include all members of the Tunneled PCIe TLP Message Packet.

in.TLPHeader_Rsvd0[i]: 1st Reserved field of the TLP Header of the Token TLP Message Packet.

in.TLPHeader_Rsvd1[i]: 2nd Reserved field of the TLP Header of the Token TLP Message Packet.

USB4 HS Tunneled PCIe TLP Message LTR Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Message Packet.

in.TLPHeader_Rsvd[i]: Reserved field of the TLP Header of the Token TLP Message Packet.

in.TLPHeader_NoSnoopLatency[i]: NoSnoopLatency field of the TLP Header of the Token TLP Message Packet.

in.TLPHeader_SnoopLatency[i]: SnoopLatency field of the TLP Header of the Token TLP Message Packet.

USB4 HS Tunneled PCIe TLP Message OBFF Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Message Packet.

in.TLPHeader_Rsvd0[i]: First Reserved field of the TLP Header of the Token TLP Message Packet.

in.TLPHeader_OBFFCode[i]: OBFF Code field of the TLP Header of the Token TLP Message Packet.

in.TLPHeader_OBFFCode = 0 : "Idle";

in.TLPHeader_OBFFCode = 1 : "OBFF";

in.TLPHeader_OBFFCode = 0b1111 : "CPU Active";

in.TLPHeader_Rsvd1[i]: Second Reserved field of the TLP Header of the Token TLP Message Packet.

USB4 HS Tunneled PCIe TLP PTM Response_ResponseD Packets

Note: Valid only if in.TLPType[i] = _USB4_TUN_PCIE_TLP_MSGD. Otherwise, see USB4 HS Tunneled PCIe TLP Message Reserved Packets.

Note: Packets from this category include all members of the Tunneled PCIe TLP Message Packet.

in.TLPHeader_PTMMasterTimeHi[i]: Value of the most significant DWORD of PTMMasterTime field of the TLP Header of the Token Packet.

in.TLPHeader_PTMMasterTimeLo[i]: Value of the less significant DWORD of PTMMasterTime field of the TLP Header of the Token Packet.

in.TLPHeader_PropagationDelay[i]: PropagationDelay field of the TLP Header of the Token TLP Message Packet.

USB4 HS Tunneled PCIe TLP Vendor Defined Message Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Message Packet.

in.TLPHeader_VDMSubtype[i]: Subtype of the Token TLP Vendor Defined Message Packet. Possible values shown below:

Subtype

Description

_USB4_TUN_PCIE_TLP_MSG_VENDOR_SUBTYPE_LN

Lightweight Notification (LN) Message

_USB4_TUN_PCIE_TLP_MSG_VENDOR_SUBTYPE_HIERARCHY_ID

Hierarchy ID Message

_USB4_TUN_PCIE_TLP_MSG_VENDOR_SUBTYPE_DEVICE_READINESS_STATUS

Device Readiness Status (DRS) Message

_USB4_TUN_PCIE_TLP_MSG_VENDOR_SUBTYPE_FUNCTION_READINESS_STATUS

Function Readiness Status (FRS) Message

in.TLPHeader_VendorID[i]: VendorID field of the TLP Header of the Token TLP Vendor Defined Message Packet.

in.TLPHeader_Rsvd0[i]: 1st Reserved field of the TLP Header of the Token TLP Vendor Defined Message Packet. in.TLPHeader_Rsvd0[i] value of this packet repeats in.Tag[i] value of TLP Header.

USB4 HS Tunneled PCIe TLP Vendor Defined LN Message Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Vendor Defined Message Packet.

in.DeviceID_BusNumber[i]: DeviceID BusNumber field of the of the Token Packet.

in.DeviceID_DeviceNumber[i]: DeviceID DeviceNumber field of the of the Token Packet.

in.DeviceID_FunctionNumber[i]: DeviceID FunctionNumber field of the of the Token Packet.

in.TLPHeader_VendorRsvd[i]: VendorRsvd field of the of the Token Packet.

in.TLPHeader_Rsvd1[i]: 2nd Reserved field of the TLP Header of the Token Packet.

in.TLPHeader_CachlineAddressHi[i]: Value of the most significant DWORD of CachlineAddress field of the TLP Header of the Token Packet.

in.TLPHeader_CachlineAddressLo[i]: Value of the less significant DWORD of CachlineAddress field of the TLP Header of the Token Packet.

in.TLPHeader_PropagationDelay[i]: PropagationDelay field of the TLP Header of the Token TLP Message Packet.

in.TLPHeader_Rsvd2[i]: 3rd Reserved field of the TLP Header of the Token Packet.

in.TLPHeader_NR[i]: NR field of the TLP Header of the Token Packet.

USB4 HS Tunneled PCIe TLP Vendor Defined HierarchyID Message Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Vendor Defined Message Packet.

in.TLPHeader_HierarchyID[i]: HierarchyID field of the of the Token Packet.

in.TLPHeader_GUIDAuthorityID[i]: GUIDAuthorityID field of the of the Token Packet.

in.TLPHeader_GUIDAuthorityID = 0 : None;

in.TLPHeader_GUIDAuthorityID = 1 : Timestamp;

in.TLPHeader_GUIDAuthorityID = 2 : IEEE_EUI_48;

in.TLPHeader_GUIDAuthorityID = 3 : IEEE_EUI_64;

in.TLPHeader_GUIDAuthorityID = 4 : RFC_4122_UUID;

in.TLPHeader_GUIDAuthorityID = 5 : IPv6Address;

0x06 <= in.TLPHeader_GUIDAuthorityID <= 0x7F : Reserved;

0x80 <= in.TLPHeader_GUIDAuthorityID : PCI_SIG_Vendor_Specific;

in.TLPHeader_SystemGUIDLen[i]: Count of SystemGUID symbols of the Token Packet.

in.TLPHeader_SystemGUIDList: List of SystemGUID symbols. in.TLPHeader_SystemGUIDList[i][N] –Nth SystemGUID symbol of the Token Packet.

(in.TLPHeader_SystemGUIDList[i][0],

in.TLPHeader_SystemGUIDList[i][1],

…,

in.TLPHeader_SystemGUIDList[i][in.TLPHeader_SystemGUIDLen[i]-1]).

USB4 HS Tunneled PCIe TLP Vendor Defined DRS Message Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Vendor Defined Message Packet.

in.TLPHeader_VendorRsvd[i]: VendorRsvd field of the of the Token Packet.

in.TLPHeader_Rsvd1[i]: Reserved field of the of the Token Packet.

USB4 HS Tunneled PCIe TLP Vendor Defined FRS Message Packets

Note: Packets from this category include all members of the Tunneled PCIe TLP Vendor Defined Message Packet.

in.TLPHeader_VendorRsvd[i]: VendorRsvd field of the of the Token Packet.

in.TLPHeader_Rsvd1[i]: Reserved field of the of the Token Packet.

in.TLPHeader_FRSReason[i]: FRSReason field of the of the Token Packet.

in.TLPHeader_FRSReason[i] = 0b0001 : DRSMessageReceived;

in.TLPHeader_FRSReason[i] = 0b0010 : D3HotD0TransitionCompleted;

in.TLPHeader_FRSReason[i] = 0b0011 : FLR Completed;

in.TLPHeader_FRSReason[i] = 0b1000 : VF Enabled;

in.TLPHeader_FRSReason[i] = 0b1001 : VF Disabled;

USB4 HS Tunneled PCIe inner DLLP Packets

Every field has the index of the inner packet, which starts with zero.

in.DLLPType[i]: Tunneled PCIe DLLP type of the Token Packet. Possible values shown below:

DLLP type

Description

_USB4_TUN_PCIE_DLLP_ACK

Ack

_USB4_TUN_PCIE_DLLP_NAK

Nak

_USB4_TUN_PCIE_DLLP_MR_INIT

MRInit

_USB4_TUN_PCIE_DLLP_DATA_LINK_FEATURE

Data_Link_Feature

_USB4_TUN_PCIE_DLLP_PM_ENTER_L1

PM_Enter_L1

_USB4_TUN_PCIE_DLLP_PM_ENTER_L23

PM_Enter_L23

_USB4_TUN_PCIE_DLLP_PM_ACT_STATE_REQUEST_L1

PM_Active_State_Request_L1

_USB4_TUN_PCIE_DLLP_PM_REQUEST_ACK

PM_Request_Ack

_USB4_TUN_PCIE_DLLP_VENDOR

Vendor-specific

_USB4_TUN_PCIE_DLLP_NOP

NOP

_USB4_TUN_PCIE_DLLP_INIT_FC1_P

InitFC1-P

_USB4_TUN_PCIE_DLLP_INIT_FC1_NP

InitFC1-NP

_USB4_TUN_PCIE_DLLP_INIT_FC1_CPL

InitFC1-Cpl

_USB4_TUN_PCIE_DLLP_MR_INIT_FC1

MRInitFC1

_USB4_TUN_PCIE_DLLP_INIT_FC2_P

InitFC2-P

_USB4_TUN_PCIE_DLLP_INIT_FC2_NP

InitFC2-NP

_USB4_TUN_PCIE_DLLP_INIT_FC2_CPL

InitFC2-Cpl

_USB4_TUN_PCIE_DLLP_MR_INIT_FC2

MRInitFC2

_USB4_TUN_PCIE_DLLP_UPDATE_FC_P

UpdateFC-P

_USB4_TUN_PCIE_DLLP_UPDATE_FC_NP

UpdateFC-NP

_USB4_TUN_PCIE_DLLP_UPDATE_FC_CPL

UpdateFC-Cpl

_USB4_TUN_PCIE_DLLP_MR_UPDATE_FC

MRUpdateFC

_USB4_TUN_PCIE_DLLP_INVALID

Invalid DLLP

in.CRC16[i]: Value of CRC16 protecting the payload of the Token Packet.

USB4 HS Tunneled PCIe DLLP Ack/Nak Packets

Note: Packets from this category include all members of the Tunneled PCIe DLLP Packet.

in.AckNak_SeqNum[i]: AckNak_SeqNum field of the of the Token Packet.

in.Rsvd[i]: Reserved field of the of the Token Packet.

Note: Packets from this category include all members of the Tunneled PCIe DLLP Packet.

in.FeatureAck[i]: FeatureAck field of the of the Token Packet.

in.FeatureSupport[i]: FeatureSupport field of the of the Token Packet.

USB4 HS Tunneled PCIe DLLP Power Management Packets

Note: This category belongs to these DLLP Types:

  • PM_Enter_L1

  • PM_Enter_L23

  • PM_Active_State_Request_L1

  • PM_Request_Ack

Note: Packets from this category include all members of the Tunneled PCIe DLLP Packet.

in.Rsvd[i]: Reserved field of the of the Token Packet.

USB4 HS Tunneled PCIe DLLP Vendor-Specific Packets

Note: Packets from this category include all members of the Tunneled PCIe DLLP Packet.

in.DLLPData[i]: DLLPData field of the of the Token Packet.

USB4 HS Tunneled PCIe DLLP Init/Update Packets

Note: This category belongs to these DLLP Types:

  • MRInit

  • InitFC1-P

  • InitFC1-NP

  • InitFC1-Cpl

  • MRInitFC1

  • InitFC2-P

  • InitFC2-NP

  • InitFC2-Cpl

  • MRInitFC2

  • UpdateFC-P

  • UpdateFC-NP

  • UpdateFC-Cpl

  • MRUpdateFC

Note: Packets from this category include all members of the Tunneled PCIe DLLP Packet.

in.Rsvd[i]: Reserved field of the of the Token Packet.

in.HdrScale[i]: HdrScale field of the of the Token Packet.

in.HdrFC[i]: HdrFC field of the of the Token Packet.

in.DataScale[i]: DataScale field of the of the Token Packet.

in.DataFC[i]: DataFC field of the of the Token Packet.

USB4 HS Tunneled USB3 Packet-Specific Set of Members

Note: Valid for USB4 HS Tunneled USB3 packets only, undefined for other events.

Note: To get access to a given set of members, use SetUsb4TunProtocol().

Note: Tunneled USB3 Set of Members include all members of the USB4 HS Tunneled Packet.

in.TunUSB3GenType: Tunneled USB3 Gen type of the Token Packet. Possible values shown below:

Packet type

Description

_USB4_TUN_USB3_GEN_X

Gen X

_USB4_TUN_USB3_GEN_T

Gen T

in.IsGenX: Boolean value that indicates whether or not Gen type of the Tunneled USB3 Packet is Gen X.

in.IsGenT: Boolean value that indicates whether or not Gen type of the Tunneled USB3 Packet is Gen T.

in.TunUSB3PacketType: Tunneled USB3 packet type of the Token Packet. Possible values shown below:

Packet type

Description

_USB4_TUN_USB3_LFPS

LFPS Packet

_USB4_TUN_USB3_OOBM

OOBM

_USB4_TUN_USB3_TS1

TS1

_USB4_TUN_USB3_TS2

TS2

_USB4_TUN_USB3_SDS

SDS

_USB4_TUN_USB3_LINK_COMMAND

Link Command Packet

_USB4_TUN_USB3_LMP

Link Management Packet

_USB4_TUN_USB3_TP

Transaction Packet

_USB4_TUN_USB3_DEFERRED_DPH

Data Packet Header

_USB4_TUN_USB3_ITP

Isochronous Timestamp Packet

_USB4_TUN_USB3_START_DP

Start Data Packet Segment

_USB4_TUN_USB3_MIDDLE_DP

Middle Data Packet Segment

_USB4_TUN_USB3_END_DP

End Data Packet Segment

_USB4_TUN_USB3_NDP

Nullified Data Packet

USB4 HS Tunneled USB3 LFPS Packet Members

Note: USB4 HS Tunneled USB3 LFPS Packet Members include all members of the Tunneled USB3 Packet.

in.Type: Tunneled USB3 LFPS type of the Token Packet. Possible values shown below:

LFPS type

Description

_USB4_TUN_USB3_LFPS_POLLING

Polling LFPS

_USB4_TUN_USB3_LFPS_EXIT_U2_LB

Exit U2 LB

_USB4_TUN_USB3_LFPS_WAKE_U3

Wake U3

_USB4_TUN_USB3_LFPS_RESET

Reset LFPS

_USB4_TUN_USB3_LFPS_LBPM_LFPS1

LBPM LFPS1

_USB4_TUN_USB3_LFPS_STOP

Stop LFPS

in.LBPM: LBPM field of the Token Packet.

in.RxTermEnable: RxTermEnable field of the Token Packet.

in.SCD1: SCD1 field of the Token Packet.

in.SCD2: SCD2 field of the Token Packet.

in.U2Exit: U2Exit field of the Token Packet.

in.U3Wakeup: SCD2 field of the Token Packet.

in.WarmReset: WarmReset field of the Token Packet.

in.LBPMEnable: LBPMEnable field of the Token Packet.

in.CRC8: Value of CRC8 protecting the payload of the Token Packet.

Note: Token Packet has in.Duration member, a common member of the USB Packet-Specific Set of Members.

USB4 HS Tunneled USB3 OOBM Packet Members

Note: USB4 HS Tunneled USB3 OOBM Packet Members include all members of the Tunneled USB3 Packet.

in.LinkError: Link Error field of the Token Packet.

in.PortDisabled: Port Disabled field of the Token Packet.

in.PortResetDone: Port Reset Done field of the Token Packet.

in.U3Resume: U3 Resume field of the Token Packet.

in.PortReset: Port Reset field of the Token Packet.

in.LinkReady: Link Ready field of the Token Packet.

in.CRC: Value of CRC protecting the payload of the Token Packet.

USB4 HS Tunneled USB3 TS1/TS2 Ordered Set Members

Note: USB4 HS Tunneled USB3 TS1/TS2 Members include all members of the Tunneled USB3 Packet.

in.LnkFunctionality: Value of the whole Link Functionality (Link Configuration) byte in the training sequence

in.Reset: Value of the Reset bit in the Link Configuration byte.

in.Loopback: Value of the Loopback asserted/deasserted bit in the Link Configuration byte.

in.ScrDisable: Value of the Disable Scrambling bit in the Link Configuration byte.

in.LocalLoopback: Value of the Repeater Local Loopback bit in the Link Configuration byte.

in.RetimerTxCompliance: Value of the Bit-level Re-timer Tx Compliance bit in the Link Configuration byte.

in.Rsvd0: Rsvd0 field of the of the Token Packet.

in.Rsvd: Rsvd field of the of the Token Packet.

in.CRC8: Value of CRC8 protecting the payload of the Token Packet.

Note: USB4 HS Tunneled USB3 TS1/TS2 has no member in.Count, since for USB4 tunneled USB3 TS1/TS2 it is always 1.

USB4 HS Tunneled USB3 SDS Ordered Set Members

Note: USB4 HS Tunneled USB3 SDS Members include all members of the Tunneled USB3 Packet.

in.CRC8: Value of CRC8 protecting the payload of the Token Packet.

Note: USB4 HS Tunneled USB3 Link Command Packet Members include all members of the Tunneled USB3 Packet.

Note: The following members are actual when the Tunneled USB3 Packet has Gen X Gen Type (in.TunUSB3GenType is equal to _USB4_TUN_USB3_GEN_X).

in.LnkCmd: Index of the Link Command type (constants are defined in VS_constants.inc).

in.LinkCmdInfo: Value of the Link Command Information field for the Link Command Word.

in.CRC5: Value of CRC5 for the Link Command Word.

in.LinkCmdInfo_2: Value of the Link Command Information field for the replica of the Link Command Word.

in.CRC5_2: Value of CRC5 for the replica of the Link Command Word.

Note: The following members are actual when the Tunneled USB3 Packet has Gen T Gen Type (in.TunUSB3GenType is equal to _USB4_TUN_USB3_GEN_T).

in.LnkCmdCount: Count of Link Commands that are encapsulated in the Packet.

in.LnkCmd_i: Index of the Link Command type (constants are defined in VS_constants.inc). Index i in the prefix may take value from 0 to in.LnkCmdCount – 1.

in.LinkCmdInfo_i: Value of the Link Command Information field for the Link Command Word. Index i in the prefix may take value from 0 to in.LnkCmdCount – 1.

in.LinkCmdInfoIndex_i: The value of n in LGOOD_n, n in LKAI_n, x in LCRD1_x or y in LCRD2_y.

Note: USB4 HS Tunneled USB3 Link Management Packet Members include all members of the Tunneled USB3 Packet.

in.SubType: SubType value for LMP. Use constant definitions from VS_constants.inc.

USB4 HS Tunneled USB3 Transaction Packet Members

Note: USB4 HS Tunneled USB3 TP Packet Members include all members of the Tunneled USB3 Packet.

in.SubType: SubType value for Transaction Packet. Use constant definitions from VS_constants.inc.

in.Addr: Address of the device that receives this Transaction Packet

in.Endp: Endpoint number on the device that receives this Transaction Packet

in.Dir: Direction for the specified Endpoint

in.StreamID: Value of the StreamID field

USB4 HS Tunneled USB3 Deferred Data Packet Header Members

Note: USB4 HS Tunneled USB3 Deferred DPH Members include all members of the Tunneled USB3 Packet.

in.Addr: Address of the device which is the recipient of this Data Packet

in.Endp: Endpoint number on the device which is the recipient of this Data Packet

in.Dir: Direction for the specified Endpoint

in.StreamID: Value of the StreamID field

in.SeqN: Value of the Sequence Number for this Data Packett

in.DataLength: Length of the payload for this Data Packet

USB4 HS Tunneled USB3 Isochronous Timestamp Packet Members

Note: USB4 HS Tunneled USB3 ITP Members include all members of the Tunneled USB3 Packet.

in.BusICounter: Bus Interval Counter value for ITP, in 1/8 of a millisecond

in.Delta: Time Delta value for ITP

in.BusIAdjCtrl: Bus Interval Adjustment Control value for ITP, specifying the device in control of bus interval adjustment

USB4 HS Tunneled USB3 Data Packet Segment Members

Note: USB4 HS Tunneled USB3 DP Segment Members include all members of the Tunneled USB3 Packet.

in.DataLen: Length of Data field in bytes of the Token Packet.

in.Data: Bit source of Data field Of the Token Packet.

Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits().

USB4 HS Tunneled USB3 Nullified Data Packet Members

Note: USB4 HS Tunneled USB3 Nullified DP Members include all members of the Tunneled USB3 Packet.

in.DataLen: Length of Data field in bytes of the Token Packet.

in.Data: Bit source of Data field Of the Token Packet. Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits().

USB4 LLSM State-Specific Set of Members

Note: Valid for USB4 LLSM State only, undefined for other events.

in.LaneNumber: Value of the Lane Number of the Trace Event. Value in.LaneNumber = 0 means Lane 0, in.LaneNumber = 1 means Lane 1.

in.LLSMState: LLSM State into which the transition occured. Possible values shown below:

LLSM State

Description

_USB4_LLSM_STATE_UNKNOWN

Unknown

_USB4_LLSM_STATE_TRAINING

Training

_USB4_LLSM_STATE_CLD

CLd

_USB4_LLSM_STATE_CL0

CL0

_USB4_LLSM_STATE_CL0S

CL0s

_USB4_LLSM_STATE_CL1

CL1

_USB4_LLSM_STATE_CL2

CL2

_USB4_LLSM_STATE_LANE_BONDING

Lane Bonding

_USB4_LLSM_STATE_DISABLED

Disabled

Transaction-Specific Set of Members

in.TraToken: Token PID for the transaction. Possible values:

const PID_OUT = 0x87;

const PID_IN = 0x96;

const PID_SETUP = 0xB4;

const PID_SPLIT = 0x1E;

const PID_PING = 0x2D;

const PID_EXT = 0x0F;

in.Addr: Device Address value for this Usb transaction.

in.Endp: Device Endpoint Number value for this Usb transaction.

in.TraCompletionFlag: Handshake PID for the transaction (if any). Possible values:

const PID_ACK = 0x4B;

const PID_NAK = 0x5A;

const PID_STALL = 0x78;

const PID_NYET = 0x69;

const PID_ERR = 0x3C;

0xFFFFFFFF – in case no handshake was sent for the transaction.

in.Complete: Flag, signaling if the transaction was complete.

in.XferType: Type of the USB Transfer this transaction belongs to. See Transfer Types for possible values.

in.CtrlDirection: For a Setup transaction, represents the direction of the corresponding Control Transfer.

0 = Host-to-device

1 = Device-to-host

in.FirstInXfer: This flag is set when the transaction is first in the transfer it belongs to.

in.LastInXfer: This flag is set when the transaction is last in the transfer it belongs to.

in.Errors: Error code for the transaction, if any error happened.

If the transaction is a Setup transaction, the following input context members provide values of the corresponding fields of the USB Device Request:

in.ReqType

in.ReqRecipient

in.bRequest

in.wIndex

in.wValue

in.wLength

in.Split: Signals that the transaction is a start-split or complete-split.

in.HubAddr: Value of the Hub Address field, the USB device address of the hub supporting the specified full-/low-speed device for this full-/low-speed transaction.

in.SC: Value of the Start/Complete bit for the split token.

in.Port: Value of the Port field – the port number of the target hub for which this full-/low-speed transaction is destined.

in.S: Value of the Speed bit for the split token.

in.E: Value of the End bit for the split token.

in.ET: Value of the Endpoint Type field for the split token.

in.OTGHostId: For USB On-The-Go transactions, indicates if the A-device is acting as the host (value of 0) or the B-device is acting as the host (value of 1).

in.OTGErrorCode: For USB On-The-Go transactions, indicates error code if non-zero.

in.OTGErrorCodeOffset: For USB On-The-Go transactions with errors, indicates the offset from the first packet in the transaction to the packet with error.

in.PayloadLength: Length (in bytes) of the packet payload. If zero, the transaction does not have any payload.

in.Payload: Bit source of the transaction data payload.

Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits().

Split Transaction-Specific Set of Members

All the input context members that are defined for USB2 transactions are also applicable to Split Transactions. In addition to those, Split Transactions define the following members:

in.TraHalted: Indicates that this split transaction was halted.

Transfer-Specific Set of Members

in.XferType: Type of transfer. Repeats the trace event value for the transfer.

in.Addr: Device Address value for this USB transfer.

in.Endp: Device Endpoint Number value for this USB transfer.

in.Completed: Flag signaling if the transfer was completed.

in.Halted: Flag signaling if the transfer was halted (usually that means STALL handshake sent).

in.CtrlDirection: For a Control Transfer, represents the direction:

0 = Host-to-device

1 = Device-to-host

If the transfer is a Control Transfer, the following input context members provide values of the corresponding fields of the USB Device Request:

in.ReqType

in.ReqRecipient

in.bRequest

in.wIndex

in.wValue

in.wLength

in.ClassicOnHigh: When set, indicates that this transfer was a classic speed transfer that was executed and captured on a high speed branch (upstream from a high speed hub).

in.OTGHostId: For USB On-The-Go transfers, indicates if the A-device is acting as the host (value of 0) or the B-device is acting as the host (value of 1).

in.PayloadLength: Length (in bytes) of the transfer payload. If zero, transfer does not have any payload. Take care not to request payload for the transfers that moved large amounts of data.

in.Payload: Bit source of the transfer payload.

Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits().

Note: Refer to Script decoded fields retrieving functions for information about getting the script decoded values at the Transfer level.

SCSI Operation-Specific Set of Members

SCSI operations define the following members:

in.OperCode: SCSI operation code.

in.Addr: Device address value for this SCSI operation.

in.Tag: SCSI operation tag.

in.Status: SCSI operation status.

Metric parameters which are experessed as following members:

in.XferCount: The total number of transfers that compose this SCSI operation.

in.ResponseTime: Time it took to transmit this SCSI operation on the USB link(s) (VSE Time object).

in.LatencyTime: Time measured from the transmission of the SCSI command to the first data transmitted for this SCSI IO operation (VSE Time object).

in.DataToStatusTime: Time between the end of data transmission for this SCSI operation and the status transfer (VSE Time object).

in.Throughput: payload divided by response time, expressed in kilobytes per second.

in.PldBytes: Number of payload bytes this SCSI operation transferred.

PHY Transaction-Specific Set of Members

PHY Transactions define the following members:

in.Type: PHY Transaction Type. Possible values:

const _SCD1 = 0x01;

const _SCD2 = 0x02;

const _PHY_CAP_5 = 0x03;

const _PHY_CAP_10 = 0x04;

const _PHY_READY = 0x05;

PD Packet-Specific Set of Members

Note: All field values can be retrieved via Input Context or Packet And Script Decoded Fields Retrieving. The following list are exceptions to this rule. Some of these members are additional information to decode packets and are not necessary packet fields.

IMPORTANT: As a general rule, add the "objx_" prefix to all power delivery data object field names to retrieve their value in a given packet.

X is the data object number the field belongs to.

There are some exceptions indicated by the "do not add prefix" sign.

Here is how to use decoder and context methods to retrieve a field's value:

Method 1
field_prefix = "OBJ1_";
field_name = field_prefix + "Rsvd_1";
report_str = GetDecodedPktField (field_name);
Method 2
field_name = "in." + field_prefix + "Rsvd_1";
report_str = FormatEx( FormatString_IntValue, field_name, in.OBJ1_Rsvd_1 );

Information Available Only by Context

The following information can just be accessed using input contexts and cannot be retrieved using Packet and Script Decoded Fields Retrieving Functions:

in.PreambleLength: Indicates the Preamble length in bits.

in.PacketType: The 4-bit Message Type field indicating the type of Message being sent.

Values for Power Delivery Control, Data, Ordered Set Message Types:

_PD_CONTROL_RSV0 = 0,

_PD_CONTROL_GOOD_CRC = 1,

_PD_CONTROL_GOTO_MIN = 2,

_PD_CONTROL_ACCEPT = 3,

_PD_CONTROL_REJECT = 4,

_PD_CONTROL_PING = 5,

_PD_CONTROL_PS_RDY = 6,

_PD_CONTROL_GET_SRC_CAP = 7,

_PD_CONTROL_GET_SINK_CAP = 8,

_PD_CONTROL_DR_SWAP = 9,

_PD_CONTROL_PR_SWAP = 10,

_PD_CONTROL_VCONN_SWAP = 11,

_PD_CONTROL_WAIT = 12,

_PD_CONTROL_SOFT_RESET = 13,

_PD_CONTROL_DATA_RESET = 14,

_PD_CONTROL_DATA_RESET_COMPLETE = 15,

_PD_CONTROL_NOT_SUPPORTED = 16,

_PD_CONTROL_GET_SRC_CAP_EXTENDED = 17,

_PD_CONTROL_GET_STATUS = 18,

_PD_CONTROL_FR_SWAP = 19,

_PD_CONTROL_GET_PPS_STATUS = 20,

_PD_CONTROL_GET_COUNTRY_CODE = 21,

_PD_CONTROL_GET_SNK_CAP_EXTENDED = 22,

_PD_CONTROL_GET_SOURCE_INFO = 23,

_PD_CONTROL_GET_REVISION = 24,


_PD_DATA_SRC_CAP = 33,

_PD_DATA_REQ = 34,

_PD_DATA_BIST = 35,

_PD_DATA_SNK_CAP = 36,

_PD_DATA_BATTERY_STATUS = 37,

_PD_DATA_ALERT = 38,

_PD_DATA_GET_COUNTRY_INFO = 39,

_PD_DATA_ENTER_USB = 40,

_PD_DATA_EPR_REQ = 41,

_PD_DATA_EPR_MODE = 42,

_PD_DATA_SRC_INFO = 43,

_PD_DATA_REVISION = 44,

_PD_DATA_VENDOR_DEF = 47,


_PD_EXTENDED_SRC_CAP_EXTENDED = 65,

_PD_EXTENDED_STATUS = 66,

_PD_EXTENDED_GET_BATTERY_CAP = 67,

_PD_EXTENDED_GET_BATTERY_STATUS = 68,

_PD_EXTENDED_BATTERY_CAP = 69,

_PD_EXTENDED_GET_MANUFACTURER_INFO = 70,

_PD_EXTENDED_MANUFACTURER_INFO = 71,

_PD_EXTENDED_SECURITY_REQ = 72,

_PD_EXTENDED_SECURITY_RESP = 73,

_PD_EXTENDED_FW_UPDATE_REQ = 74,

_PD_EXTENDED_FW_UPDATE_RESP = 75,

_PD_EXTENDED_PPS_STATUS = 76,

_PD_EXTENDED_COUNTRY_INFO = 77,

_PD_EXTENDED_COUNTRY_CODE = 78,

_PD_EXTENDED_SNK_CAP_EXTENDED = 79,

_PD_EXTENDED_EPR_SRC_CAPABILITIES……..= 81,

_PD_EXTENDED_EPR_SNK_CAPABILITIES = 82,

_PD_EXTENDED_VENDOR_DEFINED_EXT = 83


_PD_EXTENDED_CONTROL_EPR_GET_SRC_CAP = 97,

_PD_EXTENDED_CONTROL_EPR_GET_SNK_CAP = 98,

_PD_EXTENDED_CONTROL_EPR_KEEP_ALIVE = 99,

_PD_EXTENDED_CONTROL_EPR_KEEP_ALIVE_ACK = 100,


_PD_MESSAGE_TYPE_END___ = 249


_PD_MSG_EVENT_FAST_POWER_ROLE_SWAP = 0xfa,

_PD_MSG_HARD_RESET = 0xfb,

_PD_MSG_CABLE_RESET = 0xfc,

_PD_OTHER_MSG_BIST_TEST_STREAM = 0xfd,

_PD_MSG_UNKNOWN = 0xfe,

in.SenderPort: The port sent this packet according to data provided by Bus Engine (front end acquizition hardware).

Possible values:

_PD_PORT_UNKNOWN = 0

_PD_PORT_LEFT = 1

_PD_PORT_RIGHT = 2

_PD_PORT_CABLE = 3

in.SOP_Type: Value of SOP Type for Start of Packet

Possible values:

_PD_FRAMING_TYPE_NO_FRAMING = 0,

_PD_FRAMING_TYPE_SOP = 1,

_PD_FRAMING_TYPE_SOP_PRIM = 2,

_PD_FRAMING_TYPE_SOP_DOUBLE_PRIM = 3,

_PD_FRAMING_TYPE_SOP_PRIM_DBG = 4,

_PD_FRAMING_TYPE_SOP_DBL_PRIM_DBG = 5,

_PD_FRAMING_TYPE_HARD_RESET = 6,

_PD_FRAMING_TYPE_CABLE_RESET = 7,

in.DataObjectCount: The 3-bit Number of Data Objects field indicates the number of 32-bit Data Objects that follow the Message Header. When this field is zero the Message is either a Control Message or an unchunked extended message, otherwise the message is either a Data Message or a chunked extended message.

in.OBJX_CapType: Capability type of the data object X which can be either _PD_DATA_SNK_CAP or _PD_DATA_SRC_CAP for Source_Capabilities or Sink_Capabilities capability messages.

in.OBJ1_MinOprCurPow: Minimum Operating Current/Power field in the Request Message. Set to the lowest current the Sink requires to maintain operation. The values returned are in 10mA and 250mW for Current and Power members respectively.

in.OBJ1_MaxOprCurPow: Maximum Operating Current/Power field in the Request Message. Set to the highest current the Sink will ever require. The values returned are in 10mA and 250mW for Current and Power members respectively.

in.OprCurPow: Operating Current field in the Request Data Object. Set to the actual amount of current the Sink needs to operate at a given time. The values returned are in 10mA and 250mW for Current and Power members respectively.

in.BISTFunction: Type of the BIST message function. Possible values:

5: BIST Carrier Mode 2

8: BIST Test Data

The following constants are defined:

_PD_BIST_REQ_TYPE_CARRIER_MODE

_PD_BIST_REQ_TYPE_TEST_DATA

in.IsStructuredVDM: A value of 1 indicates current Vendor Defined Message is a Structured VDM, 0 means an Unstructured VDM.

in.VDMCommand: The VDM Header for a Structured VDM Message defines Commands used to retrieve a list of SVIDs the device supports, to discover the Modes associated with each SVID, and to enter/exit the Modes.

The Commands include:

_PD_VDM_CMD_DISCOVER_IDENTITY: Discover Identity

_PD_VDM_CMD_DISCOVER_SVIDS: Discover SVIDs

_PD_VDM_CMD_DISCOVER_MODES: Discover Modes

_PD_VDM_CMD_ENTER_MODE: Enter Mode

_PD_VDM_CMD_EXIT_MODE: Exit Mode

_PD_VDM_CMD_ATTENTION: Attention

_PD_VDM_CMD_SVID_SPECIFIC_FIRST___

_PD_VDM_CMD_SVID_SPECIFIC_LAST___

_PD_VDM_CMD_SVID_SPECIFIC_1

_PD_VDM_CMD_SVID_SPECIFIC_15

Additional Command space is also reserved for Standard and Vendor use and for future extensions.

in.VDMCommandType: Indicates the type of Command request/response being sent.

Command Type

Meaning

_PD_VDM_CMD_TYPE_INIT

An Initiator sets the field to “Initiator” to indicate that this is a Command request from an Initiator

_PD_VDM_CMD_TYPE_RESP_ACK

Responder ACK. The normal return sent to indicate that the Command request was received and handled normally

_PD_VDM_CMD_TYPE_RESP_NAK

Responder NAK. Returned when the Command request has an invalid parameter (e.g. invalid SVID or Mode) or cannot not be acted upon at this time (e.g. a Mode which has a dependency on another Mode).

_PD_VDM_CMD_TYPE_RESP_BUSY

Responder BUSY. Sent in the response to a VDM when the Responder is unable to respond to the Command request immediately, but the Command request may be retried.

in.VDMVendorID: Unique 16-bit unsigned integer. Assigned by the USB-IF to the Vendor.

in.UndefinedObjectsCount: When data objects are decoded, some data may be recognized as undefined depending on the packet type being decoded, this member gives the number of these undefined data objects.

in.BufferLen: Size of power delivery message in bytes, this includes header and data objects.

Message Header Members

in.Msg_Type (Given in PacketType format in Context too): The Message Type field indicates the type of Message being sent.

in.Rsvd_1: Reserved

in.DR: The 1-bit Port Data Role field indicates the current data role of the Port:

0b UFP

1b DFP

in.Spec_Rev: The 2-bit Specification Revision field indicates the revision of the Power Delivery Specification supported by the Device.

00b – Revision 1.0

01b – Revision 2.0

10b – Revision 3.0

11b – Reserved, not used

Available constants:

_PD_SPEC_REV_1

_PD_SPEC_REV_2

_PD_SPEC_REV_3

_PD_SPEC_REV_UNDEF

in.PR: The 1-bit Port Data Role field indicates the current data role of the Port:

0b UFP

1b DFP

in.Cable_Plug: Indicates whether or not this Message originated from a Cable Plug:

0b Message originated from a DFP or UFP

1b Message originated from a Cable Plug

The Cable Plug field only applies to SOP’ and SOP’’ Packet types.

in.Msg_ID: The 3-bit MessageID field is the value generated by a rolling counter maintained by the originator of the Message.

in.Obj_Cnt: The 3-bit Number of Data Objects field indicates the number of 32-bit Data Objects that follow the Message Header. When this field is zero the Message is a Control Message and when it is non-zero, the Message is a Data Message.

The Number of Data Objects field applies to all SOP* Packet types.

Rev2: in.Rsvd_2: Reserved

Rev3: in.Extended: The 1-bit flag indicates if this is an Extended message or not.

Capability Message

Note: Power Data Objects (PDO) are identified by the Message Header’s Type field. They are used to form Source_Capabilities Messages and Sink_Capabilities Messages.

Note: If the Message Header Type field does not contain a valid value, the fields will be decoded as an undefined.

Source Capabilities Message

Note: There are 4 types of Source Capabilities Message Power Data Objects (PDO) in this category: Fixed Power Supply, Battery Power Supply, Variable Power Supply, and Programmable Power Supply.

This can be decided using in.Supply_Type:

_PD_CAP_PWR_FIXED = 0,

_PD_CAP_PWR_BATTERY = 1,

_PD_CAP_PWR_VARIABLE = 2,


Rev 2.0 : _PD_CAP_PWR_RSVD = 3,

Rev 3.0 : _PD_CAP_PWR_APDO = 3,

Source Fixed Power Supply Data Object Field Names

in.Max_Cur: Maximum Current in 10mA units

in.Voltage: Voltage in 50mV units

in.Peak_Curr:

00 Peak current equals IOC (default)

01 Overload Capabilities:

1. Peak current equals 150% IOC for 1ms @ 5% duty cycle (low current equals 97% IOC for 19ms)

2. Peak current equals 125% IOC for 2ms @ 10% duty cycle (low current equals 97% IOC for 18ms)

3. Peak current equals 110% IOC for 10ms @ 50% duty cycle (low current equals 90% IOC for 10ms)

10 Overload Capabilities:

1. Peak current equals 200% IOC for 1ms @ 5% duty cycle (low current equals 95% IOC for 19ms)

2. Peak current equals 150% IOC for 2ms @ 10% duty cycle (low current equals 94% IOC for 18ms)

3. Peak current equals 125% IOC for 10ms @ 50% duty cycle (low current equals 75% IOC for 10ms)

11 Overload Capabilities:

1. Peak current equals 200% IOC for 1ms @ 5% duty cycle (low current equals 95% IOC for 19ms)

2. Peak current equals 175% IOC for 2ms @ 10% duty cycle (low current equals 92% IOC for 18ms)

3. Peak current equals 150% IOC for 10ms @ 50% duty cycle (low current equals 50% IOC for 10ms)

in.Rsvd: Reserved

in.Unchunked_Ext: The 1-bit flag indicates whether the port supports unchunked extended messages or not.

in.DR_Swap_Supp: Data Role Swap bit. Set when the Port is Type-C (see [USBType-C 1.0]) and supports the DR_Swap Message. This is a static capability that remains fixed for a given device.

in.USB_Com_Cap: USB Communications Capable bit. Only for devices capable of communication over USB data lines (e.g. D+/- or SS Tx/Rx).

in.Ext_Pow: Externally Powered bit.

in.USB_Suspend: Prior to a Contract or when the USB Communications Capable bit is set to zero, this flag is undefined and Sinks follow the rules for suspend as defined in [USB 2.0], [USB 3.1], [USBType-C 1.0] or [BC 1.2]. After a Contract has been negotiated:

If the USB Suspend Supported flag is set, then the Sink follows the [USB 2.0] or [USB 3.1] rules for suspend and resume. A PDUSB Peripheral may draw up to pSnkSusp during suspend; a PDUSB Hub may draw up to pHubSusp during suspend.

If the USB Suspend Supported flag is cleared, then the Sink does not apply the [USB 2.0] or [USB 3.1] rules for suspend and may continue to draw the negotiated power. Note that when USB is suspended, the USB device state is also suspended.

Sinks may indicate to the Source that they would prefer to have the USB Suspend Supported flag cleared by setting the No USB Suspend flag in a Request Message

in.Dual_Role: Dual-Role Power bit. Set when the Port is Dual-Role Power capable i.e. supports the PR_Swap Message. This is a static capability that remains fixed for a given device.

in.Supply_Type: Fixed Supply (00b) PDO

Source Battery Power Supply Data Object Field Names

in.Max_Allowed_Pwr: Maximum Allowable Power in 250mW units

in.Min_Volt: Minimum Voltage in 50mV units

in.Max_Volt: Maximum Voltage in 50mV units

in.Supply_Type: Battery

Source Variable Power Supply Data Object Field Names

in.Max_Cur: Maximum Current in 10mA units

in.Min_Volt: Minimum Voltage in 50mV units

in.Max_Volt: Maximum Voltage in 50mV units

in.Supply_Type: Variable Supply (non-battery)

Source Augmented Power Data Object (APDO) Field Names

Decided using the following member:

in.Sub_Type:

_PD_CAP_APDO_PPS = 0,

_PD_CAP_APDO_EPR_AVS = 1,

_PD_CAP_APDO_SPR_AVS = 2,

_PD_CAP_APDO_RSVD2 = 3,

SPR Programmable Power Supply (PPS) APDO Field Names

in.Max_Cur: Max current in 50mA

in.Rsvd_1: Reserved

in.Min_Volt: Minimum voltage in 100mV

in.Rsvd_2: Reserved

in.Max_Volt: Maximum voltage in 100mV

in.Rsvd_3: Reserved

in.Power_Ltd: PPS Power Limited

in.Sub_Type: 0x00: SPR-PPS

in.Supply_Type: 0x03: APDO

EPR Adjustable Voltage Supply (AVS) APDO Field Names

in.PDP: Power rating in 1W

in.Min_Volt: Minimum voltage in 100mV

in.Rsvd_1: Reserved

in.Max_Volt: Maximum voltage in 100mV

in.Peak_Curr: Peak Current

in.Sub_Type: 0x01: EPR-AVS

in.Supply_Type: 0x03: APDO

SPR Adjustable Voltage Supply (AVS) APDO Field Names

in.Max_Cur_20v: Maximum Current - Range 15-20v

in.Max_Cur_15v: Maximum Current - Range 9-15v

in.Rsvd_1: Reserved

in.Peak_Curr: Peak Current

in.Sub_Type: 0x02: SPR-AVS

in.Supply_Type: 0x03: APDO

Sink Capabilities Message

Note: There are 4 types of Sink Capabilities Message Power Data Objects (PDO) in this category: Fixed Power Supply, Battery Power Supply, Variable Power Supply, and Programmable Power Supply.

Decided using the following member: in.Supply_Type:

_PD_CAP_PWR_FIXED = 0,

_PD_CAP_PWR_BATTERY = 1,

_PD_CAP_PWR_VARIABLE = 2,


Rev 2.0 : _PD_CAP_PWR_RSVD = 3,

Rev 3.0 : _PD_CAP_PWR_APDO = 3,

Sink Fixed Power Supply Data Object Field Names

in.Opr_Cur: Operational Current in 10mA units

in.Voltage: Voltage in 50mV units

in.Rsvd: Reserved

in.DR_Swap_Supp: Data Role Swap bit. Set when the Port is a Type-C DRP (see [USBType-C 1.0]) and supports the DR_Swap Message. This is a static capability that remains fixed for a given device.

in.USB_Com_Cap: USB Communications Capable bit. Only set for devices capable of communication over the USB data lines (e.g. D+/- or SS Tx/Rx).

in.Ext_Pow: The Externally Powered bit

in.Higher_Cap: In the case that the Sink needs more than vSafe5V (e.g. 12V) to provide full functionality, then the Higher Capability bit. Set.

in.Dual_Role: The Dual-Role bit. Set when the Port is Dual-Role Power capable i.e. supports the PR_Swap Message. This is a static capability that remains fixed for a given device.

in.Supply_Type: Fixed supply

Sink Battery Power Supply Data Object Field Names

in.Opr_Pwr: Operational Power in 250mW units

in.Min_Volt: Minimum Voltage in 50mV units

in.Max_Volt: Maximum Voltage in 50mV units

in.Supply_Type: Battery

Sink Variable Power Supply Data Object Field Names

in.Opr_Cur: Operational Current in 10mA units

in.Min_Volt: Minimum Voltage in 50mV units

in.Max_Volt: Maximum Voltage in 50mV units

in.Supply_Type: Variable Supply (non-battery)

Sink Programmable Power Supply APDO Field Names

This can be decided using the following member: in.Sub_Type:

_PD_CAP_APDO_PPS = 0,

_PD_CAP_APDO_EPR_AVS = 1,

_PD_CAP_APDO_RSVD1 = 2,

_PD_CAP_APDO_RSVD2 = 3,

SPR Programmable Power Supply APDO Field Names

in.Max_Cur: Max current in 50mA

in.Rsvd_1: Reserved

in.Min_Volt: Minimum voltage in 100mV

in.Rsvd_2: Reserved

in.Max_Volt: Maximum voltage in 100mV

in.Rsvd_3: Reserved

in.Sub_Type: 0x00: PPS

in.Supply_Type: 0x03: APDO

EPR Programmable Power Supply APDO Field Names

in.PDP: Power rating in 1W

in.Min_Volt: Minimum voltage in 100mV

in.Rsvd_1: Reserved

in.Max_Volt: Maximum voltage in 100mV

in.Rsvd_2: Reserved

in.Sub_Type: 0x01: AVS

in.Supply_Type: 0x03: APDO

Undefined Capabilities Message

in.Object: Undefined capabilities message data

in.Supply_Type: Value of undefined supply type

Request Packet Data Field Names

Note 1: Request packet prefix is always "obj1_"

Note: The following 3 field values can only be accessed using Input Context:

  • in.MinOprCurPow: Minimum Operating Current 10mA units

  • in.MaxOprCurPow: Maximum Operating Power in 250mW units

  • in.OprCurPow: Operating Power in 250mW units

The following field values can be retrieved via the Input Context or Packet And Script Decoded Fields Retrieving Functions.

in.Rsvd_1: Reserved; set to zero

in.Unchunked_Ext: Unchunked Extended Messages Supported

in.No_USB_Suspend: The No USB Suspend

in.USB_Com_cap: The USB Communications Capable

in.Cap_Mismatch: Capability Mismatch

in.OBJ1_Give_Back: GiveBack flag. Indicates that the Sink will respond to a GotoMin Message by reducing its load to the Minimum Operating Current. It will typically be used by a USB Device while charging its battery because a short interruption of the charge will have minimal impact on the user and will allow the Source to manage its load better.

in.Obj_Pos: Indicates the object in the Source_Capabilities Message the RDO refers to.

The value 1 always indicates the 5V Fixed Supply PDO as it is the first object following the Source_Capabilities Message Header. The number 2 refers to the next PDO and so forth.

in.Rsvd_2: Reserved; set to zero

Programmable Power Supply RDO Field Names:

in.Opr_Current: Operating Current 50mA units

in.Output_Voltage: Output Voltage in 20mV

in.Rsvd_3: Reserved

in.Rsvd_4: Reserved

Undefined Data Objects Field Names

Important: Do not add a prefix to these fields.

To retrieve a field value using Packet And Script Decoded Fields Retrieving Functions, the field name format is: Object X

To retrieve a field value using the Input Context, the field name format is: in.Object_X

Where X is a number between 1 and in.UndefinedObjectsCount

BIST Message

in.Function: Type of the BIST message function. Possible values:

2: Returned BIST Counters

5: BIST Carrier Mode

8: BIST Test Data

Other values are reserved.

Depending on BIST message Function, BIST Message Data Objects are decoded as follows:

BIST Returned Counter Packet Data

in.Rsvd: Reserved; set to zero.

in.Err_Cnt: When Request Type is Returned BIST Counters, this field contains the contents of BISTErrorCounter. Otherwise it is set to zero.

in.Function: Type of the BIST message function.

Value is: 2: Returned BIST Counters

BIST Packet Data

in.Rsvd: Reserved; set to zero.

in.Function: Type of the BIST message function

Value is: 2: Returned BIST Counters. Possible values:

5: BIST Carrier Mode

8: BIST Test Data

BIST Test Data

in.Data: Test Data Frame

BIST Test Stream

When in.PacketType is _PD_OTHER_MSG_BIST_TEST_STREAM, the PDO is decoded as a BIST Test Stream.

IMPORTANT: These fields can only be accessed using the Input Context.

in.Mode: Contains the following values:

0: bist test type unknown

1: bist test type carrier mode

in.Length

in.CorruptedDataLen

if in.CorruptedDataLen > 0 following fields are valid:

in.Corrupted_Bits

in.CorruptedDataLastByteUnusedBits

Vendor Defined Message

Vendor Defined VDM Header Field Names

Note: The VDM header prefix is always "obj1_"

For structured VDMs:

in.Cmd:

0 = Reserved, not used

1 = Discover Identity

2 = Discover SVIDs

3 = Discover Modes

4 = Enter Mode

5 = Exit Mode

6 = Attention

7-15 = Reserved, not used

16…31 = SVID Specific Commands

in.Rsvd_1: Set to 0 and ignored

in.Cmd_Type:

00b = Initiator

01b = Responder ACK

10b = Responder NAK

11b = Responder BUSY

in.Obj_Pos: For the Enter Mode, Exit Mode, and Attention Commands:

000b = Reserved and not used.

001b..110b = Index into the list of VDOs to identify the desired Mode VDO

111b = Exit all Active Modes (equivalent of a power on reset). Used only with the Exit Mode Command.

Commands 0..3, 7..15:

000b

001b..111b = Reserved and not used.

SVID Specific Commands (16..31) defined by the SVID.

in.Rsvd_2: For Commands 0..15, set to 0 and ignored. For SVID Specific Commands (16..31), defined by the SVID.

in.VDM_Ver: Version Number of the Structured VDM (not this specification Version):

Version 1.0 = 0

Values 1-3 are Reserved and not used

For unstructured VDMs (Accessed just by GetDecodedPktField function):

Data (15 bits)

Common fields:

in.Type: 1 = Structured VDM

in.Vendor_ID: Unique 16 bit unsigned integer, assigned by the USB-IF

Vendor Defined Unstructured Data Objects Field Names

Important: Do not add a prefix to these fields.

To retrieve a field value using Packet And Script Decoded Fields Retrieving Functions, the field name format is: Object X

To retrieve a field value using the Input Context, the field name format is: in.Object_X

Where X is a number between 1 and in.DataObjectCount

Vendor Defined Discover ID Response Id Header VDO Field Names

in.Vendor_ID: Unique 16-bit unsigned integer. Assigned by the USB-IF to the Vendor.

in.Rsvd: Reserved

in.Connector_Type: Connector Type

00b – Reserved, for compatibility with legacy systems.

01b – Reserved, not used.

10b – USB Type-C Receptacle

11b – USB Type-C Plug

in.DFP_Type: (rev 3.0)

DFP Type Values:

000b – Undefined

001b – PDUSB Hub

010b – PDUSB Host

011b – Power Brick

100b – Alternate Mode Controller (AMC)

101b … 111b – Reserved

Available constants:

_PD_VDM_DFP_TYPE_UNDEFINED

_PD_VDM_DFP_TYPE_HUB

_PD_VDM_DFP_TYPE_HOST

_PD_VDM_DFP_TYPE_POWER_BRICK

_PD_VDM_DFP_TYPE_ALTERNATE_MODE_CONTROLLER

in.Modal_Opr:

Modal Operation Supported:

Set to one if the product supports Modal Operation. Set to zero otherwise

in.Prod_Type:

Product Type UFP:

000b – Undefined

001b – Hub

010b – Peripheral

011b – PSD (Rev 3.0 only Rev 2.0 is Reserved)

100b - Reserved

101b - AMA

110b - VPD (Rev 3.0 only Rev 2.0 is Reserved)

111b - Reserved

Product Type Cable Plug:

000b – Undefined

001b..010 – Reserved

011b – Passive Cable

100b - Active Cable

101b..111b - Reserved

Available constants:

_PD_VDM_PRODUCT_TYPE_UNDEFINED

_PD_VDM_PRODUCT_TYPE_HUB

_PD_VDM_PRODUCT_TYPE_PERIPHERAL

_PD_VDM_PRODUCT_TYPE_PSD

_PD_VDM_PRODUCT_TYPE_PASSIVE_CABLE

_PD_VDM_PRODUCT_TYPE_ACTIVE_CABLE

_PD_VDM_PRODUCT_TYPE_ALTERNATE_MODE_ADAPTER

_PD_VDM_PRODUCT_TYPE_VPD

in.Device_Cap:

Data Capable as a USB Device:

Set to one if the product is capable of enumerating as a USB Device.

Set to zero otherwise.

in.Host_Cap:

Data Capable as USB Host:

Set to one if the product is capable of enumerating USB Devices.

Set to zero otherwise.

Vendor Defined Discover ID Response Cert State VDO Field Names

in.XID: Assigned by USB-IF

Vendor Defined Discover ID Response Product VDO Field Names

in.bcd_Device: 16-bit unsigned integer. USB Product ID

in.Product_ID: 16-bit unsigned integer. bcdDevice

Vendor Defined Discover ID Response Cable VDO Field Names (Rev_2.0)

in.USB_SS: USB Super speed Signaling Support

000b = USB 2.0 only

001b = [USB 3.1] Gen1

010b = [USB 3.1] Gen1 and Gen2

011b.. 111b = Reserved, not used

in.SOPDPrime_Con: SOP” controller present?

1 = SOP” controller present

0 = No SOP” controller present

in.VBUS_Cable: VBUS through cable

0 = No

1 = Yes

in.VBUS_Curr_Cap: VBUS Current Handling Capability

00b = VBUS not through cable

01b = 3A

10b = 5A

11b = Reserved, not used

in.SS_RX2: SSRX2 Directionality Support

0 = Fixed

1 = Configurable

in.SS_RX1: SSRX1 Directionality Support

0 = Fixed

1 = Configurable

in.SS_TX2: SSTX2 Directionality Support

0 = Fixed

1 = Configurable

in.SS_TX1: SSTX1 Directionality Support

0 = Fixed

1 = Configurable

in.Cable_Term: Cable Termination Type

00b = Both ends Passive, VCONN not required

01b = Both ends Passive, VCONN required

10b = One end Active, one end passive, VCONN required

11b = Both ends Active, VCONN required

in.Cable_Latency: Cable Latency

0000b – Reserved, not used

0001b – <10ns (~1m)

0010b – 10ns to 20ns (~2m)

0011b – 20ns to 30ns (~3m)

0100b – 30ns to 40ns (~4m)

0101b – 40ns to 50ns (~5m)

0110b – 50ns to 60ns (~6m)

0111b – 60ns to 70ns (~7m)

1000b –1000ns (~100m)

1001b –2000ns (~200m)

1010b – 3000ns (~300m)

1011b ….1111b Reserved, not used

Includes latency of electronics in Active Cable

in.Type_C_to_Plg: Type-C plug to Plug/Receptacle

0 = Plug

1 = Receptacle (not valid when B19..18 set to Type-C or Captive)

in.Type_C_to: Type-C plug to TypeA/B/C/Captive

00b = Type-A

01b = Type-B

10b = Type-C

11b = Captive

in.Rsvd: Reserved; set to zero

in.FW_Ver: Firmware Version

0000b..1111b assigned by the VID owner

in.HW_Ver: HW Version

0000b..1111b assigned by the VID owner

Vendor Defined Discover ID Response UFP VDO 1 Field Names (Rev_3.0)

in.USB_Highest_Speed: USB Highest Speed

000b = USB 2.0 only, no SuperSpeed support

001b = [USB 3.2] Gen1

010b = [USB 3.2] / [USB4] Gen2

011b = [USB4] Gen3

100b…111b = Reserved, not used

in.Alternate_Modes: Alternate Modes

Bit 0 = Supports [TBT3] Alternate Mode

Bit 1 = Supports Alternate Modes that reconfigure the signals on the [USB Type-C 2.0] connector – except for [TBT3]

Bit 2 = Supports Alternate Modes that do not reconfigure the signals on the [USB Type-C 2.0] connector

in.RSVD1: Reserved

in.Device_Capability: Device Capability

Bit 0 = [USB 2.0] Device Capable

Bit 1 = [USB 2.0] Device Capable (Billboard only)

Bit 2 = [USB 3.2] Device Capable

Bit 3 = [USB4] Device Capable

in.RSVD2: Reserved

in.UFP_VDO_Version: UFP VDO Version

000b – Version 1

001b … 111b – Reserved and not used

Vendor Defined Discover ID Response UFP VDO 2 Field Names (Rev_3.0)

in.USB3_Max_Power: USB3 Max Power. Power in watts required for full functionality excluding any power required for battery charging or for redistribution in [USB 3.2] operation.

in.USB3_Min_Power: USB3 Min Power. Minimum power in watts required to function in [USB 3.2] operation.

in.RSVD1: Reserved

in.USB4_Max_Power: USB4 Max Power. Power in watts required for full functionality excluding any power required for battery charging or for redistribution in [USB4] operation.

in.USB4_Min_Power: USB4 Min Power. Minimum power in watts required to function in [USB4] operation.

in.RSVD2: Reserved

Note: if UFP VDO version is 1.0, and 1.1, the above fields will be available. If the version is higher, the following field is only accessible:

in.Padding: Pad Object which should be zero value.

Vendor Defined Discover ID Response DFP VDO Field Names (Rev_3.0)

in.Port_Number: Port Number. Unique port number to identify a specific port on a multi-port device.

in.RSVD1: Reserved

in.Host_Capability: Host Capability

Bit 0 = [USB 2.0] Host Capable

Bit 1 = [USB 3.2] Host Capable

Bit 2 = [USB4] Host Capable

in.RSVD2: Reserved

in.DFP_VDO_Version: DFP VDO Version

000b – Version 1

001b … 111b – Reserved and not used

Vendor Defined Discover ID Response Passive Cable VDO Field Names (Rev_3.0)

in.USB_Highest_Speed: USB Highest Speed

000b = USB 2.0 only, no SuperSpeed support

001b = [USB 3.2] Gen1

010b = [USB 3.2] / [USB4] Gen2

011b = [USB4] Gen3

100b…111b = Reserved, not used

in.Rsvd_1: Reserved

in.VBUS_Curr_Cap: VBUS Current Handling Capability

00b = VBUS not through cable

01b = 3A

10b = 5A

11b = Reserved, not used

in.Rsvd_2: Reserved

in.Max_VBus: Maximum Cable VBUS Voltage

00b – 20V

01b – 30V

10b – 40V

11b – 50V

in.Cable_Term: Cable Termination Type

00b = Both ends Passive, VCONN not required

01b = Both ends Passive, VCONN required

10b = One end Active, one end passive, VCONN required

11b = Both ends Active, VCONN required

in.Cable_Latency: Cable Latency 0000b – Reserved, not used

0001b – <10ns (~1m)

0010b – 10ns to 20ns (~2m)

0011b – 20ns to 30ns (~3m)

0100b – 30ns to 40ns (~4m)

0101b – 40ns to 50ns (~5m)

0110b – 50ns to 60ns (~6m)

0111b – 60ns to 70ns (~7m)

1000b –1000ns (~100m)

1001b –2000ns (~200m)

1010b – 3000ns (~300m)

1011b ….1111b Reserved, not used

Includes latency of electronics in Active Cable

in.Rsvd_3: Reserved

in.Type_C_to: Type-C plug to Type-C / Captive

00b = Reserved

01b = Reserved

10b = Type-C

11b = Captive

in.Rsvd_4: Reserved

in.VDO_Ver: VDO Version

000b – Version 1

001b … 111b – Reserved

in.FW_Ver: Firmware Version

0000b..1111b assigned by the VID owner

in.HW_Ver: HW Version

0000b..1111b assigned by the VID owner

Vendor Defined Discover ID Response Active Cable VDO 1 Field Names (Rev_3.0)

in.USB_Highest_Speed: USB Highest Speed

000b = USB 2.0 only, no SuperSpeed support

001b = [USB 3.2] Gen1

010b = [USB 3.2] / [USB4] Gen2

011b = [USB4] Gen3

100b = [USB4] Gen4

101b…111b = Reserved, not used

in.SOPDPrime_Con: SOP” controller present?

1 = SOP” controller present

0 = No SOP” controller present

in.VBUS_Cable: VBUS through cable

0 = No

1 = Yes

in.VBUS_Curr_Cap:

When VBUS Through Cable is “No”, this field is ignored.
When VBUS Though Cable is “Yes”:
00b = USB Type-C Default Current
01b = 3A
10b = 5A
11b = Reserved, not used.

in.SBU_Type:

When SBU Supported = 1, this bit is ignored
When SBU Supported = 0:
0 = SBU is passive
1 = SBU is active

in.SBU_Supported:

0 = SBUs connections supported
1 = SBU connections are not supported

in.MaxVBus: Maximum Cable VBUS Voltage

00b – 20V

01b – 30V

10b – 40V

11b – 50V

in.Cable_Term: Cable Termination Type

00b = Both ends Passive, VCONN not required

01b = Both ends Passive, VCONN required

10b = One end Active, one end passive, VCONN required

11b = Both ends Active, VCONN required

in.Cable_Latency: Cable Latency 0000b – Reserved, not used

0001b – <10ns (~1m)

0010b – 10ns to 20ns (~2m)

0011b – 20ns to 30ns (~3m)

0100b – 30ns to 40ns (~4m)

0101b – 40ns to 50ns (~5m)

0110b – 50ns to 60ns (~6m)

0111b – 60ns to 70ns (~7m)

1000b –1000ns (~100m)

1001b –2000ns (~200m)

1010b – 3000ns (~300m)

1011b ….1111b Reserved, not used

Includes latency of electronics in Active Cable

in.Rsvd_1: Reserved

in.Type_C_to: Type-C plug to Type-C / Captive

00b = Reserved

01b = Reserved

10b = Type-C

11b = Captive

in.Rsvd_2: Reserved; set to zero

in.VDO_Ver: VDO Version

010b – Version 1.2

000b, 001b, 011 … 111b – Reserved

in.FW_Ver: Firmware Version

0000b..1111b assigned by the VID owner

in.HW_Ver: HW Version

0000b..1111b assigned by the VID owner

Vendor Defined Discover ID Response Active Cable VDO 2 Field Names (Rev_3.0)

in.USB_Gen: USB Gen

0b = Gen 1
1b = Gen 2 or higher

Note: See VDO1 USB Highest Speed for details of Gen supported.

in.USB4_Asymmetric_Mode_Supp:

0 = No
1 = Yes

in.Opt_Isolated_Act_Cable:

0 = No
1 = Yes

in.USB_Lanes_Supp:

0 = One lane
1 = Two lanes

in.USB_3_2_Supp:

0 = USB 3.2 supported
1 = USB 3.2 not supported

in.USB_2_Supp:

0 = USB2.0 supported
1 = USB2.0 not supported

in.USB2_Hub_Hops: Number of USB2.0 ‘hub hops’ cable consumes. Set to 0 if USB 2.0 not supported.

in.USB4_Supp:

0 = USB4 supported
1 = USB4 not supported

in.Active_Element:

0 = Active Redriver
1 = Active Retimer

in.Phys_Conn:

0 = Copper
1 = Optical

in.U3ToU0_Trans_Mode:

00: U3 to U0 direct
01: U3 to U0 through U3S

in.U3_CLd_Power:

000: >10mW
001: 5-10mW
010: 1-5mW
011: 0.5-1mW
100: 0.2-0.5mW
101: 50-200µW
110: <50µW
111: Reserved, not used

in.Rsvd_3: Reserved

in.Shutdown_Temp: The temperature at which the cable goes into thermal shutdown so as
not to exceed the allowable plug skin temperature.

in.Max_Oper_Temp: The maximum internal operating temperature. It may or may not reflect
the plug’s skin temperature.

Vendor Defined Discover ID Response Alternate Mode VDO Field Names

in.USB_Highest_Speed: USB Highest Speed

000b = [USB 2.0] only

001b = [USB3.2] Gen1 and USB 2.0

010b = [USB3.2] Gen1, Gen2 and USB 2.0

011b = [USB 2.0] billboard only

100b.. 111b = Reserved, not used

in.VBUS_Req: VBUS required

0 = No

1 = Yes

in.VCONN_Req: VCONN required

0 = No

1 = Yes

in.VCONN_Pow: VCONN power needed by adapter for full functionality

000b = 1W

001b = 1.5W

010b = 2W

011b = 3W

100b = 4W

101b = 5W

110b = 6W

111b = Reserved, not used

in.SS_RX2: SSRX2 Directionality Support (Rev 2.0)

0 = Fixed

1 = Configurable

in.SS_RX1: SSRX1 Directionality Support (Rev 2.0)

0 = Fixed

1 = Configurable

in.SS_TX2: SSTX2 Directionality Support (Rev 2.0)

0 = Fixed

1 = Configurable

in.SS_TX1: SSTX1 Directionality Support (Rev 2.0)

0 = Fixed

1 = Configurable

in.Rsvd: Reserved; set to zero

in.VDO_Ver: VDO Version (Rev 3.0)

000b = Version 1

001b … 111b – Reserved

in.FW_Ver: Firmware Version

0000b..1111b assigned by the VID owner

in.HW_Ver: HW Version

0000b..1111b assigned by the VID owner

VCONN Powered USB Device VDO (Rev 3.0 only)

in.CT_Supp:

1b – the VPD supports Charge Through
0b – the VPD does not support Charge Through

in.Ground_Impd:

Charge Through Support bit = 1b: Ground impedance through the VPD in 1 mΩ
increments. Values less than 10 mΩ are reserved and not be used.
Charge Through Support bit = 0b: Reserved; set to zero

in.VBus_Impd:

Charge Through Support bit = 1b: Vbus impedance through the VPD in 2 mΩ
increments. Values less than 10 mΩ are Reserved and not used.
Charge Through Support bit = 0b: Reserved; set to zero

in.Rsvd_1: Reserved

in.Charge_Through_Curr_Supp:

Charge Through Support bit = 1b:sop

0b = 3A capable

1b = 5A capable

Charge Through Support bit = 0b: Reserved; set to zero

in.VBus_Max_Vol:

Maximum Cable VBUS Voltage:
00b – 20V
01b – 30V
10b – 40V
11b – 50V

in.Rsvd_2: Reserved

in.VDO_Ver:

Version 1.0 = 000b
Values 001b…111b are Reserved and not used

in.FW_Ver: Firmware Version

0000b..1111b assigned by the VID owner

in.HW_Ver: HW Version

0000b..1111b assigned by the VID owner

Vendor Defined Discover SVIDs Response VDO Field Names

Important: Do not add a prefix to these fields.

SVID_[(obj_num - 1) * 2 + 1]: SVID n+1 16 bit unsigned integer, assigned by the USB-IF or 0x0000 if this is the last VDO and the Responder supports an odd or even number of SVIDs.

SVID_[(obj_num - 1) * 2]: SVID n 16 bit unsigned integer, assigned by the USB-IF or 0x0000 if this is the last VDO and the Responder supports an even number of SVIDs. Where obj_num is a number between 1 and in.DataObjectCount

Vendor Defined Discover Modes Response VDO Field Names

Important: Do not add a prefix to these fields.

To retrieve a field value using Packet And Script Decoded Fields Retrieving Functions, the field name format is: Mode X

To retrieve a field value using the Input Context, the field name format is: Mode_X

Where X is a number between 1 and in.DataObjectCount

DisplayPort (VDM)

The prefix has to be added for all fields related to DisplayPort. All these fields values would get extracted using GetHexScriptField() function or "in" context.

Note: The "X" in the prefix (OBJX) indicates the Data Object Number starting from 2 (e.g. in.OBJ2_<field_name>)

SOP DisplayPort Capabilities (VDO in Responder Discover Modes VDM) Field Names

in.OBJX_Port_Cap: Port Capability.

Length: 2 bits

00: Reserved Value

01: UFP_D-capable

10: DFP_D-capable

11: Both DFP_D and UFP_D-capable

in.OBJX_Sig_Supp: Signaling for Transport of DisplayPort Protocol.

Length: 4 bits

xxx1: Supports DP bit rates and electrical settings

xx1x: Reserved

x1xx: Reserved

1xxx: Reserved

in.OBJX_Recep_Ind: Receptacle Indication.

Length: 1 bit

0: DisplayPort interface is presented on a USB Type-C Plug

1: DisplayPort interface is presented on a USB Type-C Receptacle

in.OBJX_USB_r2_0: USB r2.0 Signaling Not Used.

Length: 1 bit

0: USB r2.0 signaling may be required on A6 – A7 or B6 – B7 while in DisplayPort Configuration

1: USB r2.0 signaling is not required on A6 – A7 or B6 – B7 while in DisplayPort Configuration

in.OBJX_DFP_D_Pins: DFP_D Pin Assignments Supported.

Length: 8 bits

00000000: DFP_D pin assignments are not supported

xxxxxxx1: Reserved

xxxxxx1x: Reserved

xxxxx1xx: Pin assignment C is supported

xxxx1xxx: Pin assignment D is supported

xxx1xxxx: Pin assignment E is supported

xx1xxxxx: Reserved

x1xxxxxx: Reserved

1xxxxxxx: Reserved

in.OBJX_UFP_D_Pins: UFP_D Pin Assignments Supported.

Length: 8 bits

00000000: UFP_D pin assignments are not supported

xxxxxxx1: Reserved

xxxxxx1x: Reserved

xxxxx1xx: Pin assignment C is supported

xxxx1xxx: Pin assignment D is supported

xxx1xxxx: Pin assignment E is supported

xx1xxxxx: Reserved

x1xxxxxx: Reserved

1xxxxxxx: Reserved

in.OBJX_Rsvd: Reserved.

Length: 6 bits

in.OBJX_DPAM_Ver: DPAM version.

Length: 2 bits

00: Version 2.0 or earlier
01: Version 2.1 or higher

SOP’ Cable DisplayPort Capabilities (VDO in Responder USB PD Discover Modes VDM) Field Names

in.OBJX_Rsvd_1: Reserved

Length: 2 bits

in.OBJX_Sig_Supp: Signaling for Transport of DisplayPort Protocol.

Length: 4 bits

xxx1: Supports all defined DP bit rates up to HBR3.

xx1x: Supports DP bit rate UHBR10

x1xx: Supports DP bit rate of UHBR20

1xxx: Reserved

in.OBJX_Rsvd_2: Reserved.

Length: 2 bit

in.OBJX_DFP_D_Pins: DP Source Device Pin Assignments Supported.

Length: 8 bits

0C: Pin Assignments C and D are supported

10: USB-C and DP connector Pin Assignment E is supported

All other values are reserved

in.OBJX_UFP_D_Pins: UFP_D Pin Assignments Supported.

Length: 8 bits

0C: Pin Assignments C and D are supported

10: USB-C and DP connector Pin Assignment E is supported

All other values are reserved

in.OBJX_Rsvd_3: Reserved.

Length: 2 bits

in.OBJX_UHBR13_5: UHBR13.5.

Length: 1 bit

0: UHBR13.5 is not supported.

1: UHBR13.5 is supported

in.OBJX_Rsvd_4: Reserved.

Length: 1 bit

in.OBJX_Cable_Type: Active Component.

Length: 2 bits

00: Passive.

01: Active re-timer.

10b = Active re-driver.

11: Optical

in.OBJX_DPAM_Ver: DPAM version.

Length: 2 bits

00: Version 2.0 or earlier

01: Version 2.1 or higher

SOP DisplayPort Status Field Names

in.OBJ2_Conn: DFP_D/UFP_D Connected.

Length: 2 bits

00: Neither DFP_D nor UFP_D is connected, or adaptor is disabled

01: DFP_D is connected

10: UFP_D is connected

11: Both DFP_D and UFP_D are connected

in.OBJ2_Pow_Low: Power Low.

Length: 1 bit

0: Adaptor is functioning normally or is disabled

1: Adaptor has detected low power and disabled DisplayPort support

in.OBJ2_Adaptor_Func: Enabled.

Length: 1 bit

0: Adaptor DisplayPort functionality is disabled

1: Adaptor DisplayPort functionality is enabled and operational

in.OBJ2_Multi_Func: Multi-function Preferred.

Length: 1 bit

0: No preference for multi-function

1: Multi-function is preferred

in.OBJ2_USB_Config: USB Configuration Request.

Length: 1 bit

0: Maintain current configuration

1: Request switch to USB Configuration (if in DisplayPort Configuration)

in.OBJ2_Exit_DP: Exit DisplayPort Mode Request.

Length: 1 bit

0: Maintain current mode

1: Request exit from DisplayPort Mode (if in DisplayPort Mode)

in.OBJ2_HPD_State: HPD State.

Length: 1 bit

0: HPD_Low

1: HPD_High

in.OBJ2_IRQ_HPD: IRQ_HPD.

Length: 1 bit

0: No IRQ_HPD since last status message

1: IRQ_HPD

in.OBJ2_NO_DPAM_SUSPEND: NO_DPAM_SUSPEND.

Length: 1 bit

0: UFP_U/ DP Sink device has no preference for entry into low power state

1: UFP_U/ DP Sink device prefers not to enter low power state

in.OBJ2_Rsvd: Reserved.

Length: 22 bits

SOP’ Active Cable DisplayPort Status Update Field Names

in.OBJ2_Rsvd_1: Reserved.

Length: 3 bits

in.OBJ2_Adapter_Func: Enabled.

Length: 1 bit

0: Active cable DP functionality is disabled

1: Active cable DP functionality is enabled and operational

in.OBJ2_Rsvd_2: Reserved.

Length: 28 bits

SOP DisplayPort Configurations Field Names

in.OBJ2_Set_Config: Select Configuration.

Length: 2 bits

00: Set configuration for USB

01: Set configuration for UFP_U as a DP Source device

10: Set configuration for UFP_U as a DP Sink device

11: Reserved

in.OBJ2_Set_Sig: Signaling for transport of DisplayPort Protocol.

Length: 4 bits

0001: Supports all defined DP bit rates up to HBR3 or capability is unknown

0010: Supports DP bit rate UHBR10

0100: Supports DP bit rate of UHBR20

All other values are reserved for higher bit rates.

in.OBJ2_Rsvd_1: Reserved.

Length: 2 bits

in.OBJ2_Config_UFP_U: Configure UFP_U Pin Assignment.

Length: 8 bits

00000000: De-select pin assignment

00000100: Select pin Assignment C

00001000: Select pin Assignment D

00010000: Select pin Assignment E

All other values are reserved

in.OBJ2_Rsvd_2: Reserved.

Length: 10 bits

in.OBJ2_Cable_UHBR13_5_Support: Cable UHBR13.5 Support.

Length: 1 bit

0 = Not supported or capability is unknown
1 = Supported

in.OBJ2_Rsvd_3: Reserved.

Length: 1 bit

in.OBJ2_ Cable_Type: Cable Active Component.

Length: 2 bits

00: Passive or cable type is unknown

01: Active re-timer.

10: Active re-driver.

11: Optical

in.OBJ2_DPAM_Ver: DPAM Version.

Length: 2 bits

00: Version 2.0 or earlier

01: Version 2.1 or higher

SOP’ Active Cable DisplayPort Configurations Field Names

in.OBJ2_Set_Config: Select Configuration.

Length: 2 bits

00: Select configuration for USB

01: Select configuration for active cable as DP Source device

10: Select configuration for active cable as a DP Sink device

11: Reserved

in.OBJ2_Set_Sig: Signaling for transport of DisplayPort Protocol.

Length: 4 bits

0000: Bit rate is unspecified

0001: Select DP bit rates and electrical settings

All other values are reserved

in.OBJ2_Rsvd_1: Reserved.

Length: 2 bits

in.OBJ2_Config_UFP_U: Configure UFP_U Pin Assignment.

Length: 8 bits

00000000: De-select pin assignment

00000100: Select pin Assignment C

00001000: Select pin Assignment D

00010000: Select pin Assignment E

All other values are reserved

in.OBJ2_Rsvd_2: Reserved.

Length: 16 bits

Battery Status Message

Note: The Battery Status packet prefix is always obj1_

in.Rsvd: Reserved

in.Battery_Info: Bit field information about battery as per spec.

in.Battery_PC: Battery’s state of charge.

Alert Message

Note: The Alert packet prefix is always obj1_

in.Event_Type: Extended Alert Event Type

Length: 4 bits

0000: Reserved

0001: Power state change (DFP only)

0010: Power button press (UFP only)

0011: Power button release (UFP only)

0100: Controller initiated wake e.g., Wake on Lan (UFP only)

All other values are reserved

in.Rsvd: Reserved

Length: 12 bits

in.Hot_Swap_Batteries: 4-bit field. When the Battery Status Change bit is set, indicates which Hot Swappable Batteries have had a status change (lsb corresponds to Battery 4, msb corresponds to Battery 7).

in.Fixed_Batteries: 4-bit field. When the Battery Status Change bit is set, indicates which Fixed Batteries have had a status change (lsb corresponds to Battery 0, msb corresponds to Battery 3).

in.Rsvd_2: Reserved.

in.Battery_Status_Change: A Battery's power state changed (charging/discharging/idle); for Hot Swappable Batteries, also set when a Battery is attached or detached.

in.OCP: Over-Current Protection event. Set by a Source when its output current exceeds its limits. Reserved for a Sink.

in.OTP: Over-Temperature Protection event. Set when a Source or Sink shuts down due to over-temperature.

in.Operating_Condition_Change: Set when a Source or Sink enters or exits a temperature 'warning' or 'over-temperature' state, or (in Programmable Power Supply Mode) toggles between Constant Voltage and Current Limit.

in.Source_Input_Change: The Source's or Sink's input changed (for example, the AC input is removed or restored, or the active Battery source changes).

in.OVP: Over-Voltage Protection event. Set by a Sink when its output voltage exceeds its limits; may also be set by a Source.

in.Extended_Alert_Event: The alert is an Extended Alert; the specific event is given by in.Event_Type (Extended Alert Event Type).

in.Alert_Type: The complete 8-bit "Type of Alert" byte, retained for backward compatibility. Its bits map, in order, to the eight fields above (bit 0 = in.Rsvd_2 to bit 7 = in.Extended_Alert_Event).

Get Country Info Message

Note: The Get Country Info packet prefix is always obj1_

in.Rsvd: Reserved

in.Country_Code:

Alpha-2 Country
Code defined by [ISO 3166]

Enter_USB Message

Note: Enter_USB messages do not require an OBJx_ prefix, as they only contain a single Data Object.

in.Rsvd_1: Set to zero.

in.Host_Present: Connected to a host

in.TBT_Support: TBT3 is supported by the host’s USB4 Connection Manager

in.DP_Support: USB4 DP tunneling supported by the host

in.PCIe_Support: USB4 PCIe tunneling supported by the host

in.Cable_Current:

00b = VBUS is not supported

10b = 3A

11b = 5A

in.Cable_Type:

00b: Passive

01b: Active Re-timer

10b: Active Re-driver

11b: Optically Isolated

in.Cable_Speed:

000b: USB 2.0 only, no SuperSpeed support

001b: USB 3.2 Gen1

010b: USB 3.2 Gen2 and [USB4] Gen2

011b: USB4 Gen3

100b: USB4 Gen4

in.Rsvd_2: Set to zero.

in.USB3_DRD: Capable of operating as a USB 3.2 Device

in.USB4_DRD: Capable of operating as a USB4 Device

in.Rsvd_3: Set to zero.

in.USB_Mode:

000b: USB 2.0

001b: USB 3.2

010b: USB4

in.Rsvd_4: Set to zero.

EPR Request

Refer to Request Packet Data Field Names for RDO, and Source Capabilities Message for PDO.

EPR Mode

in.Reserved: Reserved field

in.Data: Provides additional information.

Data = EPR Sink Operational PDP, If Action is _PD_EPR_MODE_ACTION_ENTER

Data = 0, if Action is

_PD_EPR_MODE_ACTION_ENTER_ACK

_PD_EPR_MODE_ACTION_ENTER_SUCCEED

_PD_EPR_MODE_ACTION_EXIT

If Action = _PD_EPR_MODE_ACTION_ENTER_FAILED

Data = 0: Unknown cause

Data = 1: Cable not EPR capable

Data = 2: Source failed to become VCONN source

Data = 3: EPR Mode Capable bit not set in RDO

Data = 4: Source unable to enter EPR Mode at this time

Data = 5: EPR Mode Capable bit not set in PDO

in.Action: Describes the action that is to be taken by the recipient of the EPR_Mode message:

_PD_EPR_MODE_ACTION_ENTER = 1

_PD_EPR_MODE_ACTION_ENTER_ACK = 2

_PD_EPR_MODE_ACTION_ENTER_SUCCEED= 3

_PD_EPR_MODE_ACTION_ENTER_FAILED = 4

_PD_EPR_MODE_ACTION_EXIT = 5

Source Info

in.OBJ1_Port_Reported_PDP: Power the port is offering in 1W steps.

in.OBJ1_Port_Present_PDP: Power the port is presently capable of supplying in 1W steps.

in.OBJ1_Port_Maximum_PDP: Maximum Power the Port will provide in 1W steps.

in.OBJ1_Reserved: Reserved.

in.OBJ1_Port_Type:

0 = Managed capacity port

1 = Guaranteed capacity port

in.OBJ2_Port_Guaranteed_PDP: Minimum Power the Port is guaranteed to always be able to provide in 0.5W steps.

in.OBJ2_Port_Maximum_PDP: Maximum Power the Port will provide in 0.5W steps.

in.OBJ2_Reserved: Reserved.

in.OBJ2_DPS_PORT: Indicates whether the Source will behave as a Dynamic Power Source.

0 = Non DPS Port

1 = DPS Port

in.OBJ2_Port_Type:

0 = Managed capacity port

1 = Guaranteed capacity port

Revision

in.Reserved: Reserved data.

in.Version_Minor: Version minor.

in.Version_Major: Version major.

in.Revision_Minor: Revision minor.

in.Revision_Major: Revision major.

Extended Control

in.Type: Extended control message type. The values can be 1 to 4. The rest values are reserved.

in.Data: Corresponding data.

Source Capabilities Extended Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of Data Object. This applies to both Chunked and Unchunked modes.

in.VID: Vendor ID (assigned by the USB-IF)

in.PID: Product ID (assigned by the manufacturer)

in.XID: Value provided by the USB-IF to assign to product

in.FW_Ver: Firmware version number

in.HW_Ver: Hardware version number

in.Vol_Reg: Voltage Regulation

in.Holdup_Time: Holdup Time

in.Compliance: Compliance, the standards the Source is compliant with

in.Touch_Curr: Touch Current

in.Peak_Curr_1: Peak Current 1

in.Peak_Curr_2: Peak Current 2

in.Peak_Curr_3: Peak Current 3

in.Touch_Temp: Temperature conforms to:

0 = [IEC 60950-1] (default)

1 = [IEC 62368-1] TS1

2 = [IEC 62368-1] TS2

All other values Reserved

in.Source_Inputs: Source Inputs identifies the possible inputs that provide power to the Source

in.Hot_Swap_Batteries: The number of hot swappable batteries that source supports

in.Fixed_Batteries: The number of fixed batteries that source supports

Status Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Internal_Temp: Source or Sink’s internal temperature in degrees centigrade

Special values:

0 = feature not supported

1 = temperature is less than 2°C

in.Flags: (non-SOP only)

bit0: Thermal Shutdown

bit1..7: Reserved

in.Src_Input: Indicates which supplies are presently powering the Source

in.Fixed_Battery_Input: Fixed Battery Input presents

in.Hot_Swap_Battery_Input: Hot Swappable Battery Input presents

in.Event_Flags:

bit 0: Reserved

bit 1: OCP

bit 2: OTP

bit 3: OVP

bit 4: CF mode when set, CV mode when cleared

bit 5..7:Reserved

in.Temp_Status:

bit 0: Reserved

bit 1..2:

00 – Not Supported
01 – Normal
10 – Warning
11 – Over temperature

bit 3..7: Reserved

in.Power_Status:

bit 0: Reserved

bit 1: Source power limited due to cable supported current

bit 2: Source power limited due to insufficient power available while sourcing other ports

bit 3: Source power limited due to insufficient external power

bit 4: Source power limited due to Event Flags in place (Event Flags must also be set)

bit 5: Source power limited due to temperature

bit 6..7: Reserved

in.Power_State_Change:

bit 0..2: New power state

bit 3..5: New power state indicator

bit 6..7: Reserved

Get Battery Cap Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Hot_Swap_Ref: Requested hot swappable batteries

in.Fixed_Ref: Requested fixed batteries

Get Battery Status Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Hot_Swap_Ref: Requested hot swappable batteries

in.Fixed_Ref: Requested fixed batteries

Battery Capabilities Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.VID: Vendor ID (assigned by the USB-IF)

in.PID: Product ID (assigned by the manufacturer)

in.Design_Cap: Battery’s Design Capacity

in.Last_Full_Charge_Cap: Battery’s Last Full Charge Capacity

in.Battery_Type: Bit field indicating the type of battery

Get Manufacturer Info Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Target: Manufacturer Info Target

in.Hot_Swap_Ref: If Target is battery (01b), this contains the hot swappable battery number reference, which is the number of the Battery indexed from zero.

in.Fixed_Ref: If Target is battery (01b), this contains the fixed battery number reference, which is the number of the Battery indexed from zero.

Manufacturer Info Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.VID: Vendor ID (assigned by the USB-IF)

in.PID: Product ID (assigned by the manufacturer)

in.String: Vendor defined byte array

Security Request Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.DataLen: Length of the data in this message

in.Security_Req_Data: Security request data

Security Response Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.DataLen: Length of the data in this message

in.Security_Resp_Data: Security response data

Firmware Update Request Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.DataLen: Length of the data in this message

in.FW_Update_Req_Data: Firmware update request data

Firmware Update Response Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.DataLen: Length of the data in this message

in.FW_Update_Resp_Data: Firmware update response data

PPS Status Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Output_Voltage: Source’s output voltage in 20mV units. When set to 0xFFFF, the Source does not support this field.

in.Output_Current: Source’s output current in 50mA units. When set to 0xFF, the Source does not support this field.

in.Rsvd_1: Reserved

in.PTF:

PTF: 00 – Not Supported
PTF: 01 – Normal
PTF: 10 – Warning
PTF: 11 – Over temperature

in.OMF: OMF set when operating in Current Limit mode, and cleared when operating in Constant Voltage mode.

in.Rsvd_2: Reserved

Country Info Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Country_Code: Alpha-2 Country Code received in the corresponding Get_Country_Info Message

in.Rsvd: Reserved

in.Specific_Data: 0…256 bytes of content defined by the country’s authority.

Country Code Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.Num: Number of country codes in the message

in.Country_Code: Byte stream of Alpha-2 Country Code

Sink Capabilities Extended Message

Note: Extended Messages do not have an OBJx_ prefix, as there is no definition of a Data Object. This applies to both Chunked and Unchunked modes.

in.VID: Vendor ID (assigned by the USB-IF)

in.PID: Product ID (assigned by the manufacturer)

in.XID: Value provided by the USB-IF assigned to the product

in.FW_Ver: Firmware version number

in.HW_Ver: Hardware version number

in.SKEDB_Version:

SKEDB Version (not the specification Version):
Version 1.0 = 1
Values 0 and 2-255 are reserved and not used

in.Load_Step:

bit 0..1:

00b: 150mA/µs Load Step (default)
01b: 500mA/µs Load Step

11b…10b: Reserved and not used

bit 2..7: Reserved

in.Load_Characteristics:

bit 0..4: Percent overload in 10% increments. Values higher than 25 (11001b) are clipped to 250%. 00000b is the default.

bit 5..10: Overload period in 20ms when bits 0-4 non-zero.

bit 11..14: Duty cycle in 5% increments when bits 0-4 are non-zero

bit 15: Can tolerate VBUS Voltage droop

in.Compliance:

bit 0: Requires LPS Source when set

bit 1: Requires PS1 Source when set

bit 2: Requires PS2 Source when set

bit 3..7: Reserved

in.Touch_Temp:

Temperature conforms to:

0 = Not Applicable

1 = [IEC 60950-1] (default)

2 = [IEC 62368-1] TS1

3 = [IEC 62368-1] TS2

All other values Reserved

in.Hot_Swapp_Batt_Num: The number of hot swappable batteries that source supports

in.Fixed_Batt_Num: The number of fixed batteries that source supports

in.Sink_Modes:

bit 0: 1: PPS charging supported

bit 1: 1: VBUS powered
bit 2: 1: Mains powered

bit 3: 1: Battery powered

bit 4: 1: Battery essentially unlimited

bit 5..7: Reserved

in.Sink_Min_PDP:

bit 0..6: The Minimum PDP required by the Sink to operate without consuming any power from its battery, should it have one

bit 7: Reserved

in.Sink_Op_PDP:

bit 0..6: The PDP the Sink requires to operate normally

bit 7: Reserved

in.Sink_Max_PDP:

bit 0..6: The Maximum PDP the Sink can consume to operate and charge its battery, should it have one.

bit 7: Reserved

in.EPR_Sink_Min_PDP: The Minimum PDP required by the EPR Sink to operate without consuming any power from its battery, should it have one.

in.EPR_Sink_Op_PDP: The PDP the EPR Sink requires to operate normally. For Sinks with a battery, it is the PDP Rating of the charger supplied with it or recommended for it.

in.EPR_Sink_Max_PDP: The Maximum PDP the EPR Sink can consume to operate and charge its battery, should it have one.

Vendor Defined Extented

Has an unstructured VDM Header. See Vendor Defined VDM Header Field Names.

Power Delivery Events

In the case of an event packet, in addition to in.PacketType, the following fields are available:

in.EventType: Indicates the type of event, possible values:

_PD_EVENT_TYPE_FAST_POWER_ROLE_SWAP => Fast Role Swap Signal Event

Unknown Packet

If message could not be decoded, it is an unknown packet containing following fields:

in.HasPacketFraming

if in.HasPacketFraming == 1, in.ProbableMessageType contains probable message type

PD Transaction-Specific Set of Members

PD Transactions are exactly like underlying packets.

Note that when a transaction contains more than one chunked packet underneath, it represents the complete unchunked packet.

PD Transfer-Specific Set of Members

USB Authentication (available in PD Security Messages)

Since both request and response of a PD Security set of messages are available in one context, to prevent conflict the respective header fields are being separated through a prefix. Request header fields are prefixed with Req_ and Response ones are prefixed with Resp_. The payload data has its own prefix per Message type as follows.

Request Header fields

in.Req_Version: USB Type-C Authentication Specification Version

in.Req_Msg_Type: Authentication Message Type

Available constants:

_AUTH_MSG_REQ_GET_DIGESTS

_AUTH_MSG_REQ_GET_CERTIFICATE

_AUTH_MSG_REQ_CHALLENGE

in.Req_Param1: Message type specific parameter 1 as per USB Type-C Authentication specifications

in.Req_Param2: Message type specific parameter 2 as per USB Type-C Authentication specifications

GET_CERTIFICATE Request Payload fields

in.GetCertificate_Offset: Offset in bytes from the start of the Certificate Chain to where the read request begins

in.GetCertificate_Length: Length in bytes of the read request

CHALLENGE Request Payload fields

in.Challenge_Nonce: Random 32-byte nonce chosen by the Authentication Initiator

Response Header fields

in.Resp_Version: USB Type-C Authentication Specification Version

in.Resp_Msg_Type: Authentication Message Type

Available constants:

_AUTH_MSG_RESP_DIGESTS

_AUTH_MSG_RESP_CERTIFICATE

_AUTH_MSG_RESP_CHALLENGE_AUTH

_AUTH_MSG_RESP_ERROR

in.Resp_Param1: Message type specific parameter 1 as per USB Type-C Authentication specifications

in.Resp_Param2: Message type specific parameter 2 as per USB Type-C Authentication specifications

DIGESTS Response Payload fields

in.Digests_Count: Count of digests that this message contains

in.Digests_Digest_0: First 32-byte SHA-256 digest of the first Certificate Chain

in.Digests_Digest_1: Second 32-byte SHA-256 digest of the first Certificate Chain

in.Digests_Digest_[Digests_Count-1]: Last 32-byte SHA-256 digest of the first Certificate Chain

CERTIFICATE Response Payload fields

in.Certificate_CertChain: Requested contents of target Certificate Chain

in.Certificate_CertChainLength: Length of the Certificate Chain

CHALLENGE_AUTH Response Payload fields

in.Challenge_Auth_MinProtocolVersion: Minimum protocol version supported by this Device

in.Challenge_Auth_MaxProtocolVersion: Maximum protocol version supported by this Device

in.Challenge_Auth_Capabilities: As per spec

in.Challenge_Auth_Reserved: Reserved

in.Challenge_Auth_CertChainHash: 32-byte SHA256 hash of the Certificate Chain used for Authentication

in.Challenge_Auth_Salt: 32-byte value chosen by the Authentication Responder

in.Challenge_Auth_ContextHash: As per spec

in.Challenge_Auth_Signature: As per spec

CC Packet-Specific Set of Members

Note: All field values can be retrieved via Input Context or Packet And Script Decoded Fields Retrieving.

Information Available Only by Context

Note: If these variables are used in Exerciser mode, Left means DUT and Right means Exerciser

in.CC1_Pins_Changed: Indicates if CC1 pin state changed or not

0: State not changed

1: State changed

in.Ad_Curr_Changed: Indicates whether Advertised Current Changed or not

0: State not changed

1: State changed

in.Left_CurrState: Current state of Left port

in.Left_PrevState: Previous state of Left port

in.Left_MiddleState: If the port reached a middle state in its transition from Previous to Current, this field provided that. Otherwise, its value is _INVALID_STATE (0).

in.Right_CurrState: Current state of Right port

in.Right_PrevState: Previous State state of Right port

in.Right_MiddleState: If the port reached a middle state in its transition from Previous to Current, this field provided that. Otherwise, its value is _INVALID_STATE (0).

Possible state values are:

_SRC_UNATTACHED => Unattached.SRC

_SRC_ATTACH_WAIT => AttachWait.SRC

_SRC_ATTACHED => Attached.SRC

_SRC_TRY => Try.SRC

_SRC_TRY_WAIT => TryWait.SRC

_SNK_UNATTACHED => Unattached.SNK

_SNK_ATTACH_WAIT => AttachWait.SNK

_SNK_ATTACHED => Attached.SNK

_SNK_TRY => Try.SNK

_SNK_TRY_WAIT => TryWait.SNK

_AUDIO_ACCESSORY_ATTACHED => AudioAccessory

_DEBUG_ACCESSORY_ATTACHED => DebugAccessory.SRC

_POWERED_ACCESSORY_ATTACHED => PoweredAccessory

_AUDIO_ADAPTER => auxiliary state to show the audio device

_DEBUG_ADAPTER => DebugAccessory.SNK

_DISABLED => the port is disabled

_UNDEFINED_STATE => the state is unknown

_XXX_ATTACHED => either Attached.Source or Attached.Sink, but unclear which one

in.Left_StateChange: Indicates if left port (DUT port in exerciser mode) state changed or not

0: State not changed

1: State changed

in.Left_CC1StateChange: Indicates if CC1 port state changed or not

0: State not changed

1: State changed

in.Left_CC2StateChange: Indicates if CC2 port state changed or not

0: State not changed

1: State changed

in.Right_StateChange: Indicates if right port (Exerciser port in exerciser mode) state changed or not

0: State not changed

1: State changed

in.Right_CC1StateChange: Indicates if CC1 port state changed or not

0: State not changed

1: State changed

in.Right_CC2StateChange: Indicates if CC2 port state changed or not

0: State not changed

1: State changed

CC Message

in.CC1_Pins: Indicates CC1 pin connection status

0: Not Connected

1: Connected

in.Ad_Curr: Current Rp value that can be any of the following:

_CC_RP_NONE

_CC_RP_DEF

_CC_RP_15A

_CC_RP_30A

in.Left_CC1: Current left CC1 port state

in.Left_CC2: Current left CC2 port state

in.Right_CC1: Current right CC1 port state

in.Right_CC2: Current right CC2 port state

Port states can contain following values:

_CC_PORT_STATE_UNKNOWN => state is unknown

_CC_PORT_STATE_OPEN => port is disabled and state is open

_CC_PORT_STATE_RP => Rp

_CC_PORT_STATE_RD => Rd

_CC_PORT_STATE_RA => Ra

_CC_PORT_STATE_VCONN => VCONN

_CC_PORT_STATE_RD_RA => state is unclear; it is either Rd or Ra

_CC_PORT_STATE_RD_RA_OPEN => state is unclear; it is Rd, Ra or Open

_CC_PORT_STATE_RP_VCONN => state is unclear; it is either Rp or VCONN

_CC_PORT_STATE_RP_VCONN_OPEN => state is unclear; it is Rp, VCONNor Open

USB4 Operation-Specific Set of Members

in.Type: Type of operation. Possible values shown below:

Operation type

Description

_USB4_OP_TYPE_DROM_READ

DROM Read Router Operation

_USB4_OP_TYPE_QUERY_DP_RESOURCE_AVAILABILITY

Query DP Resource Availability Router Operation

_USB4_OP_TYPE_ALLOCATE_DP_RESOURCE

Allocate DP Resource Router Operation

_USB4_OP_TYPE_DEALLOCATE_DP_RESOURCE

De-allocate DP Resource Router Operation

_USB4_OP_TYPE_NVM_WRITE

NVM Write Router Operation

_USB4_OP_TYPE_NVM_AUTHENTICATE_WRITE

NVM Authenticate Write Router Operation

_USB4_OP_TYPE_NVM_READ

NVM Read Router Operation

_USB4_OP_TYPE_NVM_SET_OFFSET

NVM Set Offset Router Operation

_USB4_OP_TYPE_GET_NVM_SECTOR_SIZE

Get NVM Sector Size Router Operation

_USB4_OP_TYPE_GET_PCIE_DOWNSTREAM_ENTRY_MAPPING

Get PCIe Downstream Entry Mapping Router Operation

_USB4_OP_TYPE_GET_CAPABILITIES

Get Capabilities Router Operation

_USB4_OP_TYPE_SET_CAPABILITIES

Set Capabilities Router Operation

_USB4_OP_TYPE_BUFFER_ALLOCATION_REQUEST

Buffer Allocation Request Router Operation

_USB4_OP_TYPE_BLOCK_SIDEBAND_PORT_OPERATIONS

Block Sideband Port Operations Router Operation

_USB4_OP_TYPE_UNBLOCK_SIDEBAND_PORT_OPERATIONS

Unblock Sideband Port Operations Router Operation

_USB4_OP_TYPE_GET_CONTAINER_ID

Get Container-ID Router Operation

_USB4_OP_TYPE_UNKNOWN

Unknown Operation

in.IsBonded: Gets a value indicating whether an operation is transferred on a bonded link or not. Value in.IsBonded = 0 means that Lanes are unbonded, in.IsBonded = 1 means that Lanes are bonded.

in.LaneNumber: Gets the number of lane on which operation is transferred (or started, in Bonded mode). Value in.LaneNumber = 0 means Lane 0, in.LaneNumber = 1 means Lane 1.

in.TopologyId: Topology ID value for this USB4 operation.

in.AdapterNum: Adapter Number value for this USB4 operation.

in.StatusIsSet: Indicates Status can be retrieved from this USB4 operation.

in.Status: Status value for this USB4 operation.

in.AddressIsSet: Indicates Address can be retrieved from this USB4 operation.

in.Address: Address value for this this USB4 operation.

in.DataSizeIsSet: Indicates DataSize can be retrieved from this USB4 operation.

in.DataSize: Data Size value for this this USB4 operation.

in.EntryNum: Size of EntryTypes array.

Note: Valid for DROM Read router operations only; undefined for other operation types.

in.EntryTypes: Array that contains Entry Type values for this USB4 DROM Read router operation.

Note: Valid for DROM Read router operations only; undefined for other operation types.

Each element can have one of the values in the table below:

Entry type

Description

_USB4_OP_DROM_READ_ENTRY_TYPE_USB4_HEADER_WITH_PADDING

USB4 DROM Header with padding

_USB4_OP_DROM_READ_ENTRY_TYPE_TBT3_ID_AND_HEADER

TBT3 DROM ID and Header

_USB4_OP_DROM_READ_ENTRY_TYPE_UNUSED_ADAPTER_ENTRY

Unused Adapter Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_DP_ADAPTER_ENTRY

DP Adapter Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_TBT3_LANE_ADAPTER_ENTRY

Lane Adapter Entry (TBT3 only)

_USB4_OP_DROM_READ_ENTRY_TYPE_TBT3_PCIE_US_ADAPTER_PORT_ENTRY

PCIe Upstream Adapter Entry (TBT3 only)

_USB4_OP_DROM_READ_ENTRY_TYPE_TBT3_PCIE_DS_ADAPTER_PORT_ENTRY

PCIe Downstream Adapter Entry (TBT3 only)

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_RESERVED_ENTRY

Reserved Generic Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_VENDOR_SPECIFIC_ENTRY

Vendor Specific Generic Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_ASCII_VENDOR_NAME_ENTRY

ASCII Vendor Name Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_ASCII_MODEL_NAME_ENTRY

ASCII Model Name Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_TMU_MINIMUM_REQUESTED_MODE_ENTRY

TMU Minimum Requested Mode Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_PRODUCT_DESCRIPTOR_ENTRY

Product Descriptor Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_SERIAL_NUMBER_ENTRY

Serial Number Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_USB_PORT_MAPPING_ENTRY

USB Port Mapping Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_UTF16_VENDOR_NAME_ENTRY

UTF16 Vendor Name Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_GENERIC_UTF16_MODEL_NAME_ENTRY

UTF16 Model Name Entry

_USB4_OP_DROM_READ_ENTRY_TYPE_UNKNOWN

Entry Type Unknown

in.PayloadLength: Length (in bytes) of the operation payload. If zero, operation does not have any payload. Care should be taken not to request payload for the operations that moved large amounts of data.

in.Payload: Bit source of the operation payload.

Note: Extract any necessary information using GetNBits(), NextNBits(), or PeekNBits().

Note: Refer to Script decoded fields retrieving functions for information about getting the script decoded values at the USB4 Operation level.