On 09/02/2024 12:40, Loftus, Ciara wrote:
Hi Maryam,

How do you want to continue with the patch, I think options we considered:

1. Fix 'use_cni' documentation (which we can backport to LTS) and
overload the argument for new purpose. This will enable new feature by
keeping backward compatibility. And requires new version of this patch.

2. If the 'use_cni' is completely broken in the 23.11 LTS, which means
there is no user or backward compatibility to worry about, we can merge
this patch and backport it to LTS.

3. Don't backport this fix to LTS, merge only to current release, which
means your new feature won't be available to some users as long as a few
years.


(1.) is most user friendly, but if 'use_cni' already broken in LTS we
can go with option (2.). What do you think?



btw, @Ciara, @Maryam, if (2.) is true, how we end up having a feature
('use_cni' dev_args) completely broken in an LTS release?
My understanding is that the use_cni implementation that is available in the 23.11 LTS is compatible with a particular version of the afxdp-plugins-for-kubernetes source. Maryam's change makes it compatible with the latest version. @Maryam can you confirm this?
If my understanding is correct then I think we should include the version/tag/commit-id of afxdp-plugins-for-kubernetes that the code is compatible with. Including backporting a patch to LTS to specify what version that code is comaptible with.


Yeah that's correct, the existing use_cni implementation would work with a particular version of the AF_XDP Device Plugin (with the limitation that the DPDK pod cannot request multiple interfaces from different device pools). From a deployment POV - I would consider this a broken behaviour. Non the less we can document it more explicitly.

The use_cni changes I'm making now will enable multi interface support (for a DPDK pod, keeping backward compatibility in mind). It will also still work with the older version of the AF_XDP device plugin (with the 1 interface limitation for the DPDK pod). I will document all of these in the next revision. 

In addition to the changes mentioned above, I'm also extending the AF_XDP PMD to support retrieving the xskmap FD from a pinned BPF map (A new feature in the AF_XDP Device Plugin).

All the above will be pushed in another revision of the patchset shortly (in addition to documentation changes). I'm just running tests and breaking down the patches into (hopefully) logical chunks.

And lastly there's one other issue that I'm trying to also investigate/resolve - which is the AF_XDP Device Plugin integration under AF_XDP PMD doesn't support busy polling. That's probably another feature to add. >>> this might be a separate patch