• Eric W. Biederman's avatar
    [IPV4]: Fix the fib trie iterator to work with a single entry routing tables · 6640e697
    Eric W. Biederman authored
    In a kernel with trie routing enabled I had a simple routing setup
    with only a single route to the outside world and no default
    route. "ip route table list main" showed my the route just fine but
    /proc/net/route was an empty file.  What was going on?
    
    Thinking it was a bug in something I did and I looked deeper.  Eventually
    I setup a second route and everything looked correct, huh?  Finally I
    realized that the it was just the iterator pair in fib_trie_get_first,
    fib_trie_get_next just could not handle a routing table with a single entry.
    
    So to save myself and others further confusion, here is a simple fix for
    the fib proc iterator so it works even when there is only a single route
    in a routing table.
    Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: default avatarRobert Olsson <robert.olsson@its.uu.se>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6640e697
fib_trie.c 58.5 KB