<br><font size=2 face="sans-serif">Hi,</font>
<br>
<br><font size=2 face="sans-serif">I'm trying to test the latest netdemo example downloaded from oarcorp in rtems 4.5.0 also downloaded from oarcorp. I'm using the i960 processor.</font>
<br>
<br><font size=2 face="sans-serif">I run the netdemo program and the system freezes after sending 5 UDP packets. I see with a packet sniffer that after those 5 packets an ARP request is sent too.</font>
<br>
<br><font size=2 face="sans-serif">It seems that the network stack is wait for the answer to that ARP. Shouldn't the stack give some error?</font>
<br>
<br>
<br><font size=2 face="sans-serif">Thanks in advance,</font>
<br><font size=2 face="sans-serif">Mário Vieira.</font>
<br>
<br>
<br><font size=2 face="sans-serif">My network driver big picture (based in wd8003 driver from pc386 BSP) without sending anything to the network board:  </font>
<br>
<br>
<br><font size=2 face="sans-serif">void</font>
<br><font size=2 face="sans-serif">wd_txDaemon (void *arg)</font>
<br><font size=2 face="sans-serif">{</font>
<br><font size=2 face="sans-serif">        struct wd_softc *sc = (struct wd_softc *)arg;</font>
<br><font size=2 face="sans-serif">        struct ifnet *ifp = &sc->arpcom.ac_if;</font>
<br><font size=2 face="sans-serif">        struct mbuf *m;</font>
<br><font size=2 face="sans-serif">        rtems_event_set events;</font>
<br>
<br><font size=2 face="sans-serif">        for (;;) {</font>
<br><font size=2 face="sans-serif">                /*</font>
<br><font size=2 face="sans-serif">                 * Wait for packet</font>
<br><font size=2 face="sans-serif">                 */</font>
<br><font size=2 face="sans-serif">                rtems_bsdnet_event_receive (START_TRANSMIT_EVENT, RTEMS_EVENT_ANY | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &events);</font>
<br>
<br><font size=2 face="sans-serif">                /*</font>
<br><font size=2 face="sans-serif">                 * Send packets till queue is empty</font>
<br><font size=2 face="sans-serif">                 */</font>
<br><font size=2 face="sans-serif">                for (;;) {</font>
<br><font size=2 face="sans-serif">                        /*</font>
<br><font size=2 face="sans-serif">                         * Get the next mbuf chain to transmit.</font>
<br><font size=2 face="sans-serif">                         */</font>
<br><font size=2 face="sans-serif">                        IF_DEQUEUE(&ifp->if_snd, m);</font>
<br><font size=2 face="sans-serif">                        if (!m)</font>
<br><font size=2 face="sans-serif">                                break;</font>
<br><font size=2 face="sans-serif">                        sendpacket (ifp, m);</font>
<br><font size=2 face="sans-serif">                }</font>
<br><font size=2 face="sans-serif">                ifp->if_flags &= ~IFF_OACTIVE;</font>
<br><font size=2 face="sans-serif">        }</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br>
<br><font size=2 face="sans-serif">static void</font>
<br><font size=2 face="sans-serif">sendpacket (struct ifnet *ifp, struct mbuf *m)</font>
<br><font size=2 face="sans-serif">{</font>
<br><font size=2 face="sans-serif">        struct wd_softc *dp = ifp->if_softc;</font>
<br><font size=2 face="sans-serif">        struct mbuf *n;</font>
<br><font size=2 face="sans-serif">        unsigned int len, tport;</font>
<br><font size=2 face="sans-serif">        char *shp, txReady;</font>
<br>
<br><font size=2 face="sans-serif">  len = 0;</font>
<br>
<br><font size=2 face="sans-serif">  n = m;</font>
<br><font size=2 face="sans-serif">  </font>
<br><font size=2 face="sans-serif">  for (;;){</font>
<br><font size=2 face="sans-serif">    len += m->m_len;</font>
<br><font size=2 face="sans-serif">/*    memcpy(shp, (char *)m->m_data, m->m_len); */</font>
<br><font size=2 face="sans-serif">    shp += m->m_len ;</font>
<br><font size=2 face="sans-serif">    if ((m = m->m_next) == NULL)</font>
<br><font size=2 face="sans-serif">      break;</font>
<br><font size=2 face="sans-serif">  }</font>
<br>
<br><font size=2 face="sans-serif">  m_freem(n);</font>
<br><font size=2 face="sans-serif">  </font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br>