[ovs-dev,v2,2/2] OpenFlow: Enable OpenFlow 1.5 by default.
diff mbox series

Message ID 20190609232342.14405-3-blp@ovn.org
State New
Headers show
Series
  • Enable OpenFlow 1.5 by default
Related show

Commit Message

Ben Pfaff June 9, 2019, 11:23 p.m. UTC
Open vSwitch now supports all OpenFlow 1.5 required features, so enable
it by default.

Signed-off-by: Ben Pfaff <blp@ovn.org>
---
 Documentation/faq/openflow.rst                | 27 +++++++++----------
 .../group-selection-method-property.txt       | 16 +++++------
 NEWS                                          |  3 +++
 include/openvswitch/ofp-protocol.h            |  5 ++--
 lib/ofp-version-opt.h                         |  2 +-
 lib/ofp-version.man                           |  7 +----
 tests/test-vconn.c                            | 14 +++++-----
 vswitchd/vswitch.xml                          | 13 +++------
 8 files changed, 39 insertions(+), 48 deletions(-)

Comments

Numan Siddique June 17, 2019, 5:03 p.m. UTC | #1
On Mon, Jun 10, 2019 at 4:55 AM Ben Pfaff <blp@ovn.org> wrote:

> Open vSwitch now supports all OpenFlow 1.5 required features, so enable
> it by default.
>
> Signed-off-by: Ben Pfaff <blp@ovn.org>
>

Acked-by: Numan Siddique <nusiddiq@redhat.com>

Thanks
Numan


> ---
>  Documentation/faq/openflow.rst                | 27 +++++++++----------
>  .../group-selection-method-property.txt       | 16 +++++------
>  NEWS                                          |  3 +++
>  include/openvswitch/ofp-protocol.h            |  5 ++--
>  lib/ofp-version-opt.h                         |  2 +-
>  lib/ofp-version.man                           |  7 +----
>  tests/test-vconn.c                            | 14 +++++-----
>  vswitchd/vswitch.xml                          | 13 +++------
>  8 files changed, 39 insertions(+), 48 deletions(-)
>
> diff --git a/Documentation/faq/openflow.rst
> b/Documentation/faq/openflow.rst
> index 561d793a6692..8c94891703a8 100644
> --- a/Documentation/faq/openflow.rst
> +++ b/Documentation/faq/openflow.rst
> @@ -30,17 +30,18 @@ Q: What versions of OpenFlow does Open vSwitch support?
>      A: The following table lists the versions of OpenFlow supported by
> each
>      version of Open vSwitch:
>
> -    =============== ===== ===== ===== ===== ===== =====
> -    Open vSwitch    OF1.0 OF1.1 OF1.2 OF1.3 OF1.4 OF1.5
> -    =============== ===== ===== ===== ===== ===== =====
> -    1.9 and earlier  yes   ---   ---   ---   ---   ---
> -    1.10, 1.11       yes   ---   (*)   (*)   ---   ---
> -    2.0, 2.1         yes   (*)   (*)   (*)   ---   ---
> -    2.2              yes   (*)   (*)   (*)   (%)   (*)
> -    2.3, 2.4         yes   yes   yes   yes   (*)   (*)
> -    2.5, 2.6, 2.7    yes   yes   yes   yes   (*)   (*)
> -    2.8              yes   yes   yes   yes   yes   (*)
> -    =============== ===== ===== ===== ===== ===== =====
> +    ===================== ===== ===== ===== ===== ===== =====
> +    Open vSwitch          OF1.0 OF1.1 OF1.2 OF1.3 OF1.4 OF1.5
> +    ===================== ===== ===== ===== ===== ===== =====
> +    1.9 and earlier        yes   ---   ---   ---   ---   ---
> +    1.10, 1.11             yes   ---   (*)   (*)   ---   ---
> +    2.0, 2.1               yes   (*)   (*)   (*)   ---   ---
> +    2.2                    yes   (*)   (*)   (*)   (%)   (*)
> +    2.3, 2.4               yes   yes   yes   yes   (*)   (*)
> +    2.5, 2.6, 2.7          yes   yes   yes   yes   (*)   (*)
> +    2.8, 2.9, 2.10, 2.11   yes   yes   yes   yes   yes   (*)
> +    2.12                   yes   yes   yes   yes   yes   yes
> +    ===================== ===== ===== ===== ===== ===== =====
>
>      --- Not supported.
>      yes Supported and enabled by default
> @@ -73,8 +74,6 @@ Q: What versions of OpenFlow does Open vSwitch support?
>      could cause crashes.  We don't recommend enabling it.)
>
>      :doc:`/topics/openflow` tracks support for OpenFlow 1.1 and later
> features.
> -    When support for OpenFlow 1.5 is solidly implemented, Open vSwitch
> will
> -    enable it by default.
>
>  Q: Does Open vSwitch support MPLS?
>
> @@ -476,7 +475,7 @@ Q: How does OVS divide flows among buckets in an
> OpenFlow "select" group?
>      different hash function, using a Netronome extension to the OpenFlow
> 1.5+
>      group_mod message.  For more information, see
>      Documentation/group-selection-method-property.txt in the Open vSwitch
> -    source tree.  (OpenFlow 1.5 support in Open vSwitch is still
> experimental.)
> +    source tree.
>
>  Q: An OpenFlow "select" group isn't dividing packets evenly among the
> buckets.
>
> diff --git a/Documentation/group-selection-method-property.txt
> b/Documentation/group-selection-method-property.txt
> index 29e8249af6ac..0b13da908a4e 100644
> --- a/Documentation/group-selection-method-property.txt
> +++ b/Documentation/group-selection-method-property.txt
> @@ -18,7 +18,7 @@ Contents
>  1. Introduction
>  ===============
>
> -This text describes a Netronome Extension to (draft) OpenFlow 1.5 that
> allows a
> +This text describes a Netronome Extension to OpenFlow 1.5 that allows a
>  controller to provide more information on the selection method for select
>  groups.  This proposal is in the form of an enhanced select group type.
>
> @@ -30,7 +30,7 @@ the OpenFlow specification.
>  ===============
>
>  A new Netronome group experimenter property is defined which provides
> -compatibility with the group mod message defined in draft Open Flow 1.5
> +compatibility with the group mod message defined in Open Flow 1.5
>  (also known as ONF EXT-350) and allows parameters for the selection
>  method of select groups to be passed by the controller. In particular it
>  allows controllers to:
> @@ -60,14 +60,14 @@ enum ntr_group_mod_subtype {
>  };
>
>
> -Modifications to the group table from the controller may be done with a
> -OFPT_GROUP_MOD message described (draft) Open Flow 1.5.  Group Entry
> -Message. Of relevance here is that (draft) Open Flow 1.5 group messages
> -have properties.
> +Modifications to the group table from the controller may be done with
> +a OFPT_GROUP_MOD message described Open Flow 1.5.  Group Entry
> +Message. Of relevance here is that Open Flow 1.5 group messages have
> +properties.
>
>  This proposal is defined in terms of an implementation of struct
> -ofp_group_prop_experimenter which is described in (draft) Open Flow 1.5.
> -The implementation is:
> +ofp_group_prop_experimenter which is described in Open Flow 1.5.  The
> +implementation is:
>
>  struct ntr_group_prop_selection_method {
>      ovs_be16 type;                  /* OFPGPT_EXPERIMENTER. */
> diff --git a/NEWS b/NEWS
> index 6f91a4d6950e..fd3eb05c80f9 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -6,6 +6,9 @@ Post-v2.11.0
>       * Add support for vHost Post-copy Live Migration (experimental).
>       * OVS validated with DPDK 18.11.1 which is recommended to be used.
>     - OpenFlow:
> +     * All features required by OpenFlow 1.5 are now implemented, so
> +       ovs-vswitchd now enables OpenFlow 1.5 by default (in addition to
> +       OpenFlow 1.0 to 1.4).
>       * Removed support for OpenFlow 1.6 (draft), which ONF abandoned.
>       * New action "check_pkt_larger".
>       * Support for OpenFlow 1.5 "meter" action.
> diff --git a/include/openvswitch/ofp-protocol.h
> b/include/openvswitch/ofp-protocol.h
> index 7873fdd12853..741ddc458bd2 100644
> --- a/include/openvswitch/ofp-protocol.h
> +++ b/include/openvswitch/ofp-protocol.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2008-2017 Nicira, Inc.
> + * Copyright (c) 2008-2017, 2019 Nicira, Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -151,7 +151,8 @@ enum ofputil_protocol
> ofputil_protocols_from_version_bitmap(uint32_t bitmap);
>                                      (1u << OFP11_VERSION) | \
>                                      (1u << OFP12_VERSION) | \
>                                      (1u << OFP13_VERSION) | \
> -                                    (1u << OFP14_VERSION))
> +                                    (1u << OFP14_VERSION) | \
> +                                    (1u << OFP15_VERSION))
>  #define OFPUTIL_DEFAULT_VERSIONS OFPUTIL_SUPPORTED_VERSIONS
>
>  enum ofputil_protocol ofputil_protocols_from_string(const char *s);
> diff --git a/lib/ofp-version-opt.h b/lib/ofp-version-opt.h
> index 525fd8ac41b9..f50f400d3293 100644
> --- a/lib/ofp-version-opt.h
> +++ b/lib/ofp-version-opt.h
> @@ -10,7 +10,7 @@
>
>  #define OFP_VERSION_OPTION_HANDLERS                             \
>          case 'V':                                               \
> -            ovs_print_version(OFP10_VERSION, OFP14_VERSION);    \
> +            ovs_print_version(OFP10_VERSION, OFP15_VERSION);    \
>              exit(EXIT_SUCCESS);                                 \
>                                                                  \
>          case 'O':                                               \
> diff --git a/lib/ofp-version.man b/lib/ofp-version.man
> index 0e5391db72ba..301eb91152b6 100644
> --- a/lib/ofp-version.man
> +++ b/lib/ofp-version.man
> @@ -27,12 +27,7 @@ by default:
>  .
>  .IP \(bu
>  \fBOpenFlow14\fR, for OpenFlow 1.4.
> -.RE
> -.
> -.IP
> -Support for the following protocol versions is provided for testing
> -and development purposes.  They are not enabled by default:
>  .
> -.RS
>  .IP \(bu
>  \fBOpenFlow15\fR, for OpenFlow 1.5.
> +.RE
> diff --git a/tests/test-vconn.c b/tests/test-vconn.c
> index 73ef9a9587ab..fc8ce4a2c0e1 100644
> --- a/tests/test-vconn.c
> +++ b/tests/test-vconn.c
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2017 Nicira, Inc.
> + * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2017, 2019 Nicira,
> Inc.
>   *
>   * Licensed under the Apache License, Version 2.0 (the "License");
>   * you may not use this file except in compliance with the License.
> @@ -239,7 +239,7 @@ test_read_hello(struct ovs_cmdl_context *ctx)
>         if (retval == sizeof hello) {
>             enum ofpraw raw;
>
> -           CHECK(hello.version, OFP14_VERSION);
> +           CHECK(hello.version, OFP15_VERSION);
>             CHECK(ofpraw_decode_partial(&raw, &hello, sizeof hello), 0);
>             CHECK(raw, OFPRAW_OFPT_HELLO);
>             CHECK(ntohs(hello.length), sizeof hello);
> @@ -312,7 +312,7 @@ test_send_hello(const char *type, const void *out,
> size_t out_size,
>             if (retval == sizeof hello) {
>                 enum ofpraw raw;
>
> -               CHECK(hello.version, OFP14_VERSION);
> +               CHECK(hello.version, OFP15_VERSION);
>                 CHECK(ofpraw_decode_partial(&raw, &hello, sizeof hello),
> 0);
>                 CHECK(raw, OFPRAW_OFPT_HELLO);
>                 CHECK(ntohs(hello.length), sizeof hello);
> @@ -363,7 +363,7 @@ test_send_plain_hello(struct ovs_cmdl_context *ctx)
>      const char *type = ctx->argv[1];
>      struct ofpbuf *hello;
>
> -    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP14_VERSION,
> +    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP15_VERSION,
>                               htonl(0x12345678), 0);
>      test_send_hello(type, hello->data, hello->size, 0);
>      ofpbuf_delete(hello);
> @@ -379,7 +379,7 @@ test_send_long_hello(struct ovs_cmdl_context *ctx)
>      struct ofpbuf *hello;
>      enum { EXTRA_BYTES = 8 };
>
> -    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP14_VERSION,
> +    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP15_VERSION,
>                               htonl(0x12345678), EXTRA_BYTES);
>      ofpbuf_put_zeros(hello, EXTRA_BYTES);
>      ofpmsg_update_length(hello);
> @@ -395,7 +395,7 @@ test_send_echo_hello(struct ovs_cmdl_context *ctx)
>      const char *type = ctx->argv[1];
>      struct ofpbuf *echo;
>
> -    echo = ofpraw_alloc_xid(OFPRAW_OFPT_ECHO_REQUEST, OFP14_VERSION,
> +    echo = ofpraw_alloc_xid(OFPRAW_OFPT_ECHO_REQUEST, OFP15_VERSION,
>                               htonl(0x12345678), 0);
>      test_send_hello(type, echo->data, echo->size, EPROTO);
>      ofpbuf_delete(echo);
> @@ -421,7 +421,7 @@ test_send_invalid_version_hello(struct
> ovs_cmdl_context *ctx)
>      const char *type = ctx->argv[1];
>      struct ofpbuf *hello;
>
> -    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP14_VERSION,
> +    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP15_VERSION,
>                               htonl(0x12345678), 0);
>      ((struct ofp_header *) hello->data)->version = 0;
>      test_send_hello(type, hello->data, hello->size, EPROTO);
> diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
> index 89c06a1b7877..33d654f27bb2 100644
> --- a/vswitchd/vswitch.xml
> +++ b/vswitchd/vswitch.xml
> @@ -1264,16 +1264,9 @@
>        </column>
>
>        <column name="protocols">
> -        <p>
> -          List of OpenFlow protocols that may be used when negotiating
> -          a connection with a controller.  OpenFlow 1.0, 1.1, 1.2, 1.3,
> and
> -          1.4 are enabled by default if this column is empty.
> -        </p>
> -
> -        <p>
> -          OpenFlow 1.5 is not enabled by default because its
> -          implementations is missing features.
> -        </p>
> +        List of OpenFlow protocols that may be used when negotiating a
> +        connection with a controller.  OpenFlow 1.0, 1.1, 1.2, 1.3, 1.4,
> and
> +        1.5 are enabled by default if this column is empty.
>        </column>
>      </group>
>
> --
> 2.20.1
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Ben Pfaff June 20, 2019, 5:36 p.m. UTC | #2
On Mon, Jun 17, 2019 at 10:33:02PM +0530, Numan Siddique wrote:
> On Mon, Jun 10, 2019 at 4:55 AM Ben Pfaff <blp@ovn.org> wrote:
> 
> > Open vSwitch now supports all OpenFlow 1.5 required features, so enable
> > it by default.
> >
> > Signed-off-by: Ben Pfaff <blp@ovn.org>
> >
> 
> Acked-by: Numan Siddique <nusiddiq@redhat.com>

Thanks!  I applied this series to master.

Patch
diff mbox series

diff --git a/Documentation/faq/openflow.rst b/Documentation/faq/openflow.rst
index 561d793a6692..8c94891703a8 100644
--- a/Documentation/faq/openflow.rst
+++ b/Documentation/faq/openflow.rst
@@ -30,17 +30,18 @@  Q: What versions of OpenFlow does Open vSwitch support?
     A: The following table lists the versions of OpenFlow supported by each
     version of Open vSwitch:
 
-    =============== ===== ===== ===== ===== ===== =====
-    Open vSwitch    OF1.0 OF1.1 OF1.2 OF1.3 OF1.4 OF1.5
-    =============== ===== ===== ===== ===== ===== =====
-    1.9 and earlier  yes   ---   ---   ---   ---   ---
-    1.10, 1.11       yes   ---   (*)   (*)   ---   ---
-    2.0, 2.1         yes   (*)   (*)   (*)   ---   ---
-    2.2              yes   (*)   (*)   (*)   (%)   (*)
-    2.3, 2.4         yes   yes   yes   yes   (*)   (*)
-    2.5, 2.6, 2.7    yes   yes   yes   yes   (*)   (*)
-    2.8              yes   yes   yes   yes   yes   (*)
-    =============== ===== ===== ===== ===== ===== =====
+    ===================== ===== ===== ===== ===== ===== =====
+    Open vSwitch          OF1.0 OF1.1 OF1.2 OF1.3 OF1.4 OF1.5
+    ===================== ===== ===== ===== ===== ===== =====
+    1.9 and earlier        yes   ---   ---   ---   ---   ---
+    1.10, 1.11             yes   ---   (*)   (*)   ---   ---
+    2.0, 2.1               yes   (*)   (*)   (*)   ---   ---
+    2.2                    yes   (*)   (*)   (*)   (%)   (*)
+    2.3, 2.4               yes   yes   yes   yes   (*)   (*)
+    2.5, 2.6, 2.7          yes   yes   yes   yes   (*)   (*)
+    2.8, 2.9, 2.10, 2.11   yes   yes   yes   yes   yes   (*)
+    2.12                   yes   yes   yes   yes   yes   yes
+    ===================== ===== ===== ===== ===== ===== =====
 
     --- Not supported.
     yes Supported and enabled by default
@@ -73,8 +74,6 @@  Q: What versions of OpenFlow does Open vSwitch support?
     could cause crashes.  We don't recommend enabling it.)
 
     :doc:`/topics/openflow` tracks support for OpenFlow 1.1 and later features.
-    When support for OpenFlow 1.5 is solidly implemented, Open vSwitch will
-    enable it by default.
 
 Q: Does Open vSwitch support MPLS?
 
@@ -476,7 +475,7 @@  Q: How does OVS divide flows among buckets in an OpenFlow "select" group?
     different hash function, using a Netronome extension to the OpenFlow 1.5+
     group_mod message.  For more information, see
     Documentation/group-selection-method-property.txt in the Open vSwitch
-    source tree.  (OpenFlow 1.5 support in Open vSwitch is still experimental.)
+    source tree.
 
 Q: An OpenFlow "select" group isn't dividing packets evenly among the buckets.
 
diff --git a/Documentation/group-selection-method-property.txt b/Documentation/group-selection-method-property.txt
index 29e8249af6ac..0b13da908a4e 100644
--- a/Documentation/group-selection-method-property.txt
+++ b/Documentation/group-selection-method-property.txt
@@ -18,7 +18,7 @@  Contents
 1. Introduction
 ===============
 
-This text describes a Netronome Extension to (draft) OpenFlow 1.5 that allows a
+This text describes a Netronome Extension to OpenFlow 1.5 that allows a
 controller to provide more information on the selection method for select
 groups.  This proposal is in the form of an enhanced select group type.
 
@@ -30,7 +30,7 @@  the OpenFlow specification.
 ===============
 
 A new Netronome group experimenter property is defined which provides
-compatibility with the group mod message defined in draft Open Flow 1.5
+compatibility with the group mod message defined in Open Flow 1.5
 (also known as ONF EXT-350) and allows parameters for the selection
 method of select groups to be passed by the controller. In particular it
 allows controllers to:
@@ -60,14 +60,14 @@  enum ntr_group_mod_subtype {
 };
 
 
-Modifications to the group table from the controller may be done with a
-OFPT_GROUP_MOD message described (draft) Open Flow 1.5.  Group Entry
-Message. Of relevance here is that (draft) Open Flow 1.5 group messages
-have properties.
+Modifications to the group table from the controller may be done with
+a OFPT_GROUP_MOD message described Open Flow 1.5.  Group Entry
+Message. Of relevance here is that Open Flow 1.5 group messages have
+properties.
 
 This proposal is defined in terms of an implementation of struct
-ofp_group_prop_experimenter which is described in (draft) Open Flow 1.5.
-The implementation is:
+ofp_group_prop_experimenter which is described in Open Flow 1.5.  The
+implementation is:
 
 struct ntr_group_prop_selection_method {
     ovs_be16 type;                  /* OFPGPT_EXPERIMENTER. */
diff --git a/NEWS b/NEWS
index 6f91a4d6950e..fd3eb05c80f9 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,9 @@  Post-v2.11.0
      * Add support for vHost Post-copy Live Migration (experimental).
      * OVS validated with DPDK 18.11.1 which is recommended to be used.
    - OpenFlow:
+     * All features required by OpenFlow 1.5 are now implemented, so
+       ovs-vswitchd now enables OpenFlow 1.5 by default (in addition to
+       OpenFlow 1.0 to 1.4).
      * Removed support for OpenFlow 1.6 (draft), which ONF abandoned.
      * New action "check_pkt_larger".
      * Support for OpenFlow 1.5 "meter" action.
diff --git a/include/openvswitch/ofp-protocol.h b/include/openvswitch/ofp-protocol.h
index 7873fdd12853..741ddc458bd2 100644
--- a/include/openvswitch/ofp-protocol.h
+++ b/include/openvswitch/ofp-protocol.h
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2008-2017 Nicira, Inc.
+ * Copyright (c) 2008-2017, 2019 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -151,7 +151,8 @@  enum ofputil_protocol ofputil_protocols_from_version_bitmap(uint32_t bitmap);
                                     (1u << OFP11_VERSION) | \
                                     (1u << OFP12_VERSION) | \
                                     (1u << OFP13_VERSION) | \
-                                    (1u << OFP14_VERSION))
+                                    (1u << OFP14_VERSION) | \
+                                    (1u << OFP15_VERSION))
 #define OFPUTIL_DEFAULT_VERSIONS OFPUTIL_SUPPORTED_VERSIONS
 
 enum ofputil_protocol ofputil_protocols_from_string(const char *s);
diff --git a/lib/ofp-version-opt.h b/lib/ofp-version-opt.h
index 525fd8ac41b9..f50f400d3293 100644
--- a/lib/ofp-version-opt.h
+++ b/lib/ofp-version-opt.h
@@ -10,7 +10,7 @@ 
 
 #define OFP_VERSION_OPTION_HANDLERS                             \
         case 'V':                                               \
-            ovs_print_version(OFP10_VERSION, OFP14_VERSION);    \
+            ovs_print_version(OFP10_VERSION, OFP15_VERSION);    \
             exit(EXIT_SUCCESS);                                 \
                                                                 \
         case 'O':                                               \
diff --git a/lib/ofp-version.man b/lib/ofp-version.man
index 0e5391db72ba..301eb91152b6 100644
--- a/lib/ofp-version.man
+++ b/lib/ofp-version.man
@@ -27,12 +27,7 @@  by default:
 .
 .IP \(bu
 \fBOpenFlow14\fR, for OpenFlow 1.4.
-.RE
-.
-.IP
-Support for the following protocol versions is provided for testing
-and development purposes.  They are not enabled by default:
 .
-.RS
 .IP \(bu
 \fBOpenFlow15\fR, for OpenFlow 1.5.
+.RE
diff --git a/tests/test-vconn.c b/tests/test-vconn.c
index 73ef9a9587ab..fc8ce4a2c0e1 100644
--- a/tests/test-vconn.c
+++ b/tests/test-vconn.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2017 Nicira, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2017, 2019 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -239,7 +239,7 @@  test_read_hello(struct ovs_cmdl_context *ctx)
        if (retval == sizeof hello) {
            enum ofpraw raw;
 
-           CHECK(hello.version, OFP14_VERSION);
+           CHECK(hello.version, OFP15_VERSION);
            CHECK(ofpraw_decode_partial(&raw, &hello, sizeof hello), 0);
            CHECK(raw, OFPRAW_OFPT_HELLO);
            CHECK(ntohs(hello.length), sizeof hello);
@@ -312,7 +312,7 @@  test_send_hello(const char *type, const void *out, size_t out_size,
            if (retval == sizeof hello) {
                enum ofpraw raw;
 
-               CHECK(hello.version, OFP14_VERSION);
+               CHECK(hello.version, OFP15_VERSION);
                CHECK(ofpraw_decode_partial(&raw, &hello, sizeof hello), 0);
                CHECK(raw, OFPRAW_OFPT_HELLO);
                CHECK(ntohs(hello.length), sizeof hello);
@@ -363,7 +363,7 @@  test_send_plain_hello(struct ovs_cmdl_context *ctx)
     const char *type = ctx->argv[1];
     struct ofpbuf *hello;
 
-    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP14_VERSION,
+    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP15_VERSION,
                              htonl(0x12345678), 0);
     test_send_hello(type, hello->data, hello->size, 0);
     ofpbuf_delete(hello);
@@ -379,7 +379,7 @@  test_send_long_hello(struct ovs_cmdl_context *ctx)
     struct ofpbuf *hello;
     enum { EXTRA_BYTES = 8 };
 
-    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP14_VERSION,
+    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP15_VERSION,
                              htonl(0x12345678), EXTRA_BYTES);
     ofpbuf_put_zeros(hello, EXTRA_BYTES);
     ofpmsg_update_length(hello);
@@ -395,7 +395,7 @@  test_send_echo_hello(struct ovs_cmdl_context *ctx)
     const char *type = ctx->argv[1];
     struct ofpbuf *echo;
 
-    echo = ofpraw_alloc_xid(OFPRAW_OFPT_ECHO_REQUEST, OFP14_VERSION,
+    echo = ofpraw_alloc_xid(OFPRAW_OFPT_ECHO_REQUEST, OFP15_VERSION,
                              htonl(0x12345678), 0);
     test_send_hello(type, echo->data, echo->size, EPROTO);
     ofpbuf_delete(echo);
@@ -421,7 +421,7 @@  test_send_invalid_version_hello(struct ovs_cmdl_context *ctx)
     const char *type = ctx->argv[1];
     struct ofpbuf *hello;
 
-    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP14_VERSION,
+    hello = ofpraw_alloc_xid(OFPRAW_OFPT_HELLO, OFP15_VERSION,
                              htonl(0x12345678), 0);
     ((struct ofp_header *) hello->data)->version = 0;
     test_send_hello(type, hello->data, hello->size, EPROTO);
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 89c06a1b7877..33d654f27bb2 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -1264,16 +1264,9 @@ 
       </column>
 
       <column name="protocols">
-        <p>
-          List of OpenFlow protocols that may be used when negotiating
-          a connection with a controller.  OpenFlow 1.0, 1.1, 1.2, 1.3, and
-          1.4 are enabled by default if this column is empty.
-        </p>
-
-        <p>
-          OpenFlow 1.5 is not enabled by default because its
-          implementations is missing features.
-        </p>
+        List of OpenFlow protocols that may be used when negotiating a
+        connection with a controller.  OpenFlow 1.0, 1.1, 1.2, 1.3, 1.4, and
+        1.5 are enabled by default if this column is empty.
       </column>
     </group>