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.15.tar.gz (43.9 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.15-py2.py3-none-any.whl (50.9 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: snappi-0.1.15.tar.gz
  • Upload date:
  • Size: 43.9 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.3 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for snappi-0.1.15.tar.gz
Algorithm Hash digest
SHA256 41a957f060e418130a89ed3aacdb78974b4861ea3d380ec28ae20c7e9e61da81
MD5 45cbd621012ac1a1584eb9cf2ae82d3c
BLAKE2b-256 9583e9a7d498764ee3b1c8456a1dbdead5197a5b0a4fdefacb1cf7a593238d72

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for snappi-0.1.15-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b0149b6b2f48dc3a20e7f571fa1ad8457d528b88f630c895561ac813b675702e
MD5 177d93f1ddbeb92b4109b1aa7e4bd5c8
BLAKE2b-256 efe11d4c188fc4bcb1d56a3c56308805a599b1a189da6b76a60f2882d0c8063c

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