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')
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:
    results = api.get_port_results(api.result_portrequest)
    df = pandas.DataFrame.from_dict(results)
    print(df)
    if df.frames_tx.sum() >= flow.duration.fixed_packets.packets:
        break

Project details


Release history Release notifications | RSS feed

This version

0.1.3

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.3.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.3-py2.py3-none-any.whl (82.0 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for snappi-0.1.3.tar.gz
Algorithm Hash digest
SHA256 87080edc77799e4bbc21c9df50960d4c6e681af6acaa2a9eea93f3414e184a4d
MD5 29fb679a8081611bf0614ed9c7c4d7bf
BLAKE2b-256 c82e4eba38cc5ab929c7af62af0b4de2482aed26216225e306038f3014caaf3a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for snappi-0.1.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b9f08d72b1d5dc28ed790b744c9ed83ae589dd8bfee0e17b4d2008f7fcb87fb9
MD5 830e6c8df1078cd6b5fb2f519447fb2e
BLAKE2b-256 a8507a219a4466d2a4f20d2da114e8bc83505c2df26ca9b6be984f989538962e

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