• Xin Long's avatar
    ipv4: do metrics match when looking up and deleting a route · 5f9ae3d9
    Xin Long authored
    Now when ipv4 route inserts a fib_info, it memcmp fib_metrics.
    It means ipv4 route identifies one route also with metrics.
    
    But when removing a route, it tries to find the route without
    caring about the metrics. It will cause that the route with
    right metrics can't be removed.
    
    Thomas noticed this issue when doing the testing:
    
    1. add:
       # ip route append 192.168.7.0/24 dev v window 1000
       # ip route append 192.168.7.0/24 dev v window 1001
       # ip route append 192.168.7.0/24 dev v window 1002
       # ip route append 192.168.7.0/24 dev v window 1003
    2. delete:
       # ip route delete 192.168.7.0/24 dev v window 1002
    3. show:
         192.168.7.0/24 proto boot scope link window 1001
         192.168.7.0/24 proto boot scope link window 1002
         192.168.7.0/24 proto boot scope link window 1003
    
    The one with window 1002 wasn't deleted but the first one was.
    
    This patch is to do metrics match when looking up and deleting
    one route.
    Reported-by: default avatarThomas Haller <thaller@redhat.com>
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5f9ae3d9
fib_semantics.c 42.1 KB