On Aug 22, 2015, at 7:46 AM, Richard Sharpe <realrichardsharpe@xxxxxxxxx> wrote:
> diff --git a/wiretap/wtap.h b/wiretap/wtap.h
> index 8de0c30..11d460d 100644
> --- a/wiretap/wtap.h
> +++ b/wiretap/wtap.h
> @@ -571,6 +571,7 @@ struct p2p_phdr {
> #define PHDR_802_11_PHY_11G 6 /* 802.11g */
> #define PHDR_802_11_PHY_11N 7 /* 802.11n */
> #define PHDR_802_11_PHY_11AC 8 /* 802.11ac */
> +#define PHDR_802_11_PHY_11AD 9 /* 802.11ad */
...
> +/*
> * 802.11ac.
> */
> struct ieee_802_11ac {
I would also add
/*
* 802.11ad.
*/
struct ieee_802_11ad {
guint32 presence_flags; /* Which of this information is present? */
guint8 mcs; /* MCS index */
};
/*
* Presence flags.
*/
#define PHDR_802_11AD_HAS_MCS_INDEX 0x00000001 /* mcs */
and add
struct ieee_802_11ad info_11ad;
to the phy_info union in struct ieee_802_11_phdr, and, if you decide a frame is 11ad, fill in *that* union, with the MCS index if you have an MCS field.
Then, in epan/dissectors/packet-ieee80211-radio.c, have it get the MCS index out of that union, if the PHY is PHDR_802_11_PHY_11AD, and interpret the value as per Clause 21.