public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Ido Schimmel <idosch@idosch.org>
To: Alce Lafranque <alce@lafranque.net>
Cc: netdev@vger.kernel.org, stephen@networkplumber.org,
	Vincent Bernat <vincent@bernat.ch>,
	dsahern@gmail.com
Subject: Re: [PATCH iproute2] vxlan: add support for flowlab inherit
Date: Mon, 22 Jan 2024 14:24:43 +0200	[thread overview]
Message-ID: <Za5eizfgzl5mwt50@shredder> (raw)
In-Reply-To: <20240120124418.26117-1-alce@lafranque.net>

s/flowlab/flowlabel/ in subject

My understanding is that new features should be targeted at
iproute2-next. See the README.

On Sat, Jan 20, 2024 at 06:44:18AM -0600, Alce Lafranque wrote:
> @@ -214,10 +214,16 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
>  			NEXT_ARG();
>  			check_duparg(&attrs, IFLA_VXLAN_LABEL, "flowlabel",
>  				     *argv);
> -			if (get_u32(&uval, *argv, 0) ||
> -			    (uval & ~LABEL_MAX_MASK))
> -				invarg("invalid flowlabel", *argv);
> -			addattr32(n, 1024, IFLA_VXLAN_LABEL, htonl(uval));
> +			if (strcmp(*argv, "inherit") == 0) {
> +				addattr32(n, 1024, IFLA_VXLAN_LABEL_POLICY, VXLAN_LABEL_INHERIT);
> +			} else {
> +				if (get_u32(&uval, *argv, 0) ||
> +				    (uval & ~LABEL_MAX_MASK))
> +					invarg("invalid flowlabel", *argv);
> +				addattr32(n, 1024, IFLA_VXLAN_LABEL_POLICY, VXLAN_LABEL_FIXED);

I think I mentioned this during the review of the kernel patch, but the
current approach relies on old kernels ignoring the
'IFLA_VXLAN_LABEL_POLICY' attribute which is not nice. My personal
preference would be to add a new keyword for the new attribute:

# ip link set dev vx0 type vxlan flowlabel_policy inherit
# ip link set dev vx0 type vxlan flowlabel_policy fixed flowlabel 10

But let's see what David thinks.

> +				addattr32(n, 1024, IFLA_VXLAN_LABEL,
> +					  htonl(uval));
> +			}
>  		} else if (!matches(*argv, "ageing")) {
>  			__u32 age;
>  
> @@ -580,12 +586,25 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
>  			print_string(PRINT_ANY, "df", "df %s ", "inherit");
>  	}
>  
> -	if (tb[IFLA_VXLAN_LABEL]) {
> -		__u32 label = rta_getattr_u32(tb[IFLA_VXLAN_LABEL]);
> -
> -		if (label)
> -			print_0xhex(PRINT_ANY, "label",
> -				    "flowlabel %#llx ", ntohl(label));
> +	enum ifla_vxlan_label_policy policy = VXLAN_LABEL_FIXED;
> +	if (tb[IFLA_VXLAN_LABEL_POLICY]) {
> +		policy = rta_getattr_u32(tb[IFLA_VXLAN_LABEL_POLICY]);
> +	}

Checkpatch says:

WARNING: Missing a blank line after declarations
#112: FILE: ip/iplink_vxlan.c:590:
+       enum ifla_vxlan_label_policy policy = VXLAN_LABEL_FIXED;
+       if (tb[IFLA_VXLAN_LABEL_POLICY]) {

WARNING: braces {} are not necessary for single statement blocks
#112: FILE: ip/iplink_vxlan.c:590:
+       if (tb[IFLA_VXLAN_LABEL_POLICY]) {
+               policy = rta_getattr_u32(tb[IFLA_VXLAN_LABEL_POLICY]);
+       }

> +	switch (policy) {
> +	case VXLAN_LABEL_FIXED:
> +		if (tb[IFLA_VXLAN_LABEL]) {
> +			__u32 label = rta_getattr_u32(tb[IFLA_VXLAN_LABEL]);
> +
> +			if (label)
> +				print_0xhex(PRINT_ANY, "label",
> +					    "flowlabel %#llx ", ntohl(label));
> +		}
> +		break;
> +	case VXLAN_LABEL_INHERIT:
> +		print_string(PRINT_FP, NULL, "flowlabel %s ", "inherit");
> +		break;
> +	default:
> +		break;
>  	}
>  
>  	if (tb[IFLA_VXLAN_AGEING]) {
> -- 
> 2.39.2
> 
> 

  reply	other threads:[~2024-01-22 12:24 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-20 12:44 [PATCH iproute2] vxlan: add support for flowlab inherit Alce Lafranque
2024-01-22 12:24 ` Ido Schimmel [this message]
2024-01-22 21:11   ` Vincent Bernat
2024-01-23  0:10     ` Stephen Hemminger
2024-01-23  0:29       ` David Ahern
2024-01-23  0:41   ` David Ahern
2024-01-23  7:58     ` Vincent Bernat
2024-01-23 16:19       ` David Ahern
2024-01-24 22:00         ` Vincent Bernat
2024-01-25 15:50           ` David Ahern
2024-01-26  6:28             ` Vincent Bernat
2024-01-26 17:17               ` David Ahern
2024-01-28 12:35                 ` Ido Schimmel
2024-01-28 14:28                   ` Vincent Bernat
2024-01-29 18:44                   ` David Ahern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Za5eizfgzl5mwt50@shredder \
    --to=idosch@idosch.org \
    --cc=alce@lafranque.net \
    --cc=dsahern@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=stephen@networkplumber.org \
    --cc=vincent@bernat.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox