From: James Prestwood <prestwoj@gmail.com>
To: Denis Kenzior <denkenz@gmail.com>, iwd@lists.linux.dev
Subject: Re: [PATCH v2 5/9] ft: add ft_handshake_setup
Date: Wed, 6 Dec 2023 08:46:47 -0800 [thread overview]
Message-ID: <fe03174d-bc4e-40d5-a69d-b1f2c240f974@gmail.com> (raw)
In-Reply-To: <91f80f30-b4aa-41a9-b134-b3632b4ea7ed@gmail.com>
Hi Denis,
On 12/6/23 08:38, Denis Kenzior wrote:
> Hi James,
>
> On 12/6/23 09:07, James Prestwood wrote:
>> This will be called from station after FT-authentication has
>> finished. It sets up the handshake object to perform reassociation.
>>
>> This is essentially a copy-paste of ft_associate without sending
>> the actual frame.
>> ---
>> src/ft.c | 32 ++++++++++++++++++++++++++++++++
>> src/ft.h | 2 ++
>> 2 files changed, 34 insertions(+)
>>
>> diff --git a/src/ft.c b/src/ft.c
>> index 358a4594..738e08c3 100644
>> --- a/src/ft.c
>> +++ b/src/ft.c
>> @@ -1276,6 +1276,38 @@ int ft_associate(uint32_t ifindex, const
>> uint8_t *addr)
>> return ret;
>> }
>> +int ft_handshake_setup(uint32_t ifindex, const uint8_t *target)
>> +{
>> + struct netdev *netdev = netdev_find(ifindex);
>> + struct handshake_state *hs = netdev_get_handshake(netdev);
>> + struct ft_info *info;
>> +
>> + info = ft_info_find(ifindex, target);
>> + if (!info)
>> + return -ENOENT;
>> +
>> + /*
>> + * Either failed or no response. This may have been an FT-over-DS
>> + * attempt so clear out the entry so FT-over-Air can try again.
>> + */
>> + if (info->status != 0) {
>> + int status = info->status;
>> +
>> + l_queue_remove(info_list, info);
>> + ft_info_destroy(info);
>> +
>> + return status;
>> + }
>> +
>> + if (L_WARN_ON(!ft_prepare_handshake(info, hs)))
>> + return -EINVAL;
>
> It isn't quite clear how this case should be handled? Would you still
> remove it from the queue and destroy this info object? Or destroy all
> authentications for the ifindex?
Hmm good point. If that fails we've already wiped the old keys from the
handshake so I don't think we could even try and roam elsewhere. This
case wasn't handled prior, we would just send the associate without
deriving the proper IEs. So I think we either need to handle this in
station and fatally fail the roam, and disconnect
I don't feel like doing it at the moment but we could create a new
handshake object too and set only after everything succeeds.
>> + /* After this no previous auths will be valid */
>> + ft_clear_authentications(ifindex);
>> +
>> + return 0;
>> +}
>> +
>> static bool remove_ifindex(void *data, void *user_data)
>> {
>> struct ft_info *info = data;
>
> Regards,
> -Denis
>
next prev parent reply other threads:[~2023-12-06 16:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-06 15:06 [PATCH v2 0/9] Reassoc/FT roaming unification James Prestwood
2023-12-06 15:07 ` [PATCH v2 1/9] auto-t: add explicit stop() to IWD class James Prestwood
2023-12-06 15:07 ` [PATCH v2 2/9] auto-t: add association timeout test James Prestwood
2023-12-06 15:07 ` [PATCH v2 3/9] auto-t: only call set_value for changed values in default() James Prestwood
2023-12-06 15:07 ` [PATCH v2 4/9] ft: add FTE/RSNE building to ft_prepare_handshake James Prestwood
2023-12-06 16:36 ` Denis Kenzior
2023-12-06 17:08 ` James Prestwood
2023-12-06 17:14 ` Denis Kenzior
2023-12-06 17:59 ` James Prestwood
2023-12-06 15:07 ` [PATCH v2 5/9] ft: add ft_handshake_setup James Prestwood
2023-12-06 16:38 ` Denis Kenzior
2023-12-06 16:46 ` James Prestwood [this message]
2023-12-06 15:07 ` [PATCH v2 6/9] netdev: add netdev_ft_reassociate James Prestwood
2023-12-06 16:40 ` Denis Kenzior
2023-12-06 16:49 ` James Prestwood
2023-12-06 15:07 ` [PATCH v2 7/9] station: use netdev_ft_reassociate James Prestwood
2023-12-06 15:07 ` [PATCH v2 8/9] ft: remove ft_associate and helpers James Prestwood
2023-12-06 15:07 ` [PATCH v2 9/9] netdev: station: remove NETDEV_EVENT_FT_ROAMED James Prestwood
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=fe03174d-bc4e-40d5-a69d-b1f2c240f974@gmail.com \
--to=prestwoj@gmail.com \
--cc=denkenz@gmail.com \
--cc=iwd@lists.linux.dev \
/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.