2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-17 14:28:02 +00:00
Commit Graph

18 Commits

Author SHA1 Message Date
Ethan Jackson
cc8d12f936 lacp: New "lacp-heartbeat" mode.
This commit creates a new heartbeat mode for LACP.  This mode
treats LACP as a protocol simply for monitoring link status.  It
strips out most of the sanity checks built into the protocol.
Addition of this mode makes "lacp-force-aggregatable" and
"lacp-strict" options obsolete so they are removed.
2011-05-06 13:48:41 -07:00
Ethan Jackson
e1ce3f2dcc lacp: Allow configurable aggregation keys.
Users will the ability to manually set aggregation keys on a
per-slave basis in order to use some of the more advanced LACP
features.  Most notably, LACP controlled active-backup bonding
requires fine grained aggregation key configuration.
2011-04-26 17:54:33 -07:00
Ethan Jackson
da2f7b8ff5 lacp: New other_config setting "lacp-force-aggregatable".
In some extremely advanced situations, one may want to force
non-bondable slaves to advertise themselves as bondable.  This
patch adds that capability.

Also includes some minor code cleanup.
2011-04-26 17:51:09 -07:00
Ethan Jackson
cdcf42c664 lacp: Implement custom timing mode.
With this patch, the LACP module may be manually configured to use
an arbitrary transmission rate set in the database.
2011-04-19 13:49:36 -07:00
Ethan Jackson
808f401eb6 lacp: Remove LACP_[FAST|SLOW]_TIME_RX macros.
The receive rate for a LACP packets is simply 3 times the
transmission rate.  It doesn't make sense to maintain separate
macros for these values especially since future patches will allow
arbitrary transmission rates.
2011-04-19 13:49:35 -07:00
Ethan Jackson
81aee5f901 lacp: Move LACP packet data to lacp header file. 2011-04-19 13:49:35 -07:00
Ethan Jackson
206018136a lacp: New "strict" lacp mode.
When LACP negotiations are unsuccessful, OVS falls back to standard
balance-slb bonding.  In some cases, users may want to require
successful LACP negotiations for any slaves to be enabled at all.
This patch implements a new "strict" mode which disables all slaves
when LACP negotiations are unsuccessful.
2011-04-19 10:33:19 -07:00
Ethan Jackson
eb45889342 lacp: Update attached status more often.
The attached status of slaves should be updated when certain global
configuration settings change, or when a slave is destroyed.
2011-04-19 10:31:55 -07:00
Ethan Jackson
44cb163fa6 lacp: New function lacp_slave_is_current().
Used in future patches.
2011-04-18 10:48:48 -07:00
Ethan Jackson
0f1a47f108 lacp: Remove enabled flag.
The enabled flag in the LACP module was only used to set the
Collecting and Distributing flags in the LACP protocol.  It was
intended to be set by the bonding code to mimic its enabled flag.

The spec is relatively vague on the precise meaning of these flags,
and most implementations do something completely different with
them.  For these reasons, it seems acceptable to remove the enabled
flag for the sake of simplicity.  A slave is now Collecting and
Distributing if it is attached, or LACP couldn't be negotiated.
2011-04-14 18:30:48 -07:00
Ethan Jackson
b49b7df441 lacp: New function lacp_slave_get_port_id().
Will be used in future commits.
2011-04-13 16:26:22 -07:00
Ben Pfaff
bb5bc6c042 lacp: Encapsulate configuration into new structs.
This makes it easier to pass configuration between modules.
2011-04-01 15:52:20 -07:00
Ben Pfaff
7a6735157c bridge: Drop LACP configuration members from struct iface and struct port.
There's no reason that I can see to maintain this information in struct
port and struct iface.  It's redundant, since the lacp implementation
maintains the same information.
2011-04-01 15:52:20 -07:00
Ben Pfaff
02c9ed77e3 lacp: Fix misleading prototype for lacp_configure().
Only the first 6 bytes (ETH_ADDR_LEN) of the 'sys_id' argument are used,
but the prototype declared it as an array of 8 bytes.  This has no effect
on the generated code--the declared size of an array parameter is
irrelevant--but it is misleading.

Also, add 'const' since the array is not modified.
2011-04-01 15:52:20 -07:00
Ethan Jackson
2083480976 lacp: Use new timer library. 2011-03-31 16:17:41 -07:00
Ethan Jackson
269340fac3 lacp: Enable "fast" lacp timing mode. 2011-03-18 11:33:02 -07:00
Ethan Jackson
77fdfa9bf7 lacp: Transmit more judiciously.
Only transmit when the LACP partner needs to be updated instead of
whenever it might need to be updated.
2011-03-18 11:33:02 -07:00
Ethan Jackson
6aa7430820 vswitchd: Modularize LACP.
This commit pulls LACP code out of the bridge into its own LACP
module.  Currently this module is only used by the existing bonding
infrastructure.
2011-03-18 11:33:01 -07:00