diff --git a/conformance b/conformance index e6a44b57..1f1ab487 160000 --- a/conformance +++ b/conformance @@ -1 +1 @@ -Subproject commit e6a44b573fdc9a977055190039b6350802d29c26 +Subproject commit 1f1ab487958e52815eec1beb0432ed39ae0cf0ae diff --git a/deployments/k8s/components/images/kustomization.yaml b/deployments/k8s/components/images/kustomization.yaml index ac757c84..ec280ae9 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.0.0-7 +# Release: https://github.com/open-traffic-generator/ixia-c/releases/tag/v1.0.0-92 images: - name: keng-controller newName: ghcr.io/open-traffic-generator/keng-controller - newTag: "1.0.0-7" + newTag: "1.0.0-92" - name: otg-gnmi-server newName: ghcr.io/open-traffic-generator/otg-gnmi-server - newTag: "1.13.8" + newTag: "1.13.9" - name: ixia-c-traffic-engine newName: ghcr.io/open-traffic-generator/ixia-c-traffic-engine newTag: "1.6.0.109" diff --git a/deployments/k8s/network-emulation/go.mod b/deployments/k8s/network-emulation/go.mod index 731506ba..75db5819 100644 --- a/deployments/k8s/network-emulation/go.mod +++ b/deployments/k8s/network-emulation/go.mod @@ -2,7 +2,7 @@ module ipfwd go 1.20 -require github.com/open-traffic-generator/snappi/gosnappi v1.0.0 +require github.com/open-traffic-generator/snappi/gosnappi v1.0.1 require ( github.com/Masterminds/semver/v3 v3.2.1 // indirect diff --git a/deployments/k8s/network-emulation/go.sum b/deployments/k8s/network-emulation/go.sum index f1fcc1c1..06bd0abf 100644 --- a/deployments/k8s/network-emulation/go.sum +++ b/deployments/k8s/network-emulation/go.sum @@ -1377,8 +1377,8 @@ github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4 github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= -github.com/open-traffic-generator/snappi/gosnappi v1.0.0 h1:q7connfudcx/ovTthD3VnyrCcTntd9vFh8nlHBFJ/2Y= -github.com/open-traffic-generator/snappi/gosnappi v1.0.0/go.mod h1:0YZGf0dUTcH9dH1/T0hQ1aDg7KwNseK+ghBFw4ODw5w= +github.com/open-traffic-generator/snappi/gosnappi v1.0.1 h1:0I2inXJpFQetaC2e7234ywv90UxHnt+w8gty9BTAyNg= +github.com/open-traffic-generator/snappi/gosnappi v1.0.1/go.mod h1:0YZGf0dUTcH9dH1/T0hQ1aDg7KwNseK+ghBFw4ODw5w= github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= diff --git a/deployments/k8s/network-emulation/pods.yaml b/deployments/k8s/network-emulation/pods.yaml index 2537167c..079862a4 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.0.0-7 + image: ghcr.io/open-traffic-generator/keng-controller:1.0.0-92 imagePullPolicy: IfNotPresent name: keng-controller volumeMounts: @@ -71,7 +71,7 @@ spec: - env: - name: INTF_LIST value: eth1 - image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.358 + image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.360 imagePullPolicy: IfNotPresent name: ixia-c-port1-protocol-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.358 + image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.360 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 ebf4859b..157a254f 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.0.0-7 + docker pull ghcr.io/open-traffic-generator/keng-controller:1.0.0-92 docker pull ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.6.0.109 - docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.358 + docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.360 # 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.0.0-7 + kind load docker-image ghcr.io/open-traffic-generator/keng-controller:1.0.0-92 kind load docker-image ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.6.0.109 - kind load docker-image ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.358 + kind load docker-image ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.360 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 2a373695..3a574e6c 100644 --- a/docs/deployments-kne.md +++ b/docs/deployments-kne.md @@ -58,17 +58,17 @@ Following are the recommended resources for a basic use-case. data: versions: | { - "release": "1.0.0-7", + "release": "1.0.0-92", "images": [ { "name": "controller", "path": "ghcr.io/open-traffic-generator/keng-controller", - "tag": "1.0.0-7" + "tag": "1.0.0-92" }, { "name": "gnmi-server", "path": "ghcr.io/open-traffic-generator/otg-gnmi-server", - "tag": "1.13.8" + "tag": "1.13.9" }, { "name": "traffic-engine", @@ -78,12 +78,12 @@ Following are the recommended resources for a basic use-case. { "name": "protocol-engine", "path": "ghcr.io/open-traffic-generator/ixia-c-protocol-engine", - "tag": "1.00.0.358" + "tag": "1.00.0.360" }, { "name": "ixhw-server", "path": "ghcr.io/open-traffic-generator/keng-layer23-hw-server", - "tag": "1.0.0-1" + "tag": "1.0.1-4" } ] } @@ -100,12 +100,12 @@ Following are the recommended resources for a basic use-case. data: versions: | { - "release": "1.0.0-7", + "release": "1.0.0-92", "images": [ { "name": "controller", "path": "ghcr.io/open-traffic-generator/keng-controller", - "tag": "1.0.0-7", + "tag": "1.0.0-92", "env": { "LICENSE_SERVERS": "ip/hostname of license server" } @@ -113,7 +113,7 @@ Following are the recommended resources for a basic use-case. { "name": "gnmi-server", "path": "ghcr.io/open-traffic-generator/otg-gnmi-server", - "tag": "1.13.8" + "tag": "1.13.9" }, { "name": "traffic-engine", @@ -123,12 +123,12 @@ Following are the recommended resources for a basic use-case. { "name": "protocol-engine", "path": "ghcr.io/open-traffic-generator/ixia-c-protocol-engine", - "tag": "1.00.0.358" + "tag": "1.00.0.360" }, { "name": "ixhw-server", "path": "ghcr.io/open-traffic-generator/keng-layer23-hw-server", - "tag": "1.0.0-1" + "tag": "1.0.1-4" } ] } @@ -148,7 +148,7 @@ Following are the recommended resources for a basic use-case. nodes: - name: otg vendor: KEYSIGHT - version: 1.0.0-7 + version: 1.0.0-92 services: 8443: name: https diff --git a/docs/news.md b/docs/news.md index ca603bdf..8f8122ab 100644 --- a/docs/news.md +++ b/docs/news.md @@ -1,5 +1,9 @@ # News +* **22nd February, 2024**: Ixia-c version 1.0.0 (build 92) released. This conforms to **[v1.0.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.0.1/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. + + * This build includes new features and bug fixes. [Read more](releases.md) + * **5th February, 2024**: Ixia-c version 1.0.0 (build 7) released. This conforms to **[v1.0.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.0.0/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. * This build includes new features and bug fixes. [Read more](releases.md) diff --git a/docs/releases.md b/docs/releases.md index a5f5c93f..022e3caa 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1,7 +1,87 @@ # Ixia-c Release Notes and Version Compatibility +## Release v1.0.0-92 (Latest) +> 22nd February, 2024 -## Release v1.0.0-7 (Latest) +#### Build Details + +| Component | Version | +|-------------------------------|---------------| +| Open Traffic Generator API | [1.0.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.0.1/artifacts/openapi.yaml) | +| snappi | [1.0.1](https://pypi.org/project/snappi/1.0.1) | +| gosnappi | [1.0.1](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v1.0.1) | +| keng-controller | [1.0.0-92](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-controller) | +| ixia-c-traffic-engine | [1.6.0.109](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-traffic-engine) | +| keng-app-usage-reporter | [0.0.1-37](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-app-usage-reporter) | +| ixia-c-protocol-engine | [1.00.0.360](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-protocol-engine) | +| keng-layer23-hw-server | [1.0.1-4](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-layer23-hw-server) | +| keng-operator | [0.3.28](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-operator) | +| otg-gnmi-server | [1.13.9](https://github.com/orgs/open-traffic-generator/packages/container/package/otg-gnmi-server) | +| ixia-c-one | [1.0.1-1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | +| UHD400 | [1.1.1](https://downloads.ixiacom.com/support/downloads_and_updates/public/UHD400/1.1/1.1.1/artifacts.tar) | + + +# Release Features(s) +* UHD400: Enabling metric_tags for egress tracking is now supported for ethernet.src/ dst, vlan.id, vlan.priority, ipv4.src/ dst, ipv4.precedence, ipv6.src/ dst, ipv6.traffic_class + ```go + eth := flow.EgressPacket().Add().Ethernet() + ipv4 := flow.EgressPacket().Add().Ipv4() + ipv4Tag := ipv4.Dst().MetricTags().Add() + ipv4Tag.SetName("flow_ipv4_dst") + ipv4Tag.SetOffset(22) + ipv4Tag.SetLength(10) + ``` + - Limitations: + - Maximum of 10 tracking bits is supported. + - Only a single flow is supported when egress tracking is enabled, except when the tracking header field is Vlan.priority, IPv4.precedence or IPv6.traffic_class. Multiple flows are supported when tracking is enabled on these fields. + - Tracking is supported on the last 10 bits of header fields, except for IPv4 src/ dst where first 5 bit tracking is also supported. + +* UHD400: Support is added for `values` on header fields ethernet.src /dst, ipv4.src /dst, ipv6.src /dst, vlan.id, tcp.src_port, tcp.dst_port, udp.src_port, udp.dst_port. + +* Ixia-C: Support added for `rsvp` Path Message PDU in raw traffic. + - User can encode `rsvp` packet using `flows` and invoke `set_control_state.traffic.flow_transmit` to transmit the `rsvp` packets. + ```go + f1.Packet().Add().Ethernet() + ip := f1.Packet().Add().Ipv4() + ip.Options().Add().SetChoice("router_alert") + rsvp := f1.Packet().Add().Rsvp() + rsvpPathMsg := rsvp.MessageType().Path() + session := rsvpPathMsg.Objects().Add().ClassNum().Session().CType().LspTunnelIpv4() + session.Ipv4TunnelEndPointAddress().SetValue("2.2.2.2") + session.TunnelId().SetValue(1) + session.ExtendedTunnelId().AsIpv4().SetValue("1.1.1.1") + rsvpHop := rsvpPathMsg.Objects().Add().ClassNum().RsvpHop().CType().Ipv4() + rsvpHop.Ipv4Address().SetValue("1.1.2.1") + rsvpPathMsg.Objects().Add().ClassNum().TimeValues() + rsvpPathMsg.Objects().Add().ClassNum().LabelRequest() + sessionAttribute := rsvpPathMsg.Objects().Add().ClassNum().SessionAttribute().CType().LspTunnel() + sessionAttribute.SetSessionName("otg_test_port") + senderTemplate := rsvpPathMsg.Objects().Add().ClassNum().SenderTemplate().CType().LspTunnelIpv4() + senderTemplate.Ipv4TunnelSenderAddress().SetValue("1.1.1.1") + senderTemplate.LspId().SetValue(1) + senderTspec := rsvpPathMsg.Objects().Add().ClassNum().SenderTspec().CType().IntServ() + senderTspec.MaximumPacketSize().SetValue(1500) + senderTspec.SetPeakDataRate(1e+10) + ``` + - Note: + - Variable field values within the flow using `increment`, `decrement` and `values` are not supported for `rsvp` fields. + - Optional objects `ClassNum().ExplicitRoute()` and `ClassNum().RecordRoute()` are not yet supported. + - Tracking should not be enabled if intention is for device under test to consume the generated packets. + + +# Bug Fix(s) +* keng-operator: Issue is fixed where `Ixia-C` containers would incorrectly signal readiness even when containers were not fully started in kne deployment, resulting in `SetConfig` and licensing errors. +* Ixia Chassis & Appliances(Novus, AresOne): Issue is fixed where `SetConfig` fails for a traffic flow where inner header (v4/v6) has DSCP value set. + +#### Known Issues +* 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. +* 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.0.0-7 > 5th February, 2024 #### About diff --git a/docs/tests-chassis-app.md b/docs/tests-chassis-app.md index 63e737f6..11843b8e 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.0.0-7 + image: ghcr.io/open-traffic-generator/keng-controller:1.0.0-92 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.0.0-1 + image: ghcr.io/open-traffic-generator/keng-layer23-hw-server:1.0.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.13.8 + image: ghcr.io/open-traffic-generator/otg-gnmi-server:1.13.9 restart: always depends_on: keng-controller: diff --git a/readme.md b/readme.md index 131392eb..04c2fef2 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.0.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.0.1/artifacts/openapi.yaml). ```bash