From: Denis Kenzior <denkenz@gmail.com>
To: iwd@lists.01.org
Subject: Re: [PATCH 01/11] netdev: Add a wdev_id based frame watch API
Date: Tue, 22 Oct 2019 19:23:36 -0500 [thread overview]
Message-ID: <db67b31f-f79d-351a-eb23-d270597e686e@gmail.com> (raw)
In-Reply-To: <CAOq732KNTME=saetsGbhU6mdx7cjUd_PJdGbGwBmZdDOO4=q9w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3430 bytes --]
Hi Andrew,
On 10/22/19 6:56 PM, Andrew Zaborowski wrote:
> On Tue, 22 Oct 2019 at 16:53, Denis Kenzior <denkenz@gmail.com> wrote:
>> On 10/21/19 8:55 AM, Andrew Zaborowski wrote:
>>> diff --git a/src/netdev.h b/src/netdev.h
>>> index 114a6035..624811b2 100644
>>> --- a/src/netdev.h
>>> +++ b/src/netdev.h
>>> @@ -197,6 +197,12 @@ uint32_t netdev_frame_watch_add(struct netdev *netdev, uint16_t frame_type,
>>> void *user_data);
>>> bool netdev_frame_watch_remove(struct netdev *netdev, uint32_t id);
>>>
>>> +uint32_t netdev_wdev_frame_watch_add(uint64_t wdev_id, uint16_t frame_type,
>>> + const uint8_t *prefix, size_t prefix_len,
>>> + netdev_frame_watch_func_t handler,
>>> + void *user_data);
>>> +bool netdev_wdev_frame_watch_remove(uint32_t id);
>>> +
>>
>> So this really seems like it is jammed in there and it doesn't fit well.
>>
>> I think that we should make frame watches into a separate module now
>> that they no longer are only associated with a netdev.
>
> Ok, I only put it inside netdev as an extension of the current api.
I know. But given that this isn't urgent, I'd rather do it right the
first time.
>
>> This would allow
>> us to also track iftype changes and wipe out those frame watches that
>> are no longer registered with the kernel. And also allow us not to try
>> and register frame watches that are already live (and bounce with an
>> -EAGAIN from the kernel).
>
> The problem is how we will know what logic is implemented in the
> running kernel version. We also watch iftype changes inside netdev so
Well, the particular fix from me got backported into every single LTS
kernel. So we just assume the fix is included. Unless you want to go
full wpa_s and use a separate socket for each frame watch.
> we can more comfortably do it here but I'm not sure it helps us. In
> P2P I'm registering and unregistering the watches for specific
> operations and we never switch iftypes. I think we should either have
Yeah, I think you have to bite the bullet and implement a separate
socket for these.
> the kernel have a simple frame unregister command or keep all of the
Well, we tried that and got rejected. See [1]. So as I said, until the
kernel guys start treating nl80211 as a proper API, we have to live with
this.
> watches for simplicity.
I don't think this is a good idea. It will cause unnecessary wakeups
and round trips into the kernel. And any one of these is one too many.
>
>>
>> We could also implement 'transient' frame watch sets by using a genl
>> socket dedicated to each set. At least until the kernel people fix
>> their subsystem.
>
> This sounds like it's much more costly in terms of syscalls and kernel
> work (and code) than occasionally getting the EAGAIN for a register
> command.
If you assume that frame watches are purged on iftype change, then most
of the EAGAINs are only caused by netdev ifup/ifdown. So those we can
take care of easily.
Unnecessary wakeups should be avoided completely. So if you have p2p
frame watches and you can group them into a set to enable / disable,
then they should be registered for on a separate socket.
>
> Best regards
>
Regards,
-Denis
[1] https://patchwork.kernel.org/patch/11131097/
next prev parent reply other threads:[~2019-10-23 0:23 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-21 13:55 [PATCH 01/11] netdev: Add a wdev_id based frame watch API Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 02/11] netdev: Report RSSI to frame watch callbacks Andrew Zaborowski
2019-10-22 3:34 ` Denis Kenzior
2019-10-22 13:46 ` Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 03/11] netdev: Extend checks for P2P scenarios Andrew Zaborowski
2019-10-22 3:36 ` Denis Kenzior
2019-10-21 13:55 ` [PATCH 04/11] eapol: Move the EAP event handler to handshake state Andrew Zaborowski
2019-10-22 4:11 ` Denis Kenzior
2019-10-22 14:00 ` Andrew Zaborowski
2019-10-22 14:34 ` Denis Kenzior
2019-10-21 13:55 ` [PATCH 05/11] unit: Update test-wsc to use handshake_state_set_eap_event_func Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 06/11] wsc: Replace netdev_connect_wsc with netdev_connect usage Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 07/11] netdev: Drop unused netdev_connect_wsc Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 08/11] wsc: Add wsc_new_p2p_enrollee, refactor Andrew Zaborowski
2019-10-22 14:47 ` Denis Kenzior
2019-10-22 23:46 ` Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 09/11] wsc: Accept extra IEs in wsc_new_p2p_enrollee Andrew Zaborowski
2019-10-21 13:55 ` [PATCH 10/11] wiphy: Add wiphy_get_max_roc_duration Andrew Zaborowski
2019-10-22 3:26 ` Denis Kenzior
2019-10-21 13:55 ` [PATCH 11/11] wiphy: Add wiphy_get_supported_rates Andrew Zaborowski
2019-10-22 14:53 ` [PATCH 01/11] netdev: Add a wdev_id based frame watch API Denis Kenzior
2019-10-22 23:56 ` Andrew Zaborowski
2019-10-23 0:23 ` Denis Kenzior [this message]
2019-10-23 1:04 ` Andrew Zaborowski
2019-10-23 1:32 ` Denis Kenzior
2019-10-24 0:59 ` Andrew Zaborowski
2019-10-24 2:53 ` Denis Kenzior
2019-10-24 3:22 ` Andrew Zaborowski
2019-10-24 15:29 ` Denis Kenzior
2019-10-24 21:47 ` Andrew Zaborowski
2019-10-24 22:16 ` Denis Kenzior
2019-10-24 22:45 ` Andrew Zaborowski
2019-10-25 1:27 ` Denis Kenzior
2019-10-25 2:59 ` Andrew Zaborowski
2019-10-25 3:56 ` Denis Kenzior
2019-10-25 4:42 ` Andrew Zaborowski
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=db67b31f-f79d-351a-eb23-d270597e686e@gmail.com \
--to=denkenz@gmail.com \
--cc=iwd@lists.01.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.