diff --git a/docs/deployments.md b/docs/deployments.md index ef422f37..30329edc 100644 --- a/docs/deployments.md +++ b/docs/deployments.md @@ -25,7 +25,7 @@ All these services are available as docker images on [GitHub Open-Traffic-Genera -> Once the services are deployed, [snappi-tests](https://github.com/open-traffic-generator/snappi-tests/tree/6a35c10), a collection of [snappi](https://pypi.org/project/snappi/) test scripts and configurations, can be setup to run against Ixia-c. +> Once the services are deployed, [snappi-tests](https://github.com/open-traffic-generator/snappi-tests/tree/ee92091), a collection of [snappi](https://pypi.org/project/snappi/) test scripts and configurations, can be setup to run against Ixia-c. ### Bootstrap diff --git a/docs/faq.md b/docs/faq.md index 931bf3c4..be824a96 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.8.6](https://github.com/open-traffic-generator/models/releases/tag/v0.8.6)** of the Open Traffic Generator Data Model. You can view the model [here](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v0.8.6/artifacts/openapi.yaml). +Ixia-c implements version **[v0.9.1](https://github.com/open-traffic-generator/models/releases/tag/v0.9.1)** of the Open Traffic Generator Data Model. You can view the model [here](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v0.9.1/artifacts/openapi.yaml). diff --git a/docs/hello-snappi.md b/docs/hello-snappi.md index 1532c3df..e1ed2526 100644 --- a/docs/hello-snappi.md +++ b/docs/hello-snappi.md @@ -27,7 +27,7 @@ In this tutorial, we will walk through some key elements required to write a **s * Send 1000 UDP packets back and forth between interfaces eth1 & eth2 at a rate of 1000 packets per second. * Ensure that indeed correct number of valid UDP packets are received on both ends using port capture and port metrics. -The script [hello_snappi.py](https://github.com/open-traffic-generator/snappi-tests/tree/6a35c10/scripts/hello_snappi.py) covers this extensively. +The script [hello_snappi.py](https://github.com/open-traffic-generator/snappi-tests/tree/ee92091/scripts/hello_snappi.py) covers this extensively.
@@ -47,20 +47,27 @@ And installing python packages: * [dpkt](https://pypi.org/project/dpkt/) - for processing `.pcap` files. ```sh -python -m pip install --upgrade snappi==0.8.8 dpkt +python -m pip install --upgrade snappi==0.9.3 dpkt ``` ### Create API Handle -The first step in any snappi script is to import the `snappi` package and instantiate an `api` object, where `location` parameter takes the HTTPS address of the controller and `verify` is used to turn off insecure certificate warning. +The first step in any snappi script is to import the `snappi` package and instantiate an `api` object, where `location` parameter takes the HTTPS/gRPC address of the controller and `verify` is used to turn off insecure certificate warning. -If the controller is deployed with a non-default TCP port using [deployment parameters](deployments.md#deployment-parameters), it must be specified explicitly in the address (default is 443). +If the controller is deployed with a non-default TCP port using [deployment parameters](deployments.md#deployment-parameters), it must be specified explicitly in the address (default port of HTTPS is 443 and gRPC is 40051). ```python import snappi + +# HTTPS api = snappi.api(location='https://localhost', verify=False) # or with non-default TCP port api = snappi.api(location='https://localhost:8080', verify=False) + +#gRPC +api = snappi.api(location="localhost:40051", transport=snappi.Transport.GRPC) +# or with non-default TCP port +api = snappi.api(location="localhost:50020", transport=snappi.Transport.GRPC) ```
@@ -100,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://raw.githubusercontent.com/open-traffic-generator/models/v0.8.6/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://raw.githubusercontent.com/open-traffic-generator/models/v0.9.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.8.6**. To use a different API version instead: +The snappi API documentation linked above will always point to API version **v0.9.1**. To use a different API version instead: -* Identify API version by opening this link in a browser and replacing **v0.8.8** in URL with intended snappi version. +* Identify API version by opening this link in a browser and replacing **v0.9.1** in URL with intended snappi version. -* Open this link in a browser after replacing **v0.8.6** in URL with intended API version. +* Open this link in a browser after replacing **v0.9.1** in URL with intended API version.
@@ -406,6 +413,6 @@ with open('cap.pcap', 'wb') as p: ### Putting It All Together -`snappi` provides a fair level of abstraction and ease-of-use while constructing traffic configuration compared to doing the [equivalent in JSON](https://github.com/open-traffic-generator/snappi-tests/tree/6a35c10/configs/hello_snappi.json). More such comparisons can be found in [common snappi constructs](snappi-constructs.md). +`snappi` provides a fair level of abstraction and ease-of-use while constructing traffic configuration compared to doing the [equivalent in JSON](https://github.com/open-traffic-generator/snappi-tests/tree/ee92091/configs/hello_snappi.json). More such comparisons can be found in [common snappi constructs](snappi-constructs.md). -There's more to snappi than what we've presented here, e.g. per-flow metrics, latency measurements, custom payloads, etc. It will be worthwhile browsing through [snappi-tests](https://github.com/open-traffic-generator/snappi-tests/tree/6a35c10) for more such examples, pytest-based test scripts and utilities. +There's more to snappi than what we've presented here, e.g. per-flow metrics, latency measurements, custom payloads, etc. It will be worthwhile browsing through [snappi-tests](https://github.com/open-traffic-generator/snappi-tests/tree/ee92091) for more such examples, pytest-based test scripts and utilities. diff --git a/docs/news.md b/docs/news.md index f437f1a7..5d6acc2e 100644 --- a/docs/news.md +++ b/docs/news.md @@ -1,5 +1,14 @@ # News +* **1st September, 2022**: Ixia-c version 0.0.1 (build 3182) released. This conforms to **[v0.9.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v0.9.1/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. + + **Announcement** + + `ixia-c` container images is hosted on [GitHub Container Registry](https://github.com/orgs/open-traffic-generator/packages). However we will continue publishing `ixia-c` container images to [DockerHub](https://hub.docker.com/r/ixiacom) until 18th November, 2022. + + * This build includes new features. [Read more](releases.md) + + * **18th August, 2022**: Ixia-c version 0.0.1 (build 3113) released. This conforms to **[v0.8.6](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v0.8.6/artifacts/openapi.yaml)** of the Open Traffic Generator Models specification. **Announcement** diff --git a/docs/releases.md b/docs/releases.md index 297711f9..ae46b96c 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1,6 +1,37 @@ # Ixia-c Release Notes and Version Compatibility -## Release v0.0.1-3113 (Latest) +## Release v0.0.1-3182 (Latest) +> 18th August, 2022 + +#### Announcement + +`ixia-c` container images is hosted on [GitHub Container Registry](https://github.com/orgs/open-traffic-generator/packages). However we will continue publishing `ixia-c` container images to [DockerHub](https://hub.docker.com/r/ixiacom) until 18th November, 2022. + +#### Build Details + +| Component | Version | +|-------------------------------|---------------| +| Open Traffic Generator API | [0.9.1](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/v0.9.1/artifacts/openapi.yaml) | +| snappi | [0.9.3](https://pypi.org/project/snappi/0.9.3) | +| gosnappi | [0.9.3](https://pkg.go.dev/github.com/open-traffic-generator/snappi/gosnappi@v0.9.3) | +| ixia-c-controller | [0.0.1-3182](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-controller) | +| ixia-c-traffic-engine | [1.6.0.9](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.217](https://github.com/orgs/open-traffic-generator/packages/container/package/licensed%2Fixia-c-protocol-engine) | +| ixia-c-operator | [0.2.1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-operator) | +| ixia-c-gnmi-server | [1.9.1](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-gnmi-server) | +| ixia-c-one | [0.0.1-3182](https://github.com/orgs/open-traffic-generator/packages/container/package/ixia-c-one/) | + +#### Release Features(s) + +* TBD + +#### Known Issues + +* 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 + +## Release v0.0.1-3113 > 18th August, 2022 #### Announcement diff --git a/readme.md b/readme.md index b7470f23..865f299c 100644 --- a/readme.md +++ b/readme.md @@ -9,9 +9,9 @@

- Release v0.0.1-3113 - Open Traffic Generator v0.8.6 - snappi v0.8.8 + Release v0.0.1-3182 + Open Traffic Generator v0.9.1 + snappi v0.9.3 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.8.8 + python -m pip install --upgrade snappi==0.9.3 # run a standalone script to generate TCP traffic and fetch metrics python snappi-tests/scripts/quickstart_snappi.py ``` @@ -87,8 +87,11 @@ Before proceeding, please ensure [system prerequisites](docs/prerequisites.md) a ```python import snappi - # create a new API instance where location points to controller + # create a new API instance over HTTPS transport where location points to controller api = snappi.api(location="https://localhost", verify=False) + # OR + # create a new API instance over gRPC transport where location points to controller + api = snappi.api(location="localhost:40051", transport=snappi.Transport.GRPC) # create a config object to be pushed to controller config = api.config() @@ -124,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://raw.githubusercontent.com/open-traffic-generator/models/v0.8.6/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://raw.githubusercontent.com/open-traffic-generator/models/v0.9.1/artifacts/openapi.yaml). ```bash # push the contents of config file snappi-tests/configs/quickstart_snappi.json diff --git a/snappi-tests b/snappi-tests index 833b6d77..ee920910 160000 --- a/snappi-tests +++ b/snappi-tests @@ -1 +1 @@ -Subproject commit 833b6d77d20fb7144dd062414603f7cfb0178ff4 +Subproject commit ee9209100e4942b9a834f4c10c6d0188fae5aa9c