From: Stefan Sperling Subject: make tcpdump show 802.11 QoS TID To: tech@openbsd.org Date: Thu, 4 Dec 2025 11:03:42 +0100 Make tcpdump show the QoS TID with -v. Avoids a roundtrip into wireshark for me when debugging QoS related stuff. OK? M usr.sbin/tcpdump/print-802_11.c | 6+ 0- 1 file changed, 6 insertions(+), 0 deletions(-) commit - 518016afd7445de7b41ff08566393e1fcdc5b157 commit + bd014d40ff0fb8fb204496f92d2b358ae3f540a3 blob - b6b7ade0f2e41151ce96a6c3763e28cc2c7fabba blob + dddcba1cf65e8480b42ebfda0518eaf0213830ac --- usr.sbin/tcpdump/print-802_11.c +++ usr.sbin/tcpdump/print-802_11.c @@ -187,6 +187,7 @@ ieee80211_data(struct ieee80211_frame *wh, u_int len) (IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_QOS)) == (IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_QOS)); u_char *esrc = NULL, *edst = NULL; + uint16_t qos = 0; if (hasqos) { struct ieee80211_qosframe *wq; @@ -195,6 +196,7 @@ ieee80211_data(struct ieee80211_frame *wh, u_int len) TCHECK(*wq); t += sizeof(*wq); datalen = len - sizeof(*wq); + memcpy(&qos, wq->i_qos, sizeof(qos)); } else { TCHECK(*wh); t += sizeof(*wh); @@ -224,6 +226,7 @@ ieee80211_data(struct ieee80211_frame *wh, u_int len) datalen = len - sizeof(*w4); esrc = w4->i_addr4; edst = w4->i_addr3; + memcpy(&qos, w4->i_qos, sizeof(qos)); } else { struct ieee80211_frame_addr4 *w4; @@ -237,6 +240,9 @@ ieee80211_data(struct ieee80211_frame *wh, u_int len) break; } + if (hasqos & vflag) + printf("TID %u ", le16toh(qos) & IEEE80211_QOS_TID); + if (data && esrc) llc_print(t, datalen, datalen, esrc, edst); else if (eflag && esrc)