source: ReferenceDesigns/w3_802.11/python/wlan_exp/log/entry_type_wiki_docs.txt

Last change on this file was 6320, checked in by chunter, 5 years ago

1.8.0 release wlan-exp

File size: 47.6 KB
Line 
1== wlan_exp v1.7.4   Log Entry Types ==
2
3----
4
5=== Entry Type NODE_INFO ===
6Details about the node hardware and its configuration. Node info values are static after boot.
7
8Entry type ID: 1
9
10{{{#!th align=center
11Field Name
12}}}
13{{{#!th align=center
14Data Type
15}}}
16{{{#!th align=center
17Description
18}}}
19|----------------
20{{{#!td align=left
21timestamp
22}}}
23{{{#!td align=center
24uint64
25}}}
26{{{#!td align=left
27Value of MAC Time in microseconds when log entry created
28}}}
29|----------------
30{{{#!td align=left
31node_type
32}}}
33{{{#!td align=center
34uint32
35}}}
36{{{#!td align=left
37Code identifying applications in CPU High and CPU Low
38
39Constants defined for this field:
40||= Name =||= Value =||
41|| {{{AP_DCF}}}  ||  {{{0x10101}}}  ||
42|| {{{AP_NOMAC}}}  ||  {{{0x10102}}}  ||
43|| {{{IBSS_DCF}}}  ||  {{{0x10301}}}  ||
44|| {{{STA_NOMAC}}}  ||  {{{0x10202}}}  ||
45|| {{{IBSS_NOMAC}}}  ||  {{{0x10302}}}  ||
46|| {{{STA_DCF}}}  ||  {{{0x10201}}}  ||
47
48}}}
49|----------------
50{{{#!td align=left
51node_id
52}}}
53{{{#!td align=center
54uint32
55}}}
56{{{#!td align=left
57Node ID, as set during wlan_exp init
58}}}
59|----------------
60{{{#!td align=left
61platform_id
62}}}
63{{{#!td align=center
64uint32
65}}}
66{{{#!td align=left
67Hardware generation (always 3 for Mango WARP v3)
68}}}
69|----------------
70{{{#!td align=left
71serial_num
72}}}
73{{{#!td align=center
74uint32
75}}}
76{{{#!td align=left
77Node serial number
78}}}
79|----------------
80{{{#!td align=left
81fpga_dna
82}}}
83{{{#!td align=center
84uint64
85}}}
86{{{#!td align=left
87DNA value of node FPGA
88}}}
89|----------------
90{{{#!td align=left
91version
92}}}
93{{{#!td align=center
94uint32
95}}}
96{{{#!td align=left
97wlan_exp version, as packed values [(u8)major (u8)minor (u16)rev]
98}}}
99|----------------
100{{{#!td align=left
101scheduler_resolution
102}}}
103{{{#!td align=center
104uint32
105}}}
106{{{#!td align=left
107Minimum interval in microseconds of the WLAN scheduler
108}}}
109|----------------
110{{{#!td align=left
111wlan_mac_addr
112}}}
113{{{#!td align=center
114uint64
115}}}
116{{{#!td align=left
117Node MAC address, 6 bytes in lower 48-bits of u64
118}}}
119|----------------
120{{{#!td align=left
121max_tx_power_dbm
122}}}
123{{{#!td align=center
124int32
125}}}
126{{{#!td align=left
127Maximum transmit power
128}}}
129|----------------
130{{{#!td align=left
131min_tx_power_dbm
132}}}
133{{{#!td align=center
134int32
135}}}
136{{{#!td align=left
137Minimum transmit power
138}}}
139|----------------
140{{{#!td align=left
141cpu_high_compilation_date
142}}}
143{{{#!td align=center
14412S
145}}}
146{{{#!td align=left
147CPU High Compilation Date string
148}}}
149|----------------
150{{{#!td align=left
151cpu_high_compilation_time
152}}}
153{{{#!td align=center
15412S
155}}}
156{{{#!td align=left
157CPU High Compilation Time string
158}}}
159|----------------
160{{{#!td align=left
161cpu_low_compilation_date
162}}}
163{{{#!td align=center
16412S
165}}}
166{{{#!td align=left
167CPU Low Compilation Date string
168}}}
169|----------------
170{{{#!td align=left
171cpu_low_compilation_time
172}}}
173{{{#!td align=center
17412S
175}}}
176{{{#!td align=left
177CPU Low Compilation Time string
178}}}
179|----------------
180
181
182----
183
184=== Entry Type EXP_INFO ===
185Header 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.
186
187Entry type ID: 2
188
189{{{#!th align=center
190Field Name
191}}}
192{{{#!th align=center
193Data Type
194}}}
195{{{#!th align=center
196Description
197}}}
198|----------------
199{{{#!td align=left
200timestamp
201}}}
202{{{#!td align=center
203uint64
204}}}
205{{{#!td align=left
206Value of MAC Time in microseconds when log entry created
207}}}
208|----------------
209{{{#!td align=left
210info_type
211}}}
212{{{#!td align=center
213uint16
214}}}
215{{{#!td align=left
216Exp info type - arbitrary value supplied by application
217}}}
218|----------------
219{{{#!td align=left
220info_len
221}}}
222{{{#!td align=center
223uint16
224}}}
225{{{#!td align=left
226Exp info length - length (in byte) of info_payload
227}}}
228|----------------
229{{{#!td align=left
230info_payload
231}}}
232{{{#!td align=center
233uint32
234}}}
235{{{#!td align=left
236Exp info payload
237}}}
238|----------------
239
240
241----
242
243=== Entry Type NODE_TEMPERATURE ===
244Record 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
245
246Entry type ID: 4
247
248{{{#!th align=center
249Field Name
250}}}
251{{{#!th align=center
252Data Type
253}}}
254{{{#!th align=center
255Description
256}}}
257|----------------
258{{{#!td align=left
259timestamp
260}}}
261{{{#!td align=center
262uint64
263}}}
264{{{#!td align=left
265Value of MAC Time in microseconds when log entry created
266}}}
267|----------------
268{{{#!td align=left
269temp_current
270}}}
271{{{#!td align=center
272uint32
273}}}
274{{{#!td align=left
275Current FPGA die temperature (deg C)
276}}}
277|----------------
278{{{#!td align=left
279temp_min
280}}}
281{{{#!td align=center
282uint32
283}}}
284{{{#!td align=left
285Minimum FPGA die temperature (deg C) since FPGA configuration or sysmon reset
286}}}
287|----------------
288{{{#!td align=left
289temp_max
290}}}
291{{{#!td align=center
292uint32
293}}}
294{{{#!td align=left
295Maximum FPGA die temperature (deg C) since FPGA configuration or sysmon reset
296}}}
297|----------------
298
299
300----
301
302=== Entry Type TIME_INFO ===
303Record 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.
304
305Entry type ID: 6
306
307{{{#!th align=center
308Field Name
309}}}
310{{{#!th align=center
311Data Type
312}}}
313{{{#!th align=center
314Description
315}}}
316|----------------
317{{{#!td align=left
318timestamp
319}}}
320{{{#!td align=center
321uint64
322}}}
323{{{#!td align=left
324Value of MAC Time in microseconds when log entry created (before any time change is applied)
325}}}
326|----------------
327{{{#!td align=left
328time_id
329}}}
330{{{#!td align=center
331uint32
332}}}
333{{{#!td align=left
334Random ID value included in wlan_exp TIME_INFO command; used to find common entries across nodes
335}}}
336|----------------
337{{{#!td align=left
338reason
339}}}
340{{{#!td align=center
341uint32
342}}}
343{{{#!td align=left
344Reason code for TIME_INFO log entry creation
345
346Constants defined for this field:
347||= Name =||= Value =||
348|| {{{SYSTEM}}}  ||  {{{0x0}}}  ||
349|| {{{WLAN_EXP_SET_TIME}}}  ||  {{{0x1}}}  ||
350|| {{{WLAN_EXP_ADD_LOG}}}  ||  {{{0x2}}}  ||
351
352}}}
353|----------------
354{{{#!td align=left
355mac_timestamp
356}}}
357{{{#!td align=center
358uint64
359}}}
360{{{#!td align=left
361New value of MAC Time in microseconds
362}}}
363|----------------
364{{{#!td align=left
365system_timestamp
366}}}
367{{{#!td align=center
368uint64
369}}}
370{{{#!td align=left
371Value of System Time in microseconds
372}}}
373|----------------
374{{{#!td align=left
375host_timestamp
376}}}
377{{{#!td align=center
378uint64
379}}}
380{{{#!td align=left
381Host time in microseconds-since-epoch; 0xFFFFFFFFFFFFFFFF if unknown
382}}}
383|----------------
384
385
386----
387
388=== Entry Type RX_OFDM ===
389Rx 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.
390
391Entry type ID: 10
392
393{{{#!th align=center
394Field Name
395}}}
396{{{#!th align=center
397Data Type
398}}}
399{{{#!th align=center
400Description
401}}}
402|----------------
403{{{#!td align=left
404timestamp
405}}}
406{{{#!td align=center
407uint64
408}}}
409{{{#!td align=left
410Value of MAC Time in microseconds at PHY RX_START
411}}}
412|----------------
413{{{#!td align=left
414timestamp_frac
415}}}
416{{{#!td align=center
417uint8
418}}}
419{{{#!td align=left
420Fractional part of timestamp (units of 6.25ns)
421}}}
422|----------------
423{{{#!td align=left
424phy_samp_rate
425}}}
426{{{#!td align=center
427uint8
428}}}
429{{{#!td align=left
430PHY sampling rate in MSps
431}}}
432|----------------
433{{{#!td align=left
434length
435}}}
436{{{#!td align=center
437uint16
438}}}
439{{{#!td align=left
440Length of payload in bytes
441}}}
442|----------------
443{{{#!td align=left
444cfo_est
445}}}
446{{{#!td align=center
447int32
448}}}
449{{{#!td align=left
450Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
451}}}
452|----------------
453{{{#!td align=left
454mcs
455}}}
456{{{#!td align=center
457uint8
458}}}
459{{{#!td align=left
460MCS index, in ![0:7]
461}}}
462|----------------
463{{{#!td align=left
464phy_mode
465}}}
466{{{#!td align=center
467uint8
468}}}
469{{{#!td align=left
470PHY mode index, in ![0:2]
471
472Constants defined for this field:
473||= Name =||= Value =||
474|| {{{NONHT}}}  ||  {{{0x1}}}  ||
475|| {{{HTMF}}}  ||  {{{0x2}}}  ||
476|| {{{DSSS}}}  ||  {{{0x0}}}  ||
477
478}}}
479|----------------
480{{{#!td align=left
481ant_mode
482}}}
483{{{#!td align=center
484uint8
485}}}
486{{{#!td align=left
487Antenna mode: ![1,2,3,4] for SISO Rx on RF [A,B,C,D]
488
489Constants defined for this field:
490||= Name =||= Value =||
491|| {{{RF_A}}}  ||  {{{0x1}}}  ||
492|| {{{RF_C}}}  ||  {{{0x3}}}  ||
493|| {{{RF_B}}}  ||  {{{0x2}}}  ||
494|| {{{RF_D}}}  ||  {{{0x4}}}  ||
495
496}}}
497|----------------
498{{{#!td align=left
499power
500}}}
501{{{#!td align=center
502int8
503}}}
504{{{#!td align=left
505Rx power in dBm
506}}}
507|----------------
508{{{#!td align=left
509padding0
510}}}
511{{{#!td align=center
512uint8
513}}}
514{{{#!td align=left
515
516}}}
517|----------------
518{{{#!td align=left
519pkt_type
520}}}
521{{{#!td align=center
522uint8
523}}}
524{{{#!td align=left
525Packet type, first frame control byte of 802.11 header
526
527Constants defined for this field:
528||= Name =||= Value =||
529|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
530|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
531|| {{{CTS}}}  ||  {{{0xC4}}}  ||
532|| {{{ACK}}}  ||  {{{0xD4}}}  ||
533|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
534|| {{{BEACON}}}  ||  {{{0x80}}}  ||
535|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
536|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
537|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
538|| {{{DATA}}}  ||  {{{0x8}}}  ||
539|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
540|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
541|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
542|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
543|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
544|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
545|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
546|| {{{RTS}}}  ||  {{{0xB4}}}  ||
547|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
548
549}}}
550|----------------
551{{{#!td align=left
552channel
553}}}
554{{{#!td align=center
555uint8
556}}}
557{{{#!td align=left
558Channel (center frequency) index
559}}}
560|----------------
561{{{#!td align=left
562padding1
563}}}
564{{{#!td align=center
565uint8
566}}}
567{{{#!td align=left
568
569}}}
570|----------------
571{{{#!td align=left
572rx_gain_index
573}}}
574{{{#!td align=center
575uint8
576}}}
577{{{#!td align=left
578Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
579}}}
580|----------------
581{{{#!td align=left
582padding2
583}}}
584{{{#!td align=center
585uint8
586}}}
587{{{#!td align=left
588
589}}}
590|----------------
591{{{#!td align=left
592flags
593}}}
594{{{#!td align=center
595uint16
596}}}
597{{{#!td align=left
5981-bit flags
599
600Constants defined for this field:
601||= Name =||= Value =||
602|| {{{FCS_GOOD}}}  ||  {{{0x1}}}  ||
603|| {{{DUPLICATE}}}  ||  {{{0x2}}}  ||
604|| {{{LTG_PYLD}}}  ||  {{{0x40}}}  ||
605|| {{{LTG}}}  ||  {{{0x80}}}  ||
606|| {{{UNEXPECTED_RESPONSE}}}  ||  {{{0x4}}}  ||
607
608}}}
609|----------------
610{{{#!td align=left
611chan_est
612}}}
613{{{#!td align=center
614(64,2)i2
615}}}
616{{{#!td align=left
617OFDM Rx channel estimates, packed as [(uint16)I (uint16)Q] values, one per subcarrier
618}}}
619|----------------
620{{{#!td align=left
621mac_payload_len
622}}}
623{{{#!td align=center
624uint32
625}}}
626{{{#!td align=left
627Length in bytes of MAC payload recorded in log for this packet
628}}}
629|----------------
630{{{#!td align=left
631mac_payload
632}}}
633{{{#!td align=center
63424uint8
635}}}
636{{{#!td align=left
637First 24 bytes of MAC payload, typically the 802.11 MAC header
638}}}
639|----------------
640
641
642The 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.
643
644{{{#!th align=center
645Field Name
646}}}
647{{{#!th align=center
648Data Type
649}}}
650{{{#!th align=center
651Description
652}}}
653|----------------
654{{{#!td align=left
655addr1
656}}}
657{{{#!td align=center
658uint64
659}}}
660{{{#!td align=left
661MAC Header Address 1
662}}}
663|----------------
664{{{#!td align=left
665addr2
666}}}
667{{{#!td align=center
668uint64
669}}}
670{{{#!td align=left
671MAC Header Address 2
672}}}
673|----------------
674{{{#!td align=left
675addr3
676}}}
677{{{#!td align=center
678uint64
679}}}
680{{{#!td align=left
681MAC Header Address 3
682}}}
683|----------------
684{{{#!td align=left
685mac_seq
686}}}
687{{{#!td align=center
688uint16
689}}}
690{{{#!td align=left
691MAC Header Sequence Number
692}}}
693|----------------
694
695
696----
697
698=== Entry Type RX_OFDM_LTG ===
699LTG 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.
700
701Entry type ID: 11
702
703{{{#!th align=center
704Field Name
705}}}
706{{{#!th align=center
707Data Type
708}}}
709{{{#!th align=center
710Description
711}}}
712|----------------
713{{{#!td align=left
714timestamp
715}}}
716{{{#!td align=center
717uint64
718}}}
719{{{#!td align=left
720Value of MAC Time in microseconds at PHY RX_START
721}}}
722|----------------
723{{{#!td align=left
724timestamp_frac
725}}}
726{{{#!td align=center
727uint8
728}}}
729{{{#!td align=left
730Fractional part of timestamp (units of 6.25ns)
731}}}
732|----------------
733{{{#!td align=left
734phy_samp_rate
735}}}
736{{{#!td align=center
737uint8
738}}}
739{{{#!td align=left
740PHY sampling rate in MSps
741}}}
742|----------------
743{{{#!td align=left
744length
745}}}
746{{{#!td align=center
747uint16
748}}}
749{{{#!td align=left
750Length of payload in bytes
751}}}
752|----------------
753{{{#!td align=left
754cfo_est
755}}}
756{{{#!td align=center
757int32
758}}}
759{{{#!td align=left
760Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
761}}}
762|----------------
763{{{#!td align=left
764mcs
765}}}
766{{{#!td align=center
767uint8
768}}}
769{{{#!td align=left
770MCS index, in ![0:7]
771}}}
772|----------------
773{{{#!td align=left
774phy_mode
775}}}
776{{{#!td align=center
777uint8
778}}}
779{{{#!td align=left
780PHY mode index, in ![0:2]
781
782Constants defined for this field:
783||= Name =||= Value =||
784|| {{{NONHT}}}  ||  {{{0x1}}}  ||
785|| {{{HTMF}}}  ||  {{{0x2}}}  ||
786|| {{{DSSS}}}  ||  {{{0x0}}}  ||
787
788}}}
789|----------------
790{{{#!td align=left
791ant_mode
792}}}
793{{{#!td align=center
794uint8
795}}}
796{{{#!td align=left
797Antenna mode: ![1,2,3,4] for SISO Rx on RF [A,B,C,D]
798
799Constants defined for this field:
800||= Name =||= Value =||
801|| {{{RF_A}}}  ||  {{{0x1}}}  ||
802|| {{{RF_C}}}  ||  {{{0x3}}}  ||
803|| {{{RF_B}}}  ||  {{{0x2}}}  ||
804|| {{{RF_D}}}  ||  {{{0x4}}}  ||
805
806}}}
807|----------------
808{{{#!td align=left
809power
810}}}
811{{{#!td align=center
812int8
813}}}
814{{{#!td align=left
815Rx power in dBm
816}}}
817|----------------
818{{{#!td align=left
819padding0
820}}}
821{{{#!td align=center
822uint8
823}}}
824{{{#!td align=left
825
826}}}
827|----------------
828{{{#!td align=left
829pkt_type
830}}}
831{{{#!td align=center
832uint8
833}}}
834{{{#!td align=left
835Packet type, first frame control byte of 802.11 header
836
837Constants defined for this field:
838||= Name =||= Value =||
839|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
840|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
841|| {{{CTS}}}  ||  {{{0xC4}}}  ||
842|| {{{ACK}}}  ||  {{{0xD4}}}  ||
843|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
844|| {{{BEACON}}}  ||  {{{0x80}}}  ||
845|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
846|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
847|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
848|| {{{DATA}}}  ||  {{{0x8}}}  ||
849|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
850|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
851|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
852|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
853|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
854|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
855|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
856|| {{{RTS}}}  ||  {{{0xB4}}}  ||
857|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
858
859}}}
860|----------------
861{{{#!td align=left
862channel
863}}}
864{{{#!td align=center
865uint8
866}}}
867{{{#!td align=left
868Channel (center frequency) index
869}}}
870|----------------
871{{{#!td align=left
872padding1
873}}}
874{{{#!td align=center
875uint8
876}}}
877{{{#!td align=left
878
879}}}
880|----------------
881{{{#!td align=left
882rx_gain_index
883}}}
884{{{#!td align=center
885uint8
886}}}
887{{{#!td align=left
888Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
889}}}
890|----------------
891{{{#!td align=left
892padding2
893}}}
894{{{#!td align=center
895uint8
896}}}
897{{{#!td align=left
898
899}}}
900|----------------
901{{{#!td align=left
902flags
903}}}
904{{{#!td align=center
905uint16
906}}}
907{{{#!td align=left
9081-bit flags
909
910Constants defined for this field:
911||= Name =||= Value =||
912|| {{{FCS_GOOD}}}  ||  {{{0x1}}}  ||
913|| {{{DUPLICATE}}}  ||  {{{0x2}}}  ||
914|| {{{LTG_PYLD}}}  ||  {{{0x40}}}  ||
915|| {{{LTG}}}  ||  {{{0x80}}}  ||
916|| {{{UNEXPECTED_RESPONSE}}}  ||  {{{0x4}}}  ||
917
918}}}
919|----------------
920{{{#!td align=left
921chan_est
922}}}
923{{{#!td align=center
924(64,2)i2
925}}}
926{{{#!td align=left
927OFDM Rx channel estimates, packed as [(uint16)I (uint16)Q] values, one per subcarrier
928}}}
929|----------------
930{{{#!td align=left
931mac_payload_len
932}}}
933{{{#!td align=center
934uint32
935}}}
936{{{#!td align=left
937Length in bytes of MAC payload recorded in log for this packet
938}}}
939|----------------
940{{{#!td align=left
941mac_payload
942}}}
943{{{#!td align=center
94444uint8
945}}}
946{{{#!td align=left
947First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID
948}}}
949|----------------
950
951
952The 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.
953
954{{{#!th align=center
955Field Name
956}}}
957{{{#!th align=center
958Data Type
959}}}
960{{{#!th align=center
961Description
962}}}
963|----------------
964{{{#!td align=left
965addr1
966}}}
967{{{#!td align=center
968uint64
969}}}
970{{{#!td align=left
971MAC Header Address 1
972}}}
973|----------------
974{{{#!td align=left
975addr2
976}}}
977{{{#!td align=center
978uint64
979}}}
980{{{#!td align=left
981MAC Header Address 2
982}}}
983|----------------
984{{{#!td align=left
985addr3
986}}}
987{{{#!td align=center
988uint64
989}}}
990{{{#!td align=left
991MAC Header Address 3
992}}}
993|----------------
994{{{#!td align=left
995mac_seq
996}}}
997{{{#!td align=center
998uint16
999}}}
1000{{{#!td align=left
1001MAC Header Sequence Number
1002}}}
1003|----------------
1004{{{#!td align=left
1005ltg_uniq_seq
1006}}}
1007{{{#!td align=center
1008uint64
1009}}}
1010{{{#!td align=left
1011Unique sequence number for LTG packet
1012}}}
1013|----------------
1014{{{#!td align=left
1015ltg_flow_id
1016}}}
1017{{{#!td align=center
1018uint64
1019}}}
1020{{{#!td align=left
1021LTG Flow ID, calculated as:
1022  16LSB: LTG instance ID
1023  48MSB: Destination MAC address
1024}}}
1025|----------------
1026
1027
1028----
1029
1030=== Entry Type RX_DSSS ===
1031Rx 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.
1032
1033Entry type ID: 15
1034
1035{{{#!th align=center
1036Field Name
1037}}}
1038{{{#!th align=center
1039Data Type
1040}}}
1041{{{#!th align=center
1042Description
1043}}}
1044|----------------
1045{{{#!td align=left
1046timestamp
1047}}}
1048{{{#!td align=center
1049uint64
1050}}}
1051{{{#!td align=left
1052Value of MAC Time in microseconds at PHY RX_START
1053}}}
1054|----------------
1055{{{#!td align=left
1056timestamp_frac
1057}}}
1058{{{#!td align=center
1059uint8
1060}}}
1061{{{#!td align=left
1062Fractional part of timestamp (units of 6.25ns)
1063}}}
1064|----------------
1065{{{#!td align=left
1066phy_samp_rate
1067}}}
1068{{{#!td align=center
1069uint8
1070}}}
1071{{{#!td align=left
1072PHY sampling rate in MSps
1073}}}
1074|----------------
1075{{{#!td align=left
1076length
1077}}}
1078{{{#!td align=center
1079uint16
1080}}}
1081{{{#!td align=left
1082Length of payload in bytes
1083}}}
1084|----------------
1085{{{#!td align=left
1086cfo_est
1087}}}
1088{{{#!td align=center
1089int32
1090}}}
1091{{{#!td align=left
1092Time-domain CFO estimate from Rx PHY; Fix32_31 value, CFO as fraction of sampling frequency
1093}}}
1094|----------------
1095{{{#!td align=left
1096mcs
1097}}}
1098{{{#!td align=center
1099uint8
1100}}}
1101{{{#!td align=left
1102MCS index, in ![0:7]
1103}}}
1104|----------------
1105{{{#!td align=left
1106phy_mode
1107}}}
1108{{{#!td align=center
1109uint8
1110}}}
1111{{{#!td align=left
1112PHY mode index, in ![0:2]
1113
1114Constants defined for this field:
1115||= Name =||= Value =||
1116|| {{{NONHT}}}  ||  {{{0x1}}}  ||
1117|| {{{HTMF}}}  ||  {{{0x2}}}  ||
1118|| {{{DSSS}}}  ||  {{{0x0}}}  ||
1119
1120}}}
1121|----------------
1122{{{#!td align=left
1123ant_mode
1124}}}
1125{{{#!td align=center
1126uint8
1127}}}
1128{{{#!td align=left
1129Antenna mode: ![1,2,3,4] for SISO Rx on RF [A,B,C,D]
1130
1131Constants defined for this field:
1132||= Name =||= Value =||
1133|| {{{RF_A}}}  ||  {{{0x1}}}  ||
1134|| {{{RF_C}}}  ||  {{{0x3}}}  ||
1135|| {{{RF_B}}}  ||  {{{0x2}}}  ||
1136|| {{{RF_D}}}  ||  {{{0x4}}}  ||
1137
1138}}}
1139|----------------
1140{{{#!td align=left
1141power
1142}}}
1143{{{#!td align=center
1144int8
1145}}}
1146{{{#!td align=left
1147Rx power in dBm
1148}}}
1149|----------------
1150{{{#!td align=left
1151padding0
1152}}}
1153{{{#!td align=center
1154uint8
1155}}}
1156{{{#!td align=left
1157
1158}}}
1159|----------------
1160{{{#!td align=left
1161pkt_type
1162}}}
1163{{{#!td align=center
1164uint8
1165}}}
1166{{{#!td align=left
1167Packet type, first frame control byte of 802.11 header
1168
1169Constants defined for this field:
1170||= Name =||= Value =||
1171|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
1172|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
1173|| {{{CTS}}}  ||  {{{0xC4}}}  ||
1174|| {{{ACK}}}  ||  {{{0xD4}}}  ||
1175|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
1176|| {{{BEACON}}}  ||  {{{0x80}}}  ||
1177|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
1178|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
1179|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
1180|| {{{DATA}}}  ||  {{{0x8}}}  ||
1181|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
1182|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
1183|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
1184|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
1185|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
1186|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
1187|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
1188|| {{{RTS}}}  ||  {{{0xB4}}}  ||
1189|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
1190
1191}}}
1192|----------------
1193{{{#!td align=left
1194channel
1195}}}
1196{{{#!td align=center
1197uint8
1198}}}
1199{{{#!td align=left
1200Channel (center frequency) index
1201}}}
1202|----------------
1203{{{#!td align=left
1204padding1
1205}}}
1206{{{#!td align=center
1207uint8
1208}}}
1209{{{#!td align=left
1210
1211}}}
1212|----------------
1213{{{#!td align=left
1214rx_gain_index
1215}}}
1216{{{#!td align=center
1217uint8
1218}}}
1219{{{#!td align=left
1220Radio Rx gain index; larger values mean larger Rx gains, mapping to absolute dB is radio-dependent
1221}}}
1222|----------------
1223{{{#!td align=left
1224padding2
1225}}}
1226{{{#!td align=center
1227uint8
1228}}}
1229{{{#!td align=left
1230
1231}}}
1232|----------------
1233{{{#!td align=left
1234flags
1235}}}
1236{{{#!td align=center
1237uint16
1238}}}
1239{{{#!td align=left
12401-bit flags
1241
1242Constants defined for this field:
1243||= Name =||= Value =||
1244|| {{{FCS_GOOD}}}  ||  {{{0x1}}}  ||
1245|| {{{DUPLICATE}}}  ||  {{{0x2}}}  ||
1246|| {{{LTG_PYLD}}}  ||  {{{0x40}}}  ||
1247|| {{{LTG}}}  ||  {{{0x80}}}  ||
1248|| {{{UNEXPECTED_RESPONSE}}}  ||  {{{0x4}}}  ||
1249
1250}}}
1251|----------------
1252{{{#!td align=left
1253mac_payload_len
1254}}}
1255{{{#!td align=center
1256uint32
1257}}}
1258{{{#!td align=left
1259Length in bytes of MAC payload recorded in log for this packet
1260}}}
1261|----------------
1262{{{#!td align=left
1263mac_payload
1264}}}
1265{{{#!td align=center
126624uint8
1267}}}
1268{{{#!td align=left
1269First 24 bytes of MAC payload, typically the 802.11 MAC header
1270}}}
1271|----------------
1272
1273
1274The 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.
1275
1276{{{#!th align=center
1277Field Name
1278}}}
1279{{{#!th align=center
1280Data Type
1281}}}
1282{{{#!th align=center
1283Description
1284}}}
1285|----------------
1286{{{#!td align=left
1287addr1
1288}}}
1289{{{#!td align=center
1290uint64
1291}}}
1292{{{#!td align=left
1293MAC Header Address 1
1294}}}
1295|----------------
1296{{{#!td align=left
1297addr2
1298}}}
1299{{{#!td align=center
1300uint64
1301}}}
1302{{{#!td align=left
1303MAC Header Address 2
1304}}}
1305|----------------
1306{{{#!td align=left
1307addr3
1308}}}
1309{{{#!td align=center
1310uint64
1311}}}
1312{{{#!td align=left
1313MAC Header Address 3
1314}}}
1315|----------------
1316{{{#!td align=left
1317mac_seq
1318}}}
1319{{{#!td align=center
1320uint16
1321}}}
1322{{{#!td align=left
1323MAC Header Sequence Number
1324}}}
1325|----------------
1326
1327
1328----
1329
1330=== Entry Type TX_HIGH ===
1331Tx 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).
1332
1333Entry type ID: 20
1334
1335{{{#!th align=center
1336Field Name
1337}}}
1338{{{#!th align=center
1339Data Type
1340}}}
1341{{{#!th align=center
1342Description
1343}}}
1344|----------------
1345{{{#!td align=left
1346timestamp
1347}}}
1348{{{#!td align=center
1349uint64
1350}}}
1351{{{#!td align=left
1352Value of MAC Time in microseconds when packet was created, immediately before it was enqueued
1353}}}
1354|----------------
1355{{{#!td align=left
1356time_to_accept
1357}}}
1358{{{#!td align=center
1359uint32
1360}}}
1361{{{#!td align=left
1362Time duration in microseconds between packet creation and acceptance by frame_transmit() in CPU Low
1363}}}
1364|----------------
1365{{{#!td align=left
1366time_to_done
1367}}}
1368{{{#!td align=center
1369uint32
1370}}}
1371{{{#!td align=left
1372Time duration in microseconds between packet acceptance by CPU Low and completion of all transmissions by CPU Low
1373}}}
1374|----------------
1375{{{#!td align=left
1376uniq_seq
1377}}}
1378{{{#!td align=center
1379uint64
1380}}}
1381{{{#!td align=left
1382Unique sequence number for Tx packet; 12 LSB of this used for 802.11 MAC header sequence number
1383}}}
1384|----------------
1385{{{#!td align=left
1386padding0
1387}}}
1388{{{#!td align=center
1389uint32
1390}}}
1391{{{#!td align=left
1392
1393}}}
1394|----------------
1395{{{#!td align=left
1396num_tx
1397}}}
1398{{{#!td align=center
1399uint16
1400}}}
1401{{{#!td align=left
1402Number of Tx attempts that were made for this packet
1403}}}
1404|----------------
1405{{{#!td align=left
1406length
1407}}}
1408{{{#!td align=center
1409uint16
1410}}}
1411{{{#!td align=left
1412Length in bytes of MPDU; includes MAC header, payload and FCS
1413}}}
1414|----------------
1415{{{#!td align=left
1416padding1
1417}}}
1418{{{#!td align=center
1419uint8
1420}}}
1421{{{#!td align=left
1422
1423}}}
1424|----------------
1425{{{#!td align=left
1426pkt_type
1427}}}
1428{{{#!td align=center
1429uint8
1430}}}
1431{{{#!td align=left
1432Packet type, first frame control byte of 802.11 header
1433
1434Constants defined for this field:
1435||= Name =||= Value =||
1436|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
1437|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
1438|| {{{CTS}}}  ||  {{{0xC4}}}  ||
1439|| {{{ACK}}}  ||  {{{0xD4}}}  ||
1440|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
1441|| {{{BEACON}}}  ||  {{{0x80}}}  ||
1442|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
1443|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
1444|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
1445|| {{{DATA}}}  ||  {{{0x8}}}  ||
1446|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
1447|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
1448|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
1449|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
1450|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
1451|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
1452|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
1453|| {{{RTS}}}  ||  {{{0xB4}}}  ||
1454|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
1455
1456}}}
1457|----------------
1458{{{#!td align=left
1459queue_id
1460}}}
1461{{{#!td align=center
1462uint16
1463}}}
1464{{{#!td align=left
1465Tx queue ID from which the packet was retrieved
1466}}}
1467|----------------
1468{{{#!td align=left
1469queue_occupancy
1470}}}
1471{{{#!td align=center
1472uint16
1473}}}
1474{{{#!td align=left
1475Occupancy of the Tx queue immediately after this packet was enqueued
1476}}}
1477|----------------
1478{{{#!td align=left
1479flags
1480}}}
1481{{{#!td align=center
1482uint16
1483}}}
1484{{{#!td align=left
14851-bit flags
1486
1487Constants defined for this field:
1488||= Name =||= Value =||
1489|| {{{SUCCESSFUL}}}  ||  {{{0x1}}}  ||
1490|| {{{LTG_PYLD}}}  ||  {{{0x40}}}  ||
1491|| {{{LTG}}}  ||  {{{0x80}}}  ||
1492
1493}}}
1494|----------------
1495{{{#!td align=left
1496mac_payload_len
1497}}}
1498{{{#!td align=center
1499uint32
1500}}}
1501{{{#!td align=left
1502Length in bytes of MAC payload recorded in log for this packet
1503}}}
1504|----------------
1505{{{#!td align=left
1506mac_payload
1507}}}
1508{{{#!td align=center
150924uint8
1510}}}
1511{{{#!td align=left
1512First 24 bytes of MAC payload, typically the 802.11 MAC header
1513}}}
1514|----------------
1515
1516
1517The 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.
1518
1519{{{#!th align=center
1520Field Name
1521}}}
1522{{{#!th align=center
1523Data Type
1524}}}
1525{{{#!th align=center
1526Description
1527}}}
1528|----------------
1529{{{#!td align=left
1530addr1
1531}}}
1532{{{#!td align=center
1533uint64
1534}}}
1535{{{#!td align=left
1536MAC Header Address 1
1537}}}
1538|----------------
1539{{{#!td align=left
1540addr2
1541}}}
1542{{{#!td align=center
1543uint64
1544}}}
1545{{{#!td align=left
1546MAC Header Address 2
1547}}}
1548|----------------
1549{{{#!td align=left
1550addr3
1551}}}
1552{{{#!td align=center
1553uint64
1554}}}
1555{{{#!td align=left
1556MAC Header Address 3
1557}}}
1558|----------------
1559{{{#!td align=left
1560mac_seq
1561}}}
1562{{{#!td align=center
1563uint16
1564}}}
1565{{{#!td align=left
1566MAC Header Sequence Number
1567}}}
1568|----------------
1569
1570
1571----
1572
1573=== Entry Type TX_HIGH_LTG ===
1574Tx 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).
1575
1576Entry type ID: 21
1577
1578{{{#!th align=center
1579Field Name
1580}}}
1581{{{#!th align=center
1582Data Type
1583}}}
1584{{{#!th align=center
1585Description
1586}}}
1587|----------------
1588{{{#!td align=left
1589timestamp
1590}}}
1591{{{#!td align=center
1592uint64
1593}}}
1594{{{#!td align=left
1595Value of MAC Time in microseconds when packet was created, immediately before it was enqueued
1596}}}
1597|----------------
1598{{{#!td align=left
1599time_to_accept
1600}}}
1601{{{#!td align=center
1602uint32
1603}}}
1604{{{#!td align=left
1605Time duration in microseconds between packet creation and acceptance by frame_transmit() in CPU Low
1606}}}
1607|----------------
1608{{{#!td align=left
1609time_to_done
1610}}}
1611{{{#!td align=center
1612uint32
1613}}}
1614{{{#!td align=left
1615Time duration in microseconds between packet acceptance by CPU Low and completion of all transmissions by CPU Low
1616}}}
1617|----------------
1618{{{#!td align=left
1619uniq_seq
1620}}}
1621{{{#!td align=center
1622uint64
1623}}}
1624{{{#!td align=left
1625Unique sequence number for Tx packet; 12 LSB of this used for 802.11 MAC header sequence number
1626}}}
1627|----------------
1628{{{#!td align=left
1629padding0
1630}}}
1631{{{#!td align=center
1632uint32
1633}}}
1634{{{#!td align=left
1635
1636}}}
1637|----------------
1638{{{#!td align=left
1639num_tx
1640}}}
1641{{{#!td align=center
1642uint16
1643}}}
1644{{{#!td align=left
1645Number of Tx attempts that were made for this packet
1646}}}
1647|----------------
1648{{{#!td align=left
1649length
1650}}}
1651{{{#!td align=center
1652uint16
1653}}}
1654{{{#!td align=left
1655Length in bytes of MPDU; includes MAC header, payload and FCS
1656}}}
1657|----------------
1658{{{#!td align=left
1659padding1
1660}}}
1661{{{#!td align=center
1662uint8
1663}}}
1664{{{#!td align=left
1665
1666}}}
1667|----------------
1668{{{#!td align=left
1669pkt_type
1670}}}
1671{{{#!td align=center
1672uint8
1673}}}
1674{{{#!td align=left
1675Packet type, first frame control byte of 802.11 header
1676
1677Constants defined for this field:
1678||= Name =||= Value =||
1679|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
1680|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
1681|| {{{CTS}}}  ||  {{{0xC4}}}  ||
1682|| {{{ACK}}}  ||  {{{0xD4}}}  ||
1683|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
1684|| {{{BEACON}}}  ||  {{{0x80}}}  ||
1685|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
1686|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
1687|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
1688|| {{{DATA}}}  ||  {{{0x8}}}  ||
1689|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
1690|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
1691|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
1692|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
1693|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
1694|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
1695|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
1696|| {{{RTS}}}  ||  {{{0xB4}}}  ||
1697|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
1698
1699}}}
1700|----------------
1701{{{#!td align=left
1702queue_id
1703}}}
1704{{{#!td align=center
1705uint16
1706}}}
1707{{{#!td align=left
1708Tx queue ID from which the packet was retrieved
1709}}}
1710|----------------
1711{{{#!td align=left
1712queue_occupancy
1713}}}
1714{{{#!td align=center
1715uint16
1716}}}
1717{{{#!td align=left
1718Occupancy of the Tx queue immediately after this packet was enqueued
1719}}}
1720|----------------
1721{{{#!td align=left
1722flags
1723}}}
1724{{{#!td align=center
1725uint16
1726}}}
1727{{{#!td align=left
17281-bit flags
1729
1730Constants defined for this field:
1731||= Name =||= Value =||
1732|| {{{SUCCESSFUL}}}  ||  {{{0x1}}}  ||
1733|| {{{LTG_PYLD}}}  ||  {{{0x40}}}  ||
1734|| {{{LTG}}}  ||  {{{0x80}}}  ||
1735
1736}}}
1737|----------------
1738{{{#!td align=left
1739mac_payload_len
1740}}}
1741{{{#!td align=center
1742uint32
1743}}}
1744{{{#!td align=left
1745Length in bytes of MAC payload recorded in log for this packet
1746}}}
1747|----------------
1748{{{#!td align=left
1749mac_payload
1750}}}
1751{{{#!td align=center
175244uint8
1753}}}
1754{{{#!td align=left
1755First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID
1756}}}
1757|----------------
1758
1759
1760The 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.
1761
1762{{{#!th align=center
1763Field Name
1764}}}
1765{{{#!th align=center
1766Data Type
1767}}}
1768{{{#!th align=center
1769Description
1770}}}
1771|----------------
1772{{{#!td align=left
1773addr1
1774}}}
1775{{{#!td align=center
1776uint64
1777}}}
1778{{{#!td align=left
1779MAC Header Address 1
1780}}}
1781|----------------
1782{{{#!td align=left
1783addr2
1784}}}
1785{{{#!td align=center
1786uint64
1787}}}
1788{{{#!td align=left
1789MAC Header Address 2
1790}}}
1791|----------------
1792{{{#!td align=left
1793addr3
1794}}}
1795{{{#!td align=center
1796uint64
1797}}}
1798{{{#!td align=left
1799MAC Header Address 3
1800}}}
1801|----------------
1802{{{#!td align=left
1803mac_seq
1804}}}
1805{{{#!td align=center
1806uint16
1807}}}
1808{{{#!td align=left
1809MAC Header Sequence Number
1810}}}
1811|----------------
1812{{{#!td align=left
1813ltg_uniq_seq
1814}}}
1815{{{#!td align=center
1816uint64
1817}}}
1818{{{#!td align=left
1819Unique sequence number for LTG packet
1820}}}
1821|----------------
1822{{{#!td align=left
1823ltg_flow_id
1824}}}
1825{{{#!td align=center
1826uint64
1827}}}
1828{{{#!td align=left
1829LTG Flow ID, calculated as:
1830  16LSB: LTG instance ID
1831  48MSB: Destination MAC address
1832}}}
1833|----------------
1834
1835
1836----
1837
1838=== Entry Type TX_LOW ===
1839Record 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.
1840
1841Entry type ID: 25
1842
1843{{{#!th align=center
1844Field Name
1845}}}
1846{{{#!th align=center
1847Data Type
1848}}}
1849{{{#!th align=center
1850Description
1851}}}
1852|----------------
1853{{{#!td align=left
1854timestamp
1855}}}
1856{{{#!td align=center
1857uint64
1858}}}
1859{{{#!td align=left
1860Value of MAC Time in microseconds when packet transmission actually started (PHY TX_START time)
1861}}}
1862|----------------
1863{{{#!td align=left
1864uniq_seq
1865}}}
1866{{{#!td align=center
1867uint64
1868}}}
1869{{{#!td align=left
1870Unique sequence number of original MPDU
1871}}}
1872|----------------
1873{{{#!td align=left
1874mcs
1875}}}
1876{{{#!td align=center
1877uint8
1878}}}
1879{{{#!td align=left
1880MCS index in ![0:7]
1881}}}
1882|----------------
1883{{{#!td align=left
1884phy_mode
1885}}}
1886{{{#!td align=center
1887uint8
1888}}}
1889{{{#!td align=left
1890PHY mode index, in ![1:2]
1891
1892Constants defined for this field:
1893||= Name =||= Value =||
1894|| {{{NONHT}}}  ||  {{{0x1}}}  ||
1895|| {{{HTMF}}}  ||  {{{0x2}}}  ||
1896|| {{{DSSS}}}  ||  {{{0x0}}}  ||
1897
1898}}}
1899|----------------
1900{{{#!td align=left
1901ant_mode
1902}}}
1903{{{#!td align=center
1904uint8
1905}}}
1906{{{#!td align=left
1907PHY antenna mode in [0x10, 0x20, 0x30, 0x40]
1908
1909Constants defined for this field:
1910||= Name =||= Value =||
1911|| {{{RF_A}}}  ||  {{{0x10}}}  ||
1912|| {{{RF_C}}}  ||  {{{0x30}}}  ||
1913|| {{{RF_B}}}  ||  {{{0x20}}}  ||
1914|| {{{RF_D}}}  ||  {{{0x40}}}  ||
1915
1916}}}
1917|----------------
1918{{{#!td align=left
1919tx_power
1920}}}
1921{{{#!td align=center
1922int8
1923}}}
1924{{{#!td align=left
1925Tx power in dBm
1926}}}
1927|----------------
1928{{{#!td align=left
1929reserved0
1930}}}
1931{{{#!td align=center
1932uint8
1933}}}
1934{{{#!td align=left
1935
1936}}}
1937|----------------
1938{{{#!td align=left
1939channel
1940}}}
1941{{{#!td align=center
1942uint8
1943}}}
1944{{{#!td align=left
1945Channel (center frequency) index
1946}}}
1947|----------------
1948{{{#!td align=left
1949length
1950}}}
1951{{{#!td align=center
1952uint16
1953}}}
1954{{{#!td align=left
1955Length in bytes of MPDU; includes MAC header, payload and FCS
1956}}}
1957|----------------
1958{{{#!td align=left
1959num_slots
1960}}}
1961{{{#!td align=center
1962int16
1963}}}
1964{{{#!td align=left
1965Number 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
1966}}}
1967|----------------
1968{{{#!td align=left
1969cw
1970}}}
1971{{{#!td align=center
1972uint16
1973}}}
1974{{{#!td align=left
1975Contention window value at time of this Tx
1976}}}
1977|----------------
1978{{{#!td align=left
1979pkt_type
1980}}}
1981{{{#!td align=center
1982uint8
1983}}}
1984{{{#!td align=left
1985Packet type, (first frame control byte of 802.11 header)
1986
1987Constants defined for this field:
1988||= Name =||= Value =||
1989|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
1990|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
1991|| {{{CTS}}}  ||  {{{0xC4}}}  ||
1992|| {{{ACK}}}  ||  {{{0xD4}}}  ||
1993|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
1994|| {{{BEACON}}}  ||  {{{0x80}}}  ||
1995|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
1996|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
1997|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
1998|| {{{DATA}}}  ||  {{{0x8}}}  ||
1999|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
2000|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
2001|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
2002|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
2003|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
2004|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
2005|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
2006|| {{{RTS}}}  ||  {{{0xB4}}}  ||
2007|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
2008
2009}}}
2010|----------------
2011{{{#!td align=left
2012flags
2013}}}
2014{{{#!td align=center
2015uint8
2016}}}
2017{{{#!td align=left
20181-bit Flags
2019
2020Constants defined for this field:
2021||= Name =||= Value =||
2022|| {{{RECEIVED_RESPONSE}}}  ||  {{{0x1}}}  ||
2023|| {{{LTG_PYLD}}}  ||  {{{0x80}}}  ||
2024|| {{{LTG}}}  ||  {{{0x40}}}  ||
2025
2026}}}
2027|----------------
2028{{{#!td align=left
2029timestamp_frac
2030}}}
2031{{{#!td align=center
2032uint8
2033}}}
2034{{{#!td align=left
2035Fractional part of Tx timestamp (units of 6.25ns)
2036}}}
2037|----------------
2038{{{#!td align=left
2039phy_samp_rate
2040}}}
2041{{{#!td align=center
2042uint8
2043}}}
2044{{{#!td align=left
2045PHY Sampling Rate Mode
2046}}}
2047|----------------
2048{{{#!td align=left
2049attempt_number
2050}}}
2051{{{#!td align=center
2052uint16
2053}}}
2054{{{#!td align=left
2055Transmission index for this attempt, starting at 1 (1 = first Tx)
2056}}}
2057|----------------
2058{{{#!td align=left
2059reserved1
2060}}}
2061{{{#!td align=center
2062uint16
2063}}}
2064{{{#!td align=left
2065
2066}}}
2067|----------------
2068{{{#!td align=left
2069mac_payload_len
2070}}}
2071{{{#!td align=center
2072uint32
2073}}}
2074{{{#!td align=left
2075Length in bytes of MAC payload recorded in log for this packet
2076}}}
2077|----------------
2078{{{#!td align=left
2079mac_payload
2080}}}
2081{{{#!td align=center
208224uint8
2083}}}
2084{{{#!td align=left
2085First 24 bytes of MAC payload, typically the 802.11 MAC header
2086}}}
2087|----------------
2088
2089
2090The 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.
2091
2092{{{#!th align=center
2093Field Name
2094}}}
2095{{{#!th align=center
2096Data Type
2097}}}
2098{{{#!th align=center
2099Description
2100}}}
2101|----------------
2102{{{#!td align=left
2103addr1
2104}}}
2105{{{#!td align=center
2106uint64
2107}}}
2108{{{#!td align=left
2109MAC Header Address 1
2110}}}
2111|----------------
2112{{{#!td align=left
2113addr2
2114}}}
2115{{{#!td align=center
2116uint64
2117}}}
2118{{{#!td align=left
2119MAC Header Address 2
2120}}}
2121|----------------
2122{{{#!td align=left
2123addr3
2124}}}
2125{{{#!td align=center
2126uint64
2127}}}
2128{{{#!td align=left
2129MAC Header Address 3
2130}}}
2131|----------------
2132{{{#!td align=left
2133mac_seq
2134}}}
2135{{{#!td align=center
2136uint16
2137}}}
2138{{{#!td align=left
2139MAC Header Sequence Number
2140}}}
2141|----------------
2142
2143
2144----
2145
2146=== Entry Type TX_LOW_LTG ===
2147Record 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.
2148
2149Entry type ID: 26
2150
2151{{{#!th align=center
2152Field Name
2153}}}
2154{{{#!th align=center
2155Data Type
2156}}}
2157{{{#!th align=center
2158Description
2159}}}
2160|----------------
2161{{{#!td align=left
2162timestamp
2163}}}
2164{{{#!td align=center
2165uint64
2166}}}
2167{{{#!td align=left
2168Value of MAC Time in microseconds when packet transmission actually started (PHY TX_START time)
2169}}}
2170|----------------
2171{{{#!td align=left
2172uniq_seq
2173}}}
2174{{{#!td align=center
2175uint64
2176}}}
2177{{{#!td align=left
2178Unique sequence number of original MPDU
2179}}}
2180|----------------
2181{{{#!td align=left
2182mcs
2183}}}
2184{{{#!td align=center
2185uint8
2186}}}
2187{{{#!td align=left
2188MCS index in ![0:7]
2189}}}
2190|----------------
2191{{{#!td align=left
2192phy_mode
2193}}}
2194{{{#!td align=center
2195uint8
2196}}}
2197{{{#!td align=left
2198PHY mode index, in ![1:2]
2199
2200Constants defined for this field:
2201||= Name =||= Value =||
2202|| {{{NONHT}}}  ||  {{{0x1}}}  ||
2203|| {{{HTMF}}}  ||  {{{0x2}}}  ||
2204|| {{{DSSS}}}  ||  {{{0x0}}}  ||
2205
2206}}}
2207|----------------
2208{{{#!td align=left
2209ant_mode
2210}}}
2211{{{#!td align=center
2212uint8
2213}}}
2214{{{#!td align=left
2215PHY antenna mode in [0x10, 0x20, 0x30, 0x40]
2216
2217Constants defined for this field:
2218||= Name =||= Value =||
2219|| {{{RF_A}}}  ||  {{{0x10}}}  ||
2220|| {{{RF_C}}}  ||  {{{0x30}}}  ||
2221|| {{{RF_B}}}  ||  {{{0x20}}}  ||
2222|| {{{RF_D}}}  ||  {{{0x40}}}  ||
2223
2224}}}
2225|----------------
2226{{{#!td align=left
2227tx_power
2228}}}
2229{{{#!td align=center
2230int8
2231}}}
2232{{{#!td align=left
2233Tx power in dBm
2234}}}
2235|----------------
2236{{{#!td align=left
2237reserved0
2238}}}
2239{{{#!td align=center
2240uint8
2241}}}
2242{{{#!td align=left
2243
2244}}}
2245|----------------
2246{{{#!td align=left
2247channel
2248}}}
2249{{{#!td align=center
2250uint8
2251}}}
2252{{{#!td align=left
2253Channel (center frequency) index
2254}}}
2255|----------------
2256{{{#!td align=left
2257length
2258}}}
2259{{{#!td align=center
2260uint16
2261}}}
2262{{{#!td align=left
2263Length in bytes of MPDU; includes MAC header, payload and FCS
2264}}}
2265|----------------
2266{{{#!td align=left
2267num_slots
2268}}}
2269{{{#!td align=center
2270int16
2271}}}
2272{{{#!td align=left
2273Number 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
2274}}}
2275|----------------
2276{{{#!td align=left
2277cw
2278}}}
2279{{{#!td align=center
2280uint16
2281}}}
2282{{{#!td align=left
2283Contention window value at time of this Tx
2284}}}
2285|----------------
2286{{{#!td align=left
2287pkt_type
2288}}}
2289{{{#!td align=center
2290uint8
2291}}}
2292{{{#!td align=left
2293Packet type, (first frame control byte of 802.11 header)
2294
2295Constants defined for this field:
2296||= Name =||= Value =||
2297|| {{{DEAUTH}}}  ||  {{{0xC0}}}  ||
2298|| {{{BLOCK_ACK}}}  ||  {{{0x94}}}  ||
2299|| {{{CTS}}}  ||  {{{0xC4}}}  ||
2300|| {{{ACK}}}  ||  {{{0xD4}}}  ||
2301|| {{{AUTH}}}  ||  {{{0xB0}}}  ||
2302|| {{{BEACON}}}  ||  {{{0x80}}}  ||
2303|| {{{DISASSOC}}}  ||  {{{0xA0}}}  ||
2304|| {{{NULLDATA}}}  ||  {{{0x48}}}  ||
2305|| {{{REASSOC_REQ}}}  ||  {{{0x20}}}  ||
2306|| {{{DATA}}}  ||  {{{0x8}}}  ||
2307|| {{{BLOCK_ACK_REQ}}}  ||  {{{0x84}}}  ||
2308|| {{{PROBE_REQ}}}  ||  {{{0x40}}}  ||
2309|| {{{PROBE_RESP}}}  ||  {{{0x50}}}  ||
2310|| {{{QOSDATA}}}  ||  {{{0x88}}}  ||
2311|| {{{REASSOC_RESP}}}  ||  {{{0x30}}}  ||
2312|| {{{ASSOC_RESP}}}  ||  {{{0x10}}}  ||
2313|| {{{ASSOC_REQ}}}  ||  {{{0x0}}}  ||
2314|| {{{RTS}}}  ||  {{{0xB4}}}  ||
2315|| {{{ACTION}}}  ||  {{{0xD0}}}  ||
2316
2317}}}
2318|----------------
2319{{{#!td align=left
2320flags
2321}}}
2322{{{#!td align=center
2323uint8
2324}}}
2325{{{#!td align=left
23261-bit Flags
2327
2328Constants defined for this field:
2329||= Name =||= Value =||
2330|| {{{RECEIVED_RESPONSE}}}  ||  {{{0x1}}}  ||
2331|| {{{LTG_PYLD}}}  ||  {{{0x80}}}  ||
2332|| {{{LTG}}}  ||  {{{0x40}}}  ||
2333
2334}}}
2335|----------------
2336{{{#!td align=left
2337timestamp_frac
2338}}}
2339{{{#!td align=center
2340uint8
2341}}}
2342{{{#!td align=left
2343Fractional part of Tx timestamp (units of 6.25ns)
2344}}}
2345|----------------
2346{{{#!td align=left
2347phy_samp_rate
2348}}}
2349{{{#!td align=center
2350uint8
2351}}}
2352{{{#!td align=left
2353PHY Sampling Rate Mode
2354}}}
2355|----------------
2356{{{#!td align=left
2357attempt_number
2358}}}
2359{{{#!td align=center
2360uint16
2361}}}
2362{{{#!td align=left
2363Transmission index for this attempt, starting at 1 (1 = first Tx)
2364}}}
2365|----------------
2366{{{#!td align=left
2367reserved1
2368}}}
2369{{{#!td align=center
2370uint16
2371}}}
2372{{{#!td align=left
2373
2374}}}
2375|----------------
2376{{{#!td align=left
2377mac_payload_len
2378}}}
2379{{{#!td align=center
2380uint32
2381}}}
2382{{{#!td align=left
2383Length in bytes of MAC payload recorded in log for this packet
2384}}}
2385|----------------
2386{{{#!td align=left
2387mac_payload
2388}}}
2389{{{#!td align=center
239044uint8
2391}}}
2392{{{#!td align=left
2393First 44 bytes of MAC payload: the 802.11 MAC header, LLC header, Packet ID, LTG ID
2394}}}
2395|----------------
2396
2397
2398The 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.
2399
2400{{{#!th align=center
2401Field Name
2402}}}
2403{{{#!th align=center
2404Data Type
2405}}}
2406{{{#!th align=center
2407Description
2408}}}
2409|----------------
2410{{{#!td align=left
2411addr1
2412}}}
2413{{{#!td align=center
2414uint64
2415}}}
2416{{{#!td align=left
2417MAC Header Address 1
2418}}}
2419|----------------
2420{{{#!td align=left
2421addr2
2422}}}
2423{{{#!td align=center
2424uint64
2425}}}
2426{{{#!td align=left
2427MAC Header Address 2
2428}}}
2429|----------------
2430{{{#!td align=left
2431addr3
2432}}}
2433{{{#!td align=center
2434uint64
2435}}}
2436{{{#!td align=left
2437MAC Header Address 3
2438}}}
2439|----------------
2440{{{#!td align=left
2441mac_seq
2442}}}
2443{{{#!td align=center
2444uint16
2445}}}
2446{{{#!td align=left
2447MAC Header Sequence Number
2448}}}
2449|----------------
2450{{{#!td align=left
2451ltg_uniq_seq
2452}}}
2453{{{#!td align=center
2454uint64
2455}}}
2456{{{#!td align=left
2457Unique sequence number for LTG packet
2458}}}
2459|----------------
2460{{{#!td align=left
2461ltg_flow_id
2462}}}
2463{{{#!td align=center
2464uint64
2465}}}
2466{{{#!td align=left
2467LTG Flow ID, calculated as:
2468  16LSB: LTG instance ID
2469  48MSB: Destination MAC address
2470}}}
2471|----------------
2472
Note: See TracBrowser for help on using the repository browser.