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

[Xen-changelog] [xen master] xl: Make the devid attribute manually settable for nics



commit 93a3fbaf16f4b66c7866f42c2699c7af636f2933
Author:     Fatih Acar <fatih.acar@xxxxxxxxx>
AuthorDate: Thu Feb 2 13:20:49 2017 +0100
Commit:     Wei Liu <wei.liu2@xxxxxxxxxx>
CommitDate: Wed Feb 8 09:27:24 2017 +0000

    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>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 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 358757f..37ebdce 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)
 {
--
generated by git-patchbot for /home/xen/git/xen.git#master

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

 


Rackspace

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