netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH iproute2 0/3] dcb: Fixes
@ 2021-01-01 23:25 Petr Machata
  2021-01-01 23:25 ` [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type Petr Machata
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Petr Machata @ 2021-01-01 23:25 UTC (permalink / raw)
  To: netdev, dsahern, stephen; +Cc: Petr Machata

dcb currently sends all netlink messages with a type RTM_GETDCB, even the
set ones. In patch #1, send the setters as RTM_SETDCB.

In patch #2, plug a leak.

In patch #3, change the command line option for namespace change from
devlink-like -N / --Netns to ip-like -n / --netns.

Petr Machata (3):
  dcb: Set values with RTM_SETDCB type
  dcb: Plug a leaking DCB socket buffer
  dcb: Change --Netns/-N to --netns/-n

 dcb/dcb.c      | 11 ++++++-----
 man/man8/dcb.8 |  7 +++++++
 2 files changed, 13 insertions(+), 5 deletions(-)

-- 
2.26.2


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

* [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type
  2021-01-01 23:25 [PATCH iproute2 0/3] dcb: Fixes Petr Machata
@ 2021-01-01 23:25 ` Petr Machata
  2021-01-02 17:34   ` Stephen Hemminger
  2021-01-01 23:25 ` [PATCH iproute2 2/3] dcb: Plug a leaking DCB socket buffer Petr Machata
  2021-01-01 23:25 ` [PATCH iproute2 3/3] dcb: Change --Netns/-N to --netns/-n Petr Machata
  2 siblings, 1 reply; 7+ messages in thread
From: Petr Machata @ 2021-01-01 23:25 UTC (permalink / raw)
  To: netdev, dsahern, stephen; +Cc: Petr Machata

dcb currently sends all netlink messages with a type RTM_GETDCB, even the
set ones. Change to the appropriate type.

Signed-off-by: Petr Machata <me@pmachata.org>
---
 dcb/dcb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dcb/dcb.c b/dcb/dcb.c
index adec57476e1d..f5c62790e27e 100644
--- a/dcb/dcb.c
+++ b/dcb/dcb.c
@@ -177,7 +177,7 @@ int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr, const void *da
 	struct nlattr *nest;
 	int ret;
 
-	nlh = dcb_prepare(dcb, dev, RTM_GETDCB, DCB_CMD_IEEE_SET);
+	nlh = dcb_prepare(dcb, dev, RTM_SETDCB, DCB_CMD_IEEE_SET);
 
 	nest = mnl_attr_nest_start(nlh, DCB_ATTR_IEEE);
 	mnl_attr_put(nlh, attr, data_len, data);
-- 
2.26.2


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

* [PATCH iproute2 2/3] dcb: Plug a leaking DCB socket buffer
  2021-01-01 23:25 [PATCH iproute2 0/3] dcb: Fixes Petr Machata
  2021-01-01 23:25 ` [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type Petr Machata
@ 2021-01-01 23:25 ` Petr Machata
  2021-01-01 23:25 ` [PATCH iproute2 3/3] dcb: Change --Netns/-N to --netns/-n Petr Machata
  2 siblings, 0 replies; 7+ messages in thread
From: Petr Machata @ 2021-01-01 23:25 UTC (permalink / raw)
  To: netdev, dsahern, stephen; +Cc: Petr Machata

DCB socket buffer is allocated in dcb_init(), but never freed(). Free it
in dcb_fini().

Signed-off-by: Petr Machata <me@pmachata.org>
---
 dcb/dcb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dcb/dcb.c b/dcb/dcb.c
index f5c62790e27e..0e3c87484f2a 100644
--- a/dcb/dcb.c
+++ b/dcb/dcb.c
@@ -38,6 +38,7 @@ static void dcb_fini(struct dcb *dcb)
 {
 	delete_json_obj_plain();
 	mnl_socket_close(dcb->nl);
+	free(dcb->buf);
 }
 
 static struct dcb *dcb_alloc(void)
-- 
2.26.2


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

* [PATCH iproute2 3/3] dcb: Change --Netns/-N to --netns/-n
  2021-01-01 23:25 [PATCH iproute2 0/3] dcb: Fixes Petr Machata
  2021-01-01 23:25 ` [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type Petr Machata
  2021-01-01 23:25 ` [PATCH iproute2 2/3] dcb: Plug a leaking DCB socket buffer Petr Machata
@ 2021-01-01 23:25 ` Petr Machata
  2 siblings, 0 replies; 7+ messages in thread
From: Petr Machata @ 2021-01-01 23:25 UTC (permalink / raw)
  To: netdev, dsahern, stephen; +Cc: Petr Machata

This to keep compatible with the major tools, ip and tc. Also
document the option in the man page, which was neglected.

Signed-off-by: Petr Machata <me@pmachata.org>
---
 dcb/dcb.c      | 8 ++++----
 man/man8/dcb.8 | 7 +++++++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/dcb/dcb.c b/dcb/dcb.c
index 0e3c87484f2a..6640deef5688 100644
--- a/dcb/dcb.c
+++ b/dcb/dcb.c
@@ -332,7 +332,7 @@ static void dcb_help(void)
 {
 	fprintf(stderr,
 		"Usage: dcb [ OPTIONS ] OBJECT { COMMAND | help }\n"
-		"       dcb [ -f | --force ] { -b | --batch } filename [ -N | --Netns ] netnsname\n"
+		"       dcb [ -f | --force ] { -b | --batch } filename [ -n | --netns ] netnsname\n"
 		"where  OBJECT := { buffer | ets | maxrate | pfc }\n"
 		"       OPTIONS := [ -V | --Version | -i | --iec | -j | --json\n"
 		"                  | -p | --pretty | -s | --statistics | -v | --verbose]\n");
@@ -379,7 +379,7 @@ int main(int argc, char **argv)
 		{ "json",		no_argument,		NULL, 'j' },
 		{ "pretty",		no_argument,		NULL, 'p' },
 		{ "statistics",		no_argument,		NULL, 's' },
-		{ "Netns",		required_argument,	NULL, 'N' },
+		{ "netns",		required_argument,	NULL, 'n' },
 		{ "help",		no_argument,		NULL, 'h' },
 		{ NULL, 0, NULL, 0 }
 	};
@@ -396,7 +396,7 @@ int main(int argc, char **argv)
 		return EXIT_FAILURE;
 	}
 
-	while ((opt = getopt_long(argc, argv, "b:fhijpsvN:V",
+	while ((opt = getopt_long(argc, argv, "b:fhijn:psvV",
 				  long_options, NULL)) >= 0) {
 
 		switch (opt) {
@@ -419,7 +419,7 @@ int main(int argc, char **argv)
 		case 's':
 			dcb->stats = true;
 			break;
-		case 'N':
+		case 'n':
 			if (netns_switch(optarg)) {
 				ret = EXIT_FAILURE;
 				goto dcb_free;
diff --git a/man/man8/dcb.8 b/man/man8/dcb.8
index 5964f25d386d..7293bb303577 100644
--- a/man/man8/dcb.8
+++ b/man/man8/dcb.8
@@ -27,6 +27,13 @@ dcb \- show / manipulate DCB (Data Center Bridging) settings
 
 .SH OPTIONS
 
+.TP
+.BR "\-n" , " \--netns " <NETNS>
+switches
+.B dcb
+to the specified network namespace
+.IR NETNS .
+
 .TP
 .BR "\-V" , " --Version"
 Print the version of the
-- 
2.26.2


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

* Re: [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type
  2021-01-01 23:25 ` [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type Petr Machata
@ 2021-01-02 17:34   ` Stephen Hemminger
  2021-01-03 10:47     ` Petr Machata
  0 siblings, 1 reply; 7+ messages in thread
From: Stephen Hemminger @ 2021-01-02 17:34 UTC (permalink / raw)
  To: Petr Machata; +Cc: netdev, dsahern

On Sat,  2 Jan 2021 00:25:50 +0100
Petr Machata <me@pmachata.org> wrote:

> dcb currently sends all netlink messages with a type RTM_GETDCB, even the
> set ones. Change to the appropriate type.
> 
> Signed-off-by: Petr Machata <me@pmachata.org>
> ---
>  dcb/dcb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/dcb/dcb.c b/dcb/dcb.c
> index adec57476e1d..f5c62790e27e 100644
> --- a/dcb/dcb.c
> +++ b/dcb/dcb.c
> @@ -177,7 +177,7 @@ int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr, const void *da
>  	struct nlattr *nest;
>  	int ret;
>  
> -	nlh = dcb_prepare(dcb, dev, RTM_GETDCB, DCB_CMD_IEEE_SET);
> +	nlh = dcb_prepare(dcb, dev, RTM_SETDCB, DCB_CMD_IEEE_SET);
>  
>  	nest = mnl_attr_nest_start(nlh, DCB_ATTR_IEEE);
>  	mnl_attr_put(nlh, attr, data_len, data);

Should I add fixes tag to this?

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

* Re: [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type
  2021-01-02 17:34   ` Stephen Hemminger
@ 2021-01-03 10:47     ` Petr Machata
  2021-01-03 18:22       ` Stephen Hemminger
  0 siblings, 1 reply; 7+ messages in thread
From: Petr Machata @ 2021-01-03 10:47 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev, dsahern


Stephen Hemminger <stephen@networkplumber.org> writes:

> On Sat,  2 Jan 2021 00:25:50 +0100
> Petr Machata <me@pmachata.org> wrote:
>
>> dcb currently sends all netlink messages with a type RTM_GETDCB, even the
>> set ones. Change to the appropriate type.
>> 
>> Signed-off-by: Petr Machata <me@pmachata.org>
>> ---
>>  dcb/dcb.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/dcb/dcb.c b/dcb/dcb.c
>> index adec57476e1d..f5c62790e27e 100644
>> --- a/dcb/dcb.c
>> +++ b/dcb/dcb.c
>> @@ -177,7 +177,7 @@ int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr, const void *da
>>  	struct nlattr *nest;
>>  	int ret;
>>  
>> -	nlh = dcb_prepare(dcb, dev, RTM_GETDCB, DCB_CMD_IEEE_SET);
>> +	nlh = dcb_prepare(dcb, dev, RTM_SETDCB, DCB_CMD_IEEE_SET);
>>  
>>  	nest = mnl_attr_nest_start(nlh, DCB_ATTR_IEEE);
>>  	mnl_attr_put(nlh, attr, data_len, data);
>
> Should I add fixes tag to this?

Ha, I forgot that Fixes: tags are a thing in iproute2. Sorry about that,
I'll resend.

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

* Re: [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type
  2021-01-03 10:47     ` Petr Machata
@ 2021-01-03 18:22       ` Stephen Hemminger
  0 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2021-01-03 18:22 UTC (permalink / raw)
  To: Petr Machata; +Cc: netdev, dsahern

On Sun, 03 Jan 2021 11:47:46 +0100
Petr Machata <me@pmachata.org> wrote:

> Stephen Hemminger <stephen@networkplumber.org> writes:
> 
> > On Sat,  2 Jan 2021 00:25:50 +0100
> > Petr Machata <me@pmachata.org> wrote:
> >  
> >> dcb currently sends all netlink messages with a type RTM_GETDCB, even the
> >> set ones. Change to the appropriate type.
> >> 
> >> Signed-off-by: Petr Machata <me@pmachata.org>
> >> ---
> >>  dcb/dcb.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >> diff --git a/dcb/dcb.c b/dcb/dcb.c
> >> index adec57476e1d..f5c62790e27e 100644
> >> --- a/dcb/dcb.c
> >> +++ b/dcb/dcb.c
> >> @@ -177,7 +177,7 @@ int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr, const void *da
> >>  	struct nlattr *nest;
> >>  	int ret;
> >>  
> >> -	nlh = dcb_prepare(dcb, dev, RTM_GETDCB, DCB_CMD_IEEE_SET);
> >> +	nlh = dcb_prepare(dcb, dev, RTM_SETDCB, DCB_CMD_IEEE_SET);
> >>  
> >>  	nest = mnl_attr_nest_start(nlh, DCB_ATTR_IEEE);
> >>  	mnl_attr_put(nlh, attr, data_len, data);  
> >
> > Should I add fixes tag to this?  
> 
> Ha, I forgot that Fixes: tags are a thing in iproute2. Sorry about that,
> I'll resend.

Thanks, Fixes are mainly to help out distribution maintainers who want
to backport to older versions.

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

end of thread, other threads:[~2021-01-03 18:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-01 23:25 [PATCH iproute2 0/3] dcb: Fixes Petr Machata
2021-01-01 23:25 ` [PATCH iproute2 1/3] dcb: Set values with RTM_SETDCB type Petr Machata
2021-01-02 17:34   ` Stephen Hemminger
2021-01-03 10:47     ` Petr Machata
2021-01-03 18:22       ` Stephen Hemminger
2021-01-01 23:25 ` [PATCH iproute2 2/3] dcb: Plug a leaking DCB socket buffer Petr Machata
2021-01-01 23:25 ` [PATCH iproute2 3/3] dcb: Change --Netns/-N to --netns/-n Petr Machata

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).