Skip to main content
Versa Networks

Configure Forward Error Correction for SD-WAN Traffic Steering

Versa-logo-release-icon.png For supported software information, click here.

Forward error correction (FEC) is an SD-WAN traffic-steering mechanism that allows you to control errors in data transmission flows when the communication channels are unreliable or noisy. The sender encodes messages using an error-correcting code (ECC) and does so in a redundant manner. The redundancy allows the receiver to correct errors without having to request, over a reverse channel, that the sender retransmit any data that is lost. With FEC, the sender generates an FEC parity packet for every nth packet that it sends. The receiver uses this parity packet to recover any lost packets. In this way, FEC minimizes packet loss at the receiving end, thus improving the end user's quality of experience. It is recommended that you configure FEC for sites that experience loss of clarity in VoIP calls and for any critical traffic that experiences packet loss.

To implement FEC, you configure it in an SD-WAN traffic-steering forwarding profile, and then you associate the forwarding profile with an SD-WAN traffic-steering policy, as described in Configure SD-WAN Traffic Steering. You must configure FEC on both the sender and receiver.

You can use FEC in Layer 3 SD-WAN traffic steering and, for Releases 22.1.1 and later, in Layer 2 SD-WAN traffic steering.

The Versa Operating System™ (VOS™) dynamically starts sending FEC parity packets when links carrying the traffic become non-compliant with configured SLA metrics, and VOS dynamically stops sending FEC parity packets based on circuit utilization. VOS also supports sending FEC parity packets on an alternate circuit. Forward Error Correction is usually required when a link is congested and begins dropping packets. Versa's enhanced FEC can prevent overhead on the congested link by using the alternate circuit for sending FEC parity packets. In addition, VOS can duplicate only the FEC parity packets on an alternate circuit, which increases the probability of recovering the lost packet on the receiving end.

Some codecs contain critical information in the initial part of the payload, so it is more important to recover the beginning of the payload. For these situations, you can configure the size of the payload that needs to be recovered rather than always recovering the entire payload, thus reducing the overhead of generating FEC parity packets.

Let's do a few calculations to illustrate the transmission quality improvement provided by FEC, as well as the overhead added by FEC. Suppose you configure FEC to generate a parity packet for every three packets. The FEC overhead is 100/3, or 33 percent. If the path has a uniform packet loss of 5 percent and if you send three packets, without FEC the probability that all three packets reach the receiver is 85.74 percent. When you enable FEC, this probability increases to 98.6 percent. Now suppose that you configure FEC to generate a parity packet for every six packets. The overhead reduces to 100/6, or 16 percent, and if you send six packets, the probability of all six packets reaching the destination is 95.56 percent. You can use the results of such calculations to balance packet protection against the extra bandwidth required to provide the protection.

Let's consider a scenario where the FEC in Site 1 is configured to generate a parity packet for every three packets. When Site 1 receives a flow that matches the policy, it starts generating parity packets. Site 2 keeps track of the sequence numbers so that it can identify lost packets. If no packets are lost, Site 2 discards the parity packet. However, if Site 2 detects a loss, when the parity packet arrives, Site 2 uses the information in the parity packet to regenerate the lost packet.

The following figure illustrates a scenario in which no packets are lost during transmission. Here, Site 1 sends 3 packets and generates a parity packet for every 3 packets. Site 2 discards the parity packet because no packets have been lost.

FEC-no-packet-loss.png

The following figure illustrates the packet loss scenario in which packets are lost during transmission. Here, Site 1 sends three packets and generates a parity packet for every 3 packets. However, P3 is lost during transmission. When Site 2 receives the parity packet, it regenerates the lost packet.

FEC-packet-loss.png

Configure FEC

By default, FEC is disabled. To enable FEC, you configure it when you configure an SD-WAN traffic-steering forwarding profile. Note that you must configure FEC on both the sender and receiver.

To configure FEC:

  1. In Director view:
    1. Select the Administration tab in the top menu bar.
    2. Select Appliances in the left menu bar.
    3. Select an appliance in the main panel. The view changes to Appliance view.
  2. Select the Configuration tab in the top menu bar.
  3. To configure a Layer 3 SD-WAN forwarding profile, select Services > SD-WAN > Forwarding Profiles in the left menu bar.
    To configure a Layer 2 SD-WAN forwarding profile, select Services > Layer 2 SD-WAN > Forwarding Profiles in the left menu bar.
  4. Click the add-icon-black-on-white.png Add icon. The Add Forwarding Profile popup window displays.

    add-forwarding-profile-general-tab-border.png
  5. Select the General tab, and enter a name for the forwarding profile.
  6. Select the FEC tab, and enter information for the following fields.

    add-forwarding-profile-FEC-tab-border.png
     
    Field& Description
    Sender (Group of Fields)  
    • Enable

    Click to enable FEC.
    Default: FEC is disabled.

    • Duplicate FEC Packet

    Select how to duplicate FEC parity packets:

    • Alternate circuit—Duplicate FEC parity packets and send them on a WAN interface that is not an interface on which data packets are transmitted.
    • Disabled—Do not duplicate FEC parity packets. This is the default.
    • Same circuit—Duplicate FEC parity packets and send them on the same WAN interface used to transmit data packets.

    Default: Disabled

    • FEC Packet

    Select the circuit on which to send FEC parity packets:

    • Alternate circuit—Send FEC parity packets on a WAN interface that is not an interface on which data packets are transmitted. If an alternate circuit is unavailable, FEC parity packets are sent on the same circuit as data packets. This is the default.
    • Same circuit—Send FEC parity packets on the same WAN interface used to transmit data packets.

    Default: Alternate circuit

    • Maximum FEC Packet Size

    Enter the maximum packet size of FEC parity packet that the sender can send. This value is used to recover lost packets. If the maximum packet size you configure (referred to as n) is less than or equal to the data packet size, the recovered packet contains the first n bytes of the original packet.

    Range: 100 through 3000 bytes

    Default: 1400 bytes

    • Number of Packets per FEC

    Enter the number of data packets after which an FEC packet is generated and sent to the peer branch. The generated FEC parity packet can recover a packet on the peer branch only if there is one lost packet in the specified number of packets per FEC.

    Range: 1 through 32
    Default: 4

    • Start When

    Select when to start sending FEC parity packets:

    • Always—Always send FEC parity packets.
    • SLA violated—Send parity packets when an SLA violation occurs.
    • Stop When

    Click to set the circuit utilization threshold at which to stop sending FEC parity packets.

    • Circuit Utilization

    Enter the utilization threshold at which replication stops automatically. Specify this as a percentage of the total circuit bandwidth. When the circuit utilization of the links used for data packets or FEC parity packet transmission exceeds this threshold, FEC stops.

    FEC stops when the transmit circuit utilization of any link that is used for replicating the packet exceeds the configured threshold. For example, if you configure the circuit utilization threshold as 80 percent and there are two WAN links—broadband and MPLS—then at any given time if the transmit circuit utilization threshold on either the broadband or MPLS circuit exceeds 80 percent, FEC stops on both circuits.
    Range: 1 through 100 percent
    Default: None

    Receiver (Group of Fields)  
    • Recovery

    Click to enable packet recovery after receiving FEC packets.

    Default: Receiver packet recovery is enabled.

    • Preserve Order

    Click to reorder out-of-order packets and forward them in their original order.

    Default: Packet reordering is enabled.

    • Maximum FEC Packet Size

    Enter the maximum packet size of FEC parity packet that the receiver can receive. This value is used to recover lost packets. If the maximum packet size you configure (referred to as n) is less than or equal to the data packet size, the recovered packet contains the first n bytes of the original packet.

    Range: 100 through 3000 bytes

    Default: 1400 bytes

  7. Click OK.

Associate a Forwarding Profile with a Traffic-Steering Policy

To enable the FEC configuration, you associate the SD-WAN traffic-steering forwarding profile with an SD-WAN policy rule when you configure the enforcement action for the rule. For more information, see the the Configure SD-WAN Traffic Steering article.

Supported Software Information

Releases 20.2 and later support all content described in this article, except:

  • Release 22.1.1 adds support for Layer 2 SD-WAN traffic steering.