source: ReferenceDesigns/w3_802.11/python/wlan_exp/docs/source/log_entry_types.rst

Last change on this file was 6321, checked in by murphpo, 5 years ago

Updated wlan-exp docs for 1.8.0

File size: 31.2 KB
RevLine 
[6320]1.. _wlan_exp_log_entry_types:
2
3.. include:: globals.rst
4
5###############
6Log Entry Types
7###############
8
9The 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.
10
11
12
13``NODE_INFO``
14********************
15
16Details about the node hardware and its configuration. Node info values are static after boot.
17
18Entry type ID: 1
19
20
21.. list-table::
22   :widths: 25 10 65
23   :header-rows: 1
24
25   * - Field
26     - Data Type
27     - Description
28   * - timestamp
29     - uint64
30     - Value of MAC Time in microseconds when log entry created
[6321]31   * - wlan_mac_addr
32     - uint64
33     - MAC address of station
34   * - high_sw_id
35     - uint8
36     - ID of CPU_HIGH project
[6320]37
38       Constants defined for this field:
39
[6321]40       * ``AP``: ``0x1``
41       * ``STA``: ``0x2``
42       * ``IBSS``: ``0x3``
[6320]43
[6321]44   * - low_sw_id
45     - uint8
46     - ID of CPU_LOW project
47
48       Constants defined for this field:
49
50       * ``DCF``: ``0x1``
51       * ``NOMAC``: ``0x2``
52
53   * - padding
54     - uint16
55     - padding for alignment
56   * - high_sw_config
57     - uint32
58     - Configuration of CPU_HIGH
59   * - low_sw_config
60     - uint32
61     - Configuration of CPU_LOW
[6320]62   * - node_id
63     - uint32
64     - Node ID, as set during wlan_exp init
65   * - platform_id
66     - uint32
[6321]67     - Platform ID
[6320]68   * - serial_num
69     - uint32
70     - Node serial number
[6321]71   * - wlan_exp_version
[6320]72     - uint32
[6321]73     - Version of wlan_exp
[6320]74   * - max_tx_power_dbm
[6321]75     - int16
[6320]76     - Maximum transmit power
77   * - min_tx_power_dbm
[6321]78     - int16
[6320]79     - Minimum transmit power
80   * - cpu_high_compilation_date
81     - 12S
82     - CPU High Compilation Date string
83   * - cpu_high_compilation_time
84     - 12S
85     - CPU High Compilation Time string
86   * - cpu_low_compilation_date
87     - 12S
88     - CPU Low Compilation Date string
89   * - cpu_low_compilation_time
90     - 12S
91     - CPU Low Compilation Time string
92
93
94``EXP_INFO``
95*******************
96
97Header 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.
98
99Entry type ID: 2
100
101
102.. list-table::
103   :widths: 25 10 65
104   :header-rows: 1
105
106   * - Field
107     - Data Type
108     - Description
109   * - timestamp
110     - uint64
111     - Value of MAC Time in microseconds when log entry created
112   * - info_type
[6321]113     - uint32
[6320]114     - Exp info type - arbitrary value supplied by application
[6321]115   * - msg_len
[6320]116     - uint32
[6321]117     - Message length in bytes
[6320]118
119
120``NODE_TEMPERATURE``
121***************************
122
123Record 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
124
125Entry type ID: 4
126
127
128.. list-table::
129   :widths: 25 10 65
130   :header-rows: 1
131
132   * - Field
133     - Data Type
134     - Description
135   * - timestamp
136     - uint64
137     - Value of MAC Time in microseconds when log entry created
138   * - temp_current
139     - uint32
140     - Current FPGA die temperature (deg C)
141   * - temp_min
142     - uint32
143     - Minimum FPGA die temperature (deg C) since FPGA configuration or sysmon reset
144   * - temp_max
145     - uint32
146     - Maximum FPGA die temperature (deg C) since FPGA configuration or sysmon reset
147
148
149``TIME_INFO``
150********************
151
152Record 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.
153
154Entry type ID: 6
155
156
157.. list-table::
158   :widths: 25 10 65
159   :header-rows: 1
160
161   * - Field
162     - Data Type
163     - Description
164   * - timestamp
165     - uint64
166     - Value of MAC Time in microseconds when log entry created (before any time change is applied)
167   * - time_id
168     - uint32
169     - Random ID value included in wlan_exp TIME_INFO command; used to find common entries across nodes
170   * - reason
171     - uint32
172     - Reason code for TIME_INFO log entry creation
173
174       Constants defined for this field:
175
176       * ``SYSTEM``: ``0x0``
177       * ``WLAN_EXP_SET_TIME``: ``0x1``
178       * ``WLAN_EXP_ADD_LOG``: ``0x2``
179
180   * - mac_timestamp
181     - uint64
182     - New value of MAC Time in microseconds
183   * - system_timestamp
184     - uint64
185     - Value of System Time in microseconds
186   * - host_timestamp
187     - uint64
188     - Host time in microseconds-since-epoch; 0xFFFFFFFFFFFFFFFF if unknown
189
190
191``RX_OFDM``
192******************
193
194Rx 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.
195
196Entry type ID: 10
197
198
199.. list-table::
200   :widths: 25 10 65
201   :header-rows: 1
202
203   * - Field
204     - Data Type
205     - Description
206   * - timestamp
207     - uint64
208     - Value of MAC Time in microseconds at PHY RX_START
209   * - timestamp_frac
210     - uint8
211     - Fractional part of timestamp (units of 6.25ns)
212   * - phy_samp_rate
213     - uint8
214     - PHY sampling rate in MSps
215   * - length
216     - uint16
217     - Length of payload in bytes
218   * - cfo_est
219     - int32
220     - Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
221   * - mcs
222     - uint8
223     - MCS index, in [0:7]
224   * - phy_mode
225     - uint8
226     - PHY mode index, in [0:2]
227
228       Constants defined for this field:
229
230       * ``NONHT``: ``0x1``
231       * ``HTMF``: ``0x2``
232       * ``DSSS``: ``0x0``
233
234   * - ant_mode
235     - uint8
236     - Antenna mode: [1,2,3,4] for SISO Rx on RF [A,B,C,D]
237
238       Constants defined for this field:
239
240       * ``RF_A``: ``0x1``
241       * ``RF_C``: ``0x3``
242       * ``RF_B``: ``0x2``
243       * ``RF_D``: ``0x4``
244
245   * - power
246     - int8
247     - Rx power in dBm
248   * - padding0
249     - uint8
250     -
251   * - pkt_type
252     - uint8
253     - Packet type, first frame control byte of 802.11 header
254
255       Constants defined for this field:
256
257       * ``DEAUTH``: ``0xC0``
258       * ``BLOCK_ACK``: ``0x94``
259       * ``CTS``: ``0xC4``
260       * ``ACK``: ``0xD4``
261       * ``AUTH``: ``0xB0``
262       * ``BEACON``: ``0x80``
263       * ``DISASSOC``: ``0xA0``
264       * ``NULLDATA``: ``0x48``
265       * ``REASSOC_REQ``: ``0x20``
266       * ``DATA``: ``0x8``
267       * ``BLOCK_ACK_REQ``: ``0x84``
268       * ``PROBE_REQ``: ``0x40``
269       * ``PROBE_RESP``: ``0x50``
270       * ``QOSDATA``: ``0x88``
271       * ``REASSOC_RESP``: ``0x30``
272       * ``ASSOC_RESP``: ``0x10``
273       * ``ASSOC_REQ``: ``0x0``
274       * ``RTS``: ``0xB4``
275       * ``ACTION``: ``0xD0``
276
277   * - channel
278     - uint8
279     - Channel (center frequency) index
280   * - padding1
281     - uint8
282     -
283   * - rx_gain_index
284     - uint8
285     - Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
286   * - padding2
287     - uint8
288     -
289   * - flags
290     - uint16
291     - 1-bit flags
292
293       Constants defined for this field:
294
295       * ``FCS_GOOD``: ``0x1``
296       * ``DUPLICATE``: ``0x2``
297       * ``LTG_PYLD``: ``0x40``
298       * ``LTG``: ``0x80``
299       * ``UNEXPECTED_RESPONSE``: ``0x4``
300
301   * - chan_est
302     - (64,2)i2
303     - OFDM Rx channel estimates, packed as [(uint16)I (uint16)Q] values, one per subcarrier
304   * - mac_payload_len
305     - uint32
306     - Length in bytes of MAC payload recorded in log for this packet
307   * - mac_payload
308     - 24uint8
309     - First 24 bytes of MAC payload, typically the 802.11 MAC header
310
311
312The 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.
313
314
315.. list-table::
316   :widths: 25 10 65
317   :header-rows: 1
318
319   * - Field
320     - Data Type
321     - Description
322   * - addr1
323     - uint64
324     - MAC Header Address 1
325   * - addr2
326     - uint64
327     - MAC Header Address 2
328   * - addr3
329     - uint64
330     - MAC Header Address 3
331   * - mac_seq
332     - uint16
333     - MAC Header Sequence Number
334
335
336``RX_OFDM_LTG``
337**********************
338
339LTG 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.
340
341Entry type ID: 11
342
343
344.. list-table::
345   :widths: 25 10 65
346   :header-rows: 1
347
348   * - Field
349     - Data Type
350     - Description
351   * - timestamp
352     - uint64
353     - Value of MAC Time in microseconds at PHY RX_START
354   * - timestamp_frac
355     - uint8
356     - Fractional part of timestamp (units of 6.25ns)
357   * - phy_samp_rate
358     - uint8
359     - PHY sampling rate in MSps
360   * - length
361     - uint16
362     - Length of payload in bytes
363   * - cfo_est
364     - int32
365     - Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
366   * - mcs
367     - uint8
368     - MCS index, in [0:7]
369   * - phy_mode
370     - uint8
371     - PHY mode index, in [0:2]
372
373       Constants defined for this field:
374
375       * ``NONHT``: ``0x1``
376       * ``HTMF``: ``0x2``
377       * ``DSSS``: ``0x0``
378
379   * - ant_mode
380     - uint8
381     - Antenna mode: [1,2,3,4] for SISO Rx on RF [A,B,C,D]
382
383       Constants defined for this field:
384
385       * ``RF_A``: ``0x1``
386       * ``RF_C``: ``0x3``
387       * ``RF_B``: ``0x2``
388       * ``RF_D``: ``0x4``
389
390   * - power
391     - int8
392     - Rx power in dBm
393   * - padding0
394     - uint8
395     -
396   * - pkt_type
397     - uint8
398     - Packet type, first frame control byte of 802.11 header
399
400       Constants defined for this field:
401
402       * ``DEAUTH``: ``0xC0``
403       * ``BLOCK_ACK``: ``0x94``
404       * ``CTS``: ``0xC4``
405       * ``ACK``: ``0xD4``
406       * ``AUTH``: ``0xB0``
407       * ``BEACON``: ``0x80``
408       * ``DISASSOC``: ``0xA0``
409       * ``NULLDATA``: ``0x48``
410       * ``REASSOC_REQ``: ``0x20``
411       * ``DATA``: ``0x8``
412       * ``BLOCK_ACK_REQ``: ``0x84``
413       * ``PROBE_REQ``: ``0x40``
414       * ``PROBE_RESP``: ``0x50``
415       * ``QOSDATA``: ``0x88``
416       * ``REASSOC_RESP``: ``0x30``
417       * ``ASSOC_RESP``: ``0x10``
418       * ``ASSOC_REQ``: ``0x0``
419       * ``RTS``: ``0xB4``
420       * ``ACTION``: ``0xD0``
421
422   * - channel
423     - uint8
424     - Channel (center frequency) index
425   * - padding1
426     - uint8
427     -
428   * - rx_gain_index
429     - uint8
430     - Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
431   * - padding2
432     - uint8
433     -
434   * - flags
435     - uint16
436     - 1-bit flags
437
438       Constants defined for this field:
439
440       * ``FCS_GOOD``: ``0x1``
441       * ``DUPLICATE``: ``0x2``
442       * ``LTG_PYLD``: ``0x40``
443       * ``LTG``: ``0x80``
444       * ``UNEXPECTED_RESPONSE``: ``0x4``
445
446   * - chan_est
447     - (64,2)i2
448     - OFDM Rx channel estimates, packed as [(uint16)I (uint16)Q] values, one per subcarrier
449   * - mac_payload_len
450     - uint32
451     - Length in bytes of MAC payload recorded in log for this packet
452   * - mac_payload
453     - 44uint8
454     - First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID
455
456
457The 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.
458
459
460.. list-table::
461   :widths: 25 10 65
462   :header-rows: 1
463
464   * - Field
465     - Data Type
466     - Description
467   * - addr1
468     - uint64
469     - MAC Header Address 1
470   * - addr2
471     - uint64
472     - MAC Header Address 2
473   * - addr3
474     - uint64
475     - MAC Header Address 3
476   * - mac_seq
477     - uint16
478     - MAC Header Sequence Number
479   * - ltg_uniq_seq
480     - uint64
481     - Unique sequence number for LTG packet
482   * - ltg_flow_id
483     - uint64
484     - LTG Flow ID, calculated as:
485
486       16LSB: LTG instance ID
487
488       48MSB: Destination MAC address
489
490
491``RX_DSSS``
492******************
493
494Rx 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.
495
496Entry type ID: 15
497
498
499.. list-table::
500   :widths: 25 10 65
501   :header-rows: 1
502
503   * - Field
504     - Data Type
505     - Description
506   * - timestamp
507     - uint64
508     - Value of MAC Time in microseconds at PHY RX_START
509   * - timestamp_frac
510     - uint8
511     - Fractional part of timestamp (units of 6.25ns)
512   * - phy_samp_rate
513     - uint8
514     - PHY sampling rate in MSps
515   * - length
516     - uint16
517     - Length of payload in bytes
518   * - cfo_est
519     - int32
520     - Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
521   * - mcs
522     - uint8
523     - MCS index, in [0:7]
524   * - phy_mode
525     - uint8
526     - PHY mode index, in [0:2]
527
528       Constants defined for this field:
529
530       * ``NONHT``: ``0x1``
531       * ``HTMF``: ``0x2``
532       * ``DSSS``: ``0x0``
533
534   * - ant_mode
535     - uint8
536     - Antenna mode: [1,2,3,4] for SISO Rx on RF [A,B,C,D]
537
538       Constants defined for this field:
539
540       * ``RF_A``: ``0x1``
541       * ``RF_C``: ``0x3``
542       * ``RF_B``: ``0x2``
543       * ``RF_D``: ``0x4``
544
545   * - power
546     - int8
547     - Rx power in dBm
548   * - padding0
549     - uint8
550     -
551   * - pkt_type
552     - uint8
553     - Packet type, first frame control byte of 802.11 header
554
555       Constants defined for this field:
556
557       * ``DEAUTH``: ``0xC0``
558       * ``BLOCK_ACK``: ``0x94``
559       * ``CTS``: ``0xC4``
560       * ``ACK``: ``0xD4``
561       * ``AUTH``: ``0xB0``
562       * ``BEACON``: ``0x80``
563       * ``DISASSOC``: ``0xA0``
564       * ``NULLDATA``: ``0x48``
565       * ``REASSOC_REQ``: ``0x20``
566       * ``DATA``: ``0x8``
567       * ``BLOCK_ACK_REQ``: ``0x84``
568       * ``PROBE_REQ``: ``0x40``
569       * ``PROBE_RESP``: ``0x50``
570       * ``QOSDATA``: ``0x88``
571       * ``REASSOC_RESP``: ``0x30``
572       * ``ASSOC_RESP``: ``0x10``
573       * ``ASSOC_REQ``: ``0x0``
574       * ``RTS``: ``0xB4``
575       * ``ACTION``: ``0xD0``
576
577   * - channel
578     - uint8
579     - Channel (center frequency) index
580   * - padding1
581     - uint8
582     -
583   * - rx_gain_index
584     - uint8
585     - Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
586   * - padding2
587     - uint8
588     -
589   * - flags
590     - uint16
591     - 1-bit flags
592
593       Constants defined for this field:
594
595       * ``FCS_GOOD``: ``0x1``
596       * ``DUPLICATE``: ``0x2``
597       * ``LTG_PYLD``: ``0x40``
598       * ``LTG``: ``0x80``
599       * ``UNEXPECTED_RESPONSE``: ``0x4``
600
601   * - mac_payload_len
602     - uint32
603     - Length in bytes of MAC payload recorded in log for this packet
604   * - mac_payload
605     - 24uint8
606     - First 24 bytes of MAC payload, typically the 802.11 MAC header
607
608
609The 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.
610
611
612.. list-table::
613   :widths: 25 10 65
614   :header-rows: 1
615
616   * - Field
617     - Data Type
618     - Description
619   * - addr1
620     - uint64
621     - MAC Header Address 1
622   * - addr2
623     - uint64
624     - MAC Header Address 2
625   * - addr3
626     - uint64
627     - MAC Header Address 3
628   * - mac_seq
629     - uint16
630     - MAC Header Sequence Number
631
632
633``TX_HIGH``
634******************
635
636Tx 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).
637
638Entry type ID: 20
639
640
641.. list-table::
642   :widths: 25 10 65
643   :header-rows: 1
644
645   * - Field
646     - Data Type
647     - Description
648   * - timestamp
649     - uint64
650     - Value of MAC Time in microseconds when packet was created, immediately before it was enqueued
651   * - time_to_accept
652     - uint32
653     - Time duration in microseconds between packet creation and acceptance by frame_transmit() in CPU Low
654   * - time_to_done
655     - uint32
656     - Time duration in microseconds between packet acceptance by CPU Low and completion of all transmissions by CPU Low
657   * - uniq_seq
658     - uint64
659     - Unique sequence number for Tx packet; 12 LSB of this used for 802.11 MAC header sequence number
660   * - padding0
661     - uint32
662     -
663   * - num_tx
664     - uint16
665     - Number of Tx attempts that were made for this packet
666   * - length
667     - uint16
668     - Length in bytes of MPDU; includes MAC header, payload and FCS
669   * - padding1
670     - uint8
671     -
672   * - pkt_type
673     - uint8
674     - Packet type, first frame control byte of 802.11 header
675
676       Constants defined for this field:
677
678       * ``DEAUTH``: ``0xC0``
679       * ``BLOCK_ACK``: ``0x94``
680       * ``CTS``: ``0xC4``
681       * ``ACK``: ``0xD4``
682       * ``AUTH``: ``0xB0``
683       * ``BEACON``: ``0x80``
684       * ``DISASSOC``: ``0xA0``
685       * ``NULLDATA``: ``0x48``
686       * ``REASSOC_REQ``: ``0x20``
687       * ``DATA``: ``0x8``
688       * ``BLOCK_ACK_REQ``: ``0x84``
689       * ``PROBE_REQ``: ``0x40``
690       * ``PROBE_RESP``: ``0x50``
691       * ``QOSDATA``: ``0x88``
692       * ``REASSOC_RESP``: ``0x30``
693       * ``ASSOC_RESP``: ``0x10``
694       * ``ASSOC_REQ``: ``0x0``
695       * ``RTS``: ``0xB4``
696       * ``ACTION``: ``0xD0``
697
698   * - queue_id
699     - uint16
700     - Tx queue ID from which the packet was retrieved
701   * - queue_occupancy
702     - uint16
703     - Occupancy of the Tx queue immediately after this packet was enqueued
704   * - flags
705     - uint16
706     - 1-bit flags
707
708       Constants defined for this field:
709
710       * ``SUCCESSFUL``: ``0x1``
711       * ``LTG_PYLD``: ``0x40``
712       * ``LTG``: ``0x80``
713
714   * - mac_payload_len
715     - uint32
716     - Length in bytes of MAC payload recorded in log for this packet
717   * - mac_payload
718     - 24uint8
719     - First 24 bytes of MAC payload, typically the 802.11 MAC header
720
721
722The 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.
723
724
725.. list-table::
726   :widths: 25 10 65
727   :header-rows: 1
728
729   * - Field
730     - Data Type
731     - Description
732   * - addr1
733     - uint64
734     - MAC Header Address 1
735   * - addr2
736     - uint64
737     - MAC Header Address 2
738   * - addr3
739     - uint64
740     - MAC Header Address 3
741   * - mac_seq
742     - uint16
743     - MAC Header Sequence Number
744
745
746``TX_HIGH_LTG``
747**********************
748
749Tx 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).
750
751Entry type ID: 21
752
753
754.. list-table::
755   :widths: 25 10 65
756   :header-rows: 1
757
758   * - Field
759     - Data Type
760     - Description
761   * - timestamp
762     - uint64
763     - Value of MAC Time in microseconds when packet was created, immediately before it was enqueued
764   * - time_to_accept
765     - uint32
766     - Time duration in microseconds between packet creation and acceptance by frame_transmit() in CPU Low
767   * - time_to_done
768     - uint32
769     - Time duration in microseconds between packet acceptance by CPU Low and completion of all transmissions by CPU Low
770   * - uniq_seq
771     - uint64
772     - Unique sequence number for Tx packet; 12 LSB of this used for 802.11 MAC header sequence number
773   * - padding0
774     - uint32
775     -
776   * - num_tx
777     - uint16
778     - Number of Tx attempts that were made for this packet
779   * - length
780     - uint16
781     - Length in bytes of MPDU; includes MAC header, payload and FCS
782   * - padding1
783     - uint8
784     -
785   * - pkt_type
786     - uint8
787     - Packet type, first frame control byte of 802.11 header
788
789       Constants defined for this field:
790
791       * ``DEAUTH``: ``0xC0``
792       * ``BLOCK_ACK``: ``0x94``
793       * ``CTS``: ``0xC4``
794       * ``ACK``: ``0xD4``
795       * ``AUTH``: ``0xB0``
796       * ``BEACON``: ``0x80``
797       * ``DISASSOC``: ``0xA0``
798       * ``NULLDATA``: ``0x48``
799       * ``REASSOC_REQ``: ``0x20``
800       * ``DATA``: ``0x8``
801       * ``BLOCK_ACK_REQ``: ``0x84``
802       * ``PROBE_REQ``: ``0x40``
803       * ``PROBE_RESP``: ``0x50``
804       * ``QOSDATA``: ``0x88``
805       * ``REASSOC_RESP``: ``0x30``
806       * ``ASSOC_RESP``: ``0x10``
807       * ``ASSOC_REQ``: ``0x0``
808       * ``RTS``: ``0xB4``
809       * ``ACTION``: ``0xD0``
810
811   * - queue_id
812     - uint16
813     - Tx queue ID from which the packet was retrieved
814   * - queue_occupancy
815     - uint16
816     - Occupancy of the Tx queue immediately after this packet was enqueued
817   * - flags
818     - uint16
819     - 1-bit flags
820
821       Constants defined for this field:
822
823       * ``SUCCESSFUL``: ``0x1``
824       * ``LTG_PYLD``: ``0x40``
825       * ``LTG``: ``0x80``
826
827   * - mac_payload_len
828     - uint32
829     - Length in bytes of MAC payload recorded in log for this packet
830   * - mac_payload
831     - 44uint8
832     - First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID
833
834
835The 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.
836
837
838.. list-table::
839   :widths: 25 10 65
840   :header-rows: 1
841
842   * - Field
843     - Data Type
844     - Description
845   * - addr1
846     - uint64
847     - MAC Header Address 1
848   * - addr2
849     - uint64
850     - MAC Header Address 2
851   * - addr3
852     - uint64
853     - MAC Header Address 3
854   * - mac_seq
855     - uint16
856     - MAC Header Sequence Number
857   * - ltg_uniq_seq
858     - uint64
859     - Unique sequence number for LTG packet
860   * - ltg_flow_id
861     - uint64
862     - LTG Flow ID, calculated as:
863
864       16LSB: LTG instance ID
865
866       48MSB: Destination MAC address
867
868
869``TX_LOW``
870*****************
871
872Record 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.
873
874Entry type ID: 25
875
876
877.. list-table::
878   :widths: 25 10 65
879   :header-rows: 1
880
881   * - Field
882     - Data Type
883     - Description
884   * - timestamp
885     - uint64
886     - Value of MAC Time in microseconds when packet transmission actually started (PHY TX_START time)
887   * - uniq_seq
888     - uint64
889     - Unique sequence number of original MPDU
890   * - mcs
891     - uint8
892     - MCS index in [0:7]
893   * - phy_mode
894     - uint8
895     - PHY mode index, in [1:2]
896
897       Constants defined for this field:
898
899       * ``NONHT``: ``0x1``
900       * ``HTMF``: ``0x2``
901       * ``DSSS``: ``0x0``
902
903   * - ant_mode
904     - uint8
905     - PHY antenna mode in [0x10, 0x20, 0x30, 0x40]
906
907       Constants defined for this field:
908
909       * ``RF_A``: ``0x10``
910       * ``RF_C``: ``0x30``
911       * ``RF_B``: ``0x20``
912       * ``RF_D``: ``0x40``
913
914   * - tx_power
915     - int8
916     - Tx power in dBm
917   * - reserved0
918     - uint8
919     -
920   * - channel
921     - uint8
922     - Channel (center frequency) index
923   * - length
924     - uint16
925     - Length in bytes of MPDU; includes MAC header, payload and FCS
926   * - num_slots
927     - int16
928     - 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
929   * - cw
930     - uint16
931     - Contention window value at time of this Tx
932   * - pkt_type
933     - uint8
934     - Packet type, (first frame control byte of 802.11 header)
935
936       Constants defined for this field:
937
938       * ``DEAUTH``: ``0xC0``
939       * ``BLOCK_ACK``: ``0x94``
940       * ``CTS``: ``0xC4``
941       * ``ACK``: ``0xD4``
942       * ``AUTH``: ``0xB0``
943       * ``BEACON``: ``0x80``
944       * ``DISASSOC``: ``0xA0``
945       * ``NULLDATA``: ``0x48``
946       * ``REASSOC_REQ``: ``0x20``
947       * ``DATA``: ``0x8``
948       * ``BLOCK_ACK_REQ``: ``0x84``
949       * ``PROBE_REQ``: ``0x40``
950       * ``PROBE_RESP``: ``0x50``
951       * ``QOSDATA``: ``0x88``
952       * ``REASSOC_RESP``: ``0x30``
953       * ``ASSOC_RESP``: ``0x10``
954       * ``ASSOC_REQ``: ``0x0``
955       * ``RTS``: ``0xB4``
956       * ``ACTION``: ``0xD0``
957
958   * - flags
959     - uint8
960     - 1-bit Flags
961
962       Constants defined for this field:
963
964       * ``RECEIVED_RESPONSE``: ``0x1``
965       * ``LTG_PYLD``: ``0x80``
966       * ``LTG``: ``0x40``
967
968   * - timestamp_frac
969     - uint8
970     - Fractional part of Tx timestamp (units of 6.25ns)
971   * - phy_samp_rate
972     - uint8
973     - PHY Sampling Rate Mode
974   * - attempt_number
975     - uint16
976     - Transmission index for this attempt, starting at 1 (1 = first Tx)
977   * - reserved1
978     - uint16
979     -
980   * - mac_payload_len
981     - uint32
982     - Length in bytes of MAC payload recorded in log for this packet
983   * - mac_payload
984     - 24uint8
985     - First 24 bytes of MAC payload, typically the 802.11 MAC header
986
987
988The 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.
989
990
991.. list-table::
992   :widths: 25 10 65
993   :header-rows: 1
994
995   * - Field
996     - Data Type
997     - Description
998   * - addr1
999     - uint64
1000     - MAC Header Address 1
1001   * - addr2
1002     - uint64
1003     - MAC Header Address 2
1004   * - addr3
1005     - uint64
1006     - MAC Header Address 3
1007   * - mac_seq
1008     - uint16
1009     - MAC Header Sequence Number
1010
1011
1012``TX_LOW_LTG``
1013*********************
1014
1015Record 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.
1016
1017Entry type ID: 26
1018
1019
1020.. list-table::
1021   :widths: 25 10 65
1022   :header-rows: 1
1023
1024   * - Field
1025     - Data Type
1026     - Description
1027   * - timestamp
1028     - uint64
1029     - Value of MAC Time in microseconds when packet transmission actually started (PHY TX_START time)
1030   * - uniq_seq
1031     - uint64
1032     - Unique sequence number of original MPDU
1033   * - mcs
1034     - uint8
1035     - MCS index in [0:7]
1036   * - phy_mode
1037     - uint8
1038     - PHY mode index, in [1:2]
1039
1040       Constants defined for this field:
1041
1042       * ``NONHT``: ``0x1``
1043       * ``HTMF``: ``0x2``
1044       * ``DSSS``: ``0x0``
1045
1046   * - ant_mode
1047     - uint8
1048     - PHY antenna mode in [0x10, 0x20, 0x30, 0x40]
1049
1050       Constants defined for this field:
1051
1052       * ``RF_A``: ``0x10``
1053       * ``RF_C``: ``0x30``
1054       * ``RF_B``: ``0x20``
1055       * ``RF_D``: ``0x40``
1056
1057   * - tx_power
1058     - int8
1059     - Tx power in dBm
1060   * - reserved0
1061     - uint8
1062     -
1063   * - channel
1064     - uint8
1065     - Channel (center frequency) index
1066   * - length
1067     - uint16
1068     - Length in bytes of MPDU; includes MAC header, payload and FCS
1069   * - num_slots
1070     - int16
1071     - 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
1072   * - cw
1073     - uint16
1074     - Contention window value at time of this Tx
1075   * - pkt_type
1076     - uint8
1077     - Packet type, (first frame control byte of 802.11 header)
1078
1079       Constants defined for this field:
1080
1081       * ``DEAUTH``: ``0xC0``
1082       * ``BLOCK_ACK``: ``0x94``
1083       * ``CTS``: ``0xC4``
1084       * ``ACK``: ``0xD4``
1085       * ``AUTH``: ``0xB0``
1086       * ``BEACON``: ``0x80``
1087       * ``DISASSOC``: ``0xA0``
1088       * ``NULLDATA``: ``0x48``
1089       * ``REASSOC_REQ``: ``0x20``
1090       * ``DATA``: ``0x8``
1091       * ``BLOCK_ACK_REQ``: ``0x84``
1092       * ``PROBE_REQ``: ``0x40``
1093       * ``PROBE_RESP``: ``0x50``
1094       * ``QOSDATA``: ``0x88``
1095       * ``REASSOC_RESP``: ``0x30``
1096       * ``ASSOC_RESP``: ``0x10``
1097       * ``ASSOC_REQ``: ``0x0``
1098       * ``RTS``: ``0xB4``
1099       * ``ACTION``: ``0xD0``
1100
1101   * - flags
1102     - uint8
1103     - 1-bit Flags
1104
1105       Constants defined for this field:
1106
1107       * ``RECEIVED_RESPONSE``: ``0x1``
1108       * ``LTG_PYLD``: ``0x80``
1109       * ``LTG``: ``0x40``
1110
1111   * - timestamp_frac
1112     - uint8
1113     - Fractional part of Tx timestamp (units of 6.25ns)
1114   * - phy_samp_rate
1115     - uint8
1116     - PHY Sampling Rate Mode
1117   * - attempt_number
1118     - uint16
1119     - Transmission index for this attempt, starting at 1 (1 = first Tx)
1120   * - reserved1
1121     - uint16
1122     -
1123   * - mac_payload_len
1124     - uint32
1125     - Length in bytes of MAC payload recorded in log for this packet
1126   * - mac_payload
1127     - 44uint8
1128     - First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID
1129
1130
1131The 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.
1132
1133
1134.. list-table::
1135   :widths: 25 10 65
1136   :header-rows: 1
1137
1138   * - Field
1139     - Data Type
1140     - Description
1141   * - addr1
1142     - uint64
1143     - MAC Header Address 1
1144   * - addr2
1145     - uint64
1146     - MAC Header Address 2
1147   * - addr3
1148     - uint64
1149     - MAC Header Address 3
1150   * - mac_seq
1151     - uint16
1152     - MAC Header Sequence Number
1153   * - ltg_uniq_seq
1154     - uint64
1155     - Unique sequence number for LTG packet
1156   * - ltg_flow_id
1157     - uint64
1158     - LTG Flow ID, calculated as:
1159
1160       16LSB: LTG instance ID
1161
1162       48MSB: Destination MAC address
Note: See TracBrowser for help on using the repository browser.