[ovs-dev] eBPF and OVS

Ian Stokes ian.stokes at intel.com
Wed Jun 20 09:38:51 UTC 2018

On 6/14/2018 11:31 PM, William Tu wrote:
> On Thu, Jun 14, 2018 at 3:25 PM, Ben Pfaff <blp at ovn.org> wrote:
>> On Mon, Jun 11, 2018 at 10:32:52AM +0000, Stokes, Ian wrote:
>>> Hi all,
>>> The recent DPDK 18.05 release provides BPF functionality for DPDK devices.
>>> The BPF Library provides the ability to load and execute Enhanced Berkeley Packet Filters (eBPF) within user-space DPDK applications. It also introduces a basic framework to load/unload BPF-based filters on Eth devices (right now only via SW RX/TX callbacks). It also adds a dependency on libelf.
>>> I'm just wondering if anyone is currently looking at BPF in OVS (either kernel or userspace). Specifically, if BPF will be supported in a future OVS release then is there a need to coordinate on the approach of how it is enabled?
> Yes, we are actively working on eBPF datapath for the same features in
> OVS kernel datapath.

Thanks for the response William,

> Hopefully we can get to a stable state and send an RFC patch next month.

Great, would be interested to see this.

> Does BPF functionality for DPDK support eBPF map and helper functions?

I dont think it supports map, from the DPDK docs it supports the 
following functionality

Create a new BPF execution context and load user provided eBPF code into it.
Destroy an BPF execution context and its runtime structures and free the 
associated memory.
Execute eBPF bytecode associated with provided input parameter.
Provide information about natively compiled code for given BPF context.
Load BPF program from the ELF file and install callback to execute it on 
given ethdev port/queue.

It's missing the following currently:

JIT for non X86_64 platforms.
tail-pointer call.
external function calls for 32-bit platforms.

If these are required then it will need to be implemented in DPDK to 
allign for OVS I would think. Do you see anything in this list (besides 
mapping) that would be required?

> Regards,
> William

More information about the dev mailing list