I came across the patch for the i40e PMD that allows VF to set the MAC address even if the PF had already done so in https://mails.dpdk.org/archives/dev/2020-March/160631.html <https://urldefense.com/v3/__https://mails.dpdk.org/archives/dev/2020-March/160631.html__;!!JYsgTRAg6ZQ!dfFxEpVAzspiJP_FtoL7Uqk4LEkqFvvgp-_FlJ9zsPvyjhnnka0JM9_QdscYtStjkg$>
I tried backporting it to DPDK 18.11's i40e PMD and it fixes the issue of allowing the VF to set the MAC address. However, Linux bonding is still not working because the values don't seem to be updated at host level. Would appreciate it if anyone has any idea what other patches are needed for Linux bonding with VFs to work on the i40e PMD in DPDK18.11 in terms of patches to the PMD or firmware upgrades on the XL710 card? Or if Linux bonding can be supported at all with the i40e PMD with VFs? The kernel's i40e driver has the following known issue with Linux bonding with VFs (copied below https://github.com/dmarion/i40e/blob/master/README), but that seems to have been fixed with the 2.15.9 release, and the patch above seems to resolve the issue of setting the MAC address by the VF for the PMD, but looks like it's insufficient for it to work when backported to the DPDK18.11's i40e PMD. Linux bonding fails with Virtual Functions bound to an Intel(R) Ethernet Controller 700 series based device ------------------------------------------------------------------------ If you bind Virtual Functions (VFs) to an Intel(R) Ethernet Controller 700 series based device, the VF slaves may fail when they become the active slave. *If the MAC address of the VF is set by the PF (Physical Function) of the* *device, when you add a slave, or change the active-backup slave, Linux bonding* *tries to sync the backup slave's MAC address to the same MAC address as the* *active slave. Linux bonding will fail at this point. *This issue will not occur if the VF's MAC address is not set by the PF.