| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
it consists of
- ECN support in TCP
- tunnel-egress and fragment reassembly rules in layer-3 not to lose
congestion info at tunnel-egress and fragment reassembly
to enable ECN in TCP, build a kernel with TCP_ECN, and then,
turn it on by "sysctl -w net.inet.tcp.ecn=1".
ok deraadt@
|
| | |
|
| |
|
|
| |
tcp connections during tcp_slowtimo. apdapted from thorpej@netbsd.org
|
| |
|
|
|
| |
from netbsd; also fix a bug where setting TF_ACKNOW didn't actually
result in an ack.
|
| |
|
|
| |
adapated from netbsd. okay angelos@
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
well (not at all) with shortages of the vm_map where the pages are mapped
(usually kmem_map).
Try to deal with it:
- group all information the backend allocator for a pool in a separate
struct. The pool will only have a pointer to that struct.
- change the pool_init API to reflect that.
- link all pools allocating from the same allocator on a linked list.
- Since an allocator is responsible to wait for physical memory it will
only fail (waitok) when it runs out of its backing vm_map, carefully
drain pools using the same allocator so that va space is freed.
(see comments in code for caveats and details).
- change pool_reclaim to return if it actually succeeded to free some
memory, use that information to make draining easier and more efficient.
- get rid of PR_URGENT, noone uses it.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
(older code had "th_sum = 0" at the bottom of the function, which was
removed during TCP hardware checksumming change)
|
| |
|
|
|
| |
Fixes problem with bad checksums on keepalives
OK provos@
|
| | |
|
| | |
|
| |
|
|
|
| |
if it exists). Cuts down on code a bit, and we don't need to look at
the routing entry at TCP. Based on NetBSD. UDP case to follow.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
option is used. Note that this does not work.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
transmit a truncated icmp6 packet and panic the system. sync with kame.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
flag delayed to ip_output(). That halves the code and reduces most of
the route lookups. okay deraadt@
|
| | |
|
| |
|
|
| |
on diff from "Pete Kazmier" <pete@kazmier.com>
|
| |
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
| |
don't work yet anyhow, so there's no point compiling them in.
|
| |
|
|
| |
FreeBSD PR: 16914
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
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).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
protocols.
"struct tcpiphdr" is now gone from much of the code, as are separate pointers
for ti and ti6. The result is fewer variables, which is generally a good thing.
Simple if(is_ipv6) ... else ... tests are gone in favor of a
switch(protocol family), which allows future new protocols to be added easily.
This also makes it possible for someone so inclined to re-implement TUBA (TCP
over CLNP?) and do it right instead of the kluged way it was done in 4.4.
The TCP header template is now referenced through a mbuf rather than done
through a data pointer and dtom()ed as needed. This is partly because dtom() is
evil and partly because max_linkhdr + IPv6 + TCP + MSS/TS/SACK opts won't fit
inside a packet header mbuf, so we need to grab a cluster for that (which the
code now does, if needed).
|
| | |
|