Search Linux Wireless

RE: [PATCH 1/3] ieee80211: add trigger frame definition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux