[systemd-devel] Better network naming on Hyper-V/Azure?
Haiyang Zhang
haiyangz at microsoft.com
Thu Jan 16 19:08:56 UTC 2020
> -----Original Message-----
> From: Lennart Poettering <lennart at poettering.net>
> Sent: Monday, January 13, 2020 4:18 AM
> To: Haiyang Zhang <haiyangz at microsoft.com>
> Cc: Stephen Hemminger <stephen at networkplumber.org>; systemd-
> devel at lists.freedesktop.org; Michael Kelley <mikelley at microsoft.com>
> Subject: Re: [systemd-devel] Better network naming on Hyper-V/Azure?
>
> On Fr, 10.01.20 16:17, Haiyang Zhang (haiyangz at microsoft.com) wrote:
>
> > > My guess is that this is a lot like SR-IOV slot number that we can
> > > already use to name interfaces, right? If so, supporting things the
> > > same way sounds totally OK.
> >
> > Thanks for your explanation. We do want to use the ethN format, and want
> the
> > results to be the same between Async and sync probing
>
> Then deal with it in the kernel. Allocating from the same ethN
> namespace is always going to be racy if both kernel and userspace do
> it.
>
> That's why the names userspace generally picks for stable Ethernet
> interfaces start with "en" followed by some stable suffix of a kind,
> under the assumption the kernel will not allocate from that namespace.
>
> > @Stephen Hemminger Since systemd needs to avoid stepping into the kernel
> > ethN formatting, should we do the synthetic NIC naming inside kernel (netvsc
> > driver)?
>
> If you have any other driver register network interfaces on your
> kernel than your whole enumeration will go wrong though. If you
> tightly control which drivers exist in your environment you might get
> away with taking ownership of the ethN namespace entirely from your
> own driver and manage it fully.
Thanks for your suggestions!
So my implementation will keep the naming in kernel driver (netvsc).
1) The netvsc's probe_type will be set to PROBE_DEFAULT_STRATEGY,
so user can either continue with the current sync-probing by default,
or use module/kernel cmdline option to enable Async-probing if other
devices, such as DDA or SRIOV/VF NICs are configured to be named
in different space (enP*, etc.) by systemd.
2) If Async-probing option is in use, netvsc driver will use the dev_num
based on VMBus offer sequence. It will be the smallest available ethN
format, which is the same result as the current sync-probing result.
3) My proposal is that Async probing has the same naming as sync
probing. In case of hot add/remove, the names may be reused. The
names may change after hot add/remove then reboot once. But the
names will be stable in further reboots. It is the same behavior as
current code (sync probing).
Thanks,
- Haiyang
More information about the systemd-devel
mailing list