aboutsummaryrefslogtreecommitdiff
path: root/ObsoleteFiles.inc
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2014-05-04 23:25:32 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2014-05-04 23:25:32 +0000
commite407b67be45e42e4f8d3a780b29e16517cdd2eb5 (patch)
treed7e7b758425a201d0984001d2f9d3f019d60b8d7 /ObsoleteFiles.inc
parent4f31a94bd28369404d496629d62a1b8ce0ef844e (diff)
downloadsrc-e407b67be45e42e4f8d3a780b29e16517cdd2eb5.tar.gz
src-e407b67be45e42e4f8d3a780b29e16517cdd2eb5.zip
The FreeBSD-SA-14:08.tcp was a lesson on not doing acrobatics with
mixing on stack memory and UMA memory in one linked list. Thus, rewrite TCP reassembly code in terms of memory usage. The algorithm remains unchanged. We actually do not need extra memory to build a reassembly queue. Arriving mbufs are always packet header mbufs. So we got the length of data as pkthdr.len. We got m_nextpkt for linkage. And we need only one pointer to point at the tcphdr, use PH_loc for that. In tcpcb the t_segq fields becomes mbuf pointer. The t_segqlen field now counts not packets, but bytes in the queue. This gives us more precision when comparing to socket buffer limits. Sponsored by: Netflix Sponsored by: Nginx, Inc.
Notes
Notes: svn path=/head/; revision=265338
Diffstat (limited to 'ObsoleteFiles.inc')
0 files changed, 0 insertions, 0 deletions