Diameter Tasks - Version 4.2

This document describes the Diameter Tasks, provided as custom tasks that must be installed with PureLoad/PureTest on each installation using these tasks.

Before you use the tasks, read more about installing and how to load custom tasks .

Diameter Protocol Support

The Diameter tasks support TCP or SCTP as transport protocol (SCTP on Linux only). Read more about Installing Support for SCTP.

The diameter tasks support part of the Diameter base protocol, as well as Diameter Rf, Rx, Gx, Sd, Sh, Zh, Zx, S6a/S6d, SWm/S6b and SWx Applications. See Supported Diameter Protocols for details.

Task overview

A simulated diameter node can be client or server side. To initiate and close client side simulation (i.e initiate a connection to another diameter node) you use the tasks in the client package. To initiate and close server side simulation (i.e wait for connection from another diameter node) you use the tasks in the server package.

All other tasks to send diameter messages and wait for diamater messages can be used independent of if simulation is client or server side.

Specifying AVPs in the Tasks

See Specifying AVPs for details on how to specify AVPs using the task AVP List parameter.

Extending the supported AVPs

Supported AVPs are defined in a dictionary file: diameter-dictionary.xml. New and un-supported AVPs may be added by editing this file, but the format is undocumented and we recommend that you contact support@pureload.com for support adding new AVPs.

Diameter Shared Client or Shared Server

Client

By default a client to server connection is initiated using DiameterClientInitTask. The connection is valid within a scenario and closed when the scenario has finished it's execution (or when DiameterClientCloseTask is executed). This means that if scenarios are executed by multiple threads one connection will be established per thread and scenario executed.

To allow using multiple threads and scenarios, but share the connection between PureLoad and the Diameter server, you can select "Shared Connection" in DiameterClientInitTask. When this is done client will be shared by all threads within a PureLoad worker. The key when sharing connections is the "Origin Host" parameter specified in DiameterClientInitTask. Meaning that to have (for example) 2 connections you have to use 2 different "Origin Host" parameters.

When using a shared client, do not use DiameterClientCloseTask in the scenario, since this will close the connection each time the scenario has executed.

Server

By default a server connection is initiated using DiameterServerInitTask. The server will listen for connection being established on the specified port. The server will listen for request and process requests if DiameterWaitForRequestTask is used and send responses as specified by DiameterSendAnswerTask. This will continue until the scenario has finished it's execution (or when DiameterServerCloseTask is executed). This means that you can not use multiple threads to execute multiple scenarios, since one server (using the same port) can only be executed at the same time.

To allow using multiple threads and scenarios, but share the connection between PureLoad and the remote Diameter nodes, you can select "Shared Connection" in DiameterClientInitTask. When this is done server will be shared by all threads within a PureLoad worker. The key when sharing connections is the "Origin Host" parameter specified in DiameterServerInitTask. Meaning that to have (for example) 2 server you have to use 2 different "Origin Host" parameters.

When using a shared server, do not use DiameterClientCloseTask in the scenario, since this will close the connection each time the scenario has executed.

Provided tasks

The following lists the provided tasks. Please follow the links for more details.