[libvirt] [PATCH v3 13/36] conf: introduce virNetworkPortDefPtr struct and XML support

Laine Stump laine at laine.org
Fri Mar 22 15:48:29 UTC 2019


On 3/22/19 11:43 AM, Daniel P. Berrangé wrote:
> On Fri, Mar 22, 2019 at 11:28:17AM -0400, Laine Stump wrote:
>> On 3/19/19 8:46 AM, Daniel P. Berrangé wrote:
>>> Introduce a virNetworkPortDefPtr struct to represent the data associated
>>> with a virtual network port. Add APIs for parsing/formatting XML docs
>>> with the data.
>>>
>>> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
>>> ---
>>>    src/conf/Makefile.inc.am                      |   2 +
>>>    src/conf/virnetworkportdef.c                  | 514 ++++++++++++++++++
>>>    src/conf/virnetworkportdef.h                  | 112 ++++
>>>    src/libvirt_private.syms                      |  10 +
>>>    tests/Makefile.am                             |   7 +
>>>    .../plug-bridge-mactbl.xml                    |   9 +
>>>    .../virnetworkportxml2xmldata/plug-bridge.xml |  12 +
>>>    .../virnetworkportxml2xmldata/plug-direct.xml |  12 +
>>>    .../plug-hostdev-pci.xml                      |  12 +
>>>    tests/virnetworkportxml2xmldata/plug-none.xml |   8 +
>>>    tests/virnetworkportxml2xmltest.c             | 104 ++++
>>>    11 files changed, 802 insertions(+)
>>>    create mode 100644 src/conf/virnetworkportdef.c
>>>    create mode 100644 src/conf/virnetworkportdef.h
>>>    create mode 100644 tests/virnetworkportxml2xmldata/plug-bridge-mactbl.xml
>>>    create mode 100644 tests/virnetworkportxml2xmldata/plug-bridge.xml
>>>    create mode 100644 tests/virnetworkportxml2xmldata/plug-direct.xml
>>>    create mode 100644 tests/virnetworkportxml2xmldata/plug-hostdev-pci.xml
>>>    create mode 100644 tests/virnetworkportxml2xmldata/plug-none.xml
>>>    create mode 100644 tests/virnetworkportxml2xmltest.c
>>>
>>> diff --git a/src/conf/Makefile.inc.am b/src/conf/Makefile.inc.am
>>> index 9b4d80485b..388917c5dd 100644
>>> --- a/src/conf/Makefile.inc.am
>>> +++ b/src/conf/Makefile.inc.am
>>> @@ -5,6 +5,8 @@ NETDEV_CONF_SOURCES = \
>>>    	conf/netdev_vport_profile_conf.c \
>>>    	conf/netdev_vlan_conf.h \
>>>    	conf/netdev_vlan_conf.c \
>>> +	conf/virnetworkportdef.h \
>>> +	conf/virnetworkportdef.c \
>>>    	$(NULL)
>>>    DOMAIN_CONF_SOURCES = \
>>> diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c
>>> new file mode 100644
>>> index 0000000000..7023d9607e
>>> --- /dev/null
>>> +++ b/src/conf/virnetworkportdef.c
>>> @@ -0,0 +1,514 @@
>>> +/*
>>> + * virnetworkportdef.c: network port XML processing
>>> + *
>>> + * Copyright (C) 2018 Red Hat, Inc.
>>> + *
>>> + * This library is free software; you can redistribute it and/or
>>> + * modify it under the terms of the GNU Lesser General Public
>>> + * License as published by the Free Software Foundation; either
>>> + * version 2.1 of the License, or (at your option) any later version.
>>> + *
>>> + * This library is distributed in the hope that it will be useful,
>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>>> + * Lesser General Public License for more details.
>>> + *
>>> + * You should have received a copy of the GNU Lesser General Public
>>> + * License along with this library.  If not, see
>>> + * <http://www.gnu.org/licenses/>.
>>> + */
>>> +
>>> +#include <config.h>
>>> +
>>> +#include "viralloc.h"
>>> +#include "virerror.h"
>>> +#include "virstring.h"
>>> +#include "virfile.h"
>>> +#include "virnetworkportdef.h"
>>> +#include "network_conf.h"
>>> +
>>> +#define VIR_FROM_THIS VIR_FROM_NETWORK
>>> +
>>> +VIR_ENUM_IMPL(virNetworkPortPlug, VIR_NETWORK_PORT_PLUG_TYPE_LAST,
>>> +              "none", "bridge", "direct", "hostdev-pci");
>>
>> Are we going to need to differentiate between veth and macvtap later? Having
>> the choice implied based on which hypervisor it's coming from seems
>> potentially troublesome...
> I view those as different axis.
>
>    "bridge" can be implemented with "tap" or "veth"
>    "direct" can be implemented with "macvtap" or "macvlan"


Ah right. For some reason I got it in my mind this morning that the veth 
pair was what's used in LXC for "direct", but of course you're right - 
veth is used instead of *tap* in lxc. <nevermind/>




More information about the libvir-list mailing list