* [PATCH v2] rdma-core/libibverbs: display gid type in ibv_devinfo
@ 2020-01-31 18:00 Devesh Sharma
2020-02-03 5:34 ` Devesh Sharma
0 siblings, 1 reply; 2+ messages in thread
From: Devesh Sharma @ 2020-01-31 18:00 UTC (permalink / raw)
To: linux-rdma; +Cc: jgg, leon
It becomes difficult to make out from the output of ibv_devinfo
if a particular gid index is RoCE v2 or not.
Adding a string to the output of ibv_devinfo -v to display the
gid type at the end of gid.
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
---
libibverbs/examples/devinfo.c | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/libibverbs/examples/devinfo.c b/libibverbs/examples/devinfo.c
index bf53eac..4094ea0 100644
--- a/libibverbs/examples/devinfo.c
+++ b/libibverbs/examples/devinfo.c
@@ -162,8 +162,18 @@ static const char *vl_str(uint8_t vl_num)
}
}
+static const char *gid_type_str(enum ibv_gid_type type)
+{
+ switch (type) {
+ case 0: return "IB/RoCE v1";
+ case 1: return "RoCE v2";
+ default: return "invalid value";
+ }
+}
+
static int print_all_port_gids(struct ibv_context *ctx, uint8_t port_num, int tbl_len)
{
+ enum ibv_gid_type type;
union ibv_gid gid;
int rc = 0;
int i;
@@ -175,8 +185,17 @@ static int print_all_port_gids(struct ibv_context *ctx, uint8_t port_num, int tb
port_num, i);
return rc;
}
+
+ rc = ibv_query_gid_type(ctx, port_num, i, &type);
+ if (rc) {
+ rc = 0;
+ type = 0x2;
+ fprintf(stderr, "Failed to query gid type to port %d, index %d\n",
+ port_num, i);
+ }
+
if (!null_gid(&gid))
- printf("\t\t\tGID[%3d]:\t\t%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n",
+ printf("\t\t\tGID[%3d]:\t\t%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x, %s\n",
i,
gid.raw[ 0], gid.raw[ 1],
gid.raw[ 2], gid.raw[ 3],
@@ -185,7 +204,8 @@ static int print_all_port_gids(struct ibv_context *ctx, uint8_t port_num, int tb
gid.raw[ 8], gid.raw[ 9],
gid.raw[10], gid.raw[11],
gid.raw[12], gid.raw[13],
- gid.raw[14], gid.raw[15]);
+ gid.raw[14], gid.raw[15],
+ gid_type_str(type));
}
return rc;
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] rdma-core/libibverbs: display gid type in ibv_devinfo
2020-01-31 18:00 [PATCH v2] rdma-core/libibverbs: display gid type in ibv_devinfo Devesh Sharma
@ 2020-02-03 5:34 ` Devesh Sharma
0 siblings, 0 replies; 2+ messages in thread
From: Devesh Sharma @ 2020-02-03 5:34 UTC (permalink / raw)
To: linux-rdma; +Cc: Jason Gunthorpe, Leon Romanovsky
On Fri, Jan 31, 2020 at 11:30 PM Devesh Sharma
<devesh.sharma@broadcom.com> wrote:
>
> It becomes difficult to make out from the output of ibv_devinfo
> if a particular gid index is RoCE v2 or not.
>
> Adding a string to the output of ibv_devinfo -v to display the
> gid type at the end of gid.
>
> Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
> ---
> libibverbs/examples/devinfo.c | 24 ++++++++++++++++++++++--
> 1 file changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/libibverbs/examples/devinfo.c b/libibverbs/examples/devinfo.c
> index bf53eac..4094ea0 100644
> --- a/libibverbs/examples/devinfo.c
> +++ b/libibverbs/examples/devinfo.c
> @@ -162,8 +162,18 @@ static const char *vl_str(uint8_t vl_num)
> }
> }
>
> +static const char *gid_type_str(enum ibv_gid_type type)
> +{
> + switch (type) {
> + case 0: return "IB/RoCE v1";
> + case 1: return "RoCE v2";
> + default: return "invalid value";
> + }
> +}
> +
> static int print_all_port_gids(struct ibv_context *ctx, uint8_t port_num, int tbl_len)
> {
> + enum ibv_gid_type type;
> union ibv_gid gid;
> int rc = 0;
> int i;
> @@ -175,8 +185,17 @@ static int print_all_port_gids(struct ibv_context *ctx, uint8_t port_num, int tb
> port_num, i);
> return rc;
> }
> +
> + rc = ibv_query_gid_type(ctx, port_num, i, &type);
> + if (rc) {
> + rc = 0;
> + type = 0x2;
> + fprintf(stderr, "Failed to query gid type to port %d, index %d\n",
> + port_num, i);
> + }
> +
> if (!null_gid(&gid))
> - printf("\t\t\tGID[%3d]:\t\t%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n",
> + printf("\t\t\tGID[%3d]:\t\t%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x, %s\n",
> i,
> gid.raw[ 0], gid.raw[ 1],
> gid.raw[ 2], gid.raw[ 3],
> @@ -185,7 +204,8 @@ static int print_all_port_gids(struct ibv_context *ctx, uint8_t port_num, int tb
> gid.raw[ 8], gid.raw[ 9],
> gid.raw[10], gid.raw[11],
> gid.raw[12], gid.raw[13],
> - gid.raw[14], gid.raw[15]);
> + gid.raw[14], gid.raw[15],
> + gid_type_str(type));
> }
> return rc;
> }
> --
> 1.8.3.1
I will send out v3 as one more change is requested by Parav.
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-02-03 5:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-31 18:00 [PATCH v2] rdma-core/libibverbs: display gid type in ibv_devinfo Devesh Sharma
2020-02-03 5:34 ` Devesh Sharma
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.