aboutsummaryrefslogtreecommitdiff
path: root/lib/bond.h
AgeCommit message (Collapse)Author
2013-08-02bond: Stop using tags.Ethan Jackson
This patch transitions bonding away from using tags as required by future patches. Signed-off-by: Ethan Jackson <ethan@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2013-06-27bond: Reference count 'struct bond'.Ethan Jackson
Signed-off-by: Ethan Jackson <ethan@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
2013-06-11ofproto-dpif: Store relevant fields for wildcarding in facet.Justin Pettit
Dynamically determines the flow fields that were relevant in processing flows based on the OpenFlow flow table and switch configuration. The immediate use for this functionality is to cache action translations for similar flows in facets. This yields a roughly 80% improvement in flow set up rates for a complicated flow table. More importantly, these wildcards will be used to determine what to wildcard for the forthcoming kernel wildcard (megaflow) patches that will allow wildcarding in the kernel, which will provide significant flow set up improvements. The approach to tracking fields and caching action translations in facets was based on an impressive prototype by Ethan Jackson. Co-authored-by: Ethan Jackson <ethan@nicira.com> Signed-off-by: Ethan Jackson <ethan@nicira.com> Signed-off-by: Justin Pettit <jpettit@nicira.com>
2013-02-05bond: Remove stable bond mode.Ethan Jackson
Stable bond mode, along with autopath, were trying to implement functionality close to what we get from the bundle action. Unfortunately, they are quite clunky, and generally less useful than bundle, so they're being removed. Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-05-02Global replace of Nicira Networks.Raju Subramanian
Replaced all instances of Nicira Networks(, Inc) to Nicira, Inc. Feature #10593 Signed-off-by: Raju Subramanian <rsubramanian@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
2012-01-30bond: Allow users to disable rebalancing.Ethan Jackson
Bond rebalances come with a risk of packet reordering which some users may find unacceptable. Requested-by: Ben Basler <bbasler@nicira.com> Signed-off-by: Ethan Jackson <ethan@nicira.com>
2012-01-23lacp: Require successful LACP negotiations when configured.Ethan Jackson
In the original Open vSwitch LACP implementation, when no slaves found a LACP partner, the LACP module would attach all of them. This allowed the LACP bond to fall back to a standard bond when partnered with a non-LACP switch. In practice, this has caused confusion with marginal benefit, so this feature is removed with this patch. Signed-off-by: Ethan Jackson <ethan@nicira.com>
2011-11-02ofproto-dpif: Use send_packet() instead of netdev_send().Jesse Gross
netdev_send() directly sends a packet using Linux mechanisms, skipping our kernel module. Several upper layer abstractions are built on top of the kernel module, so this means that we loose stats, sFlow, etc. on these packets. This changes bonding, LACP, and STP to use send_packet() as CFM does, which uses the standard kernel mechanisms and provides a single place that needs to be updated.
2011-05-20bond: Use CFM for slave status.Ethan Jackson
With this patch, if CFM is configured on a slave, and in a faulted state, it will be disabled by the bond module.
2011-05-20netdev: Take responsibility for polling MII registers.Ethan Jackson
This patch moves miimon logic from the bond module to netdev-linux. This greatly simplifies the bonding code while adding minimal complexity to netdev-linux. The bonding code is so high level, it really has no business worrying about how precisely slave status is determined.
2011-05-12Merge 'master' into 'next'.Ben Pfaff
2011-05-06bond: Convert stb_id to 32bit parameter.Ethan Jackson
The 16 bits currently in use is artificially restrictive.
2011-05-04bond: New function bond_slave_set_netdev().Ben Pfaff
To be used by an upcoming change.
2011-04-26bond: New bond-hash-basis setting.Ethan Jackson
2011-04-15bond: Completely pull LACP module out of bond.Ethan Jackson
The bonding code only needs to know whether a given slave may be enabled, and whether LACP has been negotiated on the bond. Instead of passing in the LACP handle and letting the bond query this information. This patch passes in the information directly.
2011-04-15bond: Create new 'stable_id' parameter.Ethan Jackson
For BM_STABLE bonds, instead of choosing the sort key in the qsort() comparator, this patch makes it a configuration setting of each slave. This will help wrest LACP out of the bonding code further in future patches.
2011-04-15bond: Give bridge control over LACP module.Ethan Jackson
Before this patch, the bonding code had taken over responsibility for running the LACP module. However, the bonding code only needs the LACP module for some basic status queries. LACP and bonding are actually logically parallel modules and do not really have a parent child relationship. Furthermore, we need to be able to run LACP on non-bonded interfaces which the existing approach prevented. This patch gives control of the LACP module back to the bridge.
2011-04-14bond: New bonding mode "stable".Ethan Jackson
Stable bonds attempt to assign a given flow to the same slave consistently.
2011-04-12bond: Reconfigure flows when bond mode changes.Ethan Jackson
Changes in the bonding mode can cause drastic changes in flow assignments to slaves. This commit causes all flows in a bridge to be revalidated when bond_reconfigure() changes its bonding mode. This approach is a bit aggressive, but bond reconfiguration shouldn't happen often.
2011-04-01bridge: Break bonding implementation out into library.Ben Pfaff
This removes over 1000 lines of code from bridge.c and will make it easier to moving the bonding implementation into ofproto as part of future development.