Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: in[46]_cksum problems



On Mon, 21 Apr 2008, David Young wrote:

> On Mon, Apr 21, 2008 at 10:57:58AM +0200, Jaap Boender wrote:
> > > Do you use any packet filters?
> >
> > I did have ipfilter and ipnat enabled; when I disable them both, the problem
> > seems to go away (IPv6-enabled kernel boots normally).
>
> ip_input() calls m_pullup() to make the IP header contiguous in the
> first buffer of the mbuf chain, but it calls packet filters through
> pfil(9) afterward.  Perhaps a packet filter is returning an mbuf chain
> with a short mbuf at the front?  A printf after the pfil(9) hook may
> illuminate the problem.

There were some similar messages about this back in february, it seems
that pfil_run_hooks() was modifying the mbuf chain and leaving it without
the complete header addressable (first mbuf empty).  I wrote:

> The only places I see hooks being added are in:
>       net/if_bridge.c
>       net/if_pppoe.c
>       dist/pf/net/pf_ioctl.c
>       dist/ipf/netinet/ip_fil_netbsd.c
>
> I don't really know what the hooks are supposed to be doing, but some of
> them use m_makewriteable() which does not guarantee that data is left
> contiguous.

perhaps that would be of use to somebody looking into it?

iain


Home | Main Index | Thread Index | Old Index