#
303975 |
|
11-Aug-2016 |
gjb |
Copy stable/11@r303970 to releng/11.0 as part of the 11.0-RELEASE cycle.
Prune svn:mergeinfo from the new branch, and rename it to RC1.
Update __FreeBSD_version.
Use the quarterly branch for the default FreeBSD.conf pkg(8) repo and the dvd1.iso packages population.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302408 |
|
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
297610 |
|
06-Apr-2016 |
rpokala |
Revert accidental submit of WIP as part of r297609
Pointyhat to: rpokala
|
#
297609 |
|
06-Apr-2016 |
rpokala |
Storage Controller Interface driver - typo in unimplemented macro in scic_sds_controller_registers.h
s/contoller/controller/
PR: 207336 Submitted by: Tony Narlock <tony @ git-pull.com>
|
#
294615 |
|
23-Jan-2016 |
araujo |
Add an IOCTL rr_limit to let users fine tuning the number of packets to be sent using roundrobin protocol and set a better granularity and distribution among the interfaces. Tuning the number of packages sent by interface can increase throughput and reduce unordered packets as well as reduce SACK.
Example of usage: # ifconfig bge0 up # ifconfig bge1 up # ifconfig lagg0 create # ifconfig lagg0 laggproto roundrobin laggport bge0 laggport bge1 \ 192.168.1.1 netmask 255.255.255.0 # ifconfig lagg0 rr_limit 500
Reviewed by: thompsa, glebius, adrian (old patch) Approved by: bapt (mentor) Relnotes: Yes Differential Revision: https://reviews.freebsd.org/D540
|
#
292402 |
|
17-Dec-2015 |
smh |
Revert r292275 & r292379
glebius has concerns about these changes so reverting those can be discussed and addressed.
Sponsored by: Multiplay
|
#
292275 |
|
15-Dec-2015 |
smh |
Fix lagg failover due to missing notifications
When using lagg failover mode neither Gratuitous ARP (IPv4) or Unsolicited Neighbour Advertisements (IPv6) are sent to notify other nodes that the address may have moved.
This results is slow failover, dropped packets and network outages for the lagg interface when the primary link goes down.
We now use the new if_link_state_change_cond with the force param set to allow lagg to force through link state changes and hence fire a ifnet_link_event which are now monitored by rip and nd6.
Upon receiving these events each protocol trigger the relevant notifications: * inet4 => Gratuitous ARP * inet6 => Unsolicited Neighbour Announce
This also fixes the carp IPv6 NA's that stopped working after r251584 which added the ipv6_route__llma route.
The new behavour can be controlled using the sysctls: * net.link.ether.inet.arp_on_link * net.inet6.icmp6.nd6_on_link
Also removed unused param from lagg_port_state and added descriptions for the sysctls while here.
PR: 156226 MFC after: 1 month Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D4111
|
#
290239 |
|
01-Nov-2015 |
melifaro |
Fix lladdr change propagation for on vlans on top of it. Fix lladdr update when setting mac address manually. Fix lladdr_event for slave ports addition.
MFC after: 4 weeks Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D4004
|
#
288654 |
|
04-Oct-2015 |
araujo |
Remove per complete the fec aggregation protocol. The remove began with revision r271733.
NOTE: This patch must never be merge to 10-Stable
Reviewed by: glebius Approved by: bapt (mentor) Relnotes: Yes Sponsored by: EuroBSDCon Sweden. Differential Revision: D3786
|
#
286700 |
|
12-Aug-2015 |
hiren |
Make LAG LACP fast timeout tunable through IOCTL.
Differential Revision: D3300 Submitted by: LN Sundararajan <lakshmi.n at msystechnologies> Reviewed by: wblock, smh, gnn, hiren, rpokala at panasas MFC after: 2 weeks Sponsored by: Panasas
|
#
279891 |
|
11-Mar-2015 |
hselasky |
Factor out mbuf hashing code from LAGG driver so that other network drivers can use it. This avoids some code duplication. Add missing default case to all switch statements while at it. Also move the hashing of the IPv6 flow field to layer 4 because the IPv6 flow field is constant on a per L4 connection basis and not on a per L3 network.
Differential Revision: https://reviews.freebsd.org/D1987 Sponsored by: Mellanox Technologies MFC after: 1 month
|
#
275358 |
|
01-Dec-2014 |
hselasky |
Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file.
This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows.
"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before.
Additional notes: - The SCTP code changes will be committed as a separate patch. - Removal of the "M_FLOWID" flag will also be done separately. - The FreeBSD version has been bumped.
MFC after: 1 month Sponsored by: Mellanox Technologies
|
#
272547 |
|
05-Oct-2014 |
hrs |
- Move L2 addr configuration for the primary port to a taskqueue. This fixes LOR of softc rmlock in iflladdr_event handlers.
- Call if_delmulti_ifma() after LACP_UNLOCK(). This fixes another LOR.
- Fix a panic in lacp_transit_expire().
- Fix a panic in lagg_input() upon shutting down a port.
|
#
272446 |
|
02-Oct-2014 |
hrs |
Separate option handling from SIOC[SG]LAGG to SIOC[SG]LAGGOPTS for backward compatibility with old ifconfig(8).
|
#
272386 |
|
01-Oct-2014 |
hrs |
Virtualize lagg(4) cloner. This change fixes a panic when tearing down if_lagg(4) interfaces which were cloned in a vnet jail.
Sysctl nodes which are dynamically generated for each cloned interface (net.link.lagg.N.*) have been removed, and use_flowid and flowid_shift ifconfig(8) parameters have been added instead. Flags and per-interface statistics counters are displayed in "ifconfig -v".
CR: D842
|
#
272244 |
|
28-Sep-2014 |
glebius |
Finally, convert counters in struct ifnet to counter(9).
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
272211 |
|
27-Sep-2014 |
melifaro |
Use underlying ports counters to get lagg statistics instead of per-packet accounting. This introduce user-visible changes like aggregating error counters.
Reviewed by: asomers (prev.version), glebius CR: D781 MFC after: 2 weeks Sponsored by: Yandex LLC
|
#
272179 |
|
26-Sep-2014 |
glebius |
Remove macros that hide access to struct ifnet fields.
|
#
272178 |
|
26-Sep-2014 |
glebius |
Make all lagg protocol methods live in lagg_protos, not in softc. All interfaces of a same protocol, use the same methods.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
272175 |
|
26-Sep-2014 |
glebius |
- Whitespace. - Remove caddr_t.
|
#
272170 |
|
26-Sep-2014 |
glebius |
- Provide lagg_proto_attach(), lagg_proto_detach(). - Make detach a protocol method in lagg_protos. - Simplify code to lookup protocols.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
272159 |
|
26-Sep-2014 |
glebius |
Make lagg protos a enum.
|
#
272158 |
|
26-Sep-2014 |
glebius |
Make lagg protocols detach methods returning void.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
271732 |
|
18-Sep-2014 |
araujo |
Add laggproto broadcast, it allows sends frames to all ports of the lagg(4) group and receives frames on any port of the lagg(4).
Phabric: D549 Reviewed by: glebius, thompsa Approved by: glebius Obtained from: OpenBSD Sponsored by: QNAP Systems Inc.
|
#
269492 |
|
04-Aug-2014 |
mav |
Improve locking of multicast addresses in VLAN and LAGG interfaces.
This fixes several scenarios of reproducible panics, cause by races between multicast address changes and interface destruction.
MFC after: 2 weeks
|
#
260070 |
|
30-Dec-2013 |
scottl |
Multi-queue NIC drivers and multi-port lagg tend to use the same lower bits of the flowid as each other, resulting in a poor distribution of packets among queues in certain cases. Work around this by adding a set of sysctls for controlling a bit-shift on the flowid when doing multi-port aggrigation in lagg and lacp. By default, lagg/lacp will now use bits 16 and higher instead of 0 and higher.
Reviewed by: max Obtained from: Netflix MFC after: 3 days
|
#
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 |
|
07-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 |
|
07-May-2007 |
thompsa |
Avoid touching various unsafe parts if the interface is disappearing.
|
#
169327 |
|
07-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 |
|
17-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@
|