Hello,
We have two X710 network interfaces (physical functions) PF1 and PF2 and 
creating one virtual functions (VF) on each of them (say VF1 and VF2 
respectively).
We are creating a bond between the two VFs (VF1 and VF2 belonging to PF1 and 
PF2 respectively), in active-backup mode using EAL arguments and assigning a 
bond mac address.
Initially VF1 is the primary slave and VF2 is the backup.
We have been successful in using this bond interface to send and receive 
packets.

However, when we test for redundancy, we are running into a problem described 
as follows:
1. Initially the bond interface is able to send network packets using the 
primary slave.
2. The primary slave (VF1) is brought down by bringing down the physical 
functions (PF1) corresponding to the primary slave.
3. The backup VF (VF2) becomes the primary slave and the bond interface 
continues to transmit packets.
4. Some time later, the original primary slave (VF1) is re-enabled and the 
current slave (VF2) is brought down.
5. The primary slave for the bond interface changes back to the initial 
interface (VF1). However, at this point, the packet transmission stops.

Experiment Details:
1. DPDK 21.05 is used.
2. The physical functions are bound to i40e driver and the virtual functions 
are bound to the vfio-pci driver.
3. The VFs were not assigned a MAC address through the PF manually.
4. Trust mode was set to "On" for both the VFs.

A similar experiment performed on the Physical Function does not show this 
issue and the primary slave switches back and forth as the interfaces are 
disabled and re-enabled.

Is it possible to create a bond on Virtual Functions in the active-backup mode?

Thanks,
Utkarsh Pandey.

Reply via email to