[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Router issues with lwip

From: K.J. Mansley
Subject: Re: [lwip-users] Router issues with lwip
Date: 21 Jun 2004 16:31:19 +0100

On Fri, 2004-06-18 at 07:18, Martin Glunz wrote:

> This packet is not accepted by tcp_process() in tcp_in.c
> because the sequence number check:
>    if (TCP_SEQ_GEQ(seqno, pcb->rcv_nxt) &&
>    TCP_SEQ_LEQ(seqno, pcb->rcv_nxt + pcb->rcv_wnd)) {
> fails. The "seqno" variable is one less (in this case) 
> than "pcb->rcv_nxt", so the RST is discarded and the
> connection will not close on the lwip side.

That seems rather odd to me.  I would have thought the RST would have a
seqno that is greater than the FIN that preceded it, but it seems not
to.  Does anyone know why this might be?

> I've done a simple (and obvious) workaround:
>       if (TCP_SEQ_GEQ(seqno, pcb->rcv_nxt - pcb->rcv_wnd) &&   //
> workaround for rp614v2
>         TCP_SEQ_LEQ(seqno, pcb->rcv_nxt + pcb->rcv_wnd)) {
> Any comments?

That's a rather hacky solution, and I'm not convinced that it is correct
to send a RST with an out-of-window sequence number.  Can you provide a
tcpdump or ethereal trace (from the PC node) showing the seq numbers,
flags, and the times they are sent/received?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]