diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-ixnetwork-open-traffic-generator.spec | 274 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 276 insertions, 0 deletions
@@ -0,0 +1 @@ +/ixnetwork_open_traffic_generator-0.0.85.tar.gz diff --git a/python-ixnetwork-open-traffic-generator.spec b/python-ixnetwork-open-traffic-generator.spec new file mode 100644 index 0000000..4a1e9bd --- /dev/null +++ b/python-ixnetwork-open-traffic-generator.spec @@ -0,0 +1,274 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ixnetwork-open-traffic-generator +Version: 0.0.85 +Release: 1 +Summary: The IxNetwork Open Traffic Generator Python Package +License: MIT +URL: https://github.com/open-traffic-generator +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/3a/c1/5439d272fcb841544c24e4a83e223dcb4e4aa9939654402e22a94f545ee3/ixnetwork_open_traffic_generator-0.0.85.tar.gz +BuildArch: noarch + +Requires: python3-pyaml +Requires: python3-jsonpath-ng +Requires: python3-abstract-open-traffic-generator +Requires: python3-ixnetwork-restpy +Requires: python3-pytest +Requires: python3-flake8 +Requires: python3-dpkt + +%description +# Keysight IxNetwork Open Traffic Generator +[](https://github.com/open-traffic-generator/snappi-ixnetwork/actions) +[](https://pypi.org/project/ixnetwork-open-traffic-generator) +[](https://pypi.python.org/pypi/ixnetwork-open-traffic-generator) +[](https://en.wikipedia.org/wiki/MIT_License) +[](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/alerts/) +[](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/context:python) + +The Keysight IxNetwork implementation of the open-traffic-generator models. +To start contributing, please see [contributing.md](contributing.md). + +# Getting Started +## Install client package +``` +python -m pip install --upgrade ixnetwork-open-traffic-generator +``` +## Start scripting +```python +# for constructing traffic configuration +from abstract_open_traffic_generator import ( + port, flow, config, control, result +) +# for making API calls +from ixnetwork_open_traffic_generator.ixnetworkapi import IxNetworkApi + +# provide API server and port addresses +api = IxNetworkApi(address='127.0.0.1', port=11009) +tx = port.Port(name='Tx Port', location='127.0.0.1;2;1') +rx = port.Port(name='Rx Port', location='127.0.0.1;2;2') + +# configure one TCP flow (with default protocol headers) to send 10000 packets, +# each of 128 bytes at 10% of max line rate +flw = flow.Flow( + name='Flow %s->%s' % (tx.name, rx.name), + tx_rx=flow.TxRx( + flow.PortTxRx(tx_port_name=tx.name, rx_port_name=rx.name) + ), + packet=[ + flow.Header(flow.Ethernet()), + flow.Header(flow.Vlan()), + flow.Header(flow.Ipv4()), + flow.Header(flow.Tcp()) + ], + size=flow.Size(128), + rate=flow.Rate(value=10, unit='line'), + duration=flow.Duration(flow.FixedPackets(packets=10000)) +) + +# push configuration and start transmitting flows +cfg = config.Config(ports=[tx, rx], flows=[flw]) +api.set_state(control.State(control.ConfigState(config=cfg, state='set'))) +api.set_state(control.State(control.FlowTransmitState(state='start'))) + +# fetch tx port stats and wait until total frames sent is correct or retry +# retry count is 0 +retry = 5 +request = result.PortRequest(port_names=[tx.name], column_names=['frames_tx']) + +while sum([p['frames_tx'] for p in api.get_port_results(request)]) != 10000: + assert retry > 0 + retry -= 1 + +``` + + + + +%package -n python3-ixnetwork-open-traffic-generator +Summary: The IxNetwork Open Traffic Generator Python Package +Provides: python-ixnetwork-open-traffic-generator +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ixnetwork-open-traffic-generator +# Keysight IxNetwork Open Traffic Generator +[](https://github.com/open-traffic-generator/snappi-ixnetwork/actions) +[](https://pypi.org/project/ixnetwork-open-traffic-generator) +[](https://pypi.python.org/pypi/ixnetwork-open-traffic-generator) +[](https://en.wikipedia.org/wiki/MIT_License) +[](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/alerts/) +[](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/context:python) + +The Keysight IxNetwork implementation of the open-traffic-generator models. +To start contributing, please see [contributing.md](contributing.md). + +# Getting Started +## Install client package +``` +python -m pip install --upgrade ixnetwork-open-traffic-generator +``` +## Start scripting +```python +# for constructing traffic configuration +from abstract_open_traffic_generator import ( + port, flow, config, control, result +) +# for making API calls +from ixnetwork_open_traffic_generator.ixnetworkapi import IxNetworkApi + +# provide API server and port addresses +api = IxNetworkApi(address='127.0.0.1', port=11009) +tx = port.Port(name='Tx Port', location='127.0.0.1;2;1') +rx = port.Port(name='Rx Port', location='127.0.0.1;2;2') + +# configure one TCP flow (with default protocol headers) to send 10000 packets, +# each of 128 bytes at 10% of max line rate +flw = flow.Flow( + name='Flow %s->%s' % (tx.name, rx.name), + tx_rx=flow.TxRx( + flow.PortTxRx(tx_port_name=tx.name, rx_port_name=rx.name) + ), + packet=[ + flow.Header(flow.Ethernet()), + flow.Header(flow.Vlan()), + flow.Header(flow.Ipv4()), + flow.Header(flow.Tcp()) + ], + size=flow.Size(128), + rate=flow.Rate(value=10, unit='line'), + duration=flow.Duration(flow.FixedPackets(packets=10000)) +) + +# push configuration and start transmitting flows +cfg = config.Config(ports=[tx, rx], flows=[flw]) +api.set_state(control.State(control.ConfigState(config=cfg, state='set'))) +api.set_state(control.State(control.FlowTransmitState(state='start'))) + +# fetch tx port stats and wait until total frames sent is correct or retry +# retry count is 0 +retry = 5 +request = result.PortRequest(port_names=[tx.name], column_names=['frames_tx']) + +while sum([p['frames_tx'] for p in api.get_port_results(request)]) != 10000: + assert retry > 0 + retry -= 1 + +``` + + + + +%package help +Summary: Development documents and examples for ixnetwork-open-traffic-generator +Provides: python3-ixnetwork-open-traffic-generator-doc +%description help +# Keysight IxNetwork Open Traffic Generator +[](https://github.com/open-traffic-generator/snappi-ixnetwork/actions) +[](https://pypi.org/project/ixnetwork-open-traffic-generator) +[](https://pypi.python.org/pypi/ixnetwork-open-traffic-generator) +[](https://en.wikipedia.org/wiki/MIT_License) +[](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/alerts/) +[](https://lgtm.com/projects/g/open-traffic-generator/snappi-ixnetwork/context:python) + +The Keysight IxNetwork implementation of the open-traffic-generator models. +To start contributing, please see [contributing.md](contributing.md). + +# Getting Started +## Install client package +``` +python -m pip install --upgrade ixnetwork-open-traffic-generator +``` +## Start scripting +```python +# for constructing traffic configuration +from abstract_open_traffic_generator import ( + port, flow, config, control, result +) +# for making API calls +from ixnetwork_open_traffic_generator.ixnetworkapi import IxNetworkApi + +# provide API server and port addresses +api = IxNetworkApi(address='127.0.0.1', port=11009) +tx = port.Port(name='Tx Port', location='127.0.0.1;2;1') +rx = port.Port(name='Rx Port', location='127.0.0.1;2;2') + +# configure one TCP flow (with default protocol headers) to send 10000 packets, +# each of 128 bytes at 10% of max line rate +flw = flow.Flow( + name='Flow %s->%s' % (tx.name, rx.name), + tx_rx=flow.TxRx( + flow.PortTxRx(tx_port_name=tx.name, rx_port_name=rx.name) + ), + packet=[ + flow.Header(flow.Ethernet()), + flow.Header(flow.Vlan()), + flow.Header(flow.Ipv4()), + flow.Header(flow.Tcp()) + ], + size=flow.Size(128), + rate=flow.Rate(value=10, unit='line'), + duration=flow.Duration(flow.FixedPackets(packets=10000)) +) + +# push configuration and start transmitting flows +cfg = config.Config(ports=[tx, rx], flows=[flw]) +api.set_state(control.State(control.ConfigState(config=cfg, state='set'))) +api.set_state(control.State(control.FlowTransmitState(state='start'))) + +# fetch tx port stats and wait until total frames sent is correct or retry +# retry count is 0 +retry = 5 +request = result.PortRequest(port_names=[tx.name], column_names=['frames_tx']) + +while sum([p['frames_tx'] for p in api.get_port_results(request)]) != 10000: + assert retry > 0 + retry -= 1 + +``` + + + + +%prep +%autosetup -n ixnetwork-open-traffic-generator-0.0.85 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-ixnetwork-open-traffic-generator -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.85-1 +- Package Spec generated @@ -0,0 +1 @@ +2d6df2d66f4a2011504c46984e8b0043 ixnetwork_open_traffic_generator-0.0.85.tar.gz |