SDN Controller Programming Guide

23
This following figure illustrates this:
Figure 14 OpenFlow Controller
Message Library
The Message Library is a Java implementation of the OpenFlow specification, providing facilities
for encoding and decoding OpenFlow messages from and to Java rich data types.
Design Goals
The following are the overall design goals of the library:
To span all protocol versions
However, actively supporting just 1.0.0 and 1.3.1
To be extensible
Easily accommodating future versions
To provide an elegant, yet simple, API for dealing with OpenFlow messages
To reduce the burden on application developers
Insulating developers from differences across protocol versions, as much as possible
To expose the semantics but hide the syntax details
Developers will not be required to encode and decode bitmasks, calculate message
lengths, insert padding, etc.
To be robust and type-safe
Working with Java enumerations and types
Design Choices
Some specific design choices were made to establish the underlying principles of the
implementation, to help meet the goals specified above.