Send connman mailing list submissions to
[email protected]
To subscribe or unsubscribe via email, send a message with subject or
body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."
Today's Topics:
1. Re: connman wifi disconnect problem (KeithG)
2. Re: [PATCH 0/6] Support SplitRouting variable on vpnd
(Daniel Wagner)
3. wpa3 support (Dembianny, Sven (GED-SDD1))
----------------------------------------------------------------------
Date: Tue, 22 Sep 2020 19:08:55 -0500
From: KeithG <[email protected]>
Subject: Re: connman wifi disconnect problem
To: Daniel Wagner <[email protected]>
Cc: "Ryll, Jan (GED-SDD2)" <[email protected]>, "[email protected]"
<[email protected]>
Message-ID:
<CAG17S_MD6Z2N7EmsNfP4askO8=df5qzmcju5tdakltfkf0v...@mail.gmail.com>
Content-Type: multipart/alternative;
boundary="00000000000057224405afefe44c"
--00000000000057224405afefe44c
Content-Type: text/plain; charset="UTF-8"
DAniel,
I am still trying to run the python scripts. I am on arch and finally
figured out I needed to do it this way:
"sudo pip install gobject pygobject" in additon to the pacman -Sy gobject
so Now I get a bit farther:
# ./monitor-connman
Traceback (most recent call last):
File "./monitor-connman", line 85, in <module>
mainloop = gobject.MainLoop()
AttributeError: module 'gobject' has no attribute 'MainLoop'
I am still at a loss as to how to get this running.
On Tue, Sep 22, 2020 at 8:59 AM KeithG <[email protected]> wrote:
>
>
> On Mon, Sep 21, 2020 at 3:15 AM Daniel Wagner <[email protected]> wrote:
>
>> On Sun, Sep 20, 2020 at 10:44:37AM -0500, KeithG wrote:
>> > I'm still struggling with this and have done a lot of poking at it and
>> > posting Denis off list as well. This is what I 'think' I have learned.
>>
>> BTW, you should refrain from posting off list questions if it doesn't
>> contain any secret information (or you were asked to send it privately).
>> I don't know what you figured out with Denis' help. Open source includes
>> open discussion.
>>
>> > 1) iwd as standalone or with systemd-networkd/dhcpch or with
>> NetworkManager
>> > on x64 or on RPIs, all running arch linux, works great at version 1.9.
>> If
>> > the SSID 'goes away' and 'comes back' the computer will reconnect. every
>> > time.
>> > 2) NetworkManager works well with iwd and as best I can tell, it will
>> > reconnect via its interaction with iwd.
>> > 3) When I run systemd-networkd/dhcpcd with iwd, it is more like it iwd
>> > running standalone as I can edit the /var/lib/iwd/ssid.psk either
>> manually
>> > or through iwctl so that:
>> > [Settings]
>> > AutoConnect=true
>> > In this setup, the computer reconnects at boot *and* when the SSID goes
>> > away and comes back.
>>
>> That means if iwd manages the reconnects all works well.
>>
>> > 4) When connman manages iwd, though, I cannot edit the ssid.psk file and
>> > have it stick. Though it connects every time at boot, it will not
>> reconnect
>> > if the ssid goes away and returns.
>>
>> This is because ConnMan is taking over the job of managing the
>> connections and actively disables the AutoConnect in iwd.
>>
>> > This is with the headless rpis with
>> > their broadcom cards and with a laptop runnning a full Arch Linux
>> desktop
>> > with an intel wifi card. One other thing I notice is that when it has
>> > disconnected (SSID off then on), the 'connmanctl services' list is
>> > incomplete. It definitely does not show all the currently available
>> ssids
>> > broadcasting.
>>
>> Check what the monitor-iwd scripts shows and compare it with the output
>> from 'connmand -n -d plugins/iwd.c'
>>
>> > If I type 'connmanctl scan wifi' it will complete a scan
>> > *and* reconnect.
>>
>> Likely the SSID was not seen by ConnMan and that's why it doesn't do a
>> reconnect. The scan will retrigger the machinery. The output from
>> monitor-iwd is again a good starting point to see what is missing
>> between the communication between ConnMan and iwd.
>>
>> > It is like connman gets stuck. and stops managing the wifi.
>>
>> ConnMan is only reacting to events. If there is no event from iwd to
>> ConnMan nothing will happen. From your description I think there is
>> either a missing event or ConnMan ignores an event (would be a bit
>> surprising but well).
>>
>> > I also note that if the ethernet cable is plugged in on the RPIs then
>> the
>> > device is connected to the wifi ap then the ethernet cable is removed
>> that
>> > all internet connectivity ceases.
>>
>> Again ConnMan reacts to events. If the kernel doesn't send a netlink
>> message, nothing will happen. I would be surprised if ConnMan and the
>> the generic kernel code have a bug there. So I would look more closely
>> at what the driver is doing here first.
>>
>> > Both interfaces go down and will not
>> > reconnect requiring a reboot. It is tough for me to really query this
>> as I
>> > see it on my headless rpis and when the connectivity goes away, I have
>> to
>> > reboot to get it back. It did not behave like this with netctl nor does
>> it
>> > behave like this with systemd-networkd.
>>
>> As far as I know, systemd-networkd uses also udev as input. Maybe this
>> makes the difference.
>>
>> > Also, on the rpis, I have noticed that connman can get into a state
>> where
>> > plugging in the ethernet cable results in nothing. connman will not
>> bring
>> > up the ethernet interface.
>> >
>> > We have reworked a php interface from netctl tp work with connman for
>> these
>> > little rpi audio devices and I would love for it to work, but if a
>> headless
>> > device cannot reconnect when the ssid returns, it is a bit useless.
>> Isn't
>> > connman supposed to do this?
>>
>> ConnMan should be able to this modulo bugs.
>>
>> > There are many things I like about connman but
>> > this seems like a basic function that seems to be broken and I am
>> surprised
>> > that I find very little info on it on the internet.
>>
>> I've tried your scenarios on my hardware and it works. Obviously,
>> different hardware/driver behave slightly differently and ConnMan might
>> choke on it.
>>
>> So the question is why it works with systemd-networkd and not with
>> ConnMan.
>>
>
> I cannot find the monitor-iwd script. I found the monitor-connman script,
> but when I try to run the monitor-connman script, I get a gobject error:
>
> $ ./monitor-connman
> Traceback (most recent call last):
> File "./monitor-connman", line 3, in <module>
> import gobject
> ModuleNotFoundError: No module named 'gobject'
>
> This is even though I believe that python-gobject is installed and I can
> run the hello.py script on this page:
> https://pygobject.readthedocs.io/en/latest/getting_started.html
> python 3.8.5 and
> $ pacman -Q | grep gobject
> gobject-introspection 1.66.0-1
> gobject-introspection-runtime 1.66.0-1
> pygobject-devel 3.36.1-1
> python-gobject 3.36.1-1
>
> I am now running on a pretty common dell laptop with an intel wifi card
> and get the same behavior. iwd 1.9 connman 1.38. I connected via connman
> then powered down the radio on the router then back on then had to
> reconnect by typing in teh password. The journal of this event is
> attached.
>
> I did notice that in order to reconnect on this laptop (Arch Linux x86_64)
> that I had to type in the password again though I was just connected before
> I turned off the SSID. The journal running /usr/bin/connmand -n -d
> plugins/iwd.c:src/service.c though this event is attached.
>
--00000000000057224405afefe44c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>DAniel,</div><div><br></div><div>I am still trying to=
run the python scripts. I am on arch=C2=A0 and finally figured out I neede=
d to do it this way:</div><div>"sudo pip install gobject pygobject&quo=
t; in additon to the pacman -Sy gobject so Now I get a bit farther:</div><d=
iv># ./monitor-connman<br>Traceback (most recent call last):<br>=C2=A0 File=
"./monitor-connman", line 85, in <module><br>=C2=A0 =C2=A0=
mainloop =3D gobject.MainLoop()<br>AttributeError: module 'gobject'=
; has no attribute 'MainLoop'</div><div><br></div><div>I am still a=
t a loss as to how to get this running. <br></div></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Sep 22, 2020 at 8=
:59 AM KeithG <<a href=3D"mailto:[email protected]">[email protected]<=
/a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><=
div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote"><=
div dir=3D"ltr" class=3D"gmail_attr">On Mon, Sep 21, 2020 at 3:15 AM Daniel=
Wagner <<a href=3D"mailto:[email protected]" target=3D"_blank">wagi@monom.=
org</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e=
x">On Sun, Sep 20, 2020 at 10:44:37AM -0500, KeithG wrote:<br>
> I'm still struggling with this and have done a lot of poking at it=
and<br>
> posting Denis off list as well. This is what I 'think' I have =
learned.<br>
<br>
BTW, you should refrain from posting off list questions if it doesn't<b=
r>
contain any secret information (or you were asked to send it privately).<br=
>
I don't know what you figured out with Denis' help. Open source inc=
ludes<br>
open discussion.<br>
<br>
> 1) iwd as standalone or with systemd-networkd/dhcpch or with NetworkMa=
nager<br>
> on x64 or on RPIs, all running arch linux, works great at version 1.9.=
If<br>
> the SSID 'goes away' and 'comes back' the computer wil=
l reconnect. every<br>
> time.<br>
> 2) NetworkManager works well with iwd and as best I can tell, it will<=
br>
> reconnect via its interaction with iwd.<br>
> 3) When I run systemd-networkd/dhcpcd with iwd, it is more like it iwd=
<br>
> running standalone as I can edit the /var/lib/iwd/ssid.psk either manu=
ally<br>
> or through iwctl so that:<br>
> [Settings]<br>
> AutoConnect=3Dtrue<br>
> In this setup, the computer reconnects at boot *and* when the SSID goe=
s<br>
> away and comes back.<br>
<br>
That means if iwd manages the reconnects all works well.<br>
<br>
> 4) When connman manages iwd, though, I cannot edit the ssid.psk file a=
nd<br>
> have it stick. Though it connects every time at boot, it will not reco=
nnect<br>
> if the ssid goes away and returns.<br>
<br>
This is because ConnMan is taking over the job of managing the<br>
connections and actively disables the AutoConnect in iwd.<br>
<br>
> This is with the headless rpis with<br>
> their broadcom cards and with a laptop runnning a full Arch Linux desk=
top<br>
> with an intel wifi card. One other thing I notice is that when it has<=
br>
> disconnected (SSID off then on), the 'connmanctl services' lis=
t is<br>
> incomplete. It definitely does not show all the currently available ss=
ids<br>
> broadcasting.<br>
<br>
Check what the monitor-iwd scripts shows and compare it with the output<br>
from 'connmand -n -d plugins/iwd.c'<br>
<br>
> If I type 'connmanctl scan wifi' it will complete a scan<br>
> *and* reconnect.<br>
<br>
Likely the SSID was not seen by ConnMan and that's why it doesn't d=
o a<br>
reconnect. The scan will retrigger the machinery. The output from<br>
monitor-iwd is again a good starting point to see what is missing<br>
between the communication between ConnMan and iwd.<br>
<br>
> It is like connman gets stuck. and stops managing the wifi.<br>
<br>
ConnMan is only reacting to events. If there is no event from iwd to<br>
ConnMan nothing will happen. From your description I think there is<br>
either a missing event or ConnMan ignores an event (would be a bit<br>
surprising but well).<br>
<br>
> I also note that if the ethernet cable is plugged in on the RPIs then =
the<br>
> device is connected to the wifi ap then the ethernet cable is removed =
that<br>
> all internet connectivity ceases.<br>
<br>
Again ConnMan reacts to events. If the kernel doesn't send a netlink<br=
>
message, nothing will happen. I would be surprised if ConnMan and the<br>
the generic kernel code have a bug there. So I would look more closely<br>
at what the driver is doing here first.<br>
<br>
> Both interfaces go down and will not<br>
> reconnect requiring a reboot. It is tough for me to really query this =
as I<br>
> see it on my headless rpis and when the connectivity goes away, I have=
to<br>
> reboot to get it back. It did not behave like this with netctl nor doe=
s it<br>
> behave like this with systemd-networkd.<br>
<br>
As far as I know, systemd-networkd uses also udev as input. Maybe this<br>
makes the difference.<br>
<br>
> Also, on the rpis, I have noticed that connman can get into a state wh=
ere<br>
> plugging in the ethernet cable results in nothing. connman will not br=
ing<br>
> up the ethernet interface.<br>
> <br>
> We have reworked a php interface from netctl tp work with connman for =
these<br>
> little rpi audio devices and I would love for it to work, but if a hea=
dless<br>
> device cannot reconnect when the ssid returns, it is a bit useless. Is=
n't<br>
> connman supposed to do this?<br>
<br>
ConnMan should be able to this modulo bugs.<br>
<br>
> There are many things I like about connman but<br>
> this seems like a basic function that seems to be broken and I am surp=
rised<br>
> that I find very little info on it on the internet.<br>
<br>
I've tried your scenarios on my hardware and it works. Obviously,<br>
different hardware/driver behave slightly differently and ConnMan might<br>
choke on it.<br>
<br>
So the question is why it works with systemd-networkd and not with<br>
ConnMan.<br></blockquote><div><br></div><div>I cannot find the monitor-iwd =
script. I found the monitor-connman script, but when I try to run the monit=
or-connman script, I get a gobject error:</div><div><br></div><div>$ ./moni=
tor-connman <br>Traceback (most recent call last):<br>=C2=A0 File "./m=
onitor-connman", line 3, in <module><br>=C2=A0 =C2=A0 import gob=
ject<br>ModuleNotFoundError: No module named 'gobject'</div><div><b=
r></div><div>This is even though I believe that python-gobject is installed=
and I can run the hello.py script on this page:</div><div><a href=3D"https=
://pygobject.readthedocs.io/en/latest/getting_started.html" target=3D"_blan=
k">https://pygobject.readthedocs.io/en/latest/getting_started.html</a></div=
><div>python 3.8.5 and <br></div><div>$ pacman -Q | grep gobject<br>gobject=
-introspection 1.66.0-1<br>gobject-introspection-runtime 1.66.0-1<br>pygobj=
ect-devel 3.36.1-1<br>python-gobject 3.36.1-1<br></div><div><br></div><div>=
I am now running on a pretty common dell laptop with an intel wifi card and=
get the same behavior. iwd 1.9 connman 1.38. I connected via connman then =
powered down the radio on the router then back on then had to reconnect by =
typing in teh password.=C2=A0 The journal of this event is attached. <br></=
div><div><br></div><div>I did notice that in order to reconnect on this lap=
top (Arch Linux x86_64) that I had to type in the password again though I w=
as just connected before I turned off the SSID. The journal running /usr/bi=
n/connmand -n -d plugins/iwd.c:src/service.c though this event is attached.=
<br> </div></div></div>
</blockquote></div>
--00000000000057224405afefe44c--
------------------------------
Date: Wed, 23 Sep 2020 08:44:28 +0200
From: Daniel Wagner <[email protected]>
Subject: Re: [PATCH 0/6] Support SplitRouting variable on vpnd
To: Jussi Laakkonen <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
Good Morning Jussi,
On Tue, Sep 22, 2020 at 04:09:57PM +0300, Jussi Laakkonen wrote:
> Thanks for the comments, the change here is a bit old so bear with me. I
> needed to check this more closely after vacations and whatnot, to re-gain
> understanding of what this actually does.
No worries. I know this problem.
> > I am bit confused. Why does the vpnd need to know about the split
> > routing at all? The vpnd should always push all the routes to ConnMan
> > and there should be the logic if the routes are used or not. What do I
> > miss?
> >
>
> I think this is a good question and now I understand that I've overlooked
> some things. We're both half right. vpnd has the option "handle_routes"
> passed as startup parameter. When set with "routes/r" vpnd does manage
> routes. But by default connmand does handle them. And I guess my changes
> need improving.
Yes, the original idea is that connamn-vpnd doesn't do anything on IP or
routing configuration at all. Instead it just passes the information to
connmand.
> I've seen issues where the default route is not in the VPN routes list and
> thus, the networking may be inoperable until VPN is disconnected as there is
> no default route for routing traffic. I guess this happened after a lot of
> disconnect/reconnect and changing of transport services rapidly. It started
> to occur at some point and this kind of approach helped us with the case.
> But now I see that it was originally in the wrong place, and only
> half-correct. Need to continue with this.
Okay, if there are wrong/stale routes, it's connmand fault.
> Isn't that SplitRouting a VPN only option that should be controlled via the
> VPN connection D-Bus API like the other options? We'd see this more as a
> user controllable option. It may be that I'm also missing something but it
> seemed reasonable to expose this via VPN API rather than via service API.
> Especially since vpnd does also add the routes in
> vpn-provider.c:set_connected() (and provider_append_route()) when
> handle_routes is set.
> So, wouldn't this suggest that both need to know the value for split
> routing?
Oh, I didn't realize this commit exists: a7851eb04e67 ("vpnd: Add -r
option which enables route handling in vpnd") which came with the large
VPN re-design/factoring back in 2012. This makes things unnecessarily
complex. Do you use the '-r' option in your setup?
I see following options ordered according my preferences:
- rip it out
- leave it as it is and document, not working for split routing
- add support for split routing
> > BTW, I think this is also a bit fragile because the user might decide to
> > reorder the services ('enable split routing') while vpn up happens. I
> > really would like to keep logic code in one daemon as much as possible.
> >
>
> That fragile issue is a valid point. I guess changes to the SplitRouting
> value via D-Bus should trigger a reconnect if the VPN is already connected,
> as the value change is propagated forwards to connmand. Dropping/adding
> default route on the fly might not be good or required anyways (?).
The split routing is enabled/disabled by the ordering of the
services. If the first services is a VPN services ->
SplitRouting=false. if the first services is a non VPN services followed
by a VPN service (or more than one!) all VPN services have
SplitRouting=true. This is controlled only by the ordering of the
services. This is why I don't like the idea to forward this information
to connmand-vpnd.
> But if this is something that is completely different from upstream point of
> view, we keep it to ourselves :). Anyways, we do manage services over D-Bus
> a lot.
As I said in the past, I am very interested to get most of your
downstream changes upstreamed eventually. So we should at least try to
figure out how things could work for upstream and downstream.
Thanks,
Daniel
------------------------------
Date: Wed, 23 Sep 2020 06:44:38 +0000
From: "Dembianny, Sven (GED-SDD1)" <[email protected]>
Subject: wpa3 support
To: "[email protected]" <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
Hi,
is it planned to implement WPA3 support?
Thanks, Sven
------------------------------
Subject: Digest Footer
_______________________________________________
connman mailing list -- [email protected]
To unsubscribe send an email to [email protected]
------------------------------
End of connman Digest, Vol 59, Issue 23
***************************************