> -----Original Message----- > From: Kalle Valo <kvalo@xxxxxxxxxx> > Sent: Wednesday, June 8, 2022 4:07 PM > To: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > Cc: johannes@xxxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx; Eric Huang <echuang@xxxxxxxxxxx>; Bernie > Huang <phhuang@xxxxxxxxxxx> > Subject: Re: [PATCH 1/3] ieee80211: add trigger frame definition > > Ping-Ke Shih <pkshih@xxxxxxxxxxx> writes: > > > From: Po Hao Huang <phhuang@xxxxxxxxxxx> > > > > Define trigger stype of control frame, and its checking function, struct > > and trigger type within common_info of trigger. > > > > Signed-off-by: Po Hao Huang <phhuang@xxxxxxxxxxx> > > Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > > --- > > include/linux/ieee80211.h | 31 +++++++++++++++++++++++++++++++ > > 1 file changed, 31 insertions(+) > > > > diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h > > index 75d40acb60c1c..f3b2d5b56d643 100644 > > --- a/include/linux/ieee80211.h > > +++ b/include/linux/ieee80211.h > > @@ -76,6 +76,7 @@ > > #define IEEE80211_STYPE_ACTION 0x00D0 > > > > /* control */ > > +#define IEEE80211_STYPE_TRIGGER 0x0020 > > #define IEEE80211_STYPE_CTL_EXT 0x0060 > > #define IEEE80211_STYPE_BACK_REQ 0x0080 > > #define IEEE80211_STYPE_BACK 0x0090 > > @@ -295,6 +296,17 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2) > > > > #define IEEE80211_HT_CTL_LEN 4 > > > > +/* trigger type within common_info of trigger frame */ > > +#define IEEE80211_TRIGGER_TYPE_MASK 0xfULL > > +#define IEEE80211_TRIGGER_TYPE_BASIC 0x0 > > +#define IEEE80211_TRIGGER_TYPE_BFRP 0x1 > > +#define IEEE80211_TRIGGER_TYPE_MU_BAR 0x2 > > +#define IEEE80211_TRIGGER_TYPE_MU_RTS 0x3 > > +#define IEEE80211_TRIGGER_TYPE_BSRP 0x4 > > +#define IEEE80211_TRIGGER_TYPE_GCR_MU_BAR 0x5 > > +#define IEEE80211_TRIGGER_TYPE_BQRP 0x6 > > +#define IEEE80211_TRIGGER_TYPE_NFRP 0x7 > > Why ULL in the mask? I don't see it used anywhere else in the file. > This is because common_info in ieee80211_trigger is __le64: +struct ieee80211_trigger { ... + __le64 common_info; ... +} Then, type = le64_get_bits(tf->common_info, IEEE80211_TRIGGER_TYPE_MASK); is used to access trigger type of common_info in patch 2/3. Ping-Ke