[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] xl: Make the devid attribute manually settable for nics



This permits to have control over the devid attribute when attaching new nics.
It may become useful if one has its own nic indexing somewhere else than 
xl/xenstore.

Signed-off-by: Fatih Acar <fatih.acar@xxxxxxxxx>
Signed-off-by: Nikita Kozlov <nikita.kozlov@xxxxxxxxx>
Signed-off-by: Vincent Legout <vincent.legout@xxxxxxxxx>
Signed-off-by: Baptiste Daroussin <baptiste.daroussin@xxxxxxxxx>
---
 docs/man/xl-network-configuration.markdown.5 |  5 +++++
 tools/libxl/xl_cmdimpl.c                     | 28 +++++++++++++++-------------
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/docs/man/xl-network-configuration.markdown.5 
b/docs/man/xl-network-configuration.markdown.5
index 3c439d4..84c2645 100644
--- a/docs/man/xl-network-configuration.markdown.5
+++ b/docs/man/xl-network-configuration.markdown.5
@@ -162,6 +162,11 @@ For example:
 NOTE: The actual underlying limits of rate limiting are dependent
 on the underlying netback implementation.
 
+### devid
+
+Specifies the devid manually instead of letting xl choose the lowest index 
available.
+
+NOTE: This should not be set unless you have a reason to.
 
 [oui]: http://en.wikipedia.org/wiki/Organizationally_Unique_Identifier
 [net]: http://wiki.xen.org/wiki/HostConfiguration/Networking
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 7e8a8ae..98ac8ad 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -993,6 +993,19 @@ static void parse_vcpu_affinity(libxl_domain_build_info 
*b_info,
     }
 }
 
+static unsigned long parse_ulong(const char *str)
+{
+    char *endptr;
+    unsigned long val;
+
+    val = strtoul(str, &endptr, 10);
+    if (endptr == str || val == ULONG_MAX) {
+        fprintf(stderr, "xl: failed to convert \"%s\" to number\n", str);
+        exit(EXIT_FAILURE);
+    }
+    return val;
+}
+
 static void replace_string(char **str, const char *val)
 {
     free(*str);
@@ -1061,6 +1074,8 @@ static int parse_nic_config(libxl_device_nic *nic, 
XLU_Config **config, char *to
         replace_string(&nic->coloft_forwarddev, oparg);
     } else if (MATCH_OPTION("accel", token, oparg)) {
         fprintf(stderr, "the accel parameter for vifs is currently not 
supported\n");
+    } else if (MATCH_OPTION("devid", token, oparg)) {
+        nic->devid = parse_ulong(oparg);
     } else {
         fprintf(stderr, "unrecognized argument `%s'\n", token);
         return 1;
@@ -1068,19 +1083,6 @@ static int parse_nic_config(libxl_device_nic *nic, 
XLU_Config **config, char *to
     return 0;
 }
 
-static unsigned long parse_ulong(const char *str)
-{
-    char *endptr;
-    unsigned long val;
-
-    val = strtoul(str, &endptr, 10);
-    if (endptr == str || val == ULONG_MAX) {
-        fprintf(stderr, "xl: failed to convert \"%s\" to number\n", str);
-        exit(EXIT_FAILURE);
-    }
-    return val;
-}
-
 static void parse_vnuma_config(const XLU_Config *config,
                                libxl_domain_build_info *b_info)
 {
-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.