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