guenther [Thu, 22 Feb 2018 20:36:40 +0000 (20:36 +0000)]
Set the PG_G (global) bit on the special page table entries that are shared
between the u-k and u+k tables, because they're actually in *all* tables.
ok bluhm@ kettenis@ mlarkin@
bluhm [Thu, 22 Feb 2018 20:27:14 +0000 (20:27 +0000)]
The compile time assertion for cpu info did not work with gcc.
Rephrase the condition in a way that both gcc and clang accept it.
OK guenther@
bluhm [Thu, 22 Feb 2018 20:18:59 +0000 (20:18 +0000)]
The GNU assembler does not understand 1ULL, so replace the constant
with 1. Then it compiles with gcc, sign and size do not matter
here.
OK mlarkin@
jsing [Thu, 22 Feb 2018 17:36:55 +0000 (17:36 +0000)]
sync
jsing [Thu, 22 Feb 2018 17:34:42 +0000 (17:34 +0000)]
Bump lib{crypto,ssl,tls} minors due to symbol additions.
jsing [Thu, 22 Feb 2018 17:30:25 +0000 (17:30 +0000)]
Provide SSL_is_server().
jsing [Thu, 22 Feb 2018 17:29:24 +0000 (17:29 +0000)]
Provide SSL_up_ref().
jsing [Thu, 22 Feb 2018 17:27:06 +0000 (17:27 +0000)]
Provide SSL_CTX_get_ciphers().
jsing [Thu, 22 Feb 2018 17:25:18 +0000 (17:25 +0000)]
Provide SSL_SESSION_up_ref().
jsing [Thu, 22 Feb 2018 17:22:02 +0000 (17:22 +0000)]
Provide X509_chain_up_ref().
From BoringSSL.
jsing [Thu, 22 Feb 2018 17:19:31 +0000 (17:19 +0000)]
Provide X509_STORE_get0_objects(), X509_STORE_get_ex_data() and
X509_STORE_set_ex_data().
jsing [Thu, 22 Feb 2018 17:17:09 +0000 (17:17 +0000)]
Provide X509_OBJECT_get0_X509() and X509_OBJECT_get0_X509_CRL().
jsing [Thu, 22 Feb 2018 17:15:09 +0000 (17:15 +0000)]
Provide X509_STORE_up_ref().
jsing [Thu, 22 Feb 2018 17:11:30 +0000 (17:11 +0000)]
Provide X509_STORE_CTX_get0_chain() and X509_STORE_CTX_get0_store().
schwarze [Thu, 22 Feb 2018 17:10:00 +0000 (17:10 +0000)]
In x509.h rev. 1.30 2018/02/20 17:04:58, jsing@ provided
X509_CRL_get0_lastUpdate(3) and X509_CRL_get0_nextUpdate(3).
Document them.
jsing [Thu, 22 Feb 2018 17:09:28 +0000 (17:09 +0000)]
Provide X509_get0_tbs_sigalg().
jsing [Thu, 22 Feb 2018 17:06:42 +0000 (17:06 +0000)]
Provide X509_set1_notBefore() and X509_set1_notAfter().
jsing [Thu, 22 Feb 2018 17:05:35 +0000 (17:05 +0000)]
Provide X509_get0_pubkey().
jsing [Thu, 22 Feb 2018 17:01:44 +0000 (17:01 +0000)]
Provide X509_CRL_set1_lastUpdate() and X509_CRL_set1_nextUpdate().
jsing [Thu, 22 Feb 2018 16:58:45 +0000 (16:58 +0000)]
Provide X509_CRL_get0_extensions() and X509_CRL_get_signature_nid().
jsing [Thu, 22 Feb 2018 16:53:42 +0000 (16:53 +0000)]
Provide X509_CRL_up_ref().
jsing [Thu, 22 Feb 2018 16:50:30 +0000 (16:50 +0000)]
Provide X509_REQ_get_signature_nid().
jsing [Thu, 22 Feb 2018 16:47:50 +0000 (16:47 +0000)]
Provide X509_REVOKED_get0_extensions(), X509_REVOKED_get0_revocationDate()
and X509_REVOKED_get0_serialNumber().
jsing [Thu, 22 Feb 2018 16:41:04 +0000 (16:41 +0000)]
Provide DH_get0_engine().
jsing [Thu, 22 Feb 2018 16:38:43 +0000 (16:38 +0000)]
Provide BIO_up_ref().
schwarze [Thu, 22 Feb 2018 16:26:27 +0000 (16:26 +0000)]
In x509.h rev. 1.30 2018/02/20 17:04:58, jsing@ provided
X509_CRL_get0_signature(3) and in rev. 1.31 2018/02/20 17:06:19
X509_REQ_get0_signature(3). Document them.
schwarze [Thu, 22 Feb 2018 15:22:06 +0000 (15:22 +0000)]
In bn.h rev. 1.37 2018/02/20 17:02:30, jsing@ provided BN_get_rfc*(3)
as aliases for get_rfc*(3). Mention them in the manual page.
jmc [Thu, 22 Feb 2018 13:23:47 +0000 (13:23 +0000)]
various tweaks;
nicm [Thu, 22 Feb 2018 11:42:41 +0000 (11:42 +0000)]
Remove an unused variable.
nicm [Thu, 22 Feb 2018 10:58:12 +0000 (10:58 +0000)]
Check prefix when retrying so it is checked while repeat flag is
set. GitHub issue 1239.
nicm [Thu, 22 Feb 2018 10:54:51 +0000 (10:54 +0000)]
Add exit-empty option to exit server if no sessions (defaults to on).
dlg [Thu, 22 Feb 2018 09:47:12 +0000 (09:47 +0000)]
remove some debug code in nvgre
mpi [Thu, 22 Feb 2018 08:47:20 +0000 (08:47 +0000)]
Always reallocate a new memory chunk when changing the gateway of a
route entry.
This makes sure we pass the correct size to free(9).
Reproted by and ok dlg@
jmc [Thu, 22 Feb 2018 08:46:05 +0000 (08:46 +0000)]
typo;
claudio [Thu, 22 Feb 2018 07:43:29 +0000 (07:43 +0000)]
Same change as rev 1.22 in ospfd:
The IF_EVT_NBR_CHNG event needs to be fired when a neighbor transitions to
a state of 2-Way or higher. There is no need to trigger the event for new
neighbors. With this situations with multiple DRs after a netsplit should
be solved.
OK sthen@ and remi@
claudio [Thu, 22 Feb 2018 07:42:38 +0000 (07:42 +0000)]
The IF_EVT_NBR_CHNG event needs to be fired when a neighbor transitions to
a state of 2-Way or higher. There is no need to trigger the event for new
neighbors. With this situations with multiple DRs after a netsplit should
be solved.
OK sthen@ and remi@
dlg [Thu, 22 Feb 2018 07:33:24 +0000 (07:33 +0000)]
don't get in the way of setting the rdomain on gre(4)
dlg [Thu, 22 Feb 2018 07:27:26 +0000 (07:27 +0000)]
slight tweak
dlg [Thu, 22 Feb 2018 07:24:58 +0000 (07:24 +0000)]
reorganise the manpage with subsections for each type of interface.
the page was getting a bit cumbersome with the arrival of nvgre,
so hopefully this makes it a bit more straightforward.
jmc@ says he can fix stuff as i go
dlg [Thu, 22 Feb 2018 01:35:04 +0000 (01:35 +0000)]
make the Nd lines (subjectively) less worse
dlg [Wed, 21 Feb 2018 22:20:19 +0000 (22:20 +0000)]
implement nvgre(4) based on rfc7637 aka NVGRE
NVGRE is short for Network Virtualization Using Generic Routing
Encapsulation.
it provides an overlay ethernet network with multiple ip peers,
rather than a tunnel to a single peer like egre(4) provides. unlike
egre the vnetid is mandantory and always 24 bits. it offers similar
functionality to vxlan(4).
mikeb [Wed, 21 Feb 2018 21:09:57 +0000 (21:09 +0000)]
Mark VIA padlock as capable of dealing with ESN
There are no actual changes to the driver since the software crypto
driver is called to handle authentication operations.
This enabled padlock to be used when tunnels are setup with iked(8).
Tested by and OK fcambus
rpe [Wed, 21 Feb 2018 20:02:37 +0000 (20:02 +0000)]
Delete the kernel link kit tgz after extraction to align with the
libexec/reorder_kernel script.
OK tb
rpe [Wed, 21 Feb 2018 19:57:21 +0000 (19:57 +0000)]
Tweak comments.
OK tb
rpe [Wed, 21 Feb 2018 19:54:25 +0000 (19:54 +0000)]
If there is one interface, and it is configured via dhcp, and the lease
contains both domain-name and domain-search options make sure to use the
first domain-name entry (there might be multiple).
This issue was noticed by Raf Czlonka, thanks for reporting
Discussed with, tested and OK krw
guenther [Wed, 21 Feb 2018 19:24:15 +0000 (19:24 +0000)]
Meltdown: implement user/kernel page table separation.
On Intel CPUs which speculate past user/supervisor page permission checks,
use a separate page table for userspace with only the minimum of kernel code
and data required for the transitions to/from the kernel (still marked as
supervisor-only, of course):
- the IDT (RO)
- three pages of kernel text in the .kutext section for interrupt, trap,
and syscall trampoline code (RX)
- one page of kernel data in the .kudata section for TLB flush IPIs (RW)
- the lapic page (RW, uncachable)
- per CPU: one page for the TSS+GDT (RO) and one page for trampoline
stacks (RW)
When a syscall, trap, or interrupt takes a CPU from userspace to kernel the
trampoline code switches page tables, switches stacks to the thread's real
kernel stack, then copies over the necessary bits from the trampoline stack.
On return to userspace the opposite occurs: recreate the iretq frame on the
trampoline stack, switch stack, switch page tables, and return to userspace.
mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing
issues on MP in particular, and drove the final push to completion.
Many rounds of testing by naddy@, sthen@, and others
Thanks to Alex Wilson from Joyent for early discussions about trampolines
and their data requirements.
Per-CPU page layout mostly inspired by DragonFlyBSD.
ok mlarkin@ deraadt@
mpi [Wed, 21 Feb 2018 09:30:02 +0000 (09:30 +0000)]
Call socreate() before falloc() in sys_socket().
This is similar to what we do in sys_socketpair() and will allow us
to grab the KERNEL_LOCK() only after having created a socket.
This time with correct non-blocking check.
Tested by landry@, previous diff ok tedu@
dlg [Wed, 21 Feb 2018 05:20:17 +0000 (05:20 +0000)]
if egre takes the packet, it's done, don't fall through to l3 processing.
dlg [Wed, 21 Feb 2018 05:19:11 +0000 (05:19 +0000)]
whitespace fixes
jsg [Wed, 21 Feb 2018 00:43:03 +0000 (00:43 +0000)]
add bsd.mp
jsg [Wed, 21 Feb 2018 00:04:41 +0000 (00:04 +0000)]
match linux whitespace in ioctl list
kettenis [Tue, 20 Feb 2018 23:57:54 +0000 (23:57 +0000)]
Add GENERIC.MP directory.
kettenis [Tue, 20 Feb 2018 23:48:23 +0000 (23:48 +0000)]
Add GENERIC.MP.
kettenis [Tue, 20 Feb 2018 23:46:48 +0000 (23:46 +0000)]
Release the secondary CPUs.
kettenis [Tue, 20 Feb 2018 23:45:24 +0000 (23:45 +0000)]
Make arm64 pmap (somewhat) mpsafe.
jsg [Tue, 20 Feb 2018 23:44:19 +0000 (23:44 +0000)]
stop mixing bsd and c99 fixed width types and just use c99 types everywhere
tb [Tue, 20 Feb 2018 21:11:15 +0000 (21:11 +0000)]
Fix bogus check. Spotted by brynet, thanks.
tb [Tue, 20 Feb 2018 20:59:19 +0000 (20:59 +0000)]
RSA_get_flags should be RSA_test_flags.
Noted by sthen. Rides previous minor bump.
tb [Tue, 20 Feb 2018 18:51:35 +0000 (18:51 +0000)]
whitespace nit
tb [Tue, 20 Feb 2018 18:20:29 +0000 (18:20 +0000)]
sync
tb [Tue, 20 Feb 2018 18:19:07 +0000 (18:19 +0000)]
Crank lib{crypto,ssl,tls} minors after symbol addition.
tb [Tue, 20 Feb 2018 18:17:17 +0000 (18:17 +0000)]
Provide BIO_meth_{g,s}et_callback_ctrl()
with & ok jsing
tb [Tue, 20 Feb 2018 18:13:31 +0000 (18:13 +0000)]
Provide BIO_meth_get_{create,ctrl,destroy,gets,puts,read}()
ok jsing
tb [Tue, 20 Feb 2018 18:10:27 +0000 (18:10 +0000)]
Zap an 'int' that snuck in.
ok jsing
tb [Tue, 20 Feb 2018 18:07:11 +0000 (18:07 +0000)]
Provide SSL_SESSION_get_protocol_version()
ok jsing
tb [Tue, 20 Feb 2018 18:05:28 +0000 (18:05 +0000)]
Provide EVP_PKEY_get0_EC_KEY() and 'if (ret)' vs 'if (ret != 0)' cosmetics.
ok jsing
tb [Tue, 20 Feb 2018 18:01:42 +0000 (18:01 +0000)]
Provide DH_set_length()
ok jsing
tb [Tue, 20 Feb 2018 17:59:31 +0000 (17:59 +0000)]
Provide DH_bits()
ok jsing
tb [Tue, 20 Feb 2018 17:55:26 +0000 (17:55 +0000)]
Provide BIO_{g,s}et_shutdown().
ok jsing
tb [Tue, 20 Feb 2018 17:52:27 +0000 (17:52 +0000)]
Provide DSA_get0_engine()
ok jsing
tb [Tue, 20 Feb 2018 17:48:35 +0000 (17:48 +0000)]
Provide DSA_SIG_{g,s}et0()
ok jsing
tb [Tue, 20 Feb 2018 17:45:44 +0000 (17:45 +0000)]
Provide DSA_{clear,set,test}_flags()
ok jsing
tb [Tue, 20 Feb 2018 17:42:32 +0000 (17:42 +0000)]
Provide RSA_{clear,set,test}_flasg()
ok jsing
tb [Tue, 20 Feb 2018 17:38:15 +0000 (17:38 +0000)]
Provide DH_{clear,set,test}_flags().
ok jsing
jsing [Tue, 20 Feb 2018 17:15:27 +0000 (17:15 +0000)]
Provide BIO_get_new_index().
Based on BoringSSL.
jsing [Tue, 20 Feb 2018 17:13:14 +0000 (17:13 +0000)]
Provide BN_GENCB_new(), BN_GENCB_free() and BN_GENCB_get_arg()
jsing [Tue, 20 Feb 2018 17:09:20 +0000 (17:09 +0000)]
Provide X509_NAME_get0_der().
From OpenSSL.
jsing [Tue, 20 Feb 2018 17:06:19 +0000 (17:06 +0000)]
Provide X509_REQ_get0_signature()
jsing [Tue, 20 Feb 2018 17:04:58 +0000 (17:04 +0000)]
Provide X509_CRL_get0_{last,next}Update() and X509_CRL_get0_signature().
jsing [Tue, 20 Feb 2018 17:02:30 +0000 (17:02 +0000)]
Provide BN_get_rfc2409_prime_*() and BN_get_rfc3526_prime_*().
otto [Tue, 20 Feb 2018 16:22:19 +0000 (16:22 +0000)]
make sure we've read the lenght bytes before checking the length
ok benno@
tb [Tue, 20 Feb 2018 15:33:16 +0000 (15:33 +0000)]
Move getvnetflowid() out of #ifndef SMALL to unbreak 'make release'.
Diff from jsg, ok millert, benno
mikeb [Tue, 20 Feb 2018 15:02:13 +0000 (15:02 +0000)]
Convert key length from bits to bytes
Reported by Renaud Allard, fix tested by Renaud (i386) and fcambus@ (amd64).
OK visa, fcambus
visa [Tue, 20 Feb 2018 14:46:22 +0000 (14:46 +0000)]
Make ddb's "show all locks" command show spinlocks in addition
to sleeplocks.
OK mpi@
mpi [Tue, 20 Feb 2018 12:44:28 +0000 (12:44 +0000)]
Test that removing a mpath RTF_CLONING route entry do not remove the
RTF_CACHED entry of a sibling RTF_CLONING entry.
mpi [Tue, 20 Feb 2018 12:43:03 +0000 (12:43 +0000)]
Removing an RTF_CLONING route entry should not invalidate an RTF_CACHED
entry that has been cloned from a different RTF_CLONING route.
Bug report & ok friehm@
mpi [Tue, 20 Feb 2018 12:38:58 +0000 (12:38 +0000)]
Introduce enternewpgrp() & enterthispgrp(), from FreeBSD via guenther@.
This code shuffling will ease the introduction of the proctree lock
in sys_setsid() and sys_setpgid().
Extracted from a larger diff from guenther@, ok visa@
nicm [Tue, 20 Feb 2018 10:43:46 +0000 (10:43 +0000)]
Do not leak memory when working out job name in formats.
sthen [Tue, 20 Feb 2018 10:12:14 +0000 (10:12 +0000)]
Call "vmctl stop" on each VM at shutdown, for OpenBSD guests this means they
are signalled to shutdown cleanly. Wait for each to finish to avoid too much
busy work at once; this may need revising if it turns out to be too slow with
a larger number of VMs (e.g. signal/delay/signal/delay/... then wait for
shutdowns), but let's avoid making it more complex unless we know it's needed.
Based on a diff from abieber@, discussed with mlarkin@ aja@ rpe@, ok rpe
sthen [Tue, 20 Feb 2018 09:43:59 +0000 (09:43 +0000)]
sync
sthen [Tue, 20 Feb 2018 09:20:47 +0000 (09:20 +0000)]
merge configure.ac from NSD 4.1.19, previously we had an updated
generated configure file, but old configure.ac.
jmc [Tue, 20 Feb 2018 07:34:28 +0000 (07:34 +0000)]
tweak previous, with some help from dlg;
jmatthew [Tue, 20 Feb 2018 05:40:52 +0000 (05:40 +0000)]
Set the chain_offset field (same as sgl_offset0, only in 16 byte units)
in passthrough IO requests, which makes AEN processing work on SAS2208
controllers, and since AEN processing works now, enable it again.
tested on SAS2208 (PERC H710P) and SAS3108 (PERC H730), SAS3.5 parts
should work too.
ok dlg@
dlg [Tue, 20 Feb 2018 04:03:15 +0000 (04:03 +0000)]
cisco set the tos on their keepalive packets to ip precedence
internet control, so we can too.
dlg [Tue, 20 Feb 2018 03:53:54 +0000 (03:53 +0000)]
add support for vnetflowid.
when enabled, the 32bit key on gre a packet is split into a 24bit
key and an 8 bit flow id. this allows better use of multipath links
if the intermediate routers feed the gre key into their hashing
algorithms. because gre can encapsulate pretty much anything, it
can be non-trivial for a router to reach into a payload to harvest
entropy for feeding into a hashing algorithm. having the endpoints
do it and feed it into the gre header is a lot simpler.
this allows interoperationg with cisco gre tunnels with key entropy
enabled. this was tested against a csr1000v.
also, this arrangement coincides with how nvgre works, so it paves
the way for supporting that protocol.
right now the driver relies on the flowid in mbufs to populate the
packet field. this generally means that pf should be enabled to
provide the flowid.
dlg [Tue, 20 Feb 2018 03:46:45 +0000 (03:46 +0000)]
only allow root to use SIOCSVNETFLOWID.
dlg [Tue, 20 Feb 2018 03:45:06 +0000 (03:45 +0000)]
add support for toggling partitioning a vnetid into a netid and flowid
"vnetflowid" enables it on an interface, and "-vnetflowid" disables it.
a vnetid will be suffixed with + on the encap line if it an interface
reports that it is enabled.
dlg [Tue, 20 Feb 2018 03:43:07 +0000 (03:43 +0000)]
add ioctls to toggle partitioning a vnetid into a netid and flowid
this maps to key entropy in cisco tunnel terminology, and will be
used in gre and egre to interoperate with their tunnels.
dlg [Tue, 20 Feb 2018 01:20:37 +0000 (01:20 +0000)]
add support for setting the tunnel df bit.
ok mpi@
rpe [Mon, 19 Feb 2018 23:42:29 +0000 (23:42 +0000)]
Write warning/error messages to stderr and end them with a fullstop.
OK tb