Fast Reconfiguration of Network Topology (FRNT)
The Fast Reconfiguration of Network Topology (FRNT) protocol handles fast reconfiguration in switched ring and sub-ring topologies. When rapid convergence in case of link or switch failure is required, FRNT becomes the protocol of choice when it comes to layer-2 resilience and robustness.
Two versions of FRNT exist, FRNTv0 and FRNTv2. FRNTv2 natively supports topologies with regular rings and with sub-ring extensions, while FRNTv0 is limited to a single ring.
Table of contents
- Introduction
- Fail-Over Handling
- Link Monitoring and Qualification
- Guidelines on Port selection and configuration
- Multiple FRNT rings and sub-rings (FRNTv2)
- Reserved VLANs
- Configuration
- FRNT Status Commands and Explanations
For examples of use-cases, refer to the following document:
Introduction
The overall functionality of FRNTv0 and FRNTv2 is the same when configured in a ring topology. The FRNT protocol handles fast reconfiguration in switched ring topologies. One of the switches has the role of FRNT focal point while the other switches are referred to as FRNT members. When the switches are connected in a ring, it is the responsibility of the focal point to break the loop by putting one of its ports in blocking state, as shown in Figure 1.
.-----. .-----.
| |M N| |
| SW1 +-||------------+ SW2 |
| fp| | |
'--+--' '--+--'
N| |M
| FRNT |
M| |N
.--+--. .--+--.
| | | |
| SW4 +---------------+ SW3 |
| |N M| |
'-----' '-----'
Figure 1: Basic FRNT ring configuration, SW1 is focal point (fp).
Note
In an FRNT ring or a sub-ring, only one of the switches can be configured as focal point. The other switches should be configured as member switches. For FRNT to operate properly, all devices in the ring must be running FRNT.
Fail-Over Handling
Once a link failure is detected somewhere along the ring, the focal point puts its blocking port in forwarding state to establish full connectivity between the switches. FRNT is event based, thus switches that detect a link down event will immediately send a link down FRNT message towards the focal point. Intermediate switches forward all FRNT messages, with highest priority, and the focal point opens its blocking port upon receiving the link down message.
.-----. .-----.
| |M N| |
| SW1 +---------------+ SW2 |
| fp| | |
'--+--' '--+--'
N| |M
| FRNT |
M| |N
.--+--. .--+--.
| | | |
| SW4 +------ X ------+ SW3 |
| |N M| |
'-----' '-----'
Figure 2: Upon a link break, the focal point (SW1) puts its blocked port in forwarding state.
Similarly, when a broken link comes back up again and the ring is fully connected, the focal point will react and put its blocking port back to blocking state.
Link Monitoring and Qualification
An FRNT link must be qualified before it can be used as a active link in an FRNT ring. The link qualification is done with control traffic, i.e, FRNT Hello packets. The qualification with Hello packets verifies that there is two-way connectivity over the link. The primary reason for this is to ensure adequate operation of FRNT in both directions of a link, before taking it into operation. This feature provides robustness against one-way link or transmission failures, and is specifically important over a fiber optic link pairs.
Note
In FRNTv2 it is possible to disable Hello packets. The port will become qualified on link up and no further tests of the link quality is not done. The FRNTv2 switches on each side of the link must use the same qualification procedure.
Guidelines on Port selection and configuration
When enabling FRNT on a switch, two ports are set as ring ports. Below are some recommendations and rules when selecting and configuring the FRNT ports:
-
Avoid using copper SFPs as FRNT ports: When using Ethernet ports as FRNT ports, choose fixed Ethernet ports or fiber SFPs. Copper SFPs may be used as FRNT ports, but will generally imply non-negligible degradation of fail-over performance.
-
When activating FRNT on gigabit copper ports the setting ‘fastlink’’ should be enabled to reduce the link down time. Per the IEEE 802.3 Clause 40 standard, a 1000BASE-T PHY is required to wait 750 milliseconds or more to report that link is down after detecting a problem with the link. It is not possible to meet the failover time for FRNT if the PHY follows the 750 wait time. By activating fastlink on a port the IEEE standard is intentionally violated.
For example, if port eth1 is a gigabit copper port used as FRNT ring port, enabling fastlink can be done as follows.
example:/#> configure example:/config/#> port eth1 example:/config/port-eth1/#> fastlink example:/config/port-eth1/#> leave example:/#>
Multiple FRNT rings and sub-rings (FRNTv2)
FRNTv2 supports sub-ring topologies. Sub-rings can be thought of as a partial ring in the shape of a “C” that is not fully closed (a ”horse-shoe”). Sub-rings can be hooked into a regular FRNTv0 or FRNTv2 super-ring and to other FRNTv2 sub-rings as well. This allows for complex ring topologies to be built as shown in Figure 3.
.----------. .----------. .----------. .------------.
| Super- | | Super- | | Sub- | | Super- |
| Ring | | Ring | | Ring | | Ring |
| | | | .+---. .---+. | |
.+---. .---+. .+---. .---+. | | | | .+---. .---+.
| +--+ | | +--+ | | +--+ | | +----+ |
| | | | | | | | '+---' '---+' | | | |
'+---' '---+' '+---' '---+' | Super- | '+--+' '+--+'
| Sub- | | Sub- | | Ring | | | Sub- | |
| Ring | | Ring | | | | | Ring | |
'----------' .+---. .---+. .+---. .---+. | '------' |
| +--+ | | +--+ | | |
| | | | | | | | | Sub- |
'+---' '---+' '+---' '---+' | Ring |
| Sub- | | Sub- | '------------'
| Ring | | Ring |
'----------' '----------'
Figure 3: Examples of sub-ring topologies
The switches in each end of the sub-ring will have only one FRNT ring port configured and one of those switches needs to be the focal point. The member switches between the sub-ring end switches are configured as normal member switches with two ring ports. When the sub-ring is intact the focal point will block its sub-ring port to prevent a loop. If a link break is detected in the sub-ring the focal point will open its blocked ring port to restore connectivity in the network.
Note
All FRNTv2 nodes in a ring (super-ring or sub-ring) must be configured with the same ring ID. The ring ID used in a super-ring and in a sub-ring must differ.
Below is a configuration example for a member FRNTv2 sub-ring end switch, i.e., only a single FRNT port is configured (here port eth4). It assumes there is already an FRNT super-ring configured (here an FRNTv2 ring with ring ID ‘1’ and ring-ports eth1 and eth2).
example:/#> configure
example:/#> configure
example:/config/#> ring
example:/config/ring/#> frnt 2
example:/config/ring/frnt-2/#> port eth4
example:/config/ring/frnt-2/port-eth4/#> end
example:/config/ring/frnt-2/#> no focal-point
example:/config/ring/frnt-2/#> leave
example:/#> show frnt
Top
Rid Ver Status Cnt Mode Port 1 Port 2
1 2 OK 5 Focal eth1 Qualified eth2 Forwarding
2 2 OK 3 Member eth4 Forwarding None
example:/#>
Reserved VLANs
Reserved VLANs for FRNT are:
- FRNTv0 uses VLAN IDs 4020-4022 and 4032-4033.
- FRNTv2 uses VLAN IDs 4021-4022.
Thus, when FRNT is enabled on a switch, these VLANs are implicitly reserved and cannot be configured by the user.
Configuration
FRNT is a top-level configuration context in the CLI:
example:/#> configure example:/config/#> ring example:/config/ring/#> frnt 1 example:/config/ring/frnt-1/#>
[no] frnt [ID]
The available commands differs depending on FRNT version. Both are listed below, starting with FRNTv2 settings.
Syntax FRNTv2 Configuration
version <0,2>
ring-id <ID>
[no] focal-point
[no] port <PORT>
[no] blocked-port <PORT>
[no] ring-interval <INTERVAL>
[no] guarded-recovery
[no] response-delay <INTERVAL>
[no] hello-time <INTERVAL>
[no] fwd-delay <DELAY>
Syntax FRNTv0 Configuration
version <0,2>
[no] focal-point
[no] ports [portM,portN]
[no] hello-time [20-1000,20-1000]
FRNT Status Commands and Explanations
In order to see the current status of FRNT for an individual device the following command can be used:
[show] frnt [clear-stats] [ID|all]
Showing FRNT status overview
example:/#> show frnt
Top
Rid Ver Status Cnt Mode Port 1 Port 2
0 0 OK 5 Focal eth1 Blocking eth2 Forwarding
1 2 OK 3 Member eth4 Forwarding None
example:/#>
For a detailed explanation of various FRNT states, see further below.
Detailed FRNTv0 status
example:/#> show frnt 0 Ring ID : 0 Version : FRNTv0 Enabled : Yes, running as PID 2668 Ring Status : OK Topology Change Count : 5 Time Since Last Change : 0 Days 0 Hours 0 Mins 41 Secs Mode : Focal Point Port M : eth1 UP Blocking Port N : eth2 UP Forwarding example:/#>
Detailed FRNTv2 status (here with only a single ring port)
example:/#> show frnt 1
Ring id : 1
Version : FRNTv2
Enabled : Yes, running as PID 1826
Ring Status : OK
Topology Change Count : 3
Time Since Last Change : 0 Days 0 Hours 0 Mins 28 Secs
Mode : Member
Port : eth4 UP Forwarding
Hello time : 500
Forward Delay : Disabled
example:/#>
Port Status in FRNTv0 and FRNTv2 are summarised in table below.
Link state | Port State | FRNTv0 Port Status | FRNTv2 Port Status |
---|---|---|---|
Down | Down | Down | Down |
Up | Blocking | Down | Not Qualified |
Up | Blocking | Up | Qualified |
Up | Forwarding | Forwarding | Forwarding |
- FRNTv0 Port status
- Down: FRNT does not receive hello packets from its attached FRNT node.
- Up: FRNT receives hello packets from its attached FRNT node. If the port is in forwarding state it is active in the ring and it is forwarding traffic.
- FRNTv2 Port status:
- Down: Link down on port.
- Not Qualified: The port has link up but do not get response on transmitted hello packets from the attached FRNT node.
- Qualified: The port receives hello packets from its attached FRNT node. It is ready to be used in the ring if needed but is still blocked. Focal point will have one of its port in qualified state when the ring is intact.
- Forwarding: An active port in the ring and it is forwarding traffic.