Skip to main content

The Snappi Open Traffic Generator Python Package

Project description

snappi

The open traffic generator client.

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
import pandas

api = snappi.Api()
control_state = api.control_state.set(choice='config_state')
config = control_state.config_state.set(state='set').config
config.ports.append(name='Tx Port', location='10.36.74.26;02;13')
config.ports.append(name='Rx Port', location='10.36.74.26;02;14')
flow = config.flows.append(name='Tx -> Rx Flow')
flow.tx_rx.set(choice='port').port.set(tx_port_name=config.ports[0].name,
                                       rx_port_name=config.ports[1].name)

# use flowheader.choice and create property accessors
flow.packet.ethernet().vlan().ipv4().tcp() 

flow.packet.append(choice='ethernet').append(choice='vlan').append(
    choice='ipv4').append(choice='tcp')

flow.packet[0].ethernet

flow.packet.append().ethernet
flow.packet.append().ipv4
flow.packet.append().tcp

flow.packet = [ixsnappi.flowethernet.FlowEthernet(), FlowIpv4()]

flow.size.set(choice='fixed').fixed = 128
flow.duration.set(choice='packets').packets.set(packets=100000)
flow.rate.set(units='pps', value=1000)
api.set_state(api.control_state)

control_state.set(choice='flow_transmit_state')
control_state.flow_transmit_state.state = 'start'
api.set_state(control_state)

request = result.PortRequest(
    column_names=['name', 'location', 'frames_tx', 'frames_rx'])
while True:
    results = api.get_port_results(request)
    df = pandas.DataFrame.from_dict(results)
    print(df)
    if df.frames_tx.sum() >= config.flows[0].duration.packets.packets:
        break

Project details


Release history Release notifications | RSS feed

This version

0.0.1

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

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: snappi-0.0.1.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.0

File hashes

Hashes for snappi-0.0.1.tar.gz
Algorithm Hash digest
SHA256 dcbb3f358f02fbcb9aedf9f99f486a88de17d56e1de9eb84d4ef4d3249512a04
MD5 d3b4fabd2bb8d6d1e72d80a1b2790751
BLAKE2b-256 20c4a62336ecc3976fc21b97e3fe2ee3b8733ff0429bd37e6546e4d97e9ce199

See more details on using hashes here.

File details

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

File metadata

  • Download URL: snappi-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 60.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.0

File hashes

Hashes for snappi-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 59603e09e1bc00aa492a678e3e3418799accf48bcee2390b0ca40ce703799ac0
MD5 557025071deee0c6c0b3a85a69edc353
BLAKE2b-256 40c5c39b8ededd017d735a9ff1bdaca1c3d191d44e73a2bf4f983a1afe7e9485

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