Question

Simple questions to get anyone started:

  1. I know I need a special Network Interface Card (nic) to do this. I am assuming it has to be the ones SolarFlare makes. What is the cheapest one I can get that will allow me to implement and test kernel bypass?

  2. It looks like they use OpenOnLoad as the network stack. Where can I find sample code and examples on how to make my networking application use OpenOnLoad? I am interested to know how easy or complex it is for my programs to make use of this technology.

Question born from this other question here: Networking with Kernel Bypass in Java

Was it helpful?

Solution

To use OpenOnLoad you need to change your environment, specifically your LD_LIBRARY_PATH so it loads their libraryies instead of the built in system ones. When you do this "normal" Network IO calls are redirected as required to use kernel bypass.

The whole point of this library is you can use it without changing your code, so there are no code samples.

Having used it in the past, I have found it either works very well, or you will run into some issue e.g. you are using the network in ways they didn't cater for, and it will fail. In the unlikely case you see the later, you have to change your code so it uses the network in a different way. (or wait for a fix)

To really test kernel bypass, you will want two network adapters and a low latency switch (or you can skip the switch) This is because if you have only one low latency network card, you will have a lot of trouble determining what difference it makes.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top