From 22243dd16173721c7a8ec9298ae7f72b4bece1f5 Mon Sep 17 00:00:00 2001 From: Stefan Baranoff Date: Wed, 14 Jul 2021 18:10:20 +0000 Subject: l4p/tcp: correct TCP stream establish seq/ack misordering The calls made by tle_tcp_stream_establish for filling the snd and rcv TCB seq/ack values assume numbers taken from a SYN/ACK. This makes the expected ordering backwards from the perspective of the stream itself. I.e. Data from stream's SEQ number aligns with SYN/ACK's ACK number. Change-Id: I1877dec6053615a8c0140a6112e5eac659bf5709 Signed-off-by: Stefan Baranoff --- lib/libtle_l4p/tcp_rxtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libtle_l4p/tcp_rxtx.c b/lib/libtle_l4p/tcp_rxtx.c index af885ca..148a0ef 100644 --- a/lib/libtle_l4p/tcp_rxtx.c +++ b/lib/libtle_l4p/tcp_rxtx.c @@ -2262,9 +2262,9 @@ tcb_establish(struct tle_tcp_stream *s, const struct tle_tcp_conn_info *ci) tms = tcp_get_tms(s->s.ctx->cycles_ms_shift); s->tcb.so = ci->so; - fill_tcb_snd(&s->tcb, ci->seq, ci->ack, ci->so.mss, + fill_tcb_snd(&s->tcb, ci->ack, ci->seq, ci->so.mss, ci->wnd, ci->so.wscale, &ci->so.ts); - fill_tcb_rcv(&s->tcb, ci->seq, ci->so.wscale, &ci->so.ts); + fill_tcb_rcv(&s->tcb, ci->ack, ci->so.wscale, &ci->so.ts); s->tcb.rcv.wnd = calc_rx_wnd(s, s->tcb.rcv.wscale); -- cgit 1.2.3-korg