On Mon, Jun 10, 2019 at 4:55 AM Ben Pfaff <[email protected]> wrote:

> Open vSwitch now supports all OpenFlow 1.5 required features, so enable
> it by default.
>
> Signed-off-by: Ben Pfaff <[email protected]>
>

Acked-by: Numan Siddique <[email protected]>

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
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to