OpenFlow Protocol Library is component in OpenDaylight, that mediates communication between OpenDaylight controller and hardware devices supporting OpenFlow protocol. Primary goal is to provide user (or upper layers of OpenDaylight) communication channel, that can be used for managing network hardware devices.
Key objectives
Simultaneous support of multiple versions of OpenFlow wire-protocol
Extensibility to support later OpenFlow versions and OpenFlow extensions
Immutable transfer objects generation
Scalable non-blocking implementation
Pipeline processing
Scatter buffer
TLS support
Common principles
Serialization (message coding / decoding) logic is separated from implementation of transfer objects.
All transfer objects returned from this library are immutable.
Input/Output processing is done via processing pipeline, which could be modified in runtime based on session characteristics (e.g. support of multiple binary protocol versions).