#
7b2d6074 |
| 24-Oct-2013 |
mpi <mpi@openbsd.org> |
Remove the number of in6_var.h inclusions by moving some functions and global variables to in6.h.
ok deraadt@
|
#
b90d0bcc |
| 19-Oct-2013 |
henning <henning@openbsd.org> |
make in_proto_cksum_out not rely on the pseudo header checksum to be already there, just compute it - it's dirt cheap. since that happens very late in ip_output, the rest of the stack doesn't have to
make in_proto_cksum_out not rely on the pseudo header checksum to be already there, just compute it - it's dirt cheap. since that happens very late in ip_output, the rest of the stack doesn't have to care about checksums at all any more, if something needs to be checksummed, just set the flag on the pkthdr mbuf to indicate so. stop pre-computing the pseudo header checksum and incrementally updating it in the tcp and udp stacks. ok lteo florian
show more ...
|
#
2841e731 |
| 12-Aug-2013 |
bluhm <bluhm@openbsd.org> |
Add the TCP socket option TCP_NOPUSH to delay sending the stream. This is useful to aggregate data in the kernel from multiple sources like writes and socket splicing. It avoids sending small packet
Add the TCP socket option TCP_NOPUSH to delay sending the stream. This is useful to aggregate data in the kernel from multiple sources like writes and socket splicing. It avoids sending small packets. From FreeBSD via David Hill; OK mikeb@ henning@
show more ...
|
#
140ea8b6 |
| 03-Jun-2013 |
bluhm <bluhm@openbsd.org> |
Link pf states and socket inpcbs together more tightly. The linking was only done when a packet traveled up the stack from pf to tcp_input(). Now also link the state and inpcb when the packet is go
Link pf states and socket inpcbs together more tightly. The linking was only done when a packet traveled up the stack from pf to tcp_input(). Now also link the state and inpcb when the packet is going down from tcp_output() to pf. As a consequence, divert-reply states where the initial SYN does not get an answer, can be handled more correctly.
This change is part of a larger diff that has been backed out in 2011. Bring the feature back in small steps to see when bad things start to happen.
OK henning deraadt
show more ...
|
#
fb4f30fc |
| 20-Sep-2012 |
blambert <blambert@openbsd.org> |
spltdb() was really just #define'd to be splsoftnet(); replace the former with the latter
no change in md5 checksum of generated files
ok claudio@ henning@
|
#
dda46e08 |
| 13-May-2011 |
oga <oga@openbsd.org> |
Revert the pf->socket linking diff.
at least krw@, pirofti@ and todd@ have been seeing panics (todd and krw with xxxterm not sure about pirofti) involving pool corruption while using this commit.
k
Revert the pf->socket linking diff.
at least krw@, pirofti@ and todd@ have been seeing panics (todd and krw with xxxterm not sure about pirofti) involving pool corruption while using this commit.
krw and todd confirm that this backout fixes the problem.
ok blambert@ krw@, todd@ henning@ and kettenis@
Double link between pf states and sockets. Henning has already implemented half of it. The additional part is: - The pf state lookup for outgoing packets is optimized by using mbuf->inp->state. - For incomming tcp, udp, raw, raw6 packets the socket lookup always is optimized by using mbuf->state->inp. - All protocols establish the link for incomming packets. - All protocols set the inp in the mbuf for outgoing packets. This allows the linkage beginning with the first packet for outgoing connections. - In case of divert states, delete the state when the socket closes. Otherwise new connections could match on old states instead of being diverted to the listen socket. ok henning@
show more ...
|
#
806fbec1 |
| 24-Apr-2011 |
bluhm <bluhm@openbsd.org> |
Double link between pf states and sockets. Henning has already implemented half of it. The additional part is: - The pf state lookup for outgoing packets is optimized by using mbuf->inp->state. -
Double link between pf states and sockets. Henning has already implemented half of it. The additional part is: - The pf state lookup for outgoing packets is optimized by using mbuf->inp->state. - For incomming tcp, udp, raw, raw6 packets the socket lookup always is optimized by using mbuf->state->inp. - All protocols establish the link for incomming packets. - All protocols set the inp in the mbuf for outgoing packets. This allows the linkage beginning with the first packet for outgoing connections. - In case of divert states, delete the state when the socket closes. Otherwise new connections could match on old states instead of being diverted to the listen socket. ok henning@
show more ...
|
#
1911f71f |
| 05-Apr-2011 |
henning <henning@openbsd.org> |
mechanic rename M_{TCP|UDP}V4_CSUM_OUT -> M_{TCP|UDP}_CSUM_OUT ok claudio krw
|
#
3e816f04 |
| 07-Jan-2011 |
bluhm <bluhm@openbsd.org> |
Add socket option SO_SPLICE to splice together two TCP sockets. The data received on the source socket will automatically be sent on the drain socket. This allows to write relay daemons with zero da
Add socket option SO_SPLICE to splice together two TCP sockets. The data received on the source socket will automatically be sent on the drain socket. This allows to write relay daemons with zero data copy. ok markus@
show more ...
|
#
5d991f01 |
| 24-Sep-2010 |
claudio <claudio@openbsd.org> |
TCP send and recv buffer scaling. Send buffer is scaled by not accounting unacknowledged on the wire data against the buffer limit. Receive buffer scaling is done similar to FreeBSD -- measure the de
TCP send and recv buffer scaling. Send buffer is scaled by not accounting unacknowledged on the wire data against the buffer limit. Receive buffer scaling is done similar to FreeBSD -- measure the delay * bandwith product and base the buffer on that. The problem is that our RTT measurment is coarse so it overshoots on low delay links. This does not matter that much since the recvbuffer is almost always empty. Add a back pressure mechanism to control the amount of memory assigned to socketbuffers that kicks in when 80% of the cluster pool is used. Increases the download speed from 300kB/s to 4.4MB/s on ftp.eu.openbsd.org.
Based on work by markus@ and djm@.
OK dlg@, henning@, put it in deraadt@
show more ...
|
#
d9dceccb |
| 08-Sep-2010 |
claudio <claudio@openbsd.org> |
Return EACCES when pf_test() blocks a packet in ip_output(). This allows ip_forward() to know the difference between blocked packets and those that can't be forwarded (EHOSTUNREACH). Only in the latt
Return EACCES when pf_test() blocks a packet in ip_output(). This allows ip_forward() to know the difference between blocked packets and those that can't be forwarded (EHOSTUNREACH). Only in the latter case an ICMP should be sent. In the other callers of ip_output() change the error back to EHOSTUNREACH since userland may not expect EACCES on a sendto(). OK henning@, markus@
show more ...
|
#
05d65ec4 |
| 09-Jul-2010 |
reyk <reyk@openbsd.org> |
Add support for using IPsec in multiple rdomains.
This allows to run isakmpd/iked/ipsecctl in multiple rdomains independently (with "route exec"); the kernel will pickup the rdomain from the process
Add support for using IPsec in multiple rdomains.
This allows to run isakmpd/iked/ipsecctl in multiple rdomains independently (with "route exec"); the kernel will pickup the rdomain from the process context of the pfkey socket and load the flows and SAs into the matching rdomain encap routing table. The network stack also needs to pass the rdomain to the ipsec stack to lookup the correct rdomain that belongs to an interface/mbuf/... You can now run individual IPsec configs per rdomain or create IPsec VPNs between multiple rdomains on the same machine ;). Note that a primary enc(4) in addition to enc0 interface is required per rdomain, eg. enc1 rdomain 1.
Test by some people, mostly on existing "rdomain 0" setups. Was in snaps for some days and people didn't complain.
ok claudio@ naddy@
show more ...
|
#
8bb39f08 |
| 03-Jul-2010 |
guenther <guenther@openbsd.org> |
Fix the naming of interfaces and variables for rdomains and rtables and make it possible to bind sockets (including listening sockets!) to rtables and not just rdomains. This changes the name of the
Fix the naming of interfaces and variables for rdomains and rtables and make it possible to bind sockets (including listening sockets!) to rtables and not just rdomains. This changes the name of the system calls, socket option, and ioctl. After building with this you should remove the files /usr/share/man/cat2/[gs]etrdomain.0.
Since this removes the existing [gs]etrdomain() system calls, the libc major is bumped.
Written by claudio@, criticized^Wcritiqued by me
show more ...
|
#
5dd8ecbb |
| 28-May-2010 |
kettenis <kettenis@openbsd.org> |
Make sure the temporary buffer used to generate tcp options is properly aligned, otherwise we lose on strict alignment architecture. Should fix problems with gcc4 compiled bsd.rd's that people see o
Make sure the temporary buffer used to generate tcp options is properly aligned, otherwise we lose on strict alignment architecture. Should fix problems with gcc4 compiled bsd.rd's that people see on sparc64.
ok millert@, beck@, jsing@
show more ...
|
#
22760f56 |
| 05-Jun-2009 |
claudio <claudio@openbsd.org> |
Initial support for routing domains. This allows to bind interfaces to alternate routing table and separate them from other interfaces in distinct routing tables. The same network can now be used in
Initial support for routing domains. This allows to bind interfaces to alternate routing table and separate them from other interfaces in distinct routing tables. The same network can now be used in any doamin at the same time without causing conflicts. This diff is mostly mechanical and adds the necessary rdomain checks accross net and netinet. L2 and IPv4 are mostly covered still missing pf and IPv6. input and tested by jsg@, phessler@ and reyk@. "put it in" deraadt@
show more ...
|
#
14d76033 |
| 03-Sep-2008 |
henning <henning@openbsd.org> |
do not set the pkthdr mbuf state key pointer to the state key saved in the pcb. the state key ptr in the pcb is the one that had to be used by pf outbound. but by convention the state key pointer in
do not set the pkthdr mbuf state key pointer to the state key saved in the pcb. the state key ptr in the pcb is the one that had to be used by pf outbound. but by convention the state key pointer in the pkthdr is the one used INbound, so pf follows its reverse pointer to find the sk to use, and since a reverse doesn't exist for locally terminated connections the reverse pointer is null and thus the whole game a noop. note that this only affects packets FROM local udp/tcp sockets, for the other direction everything works as expected.
show more ...
|
#
954bc2dc |
| 03-Jul-2008 |
henning <henning@openbsd.org> |
link pf state keys to tcp pcbs and vice versa. when we first do a pcb lookup and we have a pointer to a pf state key in the mbuf header, store the state key pointer in the pcb and a pointer to the pc
link pf state keys to tcp pcbs and vice versa. when we first do a pcb lookup and we have a pointer to a pf state key in the mbuf header, store the state key pointer in the pcb and a pointer to the pcb we just found in the state key. when either the state key or the pcb is removed, clear the pointers. on subsequent packets inbound we can skip the pcb lookup and just use the pointer from the state key. on subsequent packets outbound we can skip the state key lookup and use the pointer from the pcb. about 8% speedup with 100 concurrent tcp sessions, should help much more with more tcp sessions. ok markus ryan
show more ...
|
#
7cc2a0c7 |
| 28-Jun-2008 |
markus <markus@openbsd.org> |
no EOL between tcpsig and sack headers; ok jsing, frantzen
|
#
77dc329b |
| 12-Jun-2008 |
jsing <jsing@openbsd.org> |
Remove some crazy #if mess.
ok markus@ henning@
|
#
fe427352 |
| 12-Jun-2008 |
jsing <jsing@openbsd.org> |
ANSIfy function definitions.
ok markus@ mcbride@ henning@ deraadt@
|
#
f7ab9cef |
| 24-Nov-2007 |
jmc <jmc@openbsd.org> |
some spelling fixes from Martynas Venckus
|
#
2e53853b |
| 01-Jun-2007 |
henning <henning@openbsd.org> |
apply the "skip ipsec if there are no flows" speedup diff to IPv6 too. we need a pointer to the inpcb to decide, which was not previously passed to ip6_output, so this diff is a little bigger. from i
apply the "skip ipsec if there are no flows" speedup diff to IPv6 too. we need a pointer to the inpcb to decide, which was not previously passed to ip6_output, so this diff is a little bigger. from itojun, ok ryan
show more ...
|
#
4063babe |
| 30-Jun-2005 |
markus <markus@openbsd.org> |
implement PMTU checks from http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html i.e. don't act on ICMP-need-frag immediately if adhoc checks on the advertised mtu fail. the mtu update
implement PMTU checks from http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html i.e. don't act on ICMP-need-frag immediately if adhoc checks on the advertised mtu fail. the mtu update is delayed until a tcp retransmit happens. initial patch by Fernando Gont, tested by many.
show more ...
|
#
53b31d65 |
| 24-May-2005 |
fgont <fgont@openbsd.org> |
Ignore ICMP Source Quench messages meant for TCP connections. (Details in http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html) ok markus frantzen
|
#
b1370ee4 |
| 25-Apr-2005 |
brad <brad@openbsd.org> |
csum -> csum_flags
ok krw@ canacar@
|