lkml.org 
[lkml]   [2020]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 015/265] net: Fix the arp error in some cases
    Date
    From: guodeqing <geffrey.guo@huawei.com>

    [ Upstream commit 5eea3a63ff4aba6a26002e657a6d21934b7e2b96 ]

    ie.,
    $ ifconfig eth0 6.6.6.6 netmask 255.255.255.0

    $ ip rule add from 6.6.6.6 table 6666

    $ ip route add 9.9.9.9 via 6.6.6.6

    $ ping -I 6.6.6.6 9.9.9.9
    PING 9.9.9.9 (9.9.9.9) from 6.6.6.6 : 56(84) bytes of data.

    3 packets transmitted, 0 received, 100% packet loss, time 2079ms

    $ arp
    Address HWtype HWaddress Flags Mask Iface
    6.6.6.6 (incomplete) eth0

    The arp request address is error, this is because fib_table_lookup in
    fib_check_nh lookup the destnation 9.9.9.9 nexthop, the scope of
    the fib result is RT_SCOPE_LINK,the correct scope is RT_SCOPE_HOST.
    Here I add a check of whether this is RT_TABLE_MAIN to solve this problem.

    Fixes: 3bfd847203c6 ("net: Use passed in table for nexthop lookups")
    Signed-off-by: guodeqing <geffrey.guo@huawei.com>
    Reviewed-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/ipv4/fib_semantics.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
    index 55ca2e5218280..871c035be31f2 100644
    --- a/net/ipv4/fib_semantics.c
    +++ b/net/ipv4/fib_semantics.c
    @@ -1109,7 +1109,7 @@ static int fib_check_nh_v4_gw(struct net *net, struct fib_nh *nh, u32 table,
    if (fl4.flowi4_scope < RT_SCOPE_LINK)
    fl4.flowi4_scope = RT_SCOPE_LINK;

    - if (table)
    + if (table && table != RT_TABLE_MAIN)
    tbl = fib_get_table(net, table);

    if (tbl)
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-29 23:40    [W:4.083 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site