Hi, On Wed, Apr 12, 2017 at 01:13:36PM -0300, Flavio Leitner wrote: > > Hi Marcelo, > > Could you please confirm if this patch series fixes the aggregation > issue in your environment?
Yes it did. I can see IPv4 L3 matches in datapath now and their stats are updated accordingly. > > Thanks, > fbl > > > On Fri, Apr 07, 2017 at 04:12:47PM +0300, Roi Dayan wrote: > > This patch series introduces rule offload functionality to dpif-netlink > > via netdev ports new flow offloading API. The user can specify whether to > > enable rule offloading or not via OVS configuration. Netdev providers > > are able to implement netdev flow offload API in order to offload rules. > > > > This patch series also implements one offload scheme for netdev-linux, > > using TC flower classifier, which was chosen because its sort of natural > > to state OVS DP rules for this classifier. However, the code can be > > extended to support other classifiers such as U32, eBPF, etc which support > > offload as well. > > > > The use-case we are currently addressing is the newly sriov switchdev mode > > in the Linux kernel which was introduced in version 4.8. > > This series was tested against sriov vfs vports representors of the > > Mellanox 100G ConnectX-4 series exposed by the mlx5 kernel driver. > > > > > > V6->V7: > > - Fix L3 IPv4 matching got broken > > - Refactor offloads test and testsuite to have same prefix > > - Better handling of unsupported match attributes > > > > V5->V6: > > - Rebase over master branch, fix compilation issue > > - Add Nicira copyright to tc interface > > > > V4->V5: > > - Fix compat > > - Fix VXLAN IPv6 tunnel matching > > - Fix order of actions in dump flows > > - Update ovs-dpctl man page about the addtion of type to dump-flows > > > > Travis > > https://travis-ci.org/roidayan/ovs/builds/213735371 > > AppVeyor > > https://ci.appveyor.com/project/roidayan/ovs/build/1.0.18 > > > > V3->V4: > > - Move declarations to the right commit with implementation > > - Fix tc_get_flower flow return false success > > - Fix memory leaks - not releasing tc_transact replies > > - Fix travis failure for OSX compilation > > - Fix loop in dpif_netlink_flow_dump_next > > - Fix declared default value for tc-policy in vswitch.xml > > - Refactor loop in netdev_tc_flow_dump_next > > - Add missing error checks in parse_flow_put > > - Fix handling modify request where old rule is in hw and new > > rule is not supported and needs to be in sw. > > - Use 2 hashmaps instead of 1 for faster reverse lookup of ufid from tc > > - Init ports when enabling hw-offload after OVS is running > > > > TODO: Fix breaking of datapath compilation > > Fix testsuite failures > > > > Travis > > https://travis-ci.org/roidayan/ovs/builds/210549325 > > AppVeyor > > https://ci.appveyor.com/project/roidayan/ovs/build/1.0.15 > > > > V2->V3: > > - Code styling fixes > > - Bug fixes > > - Using already available macros/functions to match current OVS code > > - Refactored code according to V2 review > > - Replaced bool option skip-hw for string option tc-policy > > - Added hw offload tests using policy skip_hw > > - Fixed most compatability compiling issues > > - Travis > > https://travis-ci.org/roidayan/ovs/builds/199610124 > > - AppVeyor > > https://ci.appveyor.com/project/roidayan/ovs/build/1.0.14 > > - Fixed compiling with DPDK enabled > > > > TODO: > > - need to fix datapath compiling issues found in travis after adding tc > > compatability headers > > - need to fix failing test cases because of get_ifindex > > > > V1->V2: > > - Added generic netdev flow offloads API. > > - Implemented relevant flow API in netdev-linux (and netdev-vport). > > - Added a other_config hw-offload option to enable offloading (defaults > > to false). > > - Fixed coding style to conform with OVS. > > - Policy removed for now. (Will be discussed how best implemented > > later). > > > > > > Thanks, > > Paul & Roi > > > > > > Paul Blakey (24): > > tc: Add tc flower interface > > netdev: Adding a new netdev api to be used for offloading flows > > other-config: Add hw-offload switch to control netdev flow offloading > > other-config: Add tc-policy switch to control tc flower flag > > dpif: Save added ports in a port map for netdev flow api use > > dpif-netlink: Flush added ports using netdev flow api > > netdev-tc-offloads: Implement netdev flow flush using tc interface > > dpif-netlink: Dump netdevs flows on flow dump > > netdev-tc-offloads: Add ufid to tc/netdev map > > netdev-tc-offloads: Implement netdev flow dump api using tc interface > > dpif-netlink: Use netdev flow put api to insert a flow > > netdev-tc-offloads: Add flower mask to priority map > > netdev-tc-offloads: Implement netdev flow put using tc interface > > dpif-netlink: Use netdev flow del api to delete a flow > > netdev-tc-offloads: Implement netdev flow del using tc interface > > dpif-netlink: Use netdev flow get api to query a flow > > netdev-tc-offloads: Implement flow get using tc interface > > netdev-linux: Disallow setting policing when configured with hw > > offload > > netdev-vport: Use common offloads interface > > netdev-tc-offloads: Add ingress on netdev flow api init > > dpctl: Add an option to dump only certain kinds of flows > > tests: Add system-offloads-testsuite > > compat: Add tc compatibility headers for old kernels > > netdev: Init flow api on already added ports on offload enable > > > > acinclude.m4 | 26 + > > configure.ac | 1 + > > include/automake.mk | 1 + > > include/linux/automake.mk | 4 + > > include/linux/pkt_cls.h | 165 +++++ > > include/linux/tc_act/tc_tunnel_key.h | 46 ++ > > include/linux/tc_act/tc_vlan.h | 40 ++ > > lib/automake.mk | 4 + > > lib/dpctl.c | 21 +- > > lib/dpctl.man | 7 +- > > lib/dpif-netdev.c | 3 +- > > lib/dpif-netlink.c | 517 ++++++++++++++- > > lib/dpif-provider.h | 6 +- > > lib/dpif.c | 29 +- > > lib/dpif.h | 5 +- > > lib/netdev-bsd.c | 2 + > > lib/netdev-dpdk.c | 1 + > > lib/netdev-dummy.c | 2 + > > lib/netdev-linux.c | 194 ++---- > > lib/netdev-linux.h | 11 + > > lib/netdev-provider.h | 53 ++ > > lib/netdev-tc-offloads.c | 973 ++++++++++++++++++++++++++++ > > lib/netdev-tc-offloads.h | 42 ++ > > lib/netdev-vport.c | 61 +- > > lib/netdev.c | 346 ++++++++++ > > lib/netdev.h | 40 ++ > > lib/odp-util.c | 53 ++ > > lib/odp-util.h | 3 + > > lib/tc.c | 1150 > > ++++++++++++++++++++++++++++++++++ > > lib/tc.h | 129 ++++ > > ofproto/ofproto-dpif-upcall.c | 3 +- > > ofproto/ofproto-dpif.c | 2 +- > > tests/.gitignore | 1 + > > tests/automake.mk | 16 + > > tests/ofproto-macros.at | 6 +- > > tests/system-offloads-testsuite.at | 25 + > > tests/system-offloads-traffic.at | 67 ++ > > vswitchd/bridge.c | 1 + > > vswitchd/vswitch.xml | 28 + > > 39 files changed, 3904 insertions(+), 180 deletions(-) > > create mode 100644 include/linux/automake.mk > > create mode 100644 include/linux/pkt_cls.h > > create mode 100644 include/linux/tc_act/tc_tunnel_key.h > > create mode 100644 include/linux/tc_act/tc_vlan.h > > create mode 100644 lib/netdev-tc-offloads.c > > create mode 100644 lib/netdev-tc-offloads.h > > create mode 100644 lib/tc.c > > create mode 100644 lib/tc.h > > create mode 100644 tests/system-offloads-testsuite.at > > create mode 100644 tests/system-offloads-traffic.at > > > > -- > > 2.7.4 > > > > _______________________________________________ > > dev mailing list > > d...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > -- > Flavio > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev