openbsd
22 months agoAdjust handling of the RFC 9234 role capability for ibgp sessions:
claudio [Tue, 27 Dec 2022 17:05:38 +0000 (17:05 +0000)]
Adjust handling of the RFC 9234 role capability for ibgp sessions:
 - Exclude the role capability on ibgp sessions when sending an OPEN
 - Warn when a role capability is received on an iBGP session
 - Make sure the capability negotiation is skipped for ibgp sessions,
   this in turn disables the role capability on the session.
OK tb@

22 months agoOnly print the hello_timer if it is actually running.
claudio [Tue, 27 Dec 2022 12:11:39 +0000 (12:11 +0000)]
Only print the hello_timer if it is actually running.
Problem reported by Wouter Prins. Initial diff by kn@
OK remi@

22 months agospelling fixes; from paul tagliamonte
jmc [Tue, 27 Dec 2022 07:44:56 +0000 (07:44 +0000)]
spelling fixes; from paul tagliamonte

22 months agoAnsify pxe_netif_close() and {,pxe}socktodesc()
jca [Tue, 27 Dec 2022 07:34:05 +0000 (07:34 +0000)]
Ansify pxe_netif_close() and {,pxe}socktodesc()

To appease the clang 15 warning -Wdeprecated-non-prototype (turned on
by -Wall).  ok millert@

22 months agoFix array bounds mismatch with clang 15
jca [Tue, 27 Dec 2022 07:30:10 +0000 (07:30 +0000)]
Fix array bounds mismatch with clang 15

New warning -Warray-parameter is a bit overzealous.
ok millert@

22 months agogdb: fix build with clang 15
jca [Tue, 27 Dec 2022 02:22:46 +0000 (02:22 +0000)]
gdb: fix build with clang 15

The code wants a pointer to a "CORE_ADDR", thus the "(CORE_ADDR)" cast
is erroneous.  Just pass NULL.

ok jsg@

22 months agoperl: avoid -Wdeclaration-after-statement warning in our local patch
jca [Tue, 27 Dec 2022 02:02:44 +0000 (02:02 +0000)]
perl: avoid -Wdeclaration-after-statement warning in our local patch

Fixes build with clang 15.  Input + "seems ok" from afresh1@

22 months agovmd(8): provide a detailed e820 memory map.
dv [Mon, 26 Dec 2022 23:50:20 +0000 (23:50 +0000)]
vmd(8): provide a detailed e820 memory map.

When booting guests with SeaBIOS, vmd(8) supplied details about the
available guest memory via CMOS registers. Consequently, we've been
carrying some patches in the ports tree to SeaBIOS to fetch this
information like it's the 1990s.

When a vm initializes memory ranges, we now track what each range
represents. This information can be used to supply the e820 memory
map to SeaBIOS via the fw_cfg interface allowing it to properly
communicate memory ranges to a guest operating system. (This will
also allow us to drop some patches from the port.)

Given the ranges can now be marked with a purpose, this also allows
vmm(4) to switch from hard-coded mmio ranges and instead let the
information on the memory range dictate if vmm should be handling
a page fault or sending to vmd for a memory assist.

Tested by Mischa Peters and others. OK mlarkin@.

22 months agotweak the -f text; ok florian
jmc [Mon, 26 Dec 2022 21:04:10 +0000 (21:04 +0000)]
tweak the -f text; ok florian

22 months agoadd newline missed in previous
kn [Mon, 26 Dec 2022 20:24:43 +0000 (20:24 +0000)]
add newline missed in previous

22 months agospelling fixes; from paul tagliamonte
jmc [Mon, 26 Dec 2022 20:06:43 +0000 (20:06 +0000)]
spelling fixes; from paul tagliamonte

22 months agospelling fix; from paul tagliamonte
jmc [Mon, 26 Dec 2022 19:34:12 +0000 (19:34 +0000)]
spelling fix; from paul tagliamonte
ok millert

22 months agospelling fix; from paul tagliamonte
jmc [Mon, 26 Dec 2022 19:32:30 +0000 (19:32 +0000)]
spelling fix; from paul tagliamonte
ok tb

22 months agoReplace two (void)copystr(..., NULL) with equivalent (void)strlcpy() calls.
miod [Mon, 26 Dec 2022 19:25:49 +0000 (19:25 +0000)]
Replace two (void)copystr(..., NULL) with equivalent (void)strlcpy() calls.

ok millert@

22 months agospelling fixes; from paul tagliamonte
jmc [Mon, 26 Dec 2022 19:24:11 +0000 (19:24 +0000)]
spelling fixes; from paul tagliamonte
ok florian

22 months agosend_adb_cuda() would assume the returned value of splhigh() is the macintr
miod [Mon, 26 Dec 2022 19:17:00 +0000 (19:17 +0000)]
send_adb_cuda() would assume the returned value of splhigh() is the macintr
interrupt enable register; this used to be true more than 20 years ago but
the interrupt code has changed a lot since, and it is nevertheless bad
practice from md drivers to know to much about spl*() return values.

The check should become a "spl >= IPL_TTY", but management of the
adb_polling variable is good enough to need this at all.

22 months agospelling fixes; from paul tagliamonte
jmc [Mon, 26 Dec 2022 19:16:00 +0000 (19:16 +0000)]
spelling fixes; from paul tagliamonte
amendments to his diff are noted on tech

22 months agoUpdate adb_polling in akbd_cnpollc rather than akbd_cngetc; repairs ddb
miod [Mon, 26 Dec 2022 19:14:18 +0000 (19:14 +0000)]
Update adb_polling in akbd_cnpollc rather than akbd_cngetc; repairs ddb
input on adb machines.

22 months agoRe-order libraries in parallel to netstart.
florian [Mon, 26 Dec 2022 18:57:50 +0000 (18:57 +0000)]
Re-order libraries in parallel to netstart.

While netstart is busy setting up the network and waiting for a
default route we can already start with reordering libraries since
this does not depend on running network, speeding things up.

Idea & input deraadt
Input & OK kn

22 months agoImplement support for personal units library.
florian [Mon, 26 Dec 2022 18:52:10 +0000 (18:52 +0000)]
Implement support for personal units library.

With -f one could read an alternative library but it would replace the
standard units library, not add to it. Allow passing -f multiple times
to read all files and merge them together. Passing the empty string,
i.e. -f '' reads the default units library.

This is implemented in at least FreeBSD and Linux.

OK miod

22 months agospelling fixes from paul tagliamonte;
jmc [Mon, 26 Dec 2022 18:51:18 +0000 (18:51 +0000)]
spelling fixes from paul tagliamonte;
part of a larger diff: i'm committing this separately
as i changed statuses to status;

22 months agorevert previous: just as i get to replying, i find sthen's note. this part
jmc [Mon, 26 Dec 2022 18:43:49 +0000 (18:43 +0000)]
revert previous: just as i get to replying, i find sthen's note. this part
of the diff is not for me.

22 months agoemited -> emitted;
jmc [Mon, 26 Dec 2022 18:41:05 +0000 (18:41 +0000)]
emited -> emitted;
from paul tagliamonte

22 months agoreformat some multiline markup, which had been causing an unwanted
jmc [Mon, 26 Dec 2022 17:45:27 +0000 (17:45 +0000)]
reformat some multiline markup, which had been causing an unwanted
space (specifically in the "alias", "readonly" and "typeset"
commands);

from josiah frentsos

22 months agoPrepare to provide X509_CRL_get0_sigalg()
tb [Mon, 26 Dec 2022 16:00:36 +0000 (16:00 +0000)]
Prepare to provide X509_CRL_get0_sigalg()

This is an obvious omission from the OpenSSL 1.1 and OpenSSL 3 API which
does not provide a way to access the tbs sigalg of a CRL. This is needed
in security/pivy.

From Alex Wilson
ok jsing

22 months agofix another typo in comment in a line touched by the last commit (this
sthen [Mon, 26 Dec 2022 10:54:47 +0000 (10:54 +0000)]
fix another typo in comment in a line touched by the last commit (this
one wouldn't have triggered a spell checker though)

22 months agospelling fixes; from paul tagliamonte
jmc [Mon, 26 Dec 2022 07:31:44 +0000 (07:31 +0000)]
spelling fixes; from paul tagliamonte
ok tb

22 months agospelling fixes; from paul tagliamonte
jmc [Mon, 26 Dec 2022 07:18:50 +0000 (07:18 +0000)]
spelling fixes; from paul tagliamonte
i removed the arithmetics -> arithmetic changes, as i felt they
were not clearly correct

ok tb

22 months agoAdd close vmt.
asou [Mon, 26 Dec 2022 04:09:14 +0000 (04:09 +0000)]
Add close vmt.

22 months agoDocument ruby32 FLAVOR for Ruby ports
jeremy [Mon, 26 Dec 2022 03:09:04 +0000 (03:09 +0000)]
Document ruby32 FLAVOR for Ruby ports

22 months agoRe-enable DT_MIPS_RLD_MAP_REL tag in ld.so
visa [Sun, 25 Dec 2022 09:39:37 +0000 (09:39 +0000)]
Re-enable DT_MIPS_RLD_MAP_REL tag in ld.so

The linker now produces correct values for DT_MIPS_RLD_MAP_REL tags.

The DT_MIPS_RLD_MAP_REL offset is relative to the entry of the original
dynamic tags array. Therefore look up the tag from exe_obj->load_dyn
instead of exe_obj->Dyn.info to get the correct base address.

OK kettenis@ deraadt@

22 months agoHook up xhci(4)'s activate function to the FDT attachment driver. This
patrick [Sat, 24 Dec 2022 12:36:06 +0000 (12:36 +0000)]
Hook up xhci(4)'s activate function to the FDT attachment driver.  This
makes the USB ports work after a suspend/resume cycle on the x13s.

ok kettenis@

22 months agoMake .text (and .btext) execute-only on arm64.
kettenis [Sat, 24 Dec 2022 10:52:04 +0000 (10:52 +0000)]
Make .text (and .btext) execute-only on arm64.

ok deraadt@

22 months agoEnable pcagpio(4), and also consistently pcamux(4) while we're at it. With
patrick [Sat, 24 Dec 2022 10:51:27 +0000 (10:51 +0000)]
Enable pcagpio(4), and also consistently pcamux(4) while we're at it.  With
this the SFP port on the ClearFog Base (CN9130) starts to work, as the SFP
slot has some GPIOs routed through a GPIO extender.

ok dlg@ kettenis@

22 months agoBuild libc with executable-only .text on arm64.
kettenis [Sat, 24 Dec 2022 10:50:40 +0000 (10:50 +0000)]
Build libc with executable-only .text on arm64.

ok deraadt@

22 months agoDon't use a literal pool in .text to load the setjmp magic value as this is
kettenis [Sat, 24 Dec 2022 10:49:19 +0000 (10:49 +0000)]
Don't use a literal pool in .text to load the setjmp magic value as this is
incompatible with executable-only code.

ok deraadt@, guenther@

22 months agoUse the correct instruction to clear the frame pointer.
kettenis [Sat, 24 Dec 2022 10:47:22 +0000 (10:47 +0000)]
Use the correct instruction to clear the frame pointer.

ok guenther@, deraadt@

22 months agoZap trailing whitespace in license and add some empty lines
tb [Sat, 24 Dec 2022 07:12:09 +0000 (07:12 +0000)]
Zap trailing whitespace in license and add some empty lines

22 months agofix and enable toeplitz hashing of pf_state_keys again.
dlg [Sat, 24 Dec 2022 05:20:32 +0000 (05:20 +0000)]
fix and enable toeplitz hashing of pf_state_keys again.

the hash generated when setting up the pf pdesc struct uses outer
addresses, while the addresses used in the state table goes through
pf_state_key_addr_setup(), which does interesting things with some
ipv6 icmp values. state lookups used pf_state_key_addr_setup(), but
pf_state_key_setup copied the pdesc value, causing an inconsistency.
pf_state_key_setup now calls pf_state_key_addr_setup().

found by anton@
tested by anton@ florian@

22 months agosync
deraadt [Sat, 24 Dec 2022 03:39:13 +0000 (03:39 +0000)]
sync

22 months agoAdd the missing Copyright and license headers in the libcrypto/comp directory.
schwarze [Fri, 23 Dec 2022 23:23:02 +0000 (23:23 +0000)]
Add the missing Copyright and license headers in the libcrypto/comp directory.
Requested some time ago by tb@.

According to OpenSSL git history, the original version of this code
appeared in SSLeay 0.9.1b (July 6, 1998).  The LICENSE file in that
release states that the Copyright of SSLeay belongs to Eric Young,
and we believe that Eric still maintained SSLeay himself at that time.
We have seen a small number of examples where Eric credited outside
contributors for code that he included in his distribution, including
citing Copyright notices and license headers as appropriate.  We
found no such hints regarding this code, so it is reasonable to
assume that he wrote this code himself.

Regarding subsequent changes and additions, i inspected the OpenSSL
git repository.

No code change; only Copyright and license comments are added.

22 months agovmd(8): implement zero-copy operations on virtqueues.
dv [Fri, 23 Dec 2022 19:25:22 +0000 (19:25 +0000)]
vmd(8): implement zero-copy operations on virtqueues.

The original virtio device implementation relied on allocating a
buffer on heap, copying the virtqueue from the guest, mutating the
copy, and then overwriting the virtqueue in the guest.

While the approach worked, it was both complex and added extra
overhead. On older hardware, switching to the zero-copy approach
can show a noticeable performance improvement for vionet devices.
An added benefit is this diff also reduces the amount of code in
vmd, which is always a welcome change.

In addition, change to talking about the queue pfn and not "address"
as the virtio-pci spec has drivers provide a 32-bit value representing
the physical page number of the location in guest memory, not the
linear address.

Original idea from dlg@ while working on re-adding async task queues.

ok dlg@, tested by many

22 months agoDocument the deprecated wrappers BIO_set_app_data(3) and BIO_get_app_data(3).
schwarze [Fri, 23 Dec 2022 17:52:32 +0000 (17:52 +0000)]
Document the deprecated wrappers BIO_set_app_data(3) and BIO_get_app_data(3).
Some code roams the wild still calling them.

22 months agoAdd detection of EPAN feature bit.
kettenis [Fri, 23 Dec 2022 17:46:49 +0000 (17:46 +0000)]
Add detection of EPAN feature bit.

ok deraadt@

22 months agoAvoid using 1GB mappings for the identity map that we use in the early
kettenis [Fri, 23 Dec 2022 17:31:30 +0000 (17:31 +0000)]
Avoid using 1GB mappings for the identity map that we use in the early
kernel bootstrap phase and when booting the secondary CPUs.  This avoids
accidentally mapping memory regions that should not be mapped (i.e. secure
memory) as all mapped memory can be accessed speculatively.

To allow the kernel to be loaded at arbitrary physical addresses (and
arbitrary virtual addresses in the future) make sure the code that builds
the page tables can handle mapping a block of memory that straddles a
1GB or 512GB boundary.  This involves using two pagetable pages at all
levels except the top level and changing the link_l1_pagetable function
to accept an entry count just like link_l0_pagetable already does.

ok patrick@

22 months agoMark BIO_buffer_get_num_lines(3) as intentionally undocumented.
schwarze [Fri, 23 Dec 2022 17:27:53 +0000 (17:27 +0000)]
Mark BIO_buffer_get_num_lines(3) as intentionally undocumented.
Contrary to what bio.h says, it does not *not* retrieve some "IO type",
whatever that is supposed to be, but it is a NOOP, and nothing uses it.
Despite its name, it is unrelated to BIO_f_buffer(3), and please
be careful to not confuse it with BIO_get_buffer_num_lines(3).

22 months agoMark BIO_f_nbio_test(3) as intentionally undocumented.
schwarze [Fri, 23 Dec 2022 16:59:39 +0000 (16:59 +0000)]
Mark BIO_f_nbio_test(3) as intentionally undocumented.
It exposes absurd functionality, and according to codesearch.debian.net,
it is unused except in openssl(1) s_client/s_server -nbio_test.

22 months agonew manual page BIO_s_datagram(3);
schwarze [Fri, 23 Dec 2022 15:59:34 +0000 (15:59 +0000)]
new manual page BIO_s_datagram(3);
feedback and OK tb@

22 months agoPrevent an iwx(4) firmware error when authentication to the AP times out.
stsp [Fri, 23 Dec 2022 11:29:32 +0000 (11:29 +0000)]
Prevent an iwx(4) firmware error when authentication to the AP times out.

Stop session protection before tearing down firmware state after failure
to authenticate. Firmware will panic if we remove the MAC/PHY binding
while session protection is active.

test + ok kevlo@

22 months ago- hostname.if can handle lladdr as well as if names now
jmc [Fri, 23 Dec 2022 07:37:21 +0000 (07:37 +0000)]
- hostname.if can handle lladdr as well as if names now
- mention that they can be used for dynamic addressing
- lower the reading order of multicast routing (it makes sense to place
this at the end)
- Xr route(8) up front of the route text, not the end
- use Xr rather than Pa where possible
- reorder the forwarding text

22 months agoremove "-p protocol" from the -r synopsis: it no longer makes sense
jmc [Fri, 23 Dec 2022 07:18:46 +0000 (07:18 +0000)]
remove "-p protocol" from the -r synopsis: it no longer makes sense

pointed out by pguemther
ok pguenther kn claudio

22 months agopoint readers, where relevant, to route(8) rather than netstat(1) or route(4);
jmc [Fri, 23 Dec 2022 07:16:54 +0000 (07:16 +0000)]
point readers, where relevant, to route(8) rather than netstat(1) or route(4);
remove some redundant info regarding netstat -r from ipcomp/ipsec

feedback claudio sthen
ok claudio kn sthen

22 months agodisable the use of the has in the pf state key lookup (for now).
dlg [Fri, 23 Dec 2022 07:14:55 +0000 (07:14 +0000)]
disable the use of the has in the pf state key lookup (for now).

anton@ says the previous commit breaks ipv6 related regress tests.
disabling the use of the hash in the state key compare gets it going
again while i can figure out what's going on.

22 months agowrap a line better
deraadt [Fri, 23 Dec 2022 05:35:08 +0000 (05:35 +0000)]
wrap a line better

22 months agoSimplify BN_cmp() and BN_ucmp().
jsing [Fri, 23 Dec 2022 03:15:35 +0000 (03:15 +0000)]
Simplify BN_cmp() and BN_ucmp().

The only real difference between BN_cmp() and BN_ucmp() is that one has
to respect the sign of the BN (although BN_cmp() also gets to deal with
some insanity from accepting NULLs). Rewrite/cleanup BN_ucmp() and turn
BN_cmp() into code that handles differences in sign, before calling
BN_ucmp().

ok tb@

22 months agoConsistently check for NULL early.
jsing [Fri, 23 Dec 2022 02:31:56 +0000 (02:31 +0000)]
Consistently check for NULL early.

Also be more consistent with variable naming.

ok tb@

22 months agoFix an unchecked strdup() in UI_create_method().
jsing [Fri, 23 Dec 2022 02:27:47 +0000 (02:27 +0000)]
Fix an unchecked strdup() in UI_create_method().

ok tb@

22 months agoMake UI_destroy_method() NULL safe.
jsing [Fri, 23 Dec 2022 02:26:16 +0000 (02:26 +0000)]
Make UI_destroy_method() NULL safe.

ok tb@

22 months agoRemove unhelpful comment.
jsing [Fri, 23 Dec 2022 02:22:58 +0000 (02:22 +0000)]
Remove unhelpful comment.

Remove a comment that tells you not to call a function that internally
calls free, with a stack allocated pointer...

ok tb@

22 months agoRemove compatibility "glue" for des_read_pw{_string}()
jsing [Fri, 23 Dec 2022 02:20:28 +0000 (02:20 +0000)]
Remove compatibility "glue" for des_read_pw{_string}()

Nothing can be actually using these as the symbols are not exported from
libcrypto... hopefully ui_compat.h can also go away entirely.

ok tb@

22 months agoAdd regress coverage for shifts of zero bits.
jsing [Fri, 23 Dec 2022 02:13:15 +0000 (02:13 +0000)]
Add regress coverage for shifts of zero bits.

22 months agoDo similar setup for lshift and rshift benchmarks.
jsing [Fri, 23 Dec 2022 02:12:11 +0000 (02:12 +0000)]
Do similar setup for lshift and rshift benchmarks.

This prevents realloc from unnecessarily impacting the lshift benchmarks.

22 months agoAllow configuring interfaces by lladdr in installer
afresh1 [Fri, 23 Dec 2022 00:40:58 +0000 (00:40 +0000)]
Allow configuring interfaces by lladdr in installer

This modifies the installer question, auto install scripts may need updating.

Allows answering ? to the interface question to list allowed lladdrs
and allows answering with one of them to configure the interface.
Reconfiguring by either name/unit or lladdr will clear the previous config.

Many suggestions from kn@
finish it @deraadt

22 months agonew manual page BIO_accept(3)
schwarze [Thu, 22 Dec 2022 21:05:48 +0000 (21:05 +0000)]
new manual page BIO_accept(3)

22 months agoin case of failure, always report the error with BIOerror();
schwarze [Thu, 22 Dec 2022 20:13:45 +0000 (20:13 +0000)]
in case of failure, always report the error with BIOerror();
OK tb@

22 months agoDenote multiple arguments with 'arg ...' not 'args'
kn [Thu, 22 Dec 2022 19:53:22 +0000 (19:53 +0000)]
Denote multiple arguments with 'arg ...' not 'args'

A few programs used the plural in their synopsis which doesn't read as
clear as the obvious triple-dot notation.

mdoc(7) .Ar defaults to "file ..." if no arguments are given and consistent
use of 'arg ...' matches that behaviour.

Cleanup a few markups of the same argument so the text keeps reading
naturally;  omit unhelpful parts like 'if optional arguments are given,
they are passed along' for tools like time(1) and timeout(1) that obviously
execute commands with whatever arguments where given -- just like doas(1)
which doesn't mention arguments in its DESCRIPTION in the first place.

For expr(1) the difference between 'expressions' and 'expression ...' is
crucial, as arguments must be passed as individual words.

Feedback millert jmc schwarze deraadt
OK jmc

22 months agosparc64: move retry logic out of stickcmpr_set()
cheloha [Thu, 22 Dec 2022 19:51:11 +0000 (19:51 +0000)]
sparc64: move retry logic out of stickcmpr_set()

In some cases, stickcmpr_set() fails to ensure that %STICK_CMPR leads
%STICK before returning to the caller.  Rewriting the retry logic in C
trivially fixes the issue.  So move the retry logic out into a new
function, stick_rearm().

Issue discovered by miod@, fix tested by miod@.

Link: https://marc.info/?l=openbsd-tech&m=167122933414238&w=2
ok kettenis@

22 months agoMark BIO_s_log(3) as intentionally undocumented.
schwarze [Thu, 22 Dec 2022 16:38:45 +0000 (16:38 +0000)]
Mark BIO_s_log(3) as intentionally undocumented.

Ben Laurie invented the system logging BIO in 1999 and yet,
nothing whatsoever uses it according to codesearch.debian.net.
Besides, it is poorly designed and a crypto library is absolutely
not the place for putting a clumsy system logging facility.
Not everything needs to be a BIO!

22 months agoBring over various changes from the arm64 version of this code.
kettenis [Thu, 22 Dec 2022 15:44:02 +0000 (15:44 +0000)]
Bring over various changes from the arm64 version of this code.

ok patrick@

22 months agoit seems we made a separate list for the two sourceaddr commands,
jmc [Thu, 22 Dec 2022 07:46:19 +0000 (07:46 +0000)]
it seems we made a separate list for the two sourceaddr commands,
just to remove some vertical spacing; that is unfortunate
because when i adjusted the list spacing it did not affect this second
list, and logically it is one list (route commands) not two;

resolve this by having one -compact list, and inserting Pp between list items
where needed;

22 months agomove the flag mappings displayed by "route show" from netstat(1) to route(8):
jmc [Thu, 22 Dec 2022 07:23:29 +0000 (07:23 +0000)]
move the flag mappings displayed by "route show" from netstat(1) to route(8):
diff from paul tagliamonte, who was surprised to find them not documented
in route(8);

claudio agreed placement was not ideal;
deraadt confirmed users better served by route(8) than netstat(1);

i've tweaked some of the spacing and text so it displays better,
and removed some macros incorrectly associated with the "nameserver"
list item, which was messing up the formatting. should display better
now

22 months agouse stoeplitz to generate a hash/flowid for state keys.
dlg [Thu, 22 Dec 2022 05:59:26 +0000 (05:59 +0000)]
use stoeplitz to generate a hash/flowid for state keys.

the hash will be used to partition work in pf and pfsync in the
future, and right now it is used as the first comparison in the rb
tree state lookup.

using stoeplitz means that pf will hash traffic the same way that
hardware using a stoeplitz key will hash incoming traffic on rings.
stoeplitz is also used by the tcp stack to generate a flow id, which
is used to pick which transmit ring is used on nics with multiple
queues too. using the same algorithm throughout the stack encourages
affinity of packets to rings and softnet threads the whole way
through.

using the hash as the first comparison in the state rb tree comparison
should encourage faster traversal of the state tree by having all
the address/port bits summarised into the single hash value. however,
tests by hrvoje popovski don't show performance changing. on the
plus side, if this change is free from a performance point of view
then it makes the future steps more straightforward.

discussed at length at h2k22
tested by sashan@ and hrvoje popovski
ok tb@ sashan@ claudio@ jmatthew@

22 months agoprovide stoeplitz_n32()
dlg [Thu, 22 Dec 2022 04:43:52 +0000 (04:43 +0000)]
provide stoeplitz_n32()

22 months agoHave the power button trigger a wakeup from suspend.
patrick [Wed, 21 Dec 2022 23:26:54 +0000 (23:26 +0000)]
Have the power button trigger a wakeup from suspend.

ok kettenis@

22 months agoImplement wakeup interrupt handling. This makes sure that during suspend
patrick [Wed, 21 Dec 2022 23:18:09 +0000 (23:18 +0000)]
Implement wakeup interrupt handling.  This makes sure that during suspend
we only have wakeup interrupts enabled, all others are disabled.

ok kettenis@

22 months agoPull enabling/disabling wakeup interrupt handling out of the aplintc(4)
kettenis [Wed, 21 Dec 2022 22:30:42 +0000 (22:30 +0000)]
Pull enabling/disabling wakeup interrupt handling out of the aplintc(4)
DVACT_SUSPEND/DVACT_RESUME handling and push it into the MD code that
handles "suspend-to-idle".  This way a failure in DVACT_SUSPEND handling
will not result in hosed interrupts on the primary interrupt controller
if we abort the suspend operation.

requested by deraadt@
ok patrick@

22 months agoMark BIO_nread0(3), BIO_nread(3), BIO_nwrite0(3), and BIO_nwrite(3)
schwarze [Wed, 21 Dec 2022 15:08:37 +0000 (15:08 +0000)]
Mark BIO_nread0(3), BIO_nread(3), BIO_nwrite0(3), and BIO_nwrite(3)
as intentionally undocumented.

Bodo Moeller invented this "non-copying I/O" API in 1999, but according
to codesearch.debian.net, it is still completely unused by anything.
On top of that, it appears to be inflexible in so far as it only
supports BIO pairs and no other BIO types and fragile in so far as
it exposes pointers to internal storage and runs contrary to expectations
of how BIO objects are supposed to work.

22 months agoMove duplicate code to new sr_find_discipline() helper
kn [Wed, 21 Dec 2022 09:54:23 +0000 (09:54 +0000)]
Move duplicate code to new sr_find_discipline() helper

OK miod

22 months agoThe location of the aux info vector is now cached in ps_auxinfo of struct
claudio [Wed, 21 Dec 2022 07:59:02 +0000 (07:59 +0000)]
The location of the aux info vector is now cached in ps_auxinfo of struct
process. Use this information to access the vector.
OK mpi@ mbuhl@ deraadt@

22 months agofix a mangled comment
deraadt [Wed, 21 Dec 2022 07:16:03 +0000 (07:16 +0000)]
fix a mangled comment

22 months agotiny whitespace tweak.
dlg [Wed, 21 Dec 2022 03:02:34 +0000 (03:02 +0000)]
tiny whitespace tweak.

22 months agoconsistently use the PF_REF wrappers around refcnts.
dlg [Wed, 21 Dec 2022 02:51:06 +0000 (02:51 +0000)]
consistently use the PF_REF wrappers around refcnts.

22 months agoUpdate the Rx descriptor based on the vendor driver for Linux.
kevlo [Wed, 21 Dec 2022 02:31:09 +0000 (02:31 +0000)]
Update the Rx descriptor based on the vendor driver for Linux.
This fixes a panic seen by Geoff Steckel on RTL8125 with MCLGETL.

Tested by Geoff Steckel and Nick Owens.

ok dlg@

22 months agoprefix pf_state_key and pf_state_item struct bits to make them more unique.
dlg [Wed, 21 Dec 2022 02:23:10 +0000 (02:23 +0000)]
prefix pf_state_key and pf_state_item struct bits to make them more unique.

this makes searching for the struct members easier, which in turn
makes tweaking code around them a lot easier too. sk_refcnt in
particular would have been a lot nicer to fiddle with than just
refcnt because pf_state structs also have a refcnt, which is annoying.

tweaks and ok sashan@
reads ok kn@

22 months agoAdd argument support for msyscall, pledge, unveil, __realpath,
guenther [Tue, 20 Dec 2022 21:44:19 +0000 (21:44 +0000)]
Add argument support for msyscall, pledge, unveil, __realpath,
ypconnect, and __tmpfd.  Reorder several other syscalls to match
the order in syscalls.master

ok deraadt@

22 months agoIf we don't have usecommonopt for our application we shouldn't check the
martijn [Tue, 20 Dec 2022 20:12:27 +0000 (20:12 +0000)]
If we don't have usecommonopt for our application we shouldn't check the
default values for snmp protocol level stuff. Makes snmp mibtree work
again which got broken since the defaults changed back in 2021.

Reported by Matthias Pitzl (pitzl <at> genua <dot> de)
Hint to use usecommonopt and OK gerhard@

22 months agoApply proper bounds checking to non-repeaters and max-repetitions.
martijn [Tue, 20 Dec 2022 20:06:47 +0000 (20:06 +0000)]
Apply proper bounds checking to non-repeaters and max-repetitions.

OK sthen@, kn@

22 months agoMake ar[du]_{nonrepeaters,maxrepetitions} uint16_t instead of int16_t.
martijn [Tue, 20 Dec 2022 20:04:55 +0000 (20:04 +0000)]
Make ar[du]_{nonrepeaters,maxrepetitions} uint16_t instead of int16_t.
snmp uses signed 32 bits integers and agentx uses unsigned 16 bits
integers. I somehow ended up somewhere in between.

OK sthen@, kn@

22 months agoWhen writing out a PDU with authpriv that's larger than READ_BUF_SIZE
martijn [Tue, 20 Dec 2022 20:01:25 +0000 (20:01 +0000)]
When writing out a PDU with authpriv that's larger than READ_BUF_SIZE
we overflow the encbuf. Allocate encbuf on the fly so that we always have
enough room.

Give decryption the same treatment, although this one is not at risk, since
the input is limited to READ_BUF_SIZE.

OK sthen@, kn@

22 months agoWhen writing a message out over tcp that's too large to fit in a single
martijn [Tue, 20 Dec 2022 19:53:33 +0000 (19:53 +0000)]
When writing a message out over tcp that's too large to fit in a single
write(2), make sure that we don't restart the message on the next write
out, but continue where we left of.

OK sthen@, kn@

22 months agoadd a missing .Vt macro;
schwarze [Tue, 20 Dec 2022 17:59:29 +0000 (17:59 +0000)]
add a missing .Vt macro;
from Josiah Frentsos <jfrent at tilde dot team>

22 months agoMark BIO_dump_cb(3) and BIO_dump_indent_cb(3) as intentionally undocumented.
schwarze [Tue, 20 Dec 2022 15:34:03 +0000 (15:34 +0000)]
Mark BIO_dump_cb(3) and BIO_dump_indent_cb(3) as intentionally undocumented.

It appears Richard Levitte succumbed to everything-needs-a-callback-paranoia
in 2004, but nobody is going to be surprised that nothing whatsoever wants
to use this particular callback, according to codesearch.debian.net.

22 months agodocument BIO_fd_non_fatal_error(3) and BIO_fd_should_retry(3)
schwarze [Tue, 20 Dec 2022 14:55:45 +0000 (14:55 +0000)]
document BIO_fd_non_fatal_error(3) and BIO_fd_should_retry(3)

22 months ago- some small tweaks for the text
jmc [Tue, 20 Dec 2022 09:01:05 +0000 (09:01 +0000)]
- some small tweaks for the text
- on guenther's advice, remove NOTES: the text is either not relevant
  or already described correctly elsewhere

ok guenther

22 months agoImprove reporting of waitid(2)'s idtype/id and options arguments
guenther [Mon, 19 Dec 2022 22:55:12 +0000 (22:55 +0000)]
Improve reporting of waitid(2)'s idtype/id and options arguments
Add mimmutable(2) to report like munmap(2)

22 months agoWTRAPPED is now supported by waitid(2)
guenther [Mon, 19 Dec 2022 22:44:54 +0000 (22:44 +0000)]
WTRAPPED is now supported by waitid(2)
Don't test waitid(WUNTRACED) as that's not portable and only 'works' due
to an implementation decision

22 months agoSilence vmd ns8250 log noise about reading com1 before ready.
dv [Mon, 19 Dec 2022 20:27:26 +0000 (20:27 +0000)]
Silence vmd ns8250 log noise about reading com1 before ready.

ok marlkin@

22 months agosync
deraadt [Mon, 19 Dec 2022 20:17:06 +0000 (20:17 +0000)]
sync

22 months agoAdd waitid(2) manpage, based on a first pass by espie@ and bits
guenther [Mon, 19 Dec 2022 18:13:50 +0000 (18:13 +0000)]
Add waitid(2) manpage, based on a first pass by espie@ and bits
from FreeBSD and NetBSD.

ok kettenis@ jmc@ espie@

22 months agoRemove unused *sd_scsibus_dev member from struct sr_discipline
kn [Mon, 19 Dec 2022 15:27:06 +0000 (15:27 +0000)]
Remove unused *sd_scsibus_dev member from struct sr_discipline

Under _KERNEL, dead since 2011 r1.100
    Simplify softraid(4) to behave like other HBAs [...]

OK krw