diff options
author | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2017-03-03 18:40:23 +0000 |
---|---|---|
committer | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2017-03-06 15:06:38 +0000 |
commit | 21e7392fca2c430018cf387bb3e368ea4c665446 (patch) | |
tree | 82109e1b1af7aa3303d1f9b04c1d063aa3b14873 /lib/libtle_l4p/tcp_ctl.h | |
parent | 9cbfd751b210f03fdb2fcbf8cafe59b9db516295 (diff) |
Rewrite accept() code-path and make l4fwd not to close() on FIN immediatelly.
Changes in public API:
- removes tle_tcp_stream_synreqs() and tle_tcp_reject()
- adds tle_tcp_stream_update_cfg
Allocates and fills new stream when final ACK for 3-way handshake
is received.
Changes in l4fwd sample application:
prevents l4fwd to call close() on error event immediately:
first try to recv/send remaining data.
Change-Id: I8c5b9d365353084083731a4ce582197a8268688f
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Diffstat (limited to 'lib/libtle_l4p/tcp_ctl.h')
-rw-r--r-- | lib/libtle_l4p/tcp_ctl.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libtle_l4p/tcp_ctl.h b/lib/libtle_l4p/tcp_ctl.h index dcb9c3e..95c2bbc 100644 --- a/lib/libtle_l4p/tcp_ctl.h +++ b/lib/libtle_l4p/tcp_ctl.h @@ -41,6 +41,13 @@ tcp_stream_up(struct tle_tcp_stream *s) rwl_up(&s->tx.use); } +/* calculate RCV.WND value based on size of stream receive buffer */ +static inline uint32_t +calc_rx_wnd(const struct tle_tcp_stream *s, uint32_t scale) +{ + return s->rx.q->prod.mask << scale; +} + /* empty stream's receive queue */ static void empty_rq(struct tle_tcp_stream *s) |