jmc [Fri, 13 Jul 2018 05:25:29 +0000 (05:25 +0000)]
various tweaks; ok florian
tb [Fri, 13 Jul 2018 05:25:24 +0000 (05:25 +0000)]
zap some garbage that snuck in.
spotted by kevlo
jmc [Fri, 13 Jul 2018 05:22:34 +0000 (05:22 +0000)]
- differentiate between join and nwid
- remove some duplication between them
- document -join
- sort
ok phessler
djm [Fri, 13 Jul 2018 02:13:50 +0000 (02:13 +0000)]
make this use ssh_proxy rather than starting/stopping a daemon for
each testcase
djm [Fri, 13 Jul 2018 02:13:19 +0000 (02:13 +0000)]
fix leaks in unit test; with this, all unit tests are leak free
(as far as valgrind can spot anyway)
deraadt [Thu, 12 Jul 2018 22:09:04 +0000 (22:09 +0000)]
we will be toggling witness on/off a few times. when it is on, it raises
awareness of problems. when it is off, development cycles are faster.
let's do the faster cycle for a little while.
discussion with naddy
deraadt [Thu, 12 Jul 2018 22:07:57 +0000 (22:07 +0000)]
sync
benno [Thu, 12 Jul 2018 21:45:37 +0000 (21:45 +0000)]
store and print the rdomain of the interfaces we see.
ok phessler@ henning@
henning [Thu, 12 Jul 2018 19:31:05 +0000 (19:31 +0000)]
if we couldn't update the clock for ~1h due to lack of data from peers and
sensors, mark us unsynced again. ok reyk krw, pt out / discussion / help naddy
jmc [Thu, 12 Jul 2018 18:45:13 +0000 (18:45 +0000)]
missing .Ek;
krw [Thu, 12 Jul 2018 16:59:59 +0000 (16:59 +0000)]
Cleanup and clarify getuint64() by using the
same functions as auto-allocation. parse_sizespec()
and apply_unit(). No intentional functional
change.
Looked good to tb@
krw [Thu, 12 Jul 2018 16:53:09 +0000 (16:53 +0000)]
Cleanup and clarify the has_overlap() logic so it can be read by
normal people and is more efficient to boot.
The only intentional functional change was to use mergesort()
instead of heapsort() so that partitions with the same offset
retain their order in the emitted verbiage.
Looked good to tb@, ok kn@
florian [Thu, 12 Jul 2018 16:08:02 +0000 (16:08 +0000)]
RTM_CHGADDRATTR for route monitor
OK phessler, benno, claudio
florian [Thu, 12 Jul 2018 16:07:35 +0000 (16:07 +0000)]
Introduce RTM_CHGADDRATTR to inform userland on the route socket when
an attribute of an address is changed.
For now it's used when IPv6 duplicate address detection finishes.
With this slaacd(8) can find out if a configured address is not
duplicated without the need to poll.
OK phessler, benno, claudio
mpi [Thu, 12 Jul 2018 15:51:50 +0000 (15:51 +0000)]
Introduce ipsec_output_cb() to merge duplicate code and account for
dropped packets in the output path.
While here fix a memory leak when compression is not needed w/ IPcomp.
ok markus@
mlarkin [Thu, 12 Jul 2018 15:48:02 +0000 (15:48 +0000)]
unbreak i386 build, thanks to pd@ for noticing. Same diff as I committed
earlier for amd64
mlarkin [Thu, 12 Jul 2018 15:13:33 +0000 (15:13 +0000)]
zap an extra newline
reyk [Thu, 12 Jul 2018 14:53:37 +0000 (14:53 +0000)]
The vmctl start -I option was changed to -t.
I committed the manpage but accidentally forgot the main.c part.
OK ccardenas@
kettenis [Thu, 12 Jul 2018 14:46:45 +0000 (14:46 +0000)]
Add a function to delete all nodes with a specific name.
Add a function to determine the size of a machine description.
sashan [Thu, 12 Jul 2018 14:28:07 +0000 (14:28 +0000)]
trade few 'goto unlock: for 'break' in pf_test()
OK mpi@, OK henning@, OK jca@
guenther [Thu, 12 Jul 2018 14:24:54 +0000 (14:24 +0000)]
Unbreak the nmi handler (again): I placed INTR_CLEAR_GPRS in the wrong
place and GS.base was horked on return. Also, the frame passed to ddb
didn't have the %rbp<-->tf_err swap, which would have confused backtraces.
Now if we can just come up with a way to automate testing the NMI handler
with qemu...
sashan [Thu, 12 Jul 2018 14:22:54 +0000 (14:22 +0000)]
- introducing _Q_INVALID to sys/queue.h
OK @bluhm, OK @otto, OK @guenther
guenther [Thu, 12 Jul 2018 14:11:11 +0000 (14:11 +0000)]
Reorganize the Meltdown entry and exit trampolines for syscall and
traps so that the "mov %rax,%cr3" is followed by an infinite loop
which is avoided because the mapping of the code being executed is
changed. This means the sysretq/iretq isn't even present in that
flow of instructions in the kernel mapping, so userspace code can't
be speculatively reached on the kernel mapping and totally eliminates
the conditional jump over the the %cr3 change that supported CPUs
without the Meltdown vulnerability. The return paths were probably
vulnerable to Spectre v1 (and v1.1/1.2) style attacks, speculatively
executing user code post-system-call with the kernel mappings, thus
creating cache/TLB/etc side-effects.
Would like to apply this technique to the interrupt stubs too, but
I'm hitting a bug in clang's assembler which misaligns the code and
symbols.
While here, when on a CPU not vulnerable to Meltdown, codepatch out
the unnecessary bits in cpu_switchto().
Inspiration from sf@, refined over dinner with theo
ok mlarkin@ deraadt@
schwarze [Thu, 12 Jul 2018 14:06:39 +0000 (14:06 +0000)]
fix Test 7.1 after main.c rev. 1.37;
breaking the output lines earlier with the 'l' command is intentional
remi [Thu, 12 Jul 2018 13:45:03 +0000 (13:45 +0000)]
Add support for rdomains.
small quirk from tb@
ok phessler@
fcambus [Thu, 12 Jul 2018 12:47:57 +0000 (12:47 +0000)]
Remove cases for 1-bit and 4-bit color depths in efifb_ioctl(), as we
basically can't run in those modes.
OK kettenis@
fcambus [Thu, 12 Jul 2018 12:46:00 +0000 (12:46 +0000)]
Stop building rasops4 on amd64.
It was pulled in for efifb, but it is extremely unlikely an EFI system
supporting only 4-bit color depth (16 colors) exists. Even if it existed
though, on SMALL_KERNEL rasops4_putchar() simply returns EAGAIN so it
would not be possible to install the system.
For the record, we do not build rasops4 on i386 or on any of our other
platforms either.
OK kettenis@, mpi@
florian [Thu, 12 Jul 2018 12:38:56 +0000 (12:38 +0000)]
Use (mostly) the same capitalisation in the replacement string as in
the replaced string:
replacing foo with bar turns
foo
Foo
FOO
into
bar
Bar
BAR
OK phessler, benno
beck [Thu, 12 Jul 2018 12:20:11 +0000 (12:20 +0000)]
symlinks make my cry.. thanks robert.. don't you care about my feelings?
remi [Thu, 12 Jul 2018 12:19:05 +0000 (12:19 +0000)]
With the "depend on" option routes are sent out with a metric of 65535 if
the referenced interface is down or in state backup. This is especially
useful on a carp cluster to ensure all traffic goes to the carp master.
ok friehm@ jca@
reyk [Thu, 12 Jul 2018 12:04:49 +0000 (12:04 +0000)]
Allow to use configured/running VMs as templates for other VM instances.
This introduces new grammar and the -t optional in vmctl start.
(For now, only root can create VM instances; but it is planned to allow
users to create their own VMs based on permissions and quota.)
OK ccardenas@ mlarkin@ jmc@
beck [Thu, 12 Jul 2018 11:42:33 +0000 (11:42 +0000)]
Add regress test for realpath and modify behavior appropriately
mlarkin [Thu, 12 Jul 2018 10:16:41 +0000 (10:16 +0000)]
zap a blank line
mlarkin [Thu, 12 Jul 2018 10:15:44 +0000 (10:15 +0000)]
vmm(8)/vmm(4): send a copy of the guest register state to vmd on exit,
avoiding multiple readregs ioctls back to vmm in case register content
is needed subsequently.
ok phessler
florian [Thu, 12 Jul 2018 08:20:36 +0000 (08:20 +0000)]
rc(8) infrastructure for rad
florian [Thu, 12 Jul 2018 08:19:00 +0000 (08:19 +0000)]
hook up rad(8) and ractl(8) to the build
florian [Thu, 12 Jul 2018 08:18:10 +0000 (08:18 +0000)]
use _rad user
florian [Thu, 12 Jul 2018 08:17:26 +0000 (08:17 +0000)]
Add _rad user and group for rad(8).
This recycles the _btd uid/gid that have been removed in 2013.
Discussed in the hackroom.
mpi [Thu, 12 Jul 2018 07:58:23 +0000 (07:58 +0000)]
Instead of having a button for printing the driver(s) attached to a USB
device, do it when invoked with '-v'.
While here recycle '-d' to specify a specific device node, like pcidump(8)
does.
ok jca@, sthen@
espie [Thu, 12 Jul 2018 06:22:20 +0000 (06:22 +0000)]
synch documentation with reality, noticed by landry@
jmc [Thu, 12 Jul 2018 05:54:49 +0000 (05:54 +0000)]
syncookies never is the default; from paul de weerd
ok henning
djm [Thu, 12 Jul 2018 04:35:25 +0000 (04:35 +0000)]
remove prototype to long-gone function
cheloha [Thu, 12 Jul 2018 01:23:38 +0000 (01:23 +0000)]
Add hw.ncpuonline to count the number of online CPUs.
The introduction of hw.smt means that logical CPUs can be disabled
after boot and prior to suspend/resume. If hw.smt=0 (the default),
there needs to be a way to count the number of hardware threads
available on the system at any given time.
So, import HW_NCPUONLINE/hw.ncpuonline from NetBSD and document it.
hw.ncpu becomes equal to the number of CPUs given to sched_init_cpu()
during boot, while hw.ncpuonline is equal to the number of CPUs available
to the scheduler in the cpuset "sched_all_cpus". Set_SC_NPROCESSORS_ONLN
equal to this new sysctl and keep _SC_NPROCESSORS_CONF equal to hw.ncpu.
This is preferable to adding a new sysctl to count the number of
configured CPUs and keeping hw.ncpu equal to the number of online
CPUs because such a change would break software in the ecosystem
that relies on HW_NCPU/hw.ncpu to measure CPU usage and the like.
Such software in base includes top(1), systat(1), and snmpd(8),
and perhaps others.
We don't need additional locking to count the cardinality of a cpuset
in this case because the only interfaces that can modify said cardinality
are sysctl(2) and ioctl(2), both of which are under the KERNEL_LOCK.
Software using HW_NCPU/hw.ncpu to determine optimal parallism will need
to be updated to use HW_NCPUONLINE/hw.ncpuonline. Until then, such software
may perform suboptimally. However, most changes will be similar to the
change included here for libcxx's std::thread:hardware_concurrency():
using HW_NCPUONLINE in lieu of HW_NCPU should be sufficient for determining
optimal parallelism for most software if the change to _SC_NPROCESSORS_ONLN
is insufficient.
Prompted by deraadt. Discussed at length with kettenis, deraadt, and sthen.
Lots of patch tweaks from kettenis.
ok kettenis, "proceed" deraadt
sthen [Wed, 11 Jul 2018 21:49:37 +0000 (21:49 +0000)]
Explicitly call "/etc/rc.d/vmd stop". This issues graceful shutdown commands
to running VMs (at least for OpenBSD ones), but the stop routine for system
daemons is not usually called at shutdown.
Earlier version with just "vmd stop" ok reyk@ kn@, ajacoutot@ reminded me
to hide the contextless "vmd(ok)" text which looks bad, I did so and wrapped
it with a "stopping VMs" message (it can take some time, especially when you
have multiple VMs, so better to have some clear feedback).
reyk [Wed, 11 Jul 2018 21:29:05 +0000 (21:29 +0000)]
check string lengths in vm_start
nayden [Wed, 11 Jul 2018 21:18:23 +0000 (21:18 +0000)]
Disambiguate the source of panics in sys/net* by adding __func__
magic constant to panic() calls.
ok benno@ henning@ tb@
benno [Wed, 11 Jul 2018 21:10:07 +0000 (21:10 +0000)]
The routing table bgpd runs in needs to be a routing domain.
ok claudio henning
claudio [Wed, 11 Jul 2018 20:38:57 +0000 (20:38 +0000)]
Remove RTM_LOSING from the file, it is no longer used by OpenBSD and
route6d is not realy using it anyway.
OK henning@
schwarze [Wed, 11 Jul 2018 20:24:35 +0000 (20:24 +0000)]
some regression tests for lam(1) including width measurements;
will be fixed soon and then linked to the build
phessler [Wed, 11 Jul 2018 20:18:09 +0000 (20:18 +0000)]
Introduce 'auto-join' to the wifi 802.11 stack.
This allows a system to remember which ESSIDs it wants to connect to, any
relevant security configuration, and switch to it when the network we are
currently connected to is no longer available.
Works when connecting and switching between WPA2/WPA1/WEP/clear encryptions.
example hostname.if:
join home wpakey password
join work wpakey mekmitasdigoat
join open-lounge
join cafe wpakey
cafe2018
join "wepnetwork" nwkey "12345"
dhcp
inet6 autoconf
up
OK stsp@ reyk@
and enthusiasm from every hackroom I've been in for the last 3 years
guenther [Wed, 11 Jul 2018 20:07:55 +0000 (20:07 +0000)]
Declare cpu_meltdown in <machine/cpu.h>
beck [Wed, 11 Jul 2018 20:01:56 +0000 (20:01 +0000)]
regress to check nested subdirs and ..'s
henning [Wed, 11 Jul 2018 19:52:19 +0000 (19:52 +0000)]
superfluous newline
bluhm [Wed, 11 Jul 2018 19:28:16 +0000 (19:28 +0000)]
If no thread can immediately handle a signal, which has been sent
to the process, it is made pending at the main thread. There it
could hang forever. So also check the main thread for signal
delivery. This workaround fixes hung tests in posixtestsuite. The
proper solution would be to split pending signals for process and
threads.
input visa@; OK guenther@
claudio [Wed, 11 Jul 2018 19:05:41 +0000 (19:05 +0000)]
improve the path hash function (instead of just hashing the aspath put
most other attrs into the hash as well). At the same time use the full
64 bit of SipHash in various places.
Tested by and OK benno@ phessler@
florian [Wed, 11 Jul 2018 19:05:25 +0000 (19:05 +0000)]
cleanly shutdown by sending advertisement with lifetime 0
markus [Wed, 11 Jul 2018 18:55:11 +0000 (18:55 +0000)]
treat ssh_packet_write_wait() errors as fatal; ok djm@
markus [Wed, 11 Jul 2018 18:53:29 +0000 (18:53 +0000)]
remove legacy key emulation layer; ok djm@
fcambus [Wed, 11 Jul 2018 18:45:45 +0000 (18:45 +0000)]
Remove the i386 specific mention for pcvtfonts, they are also installed
on alpha and amd64.
No objection from jmc@.
OK deraadt@, sthen@
mlarkin [Wed, 11 Jul 2018 18:08:05 +0000 (18:08 +0000)]
Detect vmm(4) in the bootloader and automatically switch to the serial
console at 115200 baud.
ok deraadt
kn [Wed, 11 Jul 2018 18:06:25 +0000 (18:06 +0000)]
Prevent invalid interface specifiers on queue rules
pf.conf(5) states that queues attach to actual interfaces only, yet the
following parses:
# echo queue eq on egress bandwidth 1G default | pfctl -f-
# pfctl -sq
pfctl: DIOCGETQSTATS: Bad file descriptor
# echo queue rq on rdomain 0 bandwidth 1G default | pfctl -vf-
queue rq bandwidth 1G default
# pfctl -sq
pfctl: DIOCGETQSTATS: Bad file descriptor
On rdomains, ifa_exists() returns NULL.
On interface groups, ifa_exists() returns non-NULL but af is never set
to AF_LINK.
OK henning sashan
nayden [Wed, 11 Jul 2018 18:04:18 +0000 (18:04 +0000)]
adding __func__ identifier to panic() calls in vmm.c for amd64 and i386
ok mlarkin@
kn [Wed, 11 Jul 2018 17:44:57 +0000 (17:44 +0000)]
Prevent updating async option on softdep mount
`mount -uo async,nosoftdep /mnt' would set "async" but keep "softdep"
untouched on a read/write mount.
OK deraadt krw beck bluhm
claudio [Wed, 11 Jul 2018 17:35:07 +0000 (17:35 +0000)]
Bump some of the hash table size to more resonable numbers.
Still probably not optimal but less bad.
florian [Wed, 11 Jul 2018 17:32:05 +0000 (17:32 +0000)]
Send a RA with router lifetime of 0 when an interface is removed from
the config.
RFC 4861, 6.2.5:
[...] the router SHOULD transmit one or more (but not more than
MAX_FINAL_RTR_ADVERTISEMENTS) final multicast Router Advertisements on
the interface with a Router Lifetime field of zero.
jmc [Wed, 11 Jul 2018 17:21:57 +0000 (17:21 +0000)]
remove useless macro;
espie [Wed, 11 Jul 2018 16:53:14 +0000 (16:53 +0000)]
"running tags"
reyk [Wed, 11 Jul 2018 16:43:24 +0000 (16:43 +0000)]
sort tokens
naddy [Wed, 11 Jul 2018 16:38:03 +0000 (16:38 +0000)]
do not pick up groff from /usr/local/bin in configure, noticed by benno@;
ok benno@ jca@
reyk [Wed, 11 Jul 2018 16:37:31 +0000 (16:37 +0000)]
style - indent each case statement in a switch.
claudio [Wed, 11 Jul 2018 16:35:37 +0000 (16:35 +0000)]
Print out the hash info sent by the RDE in bgpctl show rib mem
OK phessler@ benno@
claudio [Wed, 11 Jul 2018 16:34:36 +0000 (16:34 +0000)]
On IMSG_CTL_SHOW_RIB_MEM also send back information of some of the
hash structures used in the RDE. Makes it fairly obvious that more
is needed in that area.
OK phessler@ benno@
beck [Wed, 11 Jul 2018 16:25:39 +0000 (16:25 +0000)]
test changed stat lying semantics - we don't lie about files
remi [Wed, 11 Jul 2018 15:41:19 +0000 (15:41 +0000)]
Print the rdomain config option if present.
ok kn@ tb@ deraadt@ sthen@ jca@
kn [Wed, 11 Jul 2018 15:25:42 +0000 (15:25 +0000)]
Use AF_UNSPEC not 0
bluhm [Wed, 11 Jul 2018 14:57:58 +0000 (14:57 +0000)]
Some spaces have been removed from pfctl print. Adapt expected
output in regress.
deraadt [Wed, 11 Jul 2018 14:51:01 +0000 (14:51 +0000)]
retire the old cron socket path; ok jca millert
mlarkin [Wed, 11 Jul 2018 14:48:40 +0000 (14:48 +0000)]
Detect vmm(4) in the bootloader and automatically switch to the serial
console at 115200 baud.
tested by phessler and myself, ok deraadt
beck [Wed, 11 Jul 2018 14:35:37 +0000 (14:35 +0000)]
Regress update to match changes for chrome
sf [Wed, 11 Jul 2018 14:20:18 +0000 (14:20 +0000)]
Fix comment about VLAN encapsulation and checksum offload
Document that some chips actually could do hardware checksum offload for
encapsulated packets, though that would need special handling in those
drivers.
discussions and ok naddy@
benno [Wed, 11 Jul 2018 14:08:46 +0000 (14:08 +0000)]
add option "network ... priority number" to announce prefixes from the
kernel routing table selected by priority.
For example to import all ospfd/ospf6d routes into bgp.
tested by remi@
ok remi@ henning@ and maybe a little claudio@
florian [Wed, 11 Jul 2018 14:03:13 +0000 (14:03 +0000)]
Detect when a router advertisement packet changes due to config
change and if it does send a new advertisement.
The way this is implemented gives us various things for free:
- periodic sending of router advertisements
- send initial advertisement for every interface on startup
florian [Wed, 11 Jul 2018 14:01:44 +0000 (14:01 +0000)]
no longer needed
kn [Wed, 11 Jul 2018 13:57:53 +0000 (13:57 +0000)]
Sync comment
Makes it a tad easier to read through and compare with BN_swap_ct().
OK tb
reyk [Wed, 11 Jul 2018 13:19:47 +0000 (13:19 +0000)]
Add -w option to vmctl stop to wait for completion of VM termination.
Use it in /etc/rc.d/vmd accordingly.
OK sthen@
mlarkin [Wed, 11 Jul 2018 13:19:42 +0000 (13:19 +0000)]
vmm(4): return proper cache topology for cpuid(0x4)
Make the cache neighbor fields match the number of VCPUs present
(currently 1)
ok reyk
claudio [Wed, 11 Jul 2018 13:08:00 +0000 (13:08 +0000)]
Retire RTM_LOSING, it no longer makes sense and on busy servers the
route socket is flooded with those messages. Instead maek sure that the
removal of the dynamic route that can happen is actually also sent to
the routing socket.
OK mpi@ henning@
claudio [Wed, 11 Jul 2018 13:06:16 +0000 (13:06 +0000)]
rtm_send() the cloned routes because of ICMP mtu changes. Until now
these changes to the routing table have not been visible whereas the
RTM_DELETE of those routes have been. Remove this inconsistency.
Input and OK mpi@
OK henning@
mlarkin [Wed, 11 Jul 2018 12:55:01 +0000 (12:55 +0000)]
vmm(4): respect argument size when reading from undefined ports.
mlarkin [Wed, 11 Jul 2018 12:45:01 +0000 (12:45 +0000)]
vmm(4): small cleanup in vm_rwregs.
Clarify error values and change a panic into a debug printf (which will
in turn just kill the VM).
martijn [Wed, 11 Jul 2018 12:38:46 +0000 (12:38 +0000)]
Drop a const-bomb on regexec. It's probably not a good idea to remove a
const promise when processing it in the regex engine.
Minor tweak and OK schwarze@
krw [Wed, 11 Jul 2018 12:21:37 +0000 (12:21 +0000)]
When in incremental search handle ^M (a.k.a. <cr>) like ^[ (a.k.a.
<esc>). i.e. exit incremental search and set the mark. This is what
emacs does.
pointers, suggestions and ok florian@
remi [Wed, 11 Jul 2018 12:09:34 +0000 (12:09 +0000)]
Change the control socket to ospfd.sock.<rdomain>.
ok friehm@ jca@
schwarze [Wed, 11 Jul 2018 11:42:17 +0000 (11:42 +0000)]
After opening all the needed files, tighten the pledge(2)
from "stdio rpath" to just "stdio", before parsing any user data.
It may not matter that much just yet, but parsing will become
slightly more complicated soon when i shall add UTF-8 handling.
OK millert@
henning [Wed, 11 Jul 2018 11:39:31 +0000 (11:39 +0000)]
the STATE_LOOKUP macro made sense ages ago. It stopped making sense
when we moved most of the functionality into a function. g/c the macro
and just call the function. ok mpi jca
schwarze [Wed, 11 Jul 2018 11:35:06 +0000 (11:35 +0000)]
Repair the regression introduced by the recent refactoring
revision 1.11 date: 2004/07/03 21:00:37;
for -p/-P, the argument was no longer parsed, causing segfaults.
OK millert@
reyk [Wed, 11 Jul 2018 10:31:45 +0000 (10:31 +0000)]
Rename function to vmd_check_vmh
remi [Wed, 11 Jul 2018 10:23:47 +0000 (10:23 +0000)]
remove wrong comment
ok jca@ tb@
espie [Wed, 11 Jul 2018 09:57:59 +0000 (09:57 +0000)]
allow default from state
espie [Wed, 11 Jul 2018 09:54:49 +0000 (09:54 +0000)]
allow state->new to deduce the command name from $0