lac-dcc/honey-potion

[Long Term Issue] - eBPF Network-side Developments

Closed this issue · 7 comments

Dwctor commented

I will be setting Long Term Issues in the project to leave as threads of the next developments and ideas on new features that we should implement.

This issue refers to the Network-side developments. More specifically, we have many benchmarks in /benchmarks/programs that use functions, methods and calls specific to Network-based tracing with eBPF.

This issue will track what are the newest additions to those functions/methods and which of them are planned or not.

Dwctor commented

Update: Currently we are working in translating Elixir to C in a way that doesn't require so much manual work per function to make it work. With that ready, most likely, we will be able to achieve most if not all of the benchmarks! However, these developments are currently being handled outside the master branch as they are incomplete for now.

As it stands Honey Potion is capable of translating both the TrafficCount and DropUdp benchmarks. Given that this adds network capabilities to Honey Potion, although limited for now, I find that this Issue can be closed. Adding new features and capabilities to the network functionality of Honey Potion should be done through new issues individual to the new features.

Hi @Dwctor I think one of the most important use cases of eBPF is to enable the acceleration of network communication between different programs running on the same network.
What would it take to have this functionally in Honey Potion?

Hi @sleipnir, can you point out a C program that does that, so that we could see how we would implement it in Honey Potion?

@pronesto I'm not an expert in C but there are some examples available on the internet using XDP. For example here https://github.com/cyralinc/os-eBPF/tree/develop/sockredir
The article can be read here https://cyral.com/blog/how-to-ebpf-accelerating-cloud-native/

Oh, that's from Cyral! They sponsor a scholarship in our lab. The programs are relatively straightforward. I think it should be possible to code them in Honey Potion. If you want to give them a try, we'd be happy to help with Elixir.

Yes, I know Cyral's relationship with your project. Your group and I once got together to discuss a possible synergy between the Honey project and the eigr community projects, specifically the [Spawn](https://github.com/ eigr/spawn). At this meeting I presented the use case that gave rise to my previous comment.
We can discuss these issues via a public or private channel on the eigr Discord server if you prefer.