--- zzzz-none-000/linux-4.4.60/net/ipv4/ip_forward.c 2017-04-08 07:53:53.000000000 +0000 +++ scorpion-7490-727/linux-4.4.60/net/ipv4/ip_forward.c 2021-02-04 17:41:59.000000000 +0000 @@ -39,6 +39,13 @@ #include #include +#ifdef CONFIG_AVM_PA +#include +#endif + +int sysctl_ip_use_legacy_tos __read_mostly = 1; +EXPORT_SYMBOL(sysctl_ip_use_legacy_tos); + static bool ip_exceeds_mtu(const struct sk_buff *skb, unsigned int mtu) { if (skb->len <= mtu) @@ -72,6 +79,9 @@ ip_forward_options(skb); skb_sender_cpu_clear(skb); +#ifdef CONFIG_AVM_PA + avm_pa_mark_routed(skb); +#endif return dst_output(net, sk, skb); } @@ -143,7 +153,11 @@ !skb_sec_path(skb)) ip_rt_send_redirect(skb); - skb->priority = rt_tos2priority(iph->tos); + /* + * Set skb priority using legacy ToS method if required. + */ + if (sysctl_ip_use_legacy_tos != 0) + skb->priority = rt_tos2priority(iph->tos); return NF_HOOK(NFPROTO_IPV4, NF_INET_FORWARD, net, NULL, skb, skb->dev, rt->dst.dev,