Subject: can't allocate llinfo
To: None <current-users@NetBSD.ORG>
From: D'Arcy J.M. Cain <darcy@druid.net>
List: current-users
Date: 06/19/1997 06:40:11
I recall someone mentioning this recently but I don't think there was any
resolution.  I have been having the same message (tons of them) so I did
a little digging.  Perhaps someone more intimately involved with the
kernel can use this information.

Here is a section of code from arpresolve from sys/netinet/if_arp.c:

    if (rt)
        la = (struct llinfo_arp *)rt->rt_llinfo;
    else {
        if ((la = arplookup(&SIN(dst)->sin_addr, 1, 0)) != NULL)
            rt = la->la_rt;
    }       
    if (la == 0 || rt == 0) {
        log(LOG_DEBUG, "arpresolve: can't allocate llinfo");
        m_freem(m);
        return (0); 
    }   

At first I thought that the problem was in the call to rtalloc1() which
gets called by arplookup but I changed the log line to

    log(LOG_DEBUG, "arpresolve: can't allocate llinfo (%p, %p)\n", la, rt);

and I get this in ly log:

Jun 19 06:20:58 druid /netbsd: arpresolve: can't allocate llinfo (0x0, 0xf879bd00)

This suggests that the problem is in the line that assigns rt->rt_llinfo to
la.  rt->rt_llinfo must be NULL.

Now I don't notice any problem.  My arp table gets populated properly if
I connect to any machine on my network.  Can I safely ignore this message?
Should this message not be issued or perhaps only issued under restricted
conditions, i.e. only when rt is NULL?  I don't have kernel debugging
on BTW.

If anyone wants more info, just let me know what you need.

P.S:  I got about 25 of these while composing this message.

-- 
D'Arcy J.M. Cain                           |  Democracy is three wolves
darcy@{druid.net|vex.net}                  |  and a sheep voting on         
+1 416 424 2871     (DoD#0082)    (eNTP)   |  what's for dinner.
                --  http://www.druid.net/darcy  --