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.7

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

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: snappi-0.1.7.tar.gz
  • Upload date:
  • Size: 46.9 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.7.tar.gz
Algorithm Hash digest
SHA256 7ecee0118c9a6357c158fc972b63b27760173d58cfb7c9f323b3ee0141801418
MD5 64c4e572a9d65cabd1ce9d47c7217299
BLAKE2b-256 2be7fb9dc3c2c05b265bd1f3c8f4e30effe9db2f18f08845986cdd3b4a8fa78b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: snappi-0.1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 84.7 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.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e12b6b9588c99c65094da3c89e967c50118fd1a01112156af108b05dbb7814b8
MD5 5436c46d616cca6b501cec1a2c420c44
BLAKE2b-256 0bbe8477671bd8857ec63bc189e20669716f937e6dc4d29aaf109d0f4f686fdd

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