AV5282 Network driver

frank.ueberschar at dsa-volgmann.de frank.ueberschar at dsa-volgmann.de
Thu Jan 8 11:33:54 UTC 2009


To whom it may concern, 

we are using parts of the network driver from 
the AV5282 BSP with our own BSP-Code. We have 
enountered Problems when transmitting fragmented
IP Packets (i.e. send ICMP Ping with high amount 
of dataload).

We think that we might have found a bug in that 
code in network.c so someone please could verify that. 
(We still work on rtems-4.5.1 - nevertheless :-))

If in the fec_sendpacket(..) an IP Fragment mbuffer 
with zero length if(m->m_len) occurs then this packet
will be put on the mbuf chain, however. This will 
result in used buffer descriptors that will never
be freed again. 

In our opinion/experience the following patch resolves 
this problem: 


*** network-orig.c Thu Jan  8 12:04:21 2009
--- network.c Thu Jan  8 12:06:05 2009
*************** fec_sendpacket(struct ifnet *ifp, struct
*** 548,557 ****
    * The IP fragmentation routine in ip_output
    * can produce fragments with zero length.
    */
-   txBd = sc->txBdBase + sc->txBdHead;
    if (m->m_len){
     char *p = mtod(m, char *);
     int offset = (int) p & 0x3;
     if (offset == 0) {
      txBd->buffer = p;
      txBd->length = m->m_len;
--- 548,557 ----
    * The IP fragmentation routine in ip_output
    * can produce fragments with zero length.
    */
    if (m->m_len){
     char *p = mtod(m, char *);
     int offset = (int) p & 0x3;
+    txBd = sc->txBdBase + sc->txBdHead;
     if (offset == 0) {
      txBd->buffer = p;
      txBd->length = m->m_len;



Best regards, 
Frank Ueberschar
---------------------------------------
DSA-Volgmann
Thomas Volgmann
Redcarstr. 20
53842 Troisdorf

Tel:    02241 23416 16
Fax:    02241 23416 666
email : frank.ueberschar at dsa-volgmann.de
web:    www.dsa-volgmann.de
---------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20090108/51543171/attachment.html>


More information about the users mailing list