rtentry and rtrequest

Alan Garfield alan at fromorbit.com
Thu Apr 19 08:54:25 UTC 2007


On Thu, 2007-04-19 at 11:35 +0400, Yar Tikhiy wrote:

> > ... and I get these ARP errors.
> > 
> > ----
> > jnet0: <JNet Ethernet System Interface> port 0xa8,0xae-0xaf irq 19 on
> > acpi0
> > jnet0: Ethernet address: 00:09:3d:00:00:03
> > jnet0: jnet_start_locked() called.
> > jnet0: m == 0.
> > jnet0: RTM_ADD. 
> > arplookup 169.254.101.2 failed: could not allocate llinfo
> > arpresolve: can't allocate route for 169.254.101.2
> > ----
> > 
> > ... whenever I try and send anything.
> 
> Did you set the maximum lengths for the output queue and the driver
> queue in the attach function?

----
        // Configure the structure for the device
        ifp->if_softc = sc;
        if_initname(ifp, device_get_name(dev), device_get_unit(dev));
        
        // Function pointers 
        ifp->if_start = jnet_start;
        ifp->if_ioctl = jnet_ioctl;
        ifp->if_watchdog = jnet_watchdog;
        ifp->if_init = jnet_init;
        
        // Interface specifics
        ifp->if_flags = IFF_SIMPLEX;
        IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
        ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
        IFQ_SET_READY(&ifp->if_snd); 
        ifp->if_timer = MAX_TIMEOUT;

        // Set our fake MAC address
        bcopy(localMac, sc->enaddr, 6);
        
        // Attach the ethernet interface
        ether_ifattach(ifp, sc->enaddr);

        // Reset the mtu
        ifp->if_mtu = JNET_MTU;
----

I think so. :)

I beginning to think the ARP issue is a symptom not the cause. The cause
may well be something is wrong with my initialisation of the output
queue and my handling of the de-queueing packets. I've looked at many
if_* drivers sources and they all seem very similar to what I've already
done.

-A.



More information about the freebsd-net mailing list