avf: add option to specify interface name 00/16600/2
authorDamjan Marion <damarion@cisco.com>
Sun, 23 Dec 2018 10:19:30 +0000 (11:19 +0100)
committerDamjan Marion <damarion@cisco.com>
Sun, 23 Dec 2018 10:45:49 +0000 (11:45 +0100)
Change-Id: I94591d5b103280f8df157819d423fef7ee89d4c8
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/plugins/avf/avf.h
src/plugins/avf/cli.c
src/plugins/avf/device.c
src/plugins/avf/format.c

index 4fa19b1..467b5d7 100644 (file)
@@ -111,6 +111,7 @@ typedef struct
   u32 hw_if_index;
   vlib_pci_dev_handle_t pci_dev_handle;
   void *bar0;
+  u8 *name;
 
   /* queues */
   avf_rxq_t *rxqs;
@@ -200,6 +201,7 @@ extern avf_main_t avf_main;
 typedef struct
 {
   vlib_pci_addr_t addr;
+  u8 *name;
   int enable_elog;
   u16 rxq_num;
   u16 rxq_size;
index 492494d..f8fc05a 100644 (file)
@@ -52,6 +52,8 @@ avf_create_command_fn (vlib_main_t * vm, unformat_input_t * input,
        args.txq_size = tmp;
       else if (unformat (line_input, "num-rx-queues %u", &tmp))
        args.rxq_num = tmp;
+      else if (unformat (line_input, "name %s", &args.name))
+       ;
       else
        return clib_error_return (0, "unknown input `%U'",
                                  format_unformat_error, input);
@@ -60,6 +62,8 @@ avf_create_command_fn (vlib_main_t * vm, unformat_input_t * input,
 
   avf_create_if (vm, &args);
 
+  vec_free (args.name);
+
   return args.error;
 }
 
index d95de2e..4f6c869 100644 (file)
@@ -1169,6 +1169,7 @@ avf_delete_if (vlib_main_t * vm, avf_device_t * ad)
     }
   /* *INDENT-ON* */
   vec_free (ad->txqs);
+  vec_free (ad->name);
 
   clib_error_free (ad->error);
   clib_memset (ad, 0, sizeof (*ad));
@@ -1201,6 +1202,7 @@ avf_create_if (vlib_main_t * vm, avf_create_if_args_t * args)
   pool_get (am->devices, ad);
   ad->dev_instance = ad - am->devices;
   ad->per_interface_next_index = ~0;
+  ad->name = vec_dup (args->name);
 
   if (args->enable_elog)
     ad->flags |= AVF_DEVICE_F_ELOG;
index 3a1e1ff..ed99e58 100644 (file)
@@ -31,6 +31,9 @@ format_avf_device_name (u8 * s, va_list * args)
   avf_device_t *ad = vec_elt_at_index (am->devices, i);
   vlib_pci_addr_t *addr = vlib_pci_get_addr (vm, ad->pci_dev_handle);
 
+  if (ad->name)
+    return format (s, "%s", ad->name);
+
   s = format (s, "avf-%x/%x/%x/%x",
              addr->domain, addr->bus, addr->slot, addr->function);
   return s;