Skip to main content

Lbr-trex-client package contains TRex traffic generator client API as Python package.

Project description

Python package lbr-trex-client

Cisco TRex traffic generator is distributed as a single .tar.gz archive and contains all external libraries/packages for running TRex. This means trying to use or import TRex Client Python API in your code is relatively complicated, especially if your code runs on different machine than TRex itself.

The purpose of this package is to provide client API in form of Python package which can be easily installed via pip. This API is part of TRex as another tar.gz archive. It was repackaged as standard Python module. Versions of this package follow TRex version scheme. Although module was tested only on Python 3.8, it is likely that newer Python versions will work as well. Official source code can be also found on TRex GitHub.

Installation

You can use following command for installation:

python3.8 -m pip install lbr-trex-client

Usage

Importing lbr_trex_client automatically sets paths and environment variables for hassle-free usage of TRex Client API. Imports used in, for example, TRex Cookbook will then work as well.

import lbr_trex_client

from trex.stl.api import *
from trex.astf.api import *
from trex_stl_lib.api import *
from trex_client import CTRexClient
from trex_exceptions import TRexInUseError
from scapy.layers.dns import *
...

Alternatively you can use

from lbr_trex_client.interactive.trex.stl.api import *
from lbr_trex_client.interactive.trex.astf.api import *
...

You can notice that imports above also contain Scapy. As mentioned, TRex archive contains all dependencies, including modified Scapy. Explore external_libs to see all external packages.

Note that if your code already imported given package, then TRex will replace it with it's own version of package. The replacement method however is not perfect and you can still be left with some local and some TRex version of modules. This is mostly evident with Scapy, especially with from scapy.all import * import. It can then lead to strange errors.

Differences compared to official TRex API

Package lbr-trex-client has few changes compared to official client package:

  • stf/examples directory is removed (examples are not required for API).
  • interactive/profiles directory is removed (contains more examples and tests).
  • interactive/trex/examples directory is removed (more examples).
  • interactive/trex/.vscode/tags file is removed (unimportant).
  • interactive/trex/wireless unit tests, examples and Sphinx docs removed.
  • __pycache__ and *.pyc files removed.
  • sys.path and os.environ are modified on module import for hassle-free usage.

Known issues

On import you can get warning messages from Scapy:

...lbr_trex_client/external_libs/scapy-2.4.3/scapy/layers/ipsec.py:469: CryptographyDeprecationWarning: Blowfish has been deprecated
  cipher=algorithms.Blowfish,
...lbr_trex_client/external_libs/scapy-2.4.3/scapy/layers/ipsec.py:483: CryptographyDeprecationWarning: CAST5 has been deprecated
  cipher=algorithms.CAST5,

This is related to the fact that TRex uses older Scapy version.

Links to official TRex documentation

Here are links to API reference of main components:

General TRex documentation can be found here.

Custom TRex API

You can also use lbr-testsuite package for custom TRex API that is built on top of this package. For more information see testsuite.

Hosting and contribution

Package lbr-trex-client is hosted publicly on Python Package Index (PyPI) and internally in GitLab's Package Registry.

This project uses GitLab CI pipeline which is triggered with every new commit. Pipeline creates .whl package from contents inside lbr_trex_client folder.

If pipeline triggers on master branch, then package is also uploaded into GitLab Package Registry. Version of package is defined by git tags. Additionally, package is also uploaded on PyPI if it has a tag.

Repository Maintainer

License

Package is published under Apache License Version 2.0, which is inherited from the TRex traffic generator source. The TRex client API contains also modified version of Scapy library, which is published under GPLv2 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

lbr_trex_client-3.4.0-py3-none-any.whl (5.0 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page