[ovs-dev] [patch v5 0/2] conntrack: Optimize and refactor.
Darrell Ball
dlu998 at gmail.com
Fri May 3 04:34:03 UTC 2019
Patch 1 is not an optimization per se, but aimed at eliminating
the exporting of internal conntrack infra.
Patch 2 Add RCU support. This is mainly done for performance
reasons, but also simplifies the code.
v5: Removed a wayward ovs_list_remove() from conn_update_expiration().
Merged some conn level locking that was missed b4 and adjusted const
specifier for conn, as a result.
v4: Just include first 2 patches as the other patches are moved to a
subsequent series.
Reinstated support for running multiple userpace datapaths at the
same time.
Fixed a bug where 'ovs_list_remove()' was misplaced.
Cleaned up some unneeded code.
v3: Dropped Patch 3 from the series since it was broken/incomplete
and not worth the fix, since there are some disadvantages in
terms of maintainability, including treating UDP/ICMP different
than TCP, while the performance benefit was borderline.
Fixed bug in 'nat_res_exhaustion' exception code.
Cleaned up a few APIs - 'conn_clean*'/'delete_conn*' and
removed an unneeded one, 'conn_available()'. Added more
comments.
Removed non-essential 'nat' field from struct conn_lookup_ctx.
Fixed some splicing issues b/w Patch 1 and Patch 2, where some
aspects of Patch 2 were now moved to Patch 1.
v2: Put back somehow deleted '&' in Patch 1 in call to
check_orig_tuple() for bucket parameter (which is
removed in Patch 2).
Darrell Ball (2):
conntrack: Stop exporting internal datastructures.
conntrack: Add rcu support.
lib/conntrack-icmp.c | 25 +-
lib/conntrack-other.c | 12 +-
lib/conntrack-private.h | 127 +++++--
lib/conntrack-tcp.c | 20 +-
lib/conntrack.c | 973 +++++++++++++++++-------------------------------
lib/conntrack.h | 188 +---------
lib/dpif-netdev.c | 32 +-
tests/test-conntrack.c | 14 +-
8 files changed, 484 insertions(+), 907 deletions(-)
--
1.9.1
More information about the dev
mailing list