How to configure the Versa FlexVNF QoS Adaptive Shaping for SD-WAN?


Issue: In any SD-WAN environment—whether Hub-and-Spoke, Full Mesh, or Branch-to-Branch—a destination site can easily become a bottleneck if multiple source nodes transmit traffic simultaneously.

Standard static shaping only accounts for the local egress capacity of a branch. It lacks visibility into the remote ingress health of the destination. Without a real-time feedback loop, the following issues occur:




Solution: Versa Adaptive Shaping

Versa Adaptive Shaping is a dynamic QoS mechanism designed to prevent ingress congestion at any site—whether a Hub, a regional Data Center, or a peer Branch. By establishing a closed-loop feedback system through the SD-WAN control plane, the destination node actively signals its real-time capacity to all sending nodes. This ensures that traffic is throttled at the source (the sender) before it can overwhelm the destination's WAN link, preserving the performance of high-priority applications and eliminating the "blind" packet loss typical of static shaping.





How It Works: The Feedback Mechanism:

When Adaptive Shaping is enabled, the destination (receiving) branch shifts from a passive role to an active orchestrator. The process follows a logical cycle of monitoring, signaling, and adjustment:

1. Control Plane Signaling

The receiving branch communicates its current Input Rate to all sending branches via the SD-WAN control plane. Upon receiving this signal, the sending branches automatically tune their PIPE Shapers (specifically for the path toward that receiving branch) to match that input rate.

2. The Polling & Threshold Cycle

The receiving branch monitors its interface utilization at every configured poll-interval. The adjustment logic is governed by two key thresholds:

3. Stability and Flap Dampening

To prevent constant shaper adjustments due to minor traffic bursts, Versa employs a dampening-count:


Configuring Adaptive Shaping via Versa Director GUI:

To illustrate the configuration, we will use a 1-Hub and 1-Spoke scenario:


Step 1: Define the Base Interface Shaper (The sender)
Before Adaptive Shaping can tune traffic, a base QoS shaper must exist on the WAN interface. Both the Hub and Spoke require this at the port level to define their physical or licensed bandwidth limits.

  1. In Versa Director, navigate to Configuration > Networking > Class of Service > Associate Interface/Network.

  2. Select the relevant WAN interface (e.g., vni-0/0) or Network.

  3. Configure the Shaping Rate.

    • Example: If this is a Branch shaped at 200 Mbps, all egress traffic is capped here initially.



Step 2Hub Configuration Steps (The Receiver)

To enable the feedback loop on the Hub, navigate to Configuration > Services > System > Adaptive Shaping. Configure the following settings in order(below we are configuring default values):



Step 3: Configuring the Advertised Input Rate (The Hub)

Once the global Adaptive Shaping service is enabled, you must define the specific Input Rate that the Hub will advertise to the rest of the SD-WAN fabric. This value tells all peer branches (Spokes) the maximum capacity they should collectively aim for when sending traffic to this specific site.

To configure this in the Versa Director GUI:


Key Configuration Details:


Adaptive Shaping Scaling Guidelines:

Adaptive Shaping requires scaling guidelines. Versa FlexVNF has a total of 4096 pipes per interface (no concept of tenant) and two pipes are created for each adaptive shaping instance. For each interface, Versa FlexVNF requires two separate pipes per adaptive shaper for each branch and tenant. One pipe is used for the non-encrypted path and the other pipe is used for the encrypted path (these two paths are always present in a default Versa SD-WAN deployment).

This means you can run through the 4096 limit by:

It must be noted that for Adaptive Shaping in Versa FlexVNF, these pipes are only relevant to the sending branch since this is where the shaping is done. The SD-WAN control plane “activates” instantiation of the pipe on the sending branch when the receiving branch enables the Input Rate.

Excise caution while configuring Versa FlexVNF with many branches. A typical SD-WAN is made of sites that function more as centralized hub sites and others that function more as decentralized remote sites, Versa recommends enabling such Input Rate only for the centralized hub sites.

Monitoring and verifying Adaptive Shaping:

Once configured, you can verify the dynamic behavior of Adaptive Shaping using the Versa CLI. This allows you to observe how the sender throttles traffic in real-time based on the feedback received from the destination.



  1. On the Sender (Spoke) side, you can verify the initial state of the PIPE shaper created toward the Hub. At this stage, the Hub has advertised its Input Rate, and the Spoke has built a shaper to match it.

    Run the following command on the sender branch:

    cli> show class-of-services interfaces extensive vni-0/0

    - Look for the Secure portion of the PIPE.
    - You will see the PIPE created with the 100,000 Kbps (100 Mbps) input rate advertised by the Hub.
    - If there is no active traffic, the TX bps will show as idle.

    admin@Site11-cli> show class-of-services interfaces extensive
    
    Interface: vni-0/0
      Configuration:
        Burst Size : 1250000 bytes
        Rate       : 10000000 kbps
          TC0: Network-Control      : 10000000-10000000 kbps
          TC1: Expedited-Forwarding : 10000000-10000000 kbps
          TC2: Assured-Forwarding   : 10000000-10000000 kbps
          TC3: Best-Effort          : 10000000-10000000 kbps
    
      Traffic Stats:
        TX Packets         : 13016478
        TX PPS             : 0
        TX Packets Dropped : 1800855
        TX Bytes           : 15405666691
        TX bps             : 0
        TX Bytes Dropped   : 2068612010
    
      Port Stats :
             Traffic Class             TX Pkts          TX Dropped            TX Bytes       Bytes Dropped
       tc0 network-control               67608                   0            31082053                   0
       tc1   expedited-fwd               10161                   0             2971486                   0
       tc2     assured-fwd                   0                   0                   0                   0
       tc3     best-effort            12938709             1800855         15371613152          2068612010
    
      Pipe Stat:
         Pipe ID       : 4
         Users         : [ Site-12:Broadband:Broadband:Meta:clear ]
         Type          : SDWAN
         Configuration :
           Rate       : 73237 kbps
             TC0: Network-Control      : 73237-73237 kbps
             TC1: Expedited-Forwarding : 73237-73237 kbps
             TC2: Assured-Forwarding   : 73237-73237 kbps
             TC3: Best-Effort          : 73237-73237 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   1     18309-73237                   8                   0                6592                   0    0             0             0
        q1: fc1     1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc2     1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc3     1     18309-73237                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   1     18309-73237                   0                   0                   0                   0    0             0             0
        q1: fc5     1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc6     1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc7     1     18309-73237                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   1     18309-73237                   0                   0                   0                   0    0             0             0
        q1: fc9     1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc10    1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc11    1     18309-73237                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   1     18309-73237                   0                   0                   0                   0    0             0             0
        q1: fc13    1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc14    1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc15    1     18309-73237                   0                   0                   0                   0    0             0             0
    
         Pipe ID       : 5
         Users         : [ Site-12:Broadband:Broadband:Meta:secure ]
         Type          : SDWAN
         Configuration :
           Rate       : 73237 kbps
             TC0: Network-Control      : 73237-73237 kbps
             TC1: Expedited-Forwarding : 73237-73237 kbps
             TC2: Assured-Forwarding   : 73237-73237 kbps
             TC3: Best-Effort          : 73237-73237 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   1     18309-73237                   1                   0                 138                   0    0             0             0
        q1: fc1     1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc2     1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc3     1     18309-73237                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   1     18309-73237                2310                   0              466620                   0    0             0             0
        q1: fc5     1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc6     1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc7     1     18309-73237                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   1     18309-73237                   0                   0                   0                   0    0             0             0
        q1: fc9     1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc10    1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc11    1     18309-73237                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   1     18309-73237             2247337             1775123          2660610782          2030378474    0      80408528      88330280
        q1: fc13    1     18309-73237                   0                   0                   0                   0    0             0             0
        q2: fc14    1     18309-73237                   0                   0                   0                   0    0             0             0
        q3: fc15    1     18309-73237                   0                   0                   0                   0    0             0             0
    
         Pipe ID       : 0
         Users         : [ Default ]
         Type          : Access circuit
         Configuration :
           Burst Size : 1250000 bytes
           Rate       : 10000000 kbps
             TC0: Network-Control      : 10000000-10000000 kbps
             TC1: Expedited-Forwarding : 10000000-10000000 kbps
             TC2: Assured-Forwarding   : 10000000-10000000 kbps
             TC3: Best-Effort          : 10000000-10000000 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg
         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   12500000-10000000                1289                   0              154832                   0    0             0             0
        q1: fc1     12500000-10000000                   0                   0                   0                   0    0             0             0
        q2: fc2     12500000-10000000                   0                   0                   0                   0    0             0             0
        q3: fc3     12500000-10000000                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   12500000-10000000                   0                   0                   0                   0    0             0             0
        q1: fc5     12500000-10000000                   0                   0                   0                   0    0             0             0
        q2: fc6     12500000-10000000                   0                   0                   0                   0    0             0             0
        q3: fc7     12500000-10000000                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   12500000-10000000                   0                   0                   0                   0    0             0             0
        q1: fc9     12500000-10000000                   0                   0                   0                   0    0             0             0
        q2: fc10    12500000-10000000                   0                   0                   0                   0    0             0             0
        q3: fc11    12500000-10000000                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   12500000-10000000                   0                   0                   0                   0    0             0             0
        q1: fc13    12500000-10000000                   0                   0                   0                   0    0             0             0
        q2: fc14    12500000-10000000                   0                   0                   0                   0    0             0             0
        q3: fc15    12500000-10000000                   0                   0                   0                   0    0             0             0
    
         Pipe ID       : 1
         Users         : [ vni-0/0.0 ]
         Type          : Access circuit
         Configuration :
           Burst Size : 6250000 bytes
           Rate       : 200000 kbps
             TC0: Network-Control      : 200000-200000 kbps
             TC1: Expedited-Forwarding : 200000-200000 kbps
             TC2: Assured-Forwarding   : 200000-200000 kbps
             TC3: Best-Effort          : 200000-200000 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   1    50000-200000               66308                   0            30920215                   0    0          1464             0
        q1: fc1     1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc2     1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc3     1    50000-200000                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   1    50000-200000                7851                   0             2504866                   0    0             0             0
        q1: fc5     1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc6     1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc7     1    50000-200000                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   1    50000-200000                   0                   0                   0                   0    0             0             0
        q1: fc9     1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc10    1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc11    1    50000-200000                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   1    50000-200000            10691372               25732         12711002370            38233536    0           224
                0
        q1: fc13    1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc14    1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc15    1    50000-200000                   0                   0                   0                   0    0             0             0
    
    
    Interface: vni-0/0.0
    
      Traffic Stats:
        TX Packets         : 10765556
        TX PPS             : 2
        TX Packets Dropped : 25732
        TX Bytes           : 12744430873
        TX bps             : 2216
        TX Bytes Dropped   : 38233536
    
    
      Pipe Stat:
         Pipe ID       : 1
         Users         : [ vni-0/0.0 ]
         Type          : Access circuit
         Configuration :
           Burst Size : 6250000 bytes
           Rate       : 200000 kbps
             TC0: Network-Control      : 200000-200000 kbps
             TC1: Expedited-Forwarding : 200000-200000 kbps
             TC2: Assured-Forwarding   : 200000-200000 kbps
             TC3: Best-Effort          : 200000-200000 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   1    50000-200000               66322                   0            30922535                   0    0           912             0
        q1: fc1     1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc2     1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc3     1    50000-200000                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   1    50000-200000                7855                   0             2505674                   0    0          1072             0
        q1: fc5     1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc6     1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc7     1    50000-200000                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   1    50000-200000                   0                   0                   0                   0    0             0
                0
        q1: fc9     1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc10    1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc11    1    50000-200000                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   1    50000-200000            10691379               25732         12711002664            38233536    0           224             0
        q1: fc13    1    50000-200000                   0                   0                   0                   0    0             0             0
        q2: fc14    1    50000-200000                   0                   0                   0                   0    0             0             0
        q3: fc15    1    50000-200000                   0                   0                   0                   0    0             0             0
    
    
    [ok][2026-03-05 16:34:21]
    admin@Site11-cli>
    admin@Site11-cli>
    admin@Site11-cli>
    admin@Site11-cli> show class-of-services interfaces extensive
    admin@Site11-cli> request clear interfaces port statistics
    [ok][2026-03-05 16:35:09]
    admin@Site11-cli> show class-of-services interfaces extensive
    
    Interface: vni-0/0
      Configuration:
        Burst Size : 1250000 bytes
        Rate       : 10000000 kbps
          TC0: Network-Control      : 10000000-10000000 kbps
          TC1: Expedited-Forwarding : 10000000-10000000 kbps
          TC2: Assured-Forwarding   : 10000000-10000000 kbps
          TC3: Best-Effort          : 10000000-10000000 kbps
    
      Traffic Stats:
        TX Packets         : 646
        TX PPS             : 2
        TX Packets Dropped : 0
        TX Bytes           : 242439
        TX bps             : 2496
        TX Bytes Dropped   : 0
    
      Port Stats :
             Traffic Class             TX Pkts          TX Dropped            TX Bytes       Bytes Dropped
       tc0 network-control                 585                   0              235300                   0
       tc1   expedited-fwd                  27                   0                5454                   0
       tc2     assured-fwd                   0                   0                   0                   0
       tc3     best-effort                  34                   0                1685                   0
    
      Pipe Stat:
         Pipe ID       : 4
         Users         : [ Site-12:Broadband:Broadband:Meta:clear ]
         Type          : SDWAN
         Configuration :
           Rate       : 100000 kbps
             TC0: Network-Control      : 100000-100000 kbps
             TC1: Expedited-Forwarding : 100000-100000 kbps
             TC2: Assured-Forwarding   : 100000-100000 kbps
             TC3: Best-Effort          : 100000-100000 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc1     1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc2     1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc3     1    25000-100000                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc5     1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc6     1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc7     1    25000-100000                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc9     1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc10    1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc11    1    25000-100000                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc13    1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc14    1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc15    1    25000-100000                   0                   0                   0                   0    0             0             0
    
         Pipe ID       : 5
         Users         : [ Site-12:Broadband:Broadband:Meta:secure ]
         Type          : SDWAN
         Configuration :
           Rate       : 100000 kbps
             TC0: Network-Control      : 100000-100000 kbps
             TC1: Expedited-Forwarding : 100000-100000 kbps
             TC2: Assured-Forwarding   : 100000-100000 kbps
             TC3: Best-Effort          : 100000-100000 kbps
         Traffic Stats:
           Queues Cfg        Inferred                 TX                TX                   TX                Bytes  Qlen        Avg         Avg Drop
                   Wt         BW kbps                Pkts             Dropped               Bytes             Dropped           Rate bps      rate bps
      tc0 network-control:
        q0: fc_nc   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc1     1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc2     1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc3     1    25000-100000                   0                   0                   0                   0    0             0             0
      tc1   expedited-fwd:
        q0: fc_ef   1    25000-100000                   9                   0                1818                   0    0           536             0
        q1: fc5     1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc6     1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc7     1    25000-100000                   0                   0                   0                   0    0             0             0
      tc2     assured-fwd:
        q0: fc_af   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc9     1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc10    1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc11    1    25000-100000                   0                   0                   0                   0    0             0             0
      tc3     best-effort:
        q0: fc_be   1    25000-100000                   0                   0                   0                   0    0             0             0
        q1: fc13    1    25000-100000                   0                   0                   0                   0    0             0             0
        q2: fc14    1    25000-100000                   0                   0                   0                   0    0             0             0
        q3: fc15    1    25000-100000                   0                   0                   0                   0    0             0             0


  2.  Real-Time Dynamic Shaping (During Congestion)

    To test the mechanism, we initiate an iperf test from the Sender, attempting to push 150 Mbps toward a Hub configured with a 100 Mbps Input Rate.

    Because our High Threshold is 85%, the Hub will signal the Spoke to throttle down by 10% every 10 seconds (the poll interval) until congestion is mitigated. Observe the TX bps on the Spoke decreasing in increments:

    • First Iteration: The shaper is active. High packet drops are visible at the source because the iperf is over-driving the shaper.

      • TX bps : 101,998,376 (~102 Mbps)

    • After some time (Second Iteration): The Hub has signaled a reduction.

      • TX bps : 94,347,816 (~94 Mbps)

    • After further time (Third Iteration): The Hub continues to signal reductions as utilization remains high.

      • TX bps : 82,581,176 (~82 Mbps)

  3. Application-Level Impact (iperf Stats)

    The difference between the Sender's attempt and the Receiver's reality confirms the shaper is working at the source (SD-WAN edge) rather than the Hub's ingress.

    • Sender Machine: Continues to try pushing at the configured limit. [ 4] 44.00-45.00 sec 17.9 MBytes 150 Mbits/sec

    • Receiver (Hub) Side: The traffic is effectively capped and reduced by the adaptive mechanism. [ 5] 1.00-2.00 sec 10.2 MBytes 85.6 Mbits/sec (Throttling starts) [ 5] 24.00-25.00 sec 9.16 MBytes 76.8 Mbits/sec (Further reduction)

  4. Verifying the Shaping Cache (Hub Side)

    To see the internal decision-making process on the Hub, you can access the VSM (Versa Service Manager) shell. This shows the current vs. old advertised rates.

    Enter the VTY terminal: vsh connect vsmd
    Run the shaping cache command: show vsm p2mp shaping cache



    | Cfg InpRate | The static or % rate configured in the GUI (e.g., 100,000 Kbps). |
    | Curr InpRate | The actual rate currently being advertised to Spokes. |
    | Old InpRate | The rate advertised in the previous interval. |