[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZtCJBR_XIn6H9EBU@shredder.mtl.com>
Date: Thu, 29 Aug 2024 17:43:17 +0300
From: Ido Schimmel <idosch@...dia.com>
To: Guillaume Nault <gnault@...hat.com>
Cc: netdev@...r.kernel.org, davem@...emloft.net, kuba@...nel.org,
pabeni@...hat.com, edumazet@...gle.com, dsahern@...nel.org,
ast@...nel.org, daniel@...earbox.net, martin.lau@...ux.dev,
john.fastabend@...il.com, steffen.klassert@...unet.com,
herbert@...dor.apana.org.au, bpf@...r.kernel.org
Subject: Re: [PATCH net-next 00/12] Unmask upper DSCP bits - part 2
On Thu, Aug 29, 2024 at 01:30:58PM +0200, Guillaume Nault wrote:
> On Tue, Aug 27, 2024 at 06:45:53PM +0300, Ido Schimmel wrote:
> > On Tue, Aug 27, 2024 at 03:47:05PM +0200, Guillaume Nault wrote:
> > > On Tue, Aug 27, 2024 at 02:18:01PM +0300, Ido Schimmel wrote:
> > > > tl;dr - This patchset continues to unmask the upper DSCP bits in the
> > > > IPv4 flow key in preparation for allowing IPv4 FIB rules to match on
> > > > DSCP. No functional changes are expected. Part 1 was merged in commit
> > > > ("Merge branch 'unmask-upper-dscp-bits-part-1'").
> > > >
> > > > The TOS field in the IPv4 flow key ('flowi4_tos') is used during FIB
> > > > lookup to match against the TOS selector in FIB rules and routes.
> > > >
> > > > It is currently impossible for user space to configure FIB rules that
> > > > match on the DSCP value as the upper DSCP bits are either masked in the
> > > > various call sites that initialize the IPv4 flow key or along the path
> > > > to the FIB core.
> > > >
> > > > In preparation for adding a DSCP selector to IPv4 and IPv6 FIB rules, we
> > >
> > > Hum, do you plan to add a DSCP selector for IPv6? That shouldn't be
> > > necessary as IPv6 already takes all the DSCP bits into account. Also we
> > > don't need to keep any compatibility with the legacy TOS interpretation,
> > > as it has never been defined nor used in IPv6.
> >
> > Yes. I want to add the DSCP selector for both families so that user
> > space would not need to use different selectors for different families.
> > It's implemented in the patches I previously shared:
>
> Hum, I guess that was a misunderstanding on my side. I read
> "adding a DSCP selector to [IPv4 and] IPv6 FIB rules" as "adding the
> possibility to match only the 3-bits TOS in fib6_rules". But your
> fib6_rule.c patch doesn't modify fib6_rule_match(), so I believe that
> what you really meant was just to add the new FRA_DSCP netlink
> attribute to IPv6. Am I getting it right?
Yes. To be clear, you will be able to use the new 'dscp' keyword exactly
the same way with both IPv4 and IPv6:
# ip -4 rule add dscp 63 table 100
# ip -6 rule add dscp 63 table 100
Mixing 'dscp' and 'tos' will not work:
# ip -4 rule add dscp 7 tos 0x1c table 100
Error: Cannot specify both TOS and DSCP.
# ip -6 rule add dscp 7 tos 0x1c table 100
Error: Cannot specify both TOS and DSCP.
>
> > https://github.com/idosch/linux/commit/a3289a6838a0d0e6e0a30a61132bdce3d2f71a3c.patch
> > https://github.com/idosch/linux/commit/ff5dd634fb278431b58437654d7f65b57fd4ae4b.patch
> > https://github.com/idosch/linux/commit/3060ecb534475eadabfa1d419dd64804f0bd0148.patch
> > https://github.com/idosch/linux/commit/12ddbce4f519b42477ea1e130b6d2bab1cca137c.patch
>
>
> > > > need to make sure the entire DSCP value is present in the IPv4 flow key.
> > > > This patchset continues to unmask the upper DSCP bits, but this time in
> > > > the output route path.
> > >
> >
>
Powered by blists - more mailing lists