Hi All, v2: Addresses various review comments; Applies cleanly on 0bedb3d6.
This patch set provides a method to request ingress scheduling on interfaces. It also provides 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. It was previously discussed https://mail.openvswitch.org/pipermail/ovs-discuss/2017-May/044395.html and RFC'd https://mail.openvswitch.org/pipermail/ovs-dev/2017-July/335237.html Limitations of this patch: * The patch uses the Flow Director filter API in DPDK and has only been tested on Fortville (XL710) NIC. * Prioritization is limited to: ** eth_type ** Fully specified 5-tuple src & dst ip and port numbers for UDP & TCP packets * ovs-appctl dpif-netdev/pmd-*-show o/p should indicate rxq prioritization. * any requirements for a more granular prioritization mechanism Initial results: * even when userspace OVS is very much overloaded and dropping significant numbers of packets the drop rate for prioritized traffic is running at 1/1000th of the drop rate for non-prioritized traffic. * the latency profile of prioritized traffic through userspace OVS is also much improved 1e0 |* |* 1e-1 |* | Non-prioritized pkt latency |* * Prioritized pkt latency 1e-2 |* |* 1e-3 |* | |* | 1e-4 |* | | | |* |* | | 1e-5 |* |* | | | |* |* |* | | | 1e-6 |* |* |* |* | | |* |* |* |* |* | 1e-7 |* |* |* |* |* |* |* |* |* |* |* |* 1e-8 |* |* |* |* |* |* 0-1 1-20 20-40 40-50 50-60 60-70 ... 120-400 Latency (us) Proportion of packets per latency bin @ 80% Max Throughput (Log scale) Regards, Billy. billy O'Mahony (4): netdev: Add set_ingress_sched to netdev api netdev-dpdk: Apply ingress_sched config to dpdk phy ports dpif-netdev: Add rxq prioritization docs: Document ingress scheduling feature Documentation/howto/dpdk.rst | 31 +++++++ include/openvswitch/ofp-parse.h | 3 + lib/dpif-netdev.c | 25 ++++-- lib/netdev-bsd.c | 1 + lib/netdev-dpdk.c | 192 +++++++++++++++++++++++++++++++++++++++- lib/netdev-dummy.c | 1 + lib/netdev-linux.c | 1 + lib/netdev-provider.h | 10 +++ lib/netdev-vport.c | 1 + lib/netdev.c | 22 +++++ lib/netdev.h | 1 + vswitchd/bridge.c | 4 + vswitchd/vswitch.xml | 31 +++++++ 13 files changed, 315 insertions(+), 8 deletions(-) -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev