diff --git a/conformance b/conformance index 1f81ecb8..518c873d 160000 --- a/conformance +++ b/conformance @@ -1 +1 @@ -Subproject commit 1f81ecb833293f4c0d15815a07164ed038613f00 +Subproject commit 518c873df93081cdc6b71c7abfbe2d121e8427fa diff --git a/deployments/k8s/components/images/kustomization.yaml b/deployments/k8s/components/images/kustomization.yaml index 73fe048c..880710a8 100644 --- a/deployments/k8s/components/images/kustomization.yaml +++ b/deployments/k8s/components/images/kustomization.yaml @@ -1,14 +1,14 @@ apiVersion: kustomize.config.k8s.io/v1alpha1 kind: Component -# Release: https://github.com/open-traffic-generator/ixia-c/releases/tag/v1.5.0-1 +# Release: https://github.com/open-traffic-generator/ixia-c/releases/tag/v1.5.1-3 images: - name: keng-controller newName: ghcr.io/open-traffic-generator/keng-controller - newTag: "1.5.0-1" + newTag: "1.5.1-3" - name: otg-gnmi-server newName: ghcr.io/open-traffic-generator/otg-gnmi-server - newTag: "1.14.1" + newTag: "1.14.2" - name: ixia-c-traffic-engine newName: ghcr.io/open-traffic-generator/ixia-c-traffic-engine - newTag: "1.8.0.7" + newTag: "1.8.0.12" diff --git a/deployments/k8s/network-emulation/go.mod b/deployments/k8s/network-emulation/go.mod index 968265bb..a431dd83 100644 --- a/deployments/k8s/network-emulation/go.mod +++ b/deployments/k8s/network-emulation/go.mod @@ -2,7 +2,7 @@ module ipfwd go 1.19 -require github.com/open-traffic-generator/snappi/gosnappi v1.5.0 +require github.com/open-traffic-generator/snappi/gosnappi v1.5.1 require ( github.com/Masterminds/semver/v3 v3.2.1 // indirect diff --git a/deployments/k8s/network-emulation/pods.yaml b/deployments/k8s/network-emulation/pods.yaml index 773bc623..1ca19251 100644 --- a/deployments/k8s/network-emulation/pods.yaml +++ b/deployments/k8s/network-emulation/pods.yaml @@ -28,7 +28,7 @@ spec: - args: - --accept-eula - --debug - image: ghcr.io/open-traffic-generator/keng-controller:1.5.0-1 + image: ghcr.io/open-traffic-generator/keng-controller:1.5.1-3 imagePullPolicy: IfNotPresent name: keng-controller volumeMounts: @@ -63,7 +63,7 @@ spec: value: "5555" - name: ARG_CORE_LIST value: 1 1 1 - image: ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.7 + image: ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.12 imagePullPolicy: IfNotPresent name: ixia-c-port1-traffic-engine securityContext: @@ -71,7 +71,7 @@ spec: - env: - name: INTF_LIST value: eth1 - image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.382 + image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.383 imagePullPolicy: IfNotPresent name: ixia-c-port1-protocol-engine securityContext: @@ -99,7 +99,7 @@ spec: value: "5555" - name: ARG_CORE_LIST value: 1 1 1 - image: ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.7 + image: ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.12 imagePullPolicy: IfNotPresent name: ixia-c-port2-traffic-engine securityContext: @@ -107,7 +107,7 @@ spec: - env: - name: INTF_LIST value: eth2 - image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.382 + image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.383 imagePullPolicy: IfNotPresent name: ixia-c-port2-protocol-engine securityContext: diff --git a/deployments/k8s/network-emulation/readme.md b/deployments/k8s/network-emulation/readme.md index 3281d6a3..60dca052 100644 --- a/deployments/k8s/network-emulation/readme.md +++ b/deployments/k8s/network-emulation/readme.md @@ -67,9 +67,9 @@ To achieve this, we'll be using [Meshnet CNI](https://github.com/networkop/meshn docker login ghcr.io # download ixia-c images - docker pull ghcr.io/open-traffic-generator/keng-controller:1.5.0-1 - docker pull ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.7 - docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.382 + docker pull ghcr.io/open-traffic-generator/keng-controller:1.5.1-3 + docker pull ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.12 + docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.383 # download DUT image docker pull ubuntu:22.04 @@ -80,9 +80,9 @@ To achieve this, we'll be using [Meshnet CNI](https://github.com/networkop/meshn docker pull networkop/init-wait:latest # push images to nodes - kind load docker-image ghcr.io/open-traffic-generator/keng-controller:1.5.0-1 - kind load docker-image ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.7 - kind load docker-image ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.382 + kind load docker-image ghcr.io/open-traffic-generator/keng-controller:1.5.1-3 + kind load docker-image ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.12 + kind load docker-image ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.383 kind load docker-image ubuntu:22.04 kind load docker-image networkop/meshnet:latest kind load docker-image networkop/init-wait:latest diff --git a/docs/deployments-kne.md b/docs/deployments-kne.md index 9b353d92..1dfe4e76 100644 --- a/docs/deployments-kne.md +++ b/docs/deployments-kne.md @@ -58,32 +58,32 @@ Following are the recommended resources for a basic use-case. data: versions: | { - "release": "1.5.0-1", + "release": "1.5.1-3", "images": [ { "name": "controller", "path": "ghcr.io/open-traffic-generator/keng-controller", - "tag": "1.5.0-1" + "tag": "1.5.1-3" }, { "name": "gnmi-server", "path": "ghcr.io/open-traffic-generator/otg-gnmi-server", - "tag": "1.14.1" + "tag": "1.14.2" }, { "name": "traffic-engine", "path": "ghcr.io/open-traffic-generator/ixia-c-traffic-engine", - "tag": "1.8.0.7" + "tag": "1.8.0.12" }, { "name": "protocol-engine", "path": "ghcr.io/open-traffic-generator/ixia-c-protocol-engine", - "tag": "1.00.0.382" + "tag": "1.00.0.383" }, { "name": "ixhw-server", "path": "ghcr.io/open-traffic-generator/keng-layer23-hw-server", - "tag": "1.5.0-1" + "tag": "1.5.1-4" } ] } @@ -100,12 +100,12 @@ Following are the recommended resources for a basic use-case. data: versions: | { - "release": "1.5.0-1", + "release": "1.5.1-3", "images": [ { "name": "controller", "path": "ghcr.io/open-traffic-generator/keng-controller", - "tag": "1.5.0-1", + "tag": "1.5.1-3", "env": { "LICENSE_SERVERS": "ip/hostname of license server" } @@ -113,22 +113,22 @@ Following are the recommended resources for a basic use-case. { "name": "gnmi-server", "path": "ghcr.io/open-traffic-generator/otg-gnmi-server", - "tag": "1.14.1" + "tag": "1.14.2" }, { "name": "traffic-engine", "path": "ghcr.io/open-traffic-generator/ixia-c-traffic-engine", - "tag": "1.8.0.7" + "tag": "1.8.0.12" }, { "name": "protocol-engine", "path": "ghcr.io/open-traffic-generator/ixia-c-protocol-engine", - "tag": "1.00.0.382" + "tag": "1.00.0.383" }, { "name": "ixhw-server", "path": "ghcr.io/open-traffic-generator/keng-layer23-hw-server", - "tag": "1.5.0-1" + "tag": "1.5.1-4" } ] } @@ -148,7 +148,7 @@ Following are the recommended resources for a basic use-case. nodes: - name: otg vendor: KEYSIGHT - version: 1.5.0-1 + version: 1.5.1-3 services: 8443: name: https diff --git a/docs/developer/hello-snappi.md b/docs/developer/hello-snappi.md index ea082512..d0c83d5d 100644 --- a/docs/developer/hello-snappi.md +++ b/docs/developer/hello-snappi.md @@ -24,7 +24,7 @@ After the set up is completed, install the python packages: * [dpkt](https://pypi.org/project/dpkt/) - for processing `.pcap` files. ```sh -python -m pip install --upgrade snappi==1.5.0 dpkt +python -m pip install --upgrade snappi==1.5.1 dpkt ``` ## Create the API Handle diff --git a/docs/news.md b/docs/news.md index bf6f214b..4c9c248b 100644 --- a/docs/news.md +++ b/docs/news.md @@ -1,5 +1,9 @@ # News +* **1st June, 2024**: Ixia-c version 1.5.1 (build 3) released. This conforms to **[v1.5.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.5.1/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. + + * This build includes new features. [Read more](releases.md) + * **23rd May, 2024**: Ixia-c version 1.5.0 (build 1) released. This conforms to **[v1.5.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.5.0/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. * This build includes bug fixes. [Read more](releases.md) diff --git a/docs/releases.md b/docs/releases.md index d64b5ab5..4b54352e 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1,6 +1,97 @@ # Ixia-c Release Notes and Version Compatibility -## Release v1.5.0-1 (Latest) +## Release v1.5.1-3 (Latest) +> 1st June, 2024 + +#### Build Details + +| Component | Version | +|-------------------------------|---------------| +| Open Traffic Generator API | [1.5.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.5.0/artifacts/openapi.yaml) | +| snappi | [1.5.1](https://pypi.org/project/snappi/1.5.0) | +| gosnappi | [1.5.1](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v1.5.0) | +| keng-controller | [1.5.1-3](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-controller) | +| ixia-c-traffic-engine | [1.8.0.12](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-traffic-engine) | +| keng-app-usage-reporter | [0.0.1-52](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-app-usage-reporter) | +| ixia-c-protocol-engine | [1.00.0.383](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-protocol-engine) | +| keng-layer23-hw-server | [1.5.1-4](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-layer23-hw-server) | +| keng-operator | [0.3.29](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-operator) | +| otg-gnmi-server | [1.14.2](https://github.com/orgs/open-traffic-generator/packages/container/package/otg-gnmi-server) | +| ixia-c-one | [1.5.1-3](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | +| UHD400 | [1.2.8](https://downloads.ixiacom.com/support/downloads_and_updates/public/UHD400/1.2/1.2.8/artifacts.tar) | + + +# Release Features(s) +* Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv4 Client and Server in control plane. [details](https://github.com/open-traffic-generator/models/pull/371) + - User will be the able to configure DHCPv4 Client and Server by the following code snippet. More comprehensive [B2B example](https://github.com/open-traffic-generator/featureprofiles/blob/dev-dhcp/feature/dhcp/dhcpv4_client_server_b2b_test.go) + ```go + // Configure a DHCP Client + dhcpclient := d1Eth1.Dhcpv4Interfaces().Add(). + SetName("p1d1dhcpv41") + + dhcpclient.FirstServer() + dhcpclient.ParametersRequestList(). + SetSubnetMask(true). + SetRouter(true). + SetRenewalTimer(true) + + // Configure a DHCP Server + d2Dhcpv4Server := d2.DhcpServer().Ipv4Interfaces().Add(). + SetName("p2d1dhcpv4server") + + d2Dhcpv4Server.SetIpv4Name("p2d1ipv4").AddressPools(). + Add().SetName("pool1"). + SetLeaseTime(3600). + SetStartAddress("100.1.100.1"). + SetStep(1). + SetCount(1). + SetPrefixLength(16).Options().SetRouterAddress("100.1.0.1").SetEchoRelayWithTlv82(true) + ``` + +* Ixia Chassis & Appliances(Novus, AresOne): gNMI support added to fetch DHCPv4 Client and Server statistics. + - [DHCPv4 Client](https://github.com/open-traffic-generator/models-yang/blob/main/artifacts/open-traffic-generator-dhcpv4client.txt) + + ```gNMI + # Combined metrics and states information + dhcpv4-clients/dhcpv4-client[name=clientName]/state + + # Metrics information + dhcpv4-clients/dhcpv4-client[name=clientName]/state/counters + + # States information + dhcpv4-clients/dhcpv4-client[name=clientName]/state/interface + ``` + - [DHCPv4 Server](https://github.com/open-traffic-generator/models-yang/blob/main/artifacts/open-traffic-generator-dhcpv4server.txt) + + ```gNMI + # Combined metrics and states information + dhcpv4-servers/dhcpv4-servers[name=serverName]/state + + # Metrics information + dhcpv4-servers/dhcpv4-servers[name=serverName]/state/counters + + # States information + dhcpv4-servers/dhcpv4-servers[name=serverName]/state/leases (For now it will return empty responses.) + ``` + Note: Support for `GetStates`/`dhcpv4-servers/dhcpv4-servers[name=serverName]/state/leases` of DHCP Server will be provided in subsequent release. + +### Bug Fix(s) +* UHD400: An issue has been fixed where, Despite proper ARP resolution, packets of `flows` of type `device` might not get forwarded by the DUT, resulting in 0 `rx` statistics. + This issue is visible for UHD400/ixia-c releases up to `v1.5.0-1`. + + +#### Known Issues +* Ixia Chassis & Appliances(Novus, AresOne): `set_control_state.protocol.all.start` can get stuck till the time all DHPCv4 clients receive the leased IPv4 addresses from the DHCPv4 server/relay agent. This may result in getting `"context deadline exceeded"` error in the test program. +* Ixia Chassis & Appliances(Novus, AresOne): If `keng-layer23-hw-server` version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. +* UHD400: Packets will not be transmitted if `flows[i].rate.pps` is less than 50. +* UHD400: `values` for fields in flow packet headers can be created with maximum length of 1000 values. +* Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down. +* Ixia-C: Supported value for `flows[i].metrics.latency.mode` is `cut_through`. +* Ixia-C: The metric `loss` in flow metrics is currently not supported. +* Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets. + + +## Release v1.5.0-1 > 23rd May, 2024 #### Build Details diff --git a/docs/tests-chassis-app.md b/docs/tests-chassis-app.md index f210dcab..90a4d5a1 100644 --- a/docs/tests-chassis-app.md +++ b/docs/tests-chassis-app.md @@ -75,7 +75,7 @@ The following procedure shows an example of how to deploy using Docker Compose. ``` services: keng-controller: - image: ghcr.io/open-traffic-generator/keng-controller:1.5.0-1 + image: ghcr.io/open-traffic-generator/keng-controller:1.5.1-3 restart: always depends_on: keng-layer23-hw-server: @@ -94,7 +94,7 @@ logging: max-file: "10" mode: "non-blocking" keng-layer23-hw-server: - image: ghcr.io/open-traffic-generator/keng-layer23-hw-server:1.5.0-1 + image: ghcr.io/open-traffic-generator/keng-layer23-hw-server:1.5.1-4 restart: always command: - "dotnet" @@ -109,7 +109,7 @@ logging: max-file: "10" mode: "non-blocking" otg-gnmi-server: - image: ghcr.io/open-traffic-generator/otg-gnmi-server:1.14.1 + image: ghcr.io/open-traffic-generator/otg-gnmi-server:1.14.2 restart: always depends_on: keng-controller: diff --git a/notes.md b/notes.md new file mode 100644 index 00000000..5a6c8693 --- /dev/null +++ b/notes.md @@ -0,0 +1,86 @@ +#### Build Details + +| Component | Version | +|-------------------------------|---------------| +| Open Traffic Generator API | [1.5.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.5.0/artifacts/openapi.yaml) | +| snappi | [1.5.1](https://pypi.org/project/snappi/1.5.0) | +| gosnappi | [1.5.1](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v1.5.0) | +| keng-controller | [1.5.1-3](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-controller) | +| ixia-c-traffic-engine | [1.8.0.12](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-traffic-engine) | +| keng-app-usage-reporter | [0.0.1-52](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-app-usage-reporter) | +| ixia-c-protocol-engine | [1.00.0.383](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-protocol-engine) | +| keng-layer23-hw-server | [1.5.1-4](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-layer23-hw-server) | +| keng-operator | [0.3.29](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-operator) | +| otg-gnmi-server | [1.14.2](https://github.com/orgs/open-traffic-generator/packages/container/package/otg-gnmi-server) | +| ixia-c-one | [1.5.1-3](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | +| UHD400 | [1.2.8](https://downloads.ixiacom.com/support/downloads_and_updates/public/UHD400/1.2/1.2.8/artifacts.tar) | + + +# Release Features(s) +* Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv4 Client and Server in control plane. [details](https://github.com/open-traffic-generator/models/pull/371) + - User will be the able to configure DHCPv4 Client and Server by the following code snippet. More comprehensive [B2B example](https://github.com/open-traffic-generator/featureprofiles/blob/dev-dhcp/feature/dhcp/dhcpv4_client_server_b2b_test.go) + ```go + // Configure a DHCP Client + dhcpclient := d1Eth1.Dhcpv4Interfaces().Add(). + SetName("p1d1dhcpv41") + + dhcpclient.FirstServer() + dhcpclient.ParametersRequestList(). + SetSubnetMask(true). + SetRouter(true). + SetRenewalTimer(true) + + // Configure a DHCP Server + d2Dhcpv4Server := d2.DhcpServer().Ipv4Interfaces().Add(). + SetName("p2d1dhcpv4server") + + d2Dhcpv4Server.SetIpv4Name("p2d1ipv4").AddressPools(). + Add().SetName("pool1"). + SetLeaseTime(3600). + SetStartAddress("100.1.100.1"). + SetStep(1). + SetCount(1). + SetPrefixLength(16).Options().SetRouterAddress("100.1.0.1").SetEchoRelayWithTlv82(true) + ``` + +* Ixia Chassis & Appliances(Novus, AresOne): gNMI support added to fetch DHCPv4 Client and Server statistics. + - [DHCPv4 Client](https://github.com/open-traffic-generator/models-yang/blob/main/artifacts/open-traffic-generator-dhcpv4client.txt) + + ```gNMI + # Combined metrics and states information + dhcpv4-clients/dhcpv4-client[name=clientName]/state + + # Metrics information + dhcpv4-clients/dhcpv4-client[name=clientName]/state/counters + + # States information + dhcpv4-clients/dhcpv4-client[name=clientName]/state/interface + ``` + - [DHCPv4 Server](https://github.com/open-traffic-generator/models-yang/blob/main/artifacts/open-traffic-generator-dhcpv4server.txt) + + ```gNMI + # Combined metrics and states information + dhcpv4-servers/dhcpv4-servers[name=serverName]/state + + # Metrics information + dhcpv4-servers/dhcpv4-servers[name=serverName]/state/counters + + # States information + dhcpv4-servers/dhcpv4-servers[name=serverName]/state/leases (For now it will return empty responses.) + ``` + Note: Support for `GetStates`/`dhcpv4-servers/dhcpv4-servers[name=serverName]/state/leases` of DHCP Server will be provided in subsequent release. + +### Bug Fix(s) +* UHD400: An issue has been fixed where, Despite proper ARP resolution, packets of `flows` of type `device` might not get forwarded by the DUT, resulting in 0 `rx` statistics. + This issue is visible for UHD400/ixia-c releases up to `v1.5.0-1`. + + +#### Known Issues +* Ixia Chassis & Appliances(Novus, AresOne): `set_control_state.protocol.all.start` can get stuck till the time all DHPCv4 clients receive the leased IPv4 addresses from the DHCPv4 server/relay agent. This may result in getting `"context deadline exceeded"` error in the test program. +* Ixia Chassis & Appliances(Novus, AresOne): If `keng-layer23-hw-server` version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. +* UHD400: Packets will not be transmitted if `flows[i].rate.pps` is less than 50. +* UHD400: `values` for fields in flow packet headers can be created with maximum length of 1000 values. +* Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down. +* Ixia-C: Supported value for `flows[i].metrics.latency.mode` is `cut_through`. +* Ixia-C: The metric `loss` in flow metrics is currently not supported. +* Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets. \ No newline at end of file diff --git a/readme.md b/readme.md index 5c5c6498..2f889d38 100644 --- a/readme.md +++ b/readme.md @@ -9,9 +9,9 @@
- - - + + + @@ -83,7 +83,7 @@ cd conformance #### 3. Optionally, run test using [curl](https://curl.se/) We can also pass equivalent **JSON configuration** directly to **controller**, just by using **curl**. -The description of each node in the configuration is detailed in self-updating [online documentation](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.5.0/artifacts/openapi.yaml). +The description of each node in the configuration is detailed in self-updating [online documentation](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.5.1/artifacts/openapi.yaml). ```bash