Netdev datapath offloads are done in a separate thread, using messaging
between the threads. With port removal there is a race between the offload
thread removing the offloaded rules and the actual port removal, so some
rules will not be removed. In OVS the offload objects are not freed (memory
leak). In HW the remining of the rules depend on PMD behavior.
This patch-set resolves this issue using flush.

v2-v1:
- Fix for pending offload requests.
v3-v2:
- Rebase.

Travis:
v1: https://travis-ci.org/github/elibritstein/OVS/builds/747022942
v2: https://travis-ci.org/github/elibritstein/OVS/builds/748788786
v3: https://travis-ci.org/github/elibritstein/OVS/builds/751787939

GitHub Actions:
v1: https://github.com/elibritstein/OVS/actions/runs/394296553
v2: https://github.com/elibritstein/OVS/actions/runs/413379295
v3: https://github.com/elibritstein/OVS/actions/runs/448541155

Eli Britstein (4):
  dpif-netdev: Flush offload rules upon port deletion
  netdev-offload-dpdk: Keep netdev in offload object
  netdev-offload-dpdk: Refactor disassociate and flow destroy
  netdev-offload-dpdk: Implement flow flush

 lib/dpif-netdev.c         |  2 +
 lib/netdev-offload-dpdk.c | 85 +++++++++++++++++++++++++--------------
 2 files changed, 56 insertions(+), 31 deletions(-)

-- 
2.28.0.546.g385c171

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to