WeOS
5.29.0

# Ring Coupling

Westermo’s third generation Ring Coupling Protocol (RiCo), which is further development of RiCo version 2. RiCo enables multiple connections between network topologies to create further redundancy. The networks are connected at layer-2, and the RiCo protocol ensures loop-free connectivity by letting one of the connections forward data, while the redundant coupling links are blocked.

Note

RiCo version 3 is not backwards compatible with version 2. RiCo is currently limited to only FRNTv2 as its redundancy domain protocol.

This page will only explain functionality and configuration of RiCo version 3. When only RiCo is written in this page it mean RiCo version 3.

Table of contents

- Introduction
- Fail-Over Handling
- Qualification of coupling link
- Multiple RiCo instances
- Configuration - Syntax RiCo Configuration
- RiCo Status Commands and Explanations

## Introduction

The RiCo protocol manages connections between redundancy domains. The connections that interlink redundancy domains are referred to as coupling links and require RiCo configuration at both ends. The RiCo nodes will advertise their best coupling link within their respective domains. Each RiCo node will build a list of all the coupling links in the domain. Among these links, the one with the lowest priority, best priority, will be elected as the Master link, while the others will serve as backup links. The Master link is responsible for forwarding traffic, while the backup links are designed to block traffic to prevent loops, as shown in Figure 1.

     .-----.    .-----.            .-----.    .-----.
     |     |    |     |   Master   |     |    |     |
     | SW1 +----+ SW2 +------------+ SW5 +----+ SW6 |
     |     |    |     |            |     |    |     |
     '--+--'    '--+--'            '--+--'    '--+--'
        |          |                  |          |
        |  FRNTv2  |                  |  FRNTv2  |
        |          |                  |          |
     .--+--.    .--+--.            .--+--.    .--+--.
     |     |    |     |   Backup   |     |    |     |
     | SW3 +----+ SW4 +-||------||-+ SW7 +----+ SW8 |
     |     |    |     |            |     |    |     |
     '-----'    '-----'            '-----'    '-----'

Figure 1: Two FRNTv2 ring connected with RiCo version 3.

The RiCo protocol is a Ring Coupling protocol and connects rings, not individual switches, which can be a misunderstanding. Each ring needs to provide full connectivity by itself and cannot rely on the coupling links for this. FRNTv2 can provide full connectivity in the ring with one fault, but with more than one fault in the ring, RiCo nodes may be isolated even though the switch could be reached over the coupling link. See Figure 2

     .-----.    .-----.            .-----.    .-----.
     |     |    |     |   Backup   |     |    |     |
     | SW1 +--| + SW2 +---------||-+ SW5 +----+ SW6 |
     |     |    |     |            |     |    |     |
     '--+--'    '--+--'            '--+--'    '--+--'
        |         ---                 |          |
        |  FRNTv2  |                  |  FRNTv2  |
        |          |                  |          |
     .--+--.    .--+--.            .--+--.    .--+--.
     |     |    |     |   Master   |     |    |     |
     | SW3 +----+ SW4 +------------+ SW7 +----+ SW8 |
     |     |    |     |            |     |    |     |
     '-----'    '-----'            '-----'    '-----'

Figure 2: Sw2 becomes isolated because of two breaks in left ring.

## Fail-Over Handling

Once a RiCo node detects a coupling link failure it will inform the other RiCo nodes in the same domain. The RiCo node with the new best coupling link priority will now take over the Master status and open its blocking port.

     .-----.    .-----.           .-----.    .-----.
     |     |    |     |           |     |    |     |
     | SW1 +----+ SW2 +-----xx----+ SW5 +----+ SW6 |
     |     |    |     |           |     |    |     |
     '--+--'    '--+--'           '--+--'    '--+--'
        |          |                 |          |
        |  FRNTv2  |                 |  FRNTv2  |
        |          |                 |          |
     .--+--.    .--+--.           .--+--.    .--+--.
     |     |    |     |   Master  |     |    |     |
     | SW3 +----+ SW4 +-----------+ SW7 +----+ SW8 |
     |     |    |     |           |     |    |     |
     '-----'    '-----'           '-----'    '-----'

Figure 3: Upon a link break the backup link will become Master and put its blocked port in forwarding state.

When the broken link comes back up again it has the best link priority and SW2 and SW5 will advertise this link priority in their redundancy domain. The Master switches SW4 and SW7 will block their ports and advertise that they are in backup state. SW2 and SW5 can now change its port states to forwarding and take over as Master.

To achieve faster failover on Gigabit copper links, fastlink should be enabled on the ports, see Fastlink for more information.

## Qualification of coupling links

A coupling link must first be qualified before it can be used as an active link in the election process between RiCo nodes. To qualify a coupling link both sides must agree on the link priority. When the link is qualified it will be advertised in each redundancy domain. The priority vector is constructed of priority:mac-address:port-id. The priority part can be changed to increase the probability of being elected as the Master coupling link.
If default priority is left unchanged or configured to the same value on all switches the switch with the lowest mac-address will have the best link priority.

Note

It is not supported to use media converters on the coupling link.

## Multiple RiCo instances

Multiple RiCo instances can be configured in the same redundancy domain. In figure Figure 4 FRNTv2 rings are connected together in a ladder structure. Each ring have two RiCo instances configured, one to the left and one to the right with different instance id. The RiCo instance id for each direction of the connecting coupling links do not have to match. However, only RiCo coupling-links with the same Instance id will perform the Master election within its domain.

         .-----.  .-----.        .-----.  .-----.
       --+ Sw1 +--+ Sw2 +--------+ Sw5 +--+ Sw6 +--
         |     |  |     |        |     |  |     |
    RiCo '+----'  '----+'  RiCo  '+----'  '----+' RiCo
     id:2 |   FRNTv2   | 1 :id: 2 |   FRNTv2   | 3:id
          |            |          |            |
         .+----.  .----+.        .+----.  .----+.
         | Sw3 |  | Sw4 |        | Sw7 |  | Sw8 |
      -||+     +--+     +||----||+     +--+     +||-
         '-----'  '-----'        '-----'  '-----'

Figure 4: Examples of RiCo topologies

    Sw6:/#> configure
    Sw6:/config/#> ring
    Sw6:/config/ring/#> frntv2 1
    Sw6:/config/ring/frnt-1/#> port eth1
    Sw6:/config/ring/frnt-1/port-eth1/#> end
    Sw6:/config/ring/frnt-1/#> port eth2
    Sw6:/config/ring/frnt-1/port-eth2/#> end
    Sw6:/config/ring/frnt-1/#> end
    Sw6:/config/ring/#>
    Sw6:/config/ring/#> coupling 3
    Sw6:/config/ring/coupling-3/#> coupling-port eth4
    Sw6:/config/ring/coupling-3/coupling-port-eth4/#> priority 100
    Sw6:/config/ring/coupling-3/coupling-port-eth4/#> end
    Sw6:/config/ring/coupling-3#> leave
    Sw6:/#> show coupling

    Coupling instance id 3
    Advertisement time  : 1000 ms
    Domain status       : OK
    Coupling ports      : eth4
    Redundancy protocol : FRNTv2
    Advertisement ports : eth1 eth2
    ==============================================================================
    Coupling links
    Link id               Priority   State        Port     Preempt   Transitions
    * 00-11-b4-13-61-c0   100        Master       eth4     Yes       4
      00-07-7c-7c-c8-20   200        Backup       Global   Yes       N/A

    * The elected coupling link
    Sw6:/#>

## Configuration

RiCo is configured from the ring configuration context in the CLI:

    example:/#> configure
    example:/config/#> ring
    example:/config/ring/#> coupling 1
    example:/config/ring/coupling-1/#>

`[no] coupling [ID]`

  Enable/Disable RiCo and enter RiCo configuration context of given instance.

  ID

    RiCo instance ID (range 1-255). Election of coupling links is performed on links in the sames instance.

    Default is ‘1’

  no
    Remove the given RiCo instance.

### Syntax RiCo Configuration

`[no] adv-interval <INTERVAL>`

  Set RiCo advertisement interval. Default 1000 ms.
  The RiCo protocol is event based and all RiCo nodes will be updated on link change.

  no
    Reset to default (1000 ms)
  INTERVAL
    Interval in milliseconds. Range 50-10000 (ms)

  Note

  Changing this interval will not improve fail over times so only change this if you are advised to.

`[no] nodes <NUMBER>`

  The number of RiCo nodes in the redundancy domain with the same instance number. Nodes must be configured to show Domain status, see RiCo Status.

  This parameter is optional and is used to show summary status for the RiCo coupling domain.

  no
    Set to unconfigured.
  NUMBER
    How many RiCo switches exists in this instance in the redundancy domain.
`[no|show] coupling-port <PORT,PORT..PORT>`

  Set PORT as coupling port and enter configuration context for the given port.

  PORT
    Name of coupling port, typically an Ethernet port such as eth1.
`[no] priority <PRIO>`

  Setting within coupling-port configuration context. Default: 16384
  Set coupling link priority, where a low value means better priority, which increase the probability of being elected as Master coupling link.

  no
    Use default priority 16384.
  PRIO
    An integer to set the priority in range 1-32766.
`[no] preempt`

  Setting within coupling-port configuration context. Default: Enabled
  When preempt is enabled the priority of the link will decide which link will be elected as the Master link. If preempt is disabled the link will get a sticky behaviour. After it has been elected as a Master link it will continue to be the Master link until the link is down.

  no
    Disable preempt and the coupling link will get a sticky behaviour.

  If the configuration of preempt differs on each side of the link ‘no preempt’ will have precedence.

`[no] hello-interval <INTERVAL>`

  Setting within coupling-port configuration context. Default: 1000 ms
  RiCo hello packet interval on the coupling ports.

  no
    Use default interval value 1000 ms.
  INTERVAL
    Interval in range 50-5000 ms.

  Note

  Changing this interval will not improve fail over times so only change this if you are advised to.

### RiCo Status Commands and Explanations

In order to see the current status of RiCo for an individual device the following command can be used:

`show coupling [ID]`

  Show RiCo status and statistics.

  ID
    Get status for the specified instance

Showing RiCo configuration and status of the link qualification and election.

    example:/#> show coupling

    Coupling instance id 1
    Advertisement time  : 1000 ms
    Domain status       : OK
    Coupling ports      : eth5
    Redundancy protocol : FRNTv2
    Advertisement ports : eth3 eth4
    ==============================================================================
    Coupling links
    Link id               Priority   State        Port     Preempt   Transitions
      00-11-b4-39-8b-c0   16384      Backup       eth5     Yes       3
    * 00-07-7c-00-14-50   16384      Master       Global   Yes       N/A

    * The elected coupling link
    example:/#>

- Advertisement time: The configured value for advertisement time.

- Domain status: To show this status the number of nodes in this RiCo instance domain must be configured.

  - OK: At least the configured number of nodes in the instance domain have link up, as backup or master.
  - Degraded: At least one or more coupling links are up in the instance redundancy domain.
  - Broken: All RiCo coupling links in this instance redundancy domain are down.
  - N/A: Nodes is not configured.

- Coupling ports: Configured coupling ports.

- Redundancy protocol: Which ring protocol RiCov3 is running on. The only supported ring protocol is FRNTv2.

- Advertisement ports: On which ports the advertisement packets are sent on.

Coupling links:

- Link id: This link id is the mac address derived from qualification process.

- Priority: The configured priority of the coupling link used in the link election.

- RiCo State:

  - Down: Link down on port.
  - Backup: Port is up and in blocking state. A port with better priority exists.
  - Master: This port has the best priority in the instance and are forwarding traffic.
    Only one Master port can exist in an instance.

- Port:

  - port name: When it is a port name such as eth1 This is a local link on this switch.
  - Global: This link is an advertised link from another switch in the instance.

- Preempt:
  On link down the configuration of preempt is shown.
  When a link is elected as Master:

  - No: This link has preempt disabled and will remain Master until it gets link down.
  - Yes: If this link is Master the priority was used in the selection.
    When the link is in backup state it will always show Yes.

- Transitions: The number of link changes, only shown for local links.

« Previous Next »