Skip to content

Spirent TestCenter#

Spirent TestCenter is identified with spirent_stc kind in the topology file.

Spirent TestCenter (STC) is a containerised version of the Spirent traffic generator. It supports up to 9 test interfaces.

Managing Spirent TestCenter nodes#

Once the STC node is up in healthy state, you can connect using the STC client.

See the Client access section for more info.

For troubleshooting you can access the container shell. You cannot generate any traffic using this interface.

Use the following command:

docker exec -it <container name> sh

Interfaces#

The STC container uses the following interface mapping:

Interface Usage
admin0 Management interface
port1 - port9 Test port interfaces

A maximum of 9 test ports are supported.

Interfaces are defined in the topology file as port1-9 (inclusive), this matches the port naming you shall see in the Test Center client when reserving ports.

Client access#

As the TestCenter client runs on Windows, you need to establish connectivity between the client and the spirent_stc node.

Port forwarding#

The suggested method is to use port forwarding, which exposes the required ports from the spirent_stc node on your containerlab host system.

Sample topology#

Below is a sample topology with the port publishing on the node: my-stc.

name: port-publish
topology:
  nodes:
    my-stc:
      kind: spirent_stc
      image: stc:5.50.2906
      ports:
        - 80:80
        - 40004:40004/udp
        - 40005:40005/udp
        - 51204:51204/udp

Routing#

Another method is to establish L3 connectivity either via some sort of tunneling or installing a static route to enable the client system to reach the lab management network.

While containerlab attempts to allow external access to the management network, ensure that no firewall rules/filtering could be preventing external access.

Windows example#

The static route is typically installed for the whole containerlab management subnet with a next-hop of the containerlab host IP address.

The command prompt/cmd command to add the static route on Windows is:

route add <management subnet> MASK <dotted decimal subnet mask> <containerlab host IP>

For example, if my management subnet was 172.20.20.0/24 and my containerlab host IP is 192.168.1.200. The command would be:

route add 172.20.20.0 MASK 255.255.255.0 192.168.1.200

Host optimisations#

Note

While the below configurations on the host system may increase Spirent TestCenter, most NOSes supported by Containerlab are not designed for high throughput packet forwarding and likely implement dataplane performance limiting.

Some host optimisations are suggested to increase performance of a Spirent TestCenter.

  • All power saving (SpeedStep, C1 states, etc.) and turbo boost options should be disabled on the host system.

The following sysctls are suggested to be set on the host to improve Tx/Rx rates.

sudo sysctl -w net.core.rmem_max=67108864
sudo sysctl -w net.core.wmem_max=67108864

To make these persistent across reboots, add these to your host sysctl configuration via /etc/sysctl.conf or as a drop in .conf file under /etc/sysctl.d/:

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864