Skip to main content
Versa Networks

Troubleshoot Link Bandwidth Issues

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

To troubleshoot WAN link bandwidth issues, you can run a speed test using a Versa Operating SystemTM (VOSTM) device. Speed tests can be useful for LTE connections, where bandwidth consumption is a critical factor.

You can configure VOS devices to be a Versa speed-test client and a Versa speed-test server, and a single VOS device can function as both a Versa speed-test server and a Versa speed-test client simultaneously. Both the client and server can be a regular CPE device, or they can part of an SD-WAN topology.

After you configure a Versa server, the client can start the test by initiating a TCP-based connection toward the server, which listens on port 5201. The client generates a request ID for each request received from a user, and the user can fetch the test results from the VOS device based on the received request ID.

Note: If the VOS device is behind a firewall, port 5201 must be open.

For Releases 21.2.1 and later, you can also perform speed tests using an internet speed-test server. For more information, see Run Internet Speed Tests.

For Releases 21.2 and earlier, the speed test is performed in two stages—an upload test and a download test.

For Releases 22.1.3 and later, the speed test factors in network latency to derive the results. The speed test is performed in three stages—a ping test, an upload test, and a download test. The ping test calculates the latency of the link, and then the speed test uses this data when performing the upload and download tests. The speed test can measure bandwidth speeds up to 1 Gbps. The actual measurement depends on several factors, including in-path shapers and latency. The test uses up to 45 MB of data per upload or download in the best case to measure the bandwidth. The speed test uses 90 MB of data for a complete test.

The default forwarding class for speed-test traffic is the best-effort forwarding class (FC 15). For Releases 22.1.3 and later, you can change the default forwarding class, as described in Configure Speed-Test Common Options, below.

For the version of the speed test for Releases 22.1.3 and later, you can run this test when both the client and server are running Releases 22.1.3 or later. If the client is running Release 21.2 or earlier and the server is running Release 22.1.3 or later, the server runs the earlier version of the speed test, that is, the version without the ping test.

Configure a Versa Speed-Test Server

You can configure a Versa speed-test server using Versa Director or a REST API call.

Configure a Versa Speed-Test Server Using Versa Director

  1. In Director view:
    1. Select the Configuration tab in the top menu bar.
    2. Select Templates > Device Templates in the horizontal menu bar.
    3. Select an organization in the left menu bar.
    4. Select a post-staging template in the main pane. The view changes to Appliance view.
  2. Select the Configuration tab in the top menu bar.
  3. Select Others > System > Speed Test in the left menu bar, then select the Settings tab. The main pane displays speed test-related panes (for Releases 21.2.1 and later).

    speed-test-home1.png
  4. In the Server pane, click the edit-icon.png Edit icon to specify the routing instances to use as the speed-test server. The Edit Server screen displays.

    speed-test-edit-server.png
  5. Click the add-icon-blue.png Add icon and select a routing instance to be a speed-test server.

  6. Click OK. The Speed Test Server pane displays the routing instance. The example below shows that two routing instances are configured to be Versa speed-test servers.

    speed-test-server.png

Configure a Versa Speed-Test Server Using a REST API Call

Use this API call to enable bandwidth measurement on a remote Versa speed-test server.

Versa REST API API Type
https://ip-address:9182/versa/ncs-services/api/config/devices/device/BW-Test-Server/config/system/bw-measurement/server PUT

The following examples shows the payload of this API call:

{
    "bw-measurement": {
        "server": {
            "routing-instances": {
                "WAN2-Transport-VR"
                "WAN1-Transport-VR"
                }
            "routing-instance":"WAN1-Transport-VR"
        }
    }
}

Configure a Versa Speed-Test Client Using Versa Director

After you have configured a Versa speed-test server, you can immediately begin running speed tests using the VOS default speed test parameters, as described in Initiate a Versa Speed Test from a Versa Client, below. If needed, you can change the configured default values, as described below.

Change the Number of Packets To Queue for Transmission

By default, the transmit ring on a NIC queues 512 buffers for transmission. For a speed test, when you want to transmit a burst of packets to measure the network bandwidth, it is recommended that you increase the number of transmit buffer descriptors to 2048 if the expected bandwidth is greater than 500 Mbps.

Note: If you change the default number of packets in the NIC's transmission queue, you must restart Versa services.

To change the number of packets in the NIC's transmission queue, change the TX descriptor value:

  1. In Director view:
    1. Select the Configuration tab in the top menu bar.
    2. Select Templates > Device Templates in the horizontal menu bar.
    3. Select an organization in the left menu bar.
    4. Select a post-staging template in the main pane. The view changes to Appliance view.
  2. Select the Configuration tab in the top menu bar.
  3. Select Others > System > Configuration > Configuration in the left menu bar. The main pane displays configuration-related panes.

    configuration-service-option.png
     
  4. In the Service Options pane, click the Edit icon. The Edit Service Options popup window displays.

    edit-service-options.png
     
  5. In the Number of TX Descriptors field, enter 2048.
  6. Click OK.
  7. Restart Versa services.

Change the Speed-Test Limit Value and Background Traffic Threshold

The default speed-test limit value is 5. The default background traffic threshold value is 15.

To change these values:

  1. In Director view:
    1. Select the Configuration tab in the top menu bar.
    2. Select Templates > Device Templates in the horizontal menu bar.
    3. Select an organization in the left menu bar.
    4. Select a post-staging template in the main pane. The view changes to Appliance view.
  2. Select the Configuration tab in the top menu bar.
  3. Select Others > System > Speed Test in the left menu bar, and then select the Settings tab. The main pane displays panes related to speed-test settings (for Releases 21.2.1 and later).

    speed-test-home1.png
  4. In the Client Options pane, click the edit-icon.png Edit icon. In the Edit Client Options popup window, enter information for the following fields.

    speed-test-edit-client-options.png
     
    Field Description
    Background Traffic Threshold

    Enter the percentage of background traffic below which a speed test can be initiated. Use this option to restrict speed tests when a link is busy. For example, with the default background traffic threshold of 15%, a speed test can be initiated initiated when interface utilization falls below 85% (100 – 15). If interface utilization is above 85% and hence is considered to be busy, a speed test cannot initiated.

    If you configure an interface's uplink and downlink bandwidths, these values are used to derive the interface utilization percentage instead of the port speed. For information about configuring the interface bandwidth, see Configure Interfaces.

    Speed test results are marked as being either within or outside of the threshold. For example, with a default background traffic threshold of 15%, for a 1 Gbps port, any speed above 850 Mbps is considered to be within the bandwidth traffic threshold, and any speed below 850 Mbps is considered to be outside the bandwidth traffic threshold.

    Range: 1 through 100%

    Default: 15%

    Test Limit

    Enter the number of times per day to run a speed test when the speed test is successful, that is, when it is within the bandwidth traffic threshold. Use this option to control the test burden on the VOS device by limiting the number of tests a user can perform when troubleshooting an issue.

    Range: 1 through 200

    Default: 5

    Monitored Bandwidth Usage

    (For Releases 21.2.1 and later.) Select Enabled to use the monitored bandwidth for traffic-steering purposes. For more information, see Configure SD-WAN Traffic Steering.

    Default: Disabled

  5. Click OK.

Configure Speed-Test Common Options

For Releases 22.1.3 and later.

To configure the TCP congestion control algorithm and the forwarding class to use for speed tests:

  1. In Director view:
    1. Select the Configuration tab in the top menu bar.
    2. Select Templates > Device Templates in the horizontal menu bar.
    3. Select an organization in the left menu bar.
    4. Select a post-staging template in the main pane. The view changes to Appliance view.
  2. Select the Configuration tab in the top menu bar.
  3. Select Others > System > Speed Test in the left menu bar, and then select the Settings tab. The main pane displays panes related to speed-test settings.

    speed-test-home1.png
  4. In the Common Options pane, click the edit-icon.png Edit icon. In the Edit Common Options popup window, enter information for the following fields.

    speed-test-edit-common-options.png
     
    Field Description
    TCP Congestion Control Algorithm

    Select a TCP congestion control algorithm. By default, the TCP congestion control algorithm on the client and server nodes is CUBIC. If you want to change the default algorithm, you must change it on both client and server nodes.

    • BBR—Bottleneck bandwidth and round-trip propagation time
    • CUBIC—This is the default.
    • Hybla
    • New Reno

    Default: CUBIC

    Forwarding Class Select the forwarding class for the speed-test traffic. The default forwarding class for speed-test traffic is the best-effort forwarding class (FC 15).
  5. Click OK.

Initiate a Versa Speed Test from a Versa Client

You can initiate a Versa speed test after completing the basic configuration of the Versa VOS device. Ensure that you connect the VOS device's interface or interfaces to the network. The interfaces must be in the same routing instance and they must be for a single tenant.

Initiate a Versa Speed Test from a Versa Client Using Versa Director

You can configure and deploy a Versa speed test-client in a non-SD-WAN (DIA) or an SD-WAN deployment. How you initiate the speed test depends on the deployment:

  • For a DIA deployment, you initiate the speed test in Appliance view by selecting the Monitor > Speed Test tab and then specifying the IP address or fully qualified domain name (FQDN) of the speed-test server.
  • For an SD-WAN VPN deployment, you can initiate the speed test as you would for a DIA deployment, or you can initiate it, also in Appliance view, by selecting a CPE WAN interface in the Monitor > Summary tab.

Note: To initiate a speed test from a Versa SD-WAN branch device, select only WAN interfaces. Do not select a LAN interface.

Initiate a Versa Speed Test from a Versa Client in a DIA or an SD-WAN VPN Deployment

  1. In Director view:
    1. Select the Administration tab in the top menu bar.
    2. Select Appliances in the left menu bar.
    3. Select the device in the main pane. The view changes to Appliance view.
  2. Select the Monitor tab.
  3. Select an organization in the left menu bar, and then select the Tools tab in the horizontal menu bar.

    monitor-devices-tools.png
  4. Click Speed Test. In the Speed Test pane, select the Versa tab, and then enter information for the following fields.

    monitor-devices-tools-speed-test.png
     
    Field Description
    Remote IP Address/FQDN Enter the IP address or fully qualified domain name of the remote device.
    Network Select a network to use for the speed test from the drop-down list.
  5. Click Test Speed to initiate the speed test.

Initiate a Versa Speed Test from a Versa Client in an SD-WAN VPN-Only Deployment

  1. In Director view:
    1. Select the Administration tab in the top menu bar.
    2. Select Appliances in the left menu bar.
    3. Select a server in the main pane. The view changes to Appliance view.
  2. Select the Monitor tab in the top menu bar, and then select an organization in the left menu bar. The main pane displays monitor-related information for the organization.
  3. Select the Summary tab.

    monitor-summaery-cpe-interface.png
     
  4. In the CPE Interfaces table, click Measure for the interface to use for the speed test. The Bandwidth Measurement popup window displays.

    monitor-bandwidth-measurement.png
  5. In the Remote Destination field, select the remote destination.
  6. Click Request to initiate the speed test. The following screenshot shows part of the Results pane from a completed speed test.

    Speed-test-from-client-GUI-1-cropped.png

Note: The measurement test that runs when you click Measure can measure and report bandwidths up to 990 Mbps. If an interface's bandwidth is 1 Gbps or more, the bandwidth value shown is 990 Mbps.

Initiate a Speed Test from a Versa Client Using a REST API Call

To request a speed test from a Versa client in a DIA or an SD-WAN VPN deployment, use the following API call:

REST API Call API Type

https://ip-address:9182/versa/ncs-services/bw-measurement/_operations/client?appName=Desk-Branch1

POST

This API call has the following payload:

{
    "client": {
        "interface": "vni-0/0.0",
        "remote-destination": "10.10.10.01",
        "routing-instance": "WAN_1-Transport-VR",
        "executed-by": "Administrator",
        "executed-from": "10.10.10.01",
        "executed-at": "2018-04-06T09:44:58.016Z",
        "mechanism": "customer-initiated"
    }
}

The following output shows the responses you might receive when you run a speed test from a Versa client:

Note: The request-id in the payload can be any nonzero value.

{
    "output": {
        "request-status": "test-invalid",
        "request-id": 0
    }
    "output": {
        "request-status": "test-already-running",
        "request-id": 2
    }
    "output": {
        "request-status": "test-failed",
        "request-id": 3
    }
    "output": {
        "request-status": "device-busy",
        "request-id": 4
    }
    "output": {
        "request-status": "downlink-busy",
        "request-id": 5
    }
    "output": {
        "request-status": "uplink-busy",
        "request-id": 6
    }
    "output": {
        "request-status": "test-initiated",
        "request-id": 7
    }
    "output": {
        "request-status": "cap-limit-reached",
        "request-id": 8
    }
}

To poll the Versa client for a status request, use the following API cal:

REST API Call API Type
https://ip-address:9182/versa/ncs-services/api/operational/devices/ device/Controller1/live-status/system/bw-measurement/status/14 GET

This API call returns the following response:

{ 
   "system:status":{ 
      "request-id":"1",
      "server":"10.10.11.11",
      "uplink":{ 
         "measured-bandwidth":"956.98 Mbps",
         "background-traffic":"0.41 Mbps",
         "duration":"2142 msec"
      
},
      "downlink":{ 
         "measured-bandwidth":"941.47 Mbps",
         "background-traffic":"0.42 Mbps",
         "duration":"2139 msec"
      
},
      "test-latency":"1.00 msec",
      "bytes-sent":"13622028",
      "bytes-received":"13622001",
      "interface":"vni-0/2.0",
      "device-serial":"XXXX17090XXXX",
      "executed-at":"2020-02-05T22:00:48.695+00:00",
      "executed-by":"Administrator",
      "executed-from":"10.10.10.10",
      "mechanism":"customer-initiated",
      "result":"completed-within-threshold"  
}

The following table describes the result codes reported in the speed test status.

Value Result Code
1

"result": "uplink-in-progress"

2

"result": "downlink-in-progress"

3

"result": "completed-within-threshold"

4

"result": "completed-outside-threshold"

9

"result": "failed-internal-error"

10

"result": "failed-server-busy"

11

"result": "failed-timeout"

12

"result": "failed-background-traffic-exceeded"

Initiate a Versa Speed Test from an SD-WAN Branch Using a REST API Call

To request a speed test on a Versa client from an SD-WAN branch, use the following API call:

REST API Call API Type

https://ip-address:9182/api/config/devices/device/sd-wan-branch-name/config/orgs/org/organization-name/bw-measurement

POST

This API has the following payload:

{
  "bw-measurement":{
    "local-wan-interface":"vni-0/0.0",
    "remote-destination":"SPEED-TEST-SERVER",
    "remote-circuit-name":"WAN3"
  }
}

To poll the Versa client for a status request, use the following API call:

https://ip-address:9182/vnms/dashboard/appliance/sd-wan-branch-name/live?uuid=
3f90c42b-368d-4798-9320-80318aa41fed&command=orgs/org/Provider/sd-wan/bw-measurement/status?deep

This API call returns the following response:

{
  "collection": {
    "sdwan:status": [
      {
        "site-name": "SPEED-TEST-SERVER",
        "path-bw-status": [
          {
            "path-handle": 6820096,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/0.0",
            "local-wan-ckt": "WAN1",
            "remote-wan-ckt": "WAN1",
            "uplink-bw": "524.96 Mbps",
            "downlink-bw": "563.38 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "1.42",
            "jitter": "1.57",
            "test-status": "failed-background-traffic-exceeded"
          },
          {
            "path-handle": 6820608,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/0.0",
            "local-wan-ckt": "WAN1",
            "remote-wan-ckt": "WAN3",
            "uplink-bw": "0.00 Mbps",
            "downlink-bw": "0.00 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "0.0",
            "jitter": "0.0",
            "test-status": "uplink-in-progress"
          },
          {
            "path-handle": 6824448,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/1.0",
            "local-wan-ckt": "WAN2",
            "remote-wan-ckt": "WAN2",
            "uplink-bw": "0.00 Mbps",
            "downlink-bw": "0.00 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "0.0",
            "jitter": "0.0",
            "test-status": "not-started"
          },
          {
            "path-handle": 6828288,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/3.0",
            "local-wan-ckt": "WAN3",
            "remote-wan-ckt": "WAN1",
            "uplink-bw": "0.00 Mbps",
            "downlink-bw": "0.00 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "0.0",
            "jitter": "0.0",
            "test-status": "not-started"
          },
          {
            "path-handle": 6828800,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/3.0",
            "local-wan-ckt": "WAN3",
            "remote-wan-ckt": "WAN3",
            "uplink-bw": "0.00 Mbps",
            "downlink-bw": "0.00 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "0.0",
            "jitter": "0.0",
            "test-status": "not-started"
          },
          {
            "path-handle": 6837504,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/0.0",
            "local-wan-ckt": "WAN1-v6",
            "remote-wan-ckt": "WAN1-v6",
            "uplink-bw": "0.00 Mbps",
            "downlink-bw": "0.00 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "0.0",
            "jitter": "0.0",
            "test-status": "not-started"
          },
          {
            "path-handle": 6841856,
            "local-site-name": "ST-SD-WAN-Branch1",
            "remote-site-name": "SPEED-TEST-SERVER",
            "local-wan-intf": "vni-0/1.0",
            "local-wan-ckt": "WAN2-v6",
            "remote-wan-ckt": "WAN2-v6",
            "uplink-bw": "0.00 Mbps",
            "downlink-bw": "0.00 Mbps",
            "uplink-background-rate": "400 Mbps",
            "downlink-background-rate":"400 Mbps",
            "latency-msec": "0.0",
            "jitter": "0.0",
            "test-status": "not-started"
          }
        ]
      },
       
  }
}

Supported Software Information

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

  • In Release 21.2.1, you can configure internet speed tests over DIA links; you can monitor internet speed tests; adds the Speed Test screen.
  • In Release 22.1.3, ping test is also performed in the speed test process; adds support for configuring internet speed test Common Options.