l3af-project/l3afd

Eliminating the need for user space program.

dushyantbehl opened this issue · 5 comments

Hi,

I have been evaluating L3AFD for some project work and thought of a new feature that might be useful.



I developed a tool that uses BTF info in the ebpf binary to generate map access APIs. It could potentially replace the need for user-space programs for ebpf modules that only need basic CRUD functionality on maps. Plus, with BTF info, the tool can also handle data manipulation for key and value which have complex types like structs or unions.

Such a capability would eliminate the need for a separate user-space program. I've already tested it on a version of the rate-limiter NF in L3AF's ebpf repo.

I was wondering if such a tool will of interest to L3AF community? I can provide more details if needed in a meeting. Please let me know.

Hi @dushyantbehl,

Thank you for your evaluation and suggestion of the new solution. We are working on the R2 version of L3AFD, we have a story in our R2 version to improve the loading and chaining of ebpf programs. Here is our proposal. This will work with both Windows and Linux operating systems.

Thanks!

Hi @sanfern

Thanks, I have looked at the proposal. I think what i was suggesting could bring some additional features to l3afd. The tool that I have essentially allows to do read, write, delete on ebpf maps without needing a userspace program so I was wondering if this could be integrated with the l3afd loader for programs which do not come with userspace programs.
If l3afd was able to also load, run and interact with ebpf programs which did not have userspace code then that might expand the applicability horizon of l3afd.
Let me know if this sounds useful, if there is some confusion can we talk over a call.

Hi @dushyantbehl,

The tool is very useful. Thank you for sharing it. We intend to implement similar functionality in L3AFD R2 when it is released. We are aiming to remove the dependency on user programs. L3afd will manage bpf prog maps, update config maps and initialise metrics maps. All functionalities will be provided from l3afd. Any eBPF programs that use user code to achieve these capabilities are no longer needed, because l3afd will handle it.

If you require further information, we can discuss it next week. Join our Slack channel.

Thanks @sanfern I have joined the slack and will ping.

Thanks @sanfern have joined slack.