Commit TCP SACK patches from Kentaro A. Karahone's patch at:
http://www.sigusr1.org/~kurahone/tcp-sack-netbsd-02152005.diff.gz
Fixes in that patch for pre-existing TCP pcb initializations were already
committed to NetBSD-current, so are not included in this commit.
The SACK patch has been observed to correctly negotiate and respond,
to SACKs in wide-area traffic.
There are two indepenently-observed, as-yet-unresolved anomalies:
First, seeing unexplained delays between in fast retransmission
(potentially explainable by an 0.2sec RTT between adjacent
ethernet/wifi NICs); and second, peculiar and unepxlained TCP
retransmits observed over an ath0 card.
After discussion with several interested developers, I'm committing
this now, as-is, for more eyes to use and look over. Current hypothesis
is that the anomalies above may in fact be due to link/level (hardware,
driver, HAL, firmware) abberations in the test setup, affecting both
Kentaro's wired-Ethernet NIC and in my two (different) WiFi NICs.
2005-02-28 19:20:59 +03:00
|
|
|
# $NetBSD: files.netinet,v 1.10 2005/02/28 16:20:59 jonathan Exp $
|
2002-10-11 02:45:45 +04:00
|
|
|
|
|
|
|
defflag opt_tcp_debug.h TCP_DEBUG
|
|
|
|
defparam opt_tcp_debug.h TCP_NDEBUG
|
Initial commit of a port of the FreeBSD implementation of RFC 2385
(MD5 signatures for TCP, as used with BGP). Credit for original
FreeBSD code goes to Bruce M. Simpson, with FreeBSD sponsorship
credited to sentex.net. Shortening of the setsockopt() name
attributed to Vincent Jardin.
This commit is a minimal, working version of the FreeBSD code, as
MFC'ed to FreeBSD-4. It has received minimal testing with a ttcp
modified to set the TCP-MD5 option; BMS's additions to tcpdump-current
(tcpdump -M) confirm that the MD5 signatures are correct. Committed
as-is for further testing between a NetBSD BGP speaker (e.g., quagga)
and industry-standard BGP speakers (e.g., Cisco, Juniper).
NOTE: This version has two potential flaws. First, I do see any code
that verifies recieved TCP-MD5 signatures. Second, the TCP-MD5
options are internally padded and assumed to be 32-bit aligned. A more
space-efficient scheme is to pack all TCP options densely (and
possibly unaligned) into the TCP header ; then do one final padding to
a 4-byte boundary. Pre-existing comments note that accounting for
TCP-option space when we add SACK is yet to be done. For now, I'm
punting on that; we can solve it properly, in a way that will handle
SACK blocks, as a separate exercise.
In case a pullup to NetBSD-2 is requested, this adds sys/netipsec/xform_tcp.c
,and modifies:
sys/net/pfkeyv2.h,v 1.15
sys/netinet/files.netinet,v 1.5
sys/netinet/ip.h,v 1.25
sys/netinet/tcp.h,v 1.15
sys/netinet/tcp_input.c,v 1.200
sys/netinet/tcp_output.c,v 1.109
sys/netinet/tcp_subr.c,v 1.165
sys/netinet/tcp_usrreq.c,v 1.89
sys/netinet/tcp_var.h,v 1.109
sys/netipsec/files.netipsec,v 1.3
sys/netipsec/ipsec.c,v 1.11
sys/netipsec/ipsec.h,v 1.7
sys/netipsec/key.c,v 1.11
share/man/man4/tcp.4,v 1.16
lib/libipsec/pfkey.c,v 1.20
lib/libipsec/pfkey_dump.c,v 1.17
lib/libipsec/policy_token.l,v 1.8
sbin/setkey/parse.y,v 1.14
sbin/setkey/setkey.8,v 1.27
sbin/setkey/token.l,v 1.15
Note that the preceding two revisions to tcp.4 will be
required to cleanly apply this diff.
2004-04-26 02:25:03 +04:00
|
|
|
defflag opt_inet.h INET INET6 INET6_MD_CKSUM TCP_SIGNATURE
|
2004-05-01 06:21:44 +04:00
|
|
|
TCP_OUTPUT_COUNTERS TCP_REASS_COUNTERS
|
2002-10-11 02:45:45 +04:00
|
|
|
defparam opt_inet_conf.h SUBNETSARELOCAL HOSTZEROBROADCAST
|
|
|
|
|
|
|
|
defflag MROUTING
|
2004-09-05 03:29:44 +04:00
|
|
|
defflag PIM
|
2002-10-11 02:45:45 +04:00
|
|
|
defflag TCP_COMPAT_42
|
|
|
|
|
|
|
|
defparam opt_tcp_space.h TCP_RECVSPACE TCP_SENDSPACE
|
|
|
|
|
|
|
|
defflag opt_inet_csum.h INET_CSUM_COUNTERS TCP_CSUM_COUNTERS
|
|
|
|
UDP_CSUM_COUNTERS
|
|
|
|
|
|
|
|
file netinet/igmp.c inet
|
|
|
|
file netinet/in.c inet
|
|
|
|
file netinet/in_pcb.c inet
|
|
|
|
file netinet/in_proto.c inet
|
|
|
|
file netinet/ip_flow.c inet & gateway
|
|
|
|
file netinet/ip_icmp.c inet
|
2003-11-27 00:26:56 +03:00
|
|
|
file netinet/ip_id.c inet
|
2002-10-11 02:45:45 +04:00
|
|
|
file netinet/ip_input.c inet
|
|
|
|
file netinet/ip_mroute.c inet & mrouting
|
|
|
|
file netinet/ip_output.c inet
|
|
|
|
file netinet/raw_ip.c inet
|
|
|
|
|
2005-01-13 22:09:40 +03:00
|
|
|
file netinet/tcp_debug.c (inet | inet6) & tcp_debug
|
2002-10-11 02:45:45 +04:00
|
|
|
file netinet/tcp_input.c inet | inet6
|
|
|
|
file netinet/tcp_output.c inet | inet6
|
Commit TCP SACK patches from Kentaro A. Karahone's patch at:
http://www.sigusr1.org/~kurahone/tcp-sack-netbsd-02152005.diff.gz
Fixes in that patch for pre-existing TCP pcb initializations were already
committed to NetBSD-current, so are not included in this commit.
The SACK patch has been observed to correctly negotiate and respond,
to SACKs in wide-area traffic.
There are two indepenently-observed, as-yet-unresolved anomalies:
First, seeing unexplained delays between in fast retransmission
(potentially explainable by an 0.2sec RTT between adjacent
ethernet/wifi NICs); and second, peculiar and unepxlained TCP
retransmits observed over an ath0 card.
After discussion with several interested developers, I'm committing
this now, as-is, for more eyes to use and look over. Current hypothesis
is that the anomalies above may in fact be due to link/level (hardware,
driver, HAL, firmware) abberations in the test setup, affecting both
Kentaro's wired-Ethernet NIC and in my two (different) WiFi NICs.
2005-02-28 19:20:59 +03:00
|
|
|
file netinet/tcp_sack.c inet | inet6
|
2002-10-11 02:45:45 +04:00
|
|
|
file netinet/tcp_subr.c inet | inet6
|
|
|
|
file netinet/tcp_timer.c inet | inet6
|
|
|
|
file netinet/tcp_usrreq.c inet | inet6
|
|
|
|
|
|
|
|
file netinet/udp_usrreq.c inet | inet6
|