2017-10-24 1:13 GMT+08:00 Mattia Settin <[email protected]>:
> Dear all
> After a week of debugging I finally find the issue. The problem is related to 
> priority in pcb.
> Taking a deep look I saw that the priority in the stack 1.4.1 is change, in 
> particular:
> Tcp_alloc return e pcb with a prior equal to the prior passed in input.
> Tcp_listen_with_backlog return e pcb with a prior equal to the pcb.prior 
> passed in input.
> This two changes lead to a sporadic RST ACK call from the kill_prio routine.
> Finally I fix this issue removing the equal condition in the kill_prio 
> function.

The comment on the code seems confusion for "the same priority case":
(I check the latest git tree)

Th comment on the caller:
          /* Try killing active connections with lower priority than
the new one. */
          LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing connection with
prio lower than %d\n", prio));
          tcp_kill_prio(prio);

But the comment on tcp_kill_prio() function:
/**
 * Kills the oldest active connection that has the same or lower priority than
 * 'prio'.

_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to