Bug 212749

Summary: ping over geneve over ipv6 would fail
Product: Networking Reporter: Jianlin Shi (jishi)
Component: OtherAssignee: Stephen Hemminger (stephen)
Status: NEW ---    
Severity: normal CC: xiyou.wangcong
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.12.0-rc7 Subsystem:
Regression: No Bisected commit-id:

Description Jianlin Shi 2021-04-22 09:42:25 UTC
ping over geneve over ipv6 would fail on 5.10.0-rc7 after commit 
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
            Commit: 88a5af943985 - Merge tag 'net-5.12-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

reproducer:

ip netns add client                                                                                   
ip netns add server                                                                                   
ip link add veth0_c type veth peer name veth0_s                                                       
ip link set veth0_c netns client                                                                      
ip link set veth0_s netns server                                                                      
ip netns exec client ip link set lo up                                                                
ip netns exec client ip link set veth0_c up                                                           
ip netns exec server ip link set lo up                                                                
ip netns exec server ip link set veth0_s up                                                           
ip netns exec client ip addr add 2000::1/64 dev veth0_c                                               
ip netns exec client ip addr add 10.10.0.1/24 dev veth0_c                                             
ip netns exec server ip addr add 2000::2/64 dev veth0_s                                               
ip netns exec server ip addr add 10.10.0.2/24 dev veth0_s                                             
ip netns exec client ping 10.10.0.2 -c 2                                                              
ip netns exec client ping6 2000::2 -c 2                                                               
ip netns exec client ip link add geneve1 type geneve vni 1234 remote 2000::2 ttl 64                   
ip netns exec server ip link add geneve1 type geneve vni 1234 remote 2000::1 ttl 64                   
ip netns exec client ip link set geneve1 up                                                           
ip netns exec client ip addr add 1.1.1.1/24 dev geneve1                                               
ip netns exec server ip link set geneve1 up                                                           
ip netns exec server ip addr add 1.1.1.2/24 dev geneve1
ip netns exec client ping 1.1.1.2 -c 3

actual result:
+ ip netns exec client ping 1.1.1.2 -c 3                                                              
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.                                                          
From 1.1.1.1 icmp_seq=1 Destination Host Unreachable                                                  
From 1.1.1.1 icmp_seq=2 Destination Host Unreachable                                                  
From 1.1.1.1 icmp_seq=3 Destination Host Unreachable                                                  
                                                                                                      
--- 1.1.1.2 ping statistics ---                                                                       
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2072ms

expected result:
ping should pass

BTW, ping over geneve over ipv4 would pass
Comment 1 Cong Wang 2021-04-23 01:05:38 UTC
This is probably caused by commit 6628ddfec7580882f11fdc5c194a8ea781fdadfa (https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=6628ddfec7580882f11fdc5c194a8ea781fdadfa).