This section gives an overview of the stand-alone testbed topology where SONiC DUT is directly connected with Keysight’s protocol emulator and traffic generator (IxNetwork).
Based on test need there may be multiple topologies possible as shown below :
Keysight IxNetwork is used as the network tester to emulate protocol sessions eg. OSPF, BGP, LACP etc. and send data traffic with various user defined traffic profiles at line rate. Based on test need this can support line cards of varying speed ranging from 1G to 400G. It also supports vlan separated logical interfaces over each physical port.
The IxNetwork API Server docker is installed in the Testbed server along with sonic-mgmt docker. It provides API server, that is used to configure the Traffic Generator (IxNetwork) using restPy APIs. It is capable of offering multiple sessions of IxNetwork API server. Each session runs independent of each other and configures IxNetwork.
- IxNetwork API server is connected to IxNetwork via the management port.
- IxNetwork test ports are directly connected to single or multiple DUTs.
-
Download IxNetwork Web Edition (Docker deployment) from here
-
Copy the tar.bz2 file on the testbed server.
-
Make sure the interface has promiscuous mode enabled
ifconfig ens160 promisc
- Decompress the file (it may take a few minutes):
tar xvjf <path_to_tar_file>
- Load the image to docker:
docker load -i Ixia_IxNetworkWeb_Docker_<version>.tar
-
Loaded image :
ixnetworkweb_<version>_image
-
Create the macvlan bridge to be used by IxNetwork Web Edition:
docker network create -d macvlan -o parent=ens160 --subnet=192.168.x.0/24 --gateway=192.168.x.254 <bridge_name>
(NOTE: Use your subnet, prefix length and gateway IP address.)
- Verify bridge got created properly:
docker network ls
docker network inspect IxNetVlanMac
- Deploy the IxNetwork Web Edition container using the following command ixnetworkweb_<version>_image should be as shown in step 2 above):
docker run --net <bridge_name> \
--ip <container ip> \
--hostname <hostname> \
--name <container name> \
--privileged \
--restart=always \
--cap-add=SYS_ADMIN \
--cap-add=SYS_TIME \
--cap-add=NET_ADMIN \
--cap-add=SYS_PTRACE \
-i -d \
-v /sys/fs/cgroup:/sys/fs/cgroup \
-v /var/crash/=/var/crash \
-v /opt/container/one/configs:/root/.local/share/Ixia/sdmStreamManager/common \
-v /opt/container/one/results:/root/.local/share/Ixia/IxNetwork/data/result \
-v /opt/container/one/settings:/root/.local/share/IXIA/IxNetwork.Globals \
--tmpfs /run \
ixnetworkweb_<version>_image
Note : The folders within /opt/container/one/ should to be created with read and write permission prior docker run.
- Launch IxNetworkWeb using browser
https://container ip