l4p/tcp: correct TCP stream establish seq/ack misordering 36/33136/2
authorStefan Baranoff <[email protected]>
Wed, 14 Jul 2021 18:10:20 +0000 (18:10 +0000)
committerStefan Baranoff <[email protected]>
Wed, 14 Jul 2021 18:10:20 +0000 (18:10 +0000)
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 <[email protected]>
lib/libtle_l4p/tcp_rxtx.c

index af885ca..148a0ef 100644 (file)
@@ -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);