[PATCHv3 0/5] netdev: Extract GenerateName/ReserveName as common functions
Laine Stump
laine at redhat.com
Mon Dec 14 18:16:54 UTC 2020
On 12/14/20 12:49 PM, Daniel Henrique Barboza wrote:
>
>
> On 12/13/20 10:50 PM, Shi Lei wrote:
>> V2 here:
>> https://www.redhat.com/archives/libvir-list/2020-December/msg00563.html
>>
>> Since V2:
>> * Fix libxl driver for missing changing
>> virNetDevMacVLanReserveName
>>
>> V1 here:
>> https://www.redhat.com/archives/libvir-list/2020-December/msg00308.html
>>
>> Since V1:
>> (1) Remove virNetDev[Lock|Unlock]GenName.
>> Only *lastID* needs to be protected. Now we lock *lastID*
>> inside virNetDevReserveName and virNetDevGenerateName, then
>> lock and
>> unlock functions are no longer needed.
>>
>> (2) Shorten the locking range for generating names for tap and
>> macvlan.
>> Since virNetDevReserveName and virNetDevGenerateName are now
>> with lock,
>> we can call them directly rather than adding lock outside.
>>
>> (3) Rename *_GEN_NAME_TAP to *_GEN_NAME_VNET.
>>
>> (4) Now veth and tap share the same prefix "vnet".
>>
>> (5) Use name rather than type as the argument of
>> virNetDevReserveName.
>> Just follow the style of virNetDev[Tap|MacVlan]ReserveName.
>>
>> (6) Remove those in-between functions for tap and macvlan.
>>
>> (7) Remove useless ENUM_[DECL|IMPL] for enum virNetDevGenNameType.
>>
>> (8) Remove the *_NONE item for enum virNetDevGenNameType.
>>
>> (9) Remove useless <math.h> in virnetdevtap.
>>
>> (10) When @ifname of virNetDevGenerateName is NOT a template or
>> NULL,
>> just leave it unchanged.
>>
>> (11) Take advantage of the "g_strdup_printf(*ifname, id)" in
>> virNetDevGenerateName, prevent the functions that call
>> virNetDevTapCreate()
>> from adding in "vnet%d" when ifname is empty.
>>
>> (12) Use VIR_NETDEV_MACVLAN_CREATE_WITH_TAP to distinguish
>> macvtap and
>> macvlan and remove those useless macros.
>>
>>
>> Shi Lei (5):
>> netdev: Introduce several helper functions for generating unique
>> netdev name
>> netdevtap: Use common helper function to create unique tap name
>> netdevmacvlan: Use helper function to create unique macvlan/macvtap
>> name
>> netdevveth: Simplify virNetDevVethCreate by using
>> virNetDevGenerateName
>> netdev: Prevent functions that call virNetDevTapCreate from adding
>> 'vnet%d' into ifname
>
>
> Series LGTM:
There are still a couple problems with this that we're working on
(including an infinitely repeating segfault on restart if there are any
running lxc domains with a type='direct' interface), so please don't
push it!
>
>
> Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
>
>
>>
>> src/bhyve/bhyve_command.c | 3 +-
>> src/conf/domain_conf.c | 4 +-
>> src/interface/interface_backend_udev.c | 2 +-
>> src/libvirt_private.syms | 4 +-
>> src/libxl/libxl_driver.c | 2 +-
>> src/lxc/lxc_process.c | 5 +-
>> src/qemu/qemu_interface.c | 16 +--
>> src/qemu/qemu_process.c | 4 +-
>> src/util/virnetdev.c | 116 ++++++++++++++++
>> src/util/virnetdev.h | 27 +++-
>> src/util/virnetdevmacvlan.c | 177 +++----------------------
>> src/util/virnetdevmacvlan.h | 14 +-
>> src/util/virnetdevtap.c | 100 +-------------
>> src/util/virnetdevtap.h | 4 -
>> src/util/virnetdevveth.c | 140 +++++--------------
>> 15 files changed, 218 insertions(+), 400 deletions(-)
>>
>
More information about the libvir-list
mailing list