• Serhey Popovych's avatar
    fib_rules: Resolve goto rules target on delete · bdaf32c3
    Serhey Popovych authored
    We should avoid marking goto rules unresolved when their
    target is actually reachable after rule deletion.
    
    Consolder following sample scenario:
    
      # ip -4 ru sh
      0:      from all lookup local
      32000:  from all goto 32100
      32100:  from all lookup main
      32100:  from all lookup default
      32766:  from all lookup main
      32767:  from all lookup default
    
      # ip -4 ru del pref 32100 table main
      # ip -4 ru sh
      0:      from all lookup local
      32000:  from all goto 32100 [unresolved]
      32100:  from all lookup default
      32766:  from all lookup main
      32767:  from all lookup default
    
    After removal of first rule with preference 32100 we
    mark all goto rules as unreachable, even when rule with
    same preference as removed one still present.
    
    Check if next rule with same preference is available
    and make all rules with goto action pointing to it.
    Signed-off-by: default avatarSerhey Popovych <serhe.popovych@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bdaf32c3
fib_rules.c 22.2 KB