[email protected] <[email protected]> wrote:
> - if (after(ack, tp->snd_nxt))
> + if (after(ack, tp->snd_nxt)) {
> + tcp_send_ack(sk);
> return -1;
> + }
If we really need to do this we need to
if (!(flag & FLAG_NO_CHALLENGE_ACK))
tcp_send_challenge_ack(sk);
... else this might result in two acks?
Whats the problem thats being fixed here?
Dear Florian
Thank you for reviewing my patch ;-)
On Sat, Mar 19, 2022 at 6:04 PM Florian Westphal <[email protected]> wrote:
>
> [email protected] <[email protected]> wrote:
> > - if (after(ack, tp->snd_nxt))
> > + if (after(ack, tp->snd_nxt)) {
> > + tcp_send_ack(sk);
> > return -1;
> > + }
>
> If we really need to do this we need to
> if (!(flag & FLAG_NO_CHALLENGE_ACK))
Yes, we need to check FLAG_NO_CHALLENGE_ACK here to avoid two acks.
> tcp_send_challenge_ack(sk);
>
> ... else this might result in two acks?
> Whats the problem thats being fixed here?
We fix the code to let it match what RFC 793 page 72 has described. I
guess this is also what the intermediate internet devices (routers,
firewalls for example) expect us to do ;-)
Thanks again
Zhouyi