--- zzzz-none-000/linux-5.15.111/net/ipv6/ndisc.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-arm-6670-761/linux-5.15.111/net/ipv6/ndisc.c 2024-02-07 09:28:09.000000000 +0000 @@ -9,6 +9,11 @@ */ /* + * Includes Intel Corporation's changes/modifications dated: 2017. + * Changed/modified portions - Copyright (c) 2017, Intel Corporation. + */ + +/* * Changes: * * Alexey I. Froloff : RFC6106 (DNSSL) support @@ -1291,7 +1296,7 @@ pref = ICMPV6_ROUTER_PREF_MEDIUM; #endif /* routes added from RAs do not use nexthop objects */ - rt = rt6_get_dflt_router(net, &ipv6_hdr(skb)->saddr, skb->dev); + rt = rt6_get_dflt_router_by_table(net, &ipv6_hdr(skb)->saddr, skb->dev, in6_dev->cnf.accept_ra_table); if (rt) { neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, rt->fib6_nh->fib_nh_dev, NULL, @@ -1320,8 +1325,7 @@ if (neigh) neigh_release(neigh); - rt = rt6_add_dflt_router(net, &ipv6_hdr(skb)->saddr, - skb->dev, pref, defrtr_usr_metric); + rt = rt6_add_dflt_router_by_table(net, &ipv6_hdr(skb)->saddr, skb->dev, pref, defrtr_usr_metric, in6_dev->cnf.accept_ra_table); if (!rt) { ND_PRINTK(0, err, "RA: %s failed to add default route\n", @@ -1457,8 +1461,8 @@ continue; if (ri->prefix_len > in6_dev->cnf.accept_ra_rt_info_max_plen) continue; - rt6_route_rcv(skb->dev, (u8 *)p, (p->nd_opt_len) << 3, - &ipv6_hdr(skb)->saddr); + rt6_route_rcv_by_table(skb->dev, (u8*)p, (p->nd_opt_len) << 3, + &ipv6_hdr(skb)->saddr, in6_dev->cnf.accept_ra_table); } } @@ -1480,9 +1484,9 @@ for (p = ndopts.nd_opts_pi; p; p = ndisc_next_option(p, ndopts.nd_opts_pi_end)) { - addrconf_prefix_rcv(skb->dev, (u8 *)p, + addrconf_prefix_rcv_by_table(skb->dev, (u8 *)p, (p->nd_opt_len) << 3, - ndopts.nd_opts_src_lladdr != NULL); + ndopts.nd_opts_src_lladdr != NULL, in6_dev->cnf.accept_ra_table); } }