Ethernet/IP Tester

Multi-Functional Ethernet Test Solution

PacketExpert™ APIs for Test Automation and Remote Access

Capability of remote operation, automation, and multi-site connectivity.

 10GX Brochure   1G Brochure
  Request a Quote
PacketExpert™ APIs for Test Automation and Remote Access

Overview

With additional licensing, PacketExpert™ supports Command line Interface (CLI) to access all the functionalities remotely such as Bert, Loopback, RFC 2544, Record Playback, IPNetSim™, ExpertSAM™, PacketBroker, and Multi Stream Traffic Generator and Analyzer using Python, C# client APIs and MAPS™ CLI Client/Server architecture.

Required licenses across PacketExpert 1G, 10G, 1G/10G platforms for CLI support are -

  • CXE100 - CLI Server for PXE100 basic and optional software
  • CXN100 - CLI Server for PXN100 basic and optional software

PacketExpert™ can be configured as server-side application using the GL’s MAPS™ Client-Server architecture, to provide the capability of remote operation, automation, and multi-site connectivity, using any client-side scripting tools such as the Python and C#. On the client side, the packaged library file is provided which allows the client interface to communicate with the MAPS™ CLI Server to perform PacketExpert™ specific functionalities.

The client scripting library enables communication with the MAPS™ CLI Server using TCP/IP socket from a client environment. The MAPS™ CLI server interfaces with the PacketExpert™ hardware through the USB. The MAPS™ CLI Server developed specifically for PacketExpert™ runs (*.gls) scripts that can control the PacketExpert™ hardware. The advantage of such communication enables user to control PacketExpert™ by sending commands and receiving responses in a scripting language such as Python, C# that is already familiar with many users.

Packetexpert Python API
Packetexpert Demonstration Scripting

  • Capability of remote operation, automation and multi-site connectivity using Python/C# client and MAPS™ CLI server.
  • Scripts for MAC, VLAN, MPLS, IP and UDP layers testing
  • Multiple PacketExpert™ can be controlled remotely from single client application via MAPS™ CLI server.
  • Scripts for BertLoopbackRFC 2544Record PlaybackIPLinkSim™, PacketBroker, WAN Link Emulation, Multi-stream Traffic Generation and Analysis, and ExpertSAM™ testing

Working Principle of MAPS™ CLI Client/Server Architecture

MAPS™ CLI Client/Server platform supports various client libraries in different languages, so that users can make use of these different libraries to talk to the MAPS™ server, and achieve automation using their language of choice. However, these are relatively low-level libraries, which gives users a very fine grain control, but also requires users to put in a bit more effort to program with it.

For PacketExpert™ platform, a set of relatively High-Level APIs have been developed on top of the MAPS™ Client library, which greatly reduces the time to develop sample applications and achieve automation. These APIs are developed in the respective languages and are easy to use and intuitive. Eg: C# APIs are provided by means of API classes for each application. Similarly, Python APIs are provided through API scripts that implement API classes for different applications. Also supplied are sample applications, that users can use to work with APIs. Using these high-level APIs and sample applications, users can start developing automated testing in a very short period.

PacketExpert™ MAPS™ CLI Working Principle

PacketExpert™ MAPS™ CLI Working Principle

 

The following explains the functional modules involved in the MAPS™ CLI Test System.

  • Client user (Python, C#) run client scripts which executes the command that instructs the MAPS™ CLI Server.
  • MAPS™ Client interface interprets the User Events from Client user to MAPS™ CLI Server and vice versa.
  • MAPS™ CLI Server runs the CLI script to perform the PacketExpert™ tests like BERT, RFC 2544 etc.

This application consists of 3 functional modules. All these modules interact with each other to perform as a single entity.

(Note: “User” refers to client Python, C#)

  • Client Environment - client environment acts as a user interface, which includes predefined scripts, that can be used by user to access various PacketExpert functionalities. Client API uses the library file to communicate with the server and translate the high-level API into low level APIs. It can be any scripting tool (automation tool) like C#, Python, which provides simple scripting language with programming facilities such as looping/procedures/variables/For and While loops, making task execution simpler.

    The Client script contains built-in commands which instruct MAPS™ CLI Server to Start/Stop Testbed, Start/Stop Scripts, Apply User Events, Apply Global Variables, Load Profiles, Passing values to the variables, and similarly others.

 

MAPS™ CLI Functional Modules

MAPS™ CLI Functional Modules

  • MAPS Client Interface (IFC) – acts as an interface between MAPS™ CLI Server and its client C#, Python. The Client application includes a packaged library that enables communication with the MAPS™ Server from the client environment. MAPS Client IFC provides added benefits of a fully capable flow control engine with built commands.
    • It interprets the client Commands and forms the appropriate command as understood by MAPS™ CLI Server and vice versa.
    • It also stores the MAPS™ CLI Server responses into Script Information Storage in a variable which can be accessed by the client script.
    • Stores the information from MAPS™ Server in a variable which can be accessed by the client script
    • Client fetches the report using the get command
  • MAPS™ CLI Server –MAPS™ CLI Server is a scripting based frame work which controls the PacketExpert hardware using proprietary MAPS™ scripts which has list of instructions to perform actions such as,
    • Storing/retrieving configuration to/from hardware,
    • Start/stop BERT/RFC 2544 etc.,
    • Timer related instruction,
    • Conditional statements,
    • Control statements.

MAPS CLI Server

MAPS™ CLI Server is an executable which inherits all features of MAPS™ without GUI. It listens to a TCP message socket to receive and execute commands from client and sends the responses back to client.

GL’s proprietary MAPS™ CLI Server scripts (*.gls files) developed specifically for PacketExpert™ implements various PacketExpert™ functionalities like BERT, RFC 2544, and others. It includes XML files which contain the configuration information required for the test such as MAC Addresses, IP Addresses, BERT parameters, RFC 2544 parameters, and others, which are created using a Profile Editor. MAPS™ CLI Server interfaces internally with low level PacketExpert™ APIs to access PacketExpert™ hardware and to perform tasks.

CLI Server script execution is Event Driven, i.e., Server detects the Events such as InsertStatus, InterfaceStatus, IsRunning, LoadProfileStatus, RFC2544Init, RFC2544TestConfig, TestDirection and others.

Download the sample CLI Server script (PEX_Init.gls) and (PEX_BERT_Main.gls) .

MAPS™ CLI Server for PacketExpert™

MAPS™ CLI Server for PacketExpert™

Components of MAPS™ CLI  Server for PacketExpert™

Components of MAPS™ CLI Server for PacketExpert™

Python Client and Scripting

Python client consists of python API scripts, that provide High Level APIs, using which all the PacketExpert functionalities are accessible to the users. These APIs in turn use a low level library to communicate with the PacketExpert MAPS server.

The Python interface developed for PacketExpert™ allows users to control all features of PacketExpert™ through Python APIs. The Python interface is implemented based on a client-server model. The server is the MAPS™ CLI server, which interfaces with the PacketExpert™ hardware through the USB. The client consists of a Python API dll and Python API scripts, which allows user to control the MAPS™ CLI server, issue commands and get back results.

The MAPS Python Interface (MAPS Client IFC) application includes a PythonMapsCliIfc.pyd file, a packaged library that enables communication with the MAPS™ CLI Server from a Python environment. The advantage of such communication enables user to control MAPS™ by sending commands and receiving responses using the familiar programming language.

MAPS Client IFC provides added benefits of a fully capable flow control engine with built commands.

MAPS™ CLI Server for PacketExpert™

MAPS™ CLI Server for PacketExpert™

Executing the Client script in “Python Shell” console

Executing the Client script in “Python Shell” console

C# Client and Scripting

The C# interface developed for PacketExpert™ allows users to control all features of PacketExpert™ through C# APIs. The C# interface is implemented based on a client-server model. The C# client connects to the MAPS™ CLI server using TCP/IP sockets. MAPS™ CLI Server interfaces with PacketExpert™ low level API controlling the hardware. There will be different MAPS™ scripts to implement different applications like BERT, RFC 2544 etc.,

The client consists of a C# API dll, which allows user to control the MAPS™ CLI server, issue commands and get back results.

C# Client Components

C# Client Components

The MAPS C# Interface (MAPS Client IFC) application includes a MAPSCSAPI.dll file, a packaged library that enables communication with the MAPS™ CLI Server from a C# environment. MAPS Client IFC provides added benefits of a fully capable flow control engine with built commands.

C# Client invokes APIs which executes the command, that instructs the MAPS™ CLI Server to run the particular script which performs the particular PacketExpert™ tests like BERT, RFC 2544 etc.

Sample c# api client

MAPS™ CLI Server consists of the following components:

  • Scripts – GL’s proprietary scripts (.gls files) that actually implement the various PacketExpert™ functionalities like BERT, RFC 2544 etc. The C# client invokes these scripts to run the tests and get back the results.
  • XML config files – These are xml files (called as “Profiles”) containing the configuration information for the test. Eg: MAC Addresses, IP Addresses, BERT parameters, RFC 2544 parameters, and other parameters.
  • PacketExpert™ API – These are internal low-level APIs used by the MAPS™ scripts to control PacketExpert™ hardware.
MAPS™ CLI server

PacketExpert™ Integration with LabVIEW/TestStand using C# Client

LabVIEW framework provides engineers with complete solutions, including Lab Management, Device Provisioning, and Test Automation. It is a globally recognized and widely used framework for test automation, facilitating the integration of equipment from different vendors.

LabVIEW supports C# APIs. Utilizing PacketExpert™ C# APIs, the integration of PacketExpert™ into LabVIEW becomes effortlessly achievable. The PacketExpert™ C# API dll can be directly imported into LabVIEW and used in the Graphical environment that LabVIEW provides to control PacketExpert™ devices and automate testing.

PacketExpert™ Integration with LabVIEW

PacketExpert™ Integration with LabVIEW

 

LabVIEW simplifies the creation of versatile test scripts that manage various hardware components and allows to customize the test system using graphical programming. It includes analysis tools and a user-friendly drag-and-drop interface. This adaptability ensures compatibility with GL's PacketExpert™ software. For instance, importing the C# Client API DLL into LabVIEW instantly grants you the capability to execute various PacketExpert test applications, such as BERT, RFC2544, Loopback, and more.

Test applications labview

Resources

Please Note: The 'Pxx' in the Item No. refers to the hardware platform on which the software will be running. Therefore, 'Pxx' can either be PXE (1G) or PXG (10G) or PXN (10GX) depending upon the hardware.