aggr(4) driver added to -current
by from OpenBSD Journal on (#4JVNC)
David Gwynne (dlg@) hascommitted to -currenta dedicatedLink Aggregation (EEE 802.1AX)driver,aggr(4).Themain commit messageexplains the raison d'itre:
CVSROOT:/cvsModule name:srcChanges by:dlg@cvs.openbsd.org2019/07/04 19:35:58Added files:sys/net : if_aggr.c Log message:add aggr(4), a dedicated driver that implements 802.1AX link aggregation802.1AX (formerly known as 802.3ad) describes the Link AggregationControl Protocol (LACP) and how to use it in a bunch of differentstate machines to control when to bundle interfaces into anaggregation.technically the trunk(4) driver already implements support for802.1AX, but it had a couple of problems i struggled to deal withas part of that driver. firstly, i couldnt easily make the outputpath in trunk mpsafe without getting bogged down, and the statemachine handling had a few hard to diagnose edge cases that i couldntfigure out.the new driver has an mpsafe output path, and implements ifq bypasslike vlan(4) does. this means output with aggr(4) is up to twiceas fast as trunk(4). the implementation of the state machines asper the standard means the driver behaves more correctly in edgecases like when a physical link looks like it is up, but is logicallyunidirectional.the code has been good enough for me to use in production, but itdoes need more work. that can happen in tree now instead of carryinga large diff around.some testing by ccardenas@, hrvoje popovski, and jmatthew@ok deraadt@ ccardenas@ jmatthew@