mbox series

[ovs-dev,v4,0/2] conntrack: Optimize and refactor.

Message ID 1556843848-46557-1-git-send-email-dlu998@gmail.com
Headers show
Series conntrack: Optimize and refactor. | expand

Message

Darrell Ball May 3, 2019, 12:37 a.m. UTC
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.

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 | 126 +++++--
 lib/conntrack-tcp.c     |  20 +-
 lib/conntrack.c         | 934 ++++++++++++++++--------------------------------
 lib/conntrack.h         | 188 +---------
 lib/dpif-netdev.c       |  32 +-
 tests/test-conntrack.c  |  14 +-
 8 files changed, 461 insertions(+), 890 deletions(-)