Skip to main content

The Snappi Open Traffic Generator Python Package

Project description

snappi

Create test case scripts once using the snappi client and run them using a traffic generator that conforms to the Open Traffic Generator API.

Install the client

pip install snappi

Start scripting

"""A simple test that demonstrates the following:
- A port that transmits an ethernet/vlan/ipv4/tcp flow 
for a specified duration and a port that receives the packets.
- While the flow is transmitting the script prints out tx and rx statistics.
- Once all the packets have been transmitted the script will end. 
"""
import snappi

api = snappi.api()
config = api.config()
tx_port, rx_port = config.ports \
    .port(name='Tx Port', location='10.36.74.26;02;13')
    .port(name='Rx Port', location='10.36.74.26;02;14')
flow = config.flows.flow(name='Tx -> Rx Flow')[-1]
flow.tx_rx.port.tx_name = tx_port.name
flow.tx_rx.port.tx_name = rx_port.name
flow.packet.ethernet().vlan().ipv4().tcp()
flow.size.fixed = 128
flow.rate.pps = 1000
flow.duration.fixed_packets.packets = 10000
api.set_config(config)

tx_state = api.transmit_state(state='start')
api.set_transmit(tx_state)

while True:
    metrics = api.get_port_metrics(api.port_metrics_request())
    tx_frames = sum([metric.frames_tx for metric in metrics])
    if tx_frames >= flow.duration.fixed_packets.packets:
        break

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snappi-0.1.18.tar.gz (45.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snappi-0.1.18-py2.py3-none-any.whl (52.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file snappi-0.1.18.tar.gz.

File metadata

  • Download URL: snappi-0.1.18.tar.gz
  • Upload date:
  • Size: 45.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for snappi-0.1.18.tar.gz
Algorithm Hash digest
SHA256 92053b307fffbfecd8e7ae0112d12c4d7dffb967233e37852d948f98e5dd4468
MD5 24a82200b7ab6fd5b48a9e463b7d910e
BLAKE2b-256 222332141df493a2aaae297941c37f4e112471f4813c981e427f413d36faa77c

See more details on using hashes here.

File details

Details for the file snappi-0.1.18-py2.py3-none-any.whl.

File metadata

  • Download URL: snappi-0.1.18-py2.py3-none-any.whl
  • Upload date:
  • Size: 52.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for snappi-0.1.18-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1cb62c50a3d74610bacb28ad751d0119ab5759a708c31a879eda4f700021a8f8
MD5 80b5b6cb0f970b305bd169ac20e5677f
BLAKE2b-256 914e3d6da8e25b79ae253e9706bf45a72d996161d3c3e3250bfc2b6b2e56ea28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page