diff options
author | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2019-11-04 13:50:31 +0000 |
---|---|---|
committer | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2019-12-31 11:51:05 +0000 |
commit | b8f1ef2b02b8709c72408ee4803f442efc9f4576 (patch) | |
tree | 95a16adc465206d351cbf1b823f793c7592f00e7 /lib/libtle_l4p/tcp_stream.h | |
parent | 47eb00f25ab06a699dc27507814c7656940340af (diff) |
v6: make TCP stream alloc/free to use memtank API
Introduce two extra parameters for TCP context creation:
struct {
uint32_t min;
/**< min number of free streams (grow threshold). */
uint32_t max;
/**< max number of free streams (shrink threshold). */
} free_streams;
By default these params are equal to max_streams value
(avoid dynamic allocation and preserve current beahviour).
grow() is invoked from accept() FE call to refill streams tank for BE.
shrink() is invoked from close() FE call.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Change-Id: I7af6a76d64813ee4a535323e27ffbfd75037fc92
Diffstat (limited to 'lib/libtle_l4p/tcp_stream.h')
-rw-r--r-- | lib/libtle_l4p/tcp_stream.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libtle_l4p/tcp_stream.h b/lib/libtle_l4p/tcp_stream.h index 1bb2a42..a3d00dc 100644 --- a/lib/libtle_l4p/tcp_stream.h +++ b/lib/libtle_l4p/tcp_stream.h @@ -18,6 +18,7 @@ #include <rte_vect.h> #include <tle_dring.h> +#include <tle_memtank.h> #include <tle_tcp.h> #include <tle_event.h> @@ -176,9 +177,9 @@ struct tcp_streams { struct stbl st; struct tle_timer_wheel *tmr; /* timer wheel */ struct rte_ring *tsq; /* to-send streams queue */ + struct tle_memtank *mts; /* memtank to allocate streams from */ struct sdr dr; /* death row for zombie streams */ struct stream_szofs szofs; /* size and offsets for stream data */ - struct tle_tcp_stream s[]; /* array of allocated streams. */ }; #define CTX_TCP_STREAMS(ctx) ((struct tcp_streams *)(ctx)->streams.buf) @@ -186,6 +187,7 @@ struct tcp_streams { #define CTX_TCP_TMWHL(ctx) (CTX_TCP_STREAMS(ctx)->tmr) #define CTX_TCP_TSQ(ctx) (CTX_TCP_STREAMS(ctx)->tsq) #define CTX_TCP_SDR(ctx) (&CTX_TCP_STREAMS(ctx)->dr) +#define CTX_TCP_MTS(ctx) (CTX_TCP_STREAMS(ctx)->mts) #ifdef __cplusplus } |