All of lore.kernel.org
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger@lwfinger.net>
To: Jouni Malinen <jouni@qca.qualcomm.com>,
	Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless <linux-wireless@vger.kernel.org>
Subject: Regression caused by commit df88129
Date: Sun, 17 Feb 2013 00:31:01 -0600	[thread overview]
Message-ID: <51207925.5040702@lwfinger.net> (raw)

Jouni and Johannes,

A recent pull of the wireless-testing tree caused my wireless to break. The 
wireless devices can authenticate and associate as follows:

wlan0: authenticate with c0:3f:0e:be:2b:44
wlan0: capabilities/regulatory prevented using AP HT/VHT configuration, downgraded
wlan0: send auth to c0:3f:0e:be:2b:44 (try 1/3)
wlan0: authenticated
wlan0: associate with c0:3f:0e:be:2b:44 (try 1/3)
wlan0: RX AssocResp from c0:3f:0e:be:2b:44 (capab=0x411 status=0 aid=3)
wlan0: associated
IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
wlan0: dropped frame to c0:3f:0e:be:2b:44 (unauthorized port)
b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac: 
c0:3f:0e:be:2b:44
b43-phy0 debug: Using hardware based encryption for keyidx: 1, mac: 
ff:ff:ff:ff:ff:ff
wlan0: dropped frame to c0:3f:0e:be:2b:44 (unauthorized port)
wlan0: dropped frame to c0:3f:0e:be:2b:44 (unauthorized port)

These dropped frame messages persist, and prevent the connection from being 
completed. The code in question is in routine ieee80211_subif_start_xmit() of 
file net/mac80211/tx.c as follows:

==============================================================
         if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) &&
                      !is_multicast_ether_addr(hdr.addr1) && !authorized &&
                      (cpu_to_be16(ethertype) != sdata->control_port_protocol ||
                       !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) {
#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
                 net_info_ratelimited("%s: dropped frame to %pM (unauthorized 
port)\n",
                                     dev->name, hdr.addr1);
#endif

                 I802_DEBUG_INC(local->tx_handlers_drop_unauth_port);

                 goto fail_rcu;
         }
==============================================================

When the if statement is rewritten as 'if (A || B)', it turns out that A is 
true, and B is false.

The regression was bisected to commit df881293c6ba9a12868491a717b25cb14ec1fa4a.

==============================================================
commit df881293c6ba9a12868491a717b25cb14ec1fa4a
Author: Jouni Malinen <jouni@qca.qualcomm.com>
Date:   Thu Feb 14 21:10:54 2013 +0200

     cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station

     The information of the peer's capabilities is required for the driver
     to perform TDLS Peer UAPSD operations. This information of the peer is
     passed by the supplicant using NL80211_CMD_SET_STATION command. This
     commit enhances the function nl80211_set_station to pass this
     information of the peer to the driver in case this command is used
     with the TDLS peer STA.

     In addition, make the HT/VHT capability configuration handled more
     consistently for other STA cases (reject both instead of just HT).

     Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
     Signed-off-by: Johannes Berg <johannes.berg@intel.com>
==============================================================

If you need any more debugging output for this problem, please let me know.

Thanks,

Larry

             reply	other threads:[~2013-02-17  6:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-17  6:31 Larry Finger [this message]
2013-02-17  8:32 ` Regression caused by commit df88129 Malinen, Jouni
2013-02-17 14:41 ` Malinen, Jouni
2013-02-17 21:21   ` Larry Finger
2013-02-18 14:01 ` Johannes Berg
2013-02-18 14:02 ` [PATCH] cfg80211: fix station change if TDLS isn't supported Johannes Berg
2013-02-18 17:24   ` Larry Finger
2013-02-18 17:25     ` Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51207925.5040702@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=johannes@sipsolutions.net \
    --cc=jouni@qca.qualcomm.com \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.