Age | Commit message (Collapse) | Author |
|
userland can request that network packets that are read from or
written to the device special file get prepended with a "tun_hdr"
struct. this struct contains bits which say what offloads are
requested for the packet, including things like ip/tcp/udp/icmp
checksums, tcp segmentation offloads, or ethernet vlan tags.
userland can write a packet with any of these offloads requested
into the kernel at any time, but has to request which ones it's
able to handle coming from the kernel. enabling the tun_hdr struct
and which offloads userland can handle is done with a new TUNSCAP
ioctl.
this is based on the virtio_net_hdr in linux, which jan@ actually
implemented and had working with vmd. however, claudio@ and i
strongly opposed to what feels like a layer violation by pulling
virtio structures into the tun driver, and then trying to emulate
virtio/linux semantics in our network stack, and playing catch up
when the "upstream" projects decide to change the shape or meaning
of these bits. tun_hdr is specific to the openbsd network stack and
it's semantics, which simplifies our kernel implementation. jan has
been pretty gracious about the extra work on the vmd side of things.
tested by and ok jan@
ok claudio@
|
|
|
|
ok stu deraadt
|
|
offsets for RGB formats explicitly.
From Paul Fertser
ok patrick@ miod@ kettenis@
|
|
by u-boot.
From Paul Fertser
ok patrick@ miod@ kettenis@
|
|
|
|
ok miod@
|
|
this should let people specify interface and queue bandwidths greater
than ~4Gbit.
this changes the pf ioctls used to specify queues, so if you want
to try this you'll need a new kernel, new headers, and a new pfctl
(and systat). or upgrade using a snapshot. the effort and benefit
of providing compat isn't worth it.
putting it in now so people can kick it around.
|
|
|
|
|
|
|
|
The check right now is in the wrong spot so fix this.
OK mpi@
|
|
From Srinivasan Shanmugam
10c20d79d59cadfe572480d98cec271a89ffb024 in linux-6.6.y/6.6.60
15c2990e0f0108b9c3752d7072a97d45d4283aea in mainline linux
|
|
ok mlarkin@
|
|
In soo_stat() lock send socket buffer mutex around access to sb_state.
Althoug not strictly necessary as this is only a single read access,
make clear where parallel variable access happens. As this is not
performance critical, use mutex instead of read once wrapper. This
is also consistent to the receive socket buffer a few lines above.
OK mvs@
|
|
|
|
|
|
|
|
a change mpi@ committed to all architectures in 2015
|
|
|
|
|
|
|
|
context (when it calls uvm_pagerealloc_multi()). But the current
implementation of pmap_copy_page() assumes it only runs in process context.
Use splbio() to block the interrupts while we're doing the copy.
ok mpi@
|
|
Instead of wiring page by page, wire the whole range. After the
PSP lauch update data command finished, unwire the memory again.
from hshoexer@; OK mlarkin@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
missed when the prototype was removed in ifq.h rev 1.25
ok dlg@
|
|
block is no
longer used by luna88k.
Tested & ok miod@ aoyam@
|
|
The socket filt_...() functions are called with shared netlock, but
without per socket lock. This can be done as they are read-only.
After unlocking, TCP will modify socket variables in parallel. So
explicitly mark with READ_ONCE() where unlocked access to socket
fields happens.
OK mvs@
|
|
Socket field so_oobmark belongs to receive path, so use so_rcv mutex
to protect it. Although tcp_input() is still exclusively locked,
put mutex there to prepare further unlocking.
OK mvs@
|
|
allows upowerd to react on power changes, and now i have nifty
notifications in xfce4 on the x13s when plugging/unplugging the ac.
Also works on the omnibook x14.
ok phessler@ kettenis@ jca@
|
|
To avoid a race between writing PSP command, sleeping, receiving
interrupt, and calling wakeup(9), protect psp(4) driver with a
mutex. With that interrupt handler is MP safe and ioctl(2) can
release kernel lock.
from hshoexer@; OK dlg@
|
|
ok miod@
|
|
tcp_update_sndspace() and tcp_update_rcvspace() only read global
variables that do not change after initialization. Mark them as
such. Add braces around multi-line if blocks.
ok mvs@
|
|
with TTL field to zero. To fix it function pf_test_state_icmp()
must initialize ttl field in pf_pdesc structure for inner packet.
feedback from bluhm@
OK bluhm@
|
|
used by idle page zeroing code removed from uvm in 2015
ok miod@ mpi@ mlarkin@
|
|
|
|
|
|
Ported from FreeBSD.
This driver does not pass packets yet, lots of code is still missing.
The driver will remain disabled in kernel configs until it is ready.
At this stage, code for device initialization should be fairly complete.
Some hardware features will require additional firmware packages to be
loaded. My plan is to get things working in the basic "safe mode" first,
which does not require external firmware.
I will continue working on this driver in-tree, with funding from genua.
Help is welcome.
ok dlg@
|
|
If any other CPU has not finished wbinvd, PSP command may fail. To
avoid races, call wbinvd_on_all_cpus_acked() which waits for
acknowledgement from IPI handler. Provide stub to build non-MP
kernels.
from hshoexer@; OK mlarkin@
|
|
|
|
|
|
Implement inpcb iterator in rip6_input(). Factor out the real work
to rip6_sbappend(). Now UDP broadcast and multicast, raw IPv4 and
IPv6 input work similar. While there, make rip_input() look more
like rip6_input().
OK mvs@
|
|
ok stsp@
|
|
|
|
mappings to work.
|