G.8032 Ethernet Ring Protection Single Ring Topology

This chapter provides information about G.8032 Ethernet ring protection single ring topology.

Topics in this chapter include:

Applicability

The chapter was initially written for SR OS Release 8.0.R7, but the MD-CLI in the current edition corresponds to SR OS Release 23.3.R2. This chapter describes ring protection for a single ring topology. Protection for multiple ring topologies is covered in G.8032 Ethernet Ring Protection Multiple Ring Topology.

Overview

G.8032 Ethernet ring protection is supported for data service SAPs within a regular VPLS service, a provider backbone bridging (PBB) VPLS (I/B-component), or a routed VPLS (R-VPLS). G.8032 is one of the fastest protection schemes for Ethernet networks.

ITU-T G.8032v2 specifies protection switching mechanisms and a protocol for Ethernet layer network (ETH) Ethernet rings. Ethernet rings can provide wide-area multi-point connectivity more economically due to their reduced number of links. The mechanisms and protocol defined in ITU-T G.8032v2 achieve highly reliable and stable protection and never form loops, which would negatively affect network operation and service availability. Each ring node is connected to adjacent nodes participating in the same ring using two independent paths, which use ring links that are configured on ports or link aggregation groups (LAGs). A ring link is bounded by two adjacent nodes and a port for a ring link is called a ring port. The minimum number of nodes on a ring is two.

The fundamentals of this ring protection switching architecture are:

  • the principle of loop avoidance and

  • the utilization of learning, forwarding, and address table mechanisms defined in the ITU-T G.8032v2 Ethernet flow forwarding function (ETH_FF) (control plane).

Loop avoidance in the ring is achieved by guaranteeing that, at any time, traffic may flow on all but one of the ring links. This particular link is called the ring protection link (RPL) and under normal conditions this link is blocked, so it is not used for traffic. One designated node, the RPL owner, is responsible to block traffic over the one designated RPL. Under a ring failure condition, the RPL owner is responsible for unblocking the RPL, allowing the RPL to be used for traffic. The protocol ensures that even without an RPL owner defined, one link will be blocked and it operates as a break before make protocol, specifically the protocol guarantees that no link is restored until a different link in the ring is blocked. The other side of the RPL is configured as an RPL neighbor. An RPL neighbor blocks traffic on the link.

The event of a ring link or ring node failure results in protection switching of the traffic. This is achieved under the control of the ETH_FF functions on all ring nodes. A ring automatic protection switching (R-APS) protocol is used to coordinate the protection actions over the ring. The protection switching mechanisms and protocol supports a multi-ring/ladder network that consists of connected Ethernet rings, however, that is not covered in this chapter.

Ring protection mechanism

The ring protection protocol is based on the following building blocks:

  • ring status change on failure

    • idle → link failure → protection → recovery → idle

  • ring control state changes

    • idle → protection → manual switch → forced switch → pending

  • re-use existing ETH OAM

    • monitoring: Ethernet continuity check messages

    • failure notification: Y.1731 signal failure

  • forwarding database MAC flush on ring status change

  • ring protection link (RPL) defines blocked link in idle status

G.8032 operation and topologies shows a ring of six nodes, with the RPL owner on the top right. One link of the RPL owner is designated to be the RPL and will be blocked in order to prevent a loop. Schematics of the physical and logical topologies are also shown.

When an RPL owner and RPL end are configured, the associated link will be the RPL when the ring is fully operational and so be blocked by the RPL owner. If a different ring link fails, then the RPL will be unblocked by the RPL owner. When the failed link recovers, it will initially be blocked by one of its adjacent nodes. The adjacent node sends an R-APS message across the ring to indicate the error is cleared and after a configurable time, if reversion is enabled, the RPL will revert to being blocked with all other links unblocked. This ensures that the ring topology is predictable when fully operational.

If a specific RPL owner is not configured, then the last link to become active will be blocked and the ring will remain in this state until another link fails. However, this operation makes the selection of the blocked link non-deterministic.

Figure 1. G.8032 operation and topologies

The protection protocol uses a specific control VLAN, with the associated data VLANs taking their forwarding state from the control VLAN.

Configuration

The example topology is shown in Example topology.

Figure 2. Example topology

The Ethernet ring configuration commands are as follows:

configure {
    eth-ring <ring-index [1..128]> {
        ccm-hold-time {
            down <number>   # Hold timer for down event dampening
            up <number>     # Hold timer for recovery reporting 
        }
        compatible-version <number>            # [1..2] - Default: 2
        description <string>
        guard-time <number>       # [1..20] in deciseconds - Default: 5
        node-id <mac-address>     # MAC address of the RPL <xx:xx:xx:xx:xx:xx>
        path <string>   # path ID: string of 1 character
            admin-state <keyword>   # default: disable
            description <string>
            port-and-raps-tag <port-and-encap>     # Port ID and Ring APS tag ID
            eth-cfm {
                mep md-admin-name <reference> ma-admin-name <reference> mep-id <number> {
                    admin-state <keyword>   # default: disable
                    ccm <boolean>           # default: false
                    control-mep <boolean>   # default: false
                }
            }
            rpl-end <boolean>               # default: false
        }
        revert-time <number>      # <0,60..720> in seconds - Default: 300
        rpl-node <keyword>        # owner | neighbor
        sub-ring        # beyond the scope

Parameters:

  • ring-index — This is the number by which the ring is referenced, values: 1 to 128.

  • ccm-hold-time {[down <hold timer for down event dampening>] [up <hold timer for recovery reporting>]}

    • down — This command specifies the timer that controls the delay between detecting that ring path is down and reporting it to the G.8032 protection module. If a non-zero value is configured, the system will wait for the time specified in the value parameter before reporting it to the G.8032 protection module. This parameter applies only to the ring path continuity check message (CCM); it does not apply to the ring port link state. To dampen ring port link state transitions, use the hold-time parameter from the physical member port. This is useful if the underlying path between two nodes is going across an optical system which implements its own protection.

    • up — This command specifies the timer which controls the delay between detecting that the ring path is up and reporting it to the G.8032 protection module. If a non-zero value is configured, the system will wait for the time specified in the value parameter before reporting it to the G.8032 protection module. This parameter applies only to ring path CCM; it does not apply to the member port link state. To dampen member port link state transitions, use the hold-time parameter from the physical member port.

    • hold timer values:

      *[ex:/configure eth-ring 1 ccm-hold-time]
      A:admin@PE-1# down ?
      
       down <number>
       <number> - <1..5000> - centiseconds
      
          Hold timer for down event dampening
      
      *[ex:/configure eth-ring 1 ccm-hold-time]
      A:admin@PE-1# up ?
      
       up <number>
       <number> - <0..5000> - deciseconds
       Default  - 20
      
          Hold timer for recovery reporting
      
  • compatible version — This command configures the Ethernet ring compatibility version for the G.8032 state machine and messages. The default is version 2 (ITU G.8032v2) and all SR OS nodes use version 2. If there is a need to interwork with third party devices that only support version 1, this can be set to version 1 allowing the reception of version 1 PDUs. Version 2 is encoded as 1 in the R-APS messages. Compatibility allows the reception of version 1 (encoded as 0) R-APS PDUs but, as per the G.8032 specification, higher versions are ignored on reception. For SR OS nodes, messages are always originated with version 2. Therefore, if a third party switch supported version 3 (encoded as 2) or higher, interworking is also supported provided the other switch is compatible with version 2 (encoded as 1).

  • description <string> — This configures a text string, up to 80 characters, which can be used to describe the use of the Ethernet ring.

  • guard-time <number> — The forwarding method, in which R-APS messages are copied and forwarded at every Ethernet ring node, can result in a message corresponding to an old request, that is no longer relevant, being received by Ethernet ring nodes. Reception of an old R-APS message may result in erroneous ring state interpretation by some Ethernet ring nodes. The guard timer is used to prevent Ethernet ring nodes from acting upon outdated R-APS messages and prevents the possibility of forming a closed loop. Messages are not forwarded when the guard-timer is running.

    The guard time is configured in 10ths of seconds and the default guard time is 0.5 s:

    *[ex:/configure eth-ring 1]
    A:admin@PE-1# guard-time ?
    
     guard-time <number>
     <number> - <1..20> - deciseconds
     Default  - 5
    
        Ethernet ring guard time
    
  • node-id <mac-address> — The node identifier can be explicitly configured. In typical configurations, the node ID is not configured; by default, the chassis MAC address is used as node ID.

  • path [path-index] <1-character string> [port-and-raps-tag] — The path parameter defines the paths around the ring, of which there are two in different directions on the ring: an "a" path and a "b" path. In addition, the path command configures the encapsulation used for the R-APS messages on the ring. These can be either single or double tagged.

    • description <string> — The description is a text string with up to 80 characters, that can be used to describe the use of the path.

    • eth-cfm — Configures the associated Ethernet connectivity fault management (CFM) parameters.

      • mep md-admin-name <reference> ma-admin-name <reference> <mep-id> — The maintenance endpoint (MEP) defined under the path is used for the G.8032 protocol messages, which are based on IEEE 802.1ag/Y.1731 CFM frames.

    • rpl-end — When configured, this path is expected to be one end of the RPL. This parameter must be configured in conjunction with the rpl-node.

    • admin-state <keyword> — This command enables or disables the path.

  • revert-time <number> — This command configures the revert time for an Ethernet ring. The revert time is the time that the RPL will wait before returning to the blocked state.

    Values:

    *[ex:/configure eth-ring 1]
    A:admin@PE-1# revert-time ?
    
     revert-time <number>
     <number> - <0,60..720> - seconds
     Default  - 300
    
  • rpl-node <keyword{owner|neighbor}> — A node can be designated as either the owner of the RPL, in which case this node is responsible for the RPL, or the neighbor, in which case this node is expected to be the neighbor to the RPL owner across the RPL. The neighbor is optional and is included to be compliant with the specification. This parameter must be configured in conjunction with the rpl-end parameter.

  • admin-state <keyword> — This command enables or disables the Ethernet ring.

  • sub-ring — The sub-ring command is beyond the scope of this chapter because it is only required for multiple ring topologies.

Logging

Create following log-id on PE-2 to see major events logged to the console on PE-2. This is an optional step; alternatively, log 99 can be consulted.

# on PE-2:
configure {
    log {
        log-id "log1" {
            source {
                main true
            }
            destination {
                console
            }
        }

Configure encapsulation for ring ports

To configure R-APS, there should be at least two VPLS services for one Ethernet ring instance, one VPLS for the control channel and the other VPLSs for data channels. The control channel is used for R-APS signaling while the data channel is for user data traffic. The state of the data channels is inherited from the state of the control channel.

  • An Ethernet ring needs R-APS tags to send and receive G.8032 signaling messages. To configure a control channel, an access SAP configuration is required on each path a port and path b port. The SAP configuration follows that of the port and must be either dot1Q or QinQ, so the control and data packets are either single tagged or double tagged. It is also possible to have the control VPLS using single tagged frames with the data VPLSs using double tagged frames; this requires the system to be configured with the extended-default-qinq-sap-lookup parameter (configure service system extended-default-qinq-sap-lookup true), with the ring path R-APS tags and control VPLS SAPs configured as qtag.0, and the data VPLS SAPs configured as qtag1.qtag2.

    In the example in this chapter, single tags are used so the ports on the ring nodes are configured as follows:

    # on PE-1, PE-2, PE-3:
    configure {
        port 1/1/c1/1 {
            admin-state enable
            ethernet {
                mode access
                encap-type dot1q
            }
        }
        port 1/1/c2/1 {
            admin-state enable
            ethernet {
                mode access
                encap-type dot1q
            }
        }

Configure Ethernet CFM

Ethernet ring requires Ethernet CFM domains, associations, and MEPs being configured. The domain format must be none and association name must be ITU-T carrier code-based (ICC-based - Y.1731). The minimum CCM interval for the SR OS nodes is 10ms. The Ethernet ring MEP requires a CCM interval, such as 10ms, 100ms, or 1s, to be configured.

The MEPs used for R-APS control normally have CCM configured on the control channel path MEPs for failure detection. Alternatively, detecting a failure of the ring may be achieved by running Ethernet in the first mile (EFM) at the port level if CCM is not possible at 10ms, 100ms, or 1s. Loss-of-signal, in conjunction with other OAM, is applicable only when the nodes are directly connected.

To omit the failure detecting CCMs, remove the ccm true from under the path MEPs and remove the remote-mep from under the eth-cfm>domain>association on all nodes.

Ethernet CFM configuration shows the Ethernet CFM configuration used here.

Figure 3. Ethernet CFM configuration

The Ethernet CFM configuration of the nodes is as follows.

# on PE-1:
configure {
    eth-cfm {
        domain "domain-1" {
            level 3
            format none
            md-index 1
            association "association-1" {
                icc-based "ring1_1_2"
                ma-index 1
                ccm-interval 1s
                remote-mep 1122 {
                }
            }
            association "association-2" {
                icc-based "ring1_1_3"
                ma-index 2
                ccm-interval 1s
                remote-mep 1133 {
                }
            }
        }
# on PE-2:
configure {
    eth-cfm {
        domain "domain-1" {
            level 3
            format none
            md-index 1
            association "association-1" {
                icc-based "ring1_2_3"
                ma-index 1
                ccm-interval 1s
                remote-mep 1233 {
                }
            }
            association "association-2" {
                icc-based "ring1_1_2"
                ma-index 2
                ccm-interval 1s
                remote-mep 1121 {
                }
            }
        }
# on PE-3:
configure {
    eth-cfm {
        domain "domain-1" {
            level 3
            format none
            md-index 1
            association "association-1" {
                icc-based "ring1_1_3"
                ma-index 1
                ccm-interval 1s
                remote-mep 1131 {
                }
            }
            association "association-2" {
                icc-based "ring1_2_3"
                ma-index 2
                ccm-interval 1s
                remote-mep 1232 {
                }
            }
        }

Configure Ethernet ring

Two paths need to be configured to form a ring: path a and path b. In this example, VLAN tag 1 is used as control channel for R-APS signaling in the ring.

# on PE-1:
configure {
    eth-ring 1 {
        admin-state enable
        path "a" {
            admin-state enable
            port-and-raps-tag 1/1/c1/1:1
            eth-cfm {
                mep md-admin-name "domain-1" ma-admin-name "association-1" mep-id 1121 {
                    admin-state enable
                    ccm true
                    control-mep true
                }
            }
        }
        path "b" {
            admin-state enable
            port-and-raps-tag 1/1/c2/1:1
            eth-cfm {
                mep md-admin-name "domain-1" ma-admin-name "association-2" mep-id 1131 {
                    admin-state enable
                    ccm true
                    control-mep true
                }
            }
        }

It is mandatory to configure a MEP in the path context, otherwise the following error is displayed:

*[ex:/configure eth-ring 1]
A:admin@PE-1# commit
MINOR: MGMT_CORE #4001: configure eth-ring 1 path "a" admin-state - Cannot enable path 
without eth-cfm mep configured - configure eth-ring 1 path "a" admin-state
MINOR: MGMT_CORE #4001: configure eth-ring 1 path "b" admin-state - Cannot enable path 
without eth-cfm mep configured - configure eth-ring 1 path "b" admin-state

While MEPs are mandatory, enabling CCM on the MEP in the path context as a failure detection mechanism is optional.

In order to define the RPL, node PE-2 is configured as the RPL owner and path b as the RPL end. The link between nodes PE-1 and PE-2 will be the RPL with node PE-2 blocking that link when the ring is fully operational.

# on PE-2:
configure {
    eth-ring 1 {
        admin-state enable
        revert-time 60
        rpl-node owner
        path "a" {
            admin-state enable
            port-and-raps-tag 1/1/c1/1:1
            eth-cfm {
                mep md-admin-name "domain-1" ma-admin-name "association-1" mep-id 1232 {
                    admin-state enable
                    ccm true
                    control-mep true
                }
            }
        }
        path "b" {
            admin-state enable
            port-and-raps-tag 1/1/c2/1:1
            rpl-end true
            eth-cfm {
                mep md-admin-name "domain-1" ma-admin-name "association-2" mep-id 1122 {
                    admin-state enable
                    ccm true
                    control-mep true
                }
            }
        }

It is not allowed to configure a path as an RPL end without having configured the node on this ring to be either the RPL owner or neighbor otherwise the following error message is reported.

*[ex:/configure eth-ring 1]
A:admin@PE-2# commit
MINOR: MGMT_CORE #4001: configure eth-ring 1 path "b" rpl-end - rpl-node must be set - 
configure eth-ring 1 rpl-node
# on PE-3:
configure {
    eth-ring 1 {
        admin-state enable
        path "a" {
            admin-state enable
            port-and-raps-tag 1/1/c1/1:1
            eth-cfm {
                mep md-admin-name "domain-1" ma-admin-name "association-1" mep-id 1133 {
                    admin-state enable
                    ccm true
                    control-mep true
                }
            }
        }
        path "b" {
            admin-state enable
            port-and-raps-tag 1/1/c2/1:1
            eth-cfm {
                mep md-admin-name "domain-1" ma-admin-name "association-2" mep-id 1233 {
                    admin-state enable
                    ccm true
                    control-mep true
                }
            }
        }

Until the Ethernet ring instance is attached to the service (VPLS in this case), the ring operational status is down and the forwarding status of each port is blocked. This prevents operators from creating a loop by misconfiguration. This state can be seen on ring node PE-1 as follows:

[/]
A:admin@PE-1# show eth-ring 1

===============================================================================
Ethernet Ring 1 Information
===============================================================================
Description        : (Not Specified)
Admin State        : Up                 Oper State       : Down
Node ID            : 02:09:ff:00:00:00
Guard Time         :    5 deciseconds   RPL Node         : rplNone
Max Revert Time    :  300 seconds       Time to Revert   : N/A
CCM Hold Down Time :    0 centiseconds  CCM Hold Up Time :   20 deciseconds
Compatible Version : 2
APS Tx PDU         : Request State: 0xB
                     Sub-Code     : 0x0
                     Status       : 0x20  ( BPR )
                     Node ID      : 02:09:ff:00:00:00
Defect Status      :

Sub-Ring Type      : none

-------------------------------------------------------------------------------
Ethernet Ring Path Summary
-------------------------------------------------------------------------------
Path Port             Raps-Tag     Admin/Oper      Type            Fwd State
-------------------------------------------------------------------------------
  a  1/1/c1/1         1               Up/Down      normal          blocked
  b  1/1/c2/1         1               Up/Down      normal          blocked
===============================================================================

Configure control channel VPLS service

Paths a and b defined in the Ethernet ring must be added as SAPs into a VPLS service (standard VPLS in this example) using the eth-ring parameter. The SAP encapsulation values must match the values of the port-and-raps-tag configured for the associated path.

G.8032 uses the same R-APS tag value on all nodes on the ring, as configured in this example. However, the SR OS implementation relaxes this constraint by requiring the tag to match only on adjacent nodes.

# on PE-1:
configure {
    service {
        vpls "VPLS-1" {
            admin-state enable
            description "control channel VPLS 1 tag 1"
            service-id 1
            customer "1"
            sap 1/1/c1/1:1 {
                eth-ring 1
            }
            sap 1/1/c2/1:1 {
                eth-ring 1
            }
# on PE-2:
configure {
    service {
        vpls "VPLS-1" {
            admin-state enable
            description "control channel VPLS 1 tag 1"
            service-id 1
            customer "1"
            sap 1/1/c1/1:1 {
                eth-ring 1
            }
            sap 1/1/c2/1:1 {
                eth-ring 1
            }
# on PE-3:
configure {
    service {
        vpls "VPLS-1" {
            admin-state enable
            description "control channel VPLS 1 tag 1"
            service-id 1
            customer "1"
            sap 1/1/c1/1:1 {
                eth-ring 1
            }
            sap 1/1/c2/1:1 {
                eth-ring 1
            }

A normal SAP or SDP can be added in a control channel VPLS on condition the eth-ring parameter is present. Any attempt to add a SAP or SDP without this parameter into a control channel VPLS results in error messages being displayed. To trigger the following error messages, SAP 1/1/c3/1:1 is added without the eth-ring parameter.

*[ex:/configure service vpls "VPLS-1" sap 1/1/c3/1:1]
A:admin@PE-1# commit
MINOR: SVCMGR #2590: configure service vpls "VPLS-1" sap 1/1/c1/1:1 - Invalid Ethernet ring 
configuration - Ring control SAP cannot be added to service that contains non-ring SAPs or SDP 
bindings - configure service vpls "VPLS-1" sap 1/1/c1/1:1 eth-ring
MINOR: SVCMGR #2590: configure service vpls "VPLS-1" sap 1/1/c1/1:1 - Invalid Ethernet ring 
configuration - Ethernet Ring Control service should only have controls saps from same ring - 
configure service vpls "VPLS-1" sap 1/1/c1/1:1 eth-ring
MINOR: SVCMGR #2590: configure service vpls "VPLS-1" sap 1/1/c2/1:1 - Invalid Ethernet ring 
configuration - Ring control SAP cannot be added to service that contains non-ring SAPs or SDP 
bindings - configure service vpls "VPLS-1" sap 1/1/c2/1:1 eth-ring
MINOR: SVCMGR #2590: configure service vpls "VPLS-1" sap 1/1/c2/1:1 - Invalid Ethernet ring 
configuration - Ethernet Ring Control service should only have controls saps from same ring - 
configure service vpls "VPLS-1" sap 1/1/c2/1:1 eth-ring

In non-failure conditions, the Ethernet ring is operationally up and the RPL is blocking successfully on ring node PE-2 port 1/1/c2/1, as expected from the RPL owner and RPL end configuration.

An overview of all of the rings can be shown using the following commands, in this case on node PE-2.

The following command on PE-2 shows the Ethernet ring status.

[/]
A:admin@PE-2# show eth-ring status

===============================================================================
Ethernet Ring (Status information)
===============================================================================
Ring   Admin  Oper       Path Information                 MEP Information
ID     State  State  Path         Tag       State     Ctrl-MEP CC-Intvl Defects
-------------------------------------------------------------------------------
1      Up     Up     a - 1/1/c1/1     1     Up        Yes      1         -----
                     b - 1/1/c2/1     1     Up        Yes      1         -----
===============================================================================
Ethernet Tunnel MEP Defect Legend:
R = Rdi, M = MacStatus, C = RemoteCCM, E = ErrorCCM, X = XconCCM

The following command on PE-2 shows the ring and path forwarding states.

[/]
A:admin@PE-2# show eth-ring

===============================================================================
Ethernet Rings (summary)
===============================================================================
Ring Int  Admin Oper            Paths Summary                       Path States
ID   ID   State State                                               a     b
-------------------------------------------------------------------------------
1    -    Up    Up    a - 1/1/c1/1     1     b - 1/1/c2/1     1     U     B
===============================================================================
Ethernet Ring Summary Legend:   B - Blocked    U - Unblocked

The show eth-ring 1 command on the different nodes shows specific information for Ethernet ring 1:

[/]
A:admin@PE-1# show eth-ring 1

===============================================================================
Ethernet Ring 1 Information
===============================================================================
Description        : (Not Specified)
Admin State        : Up                 Oper State       : Up
Node ID            : 02:09:ff:00:00:00
Guard Time         :    5 deciseconds   RPL Node         : rplNone
Max Revert Time    :  300 seconds       Time to Revert   : N/A
CCM Hold Down Time :    0 centiseconds  CCM Hold Up Time :   20 deciseconds
Compatible Version : 2
APS Tx PDU         : N/A
Defect Status      :

Sub-Ring Type      : none

-------------------------------------------------------------------------------
Ethernet Ring Path Summary
-------------------------------------------------------------------------------
Path Port             Raps-Tag     Admin/Oper      Type            Fwd State
-------------------------------------------------------------------------------
  a  1/1/c1/1         1               Up/Up        normal          unblocked
  b  1/1/c2/1         1               Up/Up        normal          unblocked
===============================================================================
[/]
A:admin@PE-2# show eth-ring 1

===============================================================================
Ethernet Ring 1 Information
===============================================================================
Description        : (Not Specified)
Admin State        : Up                 Oper State       : Up
Node ID            : 02:0b:ff:00:00:00
Guard Time         :    5 deciseconds   RPL Node         : rplOwner
Max Revert Time    :   60 seconds       Time to Revert   : N/A
CCM Hold Down Time :    0 centiseconds  CCM Hold Up Time :   20 deciseconds
Compatible Version : 2
APS Tx PDU         : Request State: 0x0
                     Sub-Code     : 0x0
                     Status       : 0xE0  ( RB DNF BPR )
                     Node ID      : 02:0b:ff:00:00:00
Defect Status      :

Sub-Ring Type      : none

-------------------------------------------------------------------------------
Ethernet Ring Path Summary
-------------------------------------------------------------------------------
Path Port             Raps-Tag     Admin/Oper      Type            Fwd State
-------------------------------------------------------------------------------
  a  1/1/c1/1         1               Up/Up        normal          unblocked
  b  1/1/c2/1         1               Up/Up        rplEnd          blocked
===============================================================================

Node PE-2 is the RPL owner and port 1/1/c2/1 is the RPL end. The Max Revert Time shows the configured value.

When a revert is pending after a failure restoration, the Time to Revert shows the number of seconds remaining before the revert occurs, as follows:

[/]
A:admin@PE-2# show eth-ring 1

===============================================================================
Ethernet Ring 1 Information
===============================================================================
Description        : (Not Specified)
Admin State        : Up                 Oper State       : Up
Node ID            : 02:0b:ff:00:00:00
Guard Time         :    5 deciseconds   RPL Node         : rplOwner
Max Revert Time    :   60 seconds       Time to Revert   :   49 seconds
CCM Hold Down Time :    0 centiseconds  CCM Hold Up Time :   20 deciseconds
Compatible Version : 2
APS Tx PDU         : N/A
Defect Status      :

Sub-Ring Type      : none

-------------------------------------------------------------------------------
Ethernet Ring Path Summary
-------------------------------------------------------------------------------
Path Port             Raps-Tag     Admin/Oper      Type            Fwd State
-------------------------------------------------------------------------------
  a  1/1/c1/1         1               Up/Up        normal          unblocked
  b  1/1/c2/1         1               Up/Up        rplEnd          unblocked
===============================================================================

On reversion, the following message is logged in log 99.

78 2023/05/05 16:12:16.588 CEST MINOR: ERING #2001 Base eth-ring-1
"Eth-Ring 1 path b changed fwd state to blocked"

The status of Ethernet ring 1 on PE-3 is as follows:

[/]
A:admin@PE-3# show eth-ring 1

===============================================================================
Ethernet Ring 1 Information
===============================================================================
Description        : (Not Specified)
Admin State        : Up                 Oper State       : Up
Node ID            : 02:0d:ff:00:00:00
Guard Time         :    5 deciseconds   RPL Node         : rplNone
Max Revert Time    :  300 seconds       Time to Revert   : N/A
CCM Hold Down Time :    0 centiseconds  CCM Hold Up Time :   20 deciseconds
Compatible Version : 2
APS Tx PDU         : N/A
Defect Status      :

Sub-Ring Type      : none

-------------------------------------------------------------------------------
Ethernet Ring Path Summary
-------------------------------------------------------------------------------
Path Port             Raps-Tag     Admin/Oper      Type            Fwd State
-------------------------------------------------------------------------------
  a  1/1/c1/1         1               Up/Up        normal          unblocked
  b  1/1/c2/1         1               Up/Up        normal          unblocked
===============================================================================

Finally, the following commands on PE-2 show the details of the individual paths:

[/]
A:admin@PE-2# show eth-ring 1 path a

===============================================================================
Ethernet Ring 1 Path Information
===============================================================================
Description        : (Not Specified)
Port               : 1/1/c1/1           Raps-Tag         : 1
Admin State        : Up                 Oper State       : Up
Path Type          : normal             Fwd State        : unblocked
                                        Fwd State Change : 05/05/2023 16:11:17
Last Switch Command: noCmd
APS Rx PDU         : Request State: 0x0
                     Sub-Code     : 0x0
                     Status       : 0x20  ( BPR )
                     Node ID      : 02:0d:ff:00:00:00

===============================================================================

[/]
A:admin@PE-2# show eth-ring 1 path b

===============================================================================
Ethernet Ring 1 Path Information
===============================================================================
Description        : (Not Specified)
Port               : 1/1/c2/1           Raps-Tag         : 1
Admin State        : Up                 Oper State       : Up
Path Type          : rplEnd             Fwd State        : blocked
                                        Fwd State Change : 05/05/2023 16:12:17
Last Switch Command: noCmd
APS Rx PDU         : Request State: 0x0
                     Sub-Code     : 0x0
                     Status       : 0x20  ( BPR )
                     Node ID      : 02:0d:ff:00:00:00

===============================================================================

Configure user data channel VPLS service

The user data channels are created on a separate VPLS, "VPLS-100" in the example. The ring data channels must be on the same ports as the corresponding control channels configured above. The access into the data services can use SAPs or SDPs.

# on PE-1:
configure {
    service {
        vpls "VPLS-100" {
            admin-state enable
            description "data channel VPLS 100"
            service-id 100
            customer "1"
            sap 1/1/c1/1:100 {
                eth-ring 1
            }
            sap 1/1/c2/1:100 {
                eth-ring 1
            }
            sap 1/1/c3/1:100 {
            }
        }
# on PE-2:
configure {
    service {
        vpls "VPLS-100" {
            admin-state enable
            description "data channel VPLS 100"
            service-id 100
            customer "1"
            sap 1/1/c1/1:100 {
                eth-ring 1
            }
            sap 1/1/c2/1:100 {
                eth-ring 1
            }
            sap 1/1/c3/1:100 {
            }
        }
# on PE-3:
configure {
    service {
        vpls "VPLS-100" {
            admin-state enable
            description "data channel VPLS 100"
            service-id 100
            customer "1"
            sap 1/1/c1/1:100 {
                eth-ring 1
            }
            sap 1/1/c2/1:100 {
                eth-ring 1
            }
            sap 1/1/c3/1:100 {
            }
        }

The following command on PE-1 shows all the SAPs that are configured to use Ethernet rings.

[/]
A:admin@PE-1# show service sap-using eth-ring

===============================================================================
Service Access Points (Ethernet Ring)
===============================================================================
SapId                    SvcId       Eth-Ring Path Admin Oper  Blocked Control/
                                                   State State         Data
-------------------------------------------------------------------------------
1/1/c1/1:1               1           1        a    Up    Up    No      Ctrl
1/1/c2/1:1               1           1        b    Up    Up    No      Ctrl
1/1/c1/1:100             100         1        a    Up    Up    No      Data
1/1/c2/1:100             100         1        b    Up    Up    No      Data
-------------------------------------------------------------------------------
Number of SAPs : 4
===============================================================================

Debug

To emulate a failure on Ethernet ring 1, the unblocked port 1/1/c1/1 on node PE-2 is disabled, as follows.

# on PE-2:
configure {
    port 1/1/c1/1 {
        admin-state disable

The following messages are logged in log 99 when the failure occurs:

88 2023/05/05 16:15:44.598 CEST MINOR: ETH_CFM #2001 Base
"MEP 1/1/1232 highest defect is now defRemoteCCM"

87 2023/05/05 16:15:40.798 CEST MAJOR: SVCMGR #2210 Base
"Processing of an access port state change event is finished and the status of all affected 
SAPs on port 1/1/c1/1 has been updated."

86 2023/05/05 16:15:40.783 CEST MINOR: ERING #2001 Base eth-ring-1
"Eth-Ring 1 path b changed fwd state to unblocked"

85 2023/05/05 16:15:40.783 CEST MINOR: ERING #2001 Base eth-ring-1
"Eth-Ring 1 path a changed fwd state to blocked"

84 2023/05/05 16:15:40.782 CEST WARNING: SNMP #2004 Base 1/1/c1/1
"Interface 1/1/c1/1 is not operational"

For troubleshooting, the tools dump eth-ring <ring-index> command displays path information, the internal state of the control protocol, related statistics information and up to the last 20 protocol events (including messages sent and received, and the expiration of timers). An associated parameter clear exists, clearing the event information in this output when the command is entered. The following is an example of the output on node PE-2 with port 1/1/c1/1 disabled.

[/]
A:admin@PE-2# tools dump eth-ring 1

ringId 1 (Up/Up): numPaths 2 nodeId 02:0b:ff:00:00:00
 SubRing: none (interconnect ring 0, propagateTc  No), Cnt 0
  path-a, port 1/1/c1/1 (Down), tag 1.0(Dn) status (Up/Dn/Blk)
      cc (Dn/Up): Cnt 3/2 tm 000 00:18:38.370/000 00:14:03.350
      state: Cnt 7 B/F 000 00:18:34.550/000 00:14:10.340, flag: 0x0
  path-b, port 1/1/c2/1 (Up), tag 1.0(Up) status (Up/Up/Fwd)
      cc (Dn/Up): Cnt 2/2 tm 000 00:08:53.380/000 00:08:56.620
      state: Cnt 10 B/F 000 00:15:10.360/000 00:18:34.550, flag: 0x0
  FsmState=  PROT, Rpl = Owner, revert = 60 s, guard = 5 ds
    Defects =
    Running Timers = PduReTx
    lastTxPdu = 0xb000 Sf
    path-a Normal, RxId(I)= 02:0d:ff:00:00:00, rx= v1-0x0020 Nr, cmd= None
    path-b Rpl, RxId= 02:0d:ff:00:00:00, rx= v1-0xb020 Sf, cmd= None
  DebugInfo:  aPathSts 6, bPathSts 5, pm (set/clr) 0/0, txFlush 0
    RxRaps: ok 28 nok 0 self 218, TmrExp - wtr 3(1), grd 4, wtb 0
    Flush: cnt 15 (9/6/0) tm 000 00:18:38.340-000 00:18:38.340 Out/Ack 0/1
    RxRawRaps: aPath 156 bPath 169 vPath 0
    Now: 000 00:19:09.390 , softReset: No - noTx 0

  Seq Event  RxInfo(Path: NodeId-Bytes)
             state:TxInfo (Bytes)            Dir  pA  pB        Time
  === ===== ==============================  ===== === === ================
  007   pdu B: 02:09:ff:00:00:00-0xb040 Sf(DNF)
              PEND-G: 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.410
  008   pdu B: 02:09:ff:00:00:00-0x0000 Nr
              PEND-G: 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.410
  009   pdu A: 02:09:ff:00:00:00-0xb040 Sf(DNF)
              PEND-G: 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.420
  010   pdu A: 02:09:ff:00:00:00-0x0000 Nr
              PEND-G: 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.420
  011   pdu B: 02:09:ff:00:00:00-0x0000 Nr
              PEND-G: 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.510
  012   pdu A: 02:09:ff:00:00:00-0x0000 Nr
              PEND-G: 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.510
  013   pdu B: 02:09:ff:00:00:00-0x0000 Nr
              PEND  : 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.610
  014   pdu A: 02:09:ff:00:00:00-0x0000 Nr
              PEND  : 0x0020  Nr            Rx<-- Fwd Blk 000 00:08:59.610
  015  xWtr
              IDLE  : 0x00e0  Nr(RB DNF)    Tx--> Fwd Blk 000 00:10:14.360
  016   aDn
              PROT  : 0xb000  Sf            TxF-> Blk Fwd 000 00:13:17.200
  017   pdu B: 02:0d:ff:00:00:00-0xb020 Sf
              PROT  : 0xb000  Sf            RxF<- Blk Fwd 000 00:13:20.350
  018   pdu A: 02:0d:ff:00:00:00-0x0020 Nr
              PROT  : 0xb000  Sf            Rx<-- Blk Fwd 000 00:14:04.440
  019   pdu B: 02:0d:ff:00:00:00-0x0020 Nr
              PROT  : 0xb000  Sf            Rx<-- Blk Fwd 000 00:14:04.440
  000   aUp
              PEND-G: 0x0000  Nr            Tx--> Blk Fwd 000 00:14:05.360
  001   pdu A: 02:0d:ff:00:00:00-0x0020 Nr
              PEND  : 0x0000  Nr            Rx<-- Blk Fwd 000 00:14:10.340
  002   pdu
              PEND  :                       ----- Fwd Fwd 000 00:14:10.340
  003   pdu B: 02:0d:ff:00:00:00-0x0020 Nr
              PEND  :                       Rx<-- Fwd Fwd 000 00:14:10.340
  004  xWtr
              IDLE  : 0x00a0  Nr(RB )       TxF-> Fwd Blk 000 00:15:10.360
  005   aDn
              PROT  : 0xb000  Sf            TxF-> Blk Fwd 000 00:18:34.550
  006   pdu B: 02:0d:ff:00:00:00-0xb020 Sf
              PROT  : 0xb000  Sf            RxF<- Blk Fwd 000 00:18:38.340

Conclusion

Ethernet ring APS provides an optimal solution for designing native Ethernet services with ring topology. This protocol provides simple configuration, operation, and guaranteed fast protection time. SR OS also has a flexible encapsulation that allows dot1Q, QinQ, or PBB for the ring traffic. Ethernet ring APS can be utilized for various services such as mobile backhaul, business VPN access, aggregation, and core.