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.12.tar.gz (44.8 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.12-py2.py3-none-any.whl (49.8 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for snappi-0.1.12.tar.gz
Algorithm Hash digest
SHA256 5bf5a634f2df8cb1de8decf58897bd7b9eb3fe870f83fbb8e5d1c7eaa3c80827
MD5 ab17bbd4e7f0ff00ec06df6633c6a398
BLAKE2b-256 d067052e043b21a62a690cbe3a75afe6050a1e2d7f0d6d70fdff34f37347e561

See more details on using hashes here.

File details

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

File metadata

  • Download URL: snappi-0.1.12-py2.py3-none-any.whl
  • Upload date:
  • Size: 49.8 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/51.3.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for snappi-0.1.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6d05ec27d8f7b0cbcefc5fd349bbbaace04e688c68dccb44c78365bce8b30d40
MD5 80c59d484e17edf002a6572e191f2b29
BLAKE2b-256 ea446c5a9bc2151f676ae934d3d3301b270c41d925cc7d1f1f0642ff464b4f73

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