From cdcc62972d42f009f55e6aeb2ca5c60c3acd75eb Mon Sep 17 00:00:00 2001 From: Dan Klein Date: Wed, 26 Aug 2015 14:27:43 +0300 Subject: [PATCH] added dpkt package, initial stateless client implementation --- .../python}/dpkt-1.8.6.2/AUTHORS | 0 .../python}/dpkt-1.8.6.2/CHANGES | 0 .../python}/dpkt-1.8.6.2/LICENSE | 0 .../python}/dpkt-1.8.6.2/MANIFEST.in | 0 .../python}/dpkt-1.8.6.2/PKG-INFO | 0 .../python}/dpkt-1.8.6.2/README.md | 0 .../python}/dpkt-1.8.6.2/README.rst | 0 .../python}/dpkt-1.8.6.2/docs/Makefile | 0 .../python}/dpkt-1.8.6.2/docs/api/api_auto.rst | 0 .../python}/dpkt-1.8.6.2/docs/api/index.rst | 0 .../python}/dpkt-1.8.6.2/docs/authors.rst | 0 .../python}/dpkt-1.8.6.2/docs/badges.rst | 0 .../python}/dpkt-1.8.6.2/docs/changelog.rst | 0 .../python}/dpkt-1.8.6.2/docs/conf.py | 0 .../python}/dpkt-1.8.6.2/docs/contributing.rst | 0 .../python}/dpkt-1.8.6.2/docs/examples.rst | 0 .../python}/dpkt-1.8.6.2/docs/index.rst | 0 .../python}/dpkt-1.8.6.2/docs/installation.rst | 0 .../python}/dpkt-1.8.6.2/docs/license.rst | 0 .../python}/dpkt-1.8.6.2/docs/plans.rst | 0 .../python}/dpkt-1.8.6.2/docs/requirements.txt | 0 .../python}/dpkt-1.8.6.2/dpkt.egg-info/PKG-INFO | 0 .../python}/dpkt-1.8.6.2/dpkt.egg-info/SOURCES.txt | 0 .../dpkt.egg-info/dependency_links.txt | 0 .../dpkt-1.8.6.2/dpkt.egg-info/not-zip-safe | 0 .../dpkt-1.8.6.2/dpkt.egg-info/top_level.txt | 0 .../python}/dpkt-1.8.6.2/dpkt/__init__.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ah.py | 0 .../python}/dpkt-1.8.6.2/dpkt/aim.py | 0 .../python}/dpkt-1.8.6.2/dpkt/aoe.py | 0 .../python}/dpkt-1.8.6.2/dpkt/aoeata.py | 0 .../python}/dpkt-1.8.6.2/dpkt/aoecfg.py | 0 .../python}/dpkt-1.8.6.2/dpkt/arp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/asn1.py | 0 .../python}/dpkt-1.8.6.2/dpkt/bgp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/cdp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/crc32c.py | 0 .../python}/dpkt-1.8.6.2/dpkt/decorators.py | 0 .../python}/dpkt-1.8.6.2/dpkt/dhcp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/diameter.py | 0 .../python}/dpkt-1.8.6.2/dpkt/dns.py | 0 .../python}/dpkt-1.8.6.2/dpkt/dpkt.py | 0 .../python}/dpkt-1.8.6.2/dpkt/dtp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/esp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ethernet.py | 0 .../python}/dpkt-1.8.6.2/dpkt/gre.py | 0 .../python}/dpkt-1.8.6.2/dpkt/gzip.py | 0 .../python}/dpkt-1.8.6.2/dpkt/h225.py | 0 .../python}/dpkt-1.8.6.2/dpkt/hsrp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/http.py | 0 .../python}/dpkt-1.8.6.2/dpkt/icmp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/icmp6.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ieee80211.py | 0 .../python}/dpkt-1.8.6.2/dpkt/igmp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ip.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ip6.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ipx.py | 0 .../python}/dpkt-1.8.6.2/dpkt/llc.py | 0 .../python}/dpkt-1.8.6.2/dpkt/loopback.py | 0 .../python}/dpkt-1.8.6.2/dpkt/mrt.py | 0 .../python}/dpkt-1.8.6.2/dpkt/netbios.py | 0 .../python}/dpkt-1.8.6.2/dpkt/netflow.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ntp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ospf.py | 0 .../python}/dpkt-1.8.6.2/dpkt/pcap.py | 0 .../python}/dpkt-1.8.6.2/dpkt/pim.py | 0 .../python}/dpkt-1.8.6.2/dpkt/pmap.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ppp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/pppoe.py | 0 .../python}/dpkt-1.8.6.2/dpkt/qq.py | 0 .../python}/dpkt-1.8.6.2/dpkt/radiotap.py | 0 .../python}/dpkt-1.8.6.2/dpkt/radius.py | 0 .../python}/dpkt-1.8.6.2/dpkt/rfb.py | 0 .../python}/dpkt-1.8.6.2/dpkt/rip.py | 0 .../python}/dpkt-1.8.6.2/dpkt/rpc.py | 0 .../python}/dpkt-1.8.6.2/dpkt/rtp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/rx.py | 0 .../python}/dpkt-1.8.6.2/dpkt/sccp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/sctp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/sip.py | 0 .../python}/dpkt-1.8.6.2/dpkt/sll.py | 0 .../python}/dpkt-1.8.6.2/dpkt/smb.py | 0 .../python}/dpkt-1.8.6.2/dpkt/snoop.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ssl.py | 0 .../python}/dpkt-1.8.6.2/dpkt/ssl_ciphersuites.py | 0 .../python}/dpkt-1.8.6.2/dpkt/stp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/stun.py | 0 .../python}/dpkt-1.8.6.2/dpkt/tcp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/telnet.py | 0 .../python}/dpkt-1.8.6.2/dpkt/tftp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/tns.py | 0 .../python}/dpkt-1.8.6.2/dpkt/tpkt.py | 0 .../python}/dpkt-1.8.6.2/dpkt/udp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/vrrp.py | 0 .../python}/dpkt-1.8.6.2/dpkt/yahoo.py | 0 .../python}/dpkt-1.8.6.2/setup.cfg | 0 .../python}/dpkt-1.8.6.2/setup.py | 0 .../client/trex_stateless_client.py | 58 +++++++++++++++++ .../client_utils/jsonrpc_client.py | 12 ++-- .../client_utils/outer_packages.py | 4 +- .../client_utils/packet_builder.py | 11 ++++ .../examples/interactive_stateless.py | 74 ++++++++++++++++++---- 102 files changed, 140 insertions(+), 19 deletions(-) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/AUTHORS (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/CHANGES (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/LICENSE (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/MANIFEST.in (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/PKG-INFO (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/README.md (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/README.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/Makefile (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/api/api_auto.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/api/index.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/authors.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/badges.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/changelog.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/conf.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/contributing.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/examples.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/index.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/installation.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/license.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/plans.rst (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/docs/requirements.txt (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt.egg-info/PKG-INFO (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt.egg-info/SOURCES.txt (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt.egg-info/dependency_links.txt (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt.egg-info/not-zip-safe (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt.egg-info/top_level.txt (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/__init__.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ah.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/aim.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/aoe.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/aoeata.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/aoecfg.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/arp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/asn1.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/bgp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/cdp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/crc32c.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/decorators.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/dhcp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/diameter.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/dns.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/dpkt.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/dtp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/esp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ethernet.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/gre.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/gzip.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/h225.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/hsrp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/http.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/icmp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/icmp6.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ieee80211.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/igmp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ip.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ip6.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ipx.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/llc.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/loopback.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/mrt.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/netbios.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/netflow.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ntp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ospf.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/pcap.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/pim.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/pmap.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ppp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/pppoe.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/qq.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/radiotap.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/radius.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/rfb.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/rip.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/rpc.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/rtp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/rx.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/sccp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/sctp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/sip.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/sll.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/smb.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/snoop.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ssl.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/ssl_ciphersuites.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/stp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/stun.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/tcp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/telnet.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/tftp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/tns.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/tpkt.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/udp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/vrrp.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/dpkt/yahoo.py (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/setup.cfg (100%) rename {scripts/automation/trex_control_plane/python_lib => external_libs/python}/dpkt-1.8.6.2/setup.py (100%) create mode 100644 scripts/automation/trex_control_plane/client/trex_stateless_client.py create mode 100644 scripts/automation/trex_control_plane/client_utils/packet_builder.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/AUTHORS b/external_libs/python/dpkt-1.8.6.2/AUTHORS similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/AUTHORS rename to external_libs/python/dpkt-1.8.6.2/AUTHORS diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/CHANGES b/external_libs/python/dpkt-1.8.6.2/CHANGES similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/CHANGES rename to external_libs/python/dpkt-1.8.6.2/CHANGES diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/LICENSE b/external_libs/python/dpkt-1.8.6.2/LICENSE similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/LICENSE rename to external_libs/python/dpkt-1.8.6.2/LICENSE diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/MANIFEST.in b/external_libs/python/dpkt-1.8.6.2/MANIFEST.in similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/MANIFEST.in rename to external_libs/python/dpkt-1.8.6.2/MANIFEST.in diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/PKG-INFO b/external_libs/python/dpkt-1.8.6.2/PKG-INFO similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/PKG-INFO rename to external_libs/python/dpkt-1.8.6.2/PKG-INFO diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/README.md b/external_libs/python/dpkt-1.8.6.2/README.md similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/README.md rename to external_libs/python/dpkt-1.8.6.2/README.md diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/README.rst b/external_libs/python/dpkt-1.8.6.2/README.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/README.rst rename to external_libs/python/dpkt-1.8.6.2/README.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/Makefile b/external_libs/python/dpkt-1.8.6.2/docs/Makefile similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/Makefile rename to external_libs/python/dpkt-1.8.6.2/docs/Makefile diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/api/api_auto.rst b/external_libs/python/dpkt-1.8.6.2/docs/api/api_auto.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/api/api_auto.rst rename to external_libs/python/dpkt-1.8.6.2/docs/api/api_auto.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/api/index.rst b/external_libs/python/dpkt-1.8.6.2/docs/api/index.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/api/index.rst rename to external_libs/python/dpkt-1.8.6.2/docs/api/index.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/authors.rst b/external_libs/python/dpkt-1.8.6.2/docs/authors.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/authors.rst rename to external_libs/python/dpkt-1.8.6.2/docs/authors.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/badges.rst b/external_libs/python/dpkt-1.8.6.2/docs/badges.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/badges.rst rename to external_libs/python/dpkt-1.8.6.2/docs/badges.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/changelog.rst b/external_libs/python/dpkt-1.8.6.2/docs/changelog.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/changelog.rst rename to external_libs/python/dpkt-1.8.6.2/docs/changelog.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/conf.py b/external_libs/python/dpkt-1.8.6.2/docs/conf.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/conf.py rename to external_libs/python/dpkt-1.8.6.2/docs/conf.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/contributing.rst b/external_libs/python/dpkt-1.8.6.2/docs/contributing.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/contributing.rst rename to external_libs/python/dpkt-1.8.6.2/docs/contributing.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/examples.rst b/external_libs/python/dpkt-1.8.6.2/docs/examples.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/examples.rst rename to external_libs/python/dpkt-1.8.6.2/docs/examples.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/index.rst b/external_libs/python/dpkt-1.8.6.2/docs/index.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/index.rst rename to external_libs/python/dpkt-1.8.6.2/docs/index.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/installation.rst b/external_libs/python/dpkt-1.8.6.2/docs/installation.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/installation.rst rename to external_libs/python/dpkt-1.8.6.2/docs/installation.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/license.rst b/external_libs/python/dpkt-1.8.6.2/docs/license.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/license.rst rename to external_libs/python/dpkt-1.8.6.2/docs/license.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/plans.rst b/external_libs/python/dpkt-1.8.6.2/docs/plans.rst similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/plans.rst rename to external_libs/python/dpkt-1.8.6.2/docs/plans.rst diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/requirements.txt b/external_libs/python/dpkt-1.8.6.2/docs/requirements.txt similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/docs/requirements.txt rename to external_libs/python/dpkt-1.8.6.2/docs/requirements.txt diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/PKG-INFO b/external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/PKG-INFO similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/PKG-INFO rename to external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/PKG-INFO diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/SOURCES.txt b/external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/SOURCES.txt similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/SOURCES.txt rename to external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/SOURCES.txt diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/dependency_links.txt b/external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/dependency_links.txt similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/dependency_links.txt rename to external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/dependency_links.txt diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/not-zip-safe b/external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/not-zip-safe similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/not-zip-safe rename to external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/not-zip-safe diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/top_level.txt b/external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/top_level.txt similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt.egg-info/top_level.txt rename to external_libs/python/dpkt-1.8.6.2/dpkt.egg-info/top_level.txt diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/__init__.py b/external_libs/python/dpkt-1.8.6.2/dpkt/__init__.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/__init__.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/__init__.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ah.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ah.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ah.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ah.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aim.py b/external_libs/python/dpkt-1.8.6.2/dpkt/aim.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aim.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/aim.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aoe.py b/external_libs/python/dpkt-1.8.6.2/dpkt/aoe.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aoe.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/aoe.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aoeata.py b/external_libs/python/dpkt-1.8.6.2/dpkt/aoeata.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aoeata.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/aoeata.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aoecfg.py b/external_libs/python/dpkt-1.8.6.2/dpkt/aoecfg.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/aoecfg.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/aoecfg.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/arp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/arp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/arp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/arp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/asn1.py b/external_libs/python/dpkt-1.8.6.2/dpkt/asn1.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/asn1.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/asn1.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/bgp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/bgp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/bgp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/bgp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/cdp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/cdp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/cdp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/cdp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/crc32c.py b/external_libs/python/dpkt-1.8.6.2/dpkt/crc32c.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/crc32c.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/crc32c.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/decorators.py b/external_libs/python/dpkt-1.8.6.2/dpkt/decorators.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/decorators.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/decorators.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dhcp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/dhcp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dhcp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/dhcp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/diameter.py b/external_libs/python/dpkt-1.8.6.2/dpkt/diameter.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/diameter.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/diameter.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dns.py b/external_libs/python/dpkt-1.8.6.2/dpkt/dns.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dns.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/dns.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dpkt.py b/external_libs/python/dpkt-1.8.6.2/dpkt/dpkt.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dpkt.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/dpkt.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dtp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/dtp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/dtp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/dtp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/esp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/esp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/esp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/esp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ethernet.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ethernet.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ethernet.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ethernet.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/gre.py b/external_libs/python/dpkt-1.8.6.2/dpkt/gre.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/gre.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/gre.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/gzip.py b/external_libs/python/dpkt-1.8.6.2/dpkt/gzip.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/gzip.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/gzip.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/h225.py b/external_libs/python/dpkt-1.8.6.2/dpkt/h225.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/h225.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/h225.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/hsrp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/hsrp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/hsrp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/hsrp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/http.py b/external_libs/python/dpkt-1.8.6.2/dpkt/http.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/http.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/http.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/icmp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/icmp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/icmp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/icmp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/icmp6.py b/external_libs/python/dpkt-1.8.6.2/dpkt/icmp6.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/icmp6.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/icmp6.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ieee80211.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ieee80211.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ieee80211.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ieee80211.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/igmp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/igmp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/igmp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/igmp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ip.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ip.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ip.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ip.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ip6.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ip6.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ip6.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ip6.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ipx.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ipx.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ipx.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ipx.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/llc.py b/external_libs/python/dpkt-1.8.6.2/dpkt/llc.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/llc.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/llc.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/loopback.py b/external_libs/python/dpkt-1.8.6.2/dpkt/loopback.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/loopback.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/loopback.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/mrt.py b/external_libs/python/dpkt-1.8.6.2/dpkt/mrt.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/mrt.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/mrt.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/netbios.py b/external_libs/python/dpkt-1.8.6.2/dpkt/netbios.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/netbios.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/netbios.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/netflow.py b/external_libs/python/dpkt-1.8.6.2/dpkt/netflow.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/netflow.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/netflow.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ntp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ntp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ntp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ntp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ospf.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ospf.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ospf.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ospf.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pcap.py b/external_libs/python/dpkt-1.8.6.2/dpkt/pcap.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pcap.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/pcap.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pim.py b/external_libs/python/dpkt-1.8.6.2/dpkt/pim.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pim.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/pim.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pmap.py b/external_libs/python/dpkt-1.8.6.2/dpkt/pmap.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pmap.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/pmap.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ppp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ppp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ppp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ppp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pppoe.py b/external_libs/python/dpkt-1.8.6.2/dpkt/pppoe.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/pppoe.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/pppoe.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/qq.py b/external_libs/python/dpkt-1.8.6.2/dpkt/qq.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/qq.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/qq.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/radiotap.py b/external_libs/python/dpkt-1.8.6.2/dpkt/radiotap.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/radiotap.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/radiotap.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/radius.py b/external_libs/python/dpkt-1.8.6.2/dpkt/radius.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/radius.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/radius.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rfb.py b/external_libs/python/dpkt-1.8.6.2/dpkt/rfb.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rfb.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/rfb.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rip.py b/external_libs/python/dpkt-1.8.6.2/dpkt/rip.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rip.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/rip.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rpc.py b/external_libs/python/dpkt-1.8.6.2/dpkt/rpc.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rpc.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/rpc.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rtp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/rtp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rtp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/rtp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rx.py b/external_libs/python/dpkt-1.8.6.2/dpkt/rx.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/rx.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/rx.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sccp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/sccp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sccp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/sccp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sctp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/sctp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sctp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/sctp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sip.py b/external_libs/python/dpkt-1.8.6.2/dpkt/sip.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sip.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/sip.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sll.py b/external_libs/python/dpkt-1.8.6.2/dpkt/sll.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/sll.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/sll.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/smb.py b/external_libs/python/dpkt-1.8.6.2/dpkt/smb.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/smb.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/smb.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/snoop.py b/external_libs/python/dpkt-1.8.6.2/dpkt/snoop.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/snoop.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/snoop.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ssl.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ssl.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ssl.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ssl.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ssl_ciphersuites.py b/external_libs/python/dpkt-1.8.6.2/dpkt/ssl_ciphersuites.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/ssl_ciphersuites.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/ssl_ciphersuites.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/stp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/stp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/stp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/stp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/stun.py b/external_libs/python/dpkt-1.8.6.2/dpkt/stun.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/stun.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/stun.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tcp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/tcp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tcp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/tcp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/telnet.py b/external_libs/python/dpkt-1.8.6.2/dpkt/telnet.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/telnet.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/telnet.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tftp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/tftp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tftp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/tftp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tns.py b/external_libs/python/dpkt-1.8.6.2/dpkt/tns.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tns.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/tns.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tpkt.py b/external_libs/python/dpkt-1.8.6.2/dpkt/tpkt.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/tpkt.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/tpkt.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/udp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/udp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/udp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/udp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/vrrp.py b/external_libs/python/dpkt-1.8.6.2/dpkt/vrrp.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/vrrp.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/vrrp.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/yahoo.py b/external_libs/python/dpkt-1.8.6.2/dpkt/yahoo.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/dpkt/yahoo.py rename to external_libs/python/dpkt-1.8.6.2/dpkt/yahoo.py diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/setup.cfg b/external_libs/python/dpkt-1.8.6.2/setup.cfg similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/setup.cfg rename to external_libs/python/dpkt-1.8.6.2/setup.cfg diff --git a/scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/setup.py b/external_libs/python/dpkt-1.8.6.2/setup.py similarity index 100% rename from scripts/automation/trex_control_plane/python_lib/dpkt-1.8.6.2/setup.py rename to external_libs/python/dpkt-1.8.6.2/setup.py diff --git a/scripts/automation/trex_control_plane/client/trex_stateless_client.py b/scripts/automation/trex_control_plane/client/trex_stateless_client.py new file mode 100644 index 00000000..670eda1d --- /dev/null +++ b/scripts/automation/trex_control_plane/client/trex_stateless_client.py @@ -0,0 +1,58 @@ +#!/router/bin/python + +try: + # support import for Python 2 + import outer_packages +except ImportError: + # support import for Python 3 + import client.outer_packages +from client_utils.jsonrpc_client import JsonRpcClient + + + +class CTRexStatelessClient(object): + """docstring for CTRexStatelessClient""" + def __init__(self, server="localhost", port=5050, virtual=False): + super(CTRexStatelessClient, self).__init__() + self.tx_link = CTRexStatelessClient.CTxLink(server, port, virtual) + + + def transmit(self, method_name, params = {}): + return self.tx_link.transmit(method_name, params) + + + + class CTxLink(object): + """describes the connectivity of the stateless client method""" + def __init__(self, server="localhost", port=5050, virtual=False): + super(CTRexStatelessClient.CTxLink, self).__init__() + self.virtual = virtual + self.server = server + self.port = port + self.rpc_link = JsonRpcClient(self.server, self.port) + if not self.virtual: + self.rpc_link.connect() + + def transmit(self, method_name, params = {}): + if self.virtual: + print "Transmitting virtually over tcp://{server}:{port}".format( + server=self.server, + port=self.port) + id, msg = self.rpc_link.create_jsonrpc_v2(method_name, params) + print msg + return + else: + return self.rpc_link.invoke_rpc_method(method_name, params) + + + + + +class CTRexVM(object): + """docstring for CTRexVM""" + def __init__(self, arg): + super(CTRexVM, self).__init__() + self.arg = arg + +if __name__ == "__main__": + pass diff --git a/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py b/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py index 1631c494..89ac9127 100644 --- a/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py +++ b/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py @@ -34,16 +34,16 @@ class JsonRpcClient(object): print "[verbose] " + msg - def create_jsonrpc_v2 (self, method_name, params = {}, id = None): + def create_jsonrpc_v2 (self, method_name, params = {}): msg = {} msg["jsonrpc"] = "2.0" msg["method"] = method_name msg["params"] = params - msg["id"] = id + msg["id"] = self.id_gen.next() - return json.dumps(msg) + return id, json.dumps(msg) def invoke_rpc_method (self, method_name, params = {}, block = False): rc, msg = self._invoke_rpc_method(method_name, params, block) @@ -56,8 +56,7 @@ class JsonRpcClient(object): if not self.connected: return False, "Not connected to server" - id = self.id_gen.next() - msg = self.create_jsonrpc_v2(method_name, params, id = id) + id, msg = self.create_jsonrpc_v2(method_name, params) self.verbose_msg("Sending Request To Server:\n\n" + self.pretty_json(msg) + "\n") @@ -180,7 +179,8 @@ class JsonRpcClient(object): def __del__(self): print "Shutting down RPC client\n" - self.context.destroy(linger=0) + if hasattr(self, "context"): + self.context.destroy(linger=0) if __name__ == "__main__": pass diff --git a/scripts/automation/trex_control_plane/client_utils/outer_packages.py b/scripts/automation/trex_control_plane/client_utils/outer_packages.py index 53cce991..81672c91 100644 --- a/scripts/automation/trex_control_plane/client_utils/outer_packages.py +++ b/scripts/automation/trex_control_plane/client_utils/outer_packages.py @@ -9,7 +9,9 @@ ROOT_PATH = os.path.abspath(os.path.join(CURRENT_PATH, os.pardir)) PATH_TO_PYTHON_LIB = os.path.abspath(os.path.join(ROOT_PATH, os.pardir, os.pardir, os.pardir, 'external_libs', 'python')) -CLIENT_UTILS_MODULES = ['zmq'] +CLIENT_UTILS_MODULES = ['zmq', + 'dpkt-1.8.6.2' + ] def import_client_utils_modules(): diff --git a/scripts/automation/trex_control_plane/client_utils/packet_builder.py b/scripts/automation/trex_control_plane/client_utils/packet_builder.py new file mode 100644 index 00000000..c33444a7 --- /dev/null +++ b/scripts/automation/trex_control_plane/client_utils/packet_builder.py @@ -0,0 +1,11 @@ +#!/router/bin/python + + +import outer_packages +import dpkt + +class CTRexPktBuilder(object): + """docstring for CTRexPktBuilder""" + def __init__(self, arg): + super(CTRexPktBuilder, self).__init__() + self.arg = arg \ No newline at end of file diff --git a/scripts/automation/trex_control_plane/examples/interactive_stateless.py b/scripts/automation/trex_control_plane/examples/interactive_stateless.py index c0fc51a7..016888d2 100644 --- a/scripts/automation/trex_control_plane/examples/interactive_stateless.py +++ b/scripts/automation/trex_control_plane/examples/interactive_stateless.py @@ -1,14 +1,17 @@ #!/router/bin/python import trex_root_path -from client.trex_client import * +from client.trex_stateless_client import * from common.trex_exceptions import * import cmd -from python_lib.termstyle import termstyle +from termstyle import termstyle +# import termstyle import os from argparse import ArgumentParser import socket import errno +import ast +import json class InteractiveStatelessTRex(cmd.Cmd): @@ -17,10 +20,12 @@ class InteractiveStatelessTRex(cmd.Cmd): \nType help to view available pre-defined scenarios\n(c) All rights reserved.\n") prompt = '> ' - def __init__(self, verbose_mode=False): + def __init__(self, trex_host, trex_port, virtual, verbose): cmd.Cmd.__init__(self) - self.verbose = verbose_mode - self.trex = None + + self.verbose = verbose + self.virtual = virtual + self.trex = CTRexStatelessClient(trex_host, trex_port, self.virtual) self.DEFAULT_RUN_PARAMS = dict(m=1.5, nc=True, p=True, @@ -29,6 +34,47 @@ class InteractiveStatelessTRex(cmd.Cmd): l=1000) self.run_params = dict(self.DEFAULT_RUN_PARAMS) + def do_transmit(self, line): + """Transmits a request over using a given link to server.\ + \nuse: transmit [method_name] [method_params]""" + if line == "": + print "\nUsage: [method name] [param dict as string]\n" + print "Example: rpc test_add {'x': 12, 'y': 17}\n" + return + + args = line.split(' ', 1) # args will have max length of 2 + method_name = args[0] + params = None + bad_parse = False + + try: + params = ast.literal_eval(args[1]) + if not isinstance(params, dict): + bad_parse = True + except ValueError as e1: + bad_parse = True + except SyntaxError as e2: + bad_parse = True + + if bad_parse: + print "\nValue should be a valid dict: '{0}'".format(args[1]) + print "\nUsage: [method name] [param dict as string]\n" + print "Example: rpc test_add {'x': 12, 'y': 17}\n" + return + + response = self.trex.transmit(method_name, params) + if not self.virtual: + # expect response + rc, msg = response + if rc: + print "\nServer Response:\n\n" + json.dumps(msg) + "\n" + else: + print "\n*** " + msg + "\n" + + + + + def do_push_files(self, filepaths): """Pushes a custom file to be stored locally on T-Rex server.\ \nPush multiple files by specifying their path separated by ' ' (space).""" @@ -52,21 +98,25 @@ if __name__ == "__main__": parser.add_argument('-v', '--version', action='version', version='%(prog)s 1.0 \t (C) Cisco Systems Inc.\n') - # parser.add_argument("-t", "--trex-host", required = True, dest="trex_host", - # action="store", help="Specify the hostname or ip to connect with T-Rex server.", - # metavar="HOST" ) - # parser.add_argument("-p", "--trex-port", type=int, default = 8090, metavar="PORT", dest="trex_port", - # help="Select port on which the T-Rex server listens. Default port is 8090.", action="store") + parser.add_argument("-t", "--trex-host", required = True, dest="trex_host", + action="store", help="Specify the hostname or ip to connect with T-Rex server.", + metavar="HOST" ) + parser.add_argument("-p", "--trex-port", type=int, default = 8090, metavar="PORT", dest="trex_port", + help="Select port on which the T-Rex server listens. Default port is 8090.", action="store") # parser.add_argument("-m", "--maxhist", type=int, default = 100, metavar="SIZE", dest="hist_size", # help="Specify maximum history size saved at client side. Default size is 100.", action="store") + parser.add_argument("--virtual", dest="virtual", + action="store_true", + help="Switch ON virtual option at TRex client. Default is: OFF.", + default=False) parser.add_argument("--verbose", dest="verbose", action="store_true", - help="Switch ON verbose option at T-Rex client. Default is: OFF.", + help="Switch ON verbose option at TRex client. Default is: OFF.", default=False) args = parser.parse_args() try: - InteractiveStatelessTRex(args.verbose).cmdloop() + InteractiveStatelessTRex(**vars(args)).cmdloop() except KeyboardInterrupt: print termstyle.cyan('Bye Bye!') -- 2.16.6