summaryrefslogtreecommitdiffstats
path: root/sys/net/ieee8023ad_lacp.c
Commit message (Collapse)AuthorAgeFilesLines
* Use the flowid if its available for selecting the tx port.thompsa2009-04-301-1/+4
|
* Update the interface baudrate taking into account the max speed for thethompsa2008-12-171-0/+2
| | | | different aggregation protocols.
* Switch the LACP state machine over to its own mutex to protect the internals,thompsa2008-03-161-124/+103
| | | | | | | this means that it no longer grabs the lagg rwlock. Use two port table arrays which list the active ports for Tx and switch between them with an atomic op. Now the lagg rwlock is only exclusively locked for management (ioctls) and queuing of lacp control frames isnt needed.
* Pass any unmatched slowprotocols frames up the stack instead of dropping them,thompsa2007-12-311-5/+5
| | | | there are more subtypes than just LACP.
* Use the safer callout_init_rw() to allow the softclock to grab thethompsa2007-11-211-5/+2
| | | | rwlock for us.
* Allow the LACP state to be queried from userland which at the moment is thethompsa2007-07-051-0/+50
| | | | | | | actor and partner peer info. Print out the active aggregator and per port data in verbose mode from ifconfig. Approved by: re (mux)
* non-functional cleanupthompsa2007-06-121-56/+36
| | | | | | | - remove dead code - use consistent variable names - gc unused defines - whitespace cleanup
* Compare the partner system priority when choosing the aggregator.thompsa2007-05-191-1/+9
|
* Implement the Marker Protocol. A marker frame is placed on the interface queuethompsa2007-05-191-8/+103
| | | | | | | | | | | | | of each port and any further packets are blocked, when the all the marker frames have been returned to us from the remote network device then we can be sure that all interface queues are empty. This is needed when a port is added or removed from the aggregation since it will affect the hash based distribution, if the queues are not empty then a packet from an existing connection may be placed on a different interface and arrive out of order. This was previously achieved by suppressing transmission for 1 second, now that there is an active feedback this timeout as been increased to 3 seconds and used as a fallback.
* Fix locking assert where we should hold the reader lock.thompsa2007-05-181-1/+1
|
* Change from a mutex to a read/write lock. This allows the tx port to bethompsa2007-05-151-15/+80
| | | | | selected simultaneously by multiple senders and transmit/receive is not serialised between aggregated interfaces.
* Avoid touching various unsafe parts if the interface is disappearing.thompsa2007-05-071-1/+3
|
* Change from using if_delmulti() to if_delmulti_ifma() as it simplifies the codethompsa2007-05-071-15/+3
| | | | | | and is safe to use if the ifp has disappeared. Suggested by: bms
* - Add a disabled state for ports that can not be aggregatedthompsa2007-05-031-5/+18
| | | | - Refine check for lacp links, set to disabled if not suitable
* Test for IFM_FDX rather than IFM_HDX as the half-duplex bit may not be set eventhompsa2007-05-021-1/+1
| | | | if the link is not full-duplex.
* Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking.thompsa2007-04-171-73/+73
| | | | | | | | | | | The name trunk is misused as the networking term trunk means carrying multiple VLANs over a single connection. The IEEE standard for link aggregation (802.3 section 3) does not talk about 'trunk' at all while it is used throughout IEEE 802.1Q in describing vlans. The lagg(4) driver provides link aggregation, failover and fault tolerance. Discussed on: current@
* Add the trunk(4) driver for providing link aggregation, failover and faultthompsa2007-04-101-0/+1763
tolerance. This driver allows aggregation of multiple network interfaces as one virtual interface using a number of different protocols/algorithms. failover - Sends traffic through the secondary port if the master becomes inactive. fec - Supports Cisco Fast EtherChannel. lacp - Supports the IEEE 802.3ad Link Aggregation Control Protocol (LACP) and the Marker Protocol. loadbalance - Static loadbalancing using an outgoing hash. roundrobin - Distributes outgoing traffic using a round-robin scheduler through all active ports. This code was obtained from OpenBSD and this also includes 802.3ad LACP support from agr(4) in NetBSD.
OpenPOWER on IntegriCloud