Data-model core APIs and data structures | The data-model core APIs and data structures present a unified data-model of a dataplane |
 OpenFlow v1.x (1.0, 1.2 and 1.3.2) data-model core APIs and data structures | OpenFlow v1.x (1.0, 1.2 and 1.3.2) data-model core APIs and data structures used both internally and for data exchanging (State managment API) with the library user |
 Generalized monitoring framework data-model core APIs and data structures | Generalized monitoring framework data-model core APIs and data structures |
 Extensible OpenFlow software matching algorithm APIs | APIs to extend ROFL-pipeline with new (software/hybrid) OpenFlow table matching algorithms |
  Extensible OpenFlow v1.x (1.0, 1.2 and 1.3.2) software matching algorithm API | API to extend ROFL-pipeline with new (software/hybrid) OpenFlow v1.x (1.0, 1.2 and 1.3.2) table matching algorithms |
Software Packet Processing (pp) APIs | APIs used to process packets in software pipelines (software and hybrid software/hardware switches) |
 Packet Mangling API | Packet Mangling API is in charge of packet manipulation and must be implemented by the library users |
State managment API | Mananagement of the system's/device state (physical switch), including logical switches and ports |
 OpenFlow asynchronous events and hooks APIs | APIs that library consumes to communicate asynchronous events (as well as some other hooks) to the endpoint or an intermediate layer; must be implemented by the library users |
  OpenFlow v1.x events and hooks APIs | OpenFlow versions 1.0, 1.2 and 1.3.2 asynchronous events and hooks APIs |
Platform APIs | Platform APIs is a group of APIs which are used by the library but its implementation is platform specific |
 Locking API | Locking (mutex, rwlock) API definition, that must be implemented by the library users |
 Atomic Operations API | Atomic operations (atomic add, inc...) API definition, that must be implemented by the library users |
 Memory API | Memory management API definition (malloc, free..), that must be implemented by the library users |
 Packet Mangling API | Packet Mangling API is in charge of packet manipulation and must be implemented by the library users |
 System Time API | System time API is in charge of providing the pipeline with the time, used for statistics and flow expirations |