Reference Guide

Table Of Contents
Figure 15 Message Factory Role
Message Composition and Type Hierarchy
All OpenFlow message instances are subclasses of the OpenflowMessage abstract class. Every
message includes an internal Header instance that encapsulates:
The protocol version
The message type
The message length (in bytes)
The transaction ID (XID)
In addition to the header, specific messages may include:
Data values, such as “port number”, “# bytes processed”, “metadata mask, “h/w address,
etc.
These values are represented by Java primitives, enumeration constants, or data types.
Other common structures, such as Ports, Matches, Instructions, Actions, etc.
These structure instances are all subclasses of the OpenflowStructure abstract class.
For each defined OpenFlow message type (see com.hp.of.lib.msg.MessageType) there are
corresponding concrete classes representing the immutable and mutable versions of the message.
For a given message type (denoted below as “Foo”) the following class relationships exist:
29