summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_input.c
AgeCommit message (Collapse)Author
2001-07-07fix comment to make life easier for my special friend darren.Niels Provos
2001-07-04Make preprocessor happier, don't give it untasty tokens at end of input.Marc Espie
Ok millert@
2001-06-24Save tdb_remote_auth on the PCB on latching; also save information onAngelos D. Keromytis
UDP PCB's if the socket is connected.
2001-06-23Clear the checksum flags after verification. Also, don't countAngelos D. Keromytis
checksum errors as hardware checksum packets as well.
2001-06-23Keep stats on TCP/UDP hardware checksumming.Angelos D. Keromytis
2001-06-23TCP, UDP, IPv4 input hardware checksumming processing; also IPv4Angelos D. Keromytis
output hardware checksumming. Not tested yet, but should be done tonight. Remain to be solved: interactions with bridge, TCP/UDP output checksumming, interactions of TCP/UDP checksumming with routing changes.
2001-06-12IPsec-related socket options; these can be set/removed/retrieved, butAngelos D. Keromytis
are not taken into consideration in anything just yet.
2001-06-08Cut down on include files.Angelos D. Keromytis
2001-06-05repair copyright notices for NRL & cmetz; cmetzTheo de Raadt
2001-05-27Also copy the authentication material to the new socket.Angelos D. Keromytis
2001-05-27Update pointers to IPsec-related PCB information when allocating newAngelos D. Keromytis
PCB; store information from the TDB to the PCB, if it's not initialized, so processed can eventually retrieve it.
2001-05-27Use the new IPsec tags.Angelos D. Keromytis
2001-05-20Use packet tags instead of tdbi.Angelos D. Keromytis
2001-05-12Less verbose; angelos@ okAaron Campbell
2001-05-11Check m_pullup() and m_pullup2() return for NULL, not 0; itojun@ okAaron Campbell
2001-05-01Typo in comment.Aaron Campbell
2001-04-04do not check ip_mtudisc on IPv6 TCP.Jun-ichiro itojun Hagino
with IPv6 TCP PMTUD is mandatory, compute mss size accordingly. sync with kame
2001-03-28Allow tdbi's to appear in mbufs throughout the stack; this allowsAngelos D. Keromytis
security properties of the packets to be pushed up to the application (not done yet). Eventually, this will be turned into a packet attributes framework. Make sure tdbi's are free'd/cleared properly whenever drivers (or NFS) does weird things with mbufs.
2001-02-08witch raw ip6 socket code from NRL to kame.Jun-ichiro itojun Hagino
makes upgrades/code sharing much easier.
2000-12-13more random tcp sequence numbers. okay deraadt@, angelos@Niels Provos
2000-12-11nuke #ifdef TCP6 (no longer supported).Jun-ichiro itojun Hagino
validate ICMPv6 too big messages (pmtud) based on pcb. we accept certain amount of non-validated ones, as IPv6 mandates ICMPv6 (so even for traffic from unconnected pcb, we need pmtud). sync with kame
2000-10-14implement net.inet.tcp.rstppslimit. rate-limits outbound TCP RST trafficJun-ichiro itojun Hagino
to less than N per 1 second.
2000-10-11nuke inp_flags bits for controlling IPv4 mapped address.Jun-ichiro itojun Hagino
we don't support IPv4 mapped address, and there are inconsistent bit manipulation code so it's safer to nuke them.
2000-09-25on expiry of pmtu route, retry higher mtu. okay angelos@Niels Provos
2000-09-23Angelos you forgot this one !!Chris Cappuccio
2000-09-21calculate maxopd at the right placeNiels Provos
2000-09-20correctly calculate mssNiels Provos
2000-09-19only free tdbi if IPSECTheo de Raadt
2000-09-19Lots and lots of changes.Angelos D. Keromytis
2000-09-18fix compilation problem on systems w/o inet6.Federico G. Schwindt
2000-09-18Path MTU discovery based on NetBSD but with the decision to use the DFNiels Provos
flag delayed to ip_output(). That halves the code and reduces most of the route lookups. okay deraadt@
2000-09-05various fixes to SACK and FACK from adesai@cisco.com, tomh@tomh.org andNiels Provos
osuga@mml.yrp.nttdocomo.co.jp
2000-07-27be proactive about unspecified IPv6 source address. pcb layer usesJun-ichiro itojun Hagino
unspecified address (::) to mean "unbounded" or "unconnected", and can be confused by packets from outside. use of :: as source is not documented well in IPv6 specification. not sure if it presents a real threat. the worst case scenario is a DoS against TCP listening socket: - outsider transmit TCP SYN with :: as IPv6 source - receiving side creates TCP control block with: local address = my addres remote address = :: (meaning "unconnected") state = SYN_RCVD note that SYN ACK will not be sent due to ip6_output() filter. this stays until it timeouts. - the TCP control block prevents listening TCP control block from being contacted (DoS).
2000-07-11compute correct window scale when recvpipe option is set in route; basedNiels Provos
on diff from "Pete Kazmier" <pete@kazmier.com>
2000-07-09be more cautious about tcp option length field. drop bogus ones earlier.Jun-ichiro itojun Hagino
not sure if there is a real threat or not, but it seems that there's possibility for overrun/underrun (like non-NOP option with optlen > cnt).
2000-07-06Move domain.h above so this compiles again.Federico G. Schwindt
Remove netinet.h within ifdef INET6; this is already included.
2000-07-06- more icmp6/ip6 stats.Jun-ichiro itojun Hagino
- protect IPv6 ND from being hosed (due to neighbor unreachability detection hint) by wrong tcp traffic. still not sure if there's real attack, but it is good to be cautious. - avoid bitfield for router renumbering header decl. - implement packet-per-sec limitation for icmp6 errors, turn interval limit off (it is not very useful due to unix timer resolution).
2000-07-06completely remove ipv4 mapped cases from tcp_input().Jun-ichiro itojun Hagino
cleanup (indentation, v4-or-v6 conditions)
2000-07-05more cleanup for IPv4 mapped address support. there seem to be someJun-ichiro itojun Hagino
inconsistency in corner cases (from NRL I believe). todd (fries) and I have seen panic, with the following call chain: ip6_input -> tcp_input -> tcp_respond -> ip_input -> bang! more cleanups should be done, to decrease complexity. for example, INP_IPV6_MAPPED should be nuked.
2000-05-15Add comment on input MSS calculation based on previous PMTUD results,Angelos D. Keromytis
as per TCP-imply IETF WG draft(s). The correct approach is to just use the relevant interface's MTU.
2000-04-28actually m_adj tries to drop tcp header part. it is better toJun-ichiro itojun Hagino
touch tcp header before m_adj, than the other way around. (no behavior change with the current m_adj code, new code is safer against any future m_adj changes)
2000-04-27mbuf is freed by sbappend(), move the references to th up. found by art@Niels Provos
2000-04-14for layer 3 protocols that does not support path MTU discoveryJun-ichiro itojun Hagino
(I mean, IPv4) do not try to use rmx_mtu on routing table. this symptom was introduced by rmx_mtu initialization (necessary for IPv6 path MTU discovery) in net/route.c. now prior behavior is recovered. From: Hugh Graham <hugh@openbsd.org> there are several question about mssdflt semantics, though: Question 1: with the current code, mssdflt does not override rmx_mtu value (mssdflt overrides interface mtu only). should we override rmx_mtu by mssdflt as well? Question 2: with the current code, mssdflt overrides mss computed from if mtu, only when the destination is IPv4 non-local. is it safe enough? we may want to use mssdflt, whenever we are uncertain. mss = if mtu - hdrsiz; if (IPv4 non-local destination) mss = min(mss, mssdflt);
2000-02-21TCP SACK fixes via Tom Henderson (tomh@cs.berkeley.edu):Niels Provos
- tcp_sack_adjust() was completely rewritten, since it was erroneously referencing receiver side sequence numbers and comparing with sender side sequence numbers (thanks to Arun Desai (adesai@cisco.com) who discovered the problem) - in tcp_output(), moved assignment of sendalot=0 to the piece of code immediately following the search for sack-eligible retransmissions (bug identified by Arun Desai). - tcp_input() was not clearing t_dupacks if fewer than three dupacks arrived between acks of new data. (bug identified by Gaurav Banga (gaurav@netapp.com))
1999-12-21option TCP_NEWRENO goes away, its the default case for TCP_SACK ifNiels Provos
SACK is disabled for the connection or via sysctl
1999-12-21be paranoid about malicious use of v4 mapped addr on v6 packet.Jun-ichiro itojun Hagino
malicious party may try to use v4 mapped addr as source/dest to confuse tcp/udp layer, or to bypass security checks, for example, naive stack can mistakingly think a packet with src = ::ffff:127.0.0.1 is from local node. (sync with kame)
1999-12-15never go into persist mode if there are still segments to be retransmitted.Niels Provos
set retransmit timer again if it was cleared, that can happen in SACK when there are no elligble SACK holes to be retransmitted and the receiver window is full.
1999-12-14sack.end may not be > tp->snd_max but can be equal.Niels Provos
1999-12-08bring in KAME IPv6 code, dated 19991208.Jun-ichiro itojun Hagino
replaces NRL IPv6 layer. reuses NRL pcb layer. no IPsec-on-v6 support. see sys/netinet6/{TODO,IMPLEMENTATION} for more details. GENERIC configuration should work fine as before. GENERIC.v6 works fine as well, but you'll need KAME userland tools to play with IPv6 (will be bringed into soon).
1999-11-15Fix tcp retransmit/persist timers, provos@ OK.Hugh Graham
Adapted from NetBSD: Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.