Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Launch of mkdocs-based site with reduced number of pages #168

Merged
merged 108 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
d86d1a7
mkdocs.yml
bortok Nov 19, 2022
5a3b632
color palette
bortok Nov 19, 2022
f643351
logos
bortok Nov 19, 2022
16b3e13
colors
bortok Nov 28, 2022
1e7e334
Merge branch 'main' into mkdocs
bortok Aug 22, 2023
a56b3cf
docs outline
bortok Aug 22, 2023
cbc1a77
mkdocs.md
bortok Aug 22, 2023
49c30ce
mkdocs.md
bortok Aug 22, 2023
1b8f88e
Merge pull request #148 from open-traffic-generator/docs-outline
bortok Aug 22, 2023
985f0d8
Update readme.md
Aug 24, 2023
1a5a2ad
First draft of UG intro
Aug 30, 2023
6c42507
Fixed tables
Sep 1, 2023
0bb9a88
Add minimum resource requirement details
anjan-keysight Sep 8, 2023
1d2fed8
update prerequisite.md
rudranil-das Sep 8, 2023
f40c05f
Merge branch 'mkdocs' of https://github.com/open-traffic-generator/ix…
rudranil-das Sep 8, 2023
97c6991
update prerequites.md with min. resource requirement for basic use-case
rudranil-das Sep 11, 2023
5b6b969
Updating prerequisite
SahanaGhosh Sep 12, 2023
bef176c
Adding new file for advanced deployment resources.
SahanaGhosh Sep 12, 2023
ecf6862
kne deployment added
biplamal Sep 13, 2023
092f54a
Separate ContainerLab and KNE deployments into separate files
Sep 13, 2023
5b5fb29
Added levels of licenses
Sep 14, 2023
0b61614
Fixed typo
Sep 14, 2023
18516f9
removed PN
Sep 14, 2023
6506554
Added license server deployment
Sep 14, 2023
ecb1ec1
First draft of how to run tests using Ixia HW
Sep 14, 2023
7c11eee
Merge branch 'mkdocs' of https://github.com/open-traffic-generator/ix…
Sep 14, 2023
8f99025
Added VM installation steps
Sep 14, 2023
ea4cdd5
Merge branch 'mkdocs' of https://github.com/open-traffic-generator/ix…
Sep 14, 2023
f842b56
Added license installation steps
Sep 14, 2023
5543f74
Fixed typo
Sep 14, 2023
ef15b9a
Firs draft of section on running tests with UHD400
Sep 14, 2023
df264e4
Merge branch 'mkdocs' of https://github.com/open-traffic-generator/ix…
Sep 14, 2023
7027b05
Fixed alignment
Sep 14, 2023
435f2dc
Merge into main
Sep 14, 2023
ef967fb
Update description
Sep 15, 2023
2cf1452
Updating links
SahanaGhosh Sep 15, 2023
387a57e
Updated file
SahanaGhosh Sep 15, 2023
0b51112
Update tests_chassis_app.md
vinjose Sep 15, 2023
be09fa9
Update tests_chassis_app.md
vinjose Sep 15, 2023
5047944
Remove UHD config and snappi info, edit licensing.md, save script inf…
Sep 15, 2023
c9ada5c
Merge branch 'mkdocs' of https://github.com/open-traffic-generator/ix…
Sep 15, 2023
4bf4b62
Update licensing.md: dns server desc
Sep 16, 2023
bfa76db
updated licensing.md with diagram and details
bortok Sep 18, 2023
5a2a386
licensing typo fixes and some rearrangements
bortok Sep 18, 2023
0792443
kne deployment added
biplamal Sep 19, 2023
bfbbaf6
Updating content formatting and links.
SahanaGhosh Sep 19, 2023
4b9e786
Added KVM package installation
Sep 21, 2023
fc47d0b
Updating UHD400 and Licensing.
SahanaGhosh Sep 21, 2023
92b292c
Updating image link in Deployment for mkdocs.
SahanaGhosh Sep 21, 2023
0a2993c
Updating images.
SahanaGhosh Sep 21, 2023
72044db
Rename image
SahanaGhosh Sep 21, 2023
688949f
Removed the REST API section.
SahanaGhosh Sep 22, 2023
348a366
Updated formatting.
SahanaGhosh Sep 22, 2023
27669ee
docker deployment updated
biplamal Sep 26, 2023
c6e83b9
Updating content for snappi installation.
SahanaGhosh Sep 26, 2023
7956441
licensing updates on KVM setup
bortok Sep 26, 2023
649efd1
Update troubleshooting.md
abhijit-dhar Oct 3, 2023
374d634
Updated the formatting
SahanaGhosh Oct 3, 2023
7efa666
Update troubleshooting.md
abhijit-dhar Oct 4, 2023
c24d20c
Adding clearOwnership.PNG
abhijit-dhar Oct 4, 2023
6438edf
Update troubleshooting.md
abhijit-dhar Oct 4, 2023
29b6e96
Update troubleshooting.md
Azharkuntoji Oct 4, 2023
9eeae59
Update troubleshooting.md
Azharkuntoji Oct 4, 2023
a0cf9ca
Update troubleshooting.md
abhijit-dhar Oct 4, 2023
42948d6
Update troubleshooting.md
abhijit-dhar Oct 4, 2023
2f217a2
Update troubleshooting.md
abhijit-dhar Oct 5, 2023
2e9659c
Update troubleshooting.md
abhijit-dhar Oct 6, 2023
8110cb8
Updating content formatting.
SahanaGhosh Oct 6, 2023
57dbc06
Adding the UHD400T guide link.
SahanaGhosh Oct 12, 2023
21f98d4
Updating Hello-snappi
SahanaGhosh Oct 13, 2023
c91d96e
Update troubleshooting.md for uhd
dandelwa Oct 16, 2023
bea4164
Renamed files, added new files for QSG, updated content formatting.
SahanaGhosh Oct 16, 2023
c11a091
Adding new files
SahanaGhosh Oct 16, 2023
fb8167e
Adding new files.
SahanaGhosh Oct 16, 2023
52cbc43
Update licensing.md
Oct 17, 2023
4b97541
Adding content for Integrated Environment.
SahanaGhosh Oct 17, 2023
7a89135
Adding the reference guide.
SahanaGhosh Oct 18, 2023
3fe8471
Adding new file for the feature gap list.
SahanaGhosh Oct 18, 2023
129f175
reference subfolder
bortok Oct 30, 2023
6e88c9c
developer folder
bortok Oct 30, 2023
4e804be
quick-start folder
bortok Oct 30, 2023
e417ced
ixia-c-traffic-engine CPU requirements
bortok Oct 31, 2023
49f4043
new keng diagram and component descriptions
bortok Nov 1, 2023
9f99b0e
into text updates
bortok Nov 1, 2023
c7f5698
renaming ixia-c-controller, ixia-c-operator, and ixia-c-ixhw-server.
SahanaGhosh Nov 1, 2023
a72adab
Update prerequisites with minimum resource requirements
anjan-keysight Nov 2, 2023
ba2eb00
renaming for ixia-c-app-usage-reporter, ixia-c-gnmi-server, licensed/…
SahanaGhosh Nov 2, 2023
45cc1bb
Updating ixia-c names
SahanaGhosh Nov 7, 2023
b878bb2
updated versions to release v0.1.0-53
bortok Nov 13, 2023
8b3f1a7
updated versions in tests-chassis-app
bortok Nov 13, 2023
023cad2
rollback any changes to releases.md
bortok Nov 13, 2023
9813925
merge conflicts
bortok Nov 13, 2023
0bc02ac
Merge branch 'mkdocs' into rename_test
bortok Nov 13, 2023
ccc670e
Merge pull request #167 from open-traffic-generator/rename_test
bortok Nov 13, 2023
f8eefd7
replaced Ixia-c controller with KENG controller
bortok Nov 13, 2023
069b508
status review / comments in mkdocs.yml
bortok Nov 13, 2023
6450104
rearranged top nav level
bortok Nov 13, 2023
57720cd
refresh nav second level
bortok Nov 13, 2023
9475345
landing page with links
bortok Nov 14, 2023
13c6e1f
Home section ready
bortok Nov 14, 2023
1f296f6
Merge branch 'main' into mkdocs-launch
bortok Nov 14, 2023
52f77fd
quick start ready
bortok Nov 14, 2023
0470b77
user guide is ready
bortok Nov 14, 2023
716d771
removed snappi-tests
bortok Nov 14, 2023
6e4d12e
removed docs/readme
bortok Nov 14, 2023
d4ad8aa
g analytics
bortok Nov 14, 2023
e716454
CNAME file
bortok Nov 14, 2023
19e4267
publish.yml workflow
bortok Nov 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: publish
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@ scratch
env
*.pcap
*.log
venv
site
.DS_Store
*.bkp
48 changes: 26 additions & 22 deletions deployments/k8s/network-emulation/ixia-c-k8s.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion deployments/k8s/network-emulation/pods.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -133,4 +133,3 @@ spec:
- "sleep"
- "infinity"
restartPolicy: Always

4 changes: 2 additions & 2 deletions deployments/k8s/network-emulation/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ To achieve this, we'll be using [Meshnet CNI](https://github.com/networkop/meshn
docker pull ghcr.io/open-traffic-generator/keng-controller:0.1.0-53
docker pull ghcr.io/open-traffic-generator/ixia-c-traffic-engine:1.6.0.85
docker pull ghcr.io/open-traffic-generator/ixia-c-protocol-engine:1.00.0.337

# download DUT image
docker pull ubuntu:22.04

Expand Down Expand Up @@ -133,7 +133,7 @@ To achieve this, we'll be using [Meshnet CNI](https://github.com/networkop/meshn

7. Run IPv4 forwarding test using [snappi](https://github.com/open-traffic-generator/snappi/tree/main/gosnappi) which is an auto-generated SDK based on [Open Traffic Generator API](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/master/artifacts/openapi.yaml&nocors)

The test parameters, e.g. location of Ixia-C controller, name of interfaces, etc. can be modified inside `testConst` map in `ipfwd.go`.
The test parameters, e.g. location of KENG controller, name of interfaces, etc. can be modified inside `testConst` map in `ipfwd.go`.

Check the file for more details on the test.

Expand Down
8 changes: 4 additions & 4 deletions deployments/k8s/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,23 @@ This section hosts [kustomize](https://kustomize.io/) manifests for deploying va

### Deploy Topology and Run Tests (Stateless traffic on eth0)

1. Deploy topology consisting of two ixia-c port pods and one ixia-c controller pod
1. Deploy topology consisting of two Ixia-c port pods and one KENG controller pod

Topology manifests are kept inside `overlays/two-traffic-ports-eth0` which specifies `port1` and `port2`.
* iptables rule is configured on both ports to drop UDP/TCP packets destined for ports 7000-8000
* number of ports can be increased by adding new port dirs similar to `port1` and using it in rest of the files

```bash
# deploy ixia-c with two ports that only support stateless traffic over eth0
# deploy Ixia-c with two ports that only support stateless traffic over eth0
kubectl apply -k overlays/two-traffic-ports-eth0
# ensure all ixia-c pods are ready
# ensure all Ixia-c pods are ready
kubectl wait --for=condition=Ready pods --all -n ixia-c
```

2. Generate test pre-requisites

The sample test requires `conformance/test-config.yaml` which is auto-generated:
* ixia-c controller / port endpoints
* KENG controller / port endpoints
* common port / flow properties
* values like port pod IPs, gateway MAC on tx port, etc.

Expand Down
2 changes: 1 addition & 1 deletion deployments/raw-one-arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ services:
- ARG_IFACE_LIST=virtual@af_packet,${IFC1}
- OPT_NO_HUGEPAGES=Yes
aur:
image: ghcr.io/open-traffic-generator/ixia-c-app-usage-reporter:${AUR_VERSION:-latest}
image: ghcr.io/open-traffic-generator/keng-app-usage-reporter:${AUR_VERSION:-latest}
network_mode: "host"
restart: always
2 changes: 1 addition & 1 deletion deployments/raw-three-arm-mesh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ services:
- ARG_IFACE_LIST=virtual@af_packet,eth0
- OPT_NO_HUGEPAGES=Yes
aur:
image: ghcr.io/open-traffic-generator/ixia-c-app-usage-reporter:${AUR_VERSION:-latest}
image: ghcr.io/open-traffic-generator/keng-app-usage-reporter:${AUR_VERSION:-latest}
network_mode: "host"
restart: always
2 changes: 1 addition & 1 deletion deployments/raw-two-arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ services:
- ARG_IFACE_LIST=virtual@af_packet,${IFC2}
- OPT_NO_HUGEPAGES=Yes
aur:
image: ghcr.io/open-traffic-generator/ixia-c-app-usage-reporter:${AUR_VERSION:-latest}
image: ghcr.io/open-traffic-generator/keng-app-usage-reporter:${AUR_VERSION:-latest}
network_mode: "host"
restart: always
1 change: 1 addition & 0 deletions docs/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ixia-c.dev
Binary file added docs/assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/keng-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions docs/deployments-containerlab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

# Deploy Ixia-c-one using containerlab

Ixia-c-one is deployed as single-container application by using [containerlab](https://containerlab.dev/quickstart/) that consists of the following services:

* **containerlab**: Containerlab provides a CLI for orchestrating and managing container-based networking labs. It starts the containers, builds a virtual wiring between them to create lab topologies depending on a user's choice, and manages the labs lifecycle.
* **Ixia-c-one**: Keysight Ixia-c-one is a single-container distribution of Ixia-c, which in turn is Keysight's reference implementation of Open Traffic Generator API.

Meet the [keysight_ixia-c-one](https://containerlab.dev/manual/kinds/keysight_ixia-c-one) kind! It is available from containerlab [release 0.26](https://containerlab.dev/rn/0.26/#keysight-ixia-c).
* **srl linux**: Nokia SR Linux is a truly open network operating system (NOS), that makes your data center switching infrastructure more scalable, more flexible, and simpler to operate.

![ixia-c-one](res/ixia-c-one-aur.drawio.svg)

## Install containerlab

```sh
# download and install the latest release (may require sudo)
bash -c "$(curl -sL https://get.containerlab.dev)"
```

## Deploy the topology

* You can find a sample topology definition in <https://containerlab.dev/lab-examples/ixiacone-srl/>, which consists of Nokia SR Linux and Ixia-c-one nodes that are connected to one-another.
* This consists of a Keysight ixia-c-one node with 2 ports connected to 2 ports on an srl linux node via two point-to-point ethernet links. Both nodes are also connected with their management interfaces to the containerlab docker network.

```sh
# After downloading the sample topology file
containerlab deploy --topo ixiac01.clab.yml
```

- After deployment, you are now ready to run a test using the topology.

## Run a test

* Follow this [link](https://containerlab.dev/lab-examples/ixiacone-srl/#execution) to run a test.

## Destroy/Remove the topology

```sh
# delete a particular topology
containerlab destroy --topo ixiac01.clab.yml
```
77 changes: 77 additions & 0 deletions docs/deployments-docker-compose.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Deploy Ixia-c using docker-compose

Deploying multiple services manually (along with the required parameters) is not always applicable in some scenarios. For convenience, the [deployments](../deployments) directory consists of the following `docker-compose` files:

- `*.yml`: Describes the services for a given scenario and the deployment parameters that are required to start them.
- `.env`: Holds the default parameters, that are used across all `*.yml` files. For example, the name of the interface, the version of docker images, and etc.

If a concerned `.yml` file does not include certain variables from `.env`, those can then safely be ignored.
Follwoing is the example of a usual workflow, by using `docker-compose`.

```sh
# change default parameters if needed; e.g. interface name, image version, etc.
vi deployments/.env
# deploy and start services for community users
docker-compose -f deployments/<scenario>.yml up -d
# stop and remove services deployed
docker-compose -f deployments/<scenario>.yml down
```

On most of the systems, `docker-compose` needs to be installed separately even if the docker is already installed. For more information, see [docker prerequisites](prerequisites.md#docker) .

>All the scenarios that are mentioned in the following sections, describe both manual and automated (requiring docker-compose) steps.

## Deployment Parameters

### Controller

| Controller Parameters | Optional | Default | Description |
|-----------------------------|-----------|-------------------------|-----------------------------------------------------------------|
| --debug | Yes | false | Enables high volume logs with debug info for better diagnostics.|
| --disable-app-usage-reporter| Yes | false | Disables sending of usage data to the app-usage-reporter. |
| --http-port | Yes | 8443 | TCP port for HTTP server. |
| --aur-host | Yes | https://localhost:5600 | Overrides the location of the app-usage-reporter. |
| --accept-eula | No | NA | Indicates that the user has accepted EULA, otherwise the controller will not boot up. |
| --license-servers | No | NA | Indicates the ip address of license servers for commercial users. |

Docker Parameters:

- `--net=host`: It is recommended to allow the use of the host network stack, in order to address the traffic-engine containers using `localhost` instead of `container-ip`, when deployed on the same host.
- `-d`: This starts the container in background.

Example:

```bash
# For community users
docker run --net=host -d ghcr.io/open-traffic-generator/keng-controller --accept-eula --debug --http-port 5050

# For commercial users
docker run --net=host -d ghcr.io/open-traffic-generator/keng-controller --accept-eula --debug --http-port 5050 --license-servers="ip/hostname of license server"
```

### Traffic Engine

| Environment Variables | Optional | Default | Description |
|-----------------------------|-----------|-------------------------|-----------------------------------------------------------------|
| ARG_IFACE_LIST | No | NA | Name of the network interface to bind to. It must be visible to the traffic-engine's network namespace. For example, `virtual@af_packet,eth1` where `eth1` is the interface name and `virtual@af_packet` indicates that the interface is managed by the host kernel's network stack.|
| OPT_LISTEN_PORT | Yes | "5555" | TCP port on which the controller can establish connection with the traffic-engine.|
| OPT_NO_HUGEPAGES | Yes | "No" | If set to `Yes`, it disables hugepages in the OS. The hugepages needs to be disabled when the network interfaces are managed by the host kernel's stack.|

Docker Parameters:

- `--net=host`: This is required if the traffic-engine needs to bind to a network interface that is visible in the host network stack but not inside the docker's network.
- `--privileged`: This is required because the traffic-engine needs to exercise capabilities that require elevated privileges.
- `--cpuset-cpus`: The traffic-engine usually requires 1 shared CPU core for management activities and 2 exclusive CPU cores, each for the transmit engine and receive engine. The shared CPU core can be shared across multiple traffic-engines. For example, `--cpuset-cpus="0,1,2"` which indicates that cpu0 is shared, cpu1 is used for transmit and cpu2 is used for receive. If CPU cores are not specified, any arbitrary CPU cores will be chosen.
> If enough CPU cores are not provided, the available CPU cores may be shared among management, transmit, and the receive engines, that can occasionally result in lower performance.
- `-d`: This starts the container in background.

Example:

```bash
docker run --net=host --privileged -d \
-e OPT_LISTEN_PORT="5555" \
-e ARG_IFACE_LIST="virtual@af_packet,eth1" \
-e OPT_NO_HUGEPAGES="Yes" \
--cpuset-cpus="0,1,2" \
ghcr.io/open-traffic-generator/ixia-c-traffic-engine
```
Loading