#
259065 |
|
07-Dec-2013 |
gjb |
- Copy stable/10 (r259064) to releng/10.0 as part of the 10.0-RELEASE cycle. - Update __FreeBSD_version [1] - Set branch name to -RC1
[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so start releng/10.0 at '100' so the branch is started with a value ending in zero.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
255038 |
|
29-Aug-2013 |
adrian |
Convert the if_lagg rwlock to an rmlock.
We've been seeing lots of cache line contention (but not lock contention!) in our workloads between the various TX and RX threads going on.
The write lock is only grabbed when configuration changes are made - which are infrequent.
With this patch, the contention and cycles spent waiting for updates disappear.
Sponsored by: Netflix, Inc.
|
#
253687 |
|
26-Jul-2013 |
adrian |
Break out the static, global LACP debug options into a per-lagg unit sysctl tree.
* Create a net.link.lagg.X.lacp node * Add a debug node under that for tx_test and rx_test * Add lacp_strict_mode, defaulting to 1
tx_test and rx_test are still a bitmap of unit numbers for now. At some point it would be nice to create child nodes of the lagg bundle for each sub-interface, and then populate those with various knobs and statistics.
Sponsored by: Netflix
|
#
253314 |
|
13-Jul-2013 |
adrian |
Bring over some link aggregation / LACP protocol improvements and debugging additions.
* Add some new tracing events to aid in debugging. * Add in a debugging mode to drop transmit and received frames, specifically to test whether seeing or hearing heartbeats correctly cause LACP to drop the port. * Add in (and make default) a strict LACP mode, which requires the heartbeat on a port to be heard before it's used. Sometimes vendor ports will hang but the link layer stays up, resulting in hung traffic. * Add logging the number of link status flaps, again to aid in debugging badly behaving switch ports. * Calculate the lagg interface port speed as the multiple of the configured ports, rather than the largest.
Obtained from: Netflix MFC after: 2 weeks
|
#
249925 |
|
26-Apr-2013 |
glebius |
Add const qualifier to the dst parameter of the ifnet if_output method.
|
#
249506 |
|
15-Apr-2013 |
glebius |
Switch lagg(4) statistics to counter(9).
The lagg(4) is often used to bond high speed links, so basic per-packet += on statistics cause cache misses and statistics loss.
Perfect solution would be to convert ifnet(9) to counters(9), but this requires much more work, and unfortunately ABI change, so temporarily patch lagg(4) manually.
We store counters in the softc, and once per second push their values to legacy ifnet counters.
Sponsored by: Nginx, Inc.
|
#
248621 |
|
22-Mar-2013 |
glebius |
Remove __FreeBSD_version ifdefs.
|
#
232629 |
|
06-Mar-2012 |
thompsa |
Add the ability to set which packet layers are used for the load balance hash calculation.
|
#
232008 |
|
22-Feb-2012 |
thompsa |
Using the flowid in the mbuf assumes the network card is giving a good hash for the traffic flow, this may not be the case giving poor traffic distribution. Add a sysctl which allows us to fall back to our own flow hash code.
PR: kern/164901 Submitted by: Eugene Grosbein MFC after: 1 week
|
#
203548 |
|
06-Feb-2010 |
eri |
Propagate the vlan eventis to the underlying interfaces/members so they can do initialization of hw related features.
PR: kern/141646 Reviewed by: thompsa Approved by: thompsa(co-mentor) MFC after: 2 weeks
|
#
191148 |
|
16-Apr-2009 |
kmacy |
Change if_output to take a struct route as its fourth argument in order to allow passing a cached struct llentry * down to L2
Reviewed by: rwatson
|
#
172554 |
|
12-Oct-2007 |
thompsa |
Fix two panics in lagg.
1. The locking was changed to shared but roundrobin mode still updated a pointer in the softc with the next tx interface to use. This will panic under high load. Change this to an atomically incremented sequence number in order to choose the tx port in round robin.
2. IFQ_HANDOFF will free the mbuf if the queue is full, this will then be freed again by lagg_start() and panic. Reorganised the error handling and freeing to fix this.
MFC after: 3 days
|
#
171661 |
|
30-Jul-2007 |
thompsa |
- Propagate the largest set of interface capabilities supported by all lagg ports to the lagg interface. - Use the MTU from the first interface as the lagg MTU, all extra interfaces must be the same.
This fixes using a lagg interface for a vlan or enabling jumbo frames, etc.
Approved by: re (kensmith) MFC After: 3 days
|
#
171247 |
|
05-Jul-2007 |
thompsa |
Allow the LACP state to be queried from userland which at the moment is the actor and partner peer info. Print out the active aggregator and per port data in verbose mode from ifconfig.
Approved by: re (mux)
|
#
170599 |
|
12-Jun-2007 |
thompsa |
non-functional cleanup - remove dead code - use consistent variable names - gc unused defines - whitespace cleanup
|
#
169569 |
|
15-May-2007 |
thompsa |
Change from a mutex to a read/write lock. This allows the tx port to be selected simultaneously by multiple senders and transmit/receive is not serialised between aggregated interfaces.
|
#
169329 |
|
06-May-2007 |
thompsa |
Call if_setlladdr() on the aggregation port from a taskqueue so the softc lock is not held. The short delay between aggregating the port and setting the MAC address is fine.
|
#
169328 |
|
06-May-2007 |
thompsa |
Avoid touching various unsafe parts if the interface is disappearing.
|
#
169327 |
|
06-May-2007 |
thompsa |
Change from using if_delmulti() to if_delmulti_ifma() as it simplifies the code and is safe to use if the ifp has disappeared.
Suggested by: bms
|
#
169228 |
|
03-May-2007 |
thompsa |
Fix flag descriptions.
|
#
169227 |
|
03-May-2007 |
thompsa |
- Add a disabled state for ports that can not be aggregated - Refine check for lacp links, set to disabled if not suitable
|
#
168793 |
|
16-Apr-2007 |
thompsa |
Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking.
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@
|