]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Try to make the MBUF_FRAG_TEST code work better.
authorMaxime Henrion <mux@FreeBSD.org>
Tue, 25 Mar 2003 23:49:14 +0000 (23:49 +0000)
committerMaxime Henrion <mux@FreeBSD.org>
Tue, 25 Mar 2003 23:49:14 +0000 (23:49 +0000)
commit511e01e2d678c362d84700678c2b0da517c37b82
treeabe734adcc783ce55fa2f57270f01b0e26077cbd
parent84b7dcad85be5859cdc14f8e375ed75473677997
Try to make the MBUF_FRAG_TEST code work better.

- Don't try to fragment the packet if it's smaller than mbuf_frag_size.
- Preserve the size of the mbuf chain which is modified by m_split().
- Check that m_split() didn't return NULL.
- Make it so we don't end up with two M_PKTHDR mbuf in the chain.
- Use m->m_pkthdr.len instead of m->m_len so that we fragment the whole
  chain and not just the first mbuf.
- Fix a nearby style bug and rework the logic of the loops so that it's
  more clear.

This is still not quite right, because we're clearly abusing m_split() to
do something it was not designed for, but at least it works now.  We
should probably move this code into a m_fragment() function when it's
correct.
sys/netinet/ip_output.c