[PATCH net v2] ipv6: socket SO_BINDTODEVICE lookup routing fail without IPv6 rule.

David Ahern dsahern at kernel.org
Sun Jan 19 15:21:47 PST 2025


On 1/13/25 8:11 PM, Shiming Cheng (成诗明) wrote:
> 
>   ip -6 -netns test1 rule add from all unreachable pri 1
>   ip -netns test1 rule add from all unreachable pri 1

The bug is in ipv4, ip_route_output_key_hash_rc():

   err = fib_lookup(net, fl4, res, 0);
   if (err) {
        res->fi = NULL;
        res->table = NULL;
        if (fl4->flowi4_oif &&
           (ipv4_is_multicast(fl4->daddr) || !fl4->flowi4_l3mdev)) {
...

The fib lookup should fail because of the unreachable rule, but the
output side is overlooking it for this legacy reason.

ip6_route_output_flags does not have this exception and so it is rightly
failing.




More information about the linux-arm-kernel mailing list