• Donald Sharp's avatar
    net: Properly update v4 routes with v6 nexthop · 7bdf4de1
    Donald Sharp authored
    When creating a v4 route that uses a v6 nexthop from a nexthop group.
    Allow the kernel to properly send the nexthop as v6 via the RTA_VIA
    attribute.
    
    Broken behavior:
    
    $ ip nexthop add via fe80::9 dev eth0
    $ ip nexthop show
    id 1 via fe80::9 dev eth0 scope link
    $ ip route add 4.5.6.7/32 nhid 1
    $ ip route show
    default via 10.0.2.2 dev eth0
    4.5.6.7 nhid 1 via 254.128.0.0 dev eth0
    10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
    $
    
    Fixed behavior:
    
    $ ip nexthop add via fe80::9 dev eth0
    $ ip nexthop show
    id 1 via fe80::9 dev eth0 scope link
    $ ip route add 4.5.6.7/32 nhid 1
    $ ip route show
    default via 10.0.2.2 dev eth0
    4.5.6.7 nhid 1 via inet6 fe80::9 dev eth0
    10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
    $
    
    v2, v3: Addresses code review comments from David Ahern
    
    Fixes: dcb1ecb5 (“ipv4: Prepare for fib6_nh from a nexthop object”)
    Signed-off-by: default avatarDonald Sharp <sharpd@cumulusnetworks.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7bdf4de1
route.c 156 KB