diff options
author | Damjan Marion <damarion@cisco.com> | 2019-03-28 23:34:56 +0100 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-03-29 00:23:57 +0000 |
commit | 96d4e533638f585feb606e04b837396be5c503ed (patch) | |
tree | 482e4d10c12c0bc22e4badc71e35c965e395d796 | |
parent | a03d18238350f9941357caca28957395ad737810 (diff) |
rdma: add option to specify inteface name
Change-Id: Ic6244511b88bdd42756f74e3163a70b8014e8547
Signed-off-by: Damjan Marion <damarion@cisco.com>
-rw-r--r-- | src/plugins/rdma/cli.c | 7 | ||||
-rw-r--r-- | src/plugins/rdma/device.c | 2 | ||||
-rw-r--r-- | src/plugins/rdma/format.c | 3 | ||||
-rw-r--r-- | src/plugins/rdma/rdma.h | 2 |
4 files changed, 12 insertions, 2 deletions
diff --git a/src/plugins/rdma/cli.c b/src/plugins/rdma/cli.c index 8919603e293..e1ccbb66c0b 100644 --- a/src/plugins/rdma/cli.c +++ b/src/plugins/rdma/cli.c @@ -41,7 +41,9 @@ rdma_create_command_fn (vlib_main_t * vm, unformat_input_t * input, while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { - if (unformat (line_input, "name %s", &args.ifname)) + if (unformat (line_input, "host-if %s", &args.ifname)) + ; + else if (unformat (line_input, "name %s", &args.name)) ; else return clib_error_return (0, "unknown input `%U'", @@ -52,6 +54,7 @@ rdma_create_command_fn (vlib_main_t * vm, unformat_input_t * input, rdma_create_if (vm, &args); vec_free (args.ifname); + vec_free (args.name); return args.error; } @@ -59,7 +62,7 @@ rdma_create_command_fn (vlib_main_t * vm, unformat_input_t * input, /* *INDENT-OFF* */ VLIB_CLI_COMMAND (rdma_create_command, static) = { .path = "create interface rdma", - .short_help = "create interface rdma <name ifname>", + .short_help = "create interface rdma <host-if ifname> [name <name>]", .function = rdma_create_command_fn, }; /* *INDENT-ON* */ diff --git a/src/plugins/rdma/device.c b/src/plugins/rdma/device.c index 31112a923d0..4098d3c8bb2 100644 --- a/src/plugins/rdma/device.c +++ b/src/plugins/rdma/device.c @@ -248,6 +248,7 @@ rdma_dev_cleanup (rdma_device_t * rd) vec_free (rd->rxqs); vec_free (rd->txqs); + vec_free (rd->name); pool_put (rm->devices, rd); } @@ -430,6 +431,7 @@ rdma_create_if (vlib_main_t * vm, rdma_create_if_args_t * args) pool_get_zero (rm->devices, rd); rd->dev_instance = rd - rm->devices; rd->per_interface_next_index = ~0; + rd->name = vec_dup (args->name); /* check if device exist and if it is bound to mlx5_core */ s = format (s, "/sys/class/net/%s/device/driver/module%c", args->ifname, 0); diff --git a/src/plugins/rdma/format.c b/src/plugins/rdma/format.c index 7ef65d43957..fbd40676639 100644 --- a/src/plugins/rdma/format.c +++ b/src/plugins/rdma/format.c @@ -29,6 +29,9 @@ format_rdma_device_name (u8 * s, va_list * args) rdma_main_t *rm = &rdma_main; rdma_device_t *rd = vec_elt_at_index (rm->devices, i); + if (rd->name) + return format (s, "%s", rd->name); + s = format (s, "rdma-%u", rd->dev_instance); return s; } diff --git a/src/plugins/rdma/rdma.h b/src/plugins/rdma/rdma.h index 860ddaba2b1..12901536897 100644 --- a/src/plugins/rdma/rdma.h +++ b/src/plugins/rdma/rdma.h @@ -73,6 +73,7 @@ typedef struct u8 hwaddr[6]; vlib_pci_addr_t pci_addr; + u8 *name; struct ibv_context *ctx; struct ibv_pd *pd; @@ -95,6 +96,7 @@ extern rdma_main_t rdma_main; typedef struct { u8 *ifname; + u8 *name; /* return */ int rv; |