Subject: [PATCH] mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set

It is possible that some broken AP might send HT IEs in it's
assoc response even though the STA has not sent them in assoc req
when WEP/TKIP is used as pairwise cipher suite. Also it is important
to check this bit before enabling ht mode in beacon receive path.

Signed-off-by: Vasanthakumar Thiagarajan <[email protected]>
---
net/mac80211/mlme.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 169f10c..e7aafb0 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1532,7 +1532,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
elems.wmm_param_len);

if (elems.ht_info_elem && elems.wmm_param &&
- (ifsta->flags & IEEE80211_STA_WMM_ENABLED))
+ (ifsta->flags & IEEE80211_STA_WMM_ENABLED) &&
+ !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED))
changed |= ieee80211_enable_ht(sdata, elems.ht_info_elem,
ap_ht_cap_flags);

@@ -1933,7 +1934,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
erp_valid, erp_value);


- if (elems.ht_cap_elem && elems.ht_info_elem && elems.wmm_param) {
+ if (elems.ht_cap_elem && elems.ht_info_elem && elems.wmm_param &&
+ !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED)) {
struct sta_info *sta;
struct ieee80211_supported_band *sband;
u16 ap_ht_cap_flags;
--
1.5.5.1



2009-02-11 16:57:48

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set

On Wed, 2009-02-11 at 22:18 +0530, Vasanthakumar Thiagarajan wrote:
> It is possible that some broken AP might send HT IEs in it's
> assoc response even though the STA has not sent them in assoc req
> when WEP/TKIP is used as pairwise cipher suite. Also it is important
> to check this bit before enabling ht mode in beacon receive path.
>
> Signed-off-by: Vasanthakumar Thiagarajan <[email protected]>
> ---
> net/mac80211/mlme.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index 169f10c..e7aafb0 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -1532,7 +1532,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
> elems.wmm_param_len);
>
> if (elems.ht_info_elem && elems.wmm_param &&
> - (ifsta->flags & IEEE80211_STA_WMM_ENABLED))
> + (ifsta->flags & IEEE80211_STA_WMM_ENABLED) &&
> + !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED))

Maybe we should have a separate flag for _REQUESTED_HT? I'm thinking
here that possibly we might be adding more conditions under which we do
not request HT?

Otherwise, looks ok to me.

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part

2009-02-11 18:21:10

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set

On Wed, 2009-02-11 at 23:34 +0530, Vasanthakumar Thiagarajan wrote:
> On Wed, Feb 11, 2009 at 10:27:44PM +0530, Johannes Berg wrote:
> > On Wed, 2009-02-11 at 22:18 +0530, Vasanthakumar Thiagarajan wrote:
> > > It is possible that some broken AP might send HT IEs in it's
> > > assoc response even though the STA has not sent them in assoc req
> > > when WEP/TKIP is used as pairwise cipher suite. Also it is important
> > > to check this bit before enabling ht mode in beacon receive path.
> > >
> > > Signed-off-by: Vasanthakumar Thiagarajan <[email protected]>
> > > ---
> > > net/mac80211/mlme.c | 6 ++++--
> > > 1 files changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> > > index 169f10c..e7aafb0 100644
> > > --- a/net/mac80211/mlme.c
> > > +++ b/net/mac80211/mlme.c
> > > @@ -1532,7 +1532,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
> > > elems.wmm_param_len);
> > >
> > > if (elems.ht_info_elem && elems.wmm_param &&
> > > - (ifsta->flags & IEEE80211_STA_WMM_ENABLED))
> > > + (ifsta->flags & IEEE80211_STA_WMM_ENABLED) &&
> > > + !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED))
> >
> > Maybe we should have a separate flag for _REQUESTED_HT? I'm thinking
> > here that possibly we might be adding more conditions under which we do
> > not request HT?
> >
> > Otherwise, looks ok to me.
>
> That's right. We can even remove IEEE80211_STA_TKIP_WEP_USED if we
> introduce a generic flag to enable ht, but this cleanup can be in a
> separate patch. Thanks for the comments.

Good point, if we identify another reason to disable HT later then we
can just rename this flag.

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part
Subject: Re: [PATCH] mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set

On Wed, Feb 11, 2009 at 10:27:44PM +0530, Johannes Berg wrote:
> On Wed, 2009-02-11 at 22:18 +0530, Vasanthakumar Thiagarajan wrote:
> > It is possible that some broken AP might send HT IEs in it's
> > assoc response even though the STA has not sent them in assoc req
> > when WEP/TKIP is used as pairwise cipher suite. Also it is important
> > to check this bit before enabling ht mode in beacon receive path.
> >
> > Signed-off-by: Vasanthakumar Thiagarajan <[email protected]>
> > ---
> > net/mac80211/mlme.c | 6 ++++--
> > 1 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> > index 169f10c..e7aafb0 100644
> > --- a/net/mac80211/mlme.c
> > +++ b/net/mac80211/mlme.c
> > @@ -1532,7 +1532,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
> > elems.wmm_param_len);
> >
> > if (elems.ht_info_elem && elems.wmm_param &&
> > - (ifsta->flags & IEEE80211_STA_WMM_ENABLED))
> > + (ifsta->flags & IEEE80211_STA_WMM_ENABLED) &&
> > + !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED))
>
> Maybe we should have a separate flag for _REQUESTED_HT? I'm thinking
> here that possibly we might be adding more conditions under which we do
> not request HT?
>
> Otherwise, looks ok to me.

That's right. We can even remove IEEE80211_STA_TKIP_WEP_USED if we
introduce a generic flag to enable ht, but this cleanup can be in a
separate patch. Thanks for the comments.

Vasanth