Re: CSME integration - next steps, network selection
- From: Emmanuel Grumbach <egrumbach gmail com>
- To: Thomas Haller <thaller redhat com>
- Cc: networkmanager-list gnome org
- Subject: Re: CSME integration - next steps, network selection
- Date: Tue, 8 Mar 2022 20:36:20 +0200
On Tue, 2022-03-08 at 08:35 +0200, Emmanuel Grumbach via
networkmanager-list wrote:
I realized I am missing a piece before this.
I need to be able to get and handle nl80211 events, which means that
I
need a thread or event loop or something that listens to the nl80211
channel and parses events. The event I need is the end of the
connection from the CSME side. This brings to the fundamental
question
of the threading model in NetworkManager.
Do we have a sort of event loop? Looks like the NetworkManager runs
on
an event loop and very few things run in a different thread, but I
couldn't really see any clear information about it.
Hi,
we use a glib mainloop. Read
https://tecnocode.co.uk/2014/03/27/what-is-gmaincontext/
There is only one thread (except, that GDBus spawns a worker thread
internally and that we might do a blocking write to sysctl on a thread,
but NM itself is for the most case single threadded).
In this case, you would poll on the file descriptor. So use
`nm_g_unix_fd_add_source()`.
I looked into this and basically I'd have to reimplement
event_handler_read_netlink which reads from priv->nlh where I need to
read from genl...
The pick of priv->nlh and very deep in the code.
I guess I could add DELAYED_ACTION_TYPE_READ_NL80211 just like we have
DELAYED_ACTION_TYPE_READ_NETLINK and make that call
event_handler_read_nl80211 which would set a parameter in the platform
so that event_handler_read_netlink will read from genl instead of
priv->nlh? Since everything is single thread, that could work?
OTOH, it'd mean that the handling of the nl82011 messages would be in
nm-linux-platform which isn't desirable either.
[
Date Prev][
Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]