Question About TCP Reassembly Inside VImages

Julian Elischer julian at
Sat Nov 22 02:24:53 PST 2008

Jason Fines wrote:
> Hello all,
> I've got a question about setting the sysctl variable
> net.inet.tcp.reass.maxsegments to a non-zero value inside my vimages.  I'm
> currently running the FreeBSD 7 with the VIMAGE package available at
> My problem is with TCP reassembly support inside of the vimages, namely with
> the tcp.reass.maxsegments sysctl variable.  I've tracked down where in the
> code the variable is set to line 122 in tcp_reass_init() of
> netinet/tcp_reass.c: "V_tcp_reass_maxseg = nmbclusters / 16;".  The line
> clearly reads that maxsegments should be set to "nmbclusters /16", in the
> main OS (not in any vimage) the value is correctly set to 1/16 of what my
> nmbclusters sysctl variable is set to.  However, inside all my vimages
> nmbclusters is set correctly, while reass.maxsegments is incorrectly set to
> zero!!!

V_tcp_reass_maxseg is a macro that hides the fact that
tcp_reass_maxseg is a PER Vimage variable.

Part of the patch
is to make some sysctls be per-vimage. I do not know exactly
about that one.. I suspect it is actually a read-only
whole-system value, and not per vimage.

> Is it possible that nmbclusters when read on line 122 of netinet/tcp_reass.c
> is zero?  Has anyone else experienced this problem?  Is TCP reassembly not
> supported/tested inside vimages?
> Any help in this area would be greatly appreciated.
> Thanks,
> Jason
> P.S. This technology is phenomenal, and thanks to everyone who is involved
> developing it.
> _______________________________________________
> freebsd-virtualization at mailing list
> To unsubscribe, send any mail to "freebsd-virtualization-unsubscribe at"

More information about the freebsd-virtualization mailing list