snappi-ixnetwork


Namesnappi-ixnetwork JSON
Version 0.4.10 PyPI version JSON
download
home_pagehttps://github.com/open-traffic-generator/snappi-ixnetwork
SummaryThe Snappi IxNetwork Open Traffic Generator Python Package
upload_time2021-07-16 04:40:08
maintainer
docs_urlNone
authorajbalogh
requires_python>=2.7, <4
licenseMIT
keywords snappi ixnetwork testing open traffic generator automation
VCS
bugtrack_url
requirements flake8 black
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Snappi Extension for IxNetwork
[![license](https://img.shields.io/badge/license-MIT-green.svg)](https://en.wikipedia.org/wiki/MIT_License)
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![Build](https://github.com/open-traffic-generator/snappi-ixnetwork/workflows/Build/badge.svg)](https://github.com/open-traffic-generator/snappi-ixnetwork/actions)
[![pypi](https://img.shields.io/pypi/v/snappi_ixnetwork.svg)](https://pypi.org/project/snappi_ixnetwork)
[![python](https://img.shields.io/pypi/pyversions/snappi_ixnetwork.svg)](https://pypi.python.org/pypi/snappi_ixnetwork)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/open-traffic-generator/snappi-ixnetwork.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/alerts/)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/open-traffic-generator/snappi-ixnetwork.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/context:python)
[![downloads](https://pepy.tech/badge/snappi-ixnetwork)](https://pepy.tech/project/snappi-ixnetwork)

This extension allows executing test scripts written using [snappi](https://github.com/open-traffic-generator/snappi) against  
IxNetwork, (one of) Keysight's implementation of [Open Traffic Generator](https://github.com/open-traffic-generator/models/releases).

> The repository is under active development.

To start contributing, please see [contributing.md](contributing.md).

## Install on a client

```sh
python -m pip install --upgrade "snappi[ixnetwork]"
```

## Start scripting

```python
"""
Configure a raw TCP flow with,
- tx port as source to rx port as destination
- frame count 10000, each of size 128 bytes
- transmit rate of 1000 packets per second
Validate,
- frames transmitted and received for configured flow is as expected
"""

import snappi
# host is IxNetwork API Server
api = snappi.api(location='https://localhost:443', ext='ixnetwork')
# new config
config = api.config()
# port location is chassis-ip;card-id;port-id
tx, rx = (
    config.ports
    .port(name='tx', location='192.168.0.1;2;1')
    .port(name='rx', location='192.168.0.1;2;2')
)
# configure layer 1 properties
ly, = config.layer1.layer1(name='ly')
ly.port_names = [tx.name, rx.name]
ly.speed = ly.SPEED_10_GBPS
ly.media = ly.FIBER
# configure flow properties
flw, = config.flows.flow(name='flw')
# flow endpoints
flw.tx_rx.port.tx_name = tx.name
flw.tx_rx.port.rx_name = rx.name
# enable flow metrics
flw.metrics.enable = True
# configure rate, size, frame count
flw.size.fixed = 128
flw.rate.pps = 1000
flw.duration.fixed_packets.packets = 10000
# configure protocol headers with defaults fields
flw.packet.ethernet().vlan().ipv4().tcp()
# push configuration
api.set_config(config)
# start transmitting configured flows
ts = api.transmit_state()
ts.state = ts.START
api.set_transmit_state(ts)
# create a query for flow metrics
req = api.metrics_request()
req.flow.flow_names = [flw.name]
# wait for flow metrics to be as expected
while True:
    res = api.get_metrics(req)
    if all([m.frames_tx == 10000 == m.frames_rx for m in res.flow_metrics]):
        break
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/open-traffic-generator/snappi-ixnetwork",
    "name": "snappi-ixnetwork",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=2.7, <4",
    "maintainer_email": "",
    "keywords": "snappi ixnetwork testing open traffic generator automation",
    "author": "ajbalogh",
    "author_email": "andy.balogh@keysight.com",
    "download_url": "https://files.pythonhosted.org/packages/3d/d1/3b7973f54de0ce7371eeaab892ef441dbe88a712224366080559b34ee7db/snappi_ixnetwork-0.4.10.tar.gz",
    "platform": "",
    "description": "# Snappi Extension for IxNetwork\n[![license](https://img.shields.io/badge/license-MIT-green.svg)](https://en.wikipedia.org/wiki/MIT_License)\n[![Project Status: Active \u2013 The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![Build](https://github.com/open-traffic-generator/snappi-ixnetwork/workflows/Build/badge.svg)](https://github.com/open-traffic-generator/snappi-ixnetwork/actions)\n[![pypi](https://img.shields.io/pypi/v/snappi_ixnetwork.svg)](https://pypi.org/project/snappi_ixnetwork)\n[![python](https://img.shields.io/pypi/pyversions/snappi_ixnetwork.svg)](https://pypi.python.org/pypi/snappi_ixnetwork)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/open-traffic-generator/snappi-ixnetwork.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/alerts/)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/open-traffic-generator/snappi-ixnetwork.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/context:python)\n[![downloads](https://pepy.tech/badge/snappi-ixnetwork)](https://pepy.tech/project/snappi-ixnetwork)\n\nThis extension allows executing test scripts written using [snappi](https://github.com/open-traffic-generator/snappi) against  \nIxNetwork, (one of) Keysight's implementation of [Open Traffic Generator](https://github.com/open-traffic-generator/models/releases).\n\n> The repository is under active development.\n\nTo start contributing, please see [contributing.md](contributing.md).\n\n## Install on a client\n\n```sh\npython -m pip install --upgrade \"snappi[ixnetwork]\"\n```\n\n## Start scripting\n\n```python\n\"\"\"\nConfigure a raw TCP flow with,\n- tx port as source to rx port as destination\n- frame count 10000, each of size 128 bytes\n- transmit rate of 1000 packets per second\nValidate,\n- frames transmitted and received for configured flow is as expected\n\"\"\"\n\nimport snappi\n# host is IxNetwork API Server\napi = snappi.api(location='https://localhost:443', ext='ixnetwork')\n# new config\nconfig = api.config()\n# port location is chassis-ip;card-id;port-id\ntx, rx = (\n    config.ports\n    .port(name='tx', location='192.168.0.1;2;1')\n    .port(name='rx', location='192.168.0.1;2;2')\n)\n# configure layer 1 properties\nly, = config.layer1.layer1(name='ly')\nly.port_names = [tx.name, rx.name]\nly.speed = ly.SPEED_10_GBPS\nly.media = ly.FIBER\n# configure flow properties\nflw, = config.flows.flow(name='flw')\n# flow endpoints\nflw.tx_rx.port.tx_name = tx.name\nflw.tx_rx.port.rx_name = rx.name\n# enable flow metrics\nflw.metrics.enable = True\n# configure rate, size, frame count\nflw.size.fixed = 128\nflw.rate.pps = 1000\nflw.duration.fixed_packets.packets = 10000\n# configure protocol headers with defaults fields\nflw.packet.ethernet().vlan().ipv4().tcp()\n# push configuration\napi.set_config(config)\n# start transmitting configured flows\nts = api.transmit_state()\nts.state = ts.START\napi.set_transmit_state(ts)\n# create a query for flow metrics\nreq = api.metrics_request()\nreq.flow.flow_names = [flw.name]\n# wait for flow metrics to be as expected\nwhile True:\n    res = api.get_metrics(req)\n    if all([m.frames_tx == 10000 == m.frames_rx for m in res.flow_metrics]):\n        break\n```\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "The Snappi IxNetwork Open Traffic Generator Python Package",
    "version": "0.4.10",
    "split_keywords": [
        "snappi",
        "ixnetwork",
        "testing",
        "open",
        "traffic",
        "generator",
        "automation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "2ec89e3bf94ba6e4f8cefa19c9de9099",
                "sha256": "3de47205214f13a0640aa5d126012831773155f9136e51c918b50ea901d796b0"
            },
            "downloads": -1,
            "filename": "snappi_ixnetwork-0.4.10-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2ec89e3bf94ba6e4f8cefa19c9de9099",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=2.7, <4",
            "size": 55550,
            "upload_time": "2021-07-16T04:40:05",
            "upload_time_iso_8601": "2021-07-16T04:40:05.782174Z",
            "url": "https://files.pythonhosted.org/packages/c7/03/42d828d062a503a5a445e280a97feab20d4f3c4ab8e72f3be6a144ba35b0/snappi_ixnetwork-0.4.10-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "7c4cd59b7b8f4c769d4252242979d63d",
                "sha256": "3166614c83cc05445e66d3921e251ef315b99fdebe38dbe910297f928c4be843"
            },
            "downloads": -1,
            "filename": "snappi_ixnetwork-0.4.10.tar.gz",
            "has_sig": false,
            "md5_digest": "7c4cd59b7b8f4c769d4252242979d63d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=2.7, <4",
            "size": 50726,
            "upload_time": "2021-07-16T04:40:08",
            "upload_time_iso_8601": "2021-07-16T04:40:08.110531Z",
            "url": "https://files.pythonhosted.org/packages/3d/d1/3b7973f54de0ce7371eeaab892ef441dbe88a712224366080559b34ee7db/snappi_ixnetwork-0.4.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2021-07-16 04:40:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "open-traffic-generator",
    "github_project": "snappi-ixnetwork",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "black",
            "specs": []
        }
    ],
    "lcname": "snappi-ixnetwork"
}
        
Elapsed time: 0.29539s