#
1.14 |
|
12-Aug-2018 |
ccardenas |
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@
|
#
1.13 |
|
12-May-2018 |
ccardenas |
Make LACP_STATE_BITS accessible to userland
Update ifconfig to display LACP State (Actor and Partner) on each trunk port
Ok benno@, phessler@, and tb@
|
Revision tags: OPENBSD_6_3_BASE
|
#
1.12 |
|
29-Oct-2017 |
mpi |
Kill unused members using forward declaration only types.
Found with ctfconv(1). ok jsg@, guenther@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.11 |
|
05-Oct-2015 |
mikeb |
Factor LACP frame processing out to a separate task
This is slightly refactored version of the diff by jmatthew@ that makes use of a single per-trunk task but retains per-port mbuf queues.
Running LACP frame processing in a task context allows a simple way to synchronize changes to the trunk ports and trunk itself performed from the ioctl, timeout and task contexts with a kernel lock.
OK mpi
|
#
1.10 |
|
23-Sep-2015 |
mikeb |
Removes locking macros that we've inherited from NetBSD/FreeBSD.
ok dlg, mpi
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.9 |
|
11-May-2015 |
mpi |
Take trunk(4) out of ether_input().
Each physical interface of a trunk now gets a specific ifih (interface input handler) that runs before ether_input().
Tested by sthen@, dlg@, Theo Buehler and <mxb AT alumni.chalmers DOT se>
ok sthen@, dlg@
|
Revision tags: OPENBSD_5_7_BASE
|
#
1.8 |
|
04-Dec-2014 |
tedu |
use siphash for trunk loadbalancing. ok deraadt
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.7 |
|
24-Oct-2013 |
deraadt |
Move more stuff under _KERNEL ok claudio
|
#
1.6 |
|
24-Oct-2013 |
deraadt |
Move obvious kernel prototypes (and structure's with kernel pointers, obviously only used in the kernel) behind #ifdef _KERNEL
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
|
#
1.5 |
|
09-Sep-2009 |
reyk |
remove inline functions and move some code from the trunk_lacp_input() API function directly to lacp_input() to simplify the code path.
ok mpf@
|
Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE
|
#
1.4 |
|
08-Nov-2008 |
mpf |
Take into account that our ether_input() already strips the ethernet header. This lets us actually process the incoming LACP-Packets. It should now work with a lot more switches. At least a Catalyst 3500 seems happy. OK brad@
|
#
1.3 |
|
12-Oct-2008 |
mpf |
Some more cleanup. No binary change. OK reyk@
|
Revision tags: OPENBSD_4_4_BASE
|
#
1.2 |
|
15-Jun-2008 |
mpf |
A bit of cleanup: - we prefer u_int*_t over uint_*t. - static is bad for debugging. - header files should not contain functions.
|
#
1.1 |
|
15-Jun-2008 |
mpf |
Add 802.3ad LACP support for trunk(4). Implementation from NetBSD. Ported via FreeBSD's version in trunk^Wlagg(4). This is still work in progress. Tested with a HP ProCurve 3500. OK reyk@
|
#
1.13 |
|
12-May-2018 |
ccardenas |
Make LACP_STATE_BITS accessible to userland
Update ifconfig to display LACP State (Actor and Partner) on each trunk port
Ok benno@, phessler@, and tb@
|
Revision tags: OPENBSD_6_3_BASE
|
#
1.12 |
|
29-Oct-2017 |
mpi |
Kill unused members using forward declaration only types.
Found with ctfconv(1). ok jsg@, guenther@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.11 |
|
05-Oct-2015 |
mikeb |
Factor LACP frame processing out to a separate task
This is slightly refactored version of the diff by jmatthew@ that makes use of a single per-trunk task but retains per-port mbuf queues.
Running LACP frame processing in a task context allows a simple way to synchronize changes to the trunk ports and trunk itself performed from the ioctl, timeout and task contexts with a kernel lock.
OK mpi
|
#
1.10 |
|
23-Sep-2015 |
mikeb |
Removes locking macros that we've inherited from NetBSD/FreeBSD.
ok dlg, mpi
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.9 |
|
11-May-2015 |
mpi |
Take trunk(4) out of ether_input().
Each physical interface of a trunk now gets a specific ifih (interface input handler) that runs before ether_input().
Tested by sthen@, dlg@, Theo Buehler and <mxb AT alumni.chalmers DOT se>
ok sthen@, dlg@
|
Revision tags: OPENBSD_5_7_BASE
|
#
1.8 |
|
04-Dec-2014 |
tedu |
use siphash for trunk loadbalancing. ok deraadt
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.7 |
|
24-Oct-2013 |
deraadt |
Move more stuff under _KERNEL ok claudio
|
#
1.6 |
|
24-Oct-2013 |
deraadt |
Move obvious kernel prototypes (and structure's with kernel pointers, obviously only used in the kernel) behind #ifdef _KERNEL
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
|
#
1.5 |
|
09-Sep-2009 |
reyk |
remove inline functions and move some code from the trunk_lacp_input() API function directly to lacp_input() to simplify the code path.
ok mpf@
|
Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE
|
#
1.4 |
|
08-Nov-2008 |
mpf |
Take into account that our ether_input() already strips the ethernet header. This lets us actually process the incoming LACP-Packets. It should now work with a lot more switches. At least a Catalyst 3500 seems happy. OK brad@
|
#
1.3 |
|
12-Oct-2008 |
mpf |
Some more cleanup. No binary change. OK reyk@
|
Revision tags: OPENBSD_4_4_BASE
|
#
1.2 |
|
15-Jun-2008 |
mpf |
A bit of cleanup: - we prefer u_int*_t over uint_*t. - static is bad for debugging. - header files should not contain functions.
|
#
1.1 |
|
15-Jun-2008 |
mpf |
Add 802.3ad LACP support for trunk(4). Implementation from NetBSD. Ported via FreeBSD's version in trunk^Wlagg(4). This is still work in progress. Tested with a HP ProCurve 3500. OK reyk@
|
#
1.12 |
|
29-Oct-2017 |
mpi |
Kill unused members using forward declaration only types.
Found with ctfconv(1). ok jsg@, guenther@
|
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.11 |
|
05-Oct-2015 |
mikeb |
Factor LACP frame processing out to a separate task
This is slightly refactored version of the diff by jmatthew@ that makes use of a single per-trunk task but retains per-port mbuf queues.
Running LACP frame processing in a task context allows a simple way to synchronize changes to the trunk ports and trunk itself performed from the ioctl, timeout and task contexts with a kernel lock.
OK mpi
|
#
1.10 |
|
23-Sep-2015 |
mikeb |
Removes locking macros that we've inherited from NetBSD/FreeBSD.
ok dlg, mpi
|
Revision tags: OPENBSD_5_8_BASE
|
#
1.9 |
|
11-May-2015 |
mpi |
Take trunk(4) out of ether_input().
Each physical interface of a trunk now gets a specific ifih (interface input handler) that runs before ether_input().
Tested by sthen@, dlg@, Theo Buehler and <mxb AT alumni.chalmers DOT se>
ok sthen@, dlg@
|
Revision tags: OPENBSD_5_7_BASE
|
#
1.8 |
|
04-Dec-2014 |
tedu |
use siphash for trunk loadbalancing. ok deraadt
|
Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.7 |
|
24-Oct-2013 |
deraadt |
Move more stuff under _KERNEL ok claudio
|
#
1.6 |
|
24-Oct-2013 |
deraadt |
Move obvious kernel prototypes (and structure's with kernel pointers, obviously only used in the kernel) behind #ifdef _KERNEL
|
Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
|
#
1.5 |
|
09-Sep-2009 |
reyk |
remove inline functions and move some code from the trunk_lacp_input() API function directly to lacp_input() to simplify the code path.
ok mpf@
|
Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE
|
#
1.4 |
|
08-Nov-2008 |
mpf |
Take into account that our ether_input() already strips the ethernet header. This lets us actually process the incoming LACP-Packets. It should now work with a lot more switches. At least a Catalyst 3500 seems happy. OK brad@
|
#
1.3 |
|
12-Oct-2008 |
mpf |
Some more cleanup. No binary change. OK reyk@
|
Revision tags: OPENBSD_4_4_BASE
|
#
1.2 |
|
15-Jun-2008 |
mpf |
A bit of cleanup: - we prefer u_int*_t over uint_*t. - static is bad for debugging. - header files should not contain functions.
|
#
1.1 |
|
15-Jun-2008 |
mpf |
Add 802.3ad LACP support for trunk(4). Implementation from NetBSD. Ported via FreeBSD's version in trunk^Wlagg(4). This is still work in progress. Tested with a HP ProCurve 3500. OK reyk@
|