Frequently Asked Questions
What information should I send to Mobileum dsTest Support when requesting assistance?
General Topics Index
dsTest Example Configuration files
Common Errors Messages and Situations
General Questions Regarding Using dsTest
The FAQ list covers many of the issues users may incur when first using Mobileum's products.
Common Error Messages/Situations
I can not reach my desired total transactions per second with my dsTest configuration.
Can I specify options that will be used each time I start dsTest?
Connectivity issues with my RHEL server
How do I generate a core dump when dsTest crashes?
I am unable to register for notifications.
I receive a message about "Control Interface locked".
Failed to initialize control interface: Address already in use.
All nodes not starting (large number of nodes)
unable to open primary document entity
File: <file name> failed validation
element <element name> is not allowed for content model
value <value> does not match regular expression facet
Failed to locate/create Subscriber database
Cannot configure existing node
Non-realistic hardware configuration
How does the S6 Authentication process work?
How does dsTest using the Diameter Secondary Interface?
Can I use a Virtual Machine (VM) with dsTest?
What Operating Systems are compatible with dsTest?
What are the minimum system requirements (including memory usage) for dsTest?
How can I control dsTest with automation tools?
How many actions can be active on a single node at one time?
Where do I set the number of subscribers in my configuration?
Can two or more nodes share a subscriber database?
Why are only 100 of my 1000 subscribers active at any given time?
How can I protect my running tests from other users of the same dsTest server?
What ports must be open for dsClient and dsTest to communicate across a firewall?
What do the values displayed by the Node Status CLI command mean?
Can I define startup options for dsTest?
Can I run multiple instances of dsTest on the same server?
How do I use SCTP Multi-Homing/Mutli-Streaming/Fragmentation with dsTest?
How do I use the Diameter Dictionary to determine how to configure specific AVPs in my messages?
What version(s) of the 3GPP Diameter specifications does dsTest support?
How does S6a Authentication work with dsTest when testing a HSS?
What version of Java do I need for using dsClient Desktop?
When I start the GUI, I get a pop-up error message that says I require a different version.
How do I start/stop the dsTest license server?
How can I determine the status of my dsTest license?
After starting dsTest, I get a "system corrupt" message.
After starting dsTest, I get an "License Invalid" message.
My om.db file is corrupt. How can I recover the information in the file?
How do I view OMs from the command line?
What are Diameter Transaction Timeouts/Transmit Overruns OMs?
What unit of time is used for the Interface Application transaction duration and message delay OMs?
How do I create a csv formatted file from my CDR file?
What information should I send to Mobileum dsTest Support when requesting assistance?
Generally, the following information should be provided to our Support Team when you are requesting assistance with a dsTest issue:
A brief description of what the test is to accomplish;
pcap or other message trace that shows the desired message flow and message content;
dsTest configuration files (xml and/or dsx) used in the test(s);
ds_log file, set at the highest level possible (e.g. level 10) based upon the requirement of the test (Note - a log level above level 6 may impact test performance);
ds_log.stderr, which can contain valuable information when investigating a crash;
Operational Measurement files (om.db) for the test(s);
Any other information as requested by Mobileum dsTest Support that may provide additional information
Providing this information with the first request to Support will speed the investigative process and will allow Support to solve your issue in a timely manner.
Please see Getting Help for more information on gathering this information. If you're using dsClient Desktop, please use the Collect Results feature to collect and send the required information.
I can not reach my desired total transactions per second (TPS) with my dsTest configuration.
For the purposes of TPS calculation, transactions are defined in dsTest as one request and one response. So the TPS for a test case is the number of transactions in the message flow times the number of flow starts per second. For example, if your message flow consists of 8 transactions and you start 1000 subscribers per second you would achieve a transaction rate of 8000 TPS. dsTest will not fail sessions if you exceed the allowed (licensed) TPS but will throttle the starts to maintain the transaction rate at the licensed TPS, unless the allow_overrun element is set to true.
Overruns occur when the system attempts to send messages faster than the interface or peer can handle them. Normally, output is reduced by back pressure (throttling) to prevent overruns, however this prevents errors by reducing transaction rates which may prevent the system meeting its objective transaction rate due to the inability of the network/peer to maintain the rate. Setting the allow_overrun element to true allows dsTest to maintain the objective transaction rate independent of the ability of the network or DUT to keep up.
There are several reasons why the total TPS target can not be reached. Each of the items below should be investigated. The source of the issue may be a combination of these factors.
Interface Transaction Count
Check the transaction count for each of the interface applications in your configuration. dsTest defaults the transaction count to 100. For tests involving higher TPS, this is probably inadequate. Transaction count must be at least the number of transactions that are active at any one time. For some stateful interfaces such as Gx, an upper limit of transaction count would be the same as the number of subscribers. For other stateful transactions, such as Rx, it is possible to have multiple sessions active for the same subscriber at the same time, so the upper limit would be the number of subscribers multiplied by the number of sessions active at any one time.
Subscriber Count
The number of defined subscribers must support the total TPS configured for your test. For example, if you have specified an initial rate of 1000 per second, and the session is active for a total of 10 seconds, you will need at a minimum (1000*10) subscribers defined. Otherwise, dsTest will not be able to start a new transaction because no subscribers are available.
Duration of Call
As described in the two items above, the duration of the call, or the length of time that a session will be active, affects the TPS if you do not have enough transactions or subscribers defined to support the duration of a call and the TPS you are trying to achieve.
Your dsTest License
Your dsTest license must support the TPS you are try to achieve. For example, your license may specify a total of 1000 TPS. This would be the maximum TPS allowed under your license. If you are on a floating license, and others are sharing the license (and thus the total TPS), less than 1000 TPS may be available to you when you are running your test.
Your specified TPS when starting dsTest
One of the options when starting dsTest is the -t option. With this option, you specify the maximum TPS that will be allowed under that test session. You cannot exceed this TPS during your test, so it must be at least the amount of TPS your require in your test. As pointed out in the previous item, there may not be an adequate number of TPS available if you are sharing a floating license.
Other factors not directly related to your dsTest configuration must also be considered.
The network test configuration
The number of nodes and their placement in the testing environment will affect your achievable TPS. For example, if you have a license for 10K TPS and have a device under test (DUT) that will be responding back to dsTest in the same server as the transaction originator (such as testing a DRA), the 10K transactions would be spread across both the originating dsTest node and the receiving dsTest node, with approximate 5K sent and 5K received by the dsTest server.
Latency and delays in message responses
If your traffic is originating from a dsTest server to an external DUT, delays in responses from the DUT may affect the number of transaction initiated by dsTest. dsTest will attempt to buffer transactions, and will reduce the number of transactions initiated if the response time from the DUT is excessive. In addition, you should verify that the Diameter timeout value is not set too low.
See also this FAQ regarding maximum sessions. If you have inspected all of these common reasons for not achieving the desired TPS, and still can not determine why you are not achieving the desired TPS, please contact Support.
Can I specify options that will take affect automatically when I start dsTest?
There are two ways that dsTest startup options can be automatically applied. If starting dsTest as a service, the file /usr/local/devsol/run/dsTest.conf can specify desired startup options. If dsTest is started with the command line, the file dsTest.opt can specify startup options. dsTest.opt must be placed in the directory from which dsTest is launched manually, typically /home/devsol. dsTest.conf takes precedence over dsTest.opt.
For more information on dsTest.conf see Running dsTest as a Service. For more information regarding dsTest.opt, see Launching dsTest.
After installing a license file, a system corrupt message is returned when dsTest is launched.
Licenses are time-sensitive and dsTest requires that the date and time on the server platform be accurately configured. A system corrupt error or unable to get floating license message to is generated when dsTest is started without a valid license or when there is a conflict between the license and the configured date and time on the server. We recommend synchronizing the server date and time with an NTP server. Commands for configuring NTP on your system can be found here. If you continue to receive system corrupt errors after installing your license and confirming that the server is properly configured, please contact Support.
After installing a license file, a license invalid message is returned when dsTest is launched.
Licenses are keyed to specific hardware platforms. Make sure the proper license is being applied to the proper hardware platform. If you continue to receive license invalid please contact Support.
When dsTest is launched a Failed to initialize control interface error message is returned.
Failed to initialize control interface: Address already in use.
Please insure another instance of the application is not already running
Only one instance of dsTest can be active on a platform. If a second instance is launched this error message will be returned.
When dsClient is launched a Socket failed to connect error message is returned.
Socket failed to connect (127.0.0.1): Connection refused
This message is returned when dsTest is not running. After launching dsTest wait for the dsTest Initialized message before launching dsClient.
When launching dsTest or dsClient a command not found error is returned.
<user name>@<test system>:~$ dsClient
No command 'dsClient' found, did you mean:
The most likely cause is that the .bashrc file does not have the path to /usr/local/devsol/bin. The path can be specified as part of the command or you can add this to the PATH in your /home/user/.bashrc file.
When launching dsTest or dsClient a permission denied error is returned.
<user name>@<test system>:~$ dsClient
Permission denied
The most likely cause is that the user is not part of the devsol group. We recommend that you add the user's account to the devsol group with the command:
adduser <user name> devsol
When issuing a start command an error is returned.
Error starting node: <node type>:<node name>
The most likely cause for this error is that the combination of ip_address and port specified in the XML file does not match any of the configured interfaces on the test server.
Less frequently, other configuration issues can cause this error to occur, such as a misconfiguration of the subscriber database. A node will not start unless every subscriber initialized has at least one identity and unless every subscriber has a unique identity.
When sourcing an XML document a fatal error is returned.
Fatal Error at file , line 0, char 0, Message: unable to open primary document entity '/<path>/<file name>.xml'
This error indicates that the referenced file could not be found due to an incorrect path and/or file name.
When sourcing an XML document a validation error is returned.
File: <file name> failed validation
All XML documents are validated against the dsTest schema when they are sourced. The schema defines the content and ordering of the various XML elements, and the types and range of values supported in attributes and elements. A validation error is returned when the contents of an XML document do not follow the rules laid out in the schema. Two of the most common validation errors are described below.
Error at file /home/devsol/temp.xml, line 23, char 16, Message: element 'realm' is not allowed for content model '(socket?,host,realm,vendor_id?,product_name,dest_host?,dest_realm?,mode?,cer_wait?,dw_interval?,max_idle?,timeout?,allow_duplicate_peers?)
This error indicates that the parameter in the specified position, realm, is out of place according to the order specified by the schema. In this document the realm element preceded the host element but the schema requires that the order be reversed. The correct order is displayed by the list of elements in parentheses ("?" indicates optional elements).
Error at file /usr/local/devsol/config/temp.xml, line 85, char 102, Message: value '1000' does not match regular expression facet '[0-9]{1,2}|[0-1][0-9]{2}|2[0-4][0-9]|25[0-5]|0x[0-9a-fA-F]{1,2}|'
This error indicates that the value at the specified position does not match the restrictions defined for the element's value as defined in the schema, which are referred to as "facets." Facets can consist of enumerated values (e.g. WLAN, UTRAN, GERAN) or a list of regular expressions as shown above. Acceptable values for the subject element are 0-255 decimal or 0x0-0xFF hexadecimal as defined by the facets. Facets are shown in the Restrictions table in the schema help topics.
You can avoid these types of errors by using dsClient Desktop. It validates your configuration as you work.
Can I use a Virtual Machine (VM) with dsTest?
For node-locked licenses, dsTest must run on a native Linux OS environment. Virtual Machine (VM) environments are not supported with this type of license.
When floating licenses are used the same restriction applied for the dsTest license server. The license server must run on a native Linux OS environment. Instances of dsTest can, however, run on VMs as long as the VMs can connect to the license server. See Licensing for a full discussion of licensing options, and see Configuring Your Virtual Machine for VM requirements and recommendations.
What Operating Systems are compatible with dsTest?
dsTest is currently supported on these 64-bit Linux operating systems.
How do I start/stop the dsTest license server?
To start the dsTest license server:
Ubuntu systems supporting the invoke command: invoke-rc.d licenseServer start
Older Ubuntu systems or to manually start: /etc/init.d/licenseServer start
To stop the dsTest License Server:
Ubuntu systems supporting the invoke command: invoke-rc.d licenseServer stop
Older Ubuntu systems or to manually stop: /etc/init.d/licenseServer stop
What are the minimum requirements (including memory usage) for dsTest?
dsTest requires a 64 bit processor/memory/OS system and at least 1GB of memory. dsTest itself requires a minimum of 400MB of free memory to launch, and at least 2GB of free disk space.
Refer to this topic for a discussion of memory utilization for dsTest and test configurations.
How can I view Operational Measurements from the command line?
Operational Measurements (OMs) are generally collected and reported at the application and interface levels. The available measurements, along with their IDs, types, and descriptions, are shown in the Measurements table in the applicable command schema help topic. For example, the measurements available for the S6 application are shown here.
To view the application OMs of a running node using dsClient Terminal, use the following command:
<node element name>:<node name attribute value> <application element name> om
To view the S6 OMs for a HSS that has not been named:
hss s6 om
To view the S6 OMs for a HSS whose name attribute is set to "hss_1":
hss:hss_1 s6 om
To view the SmartEvents OMs for a SPR whose name attribute is set to "spr_1":
spr:spr_1 subscriber_database subscriber_profiles SmartProfile SmartEvents om
You can use the nodes command to display the element and name values of active nodes.
Duration measurement values are in microseconds, and are reset each OM interval.
Where do I set the number of subscribers in my configuration?
The number of subscribers in a subscriber database is defined by the count attribute in the subscriber_database element of the configuration section:
<subscriber_database count='1000'>
Why are only 100 of my 1000 subscribers active at any given time?
The most likely cause is that there are not enough transactions provisioned for the application. The count attribute in an application element defines the maximum number of concurrent transactions supported: <gx count='1000'>. If the count attribute is not included the default value is 100. For stateful applications such as Gx or Rx, one transaction spans the lifetime of a subscriber's session and therefore stateful applications must be provisioned to support the number of subscribers that will be active at any given time. For stateless applications such as S6, a transaction only encompasses the request/response exchanges necessary to complete a procedure, allowing those applications to support a smaller number of concurrent transactions for the same number of active subscribers.
Can one or more of my nodes share a subscriber database?
Yes. In fact, you would typically want them to share a subscriber database, and they must share a subscriber database if one node is updating information that another node will use.
When sourcing an XML document a subscriber database error is returned.
source Examples/example_app_s6_hss.xml
Error Returned:
Failed to locate/create Subscriber database: hss
Error at Line 25, char 12, Message: Unsupported element found: imsi
Error at Line 31, char 17, Message: Unsupported element found: auth_type
Error at Line 32, char 11, Message: Unsupported element found: key
.
.
.
The most likely cause is that the configuration file(s) loaded on the test server caused the total number of subscribers provisioned to exceed the total number of subscribers licensed for the system.
When sourcing an XML document an existing node error is returned.
source configs/example_app_ga_cdf.xml
Error Returned:
Error at Line 7, char 22, Message: Cannot configure existing node!! Must use command to alter existing configuration.
This error indicates that at least one node of the same type and name has already been configured on the system, causing a conflict. You can either change the name attribute of the node in your XML document to allow both nodes to be configured, or you can remove the configured node from the system. Delete the node by entering:
<node element name>:<node name attribute value> delete
or
nodes delete (This will delete all nodes on the system.)
When sourcing an XML document an IMSI error is returned.
source Examples/example_app_s6_hss.xml
Error Returned:
Error at Line 28, char 15, Message: Error setting: imsi
This error indicates that a node with a subscriber database of the same name is already provisioned with this IMSI. Unique subscriber identifiers such as IMSI and MSISDN cannot overlap between groups of subscribers in the same database. When multiple subscriber databases are configured on the system, each must have a unique name attribute value and they can then operate independently.
<subscriber_database name='hss_db' count='1000'>
<subscriber_database name='mme_db' count='1000'>
Not all of my nodes are starting when I have a large number of nodes.
If some nodes start but others don't and you determine it is not an IP address issue then it is likely due to the number of open files that Linux permits. By default Linux limits the number of open file descriptors per process to 1K, and you may be hitting this limit.
If this is the case you will see the following error in your ds_log file:
linuxSocket.cc:initSocket:434:SCTP Socket failed to create: Too many open files
To increase the number of open files Linux will permit, two lines should be added to the bottom of /etc/security/limits.conf (you will need root privilege to modify this file):
* hard nofile 65536
* soft nofile 65536
After modifying and saving the file , reboot the server and then run the command:
> ulimit -n
It should return 65536.
I am not able to register for notifications.
If you are trying to register for notifications via dsClient Terminal and get an error similar to this:
Error Returned:
Error at Line 2, char 37, Message: Unable to register failure (wrong client port?)
You are probably trying to register for the notification(s) on the high priority client port, which is not allowed. You can only register for notifications on the low priority port. To use the low priority port, you must start dsClient Terminal using the -s option. Refer to Launching dsClient.
What are Diameter Transaction Timeouts/Transmit Overrun Errors OMs?
Transmit Overruns can lead to Diameter Transaction Timeouts. When dsTest is recording Diameter Transaction Timeouts, it is not receiving answers to Diameter messages being sent. Transmit Overruns means that dsTest is not able to transmit the packets that it is generating because the receiving end is not acknowledging the receipt of those packets fast enough. Thus the TCP window closes - meaning dsTest can not send more packets - and packets are buffered until they fill the available internal dsTest queues. Once the queue is full, packets are discarded, and the discarded packets are counted as Transmit Overruns. Investigate the receiving node(s) to see if it is not able to process messages from dsTest at the rate they are being generated.
What unit of time is used for Interface Application transaction duration and message "Delay" OMs?
These OMs are in microseconds. For example, see the Gx OM descriptions here.
Failure: Unable to get floating license.
Run the command:
~>dsTest -f;date
This command returns a license report from the license server that shows license resources and availability and a list of the current licenses checked out.
If there no report is displayed, then you have a communication issue with the license server. Check your network connections to insure that your dsTest server can communicate with the license server. See this FAQ regarding which ports will be used.
If a report is displayed, it will show the current situation of the resources in your license. There must be sufficient resources to grant the license you are requesting (TPS, subscribers, etc). If there are not sufficient resources then you will not be granted a license. The users that have checked out resources from the license are displayed, and you must contact those users to resolve the issue.
If there are multiple instances of dsTest running on the same server, each instance of dsTest must be assigned a unique management address using the -i option when starting dsTest.
Licenses are time-sensitive and dsTest requires the date and time on the server platform be accurately configured. Compare the date/time from the license server with the date/time of the local server. See this FAQ about using NTP to keep your server in sync with the license server.
Licenses are keyed to specific hardware platforms. Make sure the proper license is being applied to the proper hardware platform. If you continue to receive an error please contact Support.
How can I determine the status of my current dsTest license?
You can get license information from your dsTest servers using the license command as shown below.
For floating licenses (hosted or non-hosted), you can get additional resource usage information regarding your license by using the ‘dsTest –f’ command as shown below. This option will not launch dsTest, and can be executed while dsTest is running.
Node-Locked Licensing
~> dsClient
Application: dsClient Version: 2.7.20131030a Build: Wed Oct 30 18:18:08 2013
dsTest> license
License Name: test46 Serial Number: 4d674d6745d4d7
Version: 2.7 Expires: 50:9:34 (days:hours:minutes)
dsTest> license:verbose:1
License Name: test46 Serial Number: 4d674d6745d4d7
Version: 2.7 Expires: 50:9:32 (days:hours:minutes)
work_threads contents:11
interfaces contents:2048
subscriber_database contents:60000000
diameter_agent contents:true
gtp_cv1 contents:true
gtp_cv2 contents:true
interface_bp end='both' contents:true
interface_c end='both' contents:true
interface_cc end='both' contents:true
interface_cx end='both' contents:true
interface_d end='both' contents:true
interface_ga end='both' contents:true
interface_gc end='both' contents:true
interface_gd end='both' contents:true
interface_ge end='both' contents:true
interface_gf end='both' contents:true
interface_gr end='both' contents:true
interface_gs end='both' contents:true
interface_gx end='both' contents:true
interface_gxx end='both' contents:true
interface_rf end='both' contents:true
interface_ro end='both' contents:true
interface_rx end='both' contents:true
interface_s6 end='both' contents:true
interface_s6b end='both' contents:true
interface_s9 end='both' contents:true
interface_s13 end='both' contents:true
interface_sd end='both' contents:true
interface_sgs end='both' contents:true
interface_sh end='both' contents:true
interface_slg end='both' contents:true
interface_sls end='both' contents:true
interface_sta end='both' contents:true
interface_swa end='both' contents:true
interface_swm end='both' contents:true
interface_sy end='both' contents:true
interface_wx end='both' contents:true
protocol_radius contents:true
dsTest>
Floating Licensing (non-Hosted or Hosted)
~> dsClient
Application: dsClient Version: 2.7.20131030a Build: Wed Oct 30 18:18:08 2013
dsTest> license
License Name: test46 Serial Number: 4d674d6745d4d7
Version: 2.7 Expires: 0:0:6 (days:hours:minutes)
Floating License Server: 192.168.34.55
dsTest> license:verbose:1
License Name: test41 Serial Number: 4ea102f4af847
Version: 2.7 Expires: 0:0:5 (days:hours:minutes)
Floating License Server: 192.168.34.55
License Server: 192.168.34.55 Status: ACTIVE
interfaces contents:10
subscriber_database contents:1000
trans_per_sec contents:20000
floating_license contents:true
diameter_agent contents:true
pass_thru_data contents:true
gtp_cv1 contents:true
gtp_cv2 contents:true
native_socket contents:true
interface_c end='both' contents:true
interface_cc end='both' contents:true
interface_cx end='both' contents:true
interface_d end='both' contents:true
interface_dhcp end='both' contents:true
interface_ga end='both' contents:true
interface_gc end='both' contents:true
interface_gd end='both' contents:true
interface_ge end='both' contents:true
interface_gf end='both' contents:true
interface_gr end='both' contents:true
interface_gs end='both' contents:true
interface_gx end='both' contents:true
interface_gxx end='both' contents:true
interface_rf end='both' contents:true
interface_ro end='both' contents:true
interface_rx end='both' contents:true
interface_s6 end='both' contents:true
interface_s6b end='both' contents:true
interface_s9 end='both' contents:true
interface_s13 end='both' contents:true
interface_sd end='both' contents:true
interface_sgs end='both' contents:true
interface_sh end='both' contents:true
interface_slg end='both' contents:true
interface_slh end='both' contents:true
interface_sls end='both' contents:true
interface_sta end='both' contents:true
interface_swa end='both' contents:true
interface_swm end='both' contents:true
interface_sy end='both' contents:true
interface_sy_legacy end='both' contents:true
interface_wx end='both' contents:true
interface_radius end='both' contents:true
interface_3gpp_radius end='both' contents:true
interface_wa_radius end='both' contents:true
dsTest>
~> dsTest -f
License Status:
Resources Report: test41 users: 6(4)
Resources Total(Available): cores: 0(0) tps: 80000(40000) subs: 2000000(1998000)
Resources Total(Available): interfaces: 1000(970) connectionless: 0(0)
Client Host Name: test42 Contact:
Resources Used: cores:0 tps: 20000 subscribers: 1000 interfaces: 10 connectionless: 10
Expires in: 419 seconds
Client Host Name: test41 Contact: DS-Support@mobileum.com
Resources Used: cores:0 tps: 20000 subscribers: 1000 interfaces: 10 connectionless: 0
Expires in: 378 seconds
Note the email address specified in the output of the dsTest -f -- this should be the email you should contact to resolve your dsTest resources issues.
Licenses are time-sensitive and dsTest requires that the date and time on all servers be properly configured and that the configured date and time on the License Server and all servers that request licenses from the License Server be within 5 seconds. We recommend synchronizing the server(s) date and time with an NTP server. An error message is generated when dsTest is started without a valid license or when there is a conflict between the license and the configured date and time on the server. If you continue to receive system corrupt errors after installing your license and confirming that all servers are properly configured, please contact Support.
A WARNING: Client and Server Time of Day not synchronized message is generated by the dsTest -f command if the servers are not synchronized.
What ports must be open for dsTest and dsClient?
If traffic between dsClient and dsTest must transit a firewall, TCP ports 9996-10008 and UDP port 10009 should be allowed in both directions. If only individual ports can be opened, or if you want to specify the ports dsTest uses refer to dsTest Management Ports.
What is the URL for the Support Request Site?
https://dstest.info/request
The dynamic identity feature allows dsTest to learn the identity of an attaching subscriber from the value in the request. When dynamic identity has been configured and an unknown identity value is received dsTest will attempt to assign that value to the next available subscriber (the next subscriber that does not already have a value for that particular identity). You can configure an identity for a portion of the subscribers in your database and allow the values in the remaining subscribers to be assigned dynamically. If you configure a particular identity for all subscribers in your database, however, you have effectively disabled dynamic identity since there will not be any subscribers that can receive a dynamic value. See: Dynamic Identity.
What do the values displayed by the Nodes Status command mean?
spr name='spr_1' -------------------------------- Note 1.
status
started contents:true --------------------- Note 2.
ready contents:true ----------------------- Note 3.
active contents:false---------------------- Note 4.
interfaces_connected contents:0 ----------- Note 5.
pcef name='pcef_1'
status
started contents:true
ready contents:true
active contents:false
interfaces_connected contents:1
1.Name of the node.
2.Node is started/has received a start command and was successful in binding to the IP Address/source port defined in the configuration. SPR nodes do not have to be started unless they contain SmartEvents action commands or are running an interface application.
3.Node is started and has at least one application ready and has successfully established a connection with at least one other node and is thus ready to receive or send messages.
4.Node is actively generating messages to be sent to other nodes. This does not apply to sending responses to messages received from other nodes. This status will be true if the node was sending out (for example) inserts, inits, or cancels as a result of an action command.
5.The number of the interfaces on a node that are connected to a peer.
See Node Status for more information.
How do I use the Diameter Dictionary to determine how to configure specific AVPs in my messages?
The best way to determine the configuration element that relates to an AVP is by using our Diameter Dictionary.
Once you go to the Dictionary you will see an expandable tree on the left. You can look up AVP or messages by application which will define all of the AVPs. For example, go to Applications>3GPP Gx and start with the Credit-Control-Request Gx. When you select this tree element the right hand pane will display information about that message. Scroll down to the Contained AVPs table. Here you can find the individual AVPs.
If you select an AVP name in the first column that AVP definition will be opened and you can see all of the information regarding that AVP.
You can then use the back button on your browser to go back to the previous page. In the right hand column of the Contained AVPs table you will see Value Source. If there is an value source entry, it is a fixed value (not configurable, i.e. Auth-Application-Id) or a configuration element name for dsTest. If you click on the element, the dsTest OnLine Help schema definition will open in a new window. You can use the element name to locate the field in the desktop application. The element tree in dsClient Desktop is the same as the element tree displayed on the left when you select the individual element, allowing you to locate it in the GUI.
What version(s) of the 3GPP Diameter specifications does dsTest support?
dsTest attempts to provide full functionality for each release (R11, R10, R8, R9). If you have a requirement for functionality that is not currently supported, we will do our best to add support for it. Our goal is to provide all the functionality that our customers are interested in using, within the boundaries of the 3GPP specifications.
Not all interface applications require that a specific version be configured for the application. dsTest tries to provide the desired functionality based upon data within the configuration. For example, if a new release may contains a new AVP, dsTest may decide to send that AVP based on the availability of configuration data for that AVP rather than the release version specified. However, the configuration data may not have enough information to determine how the message should be formatted or processed. In this case, configuration of the specific desired version would be required.
For an interface application such as Gx, the major release version is specified within the Supported-Features AVP. However, for R11, there is not a 'Release 11' bit specified within the Supported-Features AVP. In this case, Mobileum dsTest may have to add missing functionality based upon your requirements.
Turnaround on these types of changes is typically very short, depending upon the desired functionality. Contact Mobileum dsTest Support to request additional dsTest functionality.
How does S6a Authentication work with dsTest when testing a HSS?
When the HSS is the device under test, dsTest simulates both the MME and the UE. For s6a authentication both the UE and the HSS have to know the key and the op or opc. These are used as input to the authentication algorithm (Milenage, TUAK, etc.) which generates vector sets. The vector sets are then transmitted from the HSS to the MME in the S6a AIA message and the UE checks the set it generated against this set from the HSS. If they don't match, authentication fails.
Diameter success in the AIA means the HSS was able to locate the requesting subscriber in its database and was able to generate the necessary vectors. It does NOT mean that authentication was successful. The primary reason the AIR would fail at the HSS is because the subscriber-id could not be found (Unknown Subscriber).
References: 3GPP TS 33.102 and 3GPP TS 35.205
See also this FAQ on the Authentication Process.
What version of Java do I need to use dsClient Desktop?
dsClient Desktop supports Java version 8 or later. See Installing and Upgrading dsClient for more information.
My om.db file is corrupted. How can I recover the information in the file?
The usual cause of om.db to be corrupted is because it was copied from the dsTest server while it was still open for writing.
The OM database is closed when one of these actions occur:
dsTest is stopped and restarted;
All dsTest nodes are deleted and packet capture is not running;
the command diag om close is executed.
After dsTest closes an OM database a separate analysis process writes statistical information into the database. A co-located .lck file matching the database file name (e.g., om_0.lck) indicates that this process is still writing to the database. When the lock file is removed the database may be safely downloaded. If you are using dsClient Desktop, the Collect Results and reporting features will wait until a database is no longer locked before downloading it.
If you have a corrupted om.db file, you can attempt to recover the data in the file by using the dprp utility that is provided with dsTest. In the directory from which you start dsTest, execute the following CLI command:
> dbrp -d <database file> -o <output file name>
dbrp will recover counters, intervals, and objects OM information from the input database file and write the results to the specified output file.
Is there a way to force SGW and PGW dsTest emulator instances for sending GTP-U packets over dedicated tunnels instead of the default tunnel?
When creating a dedicated bearer, a Traffic Filter Template (TFT) can be defined for the data to be sent over that bearer. dsTest will send the data on the bearer matching the TFT.
TFTs consist of components:
Component Types (defined in TS 24.008) are:
Remote IPv4 = 16
Local IPv4 = 17
Remote IPv6 = 32
Local IPv6 = 35
Protocol = 48
Local Port = 64
Local Port Range (end) = 65
Remote Port = 80
Remote Port Range (end) = 81
SPI = 96
TOS = 112
Flow Label = 128
Refer to the example below. The component value is a hex string. Note the mask needs to follow the IP addresses as the example indicates. A packet to match filter 1 below would have a source IP address of 10.10.2.1 and a destination address of 192.1.0.1. The f's following the address indicate a 32 bit mask. The mask can be modified to accept a range of addresses.
<bearer_tft>
<op_code>Create</op_code>
<e_bit>0</e_bit>
<num_filters>2</num_filters>
<packet_filter>
<id>1</id>
<direction>1</direction>
<precedence>1</precedence>
<component>
<component_type>16</component_type>
<component_value>0x0a0a0201ffffffff</component_value>
</component>
<component>
<component_type>17</component_type>
<component_value>0xc0010001ffffffff</component_value>
</component>
</packet_filter>
<packet_filter>
<id>2</id>
<direction>2</direction>
<component>
<component_type>16</component_type>
<component_value>0x0a0a0201ffffffff</component_value>
</component>
<component>
<component_type>17</component_type>
<component_value>0xc0010001ffffffff</component_value>
</component>
</packet_filter>
</bearer_tft>
To filter all ICMP messages you would use:
<bearer_tft>
<op_code>Create</op_code>
<e_bit>0</e_bit>
<num_filters>1</num_filters>
<packet_filter>
<id>1</id>
<direction>1</direction>
<precedence>1</precedence>
<component>
<component_type>48</component_type>
<component_value>0x01</component_value>
</component>
</packet_filter>
</bearer_tft>
Refer to bearer_tft for more information.
How do I create a core dump when dsTest crashes?
If dsTest crashes, Support may request a core dump file. You first need to make sure core files are enabled on the server by using the following command:
~>ulimit -a
If the core file size is given as 0, core dumps are disabled.
Set the core file size with the following command:
~>ulimit -c unlimited
for unlimited resources or:
~>ulimit -c xxxxxxx
where xxxxxxx is the number of 1KB blocks that are to be allocated for core dumps. This size should be equal to the size of memory on the server so the content of all memory is contained in the core file.
Rerun the test to see if a core dump file is created. If, after enabling core dumps on the server, a core dump file is still not created, launch dsTest with the -O option and run the test again. A core dump file should be created in the directory from which you launched dsTest.
How do I use SCTP Multi-Homing/Mutlistreaming/Fragmentation with dsTest?
dsTest utilizes the standard Linux OS drivers for SCTP. Multi-homing, Multi-streaming and Fragmentation/Reassembly are features of those drivers and the Linux OS, not of the dsTest application. dsTest provides configuration support for Multi-homing by permitting multiple IP Address in the SCTP socket configuration. For multi-homing, the client and server advertise multiple address and either side can use any of the addresses that are advertised but the primary (1st address in the list) is used unless it becomes unavailable.
It is possible that you will need to adjust some Linux parameters, such as the retransmission timers, to make Multi-Homing work on the dsTest server. There are example configurations on the dsTest server in /usr/local/devsol/dstest/examples and in the dsClient Examples library that demonstrate how to configure multi-homing in dsTest.
For Multi-streaming, dsTest will initiate Diameter messages on stream 0 and it will receive and respond to messages received on other streams (1-15). For M3UA, the specification RFC 4960 states management messages will utilize stream 0 and all other messages will not utilize stream zero (0). dsTest uses stream one (1) for data messages and will respond to data messages received on streams 2-15. You can find some configuration elements for SCTP to help with the OS settings in the SCCP SCTP Socket or the Diameter SCTP Socket.
Fragmentation/Reassembly is handled by the Linux OS after/before the messages are handed to the dsTest application. The ability to send and reassemble fragmented packets will be determined by the settings in the OS.
How does dsTest use the secondary Diameter Interface?
dsTest will retry on the alternate interface when it is available under the following conditions:
Current interface failure - all requests that are pending a response and any new requests will use the alternate interface.
When a DIAMETER_TOO_BUSY response is received and retries are enabled, dsTest will delay for 3 seconds and then resend the request on the alternate interface with the retransmit bit set.
When the UNABLE_TO_DELIVER response is received.
When the request times out and retries are enabled, dsTest will delay for 3 seconds and then resend the request on the alternate interface with the retransmit bit set.
Retries are enabled under the interface application as <retry_count>.
These are the only cases under which a request will be retransmitted.
There are example configurations on the dsTest server in /usr/local/devsol/dstest/examples and in the dsClient Examples library that demonstrate how to configure redundancy/secondary diameter interfaces in dsTest.
When I start dsClient Desktop, I get a pop-up error message that says I require a different version.
This message indicates that your dsClient Desktop installation is not compatible with one or more of your dsTest installations. Although this warning will not prohibit interactions with incompatible dsTest versions, the results may not be desirable. See Managing Your Servers.
How many actions can be active on a single node at one time?
The number of actions that can be running simultaneously on a single node is not limited but every action will increase memory usage. We recommend that you not attempt to run more than 20 actions on the same node at the same time. Contact Support if you think you are having an issue starting multiple actions on the same node.
How does dsTest provide authentication with an emulated HSS node?
A sample configuration for S6 on a dsTest HSS node emulator can be found in the dsClient Desktop by selecting the folder icon on the left side of the workspace, expanding the read-only Examples folder, selecting the S6 folder and selecting the example_app_s6_hss.dsx file. XML versions of the same example files can be found on the dsTest server in the /usr/local/devsol/dsTest/examples folder.
The authentication process uses the configuration elements in the Authentication Profile and Subscriber_Group Subscriber_Identities configuration information when using one of the vector generation functions. If fixed vectors are to be used, they must be configured in the Fixed Vector Values section of the Subscriber Group.
The Authentication Process
When subscriber makes an authentication request, it is forwarded to the HSS in an S6 AIR message that contains the subscriber identity (Username AVP - normally the IMSI) and the number of requested vectors. The HSS locates the subscriber in its database using the subscriber identity and returns a set of vectors (based on the Authentication Profile and Identity information) in an S6 AIA message. The type and number of the vectors are determined by the test case configuration. Upon receiving the AIA from the HSS, the subscriber will use the information it has and some of the information returned by the HSS (specifically the RAND) to generate a set of vectors based on its configuration and compare those vectors to the ones received from the HSS. If the vectors match the authentication is successful. If the information does not match, authentication will fail.
There are two basic configurations that can be used:
Dynamic Vectors (how the network normally works)
Fixed Vectors
For Dynamic Vectors, the HSS uses the configuration in the Authentication Profile, primarily the Authentication Type, Authentication Algorithm and the Generated Vectors, to determine the type and number of vector sets to generate and returns that information in the AIA message.
The Authentication Type determines what vectors are generated:
GPRSr99 = 2G
UMTS = 3G
EUTRAN = 4G
The Authentication Algorithm will determine what algorithm will be used to generate the vectors:
Milenage (default and what the network normally uses)
TestUSim (used in some lab simulations)
Fixed
The vectors values are:
RAND
AUTN,
(X)RES
Kasme
CK
IK
KC
For UMTS (UTRAN), the vector set includes RAND, RES, AUTN, CK and IK.
For EUTRAN, the vector set includes RAND, RES, AUTN and Kasme.
When the Milenage or TestUSim authentication algorithm is used, dsTest will use the KEY and OP or OPc defined in the Subscriber_Identities as inputs to these algorithms in order to generate the required set of vectors. In order for a Dynamic Vector authentication to succeed the UE and HSS must share the same Key and OP or OPc information.
If the Fixed authentication algorithm is selected, the HSS will not generate any vectors but instead supply the vectors that are configured in the Fixed Vector Values section of the Subscriber_Group. Since the vectors are not generated by the HSS, the Key and OP or OPc information is not used and the Authentication Type is used to determine which fixed vector set is sent.
See also this FAQ on the HSS authentication process.