Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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.

Note:

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.

Table 1: OpenFlow Versions Negotiated Between the Controller and a Junos OS Device 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

  • Neither 1.0 nor 1.3.1

  • Connection with Junos OS device is down

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.