Keysight IXIA-C and Nokia SR Linux
Description | Keysight Ixia-c-one node connected with Nokia SR Linux |
Components | Keysight Ixia-c-one, Nokia SR Linux |
Resource requirements1 | 2 2 GB |
Topology file | ixiacone-srl.clab.yaml |
Name | ixiac01 |
Version information2 | containerlab:0.46.2 , ixia-c-one:1.6.2-13 , srlinux:23.10.1 , docker-ce:20.10.2 |
Description#
This lab consists of a Keysight Ixia-c-one node with 2 ports connected to 2 ports on a Nokia SR Linux node via two point-to-point ethernet links. Both nodes are also connected with their management interfaces to the containerlab
docker network.
Keysight Ixia-c-one is a single-container distribution of Ixia-c, a software traffic generator and protocol emulator with Open Traffic Generator (OTG) API. This example will demonstrate how test case designers can leverage Go SDK client gosnappi to create an OTG configuration and execute a test verifying IPv4 forwarding.
Deployment#
Change into the lab directory:
Deploy the lab:
Use cases#
This lab allows users to validate an IPv4 traffic forwarding scenario between Keysight Ixia-c-one and Nokia SR Linux.
IPv4 Traffic forwarding#
This lab demonstrates a simple IPv4 traffic forwarding scenario where
- Keysight Ixia-c-one with two test ports
eth1
andeth2
connected to Nokia SR Linux with portse1-1
ande1-2
respectively. - An OTG configuration applied to Ixia-c-one that emulates a router behind each test port:
r1
with IP1.1.1.1/24
behindeth1
, andr2
with IP2.2.2.1/24
behindeth2
. - The test is configured to send 100 IPv4 packets with a rate 10pps from
10.10.10.1
behindr1
to10.20.20.x
, wherex
is changed from 1 to 5. - SR Linux interfaces are configured with
1.1.1.2/24
and2.2.2.2/24
IPv4 addresses. - SR Linux is configured to forward the traffic destined for
20.20.20.0/24
to2.2.2.1
using a static route in the default network instance.
Logical IP topology of the lab is shown below:
Configuration#
During the lab deployment and test execution the following configuration is applied to the lab nodes to forward and receive traffic.
-
SR Linux
SR Linux node comes up pre-configured with the commands listed in srl.cfg file which configure IPv4 addresses on both interfaces and install a static route to forward the traffic coming from ixia-c. -
Keysight ixia-c-one
IPv4 addresses forixia-c-one
node interfaces are configured via the OTG API as part of theipv4_forwarding.go
script.
Execution#
The test case is written in Go language. To run it, Go >= 1.21 needs to be installed first.
Once installed, run the test:
Once 100 packets are sent, the test script checks that we received all the sent packets.
During the test run you will see flow metrics reported each second with the current flow data such as:
2023/12/18 11:14:12 Metrics Response:
choice: flow_metrics
flow_metrics:
- bytes_rx: "44032"
bytes_tx: "44032"
frames_rx: "86"
frames_rx_rate: 9
frames_tx: "86"
frames_tx_rate: 9
name: r1.v4.r2
transmit: started
Verification#
The test that we ran above will continuously keep checking flow metrics to ensure packet count received on rx port of ixia-c-one are as expected. If the condition is not met in 10 seconds, the test will timeout, hence indicating failure.
Upon success, last flow metrics output will indicate the latest status with transmit
set to stopped
.
2023/12/18 11:14:13 Metrics Response:
choice: flow_metrics
flow_metrics:
- bytes_rx: "51200"
bytes_tx: "51200"
frames_rx: "100"
frames_rx_rate: 9
frames_tx: "100"
frames_tx_rate: 10
name: r1.v4.r2
transmit: stopped
Cleanup#
To stop the lab, use: