Date: Mon, 15 Sep 2003 01:24:43 -0700 From: Luigi Rizzo <rizzo@icir.org> To: Eugene Grosbein <eugen@kuzbass.ru> Cc: net@freebsd.org Subject: Re: ipfw: pullup failed Message-ID: <20030915012443.A49336@xorpc.icir.org> In-Reply-To: <3F654BBB.9240465B@kuzbass.ru>; from eugen@kuzbass.ru on Mon, Sep 15, 2003 at 01:18:51PM %2B0800 References: <3F6546C1.41B7143@kuzbass.ru> <20030914221343.A25641@xorpc.icir.org> <3F654BBB.9240465B@kuzbass.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 15, 2003 at 01:18:51PM +0800, Eugene Grosbein wrote: > Luigi Rizzo wrote: > > > > My router that uses ipfw2 for WF2Q+ sometimes writes in log: > > > > > > Sep 15 00:00:00 gw2 newsyslog[51667]: logfile turned over > > > Sep 15 06:20:27 gw2 /kernel: ipfw: pullup failed > > > Sep 15 07:00:42 gw2 /kernel: ipfw: pullup failed > > > Sep 15 07:58:55 gw2 /kernel: ipfw: pullup failed > > > Sep 15 08:23:13 gw2 /kernel: ipfw: pullup failed > > > Sep 15 10:14:38 gw2 /kernel: ipfw: pullup failed > > > Sep 15 11:50:53 gw2 /kernel: ipfw: pullup failed > > > > a possibility is that it has run out of mbufs. what does netstat -m say ? > > 669/1920/65536 mbufs in use (current/peak/max): > 654 mbufs allocated to data > 15 mbufs allocated to packet headers > 472/712/16384 mbuf clusters in use (current/peak/max) ok, another one is that the packet was too short for the desired length (supposedly, as a result of a collision). You could perhaps try the following patch and see if it tells you something more interesting. cheers luigi static int ipfw_chk(struct ip_fw_args *args) { + int desired_len = -1; /* * Local variables hold state during the processing of a packet. * * IMPORTANT NOTE: to speed up the processing of rules, there ... #define PULLUP_TO(len) \ do { \ if ((m)->m_len < (len)) { \ args->m = m = m_pullup(m, (len)); \ - if (m == 0) \ + if (m == 0) { \ + desired_len = (len); \ goto pullup_failed; \ + } \ ip = mtod(m, struct ip *); \ } \ } while (0) ... pullup_failed: if (fw_verbose) - printf("pullup failed\n"); + printf("pullup failed have %d want %d\n", m->m_len,desired_len); return(IP_FW_PORT_DENY_FLAG); } > 1904 Kbytes allocated to network (3% of mb_map in use) > 0 requests for memory denied > 0 requests for memory delayed > 0 calls to protocol drain routines
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030915012443.A49336>