[libvirt] PATCH 3/4: SUpport bridge config for openvz
Evgeniy Sokolov
evg at openvz.org
Thu Oct 16 15:52:42 UTC 2008
> This implements support for bridge configs in openvz following the rules
> set out in
>
> http://wiki.openvz.org/Virtual_Ethernet_device#Making_a_bridged_veth-device_persistent
>
> This simply requires that the admin has created /etc/vz/vznetctl.conf
> containing
>
> #!/bin/bash
> EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
>
>
> For openvz <= 3.0.22, we have to manually re-write the NETIF line to
> add the bridge config parameter.
It is alternative, but more flexible way. It require simple modification
of vznetaddbr.
Common scenario is to add VZHOSTBR="<bridge if>" to config.
For newer openvz we can simply pass
> the bridge name on the commnand line to --netif_add.
>
> Older openvz also requires that the admin install /usr/sbin/vznetaddbr
> since it is not available out of the box
>
> Daniel
>
> +
> + while(1) {
> + if (openvz_readline(fd, line, sizeof(line)) <= 0)
> + break;
> +
> + if (!STRPREFIX(line, param)) {
need to check for '='.
Currently, if you will search for 'NETIF', you can find any string with
such prefix. example 'NETIFOTHERPARAM'
> + if (safewrite(temp_fd, line, strlen(line)) !=
> + strlen(line))
> + goto error;
> + }
> + }
> +
> /*
> +
> + if (!(opt = virBufferContentAndReset(&buf)))
> + goto no_memory;
> +
> ADD_ARG_LIT(opt) ;
Need to free opt
> - }else if (net->type == VIR_DOMAIN_NET_TYPE_ETHERNET &&
> + } else if (net->type == VIR_DOMAIN_NET_TYPE_ETHERNET &&
> net->data.ethernet.ipaddr != NULL) {
> +static int
> +openvzDomainSetNetworkConfig(virConnectPtr conn,
> + virDomainDefPtr def)
> +{
> + unsigned int i;
> + virBuffer buf = VIR_BUFFER_INITIALIZER;
> + char *param;
> + struct openvz_driver *driver = (struct openvz_driver *) conn->privateData;
> +
> + for (i = 0 ; i < def->nnets ; i++) {
> + if (driver->version < VZCTL_BRIDGE_MIN_VERSION && i > 0)
> + virBufferAddLit(&buf, ";");
Need to check that network is bridge.
In other case we will have NETIF='<some params>;;;;'
> +
> + if (openvzDomainSetNetwork(conn, def->name, def->nets[i], &buf) < 0) {
> + openvzError(conn, VIR_ERR_INTERNAL_ERROR,
> + "%s", _("Could not configure network"));
> + goto exit;
> + }
> + }
> +
More information about the libvir-list
mailing list