OpenBSD cvs log

created 2019-07-09T07:41:50Z
begin 2019-07-05T00:00:00Z
end 2019-07-06T00:00:00Z
path src/sys
commits 18

date 2019-07-05T01:23:22Z
author dlg
files src/sys/netinet/if_ether.h log diff annotate
message add ac_trunkport to arpcom so trunks can coordinate owning an interface

Ethernet interfaces can be used by trunk(4), and i'm about to commit
a new aggr(4) driver which should not be able to use an interface
while trunk owns it and visa versa.

date 2019-07-05T01:24:56Z
author dlg
files src/sys/net/if_trunk.c log diff annotate
message record when trunk takes over an interface by setting ac_trunkport

this will be used to prevent trunk and the upcoming aggr driver
from taking ownership of an Ethernet interface at the same time.

date 2019-07-05T01:35:58Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message add aggr(4), a dedicated driver that implements 802.1AX link aggregation

802.1AX (formerly known as 802.3ad) describes the Link Aggregation
Control Protocol (LACP) and how to use it in a bunch of different
state machines to control when to bundle interfaces into an
aggregation.

technically the trunk(4) driver already implements support for
802.1AX, but it had a couple of problems i struggled to deal with
as part of that driver. firstly, i couldnt easily make the output
path in trunk mpsafe without getting bogged down, and the state
machine handling had a few hard to diagnose edge cases that i couldnt
figure out.

the new driver has an mpsafe output path, and implements ifq bypass
like vlan(4) does. this means output with aggr(4) is up to twice
as fast as trunk(4). the implementation of the state machines as
per the standard means the driver behaves more correctly in edge
cases like when a physical link looks like it is up, but is logically
unidirectional.

the code has been good enough for me to use in production, but it
does need more work. that can happen in tree now instead of carrying
a large diff around.

some testing by ccardenas@, hrvoje popovski, and jmatthew@
ok deraadt@ ccardenas@ jmatthew@

date 2019-07-05T01:37:13Z
author dlg
files src/sys/conf/files log diff annotate
message wire up aggr

date 2019-07-05T01:37:53Z
author dlg
files src/sys/conf/GENERIC log diff annotate
message add aggr, but leave it commented out for now.

it needs to be a bit more robust before making it more available to try.

date 2019-07-05T02:27:48Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message tweak mtu handling and propagate mtu setting to trunkports

make setting a trunkports mtu to its current mtu a nop. set a
trunkports mtu to the aggr mtu when the port is getting added. set
the mtu on all trunkports when the aggr mtu is set so things look
consistent. restore a trunkports mtu when it is removed from an
aggr.

this is mostly cosmetic since the mtu on trunkports isn't really
used anywhere.

date 2019-07-05T02:36:31Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message report a port as active to userland if it is muxed

date 2019-07-05T03:34:53Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message move a declaration before a statement.

date 2019-07-05T04:56:15Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message init the log of tx times to somewhere in the past when adding a port.

date 2019-07-05T04:58:59Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message iterate over distributing ports when populating the tx map, not all ports

this probably explains why ive seen a box decide not to use a
distributing port, even though the state machine and all the lacp
state flags say it's fine. it may also explain why jmatthew@ has
seen a port still transmitting after it's been removed from an
aggr(4).

date 2019-07-05T05:00:07Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message initialise sc_lacp_timeout to AGGR_LACP_TIMEOUT_SLOW, not 0;

it's the same, but there was a misleading comment on the same line
which this cleans up too.

date 2019-07-05T05:00:40Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message fix the $OpenBSD$ tag

date 2019-07-05T07:18:12Z
author dlg
files src/sys/net/if_aggr.c log diff annotate
message pretend to handle setting trunkproto, but only support setting it to lacp

date 2019-07-05T12:10:10Z
author kettenis
files src/sys/dev/pci/drm/drm_linux.c log diff annotate
src/sys/dev/pci/drm/i915/intel_hotplug.c log diff annotate
message Use multi-threaded task queues to prevent deadlocks in the case where a
tasks sleeps and expects to be woken up by a task that will be submitted
to the same task queue. That scenario happens in the output hotplug code.

We probably should spend some time on tuning the number of threads but
let's make things work correctly first.

Based on some serious debugging done by Sven M. Hallberg.

ok jsg@

date 2019-07-05T12:35:16Z
author patrick
files src/sys/dev/ic/bwfm.c log diff annotate
src/sys/dev/ic/bwfmvar.h log diff annotate
message Since on a SCAN each node is provided in its own event,
the limited ring for asynchronous can easily overflow.
Work around this by chaining the mbufs into a list.

Fixes a panic for jcs@
ok stsp@

date 2019-07-05T15:23:35Z
author visa
files src/sys/arch/octeon/octeon/autoconf.c log diff annotate
message If there is no explicit device class match for a given boot device,
use DV_IFNET. This makes all network interfaces available for root
device selection.

Requested by and OK patrick@

date 2019-07-05T19:06:50Z
author kettenis
files src/sys/arch/sparc64/dev/vpci.c log diff annotate
message Fix vpci_bus_map() if the case where the "child" space in the "ranges"
property doesn't start at address zero.

date 2019-07-05T22:10:50Z
author kn
files src/sys/kern/kern_watchdog.c log diff annotate
message Use timeout_add_msec(9)

Although the period is specified in seconds, convert to milliseconds so
uneven periods are not truncated after integer division by two.

Input and OK cheloha