netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Petr Machata <petrm@mellanox.com>
Cc: netdev@vger.kernel.org, David Ahern <dsahern@gmail.com>
Subject: Re: [PATCH iproute2-next 1/3] tc: p_ip6: Support pedit of IPv6 dsfield
Date: Fri, 27 Mar 2020 17:51:23 -0700	[thread overview]
Message-ID: <20200327175123.1930e099@hermes.lan> (raw)
In-Reply-To: <628ade92d458e62f9471911d3cf8f3b193212eaa.1585331173.git.petrm@mellanox.com>

On Fri, 27 Mar 2020 20:55:08 +0300
Petr Machata <petrm@mellanox.com> wrote:

> Support keywords dsfield, traffic_class and tos in the IPv6 context.
> 
> Signed-off-by: Petr Machata <petrm@mellanox.com>
> ---
>  man/man8/tc-pedit.8 | 14 ++++++++++++--
>  tc/p_ip6.c          | 16 ++++++++++++++++
>  2 files changed, 28 insertions(+), 2 deletions(-)
> 
> diff --git a/man/man8/tc-pedit.8 b/man/man8/tc-pedit.8
> index bbd725c4..b44b0263 100644
> --- a/man/man8/tc-pedit.8
> +++ b/man/man8/tc-pedit.8
> @@ -60,8 +60,8 @@ pedit - generic packet editor action
>  
>  .ti -8
>  .IR IP6HDR_FIELD " := { "
> -.BR src " | " dst " | " flow_lbl " | " payload_len " | " nexthdr " |"
> -.BR hoplimit " }"
> +.BR src " | " dst " | " tos " | " dsfield " | " traffic_class " | "
> +.BR flow_lbl " | " payload_len " | " nexthdr " |" hoplimit " }"
>  
>  .ti -8
>  .IR TCPHDR_FIELD " := { "
> @@ -228,6 +228,16 @@ are:
>  .B src
>  .TQ
>  .B dst
> +.TP
> +.B tos
> +.TQ
> +.B dsfield
> +.TQ
> +.B traffic_class
> +Traffic Class, an 8-bit quantity. Because the field is shifted by 4 bits,
> +it is necessary to specify the full 16-bit halfword, with the actual
> +dsfield value sandwiched between 4-bit zeroes.
> +.TP
>  .TQ
>  .B flow_lbl
>  .TQ
> diff --git a/tc/p_ip6.c b/tc/p_ip6.c
> index 7cc7997b..b6fe81f5 100644
> --- a/tc/p_ip6.c
> +++ b/tc/p_ip6.c
> @@ -56,6 +56,22 @@ parse_ip6(int *argc_p, char ***argv_p,
>  		res = parse_cmd(&argc, &argv, 4, TU32, 0x0007ffff, sel, tkey);
>  		goto done;
>  	}
> +	if (strcmp(*argv, "traffic_class") == 0 ||
> +	    strcmp(*argv, "tos") == 0 ||
> +	    strcmp(*argv, "dsfield") == 0) {
> +		NEXT_ARG();
> +		tkey->off = 1;
> +		res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
> +
> +		/* Shift the field by 4 bits on success. */
> +		if (!res) {
> +			int nkeys = sel->sel.nkeys;
> +			struct tc_pedit_key *key = &sel->sel.keys[nkeys - 1];
> +			key->mask = htonl(ntohl(key->mask) << 4 | 0xf);
> +			key->val = htonl(ntohl(key->val) << 4);
> +		}
> +		goto done;
> +	}
Why in the middle of the list? Why three aliases for the same value?
Since this is new code choose one and make it match what IPv6 standard
calls that field.

  reply	other threads:[~2020-03-28  0:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-27 17:55 [PATCH iproute2-next 0/3] Support pedit of ip6 dsfield Petr Machata
2020-03-27 17:55 ` [PATCH iproute2-next 1/3] tc: p_ip6: Support pedit of IPv6 dsfield Petr Machata
2020-03-28  0:51   ` Stephen Hemminger [this message]
2020-03-30  8:32     ` Petr Machata
2020-04-01 20:00       ` David Ahern
2020-04-02 11:06         ` Petr Machata
2020-03-27 17:55 ` [PATCH iproute2-next 2/3] man: tc-pedit: Add examples for dsfield and retain Petr Machata
2020-03-27 17:55 ` [PATCH iproute2-next 3/3] man: tc-pedit: Drop the claim that pedit ex is only for IPv4 Petr Machata

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=20200327175123.1930e099@hermes.lan \
    --to=stephen@networkplumber.org \
    --cc=dsahern@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=petrm@mellanox.com \
    /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;
as well as URLs for NNTP newsgroup(s).