Re: [PATCH v2] rdma-core/libibverbs: display gid type in ibv_devinfo

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

 



On Fri, Jan 31, 2020 at 11:30 PM Devesh Sharma
<devesh.sharma@xxxxxxxxxxxx> 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@xxxxxxxxxxxx>
> ---
>  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.
>



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux