Discussion:
[ath9k-devel] some quesitons about ath9k tx rates
杰尔米
2016-12-06 00:32:31 UTC
Permalink
I'm a newbies in 802.11n, please excuse me to ask some unprofessional questions:


I found the array ath9k_legacy_rates below in file common-init.c in ath9k driver. what are these rates means?
There are 12 rates in the array, but there are only 4 ath9k_11n_rate_series in ath_tx_info.rates[], why?


static struct ieee80211_rate ath9k_legacy_rates[] = {
RATE(10, 0x1b, 0),
RATE(20, 0x1a, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(55, 0x19, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(110, 0x18, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(60, 0x0b, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(90, 0x0f, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(120, 0x0a, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(180, 0x0e, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(240, 0x09, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(360, 0x0d, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(480, 0x08, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(540, 0x0c, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
};



struct ath_tx_info {
u8 qcu;


bool is_first;
bool is_last;


enum aggr_type aggr;
u8 ndelim;
u16 aggr_len;


dma_addr_t link;
int pkt_len;
u32 flags;


dma_addr_t buf_addr[4];
int buf_len[4];


struct ath9k_11n_rate_series rates[4];
u8 rtscts_rate;
bool dur_update;


enum ath9k_pkt_type type;
enum ath9k_key_type keytype;
u8 keyix;
u8 txpower[4];
};







------------------ Ô­ÊŒÓÊŒþ ------------------
·¢ŒþÈË: "Kamran Nishat";<***@gmail.com>;
·¢ËÍʱŒä: 2016Äê12ÔÂ5ÈÕ(ÐÇÆÚÒ») ÖÐÎç1:06
ÊÕŒþÈË: "œÜ¶ûÃ×"<***@qq.com>;

Ö÷Ìâ: Re: [ath9k-devel] Why are there only 4 ieee80211_tx_rate in Mac80211and ath9k



look into Minstrel_ht

On Mon, Dec 5, 2016 at 8:11 AM, œÜ¶ûÃ× <***@qq.com> wrote:
Can anyone give me a clue, please?

·¢×ÔÎÒµÄiPhone

_______________________________________________
ath9k-devel mailing list
ath9k-***@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel
杰尔米
2016-12-06 04:21:21 UTC
Permalink
There are two APs: (R1, R2)
And there are four STAs:(S11, S12, S21, S22)
S11 and S12 are in the network of R1,
S21 and S22 are in the network of R2,


i know that if S11 send a RTS packet, then S12 will wait a period.
but will S21 and S22 wait for a period too?
please help me to figure it out, thanks!


------------------ Ô­ÊŒÓÊŒþ ------------------
·¢ŒþÈË: "œÜ¶ûÃ×";<***@qq.com>;
·¢ËÍʱŒä: 2016Äê12ÔÂ6ÈÕ(ÐÇÆÚ¶þ) ÉÏÎç8:32
ÊÕŒþÈË: "ath9k-***@lists.ath9k.org"<ath9k-***@lists.ath9k.org>;

Ö÷Ìâ: [ath9k-devel] some quesitons about ath9k tx rates



I'm a newbies in 802.11n, please excuse me to ask some unprofessional questions:


I found the array ath9k_legacy_rates below in file common-init.c in ath9k driver. what are these rates means?
There are 12 rates in the array, but there are only 4 ath9k_11n_rate_series in ath_tx_info.rates[], why?


static struct ieee80211_rate ath9k_legacy_rates[] = {
RATE(10, 0x1b, 0),
RATE(20, 0x1a, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(55, 0x19, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(110, 0x18, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(60, 0x0b, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(90, 0x0f, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(120, 0x0a, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(180, 0x0e, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(240, 0x09, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(360, 0x0d, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(480, 0x08, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(540, 0x0c, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
};



struct ath_tx_info {
u8 qcu;


bool is_first;
bool is_last;


enum aggr_type aggr;
u8 ndelim;
u16 aggr_len;


dma_addr_t link;
int pkt_len;
u32 flags;


dma_addr_t buf_addr[4];
int buf_len[4];


struct ath9k_11n_rate_series rates[4];
u8 rtscts_rate;
bool dur_update;


enum ath9k_pkt_type type;
enum ath9k_key_type keytype;
u8 keyix;
u8 txpower[4];
};







------------------ Ô­ÊŒÓÊŒþ ------------------
·¢ŒþÈË: "Kamran Nishat";<***@gmail.com>;
·¢ËÍʱŒä: 2016Äê12ÔÂ5ÈÕ(ÐÇÆÚÒ») ÖÐÎç1:06
ÊÕŒþÈË: "œÜ¶ûÃ×"<***@qq.com>;

Ö÷Ìâ: Re: [ath9k-devel] Why are there only 4 ieee80211_tx_rate in Mac80211and ath9k



look into Minstrel_ht

On Mon, Dec 5, 2016 at 8:11 AM, œÜ¶ûÃ× <***@qq.com> wrote:
Can anyone give me a clue, please?

·¢×ÔÎÒµÄiPhone

_______________________________________________
ath9k-devel mailing list
ath9k-***@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel
Sergey Ryazanov
2016-12-07 23:10:03 UTC
Permalink
Post by 杰尔米
There are two APs: (R1, R2)
And there are four STAs:(S11, S12, S21, S22)
S11 and S12 are in the network of R1,
S21 and S22 are in the network of R2,
i know that if S11 send a RTS packet, then S12 will wait a period.
but will S21 and S22 wait for a period too?
Yes, they must do that. Also they all will wait a period, which is
specified in CTS frame, which should be emitted by R1 in response to
RTS frame received from S11.

In accordance to standard, RTS/CTS frames must be processed by each
station, which hear these frames, regardless of BSS.

This is quite simplified description, see section 9.3.2.4 in IEEE
802.11-2012 for more details.
--
Sergey
Adrian Chadd
2016-12-06 23:23:27 UTC
Permalink
Hi,

This tells the wireless stack what rates are possible in 11abg.

See where ath9k_legacy_rates is used in ath9k.


-adrian
Post by 杰尔米
I found the array ath9k_legacy_rates below in file common-init.c in ath9k
driver. what are these rates means?
There are 12 rates in the array, but there are only 4 ath9k_11n_rate_series
in ath_tx_info.rates[], why?
static struct ieee80211_rate ath9k_legacy_rates[] = {
RATE(10, 0x1b, 0),
RATE(20, 0x1a, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(55, 0x19, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(110, 0x18, IEEE80211_RATE_SHORT_PREAMBLE),
RATE(60, 0x0b, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(90, 0x0f, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(120, 0x0a, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(180, 0x0e, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(240, 0x09, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(360, 0x0d, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(480, 0x08, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
RATE(540, 0x0c, (IEEE80211_RATE_SUPPORTS_5MHZ |
IEEE80211_RATE_SUPPORTS_10MHZ)),
};
struct ath_tx_info {
u8 qcu;
bool is_first;
bool is_last;
enum aggr_type aggr;
u8 ndelim;
u16 aggr_len;
dma_addr_t link;
int pkt_len;
u32 flags;
dma_addr_t buf_addr[4];
int buf_len[4];
struct ath9k_11n_rate_series rates[4];
u8 rtscts_rate;
bool dur_update;
enum ath9k_pkt_type type;
enum ath9k_key_type keytype;
u8 keyix;
u8 txpower[4];
};
------------------ 原始邮件 ------------------
发送时间: 2016年12月5日(星期一) 中午1:06
主题: Re: [ath9k-devel] Why are there only 4 ieee80211_tx_rate in Mac80211and
ath9k
look into Minstrel_ht
Post by 杰尔米
Can anyone give me a clue, please?
发自我的iPhone
_______________________________________________
ath9k-devel mailing list
https://lists.ath9k.org/mailman/listinfo/ath9k-devel
_______________________________________________
ath9k-devel mailing list
https://lists.ath9k.org/mailman/listinfo/ath9k-devel
Loading...