[libvirt] [PATCH 1/6] virNetDevMacVLanCreateWithVPortProfile: Turn vnet_hdr into flag

Laine Stump laine at laine.org
Fri Dec 4 15:41:09 UTC 2015


On 12/04/2015 07:30 AM, Michal Privoznik wrote:
> So yet again one of integer arguments that we use as a boolean.
> Since the argument count of the function is unbearably long
> enough, lets turn those booleans into flags.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>   src/lxc/lxc_process.c       | 2 +-
>   src/qemu/qemu_command.c     | 5 ++---
>   src/util/virnetdevmacvlan.c | 4 +---
>   src/util/virnetdevmacvlan.h | 9 +++++----
>   4 files changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
> index 57e3880..0ada6e4 100644
> --- a/src/lxc/lxc_process.c
> +++ b/src/lxc/lxc_process.c
> @@ -344,7 +344,7 @@ char *virLXCProcessSetupInterfaceDirect(virConnectPtr conn,
>               net->ifname, &net->mac,
>               linkdev,
>               virDomainNetGetActualDirectMode(net),
> -            false, def->uuid,
> +            def->uuid,
>               prof,
>               &res_ifname,
>               VIR_NETDEV_VPORT_PROFILE_OP_CREATE,
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 4ff31dc..55809e9 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -224,18 +224,17 @@ qemuPhysIfaceConnect(virDomainDefPtr def,
>   {
>       int rc;
>       char *res_ifname = NULL;
> -    int vnet_hdr = 0;
>       virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
>       unsigned int macvlan_create_flags = VIR_NETDEV_MACVLAN_CREATE_WITH_TAP;
>   
>       if (net->model && STREQ(net->model, "virtio"))
> -        vnet_hdr = 1;
> +        macvlan_create_flags |= VIR_NETDEV_MACVLAN_VNET_HDR;
>   
>       rc = virNetDevMacVLanCreateWithVPortProfile(
>           net->ifname, &net->mac,
>           virDomainNetGetActualDirectDev(net),
>           virDomainNetGetActualDirectMode(net),
> -        vnet_hdr, def->uuid,
> +        def->uuid,
>           virDomainNetGetActualVirtPortProfile(net),
>           &res_ifname,
>           vmop, cfg->stateDir,
> diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
> index de345e6..9384b9f 100644
> --- a/src/util/virnetdevmacvlan.c
> +++ b/src/util/virnetdevmacvlan.c
> @@ -727,7 +727,6 @@ virNetDevMacVLanVPortProfileRegisterCallback(const char *ifname,
>    * @macaddress: The MAC address for the macvtap device
>    * @linkdev: The interface name of the NIC to connect to the external bridge
>    * @mode: int describing the mode for 'bridge', 'vepa', 'private' or 'passthru'.
> - * @vnet_hdr: 1 to enable IFF_VNET_HDR, 0 to disable it
>    * @vmuuid: The UUID of the VM the macvtap belongs to
>    * @virtPortProfile: pointer to object holding the virtual port profile data
>    * @res_ifname: Pointer to a string pointer where the actual name of the
> @@ -743,7 +742,6 @@ int virNetDevMacVLanCreateWithVPortProfile(const char *tgifname,
>                                              const virMacAddr *macaddress,
>                                              const char *linkdev,
>                                              virNetDevMacVLanMode mode,
> -                                           int vnet_hdr,
>                                              const unsigned char *vmuuid,
>                                              virNetDevVPortProfilePtr virtPortProfile,
>                                              char **res_ifname,
> @@ -764,6 +762,7 @@ int virNetDevMacVLanCreateWithVPortProfile(const char *tgifname,
>       const char *cr_ifname = NULL;
>       int ret;
>       int vf = -1;
> +    bool vnet_hdr = flags & VIR_NETDEV_MACVLAN_VNET_HDR;
>   
>       macvtapMode = modeMap[mode];
>   
> @@ -1017,7 +1016,6 @@ int virNetDevMacVLanCreateWithVPortProfile(const char *ifname ATTRIBUTE_UNUSED,
>                                              const virMacAddr *macaddress ATTRIBUTE_UNUSED,
>                                              const char *linkdev ATTRIBUTE_UNUSED,
>                                              virNetDevMacVLanMode mode ATTRIBUTE_UNUSED,
> -                                           int vnet_hdr ATTRIBUTE_UNUSED,
>                                              const unsigned char *vmuuid ATTRIBUTE_UNUSED,
>                                              virNetDevVPortProfilePtr virtPortProfile ATTRIBUTE_UNUSED,
>                                              char **res_ifname ATTRIBUTE_UNUSED,
> diff --git a/src/util/virnetdevmacvlan.h b/src/util/virnetdevmacvlan.h
> index 298e522..b04fc8c 100644
> --- a/src/util/virnetdevmacvlan.h
> +++ b/src/util/virnetdevmacvlan.h
> @@ -41,11 +41,13 @@ typedef enum {
>   VIR_ENUM_DECL(virNetDevMacVLanMode)
>   
>   typedef enum {
> -   VIR_NETDEV_MACVLAN_CREATE_NONE     = 0,
> +   VIR_NETDEV_MACVLAN_CREATE_NONE       = 0,
>      /* Create with a tap device */
> -   VIR_NETDEV_MACVLAN_CREATE_WITH_TAP = 1 << 0,
> +   VIR_NETDEV_MACVLAN_CREATE_WITH_TAP   = 1 << 0,
>      /* Bring the interface up */
> -   VIR_NETDEV_MACVLAN_CREATE_IFUP     = 1 << 1,
> +   VIR_NETDEV_MACVLAN_CREATE_IFUP       = 1 << 1,
> +   /* Enable VNET_HDR */
> +   VIR_NETDEV_MACVLAN_VNET_HDR          = 1 << 2,
>   } virNetDevMacVLanCreateFlags;

Any reason for the alignment adjustment? If not, it's just fodder for 
creating merge conflicts later.

Aside from that, ACK.




More information about the libvir-list mailing list