#
0e560947 |
| 13-Sep-2018 |
bluhm <bluhm@openbsd.org> |
Add reference counting for inet pcb, this will be needed when we start locking the socket. An inp can be referenced by the PCB queue and hashes, by a pf mbuf header, or by a pf state key. OK visa@
|
#
4e64d49b |
| 11-Jun-2018 |
bluhm <bluhm@openbsd.org> |
The output from tcp debug sockets was incomplete. After detach tp was NULL and nothing was traced. So save the old tcpcb and use that to retrieve some information. Note that otb may be freed and m
The output from tcp debug sockets was incomplete. After detach tp was NULL and nothing was traced. So save the old tcpcb and use that to retrieve some information. Note that otb may be freed and must not be dereferenced. Use a heuristic for cases where the address family is in the IP header but not provided in the PCB. OK visa@
show more ...
|
#
5bcca80f |
| 08-May-2018 |
bluhm <bluhm@openbsd.org> |
Historically there were slow and fast tcp timeouts. That is why the delack timer had a different implementation. Use the same mechanism for all TCP timer. OK mpi@ visa@
|
#
e441a72a |
| 25-Oct-2017 |
job <job@openbsd.org> |
Remove the TCP_FACK option and associated #if{,n}def code.
TCP_FACK was disabled by provos@ in June 1999. TCP_FACK is an algorithm that decides that when something is lost, all not SACKed packets un
Remove the TCP_FACK option and associated #if{,n}def code.
TCP_FACK was disabled by provos@ in June 1999. TCP_FACK is an algorithm that decides that when something is lost, all not SACKed packets until the most forward SACK are lost. It may be a correct estimate, if network does not reorder packets.
OK visa@ mpi@ mikeb@
show more ...
|
#
86385160 |
| 22-Oct-2017 |
mikeb <mikeb@openbsd.org> |
Unconditionally enable TCP selective acknowledgements (SACK)
OK deraadt, mpi, visa, job
|
#
06235387 |
| 26-Jun-2017 |
mpi <mpi@openbsd.org> |
Assert that the corresponding socket is locked when manipulating socket buffers.
This is one step towards unlocking TCP input path. Note that all the functions asserting for the socket lock are not
Assert that the corresponding socket is locked when manipulating socket buffers.
This is one step towards unlocking TCP input path. Note that all the functions asserting for the socket lock are not necessarilly MP-safe. All the fields of 'struct socket' aren't protected.
Introduce a new kernel-only kqueue hint, NOTE_SUBMIT, to be able to tell when a filter needs to lock the underlying data structures. Logic and name taken from NetBSD.
Tested by Hrvoje Popovski.
ok claudio@, bluhm@, mikeb@
show more ...
|
#
b100edd3 |
| 18-May-2017 |
mpi <mpi@openbsd.org> |
Merge the content of <netinet/tcpip.h> and <netinet6/tcpipv6.h> in <netinet/tcp_debug.h>.
The IPv6 variant was always included and the IPv4 version is not present on all systems.
Most of the offend
Merge the content of <netinet/tcpip.h> and <netinet6/tcpipv6.h> in <netinet/tcp_debug.h>.
The IPv6 variant was always included and the IPv4 version is not present on all systems.
Most of the offending ports are already fixed, thanks to sthen@!
show more ...
|
#
79a86c4b |
| 09-Feb-2017 |
jca <jca@openbsd.org> |
percpu counters for TCP stats
ok mpi@ bluhm@
|
#
a6ae9b10 |
| 19-Jul-2016 |
bluhm <bluhm@openbsd.org> |
Plug an mbuf leak in the error path of tcp signature in tcp_output(). OK claudio@ henning@
|
#
1b7a4691 |
| 13-Jun-2016 |
bluhm <bluhm@openbsd.org> |
On localhost a user program may create a socket splicing loop. After writing data into this loop, it was spinning forever causing a kernel hang. Detect the loop by counting how often the same mbuf i
On localhost a user program may create a socket splicing loop. After writing data into this loop, it was spinning forever causing a kernel hang. Detect the loop by counting how often the same mbuf is spliced. If that happens 128 times, assume that there is a loop and abort the splicing with ELOOP. Bug found by tedu@; OK tedu@ millert@ benno@
show more ...
|
#
ff6ecb58 |
| 05-Dec-2015 |
tedu <tedu@openbsd.org> |
upgrade tcp/ip to use the latest in C89 technology: memcpy. ok henning
|
#
93e31651 |
| 24-Oct-2015 |
mpi <mpi@openbsd.org> |
Ignore Router Advertisment's current hop limit.
Appart from the usual inet6 axe murdering exercise to keep you fit, this allows us to get rid of a lot of layer violation due to the use of per- ifp v
Ignore Router Advertisment's current hop limit.
Appart from the usual inet6 axe murdering exercise to keep you fit, this allows us to get rid of a lot of layer violation due to the use of per- ifp variables to store the current hop limit.
Imputs from bluhm@, ok phessler@, florian@, bluhm@
show more ...
|
#
09d936d6 |
| 11-Sep-2015 |
claudio <claudio@openbsd.org> |
Kill yet another argument to functions in IPv6. This time ip6_output's ifpp - XXX: just for statistics ifpp is always NULL in all callers so that statistic confirms ifpp is dying OK mpi@
|
#
72b3c704 |
| 13-Jul-2015 |
bluhm <bluhm@openbsd.org> |
Avoid a situation where we do not set the tcp persist timer after a zero window condition. If you send a 0-length packet, but there is data is the socket buffer, and neither the rexmt or persist tim
Avoid a situation where we do not set the tcp persist timer after a zero window condition. If you send a 0-length packet, but there is data is the socket buffer, and neither the rexmt or persist timer is already set, then activate the persist timer. From FreeBSD revision 284941; OK deraadt@ markus@ mikeb@ claudio@
show more ...
|
#
8990c937 |
| 30-Jun-2015 |
mpi <mpi@openbsd.org> |
Get rid of the undocumented & temporary* m_copy() macro added for compatibility with 4.3BSD in September 1989.
*Pick your own definition for "temporary".
ok bluhm@, claudio@, dlg@
|
#
fb492c37 |
| 16-Jun-2015 |
mpi <mpi@openbsd.org> |
Store a unique ID, an interface index, rather than a pointer to the receiving interface in the packet header of every mbuf.
The interface pointer should now be retrieved when necessary with if_get()
Store a unique ID, an interface index, rather than a pointer to the receiving interface in the packet header of every mbuf.
The interface pointer should now be retrieved when necessary with if_get(). If a NULL pointer is returned by if_get(), the interface has probably been destroy/removed and the mbuf should be freed.
Such mechanism will simplify garbage collection of mbufs and limit problems with dangling ifp pointers.
Tested by jmatthew@ and krw@, discussed with many.
ok mikeb@, bluhm@, dlg@
show more ...
|
#
6d50da9d |
| 07-Jun-2015 |
krw <krw@openbsd.org> |
Replace a bunch of == 0 with == NULL in pointer tests. Nuke some annoying trailing, leading and embedded whitespace. No change to .o files.
ok deraadt@
|
#
21dab745 |
| 14-Mar-2015 |
jsg <jsg@openbsd.org> |
Remove some includes include-what-you-use claims don't have any direct symbols used. Tested for indirect use by compiling amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
#
ad7d1a35 |
| 19-Dec-2014 |
tedu <tedu@openbsd.org> |
unifdef INET in net code as a precursor to removing the pretend option. long live the one true internet. ok henning mikeb
|
#
2ec318bf |
| 22-Jul-2014 |
mpi <mpi@openbsd.org> |
Fewer <netinet/in_systm.h> !
|
#
4dc494bb |
| 21-Apr-2014 |
henning <henning@openbsd.org> |
ip_output() using varargs always struck me as bizarre, esp since it's only ever used to pass on uint32 (for ipsec). stop that madness and just pass the uint32, 0 in all cases but the two that pass th
ip_output() using varargs always struck me as bizarre, esp since it's only ever used to pass on uint32 (for ipsec). stop that madness and just pass the uint32, 0 in all cases but the two that pass the ipsec flowinfo. ok deraadt reyk guenther
show more ...
|
#
5ee8afe3 |
| 14-Apr-2014 |
mpi <mpi@openbsd.org> |
"struct pkthdr" holds a routing table ID, not a routing domain one. Avoid the confusion by using an appropriate name for the variable.
Note that since routing domain IDs are a subset of the set of r
"struct pkthdr" holds a routing table ID, not a routing domain one. Avoid the confusion by using an appropriate name for the variable.
Note that since routing domain IDs are a subset of the set of routing table IDs, the following idiom is correct:
rtableid = rdomain
But to get the routing domain ID corresponding to a given routing table ID, you must call rtable_l2(9).
claudio@ likes it, ok mikeb@
show more ...
|
#
8cedb4b1 |
| 07-Apr-2014 |
mpi <mpi@openbsd.org> |
Retire kernel support for SO_DONTROUTE, this time without breaking localhost connections.
The plan is to always use the routing table for addresses and routes resolutions, so there is no future for
Retire kernel support for SO_DONTROUTE, this time without breaking localhost connections.
The plan is to always use the routing table for addresses and routes resolutions, so there is no future for an option that wants to bypass it. This option has never been implemented for IPv6 anyway, so let's just remove the IPv4 bits that you weren't aware of.
Tested a least by lteo@, guenther@ and chrisz@, ok mikeb@, benno@
show more ...
|
#
e4bb3a60 |
| 28-Mar-2014 |
sthen <sthen@openbsd.org> |
revert "Retire kernel support for SO_DONTROUTE" diff, which does bad things for localhost connections. discussed with deraadt@
|
#
8da45731 |
| 27-Mar-2014 |
mpi <mpi@openbsd.org> |
Retire kernel support for SO_DONTROUTE, since the plan is to always use the routing table there's no future for an option that wants to bypass it. This option has never been implemented for IPv6 any
Retire kernel support for SO_DONTROUTE, since the plan is to always use the routing table there's no future for an option that wants to bypass it. This option has never been implemented for IPv6 anyway, so let's just remove the IPv4 bits that you weren't aware of.
Tested by florian@, man pages inputs from jmc@, ok benno@
show more ...
|