[ovs-dev,RFC,v1] docs: Add release feature roadmap.

Message ID 1505336693-31767-1-git-send-email-ian.stokes@intel.com
State Rejected
Headers show
Series
  • [ovs-dev,RFC,v1] docs: Add release feature roadmap.
Related show

Commit Message

Stokes, Ian Sept. 13, 2017, 9:04 p.m.
Add a document to outline the roadmap of features contributors are targeting
for upcoming OVS releases.

Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
 Documentation/automake.mk                     |    1 +
 Documentation/faq/index.rst                   |    1 +
 Documentation/faq/release_feature_roadmap.rst |  350 +++++++++++++++++++++++++
 3 files changed, 352 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/faq/release_feature_roadmap.rst

Comments

Stephen Finucane Sept. 28, 2017, 3:34 p.m. | #1
On Wed, 2017-09-13 at 22:04 +0100, Ian Stokes wrote:
> Add a document to outline the roadmap of features contributors are targeting
> for upcoming OVS releases.
> 
> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
> ---
>  Documentation/automake.mk                     |    1 +
>  Documentation/faq/index.rst                   |    1 +
>  Documentation/faq/release_feature_roadmap.rst |  350
> +++++++++++++++++++++++++
>  3 files changed, 352 insertions(+), 0 deletions(-)
>  create mode 100644 Documentation/faq/release_feature_roadmap.rst
> 
> diff --git a/Documentation/automake.mk b/Documentation/automake.mk
> index 24fe63d..3e16873 100644
> --- a/Documentation/automake.mk
> +++ b/Documentation/automake.mk
> @@ -75,6 +75,7 @@ DOC_SOURCE = \
>  	Documentation/faq/terminology.rst \
>  	Documentation/faq/vlan.rst \
>  	Documentation/faq/vxlan.rst \
> +        Documentation/faq/release_feature_roadmap.rst \

Looks like you've some extra whitespace here than shouldn't be here.

>  	Documentation/internals/index.rst \
>  	Documentation/internals/authors.rst \
>  	Documentation/internals/bugs.rst \
> diff --git a/Documentation/faq/index.rst b/Documentation/faq/index.rst
> index 334b828..e865f57 100644
> --- a/Documentation/faq/index.rst
> +++ b/Documentation/faq/index.rst
> @@ -41,3 +41,4 @@ Open vSwitch FAQ
>     terminology
>     vlan
>     vxlan
> +   release_feature_roadmap
> diff --git a/Documentation/faq/release_feature_roadmap.rst
> b/Documentation/faq/release_feature_roadmap.rst
> new file mode 100644
> index 0000000..40388f6
> --- /dev/null
> +++ b/Documentation/faq/release_feature_roadmap.rst
> @@ -0,0 +1,350 @@
> +..
> +        Licensed under the Apache License, Version 2.0 (the "License"); you
> may

Ditto (before "Licensed")

> +      not use this file except in compliance with the License. You may
> obtain
> +      a copy of the License at
> +
> +          http://www.apache.org/licenses/LICENSE-2.0
> +
> +      Unless required by applicable law or agreed to in writing, software
> +      distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT
> +      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
> the
> +      License for the specific language governing permissions and
> limitations
> +      under the License.
> +
> +      Convention for heading levels in Open vSwitch documentation:
> +
> +      =======  Heading 0 (reserved for the title in a document)
> +      -------  Heading 1
> +      ~~~~~~~  Heading 2
> +      +++++++  Heading 3
> +      '''''''  Heading 4
> +
> +      Avoid deeper levels because they do not render well.
> +
> +=======================
> +Release Feature Roadmap
> +=======================
> +
> +This document provides a feature roadmap for upcoming OVS releases.
> +
> +A few issues to note:
> +
> +* The aim of the roadmap is to provide visibility across the community
> +  regarding which features contributors are targeting in the upcoming
> release.
> +* A feature listed on the roadmap is not guaranteed to be upstreamed in the
> +  targeted release and a release will not be delayed in order to accommodate
> +  features listed in the roadmap.
> +* It is not mandatory to include planned features in the roadmap although it
> +  is encouraged. Features not listed but that are submitted will still be
> +  reviewed as per usual for a release.
> +
> +------------------------------
> +Adding Features to the Roadmap
> +------------------------------

nit: overlines aren't necessary, and we don't use them for anything deeper than
the top-level header. Could you drop it here?

> +
> +When adding a feature to the roadmap a user should be aware of the required
> +fields and expected values as detailed below:
> +
> +* **Contributor**: The name of the person/company contributing the feature.
> +* **Feature Name**: The name of the feature being contributed.
> +* **Description**: A brief description of the feature being contributed.
> +
> +-----------------------
> +OVS 2.9 feature Roadmap
> +-----------------------
> +
> ++--------------------------------------------------------------------------+
> +| **OVS 2.9 Feature Roadmap**                                              +
> ++--------------------------------------------------------------------------+
> +|                                                                          |
> ++--------------------------------------------------------------------------+
> +| **Contributor**: *Intel*                                                 |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Keepalive                                              |
> ++--------------------------------------------------------------------------+
> +| **Description**: Keepalive feature is aimed at achieving Fastpath Service|
> +| Assurance  in OVS-DPDK deployments. It adds support for monitoring the   |
> +| packet processing threads by dispatching heartbeats at regular intervals |
> +| and the status is updated periodically in OVSDB. In case of heartbeat    |
> +| misses the failure is detected and reported to higher level fault        |
> +| management systems/frameworks. The status can be monitored from OpenStack|
> +| Ceilometer service.                                                      |
> ++--------------------------------------------------------------------------+

This is good, but the whole thing would be a heck of a lot easier to read/write
if you used the 'list-table' directive. For example:

  - * Contributor
    * Feature Name
    * Description
  - * Intel
    * Keepalive
    * The keepalive feature is aimed...

Alternatively, you could use a definition list with terms under it like so:

  Keepalive
    :Contributor: Intel

    The keepalive feature is aimed...

Either way, try to avoid anything that involves this kind of spacing because
it's really nasty to maintain.


> +| **Feature Name**: vHost PMD                                              |
> ++--------------------------------------------------------------------------+
> +| **Description**: The vHost PMD brings vHost User ports under control of  |
> +| DPDKs librte_ether library and in doing so DPDKs librte_vhost library    |
> +| will no longer be directly referenced in OVS. Potential benefits include |
> +| shared code among port types in netdev-dpdk and smoother upgrades between|
> +| DPDK versions in OVS.                                                    |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Multi-segment Mbuf                                     |
> ++--------------------------------------------------------------------------+
> +| **Description**: Support for jumbo frames was added to netdev-dpdk in    |
> +| v2.6.0. In that implementation, a jumbo frame is stored within a         |
> +| single-segment mbuf. That mode will remain the default, but an option    |
> +| will now be added to allow a jumbo frame to be stored within a           |
> +| multi-segment mbuf. This reduces the requirement for large, contiguous   |
> +| blocks of memory, and may be useful in deployments with limited memory.  |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Connection Tracker performance                         |
> ++--------------------------------------------------------------------------+
> +| **Description**: The Connection Tracker is a feature to manage stateful  |
> +| connections and implement security Firewalls. This allows a better       |
> +| protection against attacks and helps in load balancing. The counterpart  |
> +| is a significant impact on the overall performance. This work is aimed at|
> +| analyzing possible bottlenecks – also considering the latest protocol    |
> +| implementations - to improve the Connection Tracker performance.         |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: IPsec                                                  |
> ++--------------------------------------------------------------------------+
> +| **Description**: This feature looks to introduce IPsec into OVS with     |
> +| DPDK. IPsec would function in transport mode and would be used in        |
> +| conjunction with existing encapsulation methods (initially VxLAN) to     |
> +| create a new interface type vxlanipsec. The DPDK cryptodev framework     |
> +| will be used to  handle cipher/digest operations as part of the          |
> +| encap/decap actions in accordance with a security association. The       |
> +| cryptodev devices supported would be limited to virtual crypto devices   |
> +| such as the  AESN-MB vdev. As such cipher and digest algorithms supported|
> +| would be limited to the capabilities of the vdev. In terms of Security   |
> +| Association generation for IPsec policies, the feature will allow a user |
> +| to specify security associations via command line options for the        |
> +| interface.                                                               |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Zero copy                                              |
> ++--------------------------------------------------------------------------+
> +| **Description**: Support for enabling DPDKs dequeue zero copy feature    |
> +| on vHost User ports which removes the costly memcpy operation from guest |
> +| to host when enabled. Detailed information in the DPDK documentation:    |
> +| http://dpdk.org/doc/guides/prog_guide/vhost_lib.html#vhost-api-overviewew 
>  |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: DPDK 17.05.2 and 17.11                                 |
> ++--------------------------------------------------------------------------+
> +| **Description**: DPDK 17.05.2 is the latest stable release of DPDK, and  |
> +| includes numerous bug-fixes and stability updates. DPDK 17.11  will      |
> +| include numerous new features, such as Generic Segmentation Offload (GSO)|
> +| and extended vHost PMD port ID enablement.                               |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Upcall performance                                     |
> ++--------------------------------------------------------------------------+
> +| **Description**: The first packet in every flow that is handled by OVS is|
> +| an upcall to the exception path. This is a performance bottleneck for    |
> +| some use cases. Analysis and improvements to the performance of this code|
> +| path will be investigated.                                               |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Service Assurance : ipfix                              |
> ++--------------------------------------------------------------------------+
> +| **Description**: Virtual switching reporting of flow telemetry via IPFix.|
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Extended NIC Stats                                     |
> ++--------------------------------------------------------------------------+
> +| **Description**: Expose low level driver statistics registers to the user|
> +| through the Extended NIC statistics API in DPDK for physical interfaces. |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: QoS: Prioritizing latency sensitive traffic            |
> ++--------------------------------------------------------------------------+
> +| **Description**: Provide a method to request ingress scheduling on       |
> +| interfaces. Will include an implemtation of same for DPDK physical ports.|
> +| This allows specific packet types to be forwarded to their destination   |
> +| port ahead of other packets and/or be less likely to be dropped in an    |
> +| overloaded situation.                                                    |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: NAT extended counters with sFlow                       |
> ++--------------------------------------------------------------------------+
> +| **Description**: Monitoring NAT flow telemetry via sFlow.                |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Megaflow cache lookup improvement (cuckoo distributor) |
> ++--------------------------------------------------------------------------+
> +| **Description**: The Datapath Classifier tuple space search can become a |
> +| performance bottleneck for a large number of subtables. This feature     |
> +| presents the idea of the two-layer hierarchical lookup, where a low      |
> +| overhead first level of indirection (called cuckoo distributor (CD)) is  |
> +| accessed first to indicate with high probability which subtable the key  |
> +| belongs to. CD improves the already existing Subtable Ranking when       |
> +| traffic has high entropy and is adaptively turned off when it finds the  |
> +| traffic mostly hit one subtable.                                         |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: NSH                                                    |
> ++--------------------------------------------------------------------------+
> +| **Description**: Network Service Header to enable service function       |
> +| chaining. This is experimental in OVS 2.8, but will likely see full      |
> +| support in 2.9. Currently the NSH RFC is still in draft.                 |
> ++--------------------------------------------------------------------------+
> +|                                                                          |
> ++--------------------------------------------------------------------------+
> +| **Contributor**: *VMware*                                                |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVSDB RAFT                                             |
> ++--------------------------------------------------------------------------+
> +| **Description**: Add RAFT support to ovsdb-server to allow for greater   |
> +| fail-over and scale-out of OVSDB.                                        |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN Incremental update                                 |
> ++--------------------------------------------------------------------------+
> +| **Description**: Don't require complete recalculation of all OVN state   |
> +| when a minor change is made.                                             |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: DNS for controller names                               |
> ++--------------------------------------------------------------------------+
> +| **Description**: Currently, a controller can only be specified with an IP|
> +| address.  Add support for DNS names.                                     |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Debian packaging                                       |
> ++--------------------------------------------------------------------------+
> +| **Description**: Break the Debian packaging out of the main OVS repo.    |
> +| This will make packaging easier on Debian.                               |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Don't slow-path controller actions                     |
> ++--------------------------------------------------------------------------+
> +| **Description**: Currently, a controller action slow-paths all the       |
> +| actions related to the flow.  Make it so that actions that can be        |
> +| executed in the datapath are executed there, with the controller action  |
> +| implemented as a "userspace" action.                                     |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OpenFlow 1.5-1.6                                       |
> ++--------------------------------------------------------------------------+
> +| **Description**: Improve support for the latest versions of OpenFlow.    |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Kernel meters                                          |
> ++--------------------------------------------------------------------------+
> +| **Description**: Implement rate-limiting meters in the kernel. This will |
> +| be useful for on-the-wire traffic as well as the userspace/kernel channel|
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: ERSPAN                                                 |
> ++--------------------------------------------------------------------------+
> +| **Description**: Support ERSPAN in OVS.                                  |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN IPsec                                              |
> ++--------------------------------------------------------------------------+
> +| **Description**: Allow using encrypted tunnels in OVN.                   |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: DPDK feature gaps for OVN gateway                      |
> ++--------------------------------------------------------------------------+
> +| **Description**: Identify features missing from the DPDK implementation  |
> +| that would prevent it from being an OVN gateway.                         |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN ACL logging improvements                           |
> ++--------------------------------------------------------------------------+
> +| **Description**: Currently, we only log ACL events in ovn-controller.log.|
> +| Based on user-feedback, we may want to improve this.                     |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Librarification                                        |
> ++--------------------------------------------------------------------------+
> +| **Description**: Make parts of OVS more usable as a library. For example,|
> +| if we break OVN out as a separate project, it will have dependencies on  |
> +| OVSDB.                                                                   |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Userspace fragmentation                                |
> ++--------------------------------------------------------------------------+
> +| **Description**: Add support for reassembling IP fragments in conntrack  |
> +| for the userspace datapath.                                              |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: BPF                                                    |
> ++--------------------------------------------------------------------------+
> +| **Description**: Implement the datapath using BPF. The first target will |
> +| be Linux. Ideally, we could use a single BPF datapath on all supported   |
> +| platforms.                                                               |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: P4                                                     |
> ++--------------------------------------------------------------------------+
> +| **Description**: Use P4 to define matches and actions instead of C.      |
> ++--------------------------------------------------------------------------+
> +|                                                                          |
> ++--------------------------------------------------------------------------+
> +| **Contributor**: *Red Hat*                                               |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN Live Migration                                     |
> ++--------------------------------------------------------------------------+
> +| **Description**: Improve behavior of OVN when using VM live migration.   |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN - IPv6 router solicitation                         |
> ++--------------------------------------------------------------------------+
> +| **Description**: Support OVN logical routers responding to router        |
> +| solicitation requests (patches under review already)                     |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN - IPv6 router advertisements                       |
> ++--------------------------------------------------------------------------+
> +| **Description**: Support periodic router advertisements being sent for   |
> +| OVN logical routers.                                                     |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN - IPv6 dynamic neighbor discovery                  |
> ++--------------------------------------------------------------------------+
> +| **Description**: OVN logical routers need to be able to perform dynamic  |
> +| neighbor discovery, similar to dynamic ARP support done for IPv4.        |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN - IPv6 Load Balancer                               |
> ++--------------------------------------------------------------------------+
> +| **Description**: OVN currently only supports IPv4 addressing for load    |
> +| balancers. Enhance load balancers to be IPv6-capable as well.            |
> ++--------------------------------------------------------------------------+
> +|                                                                          |
> ++--------------------------------------------------------------------------+
> +| **Contributor**: *ZTE*                                                   |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN support TAAS                                       |
> ++--------------------------------------------------------------------------+
> +| **Description**: Taas was designed to provide tenants and service        |
> +| providers a means of monitoring the traffic flowing in their Neutron     |
> +| provisioned virtual networks. Taas has been implemented in ovs, this work|
> +| will enable it in OVN.                                                   |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OVN support ECMP                                       |
> ++--------------------------------------------------------------------------+
> +| **Description**: ECMP may be used in NFV, this work will implement it in |
> +| OVN.                                                                     |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: OpenFlow 1.5                                           |
> ++--------------------------------------------------------------------------+
> +| **Description**: Support for the versions of OpenFlow 1.5.               |
> ++--------------------------------------------------------------------------+
> +|                                                                          |
> ++--------------------------------------------------------------------------+
> +| **Contributor**: *Ericsson*                                              |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: User-space tunneling improvements                      |
> ++--------------------------------------------------------------------------+
> +| **Description**: Improve the user-space tunnel handling with respect to  |
> +| robustness and flexibility. Add better tools to detect and trouble-shoot |
> +| problems with tunnel connectivity.                                       |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Detailed PMD performance statistics                    |
> ++--------------------------------------------------------------------------+
> +| **Description**: Collect and display a wealth of PMD runtime statistics  |
> +| for analysis of performance and to support trouble-shooting of           |
> +| packet-drop bursts caused by events happening on sub-millisecond scale.  |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Improved packet drop statistics                        |
> ++--------------------------------------------------------------------------+
> +| **Description**: Allow trouble-shooters and operators to quickly monitor |
> +| the amount of packets dropped in OVS, split up for the various drop      |
> +| reasons                                                                  |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Upcall rate limiting                                   |
> ++--------------------------------------------------------------------------+
> +| **Description**: Protect PMDs from uncontrolled slow-down through mass   |
> +| upcalls by rate-limiting them (better drop some first packets than many  |
> +| packets belonging to established flows). Can be considered a first step  |
> +| towards the more ambitious "Upcall Performance" feature driven by Intel. |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Separate PMD isolation from Rx queue pinning           |
> ++--------------------------------------------------------------------------+
> +| **Description**: Make it possible to pin individual heavy Rx queues      |
> +| without having to add dedicated PMDs or pin all other queues as well.    |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: dp_hash based select group                             |
> ++--------------------------------------------------------------------------+
> +| **Description**: Introduce a default select group mechanism parameter per|
> +| bridge to make the dp-hash based select group available to OF 1.3        |
> +| controllers. This is needed for scalable load balancing (e.g. for ECMP)  |
> +| in OVS as the current default select group implementation requires one   |
> +| upcall per connection to be load-balanced, which limits the connection   |
> +| setup rate OVS can sustain.                                              |
> ++--------------------------------------------------------------------------+
> +| **Feature Name**: Auto distribution of Rx queues to balance load of PMDs |
> ++--------------------------------------------------------------------------+
> +| **Description**: Monitor PMD load imbalance and trigger a load-based     |
> +| re-distribution of Rx-queues over PMDs when individual PMDs are          |
> +| overloaded and cause packet drop that can be avoided by a better balanced|
> +| distribution. This work build on Kevin Traynor's patch set currently on  |
> +| the mailing list.                                                        |
> ++--------------------------------------------------------------------------+

Can't speak to any of the content, but it looks wonderful ;)

Stephen
Stokes, Ian Sept. 28, 2017, 4:05 p.m. | #2
Thanks for the review Stephen,

This document was raised at the OVS DPDK community sync and it was decided not to proceed further with it (mainly due to the overhead entailed in maintaining it and frequency of modifications to the doc that may occur at).

Instead roadmaps are going to be flagged via email at the beginning of a release cycle and collateral stored in a public google doc.

I appreciate the time you spent reviewing this however.

Thanks
Ian


> On Wed, 2017-09-13 at 22:04 +0100, Ian Stokes wrote:

> > Add a document to outline the roadmap of features contributors are

> > targeting for upcoming OVS releases.

> >

> > Signed-off-by: Ian Stokes <ian.stokes@intel.com>

> > ---

> >  Documentation/automake.mk                     |    1 +

> >  Documentation/faq/index.rst                   |    1 +

> >  Documentation/faq/release_feature_roadmap.rst |  350

> > +++++++++++++++++++++++++

> >  3 files changed, 352 insertions(+), 0 deletions(-)  create mode

> > 100644 Documentation/faq/release_feature_roadmap.rst

> >

> > diff --git a/Documentation/automake.mk b/Documentation/automake.mk

> > index 24fe63d..3e16873 100644

> > --- a/Documentation/automake.mk

> > +++ b/Documentation/automake.mk

> > @@ -75,6 +75,7 @@ DOC_SOURCE = \

> >  	Documentation/faq/terminology.rst \

> >  	Documentation/faq/vlan.rst \

> >  	Documentation/faq/vxlan.rst \

> > +        Documentation/faq/release_feature_roadmap.rst \

> 

> Looks like you've some extra whitespace here than shouldn't be here.

> 

> >  	Documentation/internals/index.rst \

> >  	Documentation/internals/authors.rst \

> >  	Documentation/internals/bugs.rst \

> > diff --git a/Documentation/faq/index.rst b/Documentation/faq/index.rst

> > index 334b828..e865f57 100644

> > --- a/Documentation/faq/index.rst

> > +++ b/Documentation/faq/index.rst

> > @@ -41,3 +41,4 @@ Open vSwitch FAQ

> >     terminology

> >     vlan

> >     vxlan

> > +   release_feature_roadmap

> > diff --git a/Documentation/faq/release_feature_roadmap.rst

> > b/Documentation/faq/release_feature_roadmap.rst

> > new file mode 100644

> > index 0000000..40388f6

> > --- /dev/null

> > +++ b/Documentation/faq/release_feature_roadmap.rst

> > @@ -0,0 +1,350 @@

> > +..

> > +        Licensed under the Apache License, Version 2.0 (the

> > +"License"); you

> > may

> 

> Ditto (before "Licensed")

> 

> > +      not use this file except in compliance with the License. You

> > + may

> > obtain

> > +      a copy of the License at

> > +

> > +          http://www.apache.org/licenses/LICENSE-2.0

> > +

> > +      Unless required by applicable law or agreed to in writing,

> software

> > +      distributed under the License is distributed on an "AS IS"

> > + BASIS,

> > WITHOUT

> > +      WARRANTIES OR CONDITIONS OF ANY KIND, either express or

> > + implied. See

> > the

> > +      License for the specific language governing permissions and

> > limitations

> > +      under the License.

> > +

> > +      Convention for heading levels in Open vSwitch documentation:

> > +

> > +      =======  Heading 0 (reserved for the title in a document)

> > +      -------  Heading 1

> > +      ~~~~~~~  Heading 2

> > +      +++++++  Heading 3

> > +      '''''''  Heading 4

> > +

> > +      Avoid deeper levels because they do not render well.

> > +

> > +=======================

> > +Release Feature Roadmap

> > +=======================

> > +

> > +This document provides a feature roadmap for upcoming OVS releases.

> > +

> > +A few issues to note:

> > +

> > +* The aim of the roadmap is to provide visibility across the

> > +community

> > +  regarding which features contributors are targeting in the upcoming

> > release.

> > +* A feature listed on the roadmap is not guaranteed to be upstreamed

> > +in the

> > +  targeted release and a release will not be delayed in order to

> > +accommodate

> > +  features listed in the roadmap.

> > +* It is not mandatory to include planned features in the roadmap

> > +although it

> > +  is encouraged. Features not listed but that are submitted will

> > +still be

> > +  reviewed as per usual for a release.

> > +

> > +------------------------------

> > +Adding Features to the Roadmap

> > +------------------------------

> 

> nit: overlines aren't necessary, and we don't use them for anything deeper

> than the top-level header. Could you drop it here?

> 

> > +

> > +When adding a feature to the roadmap a user should be aware of the

> > +required fields and expected values as detailed below:

> > +

> > +* **Contributor**: The name of the person/company contributing the

> feature.

> > +* **Feature Name**: The name of the feature being contributed.

> > +* **Description**: A brief description of the feature being

> contributed.

> > +

> > +-----------------------

> > +OVS 2.9 feature Roadmap

> > +-----------------------

> > +

> > ++----------------------------------------------------------------------

> ----+

> > +| **OVS 2.9 Feature Roadmap**

> +

> > ++----------------------------------------------------------------------

> ----+

> > +|

> > +| |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Contributor**: *Intel*

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Keepalive

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Keepalive feature is aimed at achieving Fastpath

> Service|

> > +| Assurance  in OVS-DPDK deployments. It adds support for monitoring

> the   |

> > +| packet processing threads by dispatching heartbeats at regular

> intervals |

> > +| and the status is updated periodically in OVSDB. In case of heartbeat

> |

> > +| misses the failure is detected and reported to higher level fault

> |

> > +| management systems/frameworks. The status can be monitored from

> OpenStack|

> > +| Ceilometer service.

> |

> > ++----------------------------------------------------------------------

> ----+

> 

> This is good, but the whole thing would be a heck of a lot easier to

> read/write if you used the 'list-table' directive. For example:

> 

>   - * Contributor

>     * Feature Name

>     * Description

>   - * Intel

>     * Keepalive

>     * The keepalive feature is aimed...

> 

> Alternatively, you could use a definition list with terms under it like

> so:

> 

>   Keepalive

>     :Contributor: Intel

> 

>     The keepalive feature is aimed...

> 

> Either way, try to avoid anything that involves this kind of spacing

> because it's really nasty to maintain.

> 

> 

> > +| **Feature Name**: vHost PMD

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: The vHost PMD brings vHost User ports under control

> of  |

> > +| DPDKs librte_ether library and in doing so DPDKs librte_vhost library

> |

> > +| will no longer be directly referenced in OVS. Potential benefits

> > +| include | shared code among port types in netdev-dpdk and smoother

> upgrades between|

> > +| DPDK versions in OVS.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Multi-segment Mbuf

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Support for jumbo frames was added to netdev-dpdk in

> |

> > +| v2.6.0. In that implementation, a jumbo frame is stored within a

> |

> > +| single-segment mbuf. That mode will remain the default, but an option

> |

> > +| will now be added to allow a jumbo frame to be stored within a

> |

> > +| multi-segment mbuf. This reduces the requirement for large,

> contiguous   |

> > +| blocks of memory, and may be useful in deployments with limited

> > +| memory.  |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Connection Tracker performance

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: The Connection Tracker is a feature to manage

> stateful  |

> > +| connections and implement security Firewalls. This allows a better

> |

> > +| protection against attacks and helps in load balancing. The

> > +| counterpart  | is a significant impact on the overall performance.

> This work is aimed at|

> > +| analyzing possible bottlenecks – also considering the latest protocol

> |

> > +| implementations - to improve the Connection Tracker performance.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: IPsec

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: This feature looks to introduce IPsec into OVS with

> |

> > +| DPDK. IPsec would function in transport mode and would be used in

> |

> > +| conjunction with existing encapsulation methods (initially VxLAN) to

> |

> > +| create a new interface type vxlanipsec. The DPDK cryptodev framework

> |

> > +| will be used to  handle cipher/digest operations as part of the

> |

> > +| encap/decap actions in accordance with a security association. The

> |

> > +| cryptodev devices supported would be limited to virtual crypto

> devices   |

> > +| such as the  AESN-MB vdev. As such cipher and digest algorithms

> supported|

> > +| would be limited to the capabilities of the vdev. In terms of

> Security   |

> > +| Association generation for IPsec policies, the feature will allow a

> user |

> > +| to specify security associations via command line options for the

> |

> > +| interface.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Zero copy

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Support for enabling DPDKs dequeue zero copy feature

> |

> > +| on vHost User ports which removes the costly memcpy operation from

> guest |

> > +| to host when enabled. Detailed information in the DPDK documentation:

> |

> > +| http://dpdk.org/doc/guides/prog_guide/vhost_lib.html#vhost-api-over

> > +| viewew

> >  |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: DPDK 17.05.2 and 17.11

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: DPDK 17.05.2 is the latest stable release of DPDK,

> and  |

> > +| includes numerous bug-fixes and stability updates. DPDK 17.11  will

> |

> > +| include numerous new features, such as Generic Segmentation Offload

> (GSO)|

> > +| and extended vHost PMD port ID enablement.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Upcall performance

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: The first packet in every flow that is handled by

> OVS is|

> > +| an upcall to the exception path. This is a performance bottleneck for

> |

> > +| some use cases. Analysis and improvements to the performance of this

> code|

> > +| path will be investigated.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Service Assurance : ipfix

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Virtual switching reporting of flow telemetry via

> > +| IPFix.|

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Extended NIC Stats

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Expose low level driver statistics registers to

> > +| the user| through the Extended NIC statistics API in DPDK for

> > +| physical interfaces. |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: QoS: Prioritizing latency sensitive traffic

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Provide a method to request ingress scheduling on

> |

> > +| interfaces. Will include an implemtation of same for DPDK physical

> ports.|

> > +| This allows specific packet types to be forwarded to their

> destination   |

> > +| port ahead of other packets and/or be less likely to be dropped in an

> |

> > +| overloaded situation.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: NAT extended counters with sFlow

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Monitoring NAT flow telemetry via sFlow.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Megaflow cache lookup improvement (cuckoo

> > +| distributor) |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: The Datapath Classifier tuple space search can

> become a |

> > +| performance bottleneck for a large number of subtables. This feature

> |

> > +| presents the idea of the two-layer hierarchical lookup, where a low

> |

> > +| overhead first level of indirection (called cuckoo distributor

> > +| (CD)) is  | accessed first to indicate with high probability which

> subtable the key  |

> > +| belongs to. CD improves the already existing Subtable Ranking when

> |

> > +| traffic has high entropy and is adaptively turned off when it finds

> the  |

> > +| traffic mostly hit one subtable.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: NSH

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Network Service Header to enable service function

> |

> > +| chaining. This is experimental in OVS 2.8, but will likely see full

> |

> > +| support in 2.9. Currently the NSH RFC is still in draft.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +|

> > +| |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Contributor**: *VMware*

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVSDB RAFT

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Add RAFT support to ovsdb-server to allow for

> greater   |

> > +| fail-over and scale-out of OVSDB.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN Incremental update

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Don't require complete recalculation of all OVN

> state   |

> > +| when a minor change is made.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: DNS for controller names

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Currently, a controller can only be specified with

> an IP|

> > +| address.  Add support for DNS names.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Debian packaging

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Break the Debian packaging out of the main OVS repo.

> |

> > +| This will make packaging easier on Debian.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Don't slow-path controller actions

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Currently, a controller action slow-paths all the

> |

> > +| actions related to the flow.  Make it so that actions that can be

> |

> > +| executed in the datapath are executed there, with the controller

> action  |

> > +| implemented as a "userspace" action.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OpenFlow 1.5-1.6

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Improve support for the latest versions of OpenFlow.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Kernel meters

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Implement rate-limiting meters in the kernel. This

> > +| will | be useful for on-the-wire traffic as well as the

> > +| userspace/kernel channel|

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: ERSPAN

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Support ERSPAN in OVS.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN IPsec

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Allow using encrypted tunnels in OVN.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: DPDK feature gaps for OVN gateway

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Identify features missing from the DPDK

> implementation  |

> > +| that would prevent it from being an OVN gateway.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN ACL logging improvements

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Currently, we only log ACL events in ovn-

> controller.log.|

> > +| Based on user-feedback, we may want to improve this.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Librarification

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Make parts of OVS more usable as a library. For

> > +| example,| if we break OVN out as a separate project, it will have

> dependencies on  |

> > +| OVSDB.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Userspace fragmentation

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Add support for reassembling IP fragments in

> conntrack  |

> > +| for the userspace datapath.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: BPF

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Implement the datapath using BPF. The first target

> will |

> > +| be Linux. Ideally, we could use a single BPF datapath on all

> supported   |

> > +| platforms.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: P4

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Use P4 to define matches and actions instead of C.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +|

> > +| |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Contributor**: *Red Hat*

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN Live Migration

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Improve behavior of OVN when using VM live

> migration.   |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN - IPv6 router solicitation

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Support OVN logical routers responding to router

> |

> > +| solicitation requests (patches under review already)

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN - IPv6 router advertisements

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Support periodic router advertisements being sent

> for   |

> > +| OVN logical routers.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN - IPv6 dynamic neighbor discovery

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: OVN logical routers need to be able to perform

> dynamic  |

> > +| neighbor discovery, similar to dynamic ARP support done for IPv4.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN - IPv6 Load Balancer

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: OVN currently only supports IPv4 addressing for load

> |

> > +| balancers. Enhance load balancers to be IPv6-capable as well.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +|

> > +| |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Contributor**: *ZTE*

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN support TAAS

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Taas was designed to provide tenants and service

> |

> > +| providers a means of monitoring the traffic flowing in their Neutron

> |

> > +| provisioned virtual networks. Taas has been implemented in ovs, this

> work|

> > +| will enable it in OVN.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OVN support ECMP

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: ECMP may be used in NFV, this work will implement it

> in |

> > +| OVN.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: OpenFlow 1.5

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Support for the versions of OpenFlow 1.5.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +|

> > +| |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Contributor**: *Ericsson*

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: User-space tunneling improvements

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Improve the user-space tunnel handling with

> > +| respect to  | robustness and flexibility. Add better tools to detect

> and trouble-shoot |

> > +| problems with tunnel connectivity.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Detailed PMD performance statistics

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Collect and display a wealth of PMD runtime

> statistics  |

> > +| for analysis of performance and to support trouble-shooting of

> |

> > +| packet-drop bursts caused by events happening on sub-millisecond

> > +| scale.  |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Improved packet drop statistics

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Allow trouble-shooters and operators to quickly

> monitor |

> > +| the amount of packets dropped in OVS, split up for the various drop

> |

> > +| reasons

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Upcall rate limiting

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Protect PMDs from uncontrolled slow-down through

> mass   |

> > +| upcalls by rate-limiting them (better drop some first packets than

> > +| many  | packets belonging to established flows). Can be considered

> > +| a first step  | towards the more ambitious "Upcall Performance"

> > +| feature driven by Intel. |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Separate PMD isolation from Rx queue pinning

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Make it possible to pin individual heavy Rx queues

> |

> > +| without having to add dedicated PMDs or pin all other queues as well.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: dp_hash based select group

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Introduce a default select group mechanism parameter

> per|

> > +| bridge to make the dp-hash based select group available to OF 1.3

> |

> > +| controllers. This is needed for scalable load balancing (e.g. for

> ECMP)  |

> > +| in OVS as the current default select group implementation requires

> one   |

> > +| upcall per connection to be load-balanced, which limits the

> connection   |

> > +| setup rate OVS can sustain.

> |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Feature Name**: Auto distribution of Rx queues to balance load of

> > +| PMDs |

> > ++----------------------------------------------------------------------

> ----+

> > +| **Description**: Monitor PMD load imbalance and trigger a load-based

> |

> > +| re-distribution of Rx-queues over PMDs when individual PMDs are

> |

> > +| overloaded and cause packet drop that can be avoided by a better

> > +| balanced| distribution. This work build on Kevin Traynor's patch set

> currently on  |

> > +| the mailing list.

> |

> > ++----------------------------------------------------------------------

> ----+

> 

> Can't speak to any of the content, but it looks wonderful ;)

> 

> Stephen

Patch

diff --git a/Documentation/automake.mk b/Documentation/automake.mk
index 24fe63d..3e16873 100644
--- a/Documentation/automake.mk
+++ b/Documentation/automake.mk
@@ -75,6 +75,7 @@  DOC_SOURCE = \
 	Documentation/faq/terminology.rst \
 	Documentation/faq/vlan.rst \
 	Documentation/faq/vxlan.rst \
+        Documentation/faq/release_feature_roadmap.rst \
 	Documentation/internals/index.rst \
 	Documentation/internals/authors.rst \
 	Documentation/internals/bugs.rst \
diff --git a/Documentation/faq/index.rst b/Documentation/faq/index.rst
index 334b828..e865f57 100644
--- a/Documentation/faq/index.rst
+++ b/Documentation/faq/index.rst
@@ -41,3 +41,4 @@  Open vSwitch FAQ
    terminology
    vlan
    vxlan
+   release_feature_roadmap
diff --git a/Documentation/faq/release_feature_roadmap.rst b/Documentation/faq/release_feature_roadmap.rst
new file mode 100644
index 0000000..40388f6
--- /dev/null
+++ b/Documentation/faq/release_feature_roadmap.rst
@@ -0,0 +1,350 @@ 
+..
+        Licensed under the Apache License, Version 2.0 (the "License"); you may
+      not use this file except in compliance with the License. You may obtain
+      a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+      Unless required by applicable law or agreed to in writing, software
+      distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+      License for the specific language governing permissions and limitations
+      under the License.
+
+      Convention for heading levels in Open vSwitch documentation:
+
+      =======  Heading 0 (reserved for the title in a document)
+      -------  Heading 1
+      ~~~~~~~  Heading 2
+      +++++++  Heading 3
+      '''''''  Heading 4
+
+      Avoid deeper levels because they do not render well.
+
+=======================
+Release Feature Roadmap
+=======================
+
+This document provides a feature roadmap for upcoming OVS releases.
+
+A few issues to note:
+
+* The aim of the roadmap is to provide visibility across the community
+  regarding which features contributors are targeting in the upcoming release.
+* A feature listed on the roadmap is not guaranteed to be upstreamed in the
+  targeted release and a release will not be delayed in order to accommodate
+  features listed in the roadmap.
+* It is not mandatory to include planned features in the roadmap although it
+  is encouraged. Features not listed but that are submitted will still be
+  reviewed as per usual for a release.
+
+------------------------------
+Adding Features to the Roadmap
+------------------------------
+
+When adding a feature to the roadmap a user should be aware of the required
+fields and expected values as detailed below:
+
+* **Contributor**: The name of the person/company contributing the feature.
+* **Feature Name**: The name of the feature being contributed.
+* **Description**: A brief description of the feature being contributed.
+
+-----------------------
+OVS 2.9 feature Roadmap
+-----------------------
+
++--------------------------------------------------------------------------+
+| **OVS 2.9 Feature Roadmap**                                              +
++--------------------------------------------------------------------------+
+|                                                                          |
++--------------------------------------------------------------------------+
+| **Contributor**: *Intel*                                                 |
++--------------------------------------------------------------------------+
+| **Feature Name**: Keepalive                                              |
++--------------------------------------------------------------------------+
+| **Description**: Keepalive feature is aimed at achieving Fastpath Service|
+| Assurance  in OVS-DPDK deployments. It adds support for monitoring the   |
+| packet processing threads by dispatching heartbeats at regular intervals |
+| and the status is updated periodically in OVSDB. In case of heartbeat    |
+| misses the failure is detected and reported to higher level fault        |
+| management systems/frameworks. The status can be monitored from OpenStack|
+| Ceilometer service.                                                      |
++--------------------------------------------------------------------------+
+| **Feature Name**: vHost PMD                                              |
++--------------------------------------------------------------------------+
+| **Description**: The vHost PMD brings vHost User ports under control of  |
+| DPDKs librte_ether library and in doing so DPDKs librte_vhost library    |
+| will no longer be directly referenced in OVS. Potential benefits include |
+| shared code among port types in netdev-dpdk and smoother upgrades between|
+| DPDK versions in OVS.                                                    |
++--------------------------------------------------------------------------+
+| **Feature Name**: Multi-segment Mbuf                                     |
++--------------------------------------------------------------------------+
+| **Description**: Support for jumbo frames was added to netdev-dpdk in    |
+| v2.6.0. In that implementation, a jumbo frame is stored within a         |
+| single-segment mbuf. That mode will remain the default, but an option    |
+| will now be added to allow a jumbo frame to be stored within a           |
+| multi-segment mbuf. This reduces the requirement for large, contiguous   |
+| blocks of memory, and may be useful in deployments with limited memory.  |
++--------------------------------------------------------------------------+
+| **Feature Name**: Connection Tracker performance                         |
++--------------------------------------------------------------------------+
+| **Description**: The Connection Tracker is a feature to manage stateful  |
+| connections and implement security Firewalls. This allows a better       |
+| protection against attacks and helps in load balancing. The counterpart  |
+| is a significant impact on the overall performance. This work is aimed at|
+| analyzing possible bottlenecks – also considering the latest protocol    |
+| implementations - to improve the Connection Tracker performance.         |
++--------------------------------------------------------------------------+
+| **Feature Name**: IPsec                                                  |
++--------------------------------------------------------------------------+
+| **Description**: This feature looks to introduce IPsec into OVS with     |
+| DPDK. IPsec would function in transport mode and would be used in        |
+| conjunction with existing encapsulation methods (initially VxLAN) to     |
+| create a new interface type vxlanipsec. The DPDK cryptodev framework     |
+| will be used to  handle cipher/digest operations as part of the          |
+| encap/decap actions in accordance with a security association. The       |
+| cryptodev devices supported would be limited to virtual crypto devices   |
+| such as the  AESN-MB vdev. As such cipher and digest algorithms supported|
+| would be limited to the capabilities of the vdev. In terms of Security   |
+| Association generation for IPsec policies, the feature will allow a user |
+| to specify security associations via command line options for the        |
+| interface.                                                               |
++--------------------------------------------------------------------------+
+| **Feature Name**: Zero copy                                              |
++--------------------------------------------------------------------------+
+| **Description**: Support for enabling DPDKs dequeue zero copy feature    |
+| on vHost User ports which removes the costly memcpy operation from guest |
+| to host when enabled. Detailed information in the DPDK documentation:    |
+| http://dpdk.org/doc/guides/prog_guide/vhost_lib.html#vhost-api-overview  |
++--------------------------------------------------------------------------+
+| **Feature Name**: DPDK 17.05.2 and 17.11                                 |
++--------------------------------------------------------------------------+
+| **Description**: DPDK 17.05.2 is the latest stable release of DPDK, and  |
+| includes numerous bug-fixes and stability updates. DPDK 17.11  will      |
+| include numerous new features, such as Generic Segmentation Offload (GSO)|
+| and extended vHost PMD port ID enablement.                               |
++--------------------------------------------------------------------------+
+| **Feature Name**: Upcall performance                                     |
++--------------------------------------------------------------------------+
+| **Description**: The first packet in every flow that is handled by OVS is|
+| an upcall to the exception path. This is a performance bottleneck for    |
+| some use cases. Analysis and improvements to the performance of this code|
+| path will be investigated.                                               |
++--------------------------------------------------------------------------+
+| **Feature Name**: Service Assurance : ipfix                              |
++--------------------------------------------------------------------------+
+| **Description**: Virtual switching reporting of flow telemetry via IPFix.|
++--------------------------------------------------------------------------+
+| **Feature Name**: Extended NIC Stats                                     |
++--------------------------------------------------------------------------+
+| **Description**: Expose low level driver statistics registers to the user|
+| through the Extended NIC statistics API in DPDK for physical interfaces. |
++--------------------------------------------------------------------------+
+| **Feature Name**: QoS: Prioritizing latency sensitive traffic            |
++--------------------------------------------------------------------------+
+| **Description**: Provide a method to request ingress scheduling on       |
+| interfaces. Will include an implemtation of same for DPDK physical ports.|
+| This allows specific packet types to be forwarded to their destination   |
+| port ahead of other packets and/or be less likely to be dropped in an    |
+| overloaded situation.                                                    |
++--------------------------------------------------------------------------+
+| **Feature Name**: NAT extended counters with sFlow                       |
++--------------------------------------------------------------------------+
+| **Description**: Monitoring NAT flow telemetry via sFlow.                |
++--------------------------------------------------------------------------+
+| **Feature Name**: Megaflow cache lookup improvement (cuckoo distributor) |
++--------------------------------------------------------------------------+
+| **Description**: The Datapath Classifier tuple space search can become a |
+| performance bottleneck for a large number of subtables. This feature     |
+| presents the idea of the two-layer hierarchical lookup, where a low      |
+| overhead first level of indirection (called cuckoo distributor (CD)) is  |
+| accessed first to indicate with high probability which subtable the key  |
+| belongs to. CD improves the already existing Subtable Ranking when       |
+| traffic has high entropy and is adaptively turned off when it finds the  |
+| traffic mostly hit one subtable.                                         |
++--------------------------------------------------------------------------+
+| **Feature Name**: NSH                                                    |
++--------------------------------------------------------------------------+
+| **Description**: Network Service Header to enable service function       |
+| chaining. This is experimental in OVS 2.8, but will likely see full      |
+| support in 2.9. Currently the NSH RFC is still in draft.                 |
++--------------------------------------------------------------------------+
+|                                                                          |
++--------------------------------------------------------------------------+
+| **Contributor**: *VMware*                                                |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVSDB RAFT                                             |
++--------------------------------------------------------------------------+
+| **Description**: Add RAFT support to ovsdb-server to allow for greater   |
+| fail-over and scale-out of OVSDB.                                        |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN Incremental update                                 |
++--------------------------------------------------------------------------+
+| **Description**: Don't require complete recalculation of all OVN state   |
+| when a minor change is made.                                             |
++--------------------------------------------------------------------------+
+| **Feature Name**: DNS for controller names                               |
++--------------------------------------------------------------------------+
+| **Description**: Currently, a controller can only be specified with an IP|
+| address.  Add support for DNS names.                                     |
++--------------------------------------------------------------------------+
+| **Feature Name**: Debian packaging                                       |
++--------------------------------------------------------------------------+
+| **Description**: Break the Debian packaging out of the main OVS repo.    |
+| This will make packaging easier on Debian.                               |
++--------------------------------------------------------------------------+
+| **Feature Name**: Don't slow-path controller actions                     |
++--------------------------------------------------------------------------+
+| **Description**: Currently, a controller action slow-paths all the       |
+| actions related to the flow.  Make it so that actions that can be        |
+| executed in the datapath are executed there, with the controller action  |
+| implemented as a "userspace" action.                                     |
++--------------------------------------------------------------------------+
+| **Feature Name**: OpenFlow 1.5-1.6                                       |
++--------------------------------------------------------------------------+
+| **Description**: Improve support for the latest versions of OpenFlow.    |
++--------------------------------------------------------------------------+
+| **Feature Name**: Kernel meters                                          |
++--------------------------------------------------------------------------+
+| **Description**: Implement rate-limiting meters in the kernel. This will |
+| be useful for on-the-wire traffic as well as the userspace/kernel channel|
++--------------------------------------------------------------------------+
+| **Feature Name**: ERSPAN                                                 |
++--------------------------------------------------------------------------+
+| **Description**: Support ERSPAN in OVS.                                  |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN IPsec                                              |
++--------------------------------------------------------------------------+
+| **Description**: Allow using encrypted tunnels in OVN.                   |
++--------------------------------------------------------------------------+
+| **Feature Name**: DPDK feature gaps for OVN gateway                      |
++--------------------------------------------------------------------------+
+| **Description**: Identify features missing from the DPDK implementation  |
+| that would prevent it from being an OVN gateway.                         |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN ACL logging improvements                           |
++--------------------------------------------------------------------------+
+| **Description**: Currently, we only log ACL events in ovn-controller.log.|
+| Based on user-feedback, we may want to improve this.                     |
++--------------------------------------------------------------------------+
+| **Feature Name**: Librarification                                        |
++--------------------------------------------------------------------------+
+| **Description**: Make parts of OVS more usable as a library. For example,|
+| if we break OVN out as a separate project, it will have dependencies on  |
+| OVSDB.                                                                   |
++--------------------------------------------------------------------------+
+| **Feature Name**: Userspace fragmentation                                |
++--------------------------------------------------------------------------+
+| **Description**: Add support for reassembling IP fragments in conntrack  |
+| for the userspace datapath.                                              |
++--------------------------------------------------------------------------+
+| **Feature Name**: BPF                                                    |
++--------------------------------------------------------------------------+
+| **Description**: Implement the datapath using BPF. The first target will |
+| be Linux. Ideally, we could use a single BPF datapath on all supported   |
+| platforms.                                                               |
++--------------------------------------------------------------------------+
+| **Feature Name**: P4                                                     |
++--------------------------------------------------------------------------+
+| **Description**: Use P4 to define matches and actions instead of C.      |
++--------------------------------------------------------------------------+
+|                                                                          |
++--------------------------------------------------------------------------+
+| **Contributor**: *Red Hat*                                               |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN Live Migration                                     |
++--------------------------------------------------------------------------+
+| **Description**: Improve behavior of OVN when using VM live migration.   |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN - IPv6 router solicitation                         |
++--------------------------------------------------------------------------+
+| **Description**: Support OVN logical routers responding to router        |
+| solicitation requests (patches under review already)                     |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN - IPv6 router advertisements                       |
++--------------------------------------------------------------------------+
+| **Description**: Support periodic router advertisements being sent for   |
+| OVN logical routers.                                                     |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN - IPv6 dynamic neighbor discovery                  |
++--------------------------------------------------------------------------+
+| **Description**: OVN logical routers need to be able to perform dynamic  |
+| neighbor discovery, similar to dynamic ARP support done for IPv4.        |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN - IPv6 Load Balancer                               |
++--------------------------------------------------------------------------+
+| **Description**: OVN currently only supports IPv4 addressing for load    |
+| balancers. Enhance load balancers to be IPv6-capable as well.            |
++--------------------------------------------------------------------------+
+|                                                                          |
++--------------------------------------------------------------------------+
+| **Contributor**: *ZTE*                                                   |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN support TAAS                                       |
++--------------------------------------------------------------------------+
+| **Description**: Taas was designed to provide tenants and service        |
+| providers a means of monitoring the traffic flowing in their Neutron     |
+| provisioned virtual networks. Taas has been implemented in ovs, this work|
+| will enable it in OVN.                                                   |
++--------------------------------------------------------------------------+
+| **Feature Name**: OVN support ECMP                                       |
++--------------------------------------------------------------------------+
+| **Description**: ECMP may be used in NFV, this work will implement it in |
+| OVN.                                                                     |
++--------------------------------------------------------------------------+
+| **Feature Name**: OpenFlow 1.5                                           |
++--------------------------------------------------------------------------+
+| **Description**: Support for the versions of OpenFlow 1.5.               |
++--------------------------------------------------------------------------+
+|                                                                          |
++--------------------------------------------------------------------------+
+| **Contributor**: *Ericsson*                                              |
++--------------------------------------------------------------------------+
+| **Feature Name**: User-space tunneling improvements                      |
++--------------------------------------------------------------------------+
+| **Description**: Improve the user-space tunnel handling with respect to  |
+| robustness and flexibility. Add better tools to detect and trouble-shoot |
+| problems with tunnel connectivity.                                       |
++--------------------------------------------------------------------------+
+| **Feature Name**: Detailed PMD performance statistics                    |
++--------------------------------------------------------------------------+
+| **Description**: Collect and display a wealth of PMD runtime statistics  |
+| for analysis of performance and to support trouble-shooting of           |
+| packet-drop bursts caused by events happening on sub-millisecond scale.  |
++--------------------------------------------------------------------------+
+| **Feature Name**: Improved packet drop statistics                        |
++--------------------------------------------------------------------------+
+| **Description**: Allow trouble-shooters and operators to quickly monitor |
+| the amount of packets dropped in OVS, split up for the various drop      |
+| reasons                                                                  |
++--------------------------------------------------------------------------+
+| **Feature Name**: Upcall rate limiting                                   |
++--------------------------------------------------------------------------+
+| **Description**: Protect PMDs from uncontrolled slow-down through mass   |
+| upcalls by rate-limiting them (better drop some first packets than many  |
+| packets belonging to established flows). Can be considered a first step  |
+| towards the more ambitious "Upcall Performance" feature driven by Intel. |
++--------------------------------------------------------------------------+
+| **Feature Name**: Separate PMD isolation from Rx queue pinning           |
++--------------------------------------------------------------------------+
+| **Description**: Make it possible to pin individual heavy Rx queues      |
+| without having to add dedicated PMDs or pin all other queues as well.    |
++--------------------------------------------------------------------------+
+| **Feature Name**: dp_hash based select group                             |
++--------------------------------------------------------------------------+
+| **Description**: Introduce a default select group mechanism parameter per|
+| bridge to make the dp-hash based select group available to OF 1.3        |
+| controllers. This is needed for scalable load balancing (e.g. for ECMP)  |
+| in OVS as the current default select group implementation requires one   |
+| upcall per connection to be load-balanced, which limits the connection   |
+| setup rate OVS can sustain.                                              |
++--------------------------------------------------------------------------+
+| **Feature Name**: Auto distribution of Rx queues to balance load of PMDs |
++--------------------------------------------------------------------------+
+| **Description**: Monitor PMD load imbalance and trigger a load-based     |
+| re-distribution of Rx-queues over PMDs when individual PMDs are          |
+| overloaded and cause packet drop that can be avoided by a better balanced|
+| distribution. This work build on Kevin Traynor's patch set currently on  |
+| the mailing list.                                                        |
++--------------------------------------------------------------------------+