]> The Tcpdump Group git mirrors - tcpdump/commitdiff
tcpdump: add STBC Rx support
authorOleksij Rempel <[email protected]>
Fri, 3 May 2013 19:53:56 +0000 (21:53 +0200)
committerOleksij Rempel <[email protected]>
Thu, 6 Jun 2013 09:39:24 +0000 (11:39 +0200)
Information will be represented as:
- Rx-STBC0 - mean, Rx-STBC is supported by driver but packet was not encoded in STBC
- Rx-STBC1 - 1 Nss stream was encoded in STBC
- Rx-STBC2 - 2 Nss streams
- Rx-STBC3 - 3

Signed-off-by: Oleksij Rempel <[email protected]>
ieee802_11_radio.h
print-802_11.c

index 5aff13786a6a3e587ce1cbbbca407127c88934df..65c25df4c8ab75254c5acc391762a14f279e63c5 100644 (file)
@@ -277,6 +277,7 @@ enum ieee80211_radiotap_type {
 #define IEEE80211_RADIOTAP_MCS_GUARD_INTERVAL_KNOWN    0x04
 #define IEEE80211_RADIOTAP_MCS_HT_FORMAT_KNOWN         0x08
 #define IEEE80211_RADIOTAP_MCS_FEC_TYPE_KNOWN          0x10
+#define IEEE80211_RADIOTAP_MCS_STBC_KNOWN              0x20
 
 /* For IEEE80211_RADIOTAP_MCS flags */
 #define IEEE80211_RADIOTAP_MCS_BANDWIDTH_MASK  0x03
@@ -287,5 +288,10 @@ enum ieee80211_radiotap_type {
 #define IEEE80211_RADIOTAP_MCS_SHORT_GI                0x04 /* short guard interval */
 #define IEEE80211_RADIOTAP_MCS_HT_GREENFIELD   0x08
 #define IEEE80211_RADIOTAP_MCS_FEC_LDPC                0x10
+#define IEEE80211_RADIOTAP_MCS_STBC_MASK       0x60
+#define                IEEE80211_RADIOTAP_MCS_STBC_1   1
+#define                IEEE80211_RADIOTAP_MCS_STBC_2   2
+#define                IEEE80211_RADIOTAP_MCS_STBC_3   3
+#define IEEE80211_RADIOTAP_MCS_STBC_SHIFT      5
 
 #endif /* _NET_IF_IEEE80211RADIOTAP_H_ */
index 603e9460cafdd36caee7261b83e113236cabcdea..8a9a1a66d0855982e891182379b85e20bdb19e44 100644 (file)
@@ -2184,6 +2184,11 @@ print_radiotap_field(struct cpack_state *s, u_int32_t bit, u_int8_t *flags,
                                (u2.u8 & IEEE80211_RADIOTAP_MCS_FEC_LDPC) ?
                                "LDPC" : "BCC");
                }
+               if (u.u8 & IEEE80211_RADIOTAP_MCS_STBC_KNOWN) {
+                       printf("RX-STBC%u ",
+                               (u2.u8 & IEEE80211_RADIOTAP_MCS_STBC_MASK) >> IEEE80211_RADIOTAP_MCS_STBC_SHIFT);
+               }
+
                break;
                }
        }