PDF datasheet

Merlink - LACP and Link Aggregation

Tech Specification

Link Aggregation Framework & LACP / 802.3ad

Merlink - LACP and Link AggregationMerlink, a member of the Switchcraft family of layer 2 protocol products, is a high performance implementation of managed link aggregation for embedded switching implementations in networking and industrial equipment. It enables multiple links to be aggregated together to form a link aggregation group that a MAC client can treat as a single higher-speed link ("fat pipe") with built-in fault tolerance. Merlink also enables aggregates to use custom distribution functions for load balancing and other application-specific features, including designating certain ports as fail-over ports. For automated management of aggregated links in highly interoperable manner, Merlink includes support for the IEEE 802.3ad Link Aggregation Control Protocol (LACP) and the Marker protocol.

Merlink is a robust, lean, high performance implementation of managed link aggregation for embedded systems, including interoperable implementations of the IEEE 802.3ad standard : Link Aggregation Control Protocol (LACP) and Marker Protocol.

Merlink enables multiple links to be aggregated together to form a link aggregation group that a MAC client can treat as a single link. Aggregation of links into a link aggregation group results in not only in increased bandwidth but also increased availability because the failure of a single constituent link does not cause a failure from the perspective of the MAC client. In the event of a link failure, Merlink redistributes traffic from the failed link(s) to the other links in the group.

When multiple active links exist in an aggregate group, Merlink also balances the load across different active links in an aggregate group, with support for customizable load-balancing algorithms which can handle also links of varying bandwidth. The fully customizable distribution function may be sequential or conversation based allowing packet sequences in each conversation to be maintained even on aggregated links.

Merlink's link aggregation groups may also be configured so that regular "active" links can co-exist with a set of links in the same group which are marked as "fail-over" links and do not participate actively in the aggregation until a failure condition occurs. In the event of a link failure, the pre-assigned fail-over links could take over the responsibility of the failed links maintaining a uniform throughput.

Merlink’s tiny footprint and configurable modules have been specifically designed for use in an embedded environment. It scales up from basic manual trunking to advanced automated aggregate management. With validated protocol compliance and interoperability with popular switch implementations, Merlink is the optimal solution for high-bandwidth and fault-tolerant applications.

Merlink, like other members of the Switchcraft family, has been extensively validated on a variety of CPU architectures, which minimizes development and integration efforts. Merlink supports a variety of switch fabric chipsets and provides a standard reference implementation to glue in a custom switch chip. It enables highly sophisticated management of link aggregation groups in networked embedded systems with the fewest changes to the application and driver code.

Features & Benefits

  • Link Aggregation for increased bandwidth.
  • Customizable load balancing between different links in an aggregate.
  • Fault-tolerance via fail-over capability.
  • Support for automated aggregation via 802.3ad LACP protocol.
  • Specific ports can be LACP-enabled or disabled.
  • Support for passive and active mode LACP.
  • Handles heterogeneous links of different physical types and bandwidths.
  • Includes Marker Protocol implementation.Supports custom event hooks detection.
  • Support for CPU types of either endian-ness including PowerPC, MIPS, X86, ARM/XScale.

Advanced Features

  • Provides a full-featured link aggregation / trunking framework with flexible APIs
  • Provides all benefits of link aggregation - higher throughput, higher availability and load balancing/distibution
  • Full implementation of IEEE 802.3ad including Marker protocol and full LACP features (passive and active)
  • Includes Marker generator and responder implementations
  • Aggregates links with different speeds (bandwidth) too

Link Aggregation
An increase in data traffic requirements for a link usually involves a difficult choice between reducing services available on the link and dealing with incompatibility between various new physical and data link layer technologies that may provide the higher bandwidth. Combining existing parallel, physical layer links into a single logical link becomes increasingly attractive in such situations. This enables linearly scalable bandwidth per network connection while simultaneously providing high availability and reliability through multiple link redundancy. Further, it leverages economies of scale for existing or legacy physical layer technologies without having to adopt new ones. Merlink’s framework contains APIs to manually or automatically add and remove existing links from aggregates, and has the capability to make an aggregate appear as a virtual network interface driver to the higher network layers providing for maximum application portability. On the lower end, the framework builds upon standard network drivers requiring no special OS or networking source code and supports links of different physical types and bandwidths transparently.

Merlink includes the following components:

  1. A (link aggregation) framework providing basic APIs to create and manage aggregations
  2. A virtual end driver to create virtual devices out of aggregations, to provide a transparent end device to the MAC clients.
  3. A load balancing algorithm interface, also referred to as a 'distribution function'.
  4. A conformance-tested LACP protocol implementation, that automatically configures aggregations based on protocol level communication.
  5. A marker library, consisting of marker generator and marker responder.

Fail Over
Besides the immediate cost and scalability benefits of utilizing multiple lower-bandwidth links instead of one higher bandwidth link, aggregates also enable increased system resiliency and redundancy. Failure of a single component link does not disrupt communications between interconnected devices, and the loss of a link within an aggregate just reduces available capacity while maintaining the connection and data flow. Merlink adds a unique twist to this, additionally providing for sets (sub-aggregates) of ports that can be marked for use only during failure conditions. When the regular ports in an aggregate work normally, these ports optionally may not participate in traffic handling. However, when a failure condition occurs, as determined by a configurable function that depends on the state of various links, the fail-over ports take over the data flow. When the regular ports are active again, the framework enables a seamless transition back to normal conditions, setting the pre-designated fail-over ports back into passive mode. Merlink thus helps achieve high-availability and fault-tolerance in critical embedded systems.

Load Balancing
To improve the traffic distribution characteristics for an aggregate, Merlink provides standard load balancing across links so that traffic is distributed across all links without overwhelming any single link. Normally, link aggregation assumes that a uniform distribution of traffic will occur over the links in an aggregate (except for ones connected to fail-over ports). However, this assumption of a trivial load-balancing may not work for specialized applications, as well as for links of different bandwidths and physical types. For this, Merlink provides a plug-in mechanism to introduce a custom load-sharing algorithm between various links, which defaults to a round-robin scheme if no such algorithm is present. The default scheme provides for configurability such as the relative priority of each link and quantum of each time slice across which balancing is scheduled and is a 802.3ad compliant distribution function that can be used as a reference implementation for custom load-balancing algorithms. Addition of custom load balancing schemes requires no knowledge of Merlink’s underlying implementation, yet allows for full flexibility via the provided APIs.

IEEE 802.3ad LACP
While Merlink supports manual deletion and addition of links to aggregates, its automated configuration facility also provides for a convenient way to manage and detect capabilities and connectivity of individual links within aggregation groups. Merlink includes full support for the LACP protocol based on IEEE 802.3ad specification. 802.3ad specifies automatic and dynamic configuration of appropriate sets of links within an aggregation group in the absence of manual overrides. Rapid configuration and reconfiguration are also possible in event of changes in physical connectivity of the links. Merlink allows selective configuration of LACP only on certain ports, if required, and supports both active and passive mode LACP based on whether the Merlink-enabled system wants to act as a source of control packets (PDUs) or wants to only respond to incoming packets.

Customization Flexibility
Merlink is available in full-source format and is highly customizable. Hooks are provided for application specific event-handlers to be called when links are added or removed from aggregation groups, or when an aggregation converges after a network connectivity change. With the APIs provided, any custom switch fabric chipset can be glued in for LACP control of hardware based aggregation. This, in addition to its custom load balancing algorithm capability, initialization time and run-time choice of fail-over ports, and complete control over the LACP activities of individual ports and the complete system, makes Merlink an ideal choice for critical network applications requiring bandwidth and high availability.