Hi,

I have an application based upon lwIP v1.3.1 without an RTOS and I am having 
problems under a fault condition.
What is happening is during a periods of communications if I get a break in the 
network my unit locks-up.
I have traced the cause of the lock-up as an infinite loop in tcp_fasttmr where 
pcb and pcb->next are the same location.

void
tcp_fasttmr(void)
{
  struct tcp_pcb *pcb;

  for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
    /* If there is data which was previously "refused" by upper layer */
    if (pcb->refused_data != NULL) {
      /* Notify again application with data previously received. */
      err_t err;
      LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_fasttmr: notify kept packet\n"));
      TCP_EVENT_RECV(pcb, pcb->refused_data, ERR_OK, err);
      if (err == ERR_OK) {
        pcb->refused_data = NULL;
      }
    }

    /* send delayed ACKs */
    if (pcb->flags & TF_ACK_DELAY) {
      LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: delayed ACK\n"));
      tcp_ack_now(pcb);
      pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
    }
  }
}

I have looked through the archives and seen that other people have had the same 
problem but following the threads no-one offers any solution or explanation as 
to why this is happening.
Can anyone offer an explanation as to why this is occurring?
Is the solution to put in a trap to capture this condition?

Tony




Anthony Carr

Principal Electronics Engineer

[cid:[email protected]]


 Unit D1, Grafton Way

 Basingstoke, Hampshire

 RG22 6HZ

 www.devlin.co.uk<http://www.devlin.co.uk/>


  T: +44 (0)1256 467367

  F: +44 (0)1256 840048

  M:

  E: [email protected]




This email contains confidential and/or privileged information belonging to 
Devlin Electronics Limited, its affiliates and/or subsidiaries. If you are not 
the intended reciient you are hereby notified that any disclosure, copying, 
distribution and/or the taking of any action based upon relieance on the 
contents of this transmission is strictly forbidden. If you have received this 
message in error; please notify the sender by retirun email and delete it from 
your system, If you require assistance please contact our sales office on +44 
(0)1256 467367 or visit our website www.devlin.co.uk<http://www.devlin.co.uk/>.


<<inline: [email protected]>>

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

Reply via email to