Question About TCP Reassembly Inside VImages

Jason Fines jason.fines at
Fri Nov 21 20:52:01 PST 2008

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

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.


P.S. This technology is phenomenal, and thanks to everyone who is involved
developing it.

More information about the freebsd-virtualization mailing list