-
Bug
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
None
-
None
Hello,
Found a problem with some types of vpp interfaces.
When I created an interface and run ping I see:
vpp# ping x.x.x.x Failed: no source address for egress interface Failed: no source address for egress interface Failed: no source address for egress interface Failed: no source address for egress interface Failed: no source address for egress interface Statistics: 0 sent, 0 received, 0% packet loss
Found a similar issue: https://jira.fd.io/browse/VPP-1970
and similar topic here: https://lists.fd.io/g/vpp-dev/topic/84038840
Memif
IP mode
IP mode works fine with patches:
1. https://gerrit.fd.io/r/c/vpp/+/32801
2. https://gerrit.fd.io/r/c/vpp/+/33303
It works, because memif IP is P2P - https://github.com/FDio/vpp/blob/master/src/plugins/memif/memif.c#L841-L845
Ethernet mode
But Ethernet mode doesn't work. Because memif Ethernet is NOT P2P (see here) and this patch doesn't work.
Config example:
If I change /32 mask to any other, it works fine.
vpp1:
DBGvpp# create interface memif id 0 master DBGvpp# set int ip address memif0/0 10.10.2.0/32 DBGvpp# set int state memif0/0 up DBGvpp# ip route add 10.10.2.1/32 via 10.10.2.0 memif0/0
vpp2:
DBGvpp# create interface memif id 0 slave DBGvpp# set int ip address memif0/0 10.10.2.1/32 DBGvpp# set int state memif0/0 up DBGvpp# ip route add 10.10.2.0/32 via 10.10.2.1 memif0/0
VxLAN
Same problem with VxLAN
Config example:
If I change /32 mask to any other, it works fine.
vpp1:
DBGvpp# create interface memif id 0 master DBGvpp# set int ip address memif0/0 10.10.2.1/24 DBGvpp# set int state memif0/0 up DBGvpp# DBGvpp# create vxlan tunnel src 10.10.2.1 dst 10.10.2.2 vni 13 decap-next node ethernet-input vxlan_tunnel0 DBGvpp# set int ip address vxlan_tunnel0 10.10.3.1/32 DBGvpp# ip route add 10.10.3.2/32 via 10.10.3.1 vxlan_tunnel0
vpp2:
DBGvpp# create interface memif id 0 slave DBGvpp# set int ip address memif0/0 10.10.2.2/24 DBGvpp# set int state memif0/0 up DBGvpp# DBGvpp# create vxlan tunnel src 10.10.2.2 dst 10.10.2.1 vni 13 decap-next node ethernet-input vxlan_tunnel0 DBGvpp# set int ip address vxlan_tunnel0 10.10.3.2/32 DBGvpp# ip route add 10.10.3.1/32 via 10.10.3.2 vxlan_tunnel0
Wireguard
There is a similar problem with wireguard.
Because wireguard is NBMA
Possible solution:
Add to this patch - https://gerrit.fd.io/r/c/vpp/+/32801 - NBMA checking also:
...
if (vnet_sw_interface_is_p2p(vnet_get_main(), sw_if_index) || vnet_sw_interface_is_nbma(vnet_get_main(), sw_if_index))
{
...
Additional information
DBGvpp# show version vpp v21.10-rc0~218-gfdcbd38dc built by art on art-c at 2021-08-02T13:39:08