Link aggregation

Ports between two switches may be grouped, forming a link aggregation. An aggregation provides increased bandwidth and redundancy. This can be done with static aggregation or dynamic aggregation:

  • Static aggregations are established when setup in both switches.

  • Dymamic aggregations must also be setup in both switches. The Link Aggregation Control Protocol (LACP) is used to control the aggregation.

The following link aggregation examples use group 1 for the first two ports of switch A.

+-------------------+
|                   |
|     Switch A      |
|                   |
+--1-------------2--+
   |             |
   | Aggregation |
   | <---------> |
   |             |
+--4-------------3--+
|                   |
|     Switch B      |
|                   |
+-------------------+

1. Dynamic Aggregation

1.1. LACP Port Configuration

The configuration of a dynamic aggregation is shown below.

IPATCH request message:

- ? "/ietf-interfaces:interfaces/interface[name='1']/\
     mchp-velocitysp-aggr:aggr-port/config"
  : group: 1
    mode: lacp-active


- ? "/ietf-interfaces:interfaces/interface[name='2']/\
     mchp-velocitysp-aggr:aggr-port/config"
  : group: 1
    mode: lacp-active

The configuration of the first port is retrieved as shown below.

FETCH request message:

- "/ietf-interfaces:interfaces/interface[name='1']/\
   mchp-velocitysp-aggr:aggr-port/config"

FETCH response message:

- ? "/ietf-interfaces:interfaces/interface/mchp-velocitysp-aggr:aggr-port/\
     config"
  : group: 1
    mode: lacp-active
    lacp-timeout: fast
    port-priority: 32768

1.2. LACP Group Configuration

The LACP group can be setup as a 1:1 Active/Standby link as shown below.

IPATCH request message:

- ? "/ietf-interfaces:interfaces/interface[name='AGGR2']/\
     mchp-velocitysp-aggr:aggregator/config"
  : max-bundle: 1
    failover-mode: revertive

1.3. LACP Port Status

The LACP status of the first port is retrieved as shown below.

FETCH request message:

- "/ietf-interfaces:interfaces/interface[name='1']/\
   mchp-velocitysp-aggr:aggr-port/status"

FETCH response message:

- ? "/ietf-interfaces:interfaces/interface/mchp-velocitysp-aggr:aggr-port/\
     status"
  : actor-system-priority: 32768
    actor-system-mac: 00-11-22-33-44-00
    actor-key: 1
    actor-port-priority: 32768
    actor-port: 0
    actor-state: lacp-activity lacp-timeout aggregation synchronization collecting distributing
    partner-system-priority: 32768
    partner-system-mac: 44-55-66-77-88-99
    partner-key: 1
    partner-port-priority: 32768
    partner-port: 3
    partner-state: lacp-activity lacp-timeout aggregation synchronization collecting distributing
    aggr-name: AGGR2

1.4. LACP Port Counters

The LACP counters of the first port are retrieved as shown below.

FETCH request message:

- "/ietf-interfaces:interfaces/interface[name='1']/\
   mchp-velocitysp-aggr:aggr-port/statistics"

FETCH response message:

- ? "/ietf-interfaces:interfaces/interface/mchp-velocitysp-aggr:aggr-port/\
     statistics"
  : rx-lacp-pdu: '0'
    rx-marker-pdu: '0'
    rx-marker-response-pdu: '0'
    rx-unknown: '0'
    rx-illegal: '0'
    tx-lacp-pdu: '1'
    tx-marker-pdu: '0'
    tx-marker-response-pdu: '0'

2. Static Aggregation

The configuration of a static aggregation is shown below.

IPATCH request message:

- ? "/ietf-interfaces:interfaces/interface[name='1']/\
     mchp-velocitysp-aggr:aggr-port/config"
  : group: 1
    mode: enabled


- ? "/ietf-interfaces:interfaces/interface[name='2']/\
     mchp-velocitysp-aggr:aggr-port/config"
  : group: 1
    mode: enabled

3. Aggregation Counters

Interface counters of the ports and the aggregation group are retrieved as shown below. One broadcast frame has been received by each port prior to the accesses.

FETCH request message:

- "/ietf-interfaces:interfaces/interface[name='1']/statistics"

- "/ietf-interfaces:interfaces/interface[name='2']/statistics"

- "/ietf-interfaces:interfaces/interface[name='AGGR2']/statistics"

FETCH response message:

- ? "/ietf-interfaces:interfaces/interface/statistics"
  : in-octets: '64'
    in-unicast-pkts: '0'
    in-broadcast-pkts: '1'
    in-multicast-pkts: '0'
    in-discards: 0
    in-errors: 0
    in-unknown-protos: 0
    out-octets: '0'
    out-unicast-pkts: '0'
    out-broadcast-pkts: '0'
    out-multicast-pkts: '0'
    out-discards: 0
    out-errors: 0


- ? "/ietf-interfaces:interfaces/interface/statistics"
  : in-octets: '64'
    in-unicast-pkts: '0'
    in-broadcast-pkts: '1'
    in-multicast-pkts: '0'
    in-discards: 0
    in-errors: 0
    in-unknown-protos: 0
    out-octets: '0'
    out-unicast-pkts: '0'
    out-broadcast-pkts: '0'
    out-multicast-pkts: '0'
    out-discards: 0
    out-errors: 0


- ? "/ietf-interfaces:interfaces/interface/statistics"
  : in-octets: '128'
    in-unicast-pkts: '0'
    in-broadcast-pkts: '2'
    in-multicast-pkts: '0'
    in-discards: 0
    in-errors: 0
    in-unknown-protos: 0
    out-octets: '0'
    out-unicast-pkts: '0'
    out-broadcast-pkts: '0'
    out-multicast-pkts: '0'
    out-discards: 0
    out-errors: 0