netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH iproute2-next] rdma: Add the prefix for driver attributes
@ 2019-02-27  6:41 Leon Romanovsky
       [not found] ` <d6d1bd56-5def-aa25-4845-e41d2ea5d667@huawei.com>
  2019-02-27 16:26 ` David Ahern
  0 siblings, 2 replies; 3+ messages in thread
From: Leon Romanovsky @ 2019-02-27  6:41 UTC (permalink / raw)
  To: David Ahern, Lijun Ou, Steve Wise
  Cc: Leon Romanovsky, netdev, RDMA mailing list, Stephen Hemminger

From: Leon Romanovsky <leonro@mellanox.com>

There is a need to distinguish between driver vs. general exposed
attributes. The most common use case is to expose some internal
garbage under extremely common and sexy name, e.g. pi, ci e.t.c

In order to achieve that, we will add "drv_" prefix to all strings
which were received through RDMA_NLDEV_ATTR_DRIVER_* attributes.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>a
---
 rdma/utils.c | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/rdma/utils.c b/rdma/utils.c
index 6bc14cd5..1f6bf330 100644
--- a/rdma/utils.c
+++ b/rdma/utils.c
@@ -829,27 +829,37 @@ static int print_driver_entry(struct rd *rd, struct nlattr *key_attr,
 				struct nlattr *val_attr,
 				enum rdma_nldev_print_type print_type)
 {
-	const char *key_str = mnl_attr_get_str(key_attr);
 	int attr_type = nla_type(val_attr);
+	int ret = -EINVAL;
+	char *key_str;
+
+	if (asprintf(&key_str, "drv_%s", mnl_attr_get_str(key_attr)) == -1)
+		return -ENOMEM;

 	switch (attr_type) {
 	case RDMA_NLDEV_ATTR_DRIVER_STRING:
-		return print_driver_string(rd, key_str,
-				mnl_attr_get_str(val_attr));
+		ret = print_driver_string(rd, key_str,
+					  mnl_attr_get_str(val_attr));
+		break;
 	case RDMA_NLDEV_ATTR_DRIVER_S32:
-		return print_driver_s32(rd, key_str,
-				mnl_attr_get_u32(val_attr), print_type);
+		ret = print_driver_s32(rd, key_str, mnl_attr_get_u32(val_attr),
+				       print_type);
+		break;
 	case RDMA_NLDEV_ATTR_DRIVER_U32:
-		return print_driver_u32(rd, key_str,
-				mnl_attr_get_u32(val_attr), print_type);
+		ret = print_driver_u32(rd, key_str, mnl_attr_get_u32(val_attr),
+				       print_type);
+		break;
 	case RDMA_NLDEV_ATTR_DRIVER_S64:
-		return print_driver_s64(rd, key_str,
-				mnl_attr_get_u64(val_attr), print_type);
+		ret = print_driver_s64(rd, key_str, mnl_attr_get_u64(val_attr),
+				       print_type);
+		break;
 	case RDMA_NLDEV_ATTR_DRIVER_U64:
-		return print_driver_u64(rd, key_str,
-				mnl_attr_get_u64(val_attr), print_type);
+		ret = print_driver_u64(rd, key_str, mnl_attr_get_u64(val_attr),
+				       print_type);
+		break;
 	}
-	return -EINVAL;
+	free(key_str);
+	return ret;
 }

 void print_driver_table(struct rd *rd, struct nlattr *tb)
--
2.19.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH iproute2-next] rdma: Add the prefix for driver attributes
       [not found] ` <d6d1bd56-5def-aa25-4845-e41d2ea5d667@huawei.com>
@ 2019-02-27 11:38   ` Leon Romanovsky
  0 siblings, 0 replies; 3+ messages in thread
From: Leon Romanovsky @ 2019-02-27 11:38 UTC (permalink / raw)
  To: oulijun
  Cc: David Ahern, Steve Wise, netdev, RDMA mailing list, Stephen Hemminger

[-- Attachment #1: Type: text/plain, Size: 2899 bytes --]

On Wed, Feb 27, 2019 at 07:30:34PM +0800, oulijun wrote:
> 在 2019/2/27 14:41, Leon Romanovsky 写道:
> > From: Leon Romanovsky <leonro@mellanox.com>
> >
> > There is a need to distinguish between driver vs. general exposed
> > attributes. The most common use case is to expose some internal
> > garbage under extremely common and sexy name, e.g. pi, ci e.t.c
> >
> > In order to achieve that, we will add "drv_" prefix to all strings
> > which were received through RDMA_NLDEV_ATTR_DRIVER_* attributes.
> >
> > Signed-off-by: Leon Romanovsky <leonro@mellanox.com>a
> > ---
> >  rdma/utils.c | 34 ++++++++++++++++++++++------------
> >  1 file changed, 22 insertions(+), 12 deletions(-)
> >
> > diff --git a/rdma/utils.c b/rdma/utils.c
> > index 6bc14cd5..1f6bf330 100644
> > --- a/rdma/utils.c
> > +++ b/rdma/utils.c
> > @@ -829,27 +829,37 @@ static int print_driver_entry(struct rd *rd, struct nlattr *key_attr,
> >  				struct nlattr *val_attr,
> >  				enum rdma_nldev_print_type print_type)
> >  {
> > -	const char *key_str = mnl_attr_get_str(key_attr);
> >  	int attr_type = nla_type(val_attr);
> > +	int ret = -EINVAL;
> > +	char *key_str;
> > +
> > +	if (asprintf(&key_str, "drv_%s", mnl_attr_get_str(key_attr)) == -1)
> > +		return -ENOMEM;
> >
> >  	switch (attr_type) {
> >  	case RDMA_NLDEV_ATTR_DRIVER_STRING:
> > -		return print_driver_string(rd, key_str,
> > -				mnl_attr_get_str(val_attr));
> > +		ret = print_driver_string(rd, key_str,
> > +					  mnl_attr_get_str(val_attr));
> > +		break;
> >  	case RDMA_NLDEV_ATTR_DRIVER_S32:
> > -		return print_driver_s32(rd, key_str,
> > -				mnl_attr_get_u32(val_attr), print_type);
> > +		ret = print_driver_s32(rd, key_str, mnl_attr_get_u32(val_attr),
> > +				       print_type);
> > +		break;
> >  	case RDMA_NLDEV_ATTR_DRIVER_U32:
> > -		return print_driver_u32(rd, key_str,
> > -				mnl_attr_get_u32(val_attr), print_type);
> > +		ret = print_driver_u32(rd, key_str, mnl_attr_get_u32(val_attr),
> > +				       print_type);
> > +		break;
> >  	case RDMA_NLDEV_ATTR_DRIVER_S64:
> > -		return print_driver_s64(rd, key_str,
> > -				mnl_attr_get_u64(val_attr), print_type);
> > +		ret = print_driver_s64(rd, key_str, mnl_attr_get_u64(val_attr),
> > +				       print_type);
> > +		break;
> >  	case RDMA_NLDEV_ATTR_DRIVER_U64:
> > -		return print_driver_u64(rd, key_str,
> > -				mnl_attr_get_u64(val_attr), print_type);
> > +		ret = print_driver_u64(rd, key_str, mnl_attr_get_u64(val_attr),
> > +				       print_type);
> > +		break;
> >  	}
> > -	return -EINVAL;
> > +	free(key_str);
> > +	return ret;
> >  }
> >
> >  void print_driver_table(struct rd *rd, struct nlattr *tb)
> > --
> > 2.19.1
> >
> >
> > .
> >
> This is fine to me  and the implementation is more simple.
>
> Tested-by: Lijun Ou <oulijun@huawei.com>

Thanks a lot.

>
> thanks.
>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH iproute2-next] rdma: Add the prefix for driver attributes
  2019-02-27  6:41 [PATCH iproute2-next] rdma: Add the prefix for driver attributes Leon Romanovsky
       [not found] ` <d6d1bd56-5def-aa25-4845-e41d2ea5d667@huawei.com>
@ 2019-02-27 16:26 ` David Ahern
  1 sibling, 0 replies; 3+ messages in thread
From: David Ahern @ 2019-02-27 16:26 UTC (permalink / raw)
  To: Leon Romanovsky, Lijun Ou, Steve Wise
  Cc: Leon Romanovsky, netdev, RDMA mailing list, Stephen Hemminger

On 2/26/19 11:41 PM, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@mellanox.com>
> 
> There is a need to distinguish between driver vs. general exposed
> attributes. The most common use case is to expose some internal
> garbage under extremely common and sexy name, e.g. pi, ci e.t.c
> 
> In order to achieve that, we will add "drv_" prefix to all strings
> which were received through RDMA_NLDEV_ATTR_DRIVER_* attributes.
> 
> Signed-off-by: Leon Romanovsky <leonro@mellanox.com>a
> ---
>  rdma/utils.c | 34 ++++++++++++++++++++++------------
>  1 file changed, 22 insertions(+), 12 deletions(-)
> 

applied to iproute2-next. Thanks



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-02-27 16:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-27  6:41 [PATCH iproute2-next] rdma: Add the prefix for driver attributes Leon Romanovsky
     [not found] ` <d6d1bd56-5def-aa25-4845-e41d2ea5d667@huawei.com>
2019-02-27 11:38   ` Leon Romanovsky
2019-02-27 16:26 ` David Ahern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).