VMware VeloCloud SD-WAN rate limit designated throughput calculation
search cancel

VMware VeloCloud SD-WAN rate limit designated throughput calculation

book

Article ID: 383094

calendar_today

Updated On:

Products

VMware VeloCloud SD-WAN

Issue/Introduction

When customers configure rate limit in the business policy, they can only choose the percentage(%) of the link bandwidth which is confusing. Usually customer's requirement is to limit the thoughput to a specific value such as 25Mbps. Rate limit is a complex QoS behavior which involves math calculation. This article introduces the math calculation of rate limit.

Environment

VMware VeloCloud SD-WAN supported versions

Resolution

1. First, rate limit is a per-pair behavior. For example, a flow is generated at edge B1 and destination edge is edge B3. If customer wants to apply rate limit on this flow, they must configure the business policy in edge B1.

2. Customers need to calculate the overall TX and RX bandwidth of edge B1 and edge B3, respectively. Consider below WAN situations:

B1:

B3:

B1 and B3 establish full mesh tunnel:

Interface   VLAN  prio8021P   PeerName  PublicIpAddr      PeerIpAddr  TunnelingMode     Version  Path State  RxState  TxState  AvgLatencyRx  AvgLatencyTx  RxJitter  TxJitter  lossRx  lossTx  MeasuredRateRx  MeasuredRateTx  dynamicBwRx  dynamicBwTx  RemoteRx  HeartbeatIntervalMs   MTU  Dynamic  Dir  Overhead  DynAbort  LocalGateway
GE6         NONE       NONE   b3-edge1   172.16.1.10      172.16.3.2        DEFAULT    44269963      ACTIVE   STABLE   STABLE             0             0       0.0       0.0     0.0     0.0           20000           20000        20000        20000     20000                  100  1500       No  OUT         0         1             0
GE3         NONE       NONE   b3-edge1  169.254.7.10     169.254.9.2        DEFAULT    46499253      ACTIVE   STABLE   STABLE             0             0       0.0       0.0     0.0     0.0           50000           50000       150000        50000    150000                  100  1500       No  OUT         0         1             0
GE4         NONE       NONE   b3-edge1  169.254.6.34     169.254.9.2        DEFAULT    41612284      ACTIVE   STABLE   STABLE             0             0       0.0       0.0     0.0     0.0           50000           50000       150000        50000    150000                  100  1500       No  OUT         0         1          

 

So the overall TX bandwidth of B1 is 50+50+20=120Mbps, overall RX bandwidth of B1 is also 50+50+20=120Mbps. Similarly, overall TX bandwidth of B3 is 170Mbps, overall RX bandwidth is also 170Mbps. Now compare the overall TX bandwidth of B1 and overall RX bandwidth of B3, obtain the lesser of the two numbers which is 120Mbps, this value times 95% is the BW Cap from B1 towards B3, denote as BWC1→3. In a similar way, compare the overall RX bandwidth of B1 and overall TX bandwidth of B3, whichever lower times 95% is the BW cap from B3 towards B1, denote as BWC3→1.

Customer can verify the edge-to-edge BW Cap by command debug.py --qos_net <peer id> <segid> stats. In above case, BWC1→3 is 120*95%=114Mbps. 

edge:B1-edge1(active):~# debug.py  --qos_net 21b655c5-27ab-46e5-be9d-5ed5f4fed306 0 stats  <-------21b655c5-27ab-46e5-be9d-5ed5f4fed306 is logID of B3.
Endpoint/Class   BW Cap (Kbps)  Weight  Kbps (10s win)  PPS (10s win)  Queued pkts  Queued bytes  Dropped pkts  Dropped bytes
DeviceCap               114000  100.00              34             48            0             0             0              0
b3-edge1                114000  100.00              12             24            0             0             0              0
  Control                    0  100.00              12             24            0             0             0              0
  Segment-0                  0  100.00               0              0            0             0             0              0
    Real/High           114000   35.00               0              0            0             0             0              0
    Real/Norm           114000   15.00               0              0            0             0             0              0
    Real/Low            114000    1.00               0              0            0             0             0              0
    Tran/High           114000   20.00               0              0            0             0             0              0
    Tran/Norm           114000    7.00               0              0            0             0             0              0
    Tran/Low            114000    1.00               0              0            0             0             0              0
    Bulk/High           114000   15.00               0              0            0             0             0              0
    Bulk/Norm           114000    5.00               0              0            0             0             0              0
    Bulk/Low            114000    1.00               0              0            0             0             0              0

 

BWC3→1 is also 120*95%=114Mbps:

edge:B3-edge1(active):~# debug.py --qos_net 19a2b706-30bc-4484-b692-a839c3e7ba90 0 stats  <-------19a2b706-30bc-4484-b692-a839c3e7ba90 is logID of B1.
Endpoint/Class   BW Cap (Kbps)  Weight  Kbps (10s win)  PPS (10s win)  Queued pkts  Queued bytes  Dropped pkts  Dropped bytes
DeviceCap               161500  100.00              32             48            0             0             0              0
b1-edge1                114000  100.00              19             31            0             0             0              0
  Control                    0  100.00              19             31            0             0             0              0
  Segment-0                  0  100.00               0              0            0             0             0              0
    Real/High           114000   35.00               0              0            0             0             0              0
    Real/Norm           114000   15.00               0              0            0             0             0              0
    Real/Low            114000    1.00               0              0            0             0             0              0
    Tran/High           114000   20.00               0              0            0             0             0              0
    Tran/Norm           114000    7.00               0              0            0             0             0              0
    Tran/Low            114000    1.00               0              0            0             0             0              0
    Bulk/High           114000   15.00               0              0            0             0             0              0
    Bulk/Norm           114000    5.00               0              0            0             0             0              0
    Bulk/Low            114000    1.00               0              0            0             0             0              0

 

When the calculated BW cap does not match the value in the debug.py --qos_net <peer id> <segid> command, customer needs to investigate further.

 

3. Upon confirm the BWC1→3 and BWC3→1, customer can calculate the final rate-limited throughput.

 Limited TX throughput=TX_RL_percentage(%)*BWC1→3

Limited RX throughput=RX_RL_percentage(%)*BWC3→1

For example, if customer wants to limit the RX file transfer speed to 10Mbps, in above case, (10Mbps/BWC3→1)*100%=(10Mbps/114Mbps)*100%=8.8%≈9%. Customer may need to configure the business policy as below:

Please note limited throughput 10Mbps is the physical layer throughput instead of application layer throughput, customer may observe lower throughput value in file transfer software.

 

 

Additional Information

SD-WAN edge name must not contain special characters or Chinese characters , otherwise debug.py --qos_net command throws error.