aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Baranoff <stefan.baranoff@trinitycyber.com>2021-07-14 18:10:20 +0000
committerStefan Baranoff <stefan.baranoff@trinitycyber.com>2021-07-14 18:10:20 +0000
commit22243dd16173721c7a8ec9298ae7f72b4bece1f5 (patch)
treea6b1f3a83b4cb6073a255494d594349d2961b409
parentd2baf65c86ac164346f25828c54775bab8343841 (diff)
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 <stefan.baranoff@trinitycyber.com>
-rw-r--r--lib/libtle_l4p/tcp_rxtx.c4
1 files 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);