Stateful packet processing with eBPF
an implementation of OpenState interface
Software Defined Networks (SDNs) usually involve programmable switches with limited autonomy of decision, that heavily rely on the instructions of their controller to handle “exceptions” and to adapt to traffic evolution. In an attempt to bring back some of the dataplane logic from the controller to the programmable switches, the OpenState abstraction layer has been designed, to enable efficient stateful packet processing through programmable actions occurring at the switch level.
The first part of this talk in an introduction to OpenState and includes a description of the layer as well as some example use cases. Then the implementation prototypes of OpenState realized during the project will be presented. One, in particular, will get more focus: because eBPF (extended version of Berkeley Packet Filter) can be stateful and has been conceived to reach high performances for inline packet filtering and processing, we found it to be an excellent target for OpenState.
As for the background: the work around OpenState (and its extended version, Open Packet Processor) has been achieved in the context of the BEBA research project (Horizon 2020), that tackles dataplane programmability for SDNs. Started in January 2015 and closing in March 2017, this project has entered its final stage, mostly centered on functional and performance tests for the validation of the developed prototypes.