2018-01-20 17:25:35 UTC
i have recently opened a bug report for systemd-nspawn with the topic that wireless network adapters are not handled properly by systemd-nspawn while LXC is able to handle wireless adapters.
the bug report got closed with the argument that wifi devices are not compatible with network namespaces and the problem is in the linux kernel.
so, i started to dig a little bit deeper into the matter. i have to point out that i am not a kernel developer or an expert in regards to network interfaces and my skills about c/c++ programming are very limited.
my observations so far, i've read the sources for LXC, libvirt, iw and docker, is, that there has to be a distinction between the handling of ethernet adapters and ieee80211 adapters. what i understood so far, in laymans terms, is that you have to move the network adapter into the namespace and not the interface. this might sound wired for ethernet adapters, because usually the ethernet adapter is also the ethernet interface. but this is not true for ieee80211 adapters. ieee80211 adapters can have multiple interfaces assigned and you can switch the interfaces of an ieee80211 adapter. this is done to allow ieee80211 adapters to change their mode of operations.
i've tried to identify sutch code in the systemd repository, but haven't been able to find it yet. maybe someone can point me to the right .c files which cover ieee80211 handling? then i should be able to continue with my investigations why my adapter is not recognized by systemd-nspawn and should finally be able to raise a proper bug report against the kernel.