Add a document to outline the roadmap of features contributors are targeting for upcoming OVS releases.
Signed-off-by: Ian Stokes <[email protected]> --- 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 \ 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. | ++--------------------------------------------------------------------------+ -- 1.7.0.7
_______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
