Add administrative options to LACP trunk implementation.
authorccardenas <ccardenas@openbsd.org>
Sun, 12 Aug 2018 23:50:31 +0000 (23:50 +0000)
committerccardenas <ccardenas@openbsd.org>
Sun, 12 Aug 2018 23:50:31 +0000 (23:50 +0000)
commit838a4c90f22c4a50b28517fcc0472908a53ba161
treedc965255faf63da9b5f61169eac216feb0bfd9a3
parent73774627fc9ffd0d85c6e5026e4a7cc50e32fb55
Add administrative options to LACP trunk implementation.

The trunk driver now has a new ioctl (SIOCxTRUNKOPTS), which for now only
has options for LACP:
* Mode - Active or Passive (default Active)
* Timeout - Fast or Slow (default Slow)
* System Priority - 1(high) to 65535(low) (default 32768/0x8000)
* Port Priority - 1(high) to 65535(low) (default 32768/0x8000)
* IFQ Priority - 0 to NUM_QUEUES (default 6)

At the moment, ifconfig only has options for lacpmode and lacptimeout
plumbed as those are the immediate need.

The approach taken for the options was to make them on a "trunk" vs a
"port" as what's typically seen on various NOSes (JunOS, NXOS, etc...)
as it's uncommon for a host to have one link "Passive" and the other
"Active" in a given trunk.

Just like on a NOS, when applying lacpmode or lacptimeout, the settings
are immediately applied to all existing ports in the trunk and to all
future ports brought into the trunk.

Tested by many on a plethora of NIC drivers and switches.

Ok remi@
sbin/ifconfig/ifconfig.8
sbin/ifconfig/ifconfig.c
share/man/man4/trunk.4
sys/net/if_trunk.c
sys/net/if_trunk.h
sys/net/trunklacp.c
sys/net/trunklacp.h