Sergio R. Caprile <[email protected]> napisaƂ(a):
Please don't repost the same issue with a different name...
Check your driver code, from what the other user said, looks like non-IP
packets are being discarded without freeing their buffer.
Check with the one who wrote the driver and/or the port.
When the Ethernet controller signals frame(s) pending, the receiving
task allocates a buffer for it and transfers data. Then, this buffer is
checked for upper-layer protocol and handled to the stack or discarded.
Code for this is in the netif tree and is modified by the one providing
the driver and the port.

Isn't the stack responsible for freeing PBUFs? Received frames are passed by mbox (in tcpip_input()) to the TCP/IP thread. Inside the thread the ethernet_input (etharp.c) function is called. For IP packets it calls ip_input(), for non-ARP and non-IP it calls pbuf_free().

Best regards,
Grzegorz Niemirowski

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

Reply via email to