On 4/15/21 12:15 AM, Bala Sajja wrote: > When interfaces are not part of VRF and below ip address config is > done on these interfaces, ping with -I (interface) option, we see > packets transmitting out of the right interfaces. > > ip addr add 2.2.2.100 peer 1.1.1.100/32 dev enp0s3 > ip addr add 2.2.2.100 peer 1.1.1.100/32 dev enp0s8 > > ping 1.1.1.100 -I enp0s3 , packet always goes out of enp0s3 > ping 1.1.1.100 -I enp0s8, packet always goes out of enp0s8 > > When interfaces are enslaved to VRF as below and ip are configured > on these interfaces, packets go out of one interface only. > > ip link add MGMT type vrf table 1 > ip link set dev MGMT up > ip link set dev enp0s3 up > ip link set dev enp0s3 master MGMT > ip link set dev enp0s8 up > ip link set dev enp0s8 master MGMT > ip link set dev enp0s9 up > > ip addr add 2.2.2.100 peer 1.1.1.100/32 dev enp0s3 > ip addr add 2.2.2.100 peer 1.1.1.100/32 dev enp0s8 > > ping 1.1.1.100 -I enp0s3 , packet always goes out of enp0s3 > ping 1.1.1.100 -I enp0s8, packet always goes out of enp0s3 > >
I believe this use case will not work since the FIB lookup loses the original device binding (the -I argument). take a look at the FIB lookup argument and result: perf record -e fib:* perf script