On Fri, 13 Nov 2020 12:06:37 +1000 Russell Strong <russ...@strong.id.au> wrote:
> diff --git a/include/uapi/linux/in_route.h > b/include/uapi/linux/in_route.h index 0cc2c23b47f8..db5d236b9c50 100644 > --- a/include/uapi/linux/in_route.h > +++ b/include/uapi/linux/in_route.h > @@ -28,6 +28,6 @@ > > #define RTCF_NAT (RTCF_DNAT|RTCF_SNAT) > > -#define RT_TOS(tos) ((tos)&IPTOS_TOS_MASK) > +#define RT_TOS(tos) ((tos)&IPTOS_DS_MASK) > Changing behavior of existing header files risks breaking applications. > diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c > index ce54a30c2ef1..1499105d1efd 100644 > --- a/net/ipv4/fib_rules.c > +++ b/net/ipv4/fib_rules.c > @@ -229,7 +229,7 @@ static int fib4_rule_configure(struct fib_rule > *rule, struct sk_buff *skb, int err = -EINVAL; > struct fib4_rule *rule4 = (struct fib4_rule *) rule; > > - if (frh->tos & ~IPTOS_TOS_MASK) { > + if (frh->tos & ~IPTOS_RT_MASK) { This needs to be behind a sysctl and the default has to be to keep the old behavior