On Mon May 18, 2026 at 7:13 PM CEST, Aaron Conole via dev wrote: > Refactored TCP module to use a new ct private storage area rather than > an compatible extended conn struct so that future modules will have > access to the TCP state details. This will be needed when getting the > actual tcp state of the connection for offload. > > Signed-off-by: Aaron Conole <[email protected]> > --- > lib/automake.mk | 1 + > lib/conntrack-tcp.c | 64 +++++++++++++++++++-------------------------- > lib/conntrack-tcp.h | 61 ++++++++++++++++++++++++++++++++++++++++++ > lib/conntrack.c | 2 ++ > 4 files changed, 91 insertions(+), 37 deletions(-) > create mode 100644 lib/conntrack-tcp.h > > diff --git a/lib/automake.mk b/lib/automake.mk > index 933b71226b..027dd986ba 100644 > --- a/lib/automake.mk > +++ b/lib/automake.mk > @@ -90,6 +90,7 @@ lib_libopenvswitch_la_SOURCES = \ > lib/conntrack-icmp.c \ > lib/conntrack-private.h \ > lib/conntrack-tcp.c \ > + lib/conntrack-tcp.h \ > lib/conntrack-tftp.c \ > lib/conntrack-tp.c \ > lib/conntrack-tp.h \ > diff --git a/lib/conntrack-tcp.c b/lib/conntrack-tcp.c > index 8a7c98cc45..696fd5c109 100644 > --- a/lib/conntrack-tcp.c > +++ b/lib/conntrack-tcp.c > @@ -3,6 +3,7 @@ > * Copyright (c) 2002 - 2008 Henning Brauer > * Copyright (c) 2012 Gleb Smirnoff <[email protected]> > * Copyright (c) 2015, 2016 Nicira, Inc. > + * Copyright (c) 2026 Red Hat, Inc. > * All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > @@ -39,6 +40,7 @@ > #include <config.h> > > #include "conntrack-private.h" > +#include "conntrack-tcp.h" > #include "conntrack-tp.h" > #include "coverage.h" > #include "ct-dpif.h" > @@ -49,18 +51,7 @@ COVERAGE_DEFINE(conntrack_tcp_seq_chk_bypass); > COVERAGE_DEFINE(conntrack_tcp_seq_chk_failed); > COVERAGE_DEFINE(conntrack_invalid_tcp_flags); > > -struct tcp_peer { > - uint32_t seqlo; /* Max sequence number sent */ > - uint32_t seqhi; /* Max the other end ACKd + win */ > - uint16_t max_win; /* largest window (pre scaling) */ > - uint8_t wscale; /* window scaling factor */ > - enum ct_dpif_tcp_state state; > -}; > - > -struct conn_tcp { > - struct conn up; > - struct tcp_peer peer[2]; /* 'conn' lock protected. */ > -}; > +ct_private_id_t conntrack_tcp_private_id = CT_PRIVATE_ID_INVALID;
Hi, Should each L4 proto register their own private ID, or could it be shared? I.e. have a single `conntrack_l4_private_id`, that would be used by all l4protos (and other modules) to access L4 private data? -- Gaetan _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
