NetBSD/sys/netinet
thorpej 0585ce1489 Make insertion of data into socket buffers O(C):
* Keep pointers to the first and last mbufs of the last record in the
  socket buffer.
* Use the sb_lastrecord pointer in the sbappend*() family of functions
  to avoid traversing the packet chain to find the last record.
* Add a new sbappend_stream() function for stream protocols which
  guarantee that there will never be more than one record in the
  socket buffer.  This function uses the sb_mbtail pointer to perform
  the data insertion.  Make TCP use sbappend_stream().

On a profiling run, this makes sbappend of a TCP transmission using
a 1M socket buffer go from 50% of the time to .02% of the time.

Thanks to Bill Sommerfeld and YAMAMOTO Takashi for their debugging
assistance!
2002-07-03 19:06:47 +00:00
..
fil.c whitespace 2002-06-09 16:33:36 +00:00
icmp6.h whitespace 2002-06-09 16:33:36 +00:00
icmp_var.h Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
if_arp.c If we need to fix up ar_hrd field, we must do it before using ar_tpa/tha. 2002-06-25 04:16:31 +00:00
if_atm.c whitespace 2002-06-09 16:33:36 +00:00
if_atm.h whitespace 2002-06-09 16:33:36 +00:00
if_ether.h
if_inarp.h
igmp_var.h Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
igmp.c Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
igmp.h
in4_cksum.c whitespace. sync with kame 2001-12-21 02:50:28 +00:00
in_cksum.c whitespace 2002-06-09 16:33:36 +00:00
in_gif.c whitespace 2002-06-09 16:33:36 +00:00
in_gif.h
in_pcb.c share policy-on-pcb for listening socket. sync w/kame 2002-06-11 19:39:59 +00:00
in_pcb.h whitespace 2002-06-09 16:33:36 +00:00
in_proto.c whitespace 2002-06-09 16:33:36 +00:00
in_systm.h
in_var.h Eliminate commons. 2002-05-12 20:33:50 +00:00
in.c whitespace 2002-06-09 16:33:36 +00:00
in.h Define uint{8,32}_t locally, per XNS5.2/POSIX-2001, and use them in this 2002-05-13 13:34:32 +00:00
ip6.h
ip_auth.c whitespace 2002-06-09 16:33:36 +00:00
ip_auth.h Re-sync with IPFilter 2002-01-24 08:23:40 +00:00
ip_compat.h whitespace 2002-06-09 16:33:36 +00:00
ip_ecn.c correct variable initialization. reported by fujitsu folks 2002-04-10 09:18:57 +00:00
ip_ecn.h whitespace. protect from multiple inclusion. sync with kame 2001-12-21 04:11:24 +00:00
ip_encap.c whitespace 2002-06-09 16:33:36 +00:00
ip_encap.h use radix table for inbound tunnel lookup (would increase performance 2001-12-21 06:30:43 +00:00
ip_fil.c whitespace 2002-06-09 16:33:36 +00:00
ip_fil.h Fix iplog problem on sparc64 [from Tomi Nylund] 2002-07-01 13:55:35 +00:00
ip_flow.c Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
ip_frag.c whitespace 2002-06-09 16:33:36 +00:00
ip_frag.h Upgraded IPFilter to 3.4.23 2002-01-24 08:21:30 +00:00
ip_ftp_pxy.c Fix compilation problems 2002-05-02 17:13:27 +00:00
ip_gre.c style 2002-06-09 19:49:49 +00:00
ip_gre.h whitespace 2002-06-09 16:33:36 +00:00
ip_h323_pxy.c whitespace 2002-06-09 16:33:36 +00:00
ip_icmp.c Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
ip_icmp.h whitespace 2002-06-09 16:33:36 +00:00
ip_input.c Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
ip_ipsec_pxy.c add __KERNEL_RCSID() 2002-04-01 16:47:46 +00:00
ip_log.c Fix iplog problem on sparc64 [from Tomi Nylund] 2002-07-01 13:55:35 +00:00
ip_mroute.c whitespace 2002-06-09 16:33:36 +00:00
ip_mroute.h whitespace 2002-06-09 16:33:36 +00:00
ip_nat.c whitespace 2002-06-09 16:33:36 +00:00
ip_nat.h Upgraded IPFilter to 3.4.27 2002-05-02 17:11:37 +00:00
ip_netbios_pxy.c whitespace 2002-06-09 16:33:36 +00:00
ip_output.c set ia as well 2002-06-24 08:11:30 +00:00
ip_proxy.c whitespace 2002-06-09 16:33:36 +00:00
ip_proxy.h Upgraded IPFilter to 3.4.23 2002-01-24 08:21:30 +00:00
ip_raudio_pxy.c Upgraded IPFilter to 3.4.23 2002-01-24 08:21:30 +00:00
ip_rcmd_pxy.c Re-sync with IPFilter 2002-01-24 08:23:40 +00:00
ip_state.c whitespace 2002-06-09 16:33:36 +00:00
ip_state.h Upgraded IPFilter to 3.4.27 2002-05-02 17:11:37 +00:00
ip_var.h Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
ip.h bring in latest ALTQ from kjc. ALTQify some of the drivers. 2002-03-05 04:12:57 +00:00
ipl.h Upgraded IPFilter to 3.4.27 2002-05-02 17:11:37 +00:00
Makefile
raw_ip.c whitespace 2002-06-09 16:33:36 +00:00
tcp_debug.c whitespace 2002-06-09 16:33:36 +00:00
tcp_debug.h
tcp_fsm.h
tcp_input.c Make insertion of data into socket buffers O(C): 2002-07-03 19:06:47 +00:00
tcp_output.c Disable TCP Congestion Window Monitoring by default; there are 2002-06-13 16:31:05 +00:00
tcp_seq.h
tcp_subr.c check AF_INET6 socketes when IPv4 "too big" messages arrive. 2002-07-01 20:51:25 +00:00
tcp_timer.c whitespace 2002-06-09 16:33:36 +00:00
tcp_timer.h Change a few variable/tables to const since they are read-only. 2001-11-04 13:42:27 +00:00
tcp_usrreq.c Make insertion of data into socket buffers O(C): 2002-07-03 19:06:47 +00:00
tcp_var.h Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
tcp.h
tcpip.h
udp_usrreq.c Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
udp_var.h Changes to allow the IPv4 and IPv6 layers to align headers themseves, 2002-06-30 22:40:32 +00:00
udp.h