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

Message ID 1505336693-31767-1-git-send-email-ian.stokes@intel.com
State New
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

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.                                                        |
++--------------------------------------------------------------------------+