<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16788" name=GENERATOR></HEAD>
<BODY style="FONT: 10pt Courier New" leftMargin=5 topMargin=5>
<DIV>
<DIV>To whom it may concern, </DIV>
<DIV> </DIV>
<DIV>we are using parts of the network driver from </DIV>
<DIV>the AV5282 BSP with our own BSP-Code. We have </DIV>
<DIV>enountered Problems when transmitting fragmented</DIV>
<DIV>IP Packets (i.e. send ICMP Ping with high amount </DIV>
<DIV>of dataload).</DIV>
<DIV> </DIV>
<DIV>We think that we might have found a bug in that </DIV>
<DIV>code in network.c so someone please could verify that. </DIV>
<DIV>(We still work on rtems-4.5.1 - nevertheless :-))</DIV>
<DIV> </DIV>
<DIV>If in the fec_sendpacket(..) an IP Fragment mbuffer </DIV>
<DIV>with zero length if(m->m_len) occurs then this packet</DIV>
<DIV>will be put on the mbuf chain, however. This will </DIV>
<DIV>result in used buffer descriptors that will never</DIV>
<DIV>be freed again. </DIV>
<DIV> </DIV>
<DIV>In our opinion/experience the following patch resolves </DIV>
<DIV>this problem: </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>*** network-orig.c Thu Jan  8 12:04:21 2009<BR>--- 
network.c Thu Jan  8 12:06:05 2009<BR>*************** 
fec_sendpacket(struct ifnet *ifp, struct<BR>*** 548,557 ****<BR>  
  * The IP fragmentation routine in ip_output<BR>    * 
can produce fragments with zero length.<BR>    */<BR>- 
  txBd = sc->txBdBase + sc->txBdHead;<BR>    if 
(m->m_len){<BR>     char *p = mtod(m, char *);<BR>  
   int offset = (int) p & 0x3;<BR>     if 
(offset == 0) {<BR>      txBd->buffer = p;<BR>  
    txBd->length = m->m_len;<BR>--- 548,557 
----<BR>    * The IP fragmentation routine in ip_output<BR>  
  * can produce fragments with zero length.<BR>  
  */<BR>    if (m->m_len){<BR>  
   char *p = mtod(m, char *);<BR>     int 
offset = (int) p & 0x3;<BR>+    txBd = sc->txBdBase + 
sc->txBdHead;<BR>     if (offset == 0) {<BR>  
    txBd->buffer = p;<BR>  
    txBd->length = m->m_len;<BR></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Best regards, </DIV>
<DIV>Frank Ueberschar</DIV>
<DIV>---------------------------------------</DIV>
<DIV>DSA-Volgmann</DIV>
<DIV>Thomas Volgmann</DIV>
<DIV>Redcarstr. 20</DIV>
<DIV>53842 Troisdorf</DIV>
<DIV> </DIV>
<DIV>Tel:    02241 23416 16</DIV>
<DIV>Fax:    02241 23416 666</DIV>
<DIV>email : <FONT color=#0000ff><U>frank.ueberschar</U></FONT><A 
href="mailto:frank.ueberschar@dsa-volgmann.de">@dsa-volgmann.de</A></DIV>
<DIV>web:    <A 
href="http://www.dsa-volgmann.de/">www.dsa-volgmann.de</A></DIV>
<DIV>---------------------------------------</DIV></DIV></BODY></HTML>