aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ananyev <konstantin.ananyev@intel.com>2021-10-14 12:49:41 +0000
committerKonstantin Ananyev <konstantin.ananyev@intel.com>2021-10-19 15:40:00 +0000
commitf71107b4dd6a4b8b1cd28d7339c924f1b013cfa4 (patch)
tree548207debf7bf0b309be8d3643f65375b08ab446
parent940d8a82b96ccba31f0664a6d4ae5f510ce1d44f (diff)
l4p/tcp: Fix setting MSS in TCP stream establish
Inside tcb_establish() we should check provided destionation MTU information and adjust provided MSS value if necessary. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Change-Id: I66b64ec2a7b170dc62bf9cb604c2b83bfd1ea33f
-rw-r--r--lib/libtle_l4p/tcp_rxtx.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libtle_l4p/tcp_rxtx.c b/lib/libtle_l4p/tcp_rxtx.c
index bf79eab..20a2665 100644
--- a/lib/libtle_l4p/tcp_rxtx.c
+++ b/lib/libtle_l4p/tcp_rxtx.c
@@ -2265,12 +2265,13 @@ tle_tcp_stream_connect(struct tle_stream *ts, const struct sockaddr *addr)
static inline void
tcb_establish(struct tle_tcp_stream *s, const struct tle_tcp_conn_info *ci)
{
- uint32_t tms;
+ uint32_t mss, tms;
tms = tcp_get_tms(s->s.ctx->cycles_ms_shift);
+ mss = calc_smss(ci->so.mss, &s->tx.dst);
s->tcb.so = ci->so;
- fill_tcb_snd(&s->tcb, ci->ack, ci->seq, ci->so.mss,
+ fill_tcb_snd(&s->tcb, ci->ack, ci->seq, mss,
ci->wnd, ci->so.wscale, &ci->so.ts);
fill_tcb_rcv(&s->tcb, ci->ack, ci->so.wscale, &ci->so.ts);