ATH10K Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Cc: hostap@lists.shmoo.com, ath10k@lists.infradead.org
Subject: Re: Getting bad MIC when trying ath10k + ath9k IBSS with RSN
Date: Thu, 09 Apr 2015 14:47:43 -0700	[thread overview]
Message-ID: <5526F37F.5070303@candelatech.com> (raw)
In-Reply-To: <55263B1C.4020708@green-communications.fr>

On 04/09/2015 01:41 AM, Nicolas Cavallari wrote:
> [re-adding ath10k, sorry for removing it]
> 
> On 09/04/2015 01:25, Ben Greear wrote:
>> On 04/08/2015 07:53 AM, Ben Greear wrote:
>> Ok, the EAPOL seems to work now, as long as I restart both supplicants before
>> I try to connect.
>>
>> It appears now that there is something wrong with setting the keys.  The
>> firmware appears to get a real key, and then shortly after, the keys are
>> removed and encryption is disabled.
>>
>> The supplicant log is below.  I believe the crucial part is this.  Any idea why
>> this would be failing?  (I'll poke in the kernel tomorrow to try to find
>> the reason as well...)
>>
>> 1428534417.236258: wpa_driver_nl80211_set_key: ifindex=131 (wlan0) alg=3 addr=0x2344900 key_idx=1 set_tx=0 seq_len=6 key_len=16
>> 1428534417.236273: nl80211: KEY_DATA - hexdump(len=16): a5 28 f3 02 e9 cb a4 de 87 01 a4 9c c9 d2 a8 89
>> 1428534417.236298: nl80211: KEY_SEQ - hexdump(len=6): 00 00 00 00 00 00
>> 1428534417.236311:    addr=00:0e:8e:3e:8b:96
>> 1428534417.236319:    RSN IBSS RX GTK
>> 1428534417.236355: nl80211: set_key failed; err=-22 Invalid argument)
>> 1428534417.236367: wlan0: WPA: Failed to set GTK to the driver (alg=3 keylen=16 keyidx=1)
>> 1428534417.236376: wlan0: RSN: Failed to install GTK
>> 1428534417.236385: wlan0: RSN: Failed to configure GTK
>> 1428534417.236393: SUPP: supp_deauthenticate (TODO)
>> 1428534417.236419: l2_packet_receive: src=00:0e:8e:3e:8b:96 len=99
> 
> I see this failure with drivers that do not support IBSS-RSN...
> Otherwise, this request must succeed.

Yeah, I thought I had applied Januz's patch to enable this in ath10k,
but I had not.

With that enabled, the system tries to do encrypted traffic, but
it looks like the unicast frames from ath10k are corrupted.

> However, there are other problems in your log:
> 
> 1) There are two NL80211_CMD_JOIN_IBSS events from the kernel, for only
> one join request.
> 
> 2) wpa_supplicant sent a authentication frame at 1428534380.167582 and
> never got any tx_status response from the kernel.  This was before the
> second NL80211_CMD_JOIN_IBSS event.
> 
> Loosing a authentication frame is normally no big deal. It often
> happens. They are even stations that do not support them.  If i remember
> the logic that i implemented in wpa_supplicant, you consider the other
> station as authenticated if you receive an authentication response or an
> authentication request, or after a timeout.
> 
> 3) But this timeout seems buggy: after completing the EAPOL exchange,
> this timer fires:
> 
> 1428534381.168652: RSN: Timeout on waiting Authentication frame response
> from 00:0e:8e:3e:8b:96 - start authenticator
> 
> This timer shouldn't even be present. And even if it did, it shouldn't
> start the authenticator as it is already started.  I didn't track the
> latest changes in wpa_supplicant's IBSS-RSN support, but this seems wrong.
> 
> But it restart the authenticator anyway, which clears the PTK:
> 
> 1428534381.168693: AUTH: auth_set_key(alg=0 addr=00:0e:8e:3e:8b:96
> key_idx=0)
> 1428534381.168703: AUTH: set_key - key - hexdump(len=0): [NULL]
> 1428534381.168737: wpa_driver_nl80211_set_key: ifindex=131 (wlan0) alg=0
> addr=0x2344bb0 key_idx=0 set_tx=1 seq_len=6 key_len=0
> 1428534381.168751: nl80211: KEY_SEQ - hexdump(len=6): 00 00 00 00 00 00
> 1428534381.168761:    addr=00:0e:8e:3e:8b:96
> 
> And mark the station as unauthorized:
> 
> 1428534381.169266: nl80211: Set STA flags - ifname=wlan0
> addr=00:0e:8e:3e:8b:96 total_flags=0x0 flags_or=0x0 flags_and=0xfffffffe
> authorized=0
> 1428534381.169347: AUTH: 00:0e:8e:3e:8b:96 unauthorizing port
> 
> After that, it retries an EAPOL exchange which basically fail: the
> remote station still have an encrypted session, and the logic in
> wpa_supplicant is that you can only reset a encryption session by
> sending an authentication frame.


Ok, this is probably why I have to restart supplicant on each side when
I try to make the stations associate.

I think I'll look at this later, since now my stations are staying
authenticated long enough to do some traffic tests at least.

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

      reply	other threads:[~2015-04-09 21:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-08  0:05 Getting bad MIC when trying ath10k + ath9k IBSS with RSN Ben Greear
     [not found] ` <5524F0E9.9030208@green-communications.fr>
     [not found]   ` <55254106.7040807@candelatech.com>
     [not found]     ` <5525B8F3.4050702@candelatech.com>
2015-04-09  8:41       ` Nicolas Cavallari
2015-04-09 21:47         ` Ben Greear [this message]

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=5526F37F.5070303@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=ath10k@lists.infradead.org \
    --cc=hostap@lists.shmoo.com \
    --cc=nicolas.cavallari@green-communications.fr \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox