On 11/16/18 11:26 PM, Jim Fehlig wrote:
> It is currently possible to use <interface>s of type openvswitch
> with the libxl driver in a non-standard way, e.g.
>
> <interface type='bridge'>
> <source bridge='ovsbr0'/>
> <mac address='00:16:3e:7a:35:ce'/>
> <script path='vif-openvswitch'/>
> </interface>
>
> This patch adds support for openvswitch <interface>s specified
> in typical libvirt config
>
> <interface type='bridge'>
> <source bridge='ovsbr0'/>
> <mac address='00:16:3e:7a:35:ce'/>
> <virtualport type='openvswitch'/>
> </interface>
>
> VLAN tags and trunking are also supported using the extended
> syntax for specifying an openvswitch bridge in libxl
>
> BRIDGE_NAME[.VLAN][:TRUNK:TRUNK]
>
> See Xen's networking wiki for more details on openvswitch support
>
>
https://wiki.xenproject.org/wiki/Xen_Networking#Open_vSwitch
>
> Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
> ---
> src/libxl/libxl_conf.c | 47 ++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 45 insertions(+), 2 deletions(-)
>
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index e2bfa2f5c3..39c969e482 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -51,6 +51,7 @@
> #include "cpu/cpu.h"
> #include "xen_common.h"
> #include "xen_xl.h"
> +#include "virnetdevvportprofile.h"
>
>
> #define VIR_FROM_THIS VIR_FROM_LIBXL
> @@ -1190,6 +1191,11 @@ libxlMakeNic(virDomainDefPtr def,
> virNetworkPtr network = NULL;
> virConnectPtr conn = NULL;
> virNetDevBandwidthPtr actual_bw;
> + virNetDevVPortProfilePtr port_profile;
> + virNetDevVlanPtr virt_vlan;
> + virBuffer buf = VIR_BUFFER_INITIALIZER;
> + size_t i;
> + const char *script = NULL;
> int ret = -1;
>
> /* TODO: Where is mtu stored?
> @@ -1247,14 +1253,50 @@ libxlMakeNic(virDomainDefPtr def,
> if (VIR_STRDUP(x_nic->ifname, l_nic->ifname) < 0)
> goto cleanup;
>
> + port_profile = virDomainNetGetActualVirtPortProfile(l_nic);
> + virt_vlan = virDomainNetGetActualVlan(l_nic);
> + script = l_nic->script;
> switch (actual_type) {
> case VIR_DOMAIN_NET_TYPE_BRIDGE:
> + virBufferAsprintf(&buf, "%s",
virDomainNetGetActualBridgeName(l_nic));
Or virBufferAddStr() or virBufferAdd(,,-1);
I recall liking virBufferAddStr() that last time it was recommended :-).
Regards,
Jim