[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