| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
no objection from mcbride@ krw@ markus@ deraadt@
|
| |
|
|
|
|
|
|
|
| |
an SCM_RIGHTS message may sleep. Bits and pieces from NetBSD with some
simplifications by yours truly.
Fixes the "receive 1" panic seen by many.
ok guenther@, claudio@
|
| |
|
|
|
| |
also added to the other direction.
ok mikeb@
|
| |
|
|
|
|
|
| |
field of the `splice' structure can be used to specify a period of
inactivity after which splicing will be dissolved. ETIMEDOUT error
retrieved with a SO_ERROR indicates the idle timeout expiration.
With comments from and OK bluhm.
|
| |
|
|
|
|
| |
the obvious cases to return EINVAL and ENXIO.
ok tedu deraadt
|
| |
|
|
| |
discussed with and ok claudio
|
| |
|
|
| |
ok claudio@
|
| |
|
|
|
| |
the same variable. Leak found with dlg's magic mbuf leakage finder.
OK henning@, deraadt@
|
| |
|
|
|
|
| |
socketbuffer size of the closed side since on half close the high
watermark was set to 0.
OK blambert@
|
| |
|
|
|
|
|
|
| |
end-of-file but still has data in the receive buffer, soreceive()
should block until all data has been moved.
To make kqueue work with socket splicing, it has to report spliced
sockets as non-readable.
ok deraadt@
|
| |
|
|
|
|
|
|
|
|
| |
socket. soreceive() releases splsoftnet for uiomove(). In that
moment, somove() could pull the mbuf from the receive buffer. After
that, soreceive removed the mbuf again. The corrupted length
accounting resulted in a panic.
The fix is to block read calls in soreceive() until splicing has
been finished.
just commit deraadt@
|
| |
|
|
|
|
| |
immediately by unsetting the SS_ISSENDING flag. This prevents a
possible 5 seconds delay in socket splicing.
ok markus@; commit it deraadt@
|
| |
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
getpeereid(2), but also supplies the remote pid. This is supplied in
a 'struct sockpeercred' (unlike Linux -- they showed how little they
know about real unix by calling theirs 'struct ucred').
ok guenther ajacoutot
|
| |
|
|
| |
miod@ deraadt@ ok.
|
| |
|
|
|
|
| |
just use strings and make things unique.
ok claudio@
|
| |
|
|
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
| |
levels. This will allow for platforms where soft interrupt levels do not
map to real hardware interrupt levels to have soft ipl values overlapping
hard ipl values without breaking spl asserts.
|
| |
|
|
| |
the receiving side when passing fd's. ok deraadt@ kettenis@
|
| |
|
|
|
|
| |
This sort of breaking with traditional and expected behavior annoys me.
"yes!" henning@
|
| |
|
|
|
|
|
|
|
| |
becomes a very large number it will not wrap the short into a negative
number and screw up timeouts. It will simply become a max of 65535. Since
this happens when HZ is cranked to a high number, this will still only take
n seconds, or less. Safer than crashing.
Prompted by PR 5511
ok guenther
|
| |
|
|
|
|
|
|
|
|
|
| |
error handler that was never used before. this fixes a bug that a
userland process might hang if the system ran out of mbuf clusters or
even other unexpected behaviour in the network drivers.
this bug is very old - it is also found in rev 1.1/stevens v2/44lite2/...
discussed with many
ok markus@ thib@ dlg@
|
| |
|
|
|
|
|
| |
conversions that should shave a few bytes off the kernel.
ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer
FOO|BAR''; thanks for looking.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
get hung in nfs_reconnect() because they do not have the proper
privilages to bind to a socket, by adding a struct proc * argument
to sobind() (and the *_usrreq() routines, and finally in{6}_pcbbind)
and do the sobind() with proc0 in nfs_connect.
OK markus@, blambert@.
"go ahead" deraadt@.
Fixes an issue reported by bernd@ (Tested by bernd@).
Fixes PR5135 too.
|
| |
|
|
|
|
|
|
|
| |
The option allows a socket to be bound to addresses which are not
local to the machine. In order to receive packets for these addresses
SO_BINDANY needs to be combined with matching outgoing pf(4) divert
rules, see pf.conf(5).
ok beck@
|
| |
|
|
|
|
|
|
|
| |
get a timestamp of when the datagram was accepted (by udp(4), for
example) rather than having to take a timestamp with gettimeofday(2)
when recv(2) returns - possibly several hundreds of microseconds later.
May be of use to those interested in precision network timing schemes
or QoS for media applications. Tested on alpha, amd64, i386 and sparc64.
manpage suggestions from jmc, ok deraadt
|
| |
|
|
|
|
|
|
| |
Tested by thib@ who found that it shaved 18min wall clock time of coping a 20G file.
Been in snaps for some time
"looks ok" markus@ "makes sense" blambert@ ok claudio@ thib@
|
| |
|
|
|
|
| |
by adding a sb_datacc count to sockbuf that counts data excluding
MT_CONTROL and MT_SONAME mbuf types. w/help from deraadt@.
okay deraadt@ claudio@
|
| |
|
|
| |
ok kettenis@ cloder@ tom@ henning@
|
| |
|
|
|
|
| |
for any value that is not an increase in size when we are under mbuf pressure,
rather than only succeeding when setting the value to the 4k minimum.
ok markus@, henning@
|
| |
|
|
|
|
| |
the remainder of the network stack from splimp to splnet.
ok miod@
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
to FREAD/FWRITE. OK deraadt@
|
| |
|
|
| |
created the socket, and populate it. ok bob@, henning@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
on the local network support them.
This adds a new socket option, SO_JUMBO, and a new route flag,
RTF_JUMBO. If _both_ the socket option is set and the route for the host
has RTF_JUMBO set, ip_output will fragment the packet to the largest
possible size for the link, ignoring the card's MTU.
The semantics of this feature will be evolving rapidly; talk to us
if you intend to use it.
ok deraadt@ marius@
|
| |
|
|
| |
ok deraadt, jared, djm
|
| |
|
|
|
| |
inspired by a posting from David Borman and similar changes in net/freebsd
ok mcbride
|
| |
|
|
|
|
|
|
|
| |
read path rather than recv. Previously, if an fd was passed via
sendmsg() but was consumed by the receiver via read() the ref count
was incremented and never decremented and so the ref count would
never reach zero even when there was no long any processes holding
the file open (this was especially bad for locked fds).
OK markus@ and art@
|
| | |
|
| | |
|
| |
|
|
| |
takes a void *. convert uiomove to take a void * as well. ok deraadt@
|
| |
|
|
| |
rescinded 22 July 1999. Proofed by myself and Theo.
|
| | |
|
| | |
|