aboutsummaryrefslogtreecommitdiff
path: root/sys/net/ieee8023ad_lacp.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove extra semicolons.Andrew Thompson2008-03-171-2/+2
| | | | | | | Pointed out by: antoine Notes: svn path=/head/; revision=177289
* Switch the LACP state machine over to its own mutex to protect the internals,Andrew Thompson2008-03-161-3/+47
| | | | | | | | | | 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. Notes: svn path=/head/; revision=177274
* Pass any unmatched slowprotocols frames up the stack instead of dropping them,Andrew Thompson2007-12-311-1/+1
| | | | | | | there are more subtypes than just LACP. Notes: svn path=/head/; revision=175005
* Allow the LACP state to be queried from userland which at the moment is theAndrew Thompson2007-07-051-0/+2
| | | | | | | | | | actor and partner peer info. Print out the active aggregator and per port data in verbose mode from ifconfig. Approved by: re (mux) Notes: svn path=/head/; revision=171247
* non-functional cleanupAndrew Thompson2007-06-121-16/+6
| | | | | | | | | | - remove dead code - use consistent variable names - gc unused defines - whitespace cleanup Notes: svn path=/head/; revision=170599
* Compare the partner system priority when choosing the aggregator.Andrew Thompson2007-05-191-0/+2
| | | | Notes: svn path=/head/; revision=169741
* Implement the Marker Protocol. A marker frame is placed on the interface queueAndrew Thompson2007-05-191-24/+28
| | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=169739
* Change from a mutex to a read/write lock. This allows the tx port to beAndrew Thompson2007-05-151-2/+3
| | | | | | | | selected simultaneously by multiple senders and transmit/receive is not serialised between aggregated interfaces. Notes: svn path=/head/; revision=169569
* Change from using if_delmulti() to if_delmulti_ifma() as it simplifies the codeAndrew Thompson2007-05-071-0/+1
| | | | | | | | | and is safe to use if the ifp has disappeared. Suggested by: bms Notes: svn path=/head/; revision=169327
* Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking.Andrew Thompson2007-04-171-16/+16
| | | | | | | | | | | | | | 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@ Notes: svn path=/head/; revision=168793
* Add the trunk(4) driver for providing link aggregation, failover and faultAndrew Thompson2007-04-101-0/+289
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. Notes: svn path=/head/; revision=168561