History log of /openbsd-src/sys/netinet/tcp_output.c (Results 26 – 50 of 151)
Revision Date Author Comments
# 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 ...


1234567