From: Dan Williams <dcbw@redhat.com>
To: voncken <cedric.voncken@acksys.fr>
Cc: "'wim torfs'" <wtorfs@gmail.com>, linux-wireless@vger.kernel.org
Subject: Re: ARP dropped during WPA handshake
Date: Tue, 17 Mar 2015 11:04:15 -0500 [thread overview]
Message-ID: <1426608255.11120.2.camel@redhat.com> (raw)
In-Reply-To: <03e401d060c3$6fcd9e60$4f68db20$@acksys.fr>
On Tue, 2015-03-17 at 16:02 +0100, voncken wrote:
>
> > > > During the initial WPA handshake the connection is not fully set up,
> > > > and so no general traffic can (nor should) pass between the STA and AP.
> > > > That includes ARP and any L2/L3+ protocols, except for EAP and wifi
> > > > management packets.
> > > >
> > > > The interface itself must be IFF_UP before it can pass traffic,
> > > > including the WPA handshake traffic. IFF_UP only means that the
> > > > interface can be configured at the L2 level and the hardware is
> > > > active, it does *not* mean the interface can pass traffic.
> > > >
> > > > Whatever is causing the ARPs shouldn't be doing that yet, and should
> > > > be fixed to use the interface's "operstate" or IFF_LOWER_UP instead
> > > > of IFF_UP. Only when the supplicant changes the interface's
> > > > operstate to IF_OPER_UP is the interface *actually* ready to pass
> > traffic. IFF_UP is not sufficient.
> > > >
> > >
> > > Thanks for your reply.
> > >
> > > It seems wpa_supplicant set the operstate to IF_OPER_DORMANT when he
> > received the ASSOCIATED Event from the driver (through netlink). And set the
> > operstate to IF_OPER_UP in case of wpa handshake success.
> > >
> > > Is it normal the local ip stack send arp when netdev it is on
> > IF_OPER_DORMANT state?
> >
> > I'm not sure the kernel stack cares much as long as the device is up.
> > It is requesting the ARP because some application is attempting to
> > communicate with that IP address. That application should probably be
> > waiting until the interface is actually ready to communicate, which means
> > IF_OPER_UP.
> >
> > But if this is the first WPA handshake with the AP during the initial
> > connection, the wifi device shouldn't even have an IP address yet, so nothing
> > should be doing ARP on the interface yet. Perhaps whatever is assigning the
> > IP address to the interface is doing it too early, before the interface is
> > IF_OPER_UP?
> >
> It is not the initial connection. My sta is connected on AP1 and the communication is established (in my test the communication it is iperf from STA to computer behind the APs).
>
> I looking for a solution to enable the communication for wpa_supplicant, but block the L3 communication while the WPA handshake is not finished.
Yeah, I saw your mail to netdev. In my opinion (which may not count for
much) I don't think the kernel should be doing any ARP when the
interface is not IF_OPER_UP. wpa_supplicant is doing the right thing if
it is setting the interface IF_OPER_DORMANT when doing the rekeying and
then setting the interface to IF_OPER_UP when it has successfully
installed the new keys.
There's only a few places where ARPs get triggered in the kernel, and
perhaps those need to be modified to defer the ARP until IF_OPER_UP or
something like that. In any case, I think this is best followed up on
netdev since I don't think the supplicant is doing anything wrong here.
Dan
next prev parent reply other threads:[~2015-03-17 16:04 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-13 11:36 ARP dropped during WPA handshake Cedric VONCKEN
2015-03-13 12:17 ` wim torfs
2015-03-13 13:41 ` voncken
2015-03-13 14:06 ` Dan Williams
2015-03-13 15:53 ` voncken
2015-03-13 16:29 ` Dan Williams
2015-03-13 18:34 ` James Cameron
2015-03-13 18:58 ` Arend van Spriel
2015-03-17 15:02 ` voncken
2015-03-17 16:04 ` Dan Williams [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-03-13 9:29 Cedric VONCKEN
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=1426608255.11120.2.camel@redhat.com \
--to=dcbw@redhat.com \
--cc=cedric.voncken@acksys.fr \
--cc=linux-wireless@vger.kernel.org \
--cc=wtorfs@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).