From 2eb52b21025ddbdc77d6481607a05ab82bb8b539 Mon Sep 17 00:00:00 2001 From: biplamal Date: Mon, 2 Sep 2024 04:55:00 +0000 Subject: [PATCH] Release v1.12.0-1 --- conformance | 2 +- .../k8s/components/images/kustomization.yaml | 6 +- deployments/k8s/network-emulation/go.mod | 4 +- deployments/k8s/network-emulation/go.sum | 10 +- deployments/k8s/network-emulation/pods.yaml | 6 +- deployments/k8s/network-emulation/readme.md | 8 +- docs/deployments-kne.md | 22 ++-- docs/developer/hello-snappi.md | 2 +- docs/news.md | 6 +- docs/releases.md | 112 +++++++++++++++++ docs/tests-chassis-app.md | 6 +- notes.md | 113 +++++++++++------- readme.md | 8 +- 13 files changed, 227 insertions(+), 78 deletions(-) diff --git a/conformance b/conformance index ef58d90e..6a3cfa7d 160000 --- a/conformance +++ b/conformance @@ -1 +1 @@ -Subproject commit ef58d90e891acbfb98bf2ebb52a09f327299a98a +Subproject commit 6a3cfa7d5704b786973b725c9f9c8d9bd0d4f115 diff --git a/deployments/k8s/components/images/kustomization.yaml b/deployments/k8s/components/images/kustomization.yaml index 8fb3f14e..67217e3a 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.8.0-1 +# Release: https://github.com/open-traffic-generator/ixia-c/releases/tag/v1.12.0-1 images: - name: keng-controller newName: ghcr.io/open-traffic-generator/keng-controller - newTag: "1.8.0-1" + newTag: "1.12.0-1" - name: otg-gnmi-server newName: ghcr.io/open-traffic-generator/otg-gnmi-server - newTag: "1.14.8" + newTag: "1.14.12" - name: ixia-c-traffic-engine newName: ghcr.io/open-traffic-generator/ixia-c-traffic-engine newTag: "1.8.0.25" diff --git a/deployments/k8s/network-emulation/go.mod b/deployments/k8s/network-emulation/go.mod index 2dd9ba6d..e04a3f1d 100644 --- a/deployments/k8s/network-emulation/go.mod +++ b/deployments/k8s/network-emulation/go.mod @@ -2,10 +2,10 @@ module ipfwd go 1.19 -require github.com/open-traffic-generator/snappi/gosnappi v1.8.0 +require github.com/open-traffic-generator/snappi/gosnappi v1.12.0 require ( - github.com/Masterminds/semver/v3 v3.2.1 // indirect + github.com/Masterminds/semver/v3 v3.3.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect diff --git a/deployments/k8s/network-emulation/go.sum b/deployments/k8s/network-emulation/go.sum index 44c36eb6..4882342e 100644 --- a/deployments/k8s/network-emulation/go.sum +++ b/deployments/k8s/network-emulation/go.sum @@ -1,5 +1,5 @@ -github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= -github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= +github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= @@ -9,12 +9,12 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/open-traffic-generator/snappi/gosnappi v1.7.2 h1:uj4ZO/m2g2BQw5pMxivc7yVszfN0yVGK89b4UCemRUI= -github.com/open-traffic-generator/snappi/gosnappi v1.7.2/go.mod h1:2FoOlkhPRlBJBiGJyi3/Luswu9ihpvzdQXTLIHRy4Is= +github.com/open-traffic-generator/snappi/gosnappi v1.12.0 h1:nEaSh7imm+0dId04UAZScd2n3grjIS2lbhoO8UJ7pjo= +github.com/open-traffic-generator/snappi/gosnappi v1.12.0/go.mod h1:Y0hBgoswmEQPWtGUdYKcSe+bptCPC6r88H2eDwxt/aY= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= diff --git a/deployments/k8s/network-emulation/pods.yaml b/deployments/k8s/network-emulation/pods.yaml index 0dafc833..b07a9a83 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.8.0-1 + image: ghcr.io/open-traffic-generator/keng-controller:1.12.0-1 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.393 + image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.398 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.393 + image: ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.398 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 694586ad..aef64c6e 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.8.0-1 + docker pull ghcr.io/open-traffic-generator/keng-controller:1.12.0-1 docker pull ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.25 - docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.393 + docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.398 # 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.8.0-1 + kind load docker-image ghcr.io/open-traffic-generator/keng-controller:1.12.0-1 kind load docker-image ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.8.0.25 - kind load docker-image ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.393 + kind load docker-image ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.398 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 e13fb30c..408bb520 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.8.0-1", + "release": "1.12.0-1", "images": [ { "name": "controller", "path": "ghcr.io/open-traffic-generator/keng-controller", - "tag": "1.8.0-1" + "tag": "1.12.0-1" }, { "name": "gnmi-server", "path": "ghcr.io/open-traffic-generator/otg-gnmi-server", - "tag": "1.14.8" + "tag": "1.14.12" }, { "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.393" + "tag": "1.00.0.398" }, { "name": "ixhw-server", "path": "ghcr.io/open-traffic-generator/keng-layer23-hw-server", - "tag": "1.8.0-1" + "tag": "1.12.0-1" } ] } @@ -100,12 +100,12 @@ Following are the recommended resources for a basic use-case. data: versions: | { - "release": "1.8.0-1", + "release": "1.12.0-1", "images": [ { "name": "controller", "path": "ghcr.io/open-traffic-generator/keng-controller", - "tag": "1.8.0-1", + "tag": "1.12.0-1", "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.14.8" + "tag": "1.14.12" }, { "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.393" + "tag": "1.00.0.398" }, { "name": "ixhw-server", "path": "ghcr.io/open-traffic-generator/keng-layer23-hw-server", - "tag": "1.8.0-1" + "tag": "1.12.0-1" } ] } @@ -148,7 +148,7 @@ Following are the recommended resources for a basic use-case. nodes: - name: otg vendor: KEYSIGHT - version: 1.8.0-1 + version: 1.12.0-1 services: 8443: name: https diff --git a/docs/developer/hello-snappi.md b/docs/developer/hello-snappi.md index baf7f1ce..560f6718 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.8.0 dpkt +python -m pip install --upgrade snappi==1.12.0 dpkt ``` ## Create the API Handle diff --git a/docs/news.md b/docs/news.md index fe25b8b8..3c47c480 100644 --- a/docs/news.md +++ b/docs/news.md @@ -1,6 +1,10 @@ # News -* **19th August, 2024**: Ixia-c version 1.8.0 (build 1) released. This conforms to **[v1.8.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.8.0/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. +* **2nd September, 2024**: Ixia-c version 1.12.0 (build 1) released. This conforms to **[v1.12.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.12.0/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. + + * This build includes new features. [Read more](releases.md) + +* **20th August, 2024**: Ixia-c version 1.8.0 (build 1) released. This conforms to **[v1.8.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.8.0/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. * This build includes new features. [Read more](releases.md) diff --git a/docs/releases.md b/docs/releases.md index 915af09c..266ca6a1 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1,6 +1,118 @@ # Ixia-c Release Notes and Version Compatibility ## Release v1.8.0-1 (Latest) +> 2nd September, 2024 + +#### Build Details + +| Component | Version | +|-------------------------------|---------------| +| Open Traffic Generator API | [1.12.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.12.0/artifacts/openapi.yaml) | +| snappi | [1.12.0](https://pypi.org/project/snappi/1.12.0) | +| gosnappi | [1.12.0](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v1.12.0) | +| keng-controller | [1.12.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-controller) | +| ixia-c-traffic-engine | [1.8.0.25](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.398](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-protocol-engine) | +| keng-layer23-hw-server | [1.12.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-layer23-hw-server) | +| keng-operator | [0.3.30](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-operator) | +| otg-gnmi-server | [1.14.12](https://github.com/orgs/open-traffic-generator/packages/container/package/otg-gnmi-server) | +| ixia-c-one | [1.12.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | +| UHD400 | [1.3.5](https://downloads.ixiacom.com/support/downloads_and_updates/public/UHD400/1.3/1.3.5/artifacts.tar) | + + +# Release Features(s) + +* Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv6 client interfaces to be used as source/destination for device traffic. + - In this the learned IPv6 address from the DHCPv6 server is automatically populated in `ipv6.src/dst` if the choice is set to auto.dhcp. + ```go + clientToServerFlow.SetName("ClientToServer").TxRx().Device(). + SetTxNames([]string{"DHCPv6ClientName"}). + SetRxNames([]string{"DHCPv6ServerInterfaceName"}) + clientToServerFlow.Packet().Add().Ethernet() + clientToServerFlowIp := clientToServerFlow.Packet().Add().Ipv6() + clientToServerFlowIp.Src().Auto().Dhcp() + + serverToClientFlow.SetName("ServerToClient").TxRx().Device(). + SetTxNames([]string{"DHCPv6ServerInterfaceName"}). + SetRxNames([]string{"DHCPv6ClientName"}) + serverToClientFlow.Packet().Add().Ethernet() + serverToClientFlowIp := serverToClientFlow.Packet().Add().Ipv6() + serverToClientFlowIp.Dst().Auto().Dhcp() + ``` + Note: For DHCPv6 client to DHCPv6 server each flow supports only one source endpoint in tx_rx.device.tx_names, hence a separate flow has to be configured for each DHCPv6 client if packet[i].ipv6.src.auto.dhcp is set. + +* Ixia Chassis & Appliances(Novus, AresOne): Support added for `devices[i].ethernets[j].dhcpv6_interfaces[k].options/options_request` and `devices[i].dhcp_server.ipv6_interfaces[j].options`. + ```go + // Configure a DHCPv6 Client + dhcpv6Client := d1Eth1.Dhcpv6Interfaces().Add(). + SetName("DHCPv6-Client") + + ......... + + //options + dhcpv6Client.Options().VendorInfo(). + SetEnterpriseNumber(1000). + OptionData(). + Add(). + SetCode(88). + SetData("enterprise") + dhcpv6Client.Options().VendorInfo().AssociatedDhcpMessages().All() + + //option request + dhcpv6Client.OptionsRequest().Request().Add().BootfileUrl() + dhcpv6Client.OptionsRequest().Request().Add().Custom().SetType(3) + dhcpv6Client.OptionsRequest().AssociatedDhcpMessages().All() + + // Configure a DHCPv6 Server + dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). + SetName("DHCPv6-Server") + + ............ + dhcpv6Server.Options().BootfileUrl().SetUrl("URL").AssociatedDhcpMessages().All() + dhcpv6Server.Options().Dns().SetPrimary("8::8").SecondaryDns().Add().SetIp("9::9") + ``` + +* Ixia Chassis & Appliances(Novus, AresOne): Support added for `devices[i].dhcp_server.ipv6_interfaces[j].leases[k].ia_type.choice.iapd/ianapd`. + ```go + // Configure a DHCPv6 Server + dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). + SetName("DHCPv6-Server") + + dhcpv6ServerPool := dhcpv6Server.SetIpv6Name("p2d1ipv6"). + Leases().Add(). + SetLeaseTime(3600) + IaType := dhcpv6ServerPool.IaType().Iapd() + IaType. + SetAdvertisedPrefixLen(64). + SetStartPrefixAddress("2000:0:0:100::0"). + SetPrefixStep(1). + SetPrefixSize(10) + ``` + +* Ixia-c: Support added for sending Organizational tlvs in LLDP PDUs. + ```go + lldp := config.Lldp().Items()[0] + + orgInfos1 := lldp.OrgInfos().Add() + orgInfos1.Information().SetInfo("AABB11") + orgInfos1.SetOui("1abcdf").SetSubtype(1) + ``` + Note: Received Organizational tlvs can be seen in the `get_states` response of `lldp_neighbors`. + + +#### 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 Chassis & Appliances(Novus, AresOne): `StartProtocols`/`set_control_state.protocol.all.start` can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting `"context deadline exceeded"` error in the test program. +* 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.8.0-1 > 20th August, 2024 diff --git a/docs/tests-chassis-app.md b/docs/tests-chassis-app.md index faa564a4..1131993a 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.8.0-1 + image: ghcr.io/open-traffic-generator/keng-controller:1.12.0-1 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.8.0-1 + image: ghcr.io/open-traffic-generator/keng-layer23-hw-server:1.12.0-1 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.8 + image: ghcr.io/open-traffic-generator/otg-gnmi-server:1.14.12 restart: always depends_on: keng-controller: diff --git a/notes.md b/notes.md index 0c0cd53d..e53bc732 100644 --- a/notes.md +++ b/notes.md @@ -2,65 +2,98 @@ | Component | Version | |-------------------------------|---------------| -| Open Traffic Generator API | [1.8.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.8.0/artifacts/openapi.yaml) | -| snappi | [1.8.0](https://pypi.org/project/snappi/1.8.0) | -| gosnappi | [1.8.0](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v1.8.0) | -| keng-controller | [1.8.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-controller) | +| Open Traffic Generator API | [1.12.0](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v1.12.0/artifacts/openapi.yaml) | +| snappi | [1.12.0](https://pypi.org/project/snappi/1.12.0) | +| gosnappi | [1.12.0](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v1.12.0) | +| keng-controller | [1.12.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-controller) | | ixia-c-traffic-engine | [1.8.0.25](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.393](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-protocol-engine) | -| keng-layer23-hw-server | [1.8.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-layer23-hw-server) | +| ixia-c-protocol-engine | [1.00.0.398](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-protocol-engine) | +| keng-layer23-hw-server | [1.12.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-layer23-hw-server) | | keng-operator | [0.3.30](https://github.com/orgs/open-traffic-generator/packages/container/package/keng-operator) | -| otg-gnmi-server | [1.14.8](https://github.com/orgs/open-traffic-generator/packages/container/package/otg-gnmi-server) | -| ixia-c-one | [1.8.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | +| otg-gnmi-server | [1.14.12](https://github.com/orgs/open-traffic-generator/packages/container/package/otg-gnmi-server) | +| ixia-c-one | [1.12.0-1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | | UHD400 | [1.3.5](https://downloads.ixiacom.com/support/downloads_and_updates/public/UHD400/1.3/1.3.5/artifacts.tar) | # Release Features(s) -* Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv6 Client and Server in control plane. [details](https://github.com/open-traffic-generator/models/pull/369) - - User will be the able to configure DHCPv6 Client and Server by the following code snippet. +* Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv6 client interfaces to be used as source/destination for device traffic. + - In this the learned IPv6 address from the DHCPv6 server is automatically populated in `ipv6.src/dst` if the choice is set to auto.dhcp. ```go - // Configure a DHCP Client - dhcpv6client := d1Eth1.Dhcpv6Interfaces().Add(). - SetName("p1d1dhcpv61") + clientToServerFlow.SetName("ClientToServer").TxRx().Device(). + SetTxNames([]string{"DHCPv6ClientName"}). + SetRxNames([]string{"DHCPv6ServerInterfaceName"}) + clientToServerFlow.Packet().Add().Ethernet() + clientToServerFlowIp := clientToServerFlow.Packet().Add().Ipv6() + clientToServerFlowIp.Src().Auto().Dhcp() + + serverToClientFlow.SetName("ServerToClient").TxRx().Device(). + SetTxNames([]string{"DHCPv6ServerInterfaceName"}). + SetRxNames([]string{"DHCPv6ClientName"}) + serverToClientFlow.Packet().Add().Ethernet() + serverToClientFlowIp := serverToClientFlow.Packet().Add().Ipv6() + serverToClientFlowIp.Dst().Auto().Dhcp() + ``` + Note: For DHCPv6 client to DHCPv6 server each flow supports only one source endpoint in tx_rx.device.tx_names, hence a separate flow has to be configured for each DHCPv6 client if packet[i].ipv6.src.auto.dhcp is set. + +* Ixia Chassis & Appliances(Novus, AresOne): Support added for `devices[i].ethernets[j].dhcpv6_interfaces[k].options/options_request` and `devices[i].dhcp_server.ipv6_interfaces[j].options`. + ```go + // Configure a DHCPv6 Client + dhcpv6Client := d1Eth1.Dhcpv6Interfaces().Add(). + SetName("DHCPv6-Client") + + ......... + + //options + dhcpv6Client.Options().VendorInfo(). + SetEnterpriseNumber(1000). + OptionData(). + Add(). + SetCode(88). + SetData("enterprise") + dhcpv6Client.Options().VendorInfo().AssociatedDhcpMessages().All() + + //option request + dhcpv6Client.OptionsRequest().Request().Add().BootfileUrl() + dhcpv6Client.OptionsRequest().Request().Add().Custom().SetType(3) + dhcpv6Client.OptionsRequest().AssociatedDhcpMessages().All() + + // Configure a DHCPv6 Server + dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). + SetName("DHCPv6-Server") - dhcpv6client.IaType().Iata() - dhcpv6client.DuidType().Llt() + ............ + dhcpv6Server.Options().BootfileUrl().SetUrl("URL").AssociatedDhcpMessages().All() + dhcpv6Server.Options().Dns().SetPrimary("8::8").SecondaryDns().Add().SetIp("9::9") + ``` +* Ixia Chassis & Appliances(Novus, AresOne): Support added for `devices[i].dhcp_server.ipv6_interfaces[j].leases[k].ia_type.choice.iapd/ianapd`. + ```go // Configure a DHCPv6 Server - d1Dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). - SetName("p2d1Dhcpv6Server1"). + dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). + SetName("DHCPv6-Server") - d1Dhcpv6ServerPool := d1Dhcpv6Server.SetIpv6Name("p2d1ipv6"). + dhcpv6ServerPool := dhcpv6Server.SetIpv6Name("p2d1ipv6"). Leases().Add(). SetLeaseTime(3600) - IaType := d1Dhcpv6ServerPool.IaType().Iata() + IaType := dhcpv6ServerPool.IaType().Iapd() IaType. - SetStartAddress("2000:0:0:1::100"). - SetStep(1). - SetSize(10). - SetPrefixLen(64) + SetAdvertisedPrefixLen(64). + SetStartPrefixAddress("2000:0:0:100::0"). + SetPrefixStep(1). + SetPrefixSize(10) ``` - Note: Support for `devices[i].dhcp_server.ipv6_interfaces[j].options` and `devices[i].dhcp_server.ipv6_interfaces[j].leases[k].ia_type.choice.iapd/ianapd` will be available in the subsequent sprints. -* Ixia Chassis & Appliances(Novus, AresOne): gNMI support added to fetch control plane metics and states of DHCPv6 [Client](https://github.com/open-traffic-generator/models-yang/blob/main/artifacts/open-traffic-generator-dhcpv6client.txt) and [Server](https://github.com/open-traffic-generator/models-yang/blob/main/artifacts/open-traffic-generator-dhcpv6server.txt). - - Support added for DHCPv6 Client/Server metrics using following gNMI paths. - ```gNMI - // dhcpv6 client - dhcpv6-clients/dhcpv6-client[name=*]/state/counters - - // dhcpv6 server - dhcpv6-servers/dhcpv6-server[name=*]/state/counters​ - ``` - - Support added for DHCPv6 Client/Server states using following gNMI paths. - ```gNMI - // dhcpv6 client - dhcpv6-clients/dhcpv6-client[name=*]/state/interface +* Ixia-c: Support added for sending Organizational tlvs in LLDP PDUs. + ```go + lldp := config.Lldp().Items()[0] - // dhcpv6 server - dhcpv6-servers/dhcpv6-server[name=*]/state/interface - ``` + orgInfos1 := lldp.OrgInfos().Add() + orgInfos1.Information().SetInfo("AABB11") + orgInfos1.SetOui("1abcdf").SetSubtype(1) + ``` + Note: Received Organizational tlvs can be seen in the `get_states` response of `lldp_neighbors`. #### Known Issues diff --git a/readme.md b/readme.md index 83cb5140..edd703fd 100644 --- a/readme.md +++ b/readme.md @@ -9,9 +9,9 @@

- Release v1.8.0-1 - Open Traffic Generator v1.8.0 - snappi v1.8.0 + Release v1.12.0-1 + Open Traffic Generator v1.12.0 + snappi v1.12.0 news news Slack Status @@ -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.8.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.12.0/artifacts/openapi.yaml). ```bash