|
|
 |
| Merlink |
| Link Aggregation
Framework & LACP / 802.3ad |
|
Merlink, 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.
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
a) a (link aggregation) framework providing basic APIs
to create and manage aggregations
b) a virtual end driver to create virtual devices out of
aggregations, to provide a transparent end device to the
MAC clients.
c) a load balancing algorithm interface, also referred
to as a 'distribution function'.
d) a conformance-tested LACP protocol implementation,
that automatically configures aggregations based on
protocol level communication.
e) 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. |
| |
|
|
|