Welcome to 


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).


Project Facts

Project Creation Date: July 18th, 2013
Lifecycle State: Incubation
Type: Protocol
Primary Contact: Michal Rehak <michal.rehak@pantheon.tech>
Project Lead:  Michal Rehak <michal.rehak@pantheon.tech>
  • Daniel Bartos <daniel.bartos@pantheon.sk>
  • Michal Polkorab <michal.polkorab@gmail.com>
  • Michal Rehak <michal.rehak@pantheon.tech> IRC handle: michal_rehak
  • Jozef Bacigal <jozef.bacigal@pantheon.tech> IRC handle: jbacigal
IRC: freenode.net #opendaylight
Mailing List:  openflowjava-dev@lists.opendaylight.org
    Archives: mailing list archives
Meetings: See Community Meetings 
Repository: git clone https://git.opendaylight.org/gerrit/openflowjava
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
  • No labels