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.
- 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 Bert, Loopback, RFC 2544, Record Playback, IPLinkSim™, 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.
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 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) .
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.
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.
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.
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.
PacketExpert™ Integration with LabVIEW/TestStand using C# Client
LabVIEW framework offers complete Lab Management, Device Provisioning and Test Automation solutions for engineers. LabVIEW is a popular framework for test automation and is used worldwide to integrate different vendor equipment and automate the use of the same.
Using PacketExpert™ APIs, it is very easy to integrate PacketExpert™ into LabVIEW. Since LabVIEW supports various languages like C# or Python, the PacketExpert™ C# API dll or Python classes can be directly imported into LabVIEW and used in the Graphical environment that LabVIEW provides to control PacketExpert™ devices and automate testing.
With LabVIEW, it is easy to create flexible test scripts that control multiple hardware, customize test system with graphical programming, included analysis, drag and drop interface. This makes the system compatible with GL's PacketExpert™ software. Eg: Importing the C# Client API dll into LabVIEW instantly provides ability to run any PacketExpert test application like – BERT, RFC2544, Loopback and others.
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.