[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/4] xl/libxl: add gatewaydev/netdev to vif specification
On Wed, 2013-02-06 at 18:04 +0000, Roger Pau Monne wrote: > This option is used by the vif-route hotplug script. A new more > descriptive name is used, "gatewaydev", but "netdev" is also supported > as a deprecated backwards compatible option. > > This option was supported in the past, according to > http://wiki.xen.org/wiki/Vif-route, so we should also support it in > libxl. > > Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> > Cc: Ulf Kreutzberg <ulf.kreutzberg@xxxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > Cc: George Dunlap <george.dunlap@xxxxxxxxxx> > --- > Changes since v1: > * Don't pass a NULL as a value of a env variable > * Change netdev to gatewaydev > --- > docs/misc/xl-network-configuration.markdown | 10 ++++++++++ > tools/libxl/libxl.c | 6 +++++- > tools/libxl/libxl_linux.c | 9 ++++++++- > tools/libxl/libxl_types.idl | 1 + > tools/libxl/xl_cmdimpl.c | 14 ++++++++++++++ > 5 files changed, 38 insertions(+), 2 deletions(-) > > diff --git a/docs/misc/xl-network-configuration.markdown > b/docs/misc/xl-network-configuration.markdown > index 5e2f049..e0d3d2a 100644 > --- a/docs/misc/xl-network-configuration.markdown > +++ b/docs/misc/xl-network-configuration.markdown > @@ -67,6 +67,15 @@ added to. The default is `xenbr0`. The bridge must be > configured using > your distribution's network configuration tools. See the [wiki][net] > for guidance and examples. > > +### gatewaydev > + > +Specifies the name of the network interface which has an IP and which > +is in the network the VIF should communicate with. This is used in the host > +by the vif-route hotplug script. See [wiki][vifroute] for guidance and > +examples. > + > +NOTE: netdev is a deprecated alias of this option. > + > ### type > > This keyword is valid for HVM guests only. > @@ -158,3 +167,4 @@ on the underlying netback implementation. > > [oui]: http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier > [net]: http://wiki.xen.org/wiki/HostConfiguration/Networking > +[vifroute]: http://wiki.xen.org/wiki/Vif-route > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c > index 73e0dc3..5d590f1 100644 > --- a/tools/libxl/libxl.c > +++ b/tools/libxl/libxl.c > @@ -2826,7 +2826,7 @@ void libxl__device_nic_add(libxl__egc *egc, uint32_t > domid, > if (rc) goto out; > > front = flexarray_make(gc, 16, 1); > - back = flexarray_make(gc, 16, 1); > + back = flexarray_make(gc, 18, 1); > > if (nic->devid == -1) { > if ((nic->devid = libxl__device_nextid(gc, domid, "vif") < 0)) { > @@ -2862,6 +2862,10 @@ void libxl__device_nic_add(libxl__egc *egc, uint32_t > domid, > flexarray_append(back, "ip"); > flexarray_append(back, libxl__strdup(gc, nic->ip)); > } > + if (nic->gatewaydev) { > + flexarray_append(back, "gatewaydev"); > + flexarray_append(back, libxl__strdup(gc, nic->gatewaydev)); > + } > > if (nic->rate_interval_usecs > 0) { > flexarray_append(back, "rate"); > diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c > index 1fed3cd..60fc533 100644 > --- a/tools/libxl/libxl_linux.c > +++ b/tools/libxl/libxl_linux.c > @@ -84,11 +84,16 @@ static char **get_hotplug_env(libxl__gc *gc, > char *script, libxl__device *dev) > { > const char *type = libxl__device_kind_to_string(dev->backend_kind); > + char *be_path = libxl__device_backend_path(gc, dev); > char **env; > + char *gatewaydev; > int nr = 0; > libxl_nic_type nictype; > > - const int arraysize = 13; > + gatewaydev = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/%s", be_path, > + "gatewaydev")); > + > + const int arraysize = 15; > GCNEW_ARRAY(env, arraysize); > env[nr++] = "script"; > env[nr++] = script; > @@ -98,6 +103,8 @@ static char **get_hotplug_env(libxl__gc *gc, > env[nr++] = GCSPRINTF("backend/%s/%u/%d", type, dev->domid, dev->devid); > env[nr++] = "XENBUS_BASE_PATH"; > env[nr++] = "backend"; > + env[nr++] = "netdev"; > + env[nr++] = gatewaydev ? : ""; > if (dev->backend_kind == LIBXL__DEVICE_KIND_VIF) { > if (libxl__nic_type(gc, dev, &nictype)) { > LOG(ERROR, "unable to get nictype"); > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index acc4bc9..0112a7a 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -382,6 +382,7 @@ libxl_device_nic = Struct("device_nic", [ > ("nictype", libxl_nic_type), > ("rate_bytes_per_interval", uint64), > ("rate_interval_usecs", uint32), > + ("gatewaydev", string), > ]) > > libxl_device_pci = Struct("device_pci", [ > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > index 080bbd8..dc1788e 100644 > --- a/tools/libxl/xl_cmdimpl.c > +++ b/tools/libxl/xl_cmdimpl.c > @@ -1205,6 +1205,14 @@ static void parse_config_data(const char > *config_source, > parse_vif_rate(&config, (p2 + 1), nic); > } else if (!strcmp(p, "accel")) { > fprintf(stderr, "the accel parameter for vifs is > currently not supported\n"); > + } else if (!strcmp(p, "netdev")) { > + fprintf(stderr, "the netdev parameter is deprecated, " > + "please use gatewaydev instead\n"); > + free(nic->gatewaydev); > + nic->gatewaydev = strdup(p2 + 1); > + } else if (!strcmp(p, "gatewaydev")) { > + free(nic->gatewaydev); > + nic->gatewaydev = strdup(p2 + 1); > } > } while ((p = strtok(NULL, ",")) != NULL); > skip_nic: > @@ -5471,6 +5479,12 @@ int main_networkattach(int argc, char **argv) > } > } else if (MATCH_OPTION("bridge", *argv, oparg)) { > replace_string(&nic.bridge, oparg); > + } else if (MATCH_OPTION("netdev", *argv, oparg)) { > + fprintf(stderr, "the netdev parameter is deprecated, " > + "please use gatewaydev instead\n"); > + replace_string(&nic.gatewaydev, oparg); > + } else if (MATCH_OPTION("gatewaydev", *argv, oparg)) { > + replace_string(&nic.gatewaydev, oparg); > } else if (MATCH_OPTION("ip", *argv, oparg)) { > replace_string(&nic.ip, oparg); > } else if (MATCH_OPTION("script", *argv, oparg)) { _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |