]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
rdma: Properly print device and link names in CLI output
authorLeon Romanovsky <leonro@nvidia.com>
Tue, 11 Aug 2020 07:32:01 +0000 (10:32 +0300)
committerStephen Hemminger <stephen@networkplumber.org>
Sun, 16 Aug 2020 22:50:02 +0000 (15:50 -0700)
The citied commit broke the CLI output and printed ifindex/ifname
instead of dev/link.

Before:
[leonro@vm ~]$ rdma res show qp
link mlx5_0/lqpn 1 type GSI state RTS sq-psn 0 comm ib_core
[leonro@vm ~]$ rdma res show cq
ifindex 0 ifname rocep0s9 cqn 0 cqe 1023 users 2 poll-ctx WORKQUEUE adaptive-moderation on comm ib_core

After:
[leonro@vm ~]$ rdma res show qp
link mlx5_0/- lqpn 1 type GSI state RTS sq-psn 0 comm [ib_core]
[leonro@vm ~]$ rdma res show cq
dev rocep0s9 cqn 0 cqe 1023 users 2 poll-ctx WORKQUEUE adaptive-moderation on comm [ib_core]

It was missed because rdmatool mostly used in JSON mode.

Fixes: b0a688a542cd ("rdma: Rewrite custom JSON and prints logic to use common API")
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
rdma/res.c

index b7a703f8ae1df70a258770ad08b24e21eba98898..dc12bbe4bffeb2e47362cf7550734fcfa1bad403 100644 (file)
@@ -166,17 +166,27 @@ void print_comm(struct rd *rd, const char *str, struct nlattr **nla_line)
 
 void print_dev(struct rd *rd, uint32_t idx, const char *name)
 {
-       print_color_int(PRINT_ANY, COLOR_NONE, "ifindex", "ifindex %d ", idx);
-       print_color_string(PRINT_ANY, COLOR_NONE, "ifname", "ifname %s ", name);
+       print_color_int(PRINT_ANY, COLOR_NONE, "ifindex", NULL, idx);
+       print_color_string(PRINT_ANY, COLOR_NONE, "ifname", "dev %s ", name);
 }
 
 void print_link(struct rd *rd, uint32_t idx, const char *name, uint32_t port,
                struct nlattr **nla_line)
 {
+       char tmp[64] = {};
+
        print_color_uint(PRINT_JSON, COLOR_NONE, "ifindex", NULL, idx);
-       print_color_string(PRINT_ANY, COLOR_NONE, "ifname", "link %s/", name);
-       if (nla_line[RDMA_NLDEV_ATTR_PORT_INDEX])
-               print_color_uint(PRINT_ANY, COLOR_NONE, "port", "%u ", port);
+       print_color_string(PRINT_ANY, COLOR_NONE, "ifname", NULL, name);
+       if (nla_line[RDMA_NLDEV_ATTR_PORT_INDEX]) {
+               print_color_uint(PRINT_ANY, COLOR_NONE, "port", NULL, port);
+               snprintf(tmp, sizeof(tmp), "%s/%d", name, port);
+       } else {
+               snprintf(tmp, sizeof(tmp), "%s/-", name);
+       }
+
+       if (!rd->json_output)
+               print_color_string(PRINT_ANY, COLOR_NONE, NULL, "link %s ",
+                                  tmp);
 }
 
 void print_qp_type(struct rd *rd, uint32_t val)