dlg [Sun, 5 Jun 2022 02:54:18 +0000 (02:54 +0000)]
enable interrupt coalescing.
mvneta only supports coalescing tx completions by count, so this
uses the txmit value or half the ring as the threshold, whichever
is lower.
rx coalescing has a threshold on the number of packets, and a max
time it will wait before interrupting. however, it also has a
threshold for how many spare/empty descriptors there are on the
ring too. we use this latter threshold to have the chip interrupt
as soon as it uses the allocation that the rx ring moderation has
granted, and then first two to otherwise rate limit rx to about 4k
interrupts per second.
ok patrick@
dlg [Sun, 5 Jun 2022 02:49:30 +0000 (02:49 +0000)]
use the write lemtohXX functions for bits of the stats structure.
unbreaks the build on bigendian archs.
found by deraadt@
dlg [Sun, 5 Jun 2022 02:43:44 +0000 (02:43 +0000)]
add support for getting the frequency of the clocks mventa uses.
mvneta does interrupt coalescing based on time as counted by these
clocks, so being able to ask how fast they tick is useful.
lots of help and ok kettenis@
stsp [Sat, 4 Jun 2022 11:32:11 +0000 (11:32 +0000)]
Make iwm(4) handle 9k devices which do not support antenna B.
Problem reported by Chris Narkiewicz who owns such a device.
Johannes Berg provided helpful hints regarding the reason for
the firmware error seen by Chris.
espie [Sat, 4 Jun 2022 10:12:38 +0000 (10:12 +0000)]
document internal annotations a bit more, explain about the always-update
changes, and be more specific about @digital-signature and @signer, since
we only use the one scheme now.
tb [Sat, 4 Jun 2022 07:55:44 +0000 (07:55 +0000)]
The parse stubs need to skip over the extension data.
Found by anton with tlsfuzzer
ok anton
nicm [Sat, 4 Jun 2022 07:42:07 +0000 (07:42 +0000)]
When picking a buffer because one isn't specified by the user, ignore
named buffers. GitHub issue 3212 from David le Blanc.
jsg [Sat, 4 Jun 2022 03:13:40 +0000 (03:13 +0000)]
match on Gemini Lake HD Audio (0x3198)
on a Star Labs StarLite Mk IV laptop the audio device is subclass audio
not hd audio, so azalia does not match
reported and tested by Chris Narkiewicz
ok deraadt@
tb [Sat, 4 Jun 2022 02:14:21 +0000 (02:14 +0000)]
KNF nit
tb [Sat, 4 Jun 2022 01:14:43 +0000 (01:14 +0000)]
Tweak a comment using review feedback from jsing
millert [Fri, 3 Jun 2022 19:46:09 +0000 (19:46 +0000)]
Memory leak when assigning a string to some of the built-in variables.
Allocated string erroneously marked DONTFREE. From Miguel Pineiro Jr.
millert [Fri, 3 Jun 2022 19:42:27 +0000 (19:42 +0000)]
The fulfillment of an assignment operand had been truncating its
entry in ARGV (since circa 1989). From Miguel Pineiro Jr.
millert [Fri, 3 Jun 2022 19:40:56 +0000 (19:40 +0000)]
Fix a file management memory leak that appears to have been there
since the files array was first initialized with stdin, stdout, and
stderr (circa 1992). From Miguel Pineiro Jr.
tb [Fri, 3 Jun 2022 13:31:49 +0000 (13:31 +0000)]
Add stubbed out handlers for the pre_shared_key extension
ok jsing
tb [Fri, 3 Jun 2022 13:29:39 +0000 (13:29 +0000)]
Implement handlers for the psk_key_exchange_modes extensions.
ok jsing
tb [Fri, 3 Jun 2022 13:28:36 +0000 (13:28 +0000)]
Add a use_psk_dhe_ke flag to the TLSv1.3 handshake struct
This will be used to indicate client side support for DHE key
establishment.
ok jsing
tb [Fri, 3 Jun 2022 13:26:13 +0000 (13:26 +0000)]
Ensure that a client who sent a PSK extension has also sent a PSK
key exchange mode extension, as required by RFC 8446, 4.2.9.
ok jsing
tb [Fri, 3 Jun 2022 13:23:16 +0000 (13:23 +0000)]
Check tls_config_new() for NULL return
This way we don't crash in tls_config_insecure_noverify_cert().
From Mateusz Piotrowski on bugs
ok claudio
tb [Fri, 3 Jun 2022 13:11:04 +0000 (13:11 +0000)]
Provide #defines for the two currently registered PskKeyExchangeModes.
ok jsing
schwarze [Fri, 3 Jun 2022 12:01:42 +0000 (12:01 +0000)]
oops, update forgotten date in the footer
schwarze [Fri, 3 Jun 2022 11:50:25 +0000 (11:50 +0000)]
During identifier parsing, handle undefined escape sequences
in the same way as groff:
* \\ is always reduced to \
* \. is always reduced to .
* other undefined escape sequences are usually reduced to the escape name,
for example \G to G, except during the expansion of expanding escape
sequences having the standard argument form (in particular \* and \n),
in which case the backslash is preserved literally.
Yes, this is confusing indeed.
For example, the following have the same meaning:
* .ds \. and .ds . which is not the same as .ds \\.
* \*[\.] and \*[.] which is not the same as \*[\\.]
* .ds \G and .ds G which is not the same as .ds \\G
* \*[\G] and \*[\\G] which is not the same as \*[G] <- sic!
To feel less dirty, have a leaning toothpick, if you are so inclined.
This patch also slightly improves the string shown by the "escaped
character not allowed in a name" error message.
dlg [Fri, 3 Jun 2022 10:38:40 +0000 (10:38 +0000)]
expose hardware counters as kstats.
some of them are 16 bit, so check frequently.
now i can see what packets my apu1 is dropping in hardware.
ok claudio@
nicm [Fri, 3 Jun 2022 08:09:16 +0000 (08:09 +0000)]
Do not unintentionally turn off all mouse mode when button is also present.
djm [Fri, 3 Jun 2022 04:47:21 +0000 (04:47 +0000)]
move auth_openprincipals() and auth_openkeyfile() over to
auth2-pubkeyfile.c too; they make more sense there.
djm [Fri, 3 Jun 2022 04:31:54 +0000 (04:31 +0000)]
test setenv in both client and server, test first-match-wins too
djm [Fri, 3 Jun 2022 04:30:46 +0000 (04:30 +0000)]
Make SetEnv directives first-match-wins in both sshd_config and
sshd_config; previously if the same name was reused then the last
would win (which is the opposite to how the config is supposed to
work).
While there, make the ssh_config parsing more like sshd_config.
bz3438, ok dtucker
dtucker [Fri, 3 Jun 2022 04:00:15 +0000 (04:00 +0000)]
Add missing *-sk types to ssh-keyscan manpage.
From skazi0 via github PR#294.
dtucker [Fri, 3 Jun 2022 03:21:09 +0000 (03:21 +0000)]
Add period at end of "not known by any other names" message. github PR#320
from jschauma, ok djm@
dtucker [Fri, 3 Jun 2022 03:17:42 +0000 (03:17 +0000)]
ssh-keygen -A: do not generate DSA keys by default. Based on github PR#303
from jsegitz with man page text from jmc@, ok markus@ djm@
dlg [Fri, 3 Jun 2022 03:17:36 +0000 (03:17 +0000)]
fix the definition of the MVNETA_PRXITTH Port RX Intr Threshold register
jca [Thu, 2 Jun 2022 21:38:46 +0000 (21:38 +0000)]
Let btrace(8) execute the END probe upon receiving a SIGTERM signal
While SIGINT (already handled) makes sense for interactive use, handling
SIGTERM in the same manner is less surprising for scripting. This lets
you do:
btrace ... & some workload; kill $!
and get the expected output.
ok mpi@
nicm [Thu, 2 Jun 2022 21:19:32 +0000 (21:19 +0000)]
Do not attempt to use client in config file (it will be NULL), GitHub
issue 3206.
nicm [Thu, 2 Jun 2022 20:41:21 +0000 (20:41 +0000)]
When deleting or renaming a buffer and a buffer name is specified,
complain if the buffer doesn't exist instead of silently deleting or
renaming the most recent buffer. GitHub issue 3205.
kettenis [Thu, 2 Jun 2022 18:00:53 +0000 (18:00 +0000)]
Take the size of allocation into account when checking the kernel reserve.
ok mpi@
millert [Thu, 2 Jun 2022 15:35:55 +0000 (15:35 +0000)]
Don't treat the first arg as a 4.3BSD option string if it contains a '/'.
Also document that files-to-dump could be interpreted as a 4.3BSD option
if it doesn't contain a slash. OK deraadt@
schwarze [Thu, 2 Jun 2022 14:49:25 +0000 (14:49 +0000)]
Since \. is not a character escape sequence, re-classify it from the
wrong parsing class ESCAPE_SPECIAL to the better-suited parsing class
ESCAPE_UNDEF, exactly like it is already done for the similar \\,
which isn't a character escape sequence either.
No formatting change is intended just yet, but this will matter for
upcoming improvements in the parser for roff(7) macro, string, and
register names.
See the node "5.23.2 Copy Mode" in "info groff" regarding
what \\ and \. really mean.
tb [Thu, 2 Jun 2022 12:08:41 +0000 (12:08 +0000)]
Use consistent spacing around assignments
tb [Thu, 2 Jun 2022 11:48:36 +0000 (11:48 +0000)]
Only constraints and verify need static linking in here.
schwarze [Thu, 2 Jun 2022 11:28:16 +0000 (11:28 +0000)]
Avoid the layering violation of re-parsing for \E in roff_expand().
To that end, add another argument to roff_escape()
returning the index of the escape name.
This also makes the code in roff_escape() a bit more uniform
in so far as it no longer needs the "char esc_name" local variable
but now does everything with indices into buf[].
No functional change.
claudio [Thu, 2 Jun 2022 11:12:47 +0000 (11:12 +0000)]
Adjust lowest allowed routing priority to be bigger than RTP_LOCAL.
RTP_LOCAL is internally used by the kernel and is not available for
userland. The minimal usable routing prio is 2.
OK tb@
claudio [Thu, 2 Jun 2022 11:05:15 +0000 (11:05 +0000)]
Use a common idiom to check if the user supplied routing priority is
in range. Also rephrase the error message.
OK tb@
claudio [Thu, 2 Jun 2022 09:29:34 +0000 (09:29 +0000)]
Cleanup ktable_exists() usage and its warning message.
Check the return value in all cases and use a common idiom for this check.
OK tb@
claudio [Thu, 2 Jun 2022 08:46:25 +0000 (08:46 +0000)]
Adjust some warning messages to be a bit more accurate. ktable_update()
actually loads a routing table and not really an rdomain.
florian [Thu, 2 Jun 2022 07:44:18 +0000 (07:44 +0000)]
When running sysupgrade on -stable move to the next release, not
-current.
Found the hard way by & OK sthen
mbuhl [Thu, 2 Jun 2022 07:41:17 +0000 (07:41 +0000)]
Implement and enable IPv4, TCP, and UDP checksum offloading for igc.
ok kevlo@
anton [Thu, 2 Jun 2022 05:32:28 +0000 (05:32 +0000)]
Stop hiding a few assertions behind the opt-in LOCKF_DIAGNOSTIC option.
This code has already been exercised quite extensively by syzkaller and
got decent test coverage.
jmatthew [Thu, 2 Jun 2022 03:09:39 +0000 (03:09 +0000)]
enable aq(4) on arm64 now that it works reasonably well
schwarze [Wed, 1 Jun 2022 23:20:19 +0000 (23:20 +0000)]
Fix a buffer overrun in the roff(7) escape sequence parser that could
be triggered by macro arguments ending in double backslashes, for
example if people wrote .Sq "\\" instead of the correct .Sq "\e".
The bug was hard to find because it caused a segfault only very rarely,
according to my measurements with a probability of less than one permille.
I'm sorry that the first one to hit the bug was an arm64 release build
run by deraadt@. Thanks to bluhm@ for providing access to an arm64
machine for debugging purposes. In the end, the bug turned out to be
architecture-independent.
The reason for the bug was that i assumed an invariant that does not exist.
The function roff_parse_comment() is very careful to make sure that the
input buffer does not end in an escape character before passing it on,
so i assumed this is still true when reaching roff_expand() immediately
afterwards. But roff_expand() can also be reached from roff_getarg(),
in which case there *can* be a lone escape character at the end of the
buffer in case copy mode processing found and converted a double
backslash.
Fix this by handling a trailing escape character correctly in the
function roff_escape().
The lesson here probably is to refrain from assuming an invariant
unless verifying that the invariant actually holds is reasonably
simple. In some cases, in particular for invariants that are important
but not simple, it might also make sense to assert(3) rather than just
assume the invariant. An assertion failure is so much better than a
buffer overrun...
dv [Wed, 1 Jun 2022 17:47:18 +0000 (17:47 +0000)]
change amd64 pmap_convert to return void
There are no other return options, so adjust function signature to
void. This also allows for cleaning up its usage in vmm(4) in the
vm pmap initialization logic.
ok mlarkin@
sashan [Wed, 1 Jun 2022 17:34:13 +0000 (17:34 +0000)]
callers to pf(4) must continue to run with packet as returned
by firewall.
OK dlg@
dv [Wed, 1 Jun 2022 17:16:00 +0000 (17:16 +0000)]
remove unused pmap_convert prototype from i386
Leftover lint from early days of vmm(4).
ok mlarkin@
nicm [Wed, 1 Jun 2022 15:43:22 +0000 (15:43 +0000)]
If escape-time is 0, force to 1 instead - not waiting at all is asking
for problems on some platforms.
tb [Wed, 1 Jun 2022 14:48:53 +0000 (14:48 +0000)]
Remove a confusing comment that has been stale since e2k19 (r1.26).
visa [Wed, 1 Jun 2022 14:21:50 +0000 (14:21 +0000)]
Add a regress test for the end of lock range ambiguity bug.
visa [Wed, 1 Jun 2022 14:18:43 +0000 (14:18 +0000)]
Fix ambiguity with lock range end
When the user requests a lock range that ends at LLONG_MAX, replace
the end point with the special EOF value -1. This avoids ambiguity
with lf_end in lf_split(). The ambiguity could result in a broken
data structure.
This change is visible to userspace in a corner case. When a lock range
has been requested with an end point at absolute position LLONG_MAX,
fcntl(F_GETLK) returns l_len == 0, instead of a positive value, for that
range. This seems consistent with FreeBSD and Linux.
OK anton@
Reported-by: syzbot+c93afea6c27a3fa3af39@syzkaller.appspotmail.com
visa [Wed, 1 Jun 2022 14:16:28 +0000 (14:16 +0000)]
Fix lock range start when l_whence == SEEK_END and l_len < 0.
OK anton@
tb [Wed, 1 Jun 2022 10:59:21 +0000 (10:59 +0000)]
Limit the number of RSC checklist FileNameAndHash entries the same way
as mft FileAndHash entries are checked.
ok claudio job
tb [Wed, 1 Jun 2022 10:58:34 +0000 (10:58 +0000)]
Fix off-by-one in MAX_MANIFEST_ENTRIES check
ok claudio job
dlg [Wed, 1 Jun 2022 08:19:15 +0000 (08:19 +0000)]
shrink dmesg output by printing the ethernet address on the attach line.
dlg [Wed, 1 Jun 2022 06:33:46 +0000 (06:33 +0000)]
mark the mvneta interrupt handler as mpsafe.
link state changes still take the kernel lock, but packet processing
is unlocked now.
dlg [Wed, 1 Jun 2022 04:31:08 +0000 (04:31 +0000)]
rework the rx ring processing.
this is another big step toward making the code mpsafe, and makes
a bunch of ring operations such as dmamap syncs and register updates
get done once for the ring rather than for every packet.
dlg [Wed, 1 Jun 2022 03:51:19 +0000 (03:51 +0000)]
mark mvneta_start mpsafe.
the interrupt handler is still under kernel lock, but at least you
can queue packets from another cpu concurrently.
dlg [Wed, 1 Jun 2022 03:39:57 +0000 (03:39 +0000)]
dont have to say Ethernet address in dmesg, address is fine
dlg [Wed, 1 Jun 2022 03:37:41 +0000 (03:37 +0000)]
trim some white space
dlg [Wed, 1 Jun 2022 03:34:21 +0000 (03:34 +0000)]
rework tx start and completion.
this is a big step toward making the code mpsafe, and makes a bunch
of ring operations such as dmamap syncs and register updates per
start/completion call rather than per packet.
tb [Tue, 31 May 2022 21:35:46 +0000 (21:35 +0000)]
Make sure we error on parse failure.
ok claudio
schwarze [Tue, 31 May 2022 20:21:40 +0000 (20:21 +0000)]
Rudimentary implementation of the \A escape sequence, following groff
semantics (test identifier for syntactical validity), not at all
following the completely unrelated Heirloom semantics (define
hyperlink target position).
The main motivation for providing this implementation is to get \A
into the parsing class ESCAPE_EXPAND that corresponds to groff parsing
behaviour, which is quite similar to the \B escape sequence (test
numerical expression for syntactical validity). This is likely
to improve parsing of nested escape sequences in the future.
Validation isn't perfect yet. In particular, this implementation
rejects \A arguments containing some escape sequences that groff
allows to slip through. But that is unlikely to cause trouble even
in documents using \A for non-trivial purposes. Rejecting the nested
escapes in question might even improve robustnest because the rejected
names are unlikely to really be usable for practical purposes - no
matter that groff dubiously considers them syntactically valid.
jmc [Tue, 31 May 2022 20:12:24 +0000 (20:12 +0000)]
fix spacing;
tb [Tue, 31 May 2022 19:37:02 +0000 (19:37 +0000)]
Fix typo: argv[1] -> argv[i]
tb [Tue, 31 May 2022 19:14:15 +0000 (19:14 +0000)]
Remove old checklists and add a couple of new ones.
mbuhl [Tue, 31 May 2022 19:01:46 +0000 (19:01 +0000)]
The pflow regression test could fail due to a race where the close(2)
call of the receiver was called before the FIN on the sender was
processed.
OK bluhm@
OK anton@
tb [Tue, 31 May 2022 18:51:35 +0000 (18:51 +0000)]
I made non-trivial contributions to these files.
tb [Tue, 31 May 2022 18:45:14 +0000 (18:45 +0000)]
Shuffle two helper functions down.
This way the helper functions appear in the order they are used in
rsc_parse_econtent().
tb [Tue, 31 May 2022 18:42:26 +0000 (18:42 +0000)]
Update reference to RSC draft 08
ok claudio job
tb [Tue, 31 May 2022 18:41:43 +0000 (18:41 +0000)]
Remove now unused ASN1_frame() and cms_econtent_version()
ok claudio job
tb [Tue, 31 May 2022 18:40:15 +0000 (18:40 +0000)]
Rewrite rsc.c using ASN.1 templates
This implements the constrained versions of the RFC 3779 structures
since OpenSSL's 3779 API doesn't expose IPAddrBlocks. This way we can
also avoid extra checks after walking the structs. Use the previously
exposed sbgp_as_{id,range}() and sbgp_addr{,_range}() to remove a lot
of copy-pasted code.
While parsing ConstrainedASIdentifiers allocate only once and for
ConstrainedIPAddrBlocks allocate once per address family instead of
doing a reallocation for each asid or prefix.
This removes the last explicit use of ASN1_TYPE and ASN1_SEQUENCE_ANY
from rpki-client.
ok claudio job
tb [Tue, 31 May 2022 18:33:16 +0000 (18:33 +0000)]
Prepare rewrite of rsc.c with templated ASN.1
Change signatures of various functions to avoid using struct parse and
expose sbgp_as_{id,range}() and sbgp_addr{,_range}() so they can be used
from rsc.c. This is a mostly mechanical diff.
ok claudio job
schwarze [Tue, 31 May 2022 18:08:02 +0000 (18:08 +0000)]
Trivial patch to put the roff(7) \g (interpolate format of register)
escape sequence into the correct parsing class, ESCAPE_EXPAND.
Expansion of \g is supposed to work exactly like the expansion
of the related escape sequence \n (interpolate register value),
but since we ignore the .af (assign output format) request,
we just interpolate an empty string to replace the \g sequence.
Surprising as it may seem, this actually makes a formatting difference
for deviate input like ".O\gNx" which used to raise bogus "escaped
character not allowed in a name" and "skipping unknown macro" errors
and printed nothing, whereas now it correctly prints "OpenBSD".
nicm [Tue, 31 May 2022 16:13:43 +0000 (16:13 +0000)]
Add a missing space.
naddy [Tue, 31 May 2022 14:05:12 +0000 (14:05 +0000)]
ssh-keygen: implement "verify-required" certificate option
This was already documented when support for user-verified FIDO
keys was added, but the ssh-keygen(1) code was missing.
ok djm@
nicm [Tue, 31 May 2022 10:22:42 +0000 (10:22 +0000)]
Trim menu item text correctly, GitHub issue 3197.
claudio [Tue, 31 May 2022 09:50:26 +0000 (09:50 +0000)]
Introduce a integration test for max-communities
claudio [Tue, 31 May 2022 09:46:54 +0000 (09:46 +0000)]
Extend community unit test to also check community_count()
claudio [Tue, 31 May 2022 09:45:33 +0000 (09:45 +0000)]
Implement a max communities filter match
When max-communities X is set on a filterrule the filter will match when
more than X communities are present in the path. In other words
max-communities 0 means no communities are allowed and max-communities 3
limits it up to 3 communities.
There is max-communities, max-ext-communities and max-large-communities
for each of the 3 community attributes. These three max checks can be used
together.
OK tb@ job@
deraadt [Mon, 30 May 2022 23:31:45 +0000 (23:31 +0000)]
sync
schwarze [Mon, 30 May 2022 22:50:40 +0000 (22:50 +0000)]
Dummy implementation of the roff(7) \V (interpolate environment variable)
escape sequence. This is needed to get \V into the correct parsing
class, ESCAPE_EXPAND.
It is intentional that mandoc(1) output is *not* influenced by environment
variables, so interpolate the name of the variable with some decorating
punctuation rather than interpolating its value.
dv [Mon, 30 May 2022 17:58:20 +0000 (17:58 +0000)]
knf; fix whitespace in structs
kettenis [Mon, 30 May 2022 17:44:10 +0000 (17:44 +0000)]
sfgpio(4)
kettenis [Mon, 30 May 2022 17:39:09 +0000 (17:39 +0000)]
Add sfgpio(4), a driver for the GPIO controller found on the
SiFive FU740 SoC.
ok jca@
dv [Mon, 30 May 2022 16:07:28 +0000 (16:07 +0000)]
grep(1): print full context when using match count
When using the match count flag (-m), grep was not printing the
context after the match if the -A or -C flags were provided.
This changes the logic to continue printing lines after hitting the
match count.
ok op@, millert@
visa [Mon, 30 May 2022 14:06:16 +0000 (14:06 +0000)]
Replace selwakeup() with KNOTE() in pipe event activation.
Recommit the reverted change selectively so that only pipes are
affected. Leave sockets untouched for now.
nicm [Mon, 30 May 2022 13:07:46 +0000 (13:07 +0000)]
Remove duplicates from completion list, GitHub issue 3178.
nicm [Mon, 30 May 2022 13:07:06 +0000 (13:07 +0000)]
Add pane_start_path to match start_command.
nicm [Mon, 30 May 2022 13:06:41 +0000 (13:06 +0000)]
Set PWD so shells have a hint about the real path (this was done before
but lost in a merge). GitHub issue 3186.
nicm [Mon, 30 May 2022 13:06:10 +0000 (13:06 +0000)]
Fix property name from Sergei Dyshel, and a typo from imcusg at gmail
dot com.
nicm [Mon, 30 May 2022 13:04:24 +0000 (13:04 +0000)]
Check if args_strtonum argument is NULL or not a string, from Anindya
Mukherjee.
nicm [Mon, 30 May 2022 13:03:46 +0000 (13:03 +0000)]
Do not allow pipe-pane on dead panes, from Anindya Mukherjee, GitHub
issue 3174.
nicm [Mon, 30 May 2022 13:02:55 +0000 (13:02 +0000)]
If a mouse position was above the maximum supported by the normal mouse
protocol (223), tmux was allowing it to wrap around. However, since tmux
was not correctly handling this on input, other programs also do not
handle it correctly, and the alternative SGR mouse mode is now
widespread, this seems unnecessary, so remove this feature. Also define
some constants to make it clearer what the numbers mean. Mostly from
Leonid S Usov in GitHub issue 3165.
nicm [Mon, 30 May 2022 13:00:18 +0000 (13:00 +0000)]
Add a way for lines added to copy mode to be passed through the parser
to handle escape sequences and use it for run-shell, GitHub issue 3156.
nicm [Mon, 30 May 2022 12:57:31 +0000 (12:57 +0000)]
iTerm2 has OSC 7, from Gregory Anders.