Understanding the OpenFlow Version Negotiation Between the Controller and Devices Running Junos OS
Upon establishing an initial connection, an OpenFlow controller and a Juniper Networks Junos OS device negotiate the OpenFlow version to be used. In general, the OpenFlow controller must support at least one of the versions run on the Junos OS device. Otherwise, a connection is not established.
The Junos OS implementation of OpenFlow 1.3.1 does not support the OFPHET_VERSIONBITMAP Hello message element.
Table 1 outlines the OpenFlow versions run by the Junos OS device and controller, the negotiated version, and the numerical value associated with each version.
OpenFlow Version Run by Junos OS Device |
OpenFlow Version Supported by Controller |
Negotiated Version |
Numerical Value Associated with Negotiated OpenFlow Version |
---|---|---|---|
1.0 |
1.0 |
1.0 |
1 |
1.3.1 |
1.3.1 |
1.3.1 |
4 |
1.0 and 1.3.1 |
1.0 and 1.3.1 |
1.3.1 |
4 |
1.0 and 1.3.1 |
1.0 |
1.0 |
1 |
1.0 and 1.3.1 |
1.3.1 |
1.3.1 |
4 |
1.0 and/or 1.3.1 |
|
None; no connection |
0 |
To determine the negotiated version running on a Junos OS device,
you enter the show openflow controller
command. The output of this command includes a Negotiated version
field and a numerical value that
represents the negotiated version number. Use Table 1 to correlate the numerical values shown in this field with
the negotiated versions.