--- zzzz-none-000/linux-4.1.52/net/ipv4/ip_sockglue.c 2018-05-28 02:26:45.000000000 +0000 +++ bcm63-7530ax-731/linux-4.1.52/net/ipv4/ip_sockglue.c 2022-03-02 11:37:13.000000000 +0000 @@ -43,6 +43,10 @@ #endif #include +#if defined(CONFIG_BCM_MPTCP) && defined(CONFIG_BCM_KF_MPTCP) +#include + +#endif #include #include @@ -722,6 +726,19 @@ inet->tos = val; sk->sk_priority = rt_tos2priority(val); sk_dst_reset(sk); +#if defined(CONFIG_BCM_MPTCP) && defined(CONFIG_BCM_KF_MPTCP) + /* Update TOS on mptcp subflow */ + if (is_meta_sk(sk)) { + struct sock *sk_it; + mptcp_for_each_sk(tcp_sk(sk)->mpcb, sk_it) { + if (inet_sk(sk_it)->tos != inet_sk(sk)->tos) { + inet_sk(sk_it)->tos = inet_sk(sk)->tos; + sk_it->sk_priority = sk->sk_priority; + sk_dst_reset(sk_it); + } + } + } +#endif } break; case IP_TTL: