lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [bug #51033] LWIP_ASSERT while doing repetitive transmissio


From: preet
Subject: [lwip-devel] [bug #51033] LWIP_ASSERT while doing repetitive transmission
Date: Tue, 16 May 2017 15:26:27 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

Follow-up Comment #5, bug #51033 (project lwip):

1)  Reproduced it with Nagle algorithm off and a simple loop to calls send()
function inside the loop.

  /*
   * Phase 2: concat_p can be concatenated onto last_unsent->p, unless we
   * determined that the last ROM pbuf can be extended to include the new
data.
   */
  if (concat_p != NULL) {
    LWIP_ASSERT("tcp_write: cannot concatenate when pcb->unsent is empty",
      (last_unsent != NULL));
    pbuf_cat(last_unsent->p, concat_p);
    last_unsent->len += concat_p->tot_len;
  }


2)  The application uses two Ethernets and I do not believe there are any
threading issues
-  E0_rx interrupt just posts a counting semahore
-  Likewise, E1_rx posts a different E1_cnt_sem
-  The two sleeping tasks for each ethernet, namely E0_rx_task and E1_rx_task,
take the semaphore
-  Sleeping tasks read their own Ethernet descriptor, pull a pbuf_alloc() and
pass it to the LWIP using the input function pointer of their own interface:
e0_interface.input(pbuf, e0_interface)



    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?51033>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

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