Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Nov 2003 11:36:50 +0100
From:      Andre Oppermann <oppermann@pipeline.ch>
To:        Brian Feldman <green@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/netinet ip_divert.c ip_input.c
Message-ID:  <3FB8A4C2.33E25285@pipeline.ch>
References:  <200311170317.hAH3HnIW057958@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Brian Feldman wrote:
> 
> green       2003/11/16 19:17:49 PST
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/netinet          ip_divert.c ip_input.c
>   Log:
>   Fix a few cases where MT_TAG-type "fake mbufs" are created on the stack, but
>   do not have mh_nextpkt initialized.  Somtimes what's there is "1", and the
>   ip_input() code pukes trying to m_free() it, rendering divert sockets and
>   such broken.
>   This really underscores the need to get rid of MT_TAG.

Ugh... Thank you.  It seems I missed that in ip_divert when doing the
change in ip_input and ip_output.  Bad me...

I'm working on moving this to real m_tags (Sam has also done a couple
of things in perforce).  However I've got the tcp_hostcache stuff on
the boiler plate first and there are some performance implications with m_tags.
Although I think it's more important to be correct if the impact is only
a couple of %.  In addition it hits only if one is actually doing divert
or ipfw fwd.  But then you are already taking a hit with sending the packet
out to userland natd and back again.  So overall it probably doesn't make
any difference in practice and using m_tags shouldn't pose any penalty.

-- 
Andre



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FB8A4C2.33E25285>