G.8032

G.8032 is an ITU-T standard for loop prevention in simple ring topologies. A fully closed ring is a collection of devices which have exactly two connections in the topology: an east interface and a west interface. This of course forms a loop, for which STP would traditionally be used to block a port. However, even RSTP convergence is not fast enough for service provider access networks. G.8032 gives you about 50msec convergence time.

In G.8032, you manually specify which link you want blocked under normal conditions. This link is called the RPL (ring protection link). One device on this link is designated as the RPL owner. This device sends R-APS (Ring-Automation Protection Switching) messages every few seconds indicating that no changes have occured. The device on the other end of the link is optionally designated as the RPL neighbor, which would also block the port.

At its most basic level, G.8032 is simply a technology which turns on/off the RPL port. If a link fails anywhere in the ring, the RPL owner is alerted to turn the RPL port on. A switch does this using an R-APS SF (Signal Failure) message. When a link comes back up, by default G.8032 operates in revertive mode. A count down timer starts, and once the timer expires, the RPL owner turns its port back off. The switch then unblocks the port that previously had failed.

G.8032 must use CFM for fast convergence. CFM runs on each link individually, as if each link is a separate CFM domain. Each device must have a unique MPID. CFM can be tuned as low as 3.3msec to provide very fast convergence.

G.8032 can also use open rings, which are rings that connect to a closed ring. For example, in the diagram below, there is a full ring and an open ring below it. A port in the open ring must still be blocked, because node 3-4-5, although in a different ring, end up closing the open ring.

Operation of G.8032 in detail

When a link fails in the ring, a holdoff timer runs to handle link flaps. By default this timer is 0. Once the timer expires, an R-APS SF message is sent by each switch that detects the link failure (two devices will detect a single link failure). All devices, upon generating/receiving the SF message will flush their MAC tables. When the RPL owner receives the SF message, it unblocks its RPL. The devices continue generating SF messages, but now they don’t trigger any further action.

Once the link comes back up, the devices detecting this start a guard timer and generate R-APS NR (no request) messages. The guard timer prevents reception of any R-APS, and by default is 500ms. It might be helpful to consider the NR message as “I’m not requesting you to unblock the port anymore.” The RPL owner receives this and starts a WTR (wait to restore) timer, which prevents constant topology changes if a link flaps. This timer is by default 5 minutes. Meanwhile, the guard timer expires on the two nodes that sent the NR message. They receive the NR message over the previously-failed link. Whichever node has a higher ID unblocks the port, but the lower ID continues with the block. Once the WTR timer expires, the RPL owner blocks its RPL and sends its own R-APS NR message. This prompts a MAC flush on all devices. When the node with the lower ID connected to the previously-failed link receives this, it removes the block on the port and stops sending R-APS NR messages. The RPL neighbor blocks its port in response to this message as well.

As an operator, you can also forcefully block a ring port to force a topology change. This is called a FS (force switch). You can also do a manual switch (MS) which will not work if there is already an existing FS or SF condition in the ring. If you do either of these operations, a WTB (wait to block) timer runs before performing the block. However, the config guide doesn’t show how to actually perform this action.

G.8032 can only handle at most one link failure. If a second link fails, the ring will be partitioned.

G.8032 can run different instances for a set of data VLANs. This allows you to load balance on a per-VLAN basis, similar to MST.

Configuration

To configure G.8032, you must first configure CFM. G.8032 is configured as a registered client of CFM.

ethernet cfm ieee
ethernet cfm global
ethernet cfm domain name level num
 service name evc name
  continuity-check
  continuity-check interval interval    ! As low as 3.3 msec
  efd notify g8032                      ! efd = ethernet fault detection
!
int Gi 1
 service instance 100 ethernet evc-name
  cfm mep domain name mpid num          ! Each device needs a unique mpid
  encap dot1q 100
  bridge-domain 100

Next, a g8032 ring profile is created. The ring is defined, and associated with exactly two ports (if a closed ring), or exactly one port on two devices in an open ring. An instance defines the RPL port and which data vlans are used. A separate VLAN is used as the APS channel for R-APS messages.

ethernet ring g8032 profile name
 timer guard seconds              ! All timers are optional
 timer hold-off seconds
 timer wtr seconds
 non-revertive                    ! By default, g8032 operates as revertive
!
ethernet ring g8032 ring-name
 open-ring                        ! If this is an open ring
 !
 port 0 int Gi1
  monitor service instance num    ! This is the EFP that detects ring failures
 port 1 int Gi2
  monitor service instance num
 !
 instance num
  profile profile-name
  !
  rpl port0 owner                 ! Only on the RPLF owner
  !
  inclution-list vlan-ids vlans   ! Which data VLANs are included in this instance
  !
  aps-channel
   level num                      ! Must match on all nodes
   port0 service instance num     ! This is the EFP that sends/receives APS messages
   port1 service instance num

Typically the same service instance used for CFM would be used for both the monitor service config and the aps-channel. I’m not clear whether you would need separate EFPs for multiple instances, one EFP for each instance?

ethernet ring g8032 RING1
 port0 int Gi1
  monitor service instance 100
 port1 int Gi2
  monitor service instance 100
 !
 instance 1
  profile PROFILE1
  rpl port1 owner
  inclusion-list vlan-ids 100,1000-2000
  aps-channel
   level 2
   port0 service instance 100
   port1 service instance 100

Last updated