Log Entry Types

The reference C and Python code define a number of log entry types. Each entry type is defined by a set of named fields where each field has a specific data type. The log entry types are defined in wlan_exp/log/entry_types.py. The documentation below is generated from these log entry type definitions.

NODE_INFO

Details about the node hardware and its configuration. Node info values are static after boot.

Entry type ID: 1

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when log entry created
wlan_mac_addr uint64 MAC address of station
high_sw_id uint8

ID of CPU_HIGH project

Constants defined for this field:

  • AP: 0x1
  • STA: 0x2
  • IBSS: 0x3
low_sw_id uint8

ID of CPU_LOW project

Constants defined for this field:

  • DCF: 0x1
  • NOMAC: 0x2
padding uint16 padding for alignment
high_sw_config uint32 Configuration of CPU_HIGH
low_sw_config uint32 Configuration of CPU_LOW
node_id uint32 Node ID, as set during wlan_exp init
platform_id uint32 Platform ID
serial_num uint32 Node serial number
wlan_exp_version uint32 Version of wlan_exp
max_tx_power_dbm int16 Maximum transmit power
min_tx_power_dbm int16 Minimum transmit power
cpu_high_compilation_date 12S CPU High Compilation Date string
cpu_high_compilation_time 12S CPU High Compilation Time string
cpu_low_compilation_date 12S CPU Low Compilation Date string
cpu_low_compilation_time 12S CPU Low Compilation Time string

EXP_INFO

Header for generic experiment info entries created by the user application. The payload of the EXP_INFO entry is not described by the Python entry type. User code must access the payload in the binary log data directly.

Entry type ID: 2

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when log entry created
info_type uint32 Exp info type - arbitrary value supplied by application
msg_len uint32 Message length in bytes

NODE_TEMPERATURE

Record of the FPGA system monitor die temperature. This entry is only created when directed by a wlan_exp command. Temperature values are stored as 32-bit unsigned integers. To convert to degrees Celcius, apply (((float)temp_u32)/(65536.0*0.00198421639)) - 273.15

Entry type ID: 4

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when log entry created
temp_current uint32 Current FPGA die temperature (deg C)
temp_min uint32 Minimum FPGA die temperature (deg C) since FPGA configuration or sysmon reset
temp_max uint32 Maximum FPGA die temperature (deg C) since FPGA configuration or sysmon reset

TIME_INFO

Record of a time base event at the node. This log entry is used to enable parsing of log data recorded before and after changes to the node’s microsecond MAC timer. This entry also allows a wlan_exp controler to write the current host time to the node log without affecting the node’s MAC timer value. This enables adjustment of log entry timestamps to real timestamps in post-proessing.

Entry type ID: 6

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when log entry created (before any time change is applied)
time_id uint32 Random ID value included in wlan_exp TIME_INFO command; used to find common entries across nodes
reason uint32

Reason code for TIME_INFO log entry creation

Constants defined for this field:

  • SYSTEM: 0x0
  • WLAN_EXP_SET_TIME: 0x1
  • WLAN_EXP_ADD_LOG: 0x2
mac_timestamp uint64 New value of MAC Time in microseconds
system_timestamp uint64 Value of System Time in microseconds
host_timestamp uint64 Host time in microseconds-since-epoch; 0xFFFFFFFFFFFFFFFF if unknown

RX_OFDM

Rx events from OFDM PHY. These log entries will only be created for packets that are passed to the high-level MAC code in CPU High. If the low-level MAC filter drops the packet, it will not be logged. For full “monitor mode” ensure the low-level MAC filter is configured to pass all receptions up to CPU High.

Entry type ID: 10

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds at PHY RX_START
timestamp_frac uint8 Fractional part of timestamp (units of 6.25ns)
phy_samp_rate uint8 PHY sampling rate in MSps
length uint16 Length of payload in bytes
cfo_est int32 Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
mcs uint8 MCS index, in [0:7]
phy_mode uint8

PHY mode index, in [0:2]

Constants defined for this field:

  • NONHT: 0x1
  • HTMF: 0x2
  • DSSS: 0x0
ant_mode uint8

Antenna mode: [1,2,3,4] for SISO Rx on RF [A,B,C,D]

Constants defined for this field:

  • RF_A: 0x1
  • RF_C: 0x3
  • RF_B: 0x2
  • RF_D: 0x4
power int8 Rx power in dBm
padding0 uint8  
pkt_type uint8

Packet type, first frame control byte of 802.11 header

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
channel uint8 Channel (center frequency) index
padding1 uint8  
rx_gain_index uint8 Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
padding2 uint8  
flags uint16

1-bit flags

Constants defined for this field:

  • FCS_GOOD: 0x1
  • DUPLICATE: 0x2
  • LTG_PYLD: 0x40
  • LTG: 0x80
  • UNEXPECTED_RESPONSE: 0x4
chan_est (64,2)i2 OFDM Rx channel estimates, packed as [(uint16)I (uint16)Q] values, one per subcarrier
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 24uint8 First 24 bytes of MAC payload, typically the 802.11 MAC header

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number

RX_OFDM_LTG

LTG Rx events from OFDM PHY. These log entries will only be created for packets that are passed to the high-level MAC code in CPU High. If the low-level MAC filter drops the packet, it will not be logged. For full “monitor mode” ensure the low-level MAC filter is configured to pass all receptions up to CPU High.

Entry type ID: 11

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds at PHY RX_START
timestamp_frac uint8 Fractional part of timestamp (units of 6.25ns)
phy_samp_rate uint8 PHY sampling rate in MSps
length uint16 Length of payload in bytes
cfo_est int32 Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
mcs uint8 MCS index, in [0:7]
phy_mode uint8

PHY mode index, in [0:2]

Constants defined for this field:

  • NONHT: 0x1
  • HTMF: 0x2
  • DSSS: 0x0
ant_mode uint8

Antenna mode: [1,2,3,4] for SISO Rx on RF [A,B,C,D]

Constants defined for this field:

  • RF_A: 0x1
  • RF_C: 0x3
  • RF_B: 0x2
  • RF_D: 0x4
power int8 Rx power in dBm
padding0 uint8  
pkt_type uint8

Packet type, first frame control byte of 802.11 header

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
channel uint8 Channel (center frequency) index
padding1 uint8  
rx_gain_index uint8 Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
padding2 uint8  
flags uint16

1-bit flags

Constants defined for this field:

  • FCS_GOOD: 0x1
  • DUPLICATE: 0x2
  • LTG_PYLD: 0x40
  • LTG: 0x80
  • UNEXPECTED_RESPONSE: 0x4
chan_est (64,2)i2 OFDM Rx channel estimates, packed as [(uint16)I (uint16)Q] values, one per subcarrier
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 44uint8 First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number
ltg_uniq_seq uint64 Unique sequence number for LTG packet
ltg_flow_id uint64

LTG Flow ID, calculated as:

16LSB: LTG instance ID

48MSB: Destination MAC address

RX_DSSS

Rx events from DSSS PHY. These log entries will only be created for packets that are passed to the high-level MAC code in CPU High. If the low-level MAC filter drops the packet, it will not be logged. For full “monitor mode” ensure the low-level MAC filter is configured to pass all receptions up to CPU High.

Entry type ID: 15

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds at PHY RX_START
timestamp_frac uint8 Fractional part of timestamp (units of 6.25ns)
phy_samp_rate uint8 PHY sampling rate in MSps
length uint16 Length of payload in bytes
cfo_est int32 Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
mcs uint8 MCS index, in [0:7]
phy_mode uint8

PHY mode index, in [0:2]

Constants defined for this field:

  • NONHT: 0x1
  • HTMF: 0x2
  • DSSS: 0x0
ant_mode uint8

Antenna mode: [1,2,3,4] for SISO Rx on RF [A,B,C,D]

Constants defined for this field:

  • RF_A: 0x1
  • RF_C: 0x3
  • RF_B: 0x2
  • RF_D: 0x4
power int8 Rx power in dBm
padding0 uint8  
pkt_type uint8

Packet type, first frame control byte of 802.11 header

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
channel uint8 Channel (center frequency) index
padding1 uint8  
rx_gain_index uint8 Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
padding2 uint8  
flags uint16

1-bit flags

Constants defined for this field:

  • FCS_GOOD: 0x1
  • DUPLICATE: 0x2
  • LTG_PYLD: 0x40
  • LTG: 0x80
  • UNEXPECTED_RESPONSE: 0x4
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 24uint8 First 24 bytes of MAC payload, typically the 802.11 MAC header

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number

TX_HIGH

Tx events in CPU High, logged for each data and management frame created and enqueued in CPU High. See TX_LOW for log entries of actual Tx events, including re-transmissions. The time values in this log entry can be used to determine time in queue (time_to_accept), time taken by CPU Low for all Tx attempts (time_to_done) and total time from creation to completion (time_to_accept+time_to_done).

Entry type ID: 20

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when packet was created, immediately before it was enqueued
time_to_accept uint32 Time duration in microseconds between packet creation and acceptance by frame_transmit() in CPU Low
time_to_done uint32 Time duration in microseconds between packet acceptance by CPU Low and completion of all transmissions by CPU Low
uniq_seq uint64 Unique sequence number for Tx packet; 12 LSB of this used for 802.11 MAC header sequence number
padding0 uint32  
num_tx uint16 Number of Tx attempts that were made for this packet
length uint16 Length in bytes of MPDU; includes MAC header, payload and FCS
padding1 uint8  
pkt_type uint8

Packet type, first frame control byte of 802.11 header

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
queue_id uint16 Tx queue ID from which the packet was retrieved
queue_occupancy uint16 Occupancy of the Tx queue immediately after this packet was enqueued
flags uint16

1-bit flags

Constants defined for this field:

  • SUCCESSFUL: 0x1
  • LTG_PYLD: 0x40
  • LTG: 0x80
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 24uint8 First 24 bytes of MAC payload, typically the 802.11 MAC header

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number

TX_HIGH_LTG

Tx events in CPU High, logged for each data and management frame created and enqueued in CPU High. See TX_LOW for log entries of actual Tx events, including re-transmissions. The time values in this log entry can be used to determine time in queue (time_to_accept), time taken by CPU Low for all Tx attempts (time_to_done) and total time from creation to completion (time_to_accept+time_to_done).

Entry type ID: 21

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when packet was created, immediately before it was enqueued
time_to_accept uint32 Time duration in microseconds between packet creation and acceptance by frame_transmit() in CPU Low
time_to_done uint32 Time duration in microseconds between packet acceptance by CPU Low and completion of all transmissions by CPU Low
uniq_seq uint64 Unique sequence number for Tx packet; 12 LSB of this used for 802.11 MAC header sequence number
padding0 uint32  
num_tx uint16 Number of Tx attempts that were made for this packet
length uint16 Length in bytes of MPDU; includes MAC header, payload and FCS
padding1 uint8  
pkt_type uint8

Packet type, first frame control byte of 802.11 header

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
queue_id uint16 Tx queue ID from which the packet was retrieved
queue_occupancy uint16 Occupancy of the Tx queue immediately after this packet was enqueued
flags uint16

1-bit flags

Constants defined for this field:

  • SUCCESSFUL: 0x1
  • LTG_PYLD: 0x40
  • LTG: 0x80
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 44uint8 First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number
ltg_uniq_seq uint64 Unique sequence number for LTG packet
ltg_flow_id uint64

LTG Flow ID, calculated as:

16LSB: LTG instance ID

48MSB: Destination MAC address

TX_LOW

Record of actual PHY transmission. At least one TX_LOW will be logged for every TX_HIGH entry. Multiple TX_LOW entries may be created for the same TX_HIGH entry if the low-level MAC re-transmitted the frame. Use the uniq_seq fields to match TX_HIGH and TX_LOW entries to find records common to the same MPDU.

Entry type ID: 25

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when packet transmission actually started (PHY TX_START time)
uniq_seq uint64 Unique sequence number of original MPDU
mcs uint8 MCS index in [0:7]
phy_mode uint8

PHY mode index, in [1:2]

Constants defined for this field:

  • NONHT: 0x1
  • HTMF: 0x2
  • DSSS: 0x0
ant_mode uint8

PHY antenna mode in [0x10, 0x20, 0x30, 0x40]

Constants defined for this field:

  • RF_A: 0x10
  • RF_C: 0x30
  • RF_B: 0x20
  • RF_D: 0x40
tx_power int8 Tx power in dBm
reserved0 uint8  
channel uint8 Channel (center frequency) index
length uint16 Length in bytes of MPDU; includes MAC header, payload and FCS
num_slots int16 Number of backoff slots allotted prior to this transmission; may not have been used for initial Tx (attempt_number==1); A value of -1 in this field means no backoff occured
cw uint16 Contention window value at time of this Tx
pkt_type uint8

Packet type, (first frame control byte of 802.11 header)

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
flags uint8

1-bit Flags

Constants defined for this field:

  • RECEIVED_RESPONSE: 0x1
  • LTG_PYLD: 0x80
  • LTG: 0x40
timestamp_frac uint8 Fractional part of Tx timestamp (units of 6.25ns)
phy_samp_rate uint8 PHY Sampling Rate Mode
attempt_number uint16 Transmission index for this attempt, starting at 1 (1 = first Tx)
reserved1 uint16  
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 24uint8 First 24 bytes of MAC payload, typically the 802.11 MAC header

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number

TX_LOW_LTG

Record of actual PHY transmission. At least one TX_LOW will be logged for every TX_HIGH entry. Multiple TX_LOW entries may be created for the same TX_HIGH entry if the low-level MAC re-transmitted the frame. Use the uniq_seq fields to match TX_HIGH and TX_LOW entries to find records common to the same MPDU.

Entry type ID: 26

Field Data Type Description
timestamp uint64 Value of MAC Time in microseconds when packet transmission actually started (PHY TX_START time)
uniq_seq uint64 Unique sequence number of original MPDU
mcs uint8 MCS index in [0:7]
phy_mode uint8

PHY mode index, in [1:2]

Constants defined for this field:

  • NONHT: 0x1
  • HTMF: 0x2
  • DSSS: 0x0
ant_mode uint8

PHY antenna mode in [0x10, 0x20, 0x30, 0x40]

Constants defined for this field:

  • RF_A: 0x10
  • RF_C: 0x30
  • RF_B: 0x20
  • RF_D: 0x40
tx_power int8 Tx power in dBm
reserved0 uint8  
channel uint8 Channel (center frequency) index
length uint16 Length in bytes of MPDU; includes MAC header, payload and FCS
num_slots int16 Number of backoff slots allotted prior to this transmission; may not have been used for initial Tx (attempt_number==1); A value of -1 in this field means no backoff occured
cw uint16 Contention window value at time of this Tx
pkt_type uint8

Packet type, (first frame control byte of 802.11 header)

Constants defined for this field:

  • DEAUTH: 0xC0
  • BLOCK_ACK: 0x94
  • CTS: 0xC4
  • ACK: 0xD4
  • AUTH: 0xB0
  • BEACON: 0x80
  • DISASSOC: 0xA0
  • NULLDATA: 0x48
  • REASSOC_REQ: 0x20
  • DATA: 0x8
  • BLOCK_ACK_REQ: 0x84
  • PROBE_REQ: 0x40
  • PROBE_RESP: 0x50
  • QOSDATA: 0x88
  • REASSOC_RESP: 0x30
  • ASSOC_RESP: 0x10
  • ASSOC_REQ: 0x0
  • RTS: 0xB4
  • ACTION: 0xD0
flags uint8

1-bit Flags

Constants defined for this field:

  • RECEIVED_RESPONSE: 0x1
  • LTG_PYLD: 0x80
  • LTG: 0x40
timestamp_frac uint8 Fractional part of Tx timestamp (units of 6.25ns)
phy_samp_rate uint8 PHY Sampling Rate Mode
attempt_number uint16 Transmission index for this attempt, starting at 1 (1 = first Tx)
reserved1 uint16  
mac_payload_len uint32 Length in bytes of MAC payload recorded in log for this packet
mac_payload 44uint8 First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID

The following fields are populated when the log entry is part of a numpy array generated via the {{{generate_numpy_array}}} method. These fields are calculated from the underlying bytes in the raw log entries and are stored in more convenient formats tha the raw log fields. For example, these MAC address fields are 48-bit values stored in 64-bit integers. These integer addresses are much easier to use when filtering Tx/Rx log entries using numpy and pandas.

Field Data Type Description
addr1 uint64 MAC Header Address 1
addr2 uint64 MAC Header Address 2
addr3 uint64 MAC Header Address 3
mac_seq uint16 MAC Header Sequence Number
ltg_uniq_seq uint64 Unique sequence number for LTG packet
ltg_flow_id uint64

LTG Flow ID, calculated as:

16LSB: LTG instance ID

48MSB: Destination MAC address