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 --