IxLoad Tcl API Programming Guide

Ixia IxLoad

Ixia Technologies

IxLoadTclApi
IxLoad
Tcl API Programming Guide
Includes Python and PERL Support
Version 8.21
March 2017

Copyright and Disclaimer
Copyright © 2017 Ixia. All rights reserved.
This publication may not be copied, in whole or in part, without Ixia's consent.
Ixia, the Ixia logo, and all Ixia brand names and product names in this document are either trademarks or registered trademarks of Ixia in the United States and/or other countries. All other trademarks belong to their respective owners.
The information herein is furnished for informational use only, is subject to change by Ixia without notice, and should not be construed as a commitment by Ixia. Ixia assumes no responsibility or liability for any errors or inaccuracies contained in this publication.
RESTRICTED RIGHTS NOTICE
As prescribed by FAR 27.409(b)(4) and in accordance with FAR 52.227-14, please take notice of the following.
(a) This proprietary computer software and/or software technical data is submitted with restricted rights. It may not be used, reproduced, or disclosed by the Government except as provided in paragraph (b) of this notice or as otherwise expressly stated in the applicable contract.
(b) This computer software and/or software technical data may be--
(1) Used or copied for use with the computer(s) for which it was acquired, including use at any Government installation to which the computer(s) may be transferred;
(2) Used or copied for use with a backup computer if any computer for which it was acquired is inoperative;
(3) Reproduced for safekeeping (archives) or backup purposes;
(4) Modified, adapted, or combined with other computer software, provided that the modified, adapted, or combined portions of the derivative software incorporating any of the delivered, restricted computer software shall be subject to the same restricted rights;
(5) Disclosed to and reproduced for use by support service Contractors or their subcontractors in accordance with paragraphs (b)(1) through (4) of this notice; and
(6) Used or copied for use with a replacement computer.
(c) Notwithstanding the foregoing, if this computer software and/or software technical data is copyrighted computer software and/or software technical data, it is licensed to the Government with the minimum rights set forth in paragraph (b) of this notice.
(d) Any other rights or limitations regarding the use, duplication, or disclosure of this computer software and/or software technical data are to be expressly stated in, or incorporated in, the applicable contract.
(e) This notice shall be marked on any reproduction of this computer software, in whole or in part.
(End of notice)

ii

IxLoad Tcl API Programming Guide

Contacting Ixia

Contacting Ixia

Corporate Headquarters
EMEA
Asia Pacific Japan India
China

Ixia Worldwide Headquarters 26601 W. Agoura Rd. Calabasas, CA 91302 USA +1 877 FOR IXIA (877 367 4942)
+1 818 871 1800 (International)
(FAX) +1 818 871 1805
sales@ixiacom.com
Ixia Europe Limited Part 2nd floor, Clarion House, Norreys Drive Maidenhead, UK SL6 4FL +44 (1628) 408750
FAX +44 (1628) 639916
salesemea@ixiacom.com
Ixia Pte Ltd 210 Middle Road #08-01 IOI Plaza Singapore 188994
Ixia KK Nishi-Shinjuku Mitsui Bldg 11F 6-24-1, Nishi-Shinjuku, Shinjuku-ku Tokyo 160-0023 Japan
Ixia Technologies Pvt Ltd Tower 1, 7th Floor, UMIYA Business Bay Cessna Business Park Survey No. 10/1A, 10/2, 11 & 13/2 Outer Ring Road, Varthur Hobli Kadubeesanahalli Village Bangalore East Taluk Bangalore-560 037, Karnataka, India +91 80 42862600
Ixia Technologies (Shanghai) Company Ltd Unit 3, 11th Floor, Raffles City, Beijing Beijing, 100007 P.R.C.

Web site: www.ixiacom.com General: info@ixiacom.com Investor Relations: ir@ixiacom.com Training: training@ixiacom.com Support: support@ixiacom.com +1 818 595 2599
Support: support-emea@ixiacom.com +40 21 301 5699
Support: support-asiapac@ixiacom.com +91 80 4939 6410
Support: support-japan@ixiacom.com +81 3 5326 1980
Support: support-india@ixiacom.com +91 80 4939 6410
Support: support-china@ixiacom.com 400 898 0598 (Greater China Region) +86 10 5732 3932 (Hong Kong)

IxLoad Tcl API Programming Guide

iii

This page intentionally left blank.

iv

IxLoad Tcl API Programming Guide

CONTENTS

Contacting Ixia

iii

CONTENTS

v

About this Guide

1

Conventions

1

Related Documentation

2

Introduction

3

Background Reading

3

Network Setup

5

Backward Compatibility

9

Deprecated Commands

9

Python Support

10

PERL Support

13

Quick Start

19

Windows

19

Unix/Linux

22

Editing the setup_simple.tcl script

24

Running the sample scripts

25

Monitoring Status and Retrieving Results

25

API Overview

27

Tcl API Structure

27

General API Conventions

30

TCL API Internal Overview

35

IxLoad Tcl API Programming Guide

v

CONTENTS
Building an IxLoad Test Running an IxLoad Tcl Script API Description Sample Scripts Shipped with IxLoad Example Program IxLoad Tcl API Commands ::IxLoad ixChassisChain IxChassisBuilder ixCustomPortMap ixPlaylists ixPort ixSubmap ixSubmapRange ixIntRange ixRepository ixSendEventCommand ixStatCatalogItem ixStatFilter ixStatSpec ixTest ixTestController ixTestControllerMonitor statCollectorUtils ixScriptGen ixTimeline ixSubscriberNetTraffic
vi

38 66 69 81 85 115 115 117 120 126 128 131 133 134 135 136 137 139 140 142 144 146 154 155 165 167 172
IxLoad Tcl API Programming Guide

ixNetTraffic activityList ixTrafficFlow ixTrafficColumn ixNetworkGroup ixDut ixDutConfigVirtual ixDutNetworkRange ixDutProtocolPortRange ixDutConfigVip ixDutConfigSLB ixView ixClientNetwork ixClientTraffic ixClientTrafficNetworkMapping ixNetworkRange ixServerNetwork ixServerTraffic ixServerTrafficNetworkMapping ixWaitEventCommand Internal Commands duplicate ixConfig ixConfigSequenceContainer ixConfigSortedNamedItemList Network Stack API Network Stack Overview
IxLoad Tcl API Programming Guide

CONTENTS
173 179 179 180 181 183 184 186 188 189 189 190 192 195 197 206 209 213 215 217 219 219 219 220 222 227 227
vii

CONTENTS
Network Group Overview Global plugins Stacks and Protocol Plugins Ethernet Plugin Layer 2 Protocols (MAC / VLAN) Emulated Router Plugin IP Plugin StaticARP DHCP Client and Server Authentication Extension Plugins Impair Plugin IPSec Plugin PPPoX Plugin L2TP Plugin GTPSPlugin eGTP Plugin DSLite Plugin Global Services Plugins Mobile Subscribers Plugins AppReplay Objectives Application Replay Peer Agent Global Statistics AppMix Creating an AppMix Object Adding Flows to an AppMix Object Setting Flow Parameters
viii

228 229 230 233 239 251 260 269 270 273 282 303 358 370 401 403 404 406 422 435 435 436 456 465 466 467 468
IxLoad Tcl API Programming Guide

Configuring Flow Commands Flow Protocols Setting Flow Endpoints Flow Endpoints Bulk MGCP API Overview MGCP Client API MGCP Server API Parameters MGCP Client Agent MGCP Server Agent Bulk MGCP Statistics Bulk SIP Overview Objectives SIP Client Commands SIP Server Commands SIP Client Agent SIP Server Agent Using Variables in SIP Fields Bulk SIP Statistics CIFS API Overview CIFS Client Agent CIFS Server Agent Statistics DHCP
IxLoad Tcl API Programming Guide

CONTENTS
469 470 472 473 475 475 475 481 484 487 505 516 531 531 532 533 544 553 584 594 596 627 627 629 638 649 665
ix

CONTENTS
Overview DHCP Client Agent DHCP Command List Advanced Options Relay Agent Option IP Address Using Variables in DHCP Fields DHCP Statistics DNS Overview DNS Client Agent DNS Server Agent DNS Statistics FTP Overview Objectives FTP Client Agent FTP Server Agent FTP Client Agent FTP Server Agent FTP Statistics HTTP Overview HTTP Client Agent HTTP Server Agent
x

665 666 668 676 678 680 691 692 694 707 707 708 714 724 739 739 739 740 742 744 751 754 761 761 763 781
IxLoad Tcl API Programming Guide

CONTENTS

Using Sequence Generators in HTTP Client Commands and Server Header Name=Value Fields Statistics IMAP API Overview IMAP Client Agent IMAP Server Agent Using Auto-Generated Strings IMAP Statistics IPTV/ Video Overview Video Client Agent Video Server Agent IPTV / Video Statistics iSCSI API Overview iSCSI Client Agent iSCSI Server Agent IxIO API Overview IxIO Client Agent LDAP Overview LDAP Client Agent LDAP Statistics Peer-to-Peer Application Objectives

804 807 843 843 845 856 869 870 881 881 884 918 928 973 973 975 983 991 991 992 1003 1003 1007 1025 1033 1033

IxLoad Tcl API Programming Guide

xi

CONTENTS
Peer-to-Peer Application Agent Peer-to-peer Global Statistics POP3 Overview POP3 Client Agent POP3 Server Agent Using Auto-Generated Strings POP3 Statistics Published Vulnerabilities and Malware config advOptions attacksCmdList AddAttacks AttackListCount CreateAttackList CreatePlaylist DatabaseVersion DeleteAttackList DeleteAttacks ExportAttacks GetCapture ImportAttacks (.zatk format) ImportUserDefinedAttacks RenameAttackList RetrieveAttacks SearchAttacks QT
xii

1034 1039 1045 1045 1048 1055 1058 1059 1067 1068 1070 1071 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1093
IxLoad Tcl API Programming Guide

Running a QuickTest from Tcl startQuickTest checkTestRunning stopQuickTest QuickTest Sample Script Radius Overview Radius Client Agent RADIUS Client Statistics RTSP Overview RTSP Client Agent RTSP Server Agent RTSP Statistics SMTP Overview SMTP Client Agent SMTP Server Agent SMTP Statistics SSH API Overview SSH Client Agent SSH Client Statistics Stateless Peer Stateless Peer Overview Stateless Peer Agent HTTP Streaming
IxLoad Tcl API Programming Guide

CONTENTS
1094 1095 1096 1097 1098 1101 1101 1105 1121 1129 1129 1134 1148 1157 1171 1171 1175 1189 1191 1199 1199 1202 1216 1221 1221 1223 1235
xiii

CONTENTS
API Overview HTTP Streaming Client Agent Telnet API Overview Telnet Client Agent Telnet Server Agent Telnet Statistics TFTP Overview TFTP Client Agent TFTP Server Agent TFTP Client Statistics TFTP Server Statistics Trace File Replay Overview Trace File Replay Client Agent Trace File Replay Server Agent Statistics VDI API Overview VDI Client Agent VoIP H.248 Peer Limitations VoIP H248 Peer API Commands VoIP H248 Peer Agent Simulated MGC Simulated MGW
xiv

1235 1236 1253 1253 1258 1266 1271 1283 1283 1286 1294 1300 1304 1307 1307 1312 1318 1323 1329 1329 1330 1333 1333 1334 1338 1345 1347
IxLoad Tcl API Programming Guide

H248 TermGroups MGW Automatic MGC Automatic Profiles Packages Events Properties Signals Statistics H248 Settings Codec Settings Data Codecs Codecs Other Settings SDP Settings RTP Settings Audio Settings Execution Settings Scenario Settings VoIP H.323 Peer API Overview VoIP H323 Peer API Commands VoIP H323 Peer Agent Codec Settings Codecs Data Codecs Other Settings
IxLoad Tcl API Programming Guide

CONTENTS
1349 1351 1354 1359 1360 1362 1363 1364 1365 1366 1368 1369 1371 1377 1379 1381 1383 1387 1389 1391 1391 1392 1394 1405 1406 1412 1414
xv

CONTENTS
RTP Settings Audio Settings Video Settings Alternative Capability Value Set List Capability List Custom Activity Link Settings Execution Settings Simultaneous Capability H323 Settings Simultaneous Capability Value Set List Alternative Capability List Alternative Capability Dial Plan Terminal Capability Set Simultaneous Capability List Scenario Settings Custom Parameters VoIP MGCP Limitations VoIP MGCP Peer API Commands MGCP GW Agent MGCP Settings (GW) Automatic Settings (GW) Endpoints MGCP CA Agent MGCP Settings (CA) Automatic Settings (CA)
xvi

1416 1418 1422 1427 1428 1429 1431 1433 1434 1438 1439 1440 1441 1444 1445 1446 1447 1449 1449 1450 1454 1463 1465 1467 1468 1470 1472
IxLoad Tcl API Programming Guide

Endpoints Gateways Scenario Settings Execution Settings Custom Activity Link Settings Simulated Endpoints Data Codecs Codecs SDP Settings RTP Settings Audio Settings Other Settings VoIP SIP Cloud Limitations VoIP SIP Cloud API Commands VoIPSIP Cloud Agent Settings SIP Server List VoIP SIP Peer Limitations VoIP SIP Peer API Commands VoIP SIP Peer Agent Codec Settings Data Codecs Codecs Other Settings Signaling Settings
IxLoad Tcl API Programming Guide

CONTENTS
1474 1476 1478 1479 1481 1485 1487 1489 1494 1495 1497 1501 1503 1503 1504 1506 1508 1509 1511 1511 1512 1515 1538 1539 1541 1548 1551
xvii

CONTENTS
Edit Contact RTP Settings Audio Settings Video Settings T.38 Settings T.30 Settings Timer Settings SRTP Settings MSRP Settings MSRP GUI Files MSRP Relays Custom Activity Link Settings Execution Settings Transfer Address Scenario Settings Dial Plan TLS Settings TLS Cyphers Custom Parameters Advanced Settings Cloud Servers Server Rules Cloud Rules RuleData VoIP Skinny Peer Limitations VoIP Skinny Peer API Commands
xviii

1555 1557 1559 1563 1567 1571 1577 1579 1581 1584 1586 1587 1590 1593 1595 1596 1599 1602 1603 1606 1607 1609 1610 1612 1615 1615 1616
IxLoad Tcl API Programming Guide

VoIP Skinny Peer Agent Scenario Settings Execution Settings Dial Plan Skinny Settings Call Managers Codec Settings Data Codecs Codecs RTP Settings Audio Settings Other Settings Custom Activity Link Settings Custom Parameters VoIP No Call Control Peer Limitations VoIP No Call Control Peer API Commands VoIP No Call Control Peer API Objects VoIP No Call Control Peer Agent Scenario Settings Execution Settings Dial Plan Codec Settings Codecs Data Codecs Audio Settings Video Settings
IxLoad Tcl API Programming Guide

CONTENTS
1618 1635 1636 1638 1643 1646 1648 1649 1651 1657 1659 1663 1665 1667 1669 1669 1670 1671 1672 1689 1690 1692 1694 1696 1703 1705 1709
xix

CONTENTS
T.30 Settings T.38 Settings RTP Settings SRTP Settings Other Settings IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics Per-Interface and TCP Statistics Run State Statistics Curve Segment Statistics Connection Latency Statistics IxServer Layer 2-3 Statistics IxServer Port CPU Statistics INDEX

1713 1719 1723 1725 1727 1729 1730 1741 1743 1744 1746 1748 1749

xx

IxLoad Tcl API Programming Guide

About this Guide
About this Guide
This section contains information that explains the typographical conventions used in this documentation. This information will aid you in using the documentation most effectively. Also provided is a list of related documentation that you may find useful.
Conventions
The following typographical conventions are used in this documentation:
l Italics are used to indicate the names of software fields and parameters, titles of books or documents, and first references to words, terms, phrases, or concepts that have a special meaning or require special identification or emphasis. For example:
l In the userid field, enter your assigned user identification number. l Norton's Telecom Dictionary is a helpful reference tool. l The term tolerance level refers to the standard deviation setting. l The variable n represents any numerical value. l Menu names and options appear as bold blue text in online Help, and appear in small capital let-
ters in documents. For example: l To save your input, choose the File>Save menu option. l Bold black type is used to indicate the names of buttons, commands, and files that are part of pro-
cedures, as well as to identify field and parameter options. In addition, bold text emphasizes important information in text or in caution, warning, or danger statements. For example: l To proceed to the next step, click OK. l Use the copy command to duplicate the field entry. l Save and close the books.xml file. l Always save your test configuration. l Courier text is used to indicate typed text input. For example: l Access the new file name at the command line: c = newbook.gif. l Enter the setup.ini location: setupini = Ixia\Code\New. l PC keys are indicated in all caps, using the following conventions: l Simultaneous keystrokes are shown by joining the key names with a plus sign (+), For example, CTRL+Q. l Sequential keystrokes are shown by joining the key names with a comma (,). For example, SHIFT, F7.
Icons are used throughout the documentation to draw attention to caution, warning, and danger statements. Icons also identify notes, important information, and the start of a procedure.

IxLoad Tcl API Programming Guide

1

About this Guide
Caution: Provides information that is needed to avoid potential harm to equipment or the environment. Warning: Provides information needed to prevent certain harm to a person, piece of equipment, or the environment. DANGER: Provides information to prevent certain severe bodily harm to a person.
Note: Provides information that needs special attention within text.
IMPORTANT: Provides information that is especially important for correct product operation.
Related Documentation
The following documentation may be helpful in gaining more understanding of IxLoad. The documentation is available from the Help pull-down menu in IxLoad or from the IxLoad CD. Ixia user documentation is also available in the Support>User Guides area of ixiacom.com (http://www.ixiacom.com). User registration is required to view this online documentation.
Getting Started with Aptixia IxLoad IxLoad User Guide

2

IxLoad Tcl API Programming Guide

Introduction
The IxLoad Tcl API is a set of Tcl commands that enable you to run IxLoad tests from Tcl scripts. The API provides most of the same capabilities available from the GUI.
Background Reading
In order to use the Tcl API, you should also have the following other documents: The IxLoad User Guide should be read and understood before attempting to use the API. In particular, the following two chapters are essential:
l Introduction discusses the background to understand Internet protocol testing in general and the manner in which Ixia approaches it specif
l Creating and Running an IxLoad Test describes how to create the test infrastructure. Care must be taken to assign IP addresses correctly and to provide required routes.
The Creating and Running an IxLoad Test chapter uses the term Management Station to refer to the host that runs the IxLoad GUI application. In this guide, that host is the host that runs a Tcl program using the IxLoad Tcl API is in this same position. We shall refer to this as the Development Station in the remainder of this manual. The Ixia Tcl Development Guide describes the general method for developing Tcl scripts for use with Ixia equipment. Only a few of the commands described in that guide are necessary to construct an IxLoad Tcl API­based test, but you should review the entire guide to familiarize yourself with the general structure and functioning of Tcl-based tests.

Using a License Server
If you are using a central license server with IxLoad, make sure to set the name of the server in IxLoad's Settings > Preferences menu choice.
To allow use of a central license server by the TCL API, the system environment variable IXN_ LICENSE_SERVER must be set on the client PC.
If you are running your Tcl program on a Unix client, the IXN_LICENSE_SERVER environment variable must be set on the Windows host running the Tcl Server, and on the Unix client through the user shell initialization script.

IxLoad Tcl API Programming Guide

3

Introduction

To set the License Server environment variable on a Windows host:
1. Right-click on the My Computer icon on the desktop, then select Properties. 2. Click the Advanced tab. 3. Click Environment Variables. 4. In either the User variables for... or System variables lists, click New to add a new variable. 5. Name the variable IXN_LICENSE_SERVER. 6. Set the variable value to the name or IP address of the license server host. 7. Click OK to close the window.

Configuring the ixMachineOptions.ini File
The ixMachineOptions.ini file contains parameters for configuring the license server used for Tcl scripts. In order to run IxLoad from Tcl scripts, you must configure these parameters, because there is no way to define a license server from an IxLoad Tcl API script.
The ixMachineOptions.ini file is created the first time you start IxLoad, and is stored in the following directory on the IxLoad client PC:
l Windows XP: C:\Documents and Settings\All Users\Application Data\Ixia\IxLoad\<version>\
l Windows Vista and later: C:\ProgramData\Ixia\IxLoad\<version>\
License server parameters

[GlobalOptions]

license_ server_ enabled =

Specifies whether the license is stored on the test chassis or on an external license server.
False: The license is stored on the same Ixia chassis that is being used by the Tcl script (Default).
True: The license is stored on an external license server. Specify the license server's host name or IP address in the license_server parameter.

license_ server =

If the license is stored on an external license server, specify its host name or IP address.

License Server Parameters
The [GlobalOptions] section of the IxAppOptions.ini file contains two parameters that define the license server being used. In order to run IxLoad from Tcl scripts, you must configure these

4

IxLoad Tcl API Programming Guide

Introduction

parameters, because there is no way to define a license server from an IxLoad Tcl API script. The license server parameters are:

[GlobalOptions]

license_server_ enabled =

Specifies whether the license is stored on the test chassis or on an external license server.
False: The license is stored on the same Ixia chassis that is being used by the Tcl script (Default).
True: The license is stored on an external license server. Specify the license server's host name or IP address in the license_server parameter.

license_server If the license is stored on an external license server, specify its host name or IP

=

address.

Network Setup
You may need to configure IP addresses or routes for IxLoad Tcl API testing. Review the following sections to see if you need to set or change any addresses:
l To change the IxLoad Tcl API development station's IP address, see Configuring a Network Address on the IxLoad Development Station (see "Configuring a Network Address on the IxLoad Development Station").
l If the route to your Ixia chassis includes one or more routers, see Configuring a Permanent Route to Ixia Ports (see "Configuring a Permanent Route to Ixia Ports").
l If you need to change the internal network used by an Ixia chassis, see Setting Ixia Chassis Base Addresses (see "Setting Ixia Chassis Base Addresses").
Configuring a Network Address on the IxLoad Development Station
To use the IxLoad Tcl API, you must configure your development station with an address on its local network that is routeable to all of the Ixia chassis that you will use for testing.
To configure routing:
1. Click Windows' Start button and select Settings | Network and Dial-up Connections. Windows displays the connections currently configured on your PC.

IxLoad Tcl API Programming Guide

5

Introduction
2. Right-click Local Area Connection and select Properties.Windows displays the Local Area Connections Properties window.
3. Click Internet Protocol (TCP/IP), then click Properties.Windows displays the LAN connection's TCP/IP properties.
4. Click the Use the following IP address button, then enter addresses in the following fields: l IP address: Enter an IP address that is routeable to all the Ixia chassis that you will use for IxLoad testing. l Subnet mask: Enter a subnet mask appropriate to the IP address you entered. l Default gateway: Enter the IP address of the gateway you will use to access the network that the Ixia chassis are on.
5. If you want to use DNS, enter the DNS servers' IP addresses in the Preferred DNS server and Alternate DNS server fields.
6. Click OK to close the window.
Testing the Development Station's Routing
After you have configured the development station's IP address, you should test its routing to ensure it can communicate with the Ixia chassis you will use with IxLoad. To test the routing:
1. Click Windows' Start button and select Programs > Accessories > ComPrompt. Windows displays a Command Prompt window. Equation 1: -1.Ping Command

2. Use the ping command to test that your development station can communiwith each chassis: ping aaa.bbb.ccc.ddd

6

IxLoad Tcl API Programming Guide

Introduction
(replace aaa.bbb.ccc.ddd with the IP address of the Ixia chassis). 3. Repeat the ping command for each chassis. Each chassis should return a reply. If any do not, check their TCP/IP configurations. Note: You cannot ping Ixia ports (the chassis' internal 10.0.0.0 network) until you have started a test. Refer to Configuring a Permanent Route to Ixia Ports on page 1-6 on how to set up routing so you can access the addresses assigned to Ixia ports.
Configuring a Permanent Route to Ixia Ports
You must configure a route from the IxLoad development station to the Ixia port management base addresses. To establish a permanent route on a Windows system, you can either use the IxLoad GUI or the following procedure: To establish a permanent route:
1. At the IxLoad development station, click Windows' Start button and select Programs > Accessories > Command Prompt.
Windows displays a Command Prompt window. Equation 2: -2.Route Command
2. Use the route command to create a permanent route: route -p ADD 10.0.0.0 mask 255.255.0.0 aaa.bbb.ccc.ddd metric 1
l If the Ixia chassis is on the same subnet as the development station, replace aaa.bbb.ccc.ddd with the IP address of the Ixia chassis.
l Many IxLoad test environments resemble the one shown in the figure below: IxLoad Tcl API running on a PC connected to a corporate production network, an Ixia chassis connected to a test or QA network behind one or more routers, and a DUT network connected only to the Ixia chassis.

IxLoad Tcl API Programming Guide

7

Introduction

If the Ixia chassis is not on the same subnet as the development station, as shown in the figure above, replace aaa.bbb.ccc.ddd with the address of the router that will provide a connection to the Ixia chassis. That router, and all other intermediate routers to the chassis, should contain routes for the 10.0.0.0 (or modified) address range. These routes in the last router should refer to the Ixia chassis as a gateway.
Note that in a network shown like the one shown in the figure, the router(s) may be configured to disallow access from the production network, or they may route IxLoad requests intended for the Ixia ports (by default, a 10.0.0.0 network) elsewhere (usually to the Internet) or may drop them altogether.
Ensure that no other addresses assigned in IxLoad fall into this range. This setup may be tested using the ping command as described in Testing the Development Station's Routing (see "Testing the Development Station's Routing"), but only in the final stages of running a test.
Setting Ixia Chassis Base Addresses
All ports on an Ixia chassis are initially configured so that they may be internally addressed, for IxLoad management purposes, as: 10.0.<card>.<port>
For example, card 2 port 3 has an internal IP address of 10.0.2.3. These addresses must be routeable from the development stations to the Ixia chassis.

8

IxLoad Tcl API Programming Guide

Introduction
The first two octets of the address (10.0) are called the base address. If you are using IxLoad on an existing network, you may want to change the base address to conform to your existing network layout. If two or more chassis are used for IxLoad GUI or IxLoad Tcl API testing, all but one of the chassis base addresses will need to be changed. Note that the Ixia ports on a chassis will use only a limited range of addresses on their subnet. For example, if the base address is 10.0, and there are sixteen 8-port cards in the chassis, then the range of addresses used will be: 10.0.1.1 - 10.0.16.8
To change the base address of a chassis, use IxExplorer: 1. Open IxExplorer. 2. Select the Chassis Chain object in the tree and right click and choose Add Chassis. Enter the name or IP address of the chassis that will be used. 3. Right-click on the newly created chassis and select Properties. 4. Select the IxRouter tab. 5. You may change the base address in the IP Network field. Make sure to only modify the top two octets and do not change the Mask field.
Backward Compatibility
IxLoad Tcl provides backward compatibility for: l Scripts that configure and run tests. l Scripts that run tests from a repository. l Scripts that modify repositories, as long as the script was written for and tested with repositories from the same IxLoad release as the script, or an earlier release.
For example, if you write a script for IxLoad 4.0, that script can modify any repository created in IxLoad 4.0 or earlier. IxLoad Tcl does not provide backwards compatibility for scripts that modify repositories that were created or saved from releases after the release that the script was written for and tested on. For example, if you write a script for IxLoad 4.0, that script should not modify a repository created in a release later than IxLoad 4.0.
Deprecated Commands
The following items are no longer supported: l Agent sharing

IxLoad Tcl API Programming Guide

9

Introduction

In previous releases, the Tcl API allowed sharing of objects between NetTraffics. For example, in the following code fragment, Traffic1 is shared between two NetTraffics:
$Traffic1_Network3 config \ -traffic [$Traffic1_Network1 cget -traffic]
Beginning with the 5.30 release, agents can no longer be shared. If you try to run a script that includes agent sharing, an error will be thrown and the script will stop.
Instead of agent sharing, the Tcl API includes a new command, duplicate, that makes copies of networks, traffics (agents) and DUTs. The following example shows duplicate being used to copy agents from Traffic1 to Traffic3:
set Traffic1 [$Traffic1_Network1 cget -traffic] set Traffic3 [$Traffic1 duplicate] $Traffic1_Network3 config \ -traffic $Traffic3
duplicate is described in duplicate.

Python Support

In addition to Tcl, you can create native Python scripts that run IxLoad tests. You can either write the Python scripts by hand, or you can use ScriptGen to create a Python script natively from an existing test configuration. For more information on using ScriptGen, see the IxLoad User Guide.
Note: Python is not included with the IxOS or IxLoad installers. You need to install Python separately before you can run Python scripts.

Configuring Python Support
When you install IxOS Tcl support for Linux, python wrappers are also installed. On the following path:

<IxOsTclInstallationPath>/bin an ixpython file is installed. You need to edit this file to specify the python properties:
1. Open the ixpython file, and edit the following lines:

PYTHON_HOME= Python install directory. Usually, this is /usr/bin.

PYTHONver=

Python version. Example: PYTHONver=2.7

PYTHONLibPath= IxLoad path, including version. Example: PYTHONLibPath=$IXIA_HOME/lib/IxLoad6.60.0.109-EB
2. Save the file.

10

IxLoad Tcl API Programming Guide

Introduction

3. To run a python script, type:
ixpython <pythonScript>
Python Commands
All the commands that are available in Tcl are also available in Python. In most cases, you use the same command, but written in Python syntax. However, there are some Python-specific commands. These are listed in the table below. There are two sample Python scripts installed with IxLoad that you can use as examples of how to write an IxLoad Python script. They are installed on the following path: <ixload_install_path>\<version>\PythonScripts\Samples
The following table describes the Python-specific IxLoad commands.

Python Command Equivalents to ::IxLoad IxLoad.connect(remoteServer)
IxLoad.new IxLoad.loadAppPlugin(plugin) IxLoad.delete(element)

Description
Connect to a remote Tcl Windows server when running from a non-Windows client. Tcl equivalent: ::IxLoad connect Example: IxLoad = IxLoad() IxLoad.connect 10.200.55.39
Create a new object. Tcl equivalent: ::IxLoad new Example: logger = IxLoad.new("ixLogger", logtag, 1)
Load a plugin. Tcl equivalent: $ixAppPluginManager load "HTTP" Example: IxLoad.loadAppPlugin("HTTP")
Delete an element of an IxLoad test. Tcl equivalent: ::IxLoad delete Example: IxLoad.delete(chassisChain)

IxLoad Tcl API Programming Guide

11

Introduction

IxLoad.disconnect()

Disconnect from the remote server. Tcl equivalent: ::IxLoad disconnect Example:
IxLoad = IxLoad() IxLoad.connect 10.200.55.39 ... IxLoad.disconnect()

IxLoad.waitForCaptureDataReceived ()

Wait for the data capture (for Analyzer application) to finish. Tcl equivalent: vwait ::ixCaptureMonitor Example: IxLoad.waitForCaptureDataReceived()

IxLoad.waitForTestFinish()

Wait for the test to finish. Tcl equivalent: vwait ::ixTestControllerMonitor Example: IxLoad.waitForTestFinish()

Equivalents to statCollectorUtils

StatUtils.Initialize(test_server_ handle)

Initialize the statistics collection utilities. Tcl equivalent: ${NS}::Initialize Example: test_server_handlee=testController.getTestServerHandle() StatUtils.Initialize(test_server_handle)

StatUtils.ClearStats()

Clear the statistics from a previous test run. Tcl equivalent: ${NS}::ClearStats Example: StatUtils.ClearStats()

StatUtils.AddStat()

Add a statistic to the list of statistics to be collected. Tcl equivalent: ${NS}::AddStat Example:
StatUtils.AddStat(caption = "Watch_Stat_1", statSourceType = "HTTP Client", statName = "HTTP Bytes Sent", aggregationType = "kSum", filterList = {})

12

IxLoad Tcl API Programming Guide

StatUtils.StartCollector()
StatUtils.StopCollector() Enums IxLoad.<element>.<enum>

Introduction
Start collecting statistics. Tcl equivalent: ${NS}::StartCollector -command ::my_ stat_collector_command Example: StatUtils.StartCollector(my_stat_collector_python_ command)
Stop collecting statistics. Tcl equivalent: ${NS}::StopCollector Example: StatUtils.StopCollector()
Change an enumerated value. Tcl equivalent: $::<element>(enum) Example: svr_network.networkRangeList.appendItem(name = "svr_range", enable = 1, firstIp = "198.18.200.1", \ ipIncrStep = IxLoad.ixNetworkRange.kIpIncrOctetForth, ...)

PERL Support
In addition to Tcl, you can create native Perl scripts that run IxLoad tests. You can either write the Perl scripts by hand, or you can use ScriptGen to create a Perl script natively from an existing test configuration. For more information on using ScriptGen, see the IxLoad User Guide.
Perl support, including the Perl interpreter and supporting modules, are automatically installed when you install IxLoad. IxLoad Perl modules are installed the following location: C:\Program Files (x86)\Ixia\Perl.
Sample Scripts
Sample Perl scripts are installed in <ixload_install_path>\PerlScripts\Samples. You can review these scripts to help you in creating your own scripts, or you can edit them to reflect your specific configuration (chassis IP address, card IDs, port IDs, etc.) and run them.
Running Scripts

IxLoad Tcl API Programming Guide

13

Introduction

To run an IxLoad Perl script:
l If your script is on the path <ixload_install_path>\PerlScripts\Samples, you can run a script with the command perl <script_name>.pl.
l If your script is on a different path, add the following line to the script header, so that it finds the path the IxLoad build that it should use:
use lib '<ixload_install_path>/version/PerlScripts/lib';
For example:
use warnings; use strict; use lib '.'; ... use lib 'C:/Program Files (x86)/Ixia/IxLoad/6.70.0.56-EB/PerlScripts/lib'; use IxLoad;

Perl Commands
All the commands that are available in Tcl are also available in Perl. In most cases, you use the same command, but written in Perl syntax.
However, there are some Perl-specific commands. These are listed in the table below.

Perl Command Equivalents to ::IxLoad IxLoad.connect(remoteServer)
IxLoad.new
IxLoad.loadAppPlugin(plugin)

Description
Connect to a remote Tcl Windows server when running from a non-Windows client. Tcl equivalent: ::IxLoad connect Example: use IxLoad; IxLoadConnect->connect('1.2.3.4');
Create a new object. Tcl equivalent: ::IxLoad new Example: my $logger = IxLoad->new('ixLogger', $logtag, 1);
Load a plugin. Tcl equivalent: $ixAppPluginManager load "HTTP" Example: IxLoad->pluginManager('load', 'HTTP');

14

IxLoad Tcl API Programming Guide

Introduction

IxLoad.delete(element)

Delete an element of an IxLoad test. Tcl equivalent: ::IxLoad delete
Example: IxLoad->delete($chassisChain);

IxLoad.disconnect()

Disconnect from the remote server. Tcl equivalent: ::IxLoad disconnect Example: use IxLoad;IxLoadConnect->connect ("10.200.25.39");...IxLoad->disconnect();

IxLoad.waitForCaptureDataReceived ()

Wait for the data capture (for Analyzer application) to finish. Tcl equivalent: vwait ::ixCaptureMonitor Example: IxLoad->waitForCaptureDataReceived();

IxLoad.waitForTestFinish()

Wait for the test to finish. Tcl equivalent: vwait ::ixTestControllerMonitor Example: IxLoad::TestControllerWait();

Equivalents to statCollectorUtils

StatUtils.Initialize(test_server_ handle)

Initialize the statistics collection utilities. Tcl equivalent: ${NS}::Initialize Example: my $test_server_handle = $testController>getTestServerHandle();$NS->Initialize($test_ server_handle);

StatUtils.ClearStats()

Clear the statistics from a previous test run. Tcl equivalent: ${NS}::ClearStats Example: $NS->ClearStats();

StatUtils.AddStat()

Add a statistic to the list of statistics to be collected.

Tcl equivalent: ${NS}::AddStat

Example: $NS->AddStat({

filterList => {},

caption

=> "Watch_Stat_1", statSourceType => "HTTP

Client", statName => "HTTP Bytes Sent",

aggregationType => "kSum"});

IxLoad Tcl API Programming Guide

15

Introduction

StatUtils.StartCollector()
StatUtils.StopCollector() Enums IxLoad.<element>.<enum>

Start collecting statistics. Tcl equivalent: ${NS}::StartCollector -command ::my_stat_collector_command Example: $NS->StartCollector({command => \&my_stat_collector_command});
Stop collecting statistics. Tcl equivalent: ${NS}::StopCollector Example: $NS->StopCollector();
Change an enumerated value. Tcl equivalent: $::<element>(enum) Example: $svr_network->networkRangeList->appendItem({ name => "svr_range", enable => 1, firstIp => "198.18.200.1", ipIncrStep => $IxLoad::Info::ixNetworkRange{kIpIncrOctetForth},....});

Examples
Below are some examples of functions written in TCL and in Perl, for comparison.

Tcl

Perl

Creating an object

set chassisChain [::IxLoad new ixChassisChain]

my $chassisChain = IxLoad->new ("ixChassisChain");

Calling a method

$chassisChain addChassis 10.215.170.83 -- or -$Network1 portList.appendItem \chassisId 1 \-cardId 2 \-portId 1

$chassisChain->addChassis ("10.215.170.83"); -- or -$Network1->portList->appendItem({ chassisId => 1, cardId => 2, portId => 1});

Setting properties on an object

$Settings_1 config \teardownInterfaceWithUser false \-_ Stale false \-interfaceBehavior 0

$Settings_1->config({ teardownInterfaceWithUser => "False", _Stale => "False", interfaceBehavior => 0});

16

IxLoad Tcl API Programming Guide

Introduction ! 2

IxLoad Tcl API Programming Guide

17

This page intentionally left blank.

18

IxLoad Tcl API Programming Guide

Quick Start
This section describes how to modify a sample script to run an IxLoad Tcl API test. You can use this section to quickly familiarize yourself with the basic steps required to run a simple IxLoad script. Once you have modified and run a sample script, you can refer to the following sections in this guide to learn about the IxLoad Tcl API in greater detail.
l To run a sample script from Windows, see Windows (see "Windows"). l To run a sample script from Unix/Linux, see Unix/Linux (see "Unix/Linux").
Windows
The section describes how to run a sample Tcl script included with IxLoad on Windows. To run IxLoad Tcl scripts, you must install the IxLoad Tcl 8.4 shell, which is an option in the IxLoad Windows client installation package.
Note: The IxOS wish console cannot be used to execute IxLoad Tcl scripts.

IxLoad Tcl API Programming Guide

19

Quick Start
Using The Sample Tcl Scripts
The Tcl scripts require either the IxLoad Tcl 8.4 wish console or the Tcl shell to run. Choose one of the following:
l Double-click the IxLoad Wish shell icon for the version of IxLoad that you want to run l Execute the following in a console window: C:\Program Files\Ixia\Tcl\<version>\bin\tclsh.exe,
and then source IxiaWish.tcl from C:\Program Files\Ixia\IxLoad\<version>\TclScripts\bin. The included sample Tcl scripts can be found in the following subdirectories under C:\Program Files\Ixia\IxLoad\<version>\TclScripts\Samples:
l Samples\Application Features contains scripts that demonstrate various IxLoad features l Samples\Network contains scripts that create various network configurations l Samples\Protocols contains scripts that generate different types of protocol traffic l Samples\Stats contains scripts that demonstrate how to retrieve statistics One script from the Samples directory, setup_simple.tcl, must be modified to work with your network topology. See Editing the setup_simple.tcl script (see "Editing the setup_simple.tcl script").
Note: When you source the IxiaWish.tcl script, it sets the auto_path value so that when you execute a package req IxLoad command, the Tcl shell can find the IxLoad packages.
Editing the setup_simple.tcl script
You must edit the setup_simple.Tcl script to include the correct addresses in use on your network. l On Windows, the file is located at : ..\IxLoad\<version>\TclScripts\Samples l On Unix/Linux, the file is located at: ../IxLoadTclApi<version>/Samples/
To edit the setup_simple.tcl script: 1. In an editor, open the setup_simple.tcl script. 2. Set the Tcl server address:
variable ::IxLoadPrivate::SimpleSettings::remoteServer n.n.n.n Tcl server must run on a Windows host, not on the chassis. When running a script from Unix, change this value to the IP address of the IxLoad client that the script will run on. When running a script from Windows, this variable must still be set, but its value is not used.
3. Set chassisName to the hostname or IP address of the chassis you will use: variable ::IxLoadPrivate::SimpleSettings::chassisName n.n.n.n
4. CARD_ID and PORT_ID are local variables used between the setup_simple.tcl script and all Ixiaprovided sample Tcl scripts. Set CARD_ID and CARD_PORT (in the serverPort and clientPort

20

IxLoad Tcl API Programming Guide

Quick Start

array) to the card and port you will use:
array set ::IxLoadPrivate::SimpleSettings::clientPort { CARD_ID"4"
PORT_ID"5" } array set ::IxLoadPrivate::SimpleSettings::serverPort {CARD_ID "2" }
5. Save and close the file.

"3"PORT_ID

Running the sample scripts
Follow the instructions below to launch the ixwish shell, and call the Tcl script. In the procedure below, replace (replace <version> with the correct directory name).
To run a sample script:
1. Choose one: l Double-click the IxLoad Wish shell icon for the version of IxLoad that you want to run l Execute the following in a console window: C:\Program Files\Ixia\Tcl\<version>\bin\tclsh.exe, and then source IxiaWish.tcl from C:\Program Files\Ixia\IxLoad\<version>\TclScripts\bin.
2. Change the path to the directory that contains the script that you want to run. Scripts are stored in directories under <installDir>/IxLoad/<version>/TclScripts/Samples.
l Samples/Application Features contains scripts that demonstrate various IxLoad features l Samples/Network contains scripts that create various network configurations l Samples/Protocols contains scripts that generate different types of protocol traffic l Samples/Stats contains scripts that demonstrate how to retrieve statistics
For example, to change to the Protocols directory, type: cd Samples/Protocols
3. To start the script, use the source command to run it.
For example, to run the HTTP.tcl script, type source HTTP.tcl

Monitoring Status and Retrieving Results
While a test is running, status messages display in the wish console window. The results (in CSV format) are placed in the Results\<Tclscriptname> subfolder where your Tcl script is located. For example: C:\Program Files\Ixia\IxLoad\<version>\Results\simplehttpclientandserver

IxLoad Tcl API Programming Guide

21

Quick Start

During the test run, a log file is created and stored in the current working directory.

Unix/Linux
On Unix/Linux, two types of installers are availalble: .bin and PIT. The .bin installers automatically install all the required dependent packages on the following paths:

IxLoad /opt/ixia/ixload/version/

IxOS-API /opt/ixia/ixos/version/

TCL

/opt/ixia/TCL/version/

Python /opt/ixia/Python/version

Perl

/opt/ixia/Perl/version

For the PIT installer, an equivalent dependencies bundle is available.

There are a number of IxLoad Tcl .bin installers available for Unix/Linux; use the version appropriate for your distribution:

IxLoad Tcl Client Installation File Description

IxLoadTclAPI<version>linux.bin

Fedora Core 14, RedHat Enterprise 5.0

IxLoadTclAPI<version>linux_x64.bin 64-bit version of supported Linux distributions

IxLoadTclAPI<version>FreeBSD.bin

FreeBSD 6.3

22

IxLoad Tcl API Programming Guide

Quick Start
Unix/Linux:
See the Installing IxLoad Tcl
Windows PC:
Install IxLoad on the Windows PC and select the optional Tcl components during installation. Install IxOS with the Client and Tcl Server options.
Ixia chassis:
Install the IxLoad IxOS chassis components as for normal IxLoad installation.
Installing IxLoad Tcl
This section describes how to install the Unix/Linux version of IxLoad Tcl. In addition to installing IxLoad on Unix/Linux using the Java-based installer, you can also install it using tarballs. See Installing IxLoad Tcl with Tarballs.
You must login as root when you install IxLoad Tcl. Also, ensure that you reboot the system after installation so that the new environment variables take effect. To install Unix/Linux IxLoad Tcl: 1. Copy the IxLoadTclAPI<version>Linux.bin file to the Linux system. 2. Change the attribute to make it executable. Example: chmod +x IxLoadTclAPI<version>Linux.bin 3. Execute the installer file. If your Linux version supports a Graphical User Interface (GUI), use the -gui option . Otherwise, the installer will run in console mode. Example (console mode): ./IxLoadTclAPI<version>Linux.bin Example (GUI mode): ./IxLoadTclAPI<version>Linux.bin -gui 4. Follow the prompts to complete the installation. The default installation path is /opt/ixia/ixload/IxLoadVersion/. 5. Reboot the system so that the environment variables added by the installer can take effect.
Installing IxLoad Tcl with Tarballs
As an alternative to the Java-based Unix/Linux installer, Ixia also provides the IxLoad Unix/Linux Tcl files as tarballs. The tarball installer provides a more flexible solution to installing and running IxLoad Tcl scripts.

IxLoad Tcl API Programming Guide

23

Quick Start
The tarball installer requires the comm v4.x third-party library to be installed before you install IxLoad Tcl.
You must login as root when you install IxLoad Tcl. Also, ensure that you reboot the system after installation so that the new environment variables take effect.
If you intend to write Python scripts, you should: 1. Install your own Python2x version along with the tkinter library. 2. After installing Python, change the PYTHONBinPath environment variable so that it points to the Python2x version that you installed (by default it points to ixpython).
To install Unix/Linux IxLoad Tcl Using Tarballs: 1. Unpack IxLoadTclApi_<version>.tar file. 2. Set the environment variable IXLOAD_IXLOADFULLVERSION_INSTALLDIR to the path to where the stackManagerStaticClasses.tcl file is located. l stackManagerStaticClasses.tcl is located in the same folder as the IxLoad.tcl file (<INSTALL_DIRECTORY>/lib/IxLoad/). l IXLOADFULLVERSION is the complete IxLoad version number, with the major, minor, branch, and build numbers separated by underscores (_). For example, a sample environment variable might be: IXLOAD_5_10_151_20_INSTALLDIRR=/home/ixload5.10.ea/lib/ixload/ You can lookup the the exact name of the environment variable by searching the IxLoad.tcl file for the string IXLOAD_X_Y_, where X and Y are the major and minor version numbers. For example, IXLOAD_5_10_ 3. Reboot the system so that the environment variables added by the installer can take effect.
Editing the setup_simple.tcl script
You must edit the setup_simple.Tcl script to include the correct addresses in use on your network.
l On Windows, the file is located at : ..\IxLoad\<version>\TclScripts\Samples l On Unix/Linux, the file is located at: ../opt/ixia/ixload/IxLoadVersion/Samples/
To edit the setup_simple.tcl script: 1. In an editor, open the setup_simple.tcl script. 2. Set the Tcl server address:
variable ::IxLoadPrivate::SimpleSettings::remoteServer n.n.n.n
Tcl server must run on a Windows host, not on the chassis. When running a script from Unix, change this value to the IP address of the IxLoad client that the script will run on. When running a script from Windows, this variable must still be set, but its value is not used.
3. Set chassisName to the hostname or IP address of the chassis you will use: variable ::IxLoadPrivate::SimpleSettings::chassisName n.n.n.n

24

IxLoad Tcl API Programming Guide

Quick Start

4. CARD_ID and PORT_ID are local variables used between the setup_simple.tcl script and all Ixiaprovided sample Tcl scripts. Set CARD_ID and CARD_PORT (in the serverPort and clientPort array) to the card and port you will use:

array set ::IxLoadPrivate::SimpleSettings::clientPort { CARD_ID"4"

PORT_ID"5" } array set ::IxLoadPrivate::SimpleSettings::serverPort {CARD_ID "2" }
5. Save and close the file.

"3"PORT_ID

Running the sample scripts
Once the setup_simple.tcl script is configured, use the following procedure to launch the Tcl shell and run a sample script.
To run a sample script:
1. Change to the bin directory where IxOS Tcl is installed. 2. Copy /bin/ixwish to bin/ixTclsh. 3. Start the Tcl shell:
./bin/ixTclsh
4. Scripts are stored in directories under /etc/ixosTcl8.4/IxLoadTclAPI<version>/Samples. l Samples/Application Features contains scripts that demonstrate various IxLoad features l Samples/Network contains scripts that create various network configurations l Samples/Protocols contains scripts that generate different types of protocol traffic l Samples/Stats contains scripts that demonstrate how to retrieve statistics
Change your path to the directory that contains the script that you want to run.
For example, to change to the Protocols directory, type: cd /etc/ixosTcl8.4/IxLoadTclAPI<version>/Samples/Protocols 5. Source the sample script that you want to run. For example, to run the HTTP.tcl script, type:
source HTTP.tcl

Monitoring Status and Retrieving Results
While a test is running, status messages display in the Linux shell. The log files are stored on the Windows host. The log file name is determined by the set LogName command in the script.

IxLoad Tcl API Programming Guide

25

Quick Start
l If you specify no path or a partial path, the log file is stored relative to the \remoteScriptingService directory on the IxLoad installation path.
l If you specify an absolute path, the log file is stored in that location. The log file will be prefixed with the specified name, followed by "-x-00" where x is a session ID from 1 through 4. The sample scripts all set the log name to be the same as the script name. For example: C:\Program Files\Ixia\IxLoad\<version>\TclScripts\remoteScriptingService\RESULTS\<scriptname>

26

IxLoad Tcl API Programming Guide

API Overview
An IxLoad test consists of one or more Client Communities sending traffic through the DUT (Device Under Test) to Server Communities. The structure of both a client and server community is the same: Traffic sent over a network. Traffic is generated or handled by one or more agents.
The conceptual view of an IxLoad test is shown in the figure below.

Tcl API Structure
The Tcl API's main components are shown in the figure below.

IxLoad Tcl API Programming Guide

27

API Overview

The table below describes the components of the API shown in the figure.

Component

Description

ixTestController

testController controls the running of a test. No test can run successfully without this object. It has no relationship with any other object.
To run the test, you pass run <test variable name> to the test controller command.

ixTest

The top level object which co-ordinates the client and server communities. It holds separate lists of each type of communities.

ixScenario

This object represents the traffic flow (as shown in the GUI). There can be multiple traffic flows. The traffic flows are referenced through the scenarioList sub-object of an ixTest object.

ixTrafficColumn This is a container of ixNetTraffic, ixSubscriber, and ixDut objects. This is accessed through the columnList element of an ixScenario object.

ixNetTraffic

This object joins a network configuration to a traffic configuration. This object is accessed through an index into the columnList of an ixScenario object.

ixNetworkGroup This object describes a network configuration that is unique within the test. This object is accessed through the network element of an ixNetTraffic object.

28

IxLoad Tcl API Programming Guide

API Overview

ixActivity

This object configures the high-level properties that are common to all agents, such as the timeline, and the test objective type and value.
Activities are accessed through an index into the activityList of an ixNetTraffic or ixSubscriber object.

ixAgent

The ixAgent elements generate and handle protocol specific traffic. Some client agents use Protocol Actions to describe their operation.
Agent configuration can be accessed through the ActivityList of the ixNetTraffic and ixScenario objects

Network Stack plugins

Protocol and associated extensions that provide the network that the traffic protocols run over.

Protocol Actions Some of the Protocol Agents describe their operation in terms of specific actions. These protocol dependent objects detail those operations.

ixChassisChain This independent object describes the list of chassis that will be used in a test.

ixDut

This object holds the type and type-specific information about a DUT.

ixTimeline

This object configures the time in the test when the activities in the NetTraffics come online, and how long they stay up for. It is also used to configure the test's objectives.

ixSubscriber

The ixSubscriberNetTraffic object is a special type of NetTraffic that simulates the traffic patterns created by residential customers that receive voice, video, and data service (Triple-play) over a single physical connection (usually a cable or DSL connection).

ixImpairment

The ixImpairment object impairs one or more types of traffic from a client and server network.

activityList

Generates traffic for one side of a particular protocol.

Mandatory Objects to Complete a Script
The following mandatory objects are required to complete a script:
l an ixTestController l an ixRepository or an ixChassisChain (ixRepository includes a chassis chain) l ixViewOptions l ixTest

IxLoad Tcl API Programming Guide

29

API Overview
l ixTrafficFlow l ixTrafficColumn l ixNetTraffic l ixTimeline l activityList
Multi Version Support
You can install and use multiple versions of IxLoad on the client PC and on the chassis. Installing multiple versions allows you to try out the new features in a new release of IxLoad without having to overwrite your existing copy of IxLoad. Refer to API Quick Start and Running an IxLoad Tcl Program for more information.
General API Conventions
IxLoad's Tcl API is somewhat different from other Ixia Tcl APIs that you might have used. Rather than a single set of global commands that are associated with an Ixia port, IxLoad uses the concept of instances of commands--called objects. This guide uses the words command and object to refer to the same thing.
Objects
This section describes how to work with objects in the IxLoad Tcl API. IxLoad represents every object with a Tcl command. When you create an object, you receive a command that must then be used with subcommands to modify the object. Similarly, when you retrieve a property of an object that is itself an object, you can use subcommands to manipulate that sub-object. Generally, it is better to save the sub-objects in a Tcl variable instead of retrieving them repeatedly. This is because every time you retrieve it, you receive a different command (though they reference the same underlying object). Every object command should also be deleted as described in the next section.
Object Creation and Desctruction
The general paradigm for the creation of IxLoad objects is to make a `new' copy of a command, saving the result in a Tcl variable: set my_network [::IxLoad new ixClientNetwork $chain\ -name "my_client_network4" ]

30

IxLoad Tcl API Programming Guide

API Overview

The variable my_network is an instance of the ixClientNetwork object. Each instance occupies its own area of memory. Multiple objects of the same type can be created and added to lists of items.
The ::IxLoad reference is to a utility routine that allows new objects of any type to be created. The "::" means in the global context and is a safe means of referring to ixLoad from any program location.
The ixLoad command provides a convenient means of creating an object and set its options at the same time. One need only append option names and values to the end of the command. See the following example:
set my_network [::IxLoad new ixClientNetwork \ -name "my_client_network4"
This is the standard means by which IxLoad objects are created.
When an object is no longer needed, its command should be destroyed as shown in the following example: ::IxLoad delete $my_network
After a command is destroyed, it can no longer be used. If it is a sub-object, then the object can be accessed again by fetching a new command from the original object.

Subcommands
Synopsis
$anyIxLoadObject subcommand options...

Each option is a name/value pair, with the name preceded by a hyphen (-).

The return value is of a type appropriate for the option. If the option is a sub-object, the return value will be a command representing that object. Otherwise, it will be a simple string value (though the string may represent a built-in value, such as an INT).
Common subcommands
In addition to command/object-specific subcommands, each IxLoad command/object supports a set of subcommands described in the following table.

Subcommand Usage

config

Allow any option of the command to be set.

cget

Read the value of any command option.

getOptions Get the names of all of a command's options.

IxLoad Tcl API Programming Guide

31

API Overview
cget option
This subcommand is used to obtain the current value of any option. The option must begin with a hyphen (-). The return value is of a type appropriate for the option.
config option value option value...
The config subcommand may be used to set the value of one or more options in a command. The option must begin with a hyphen (-). The value must be of a type appropriate for the option.
getOptions
This subcommand returns a Tcl list with all of the options available for a command/object including an initial hyphen for each option.
EXAMPLE
$object cget -name$object config -name "media" -value "mp3"set optionList [$object getOptions]
Subobjects
Some IxLoad objects can contain other objects, making them subobjects. The type of the sub-object will be described under the documentation for the sub-object. For example, the following code fetches a sub-object into a command, and then invokes a subcommand on the resulting sub-object: set $my_network [$my_nettraffic cget -network]$my_network config -name network1 If you only need to access a single property of a sub-object, you can avoid storing the command for the sub-object in a separate variable by using the 'dot' (.) notation. For example, for the name option in ixClientNetwork, you can reference the subobject's option as follows: $my_nettraffic network.config -name 1k_hosts In this case, network.config causes the config subcommand of the network sub-object to be called with the desired options. The sub-command can be preceded by more than one sub-object, much like a directories can be nested to create a path of sub-directories.

32

IxLoad Tcl API Programming Guide

API Overview

Lists of Objects
Synopsis
If you know the index of an item in a list, it may be directly manipulated by the common configuration commands listed in the table under Object Creation (see "Object Creation and Desctruction"). For example, to configure the first item in a list:
$my_netTraffic traffic.agentList(0).config -name httpAgent

Note that the preceding example also shows that an element of a list can be a sub-object in a path leading to a subcommand.
Most IxLoad commands contain one or more options that are lists of other objects. For example, networkRangeList in ixClientNetwork is a list of items of type ixNetworkRange. Such lists are commonly built up using the appendItem subcommand. For example:
$my_network portList.appendItem \ -chassisId 1 \ -cardId 2 \ -port 3
As in the ::IxLoad new command, you can set the values of a list member's options while creating the item. All such lists have a number of associated sub-commands, described in the following table.

Subcommand Usage

clear

Remove all elements from the list.

appendItem Add an item to the end of the list.

configItem

Configure the options of one item of the list.

deleteItem Delete an item from the list.

getItem

Return an instance reference to an element of a list. This can be used to directly manipulate that list member.

insertItem

Add an item into the middle of the list.

find

Search for an item in a list. The indexes of all matching list members is returned.

indexCount Returns a count of the number of items in a list.

IxLoad Tcl API Programming Guide

33

API Overview

SUBCOMMANDS
The following subcommands are available to handle options. Except where noted, no value is returned; an exception is raised in the case of an error. In all cases where they are used the option must begin with a hyphen (-). The value must be of a type appropriate for the option.
appendItem option value option value...
The appendItem subcommand may be used to add an item to a list. Any number of options in the listed item may be set as part of the append.
configItem index option value option value...
The configItem subcommand may be used to configure a particular item in a list. Any number of options in the list item may be set. The index argument is used to indicate which item in the list is to be configured.
clear
The clear subcommand may be used to delete all listed items from a list.
deleteItem index
The deleteItem subcommand may be used to delete a listed item from a list. The index argument is used to indicate which item in the list is to be configured.
find mode option value option value...
The find subcommand may be used to search a list for matching criterion. The mode argument may be one of:

Option

Usage

exact

Match the value fields exactly.

regexp

Use regular expressions in the matching.

uppercase Perform a caseless match.

Any number of options may be used in the match. The find subcommand searches for all items in the list, whose keyworded options match the values indiA list of indexes of matching items is returned.
getItem index
Unsorted lists: The getItem subcommand may be used to retrieve an item from a list. The index argument is used to indicate which item in the list is to be retrieved. This subcommand returns the object from the list.

34

IxLoad Tcl API Programming Guide

API Overview
Sorted lists: The getItem subcommand may be used to retrieve an item from a list. The name argument is used to indicate which item in the list is to be retrieved. This subcommand returns the object from the list.
indexCount
The indexCount subcommand returns the number of objects in the list.
insertItem index option value option value...
The insertItem subcommand may be used to insert an item in a list. Any number of options in the list item may be set. The index argument is used to indicate the insertion point in the list.The new item will be inserted before the index'th item in the list.
Constants
Predefined constants within the IxLoad Tcl API are associated with particular commands and placed in an array corresponding to a command. For example, the ixCard object holds a definition for different Ixia card types, one of which is kCard1000Txs4. The proper means of referencing this constant is: $::ixCard(kCard1000Txs4) Text strings may frequently be set using provided strings. Refer to the various reference pages to determine availability.
Strings and Numbers
Tcl variables are considered type-less. That is, no special distinction is made between the string of characters "1.0" and the numeric value 1.0. Within the IxLoad Tcl API, however, items that look like numbers (for example, 111) are converted to numbers. In the specification of arguments and values to the IxLoad Tcl APIs, it is best to enclose these items in quotes if they are not to be interpreted as numbered values. For example, if you want to name an IxLoad element 123, you should enclosed the name in quotes: "123".
TCL API Internal Overview
The following sections provide an overview of how the Tcl API functions or Windows or Unix/Linux platforms.

IxLoad Tcl API Programming Guide

35

API Overview
Windows Overview
When running scripts on Windows: l For IxLoad Unit Limit: l User Interface counts as two l Scripts count as one l TCL Server is not required l The :IxLoad connect/disconnect command is ignored l Log files are stored in the same directory as the script l Relative files depend on the Client directory path

Unix Overview
When running scripts on Unix:
l Unix script counts the same as a Windows script l TCL Server is required on Client PC l ::IxLoad connect/disconnect command is required

36

IxLoad Tcl API Programming Guide

API Overview
l Log files go to PC l C:\Program Files\Ixia\IxLoad\Client\tclext\remoteScriptingService directory l Or, internal debug file c:rssN.log (N is session # (0-4)) l Result files go to PC l Path is on Windows system. l If path is relative, then path is relative to the remoteScriptingService directory

Object Structure
The figure below shows the current TCL object structure.

IxLoad Tcl API Programming Guide

37

API Overview

Building an IxLoad Test
The following set of steps is a suggestion for the manner in which the Tcl API may be used to create a complete test. These steps mirror our suggested use of the IxLoad GUI. This is by no means the only manner in which a test may be developed. The code fragments used in this discussion are from a complete example, included at the end of this chapter.
Step 1: Initial Overhead
This section performs the necessary overhead steps to get a test started. This includes:
l Add the IxWish or tclsh installer location. This script, when sourced, sets the auto_path so that package req IxLoad loads the version from which IxiaW was sourced. The IxiaWish.tcl is sourced from different path depending on a multiversion or non-multiversion release.
l Connect to the remote server. When running an IxLoad Tcl program on a non-Windows client it is necessary to use a Windows machine as a remote server. This may either be the Ixia chassis or some other Windows client. When run on a Windows machine, the localhost specification

38

IxLoad Tcl API Programming Guide

API Overview

should be used. A catch { ... } construct is used to ensure that a matching disconnect operation is invoked at the end of the script. l A package require for the statistics utilities: l to retrieve only the application protocol statistics, use the standard IxLoad package: package require ixload
l to retrieve additional statistics such as network stack statistics and port CPU statistics, use the ixloadcsv package:
package require ixloadcsv
When the script runs, the ixloadcsv package will run the IxLoad GUI in a hidden mode in the background.
l Load the protocols needed for the test. A separate call to $ixAppload should be performed for each protocol required. See the table below for the protocols and corresponding string to be passed.
l Creation of a chassis chain to include a list of test related chassis. l Creation of the top level ixTest object.

Protocol HTTP FTP POP3 RTSP IMAP LDAP MGCP QuickHTTP QuickTCP SIP Telnet Video DDOS DHCP

String to Pass HTTP FTP POP3 RTSP IMAP ldap MGCP QuickHTTP QuickTCP SIP Telnet Video DDoS dhcp

IxLoad Tcl API Programming Guide

39

API Overview

RADIUS

radius

SSH

ssh

Capture Replay

capturereplay

Application Test

verify

Vulnerability Attacks nessus

TFTP

TFTP

l Creation of a chassis chain to include a list of test related chassis. l Creation of the top level ixTest object. #-----------------------------------------------------------------------# Set path to find Tcl API#----------------------------------------------------------------------set MY_IXLOAD_INSTALL "C:\\Program Files\\Ixia\\IxLoad"lappend ::auto_path [file join $MY_IXLOAD_INSTALL "client" "tclext" "teepee" "stage"]

#-----------------------------------------------------------------------# Uncomment the following if you'll be using the Ixia Standard Tcl API#----------------------------------------------------------------------#set MY_IXTCLHAL_INSTALL "C:\\Program Files\\Ixia\\TclScripts"#lappend ::auto_path [file join $MY_IXTCLHAL_INSTALL "lib" "ixTcl1.0"]

#----------------------------------------------------------------------# When running on Unix clients, it's necessary to connect to a remote# server. For Windows clients, this is unnecessary. In the line below,# change localhost to the IP address of your remote server#---------------------------------------------------------------------::IxLoad connect localhost

# This catch is used to ensure that we disconnect from the remote# server regardless of how we exitcatch {

#----------------------------------------------------------------------- # package require the stat collection utilities #---------------------------------------------------------------------- package require statCollectorUtils global ixAppPluginManager $ixAppPluginManager load "HTTP"

#----------------------------------------------------------------------- # Build Chassis Chain #---------------------------------------------------------------------- set chassisName birdie set chassisChain [::IxLoad new ixChassisChain] $chassisChain addChassis $chassisName

#----------------------------------------------------------------------- #

40

IxLoad Tcl API Programming Guide

API Overview

Create the test #----------------------------------------------------------------

------- set test [::IxLoad new ixTest \

-name

"my_test" \

-statsRequired

0\

-enableResetPorts 0 ]

Step 2: Define the TrafficFlow
In this step, we create the TrafficFlow that will list the test scenario. This involves:
l Creation of an ixTrafficFlow instance. l Appending the client, server and DUT object of ixTrafficColumn.

#-----------------------------------------------------------------------

# Create TrafficFlow

#-----------------------------------------------------------------------

set TrafficFlow1 [::IxLoad new ixTrafficFlow]

$TrafficFlow1 config \

-name

"TrafficFlow1"

#-----------------------------------------------------------------------

# Append client object

#-----------------------------------------------------------------------

$TrafficFlow1 columnList.appendItem -object $Client

set Client [::IxLoad new ixTrafficColumn]

$Client config \

-name

"Client"

Step 3: Define the TrafficColumn
This is a container of ixNetTraffic and ixDut objects. This involves:
l Creation of an ixTrafficColumn instance l Defining and configuring client, server and DUT.

IxLoad Tcl API Programming Guide

41

API Overview
#-----------------------------------------------------------------------# Create the client instance of ixTrafficColumn#----------------------------------------------------------------------
set DUT [::IxLoad new ixTrafficColumn]$DUT config \-name "DUT"

Step 4: Define the NetTraffic
This step involves the configuration of client and server activities, configuring traffic, mapping traffic to network.
This involves:
l Creation of an ixNetTraffic instance l Configuring traffic l Configuring the client or server network l Appending activityagent l Defining and configuring the activity. For each protocol: l Define and append an agent to its agentList. l Perform protocol dependent settings; for example, add actions to the agent's operation by cre-
ating an instance of ixHttpAction and defining the options. l Declare a timeline for each activity.

set HTTP_client_client_network [::IxLoad new ixNetTraffic]

#-----------------------------------------------------------------------# Activity

newAgent1 of NetTraffic HTTP client@client network#---------------------------------

--------------------------------------set Activity_newAgent1 [$HTTP_client_client_

network activityList.appendItem \-protocolAndType

"HTTP Cli-

ent" ]

#-----------------------------------------------------------------------# Defining

Activity newAgent1#-----------------------------------------------------------------

------$Activity_newAgent1 config \-enable

1 \-name

"newClientActivity1" \-enableConstraint

false \-

userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1

42

IxLoad Tcl API Programming Guide

API Overview

#-----------------------------------------------------------------------# Configuring Activity newAgent1#----------------------------------------------------------------------

$Activity_newAgent1 agent.config \-vlanPriority

0 \-

enableHttpsProxy

0 \-enableSsl

0 \-cookieRejectProbability

0.0 \-enableUnidirectionalClose

false \-ipPreference

2 \-loopValue

true \-maxPersistentRequests

1 \-enableEsm

0 \-certificate

"" \-sequentialSessionReuse

0 \-tos

0 \-maxPipeline

1 \-maxHeaderLen

1024 \-maxSessions

3 \-enableHttpProxy

0 \-enableTos

false \-enable

1 \-browserEmulation

1 \-cookieJarSize

10 \-privateKey

"" \-privateKeyPassword

"" \-urlStatsCount

10 \-followHttpRedirects

0 \-tcpCloseOption

0 \-enableVlanPriority

false \-esm

1460 \-httpVersion

0 \-sslVersion

3 \-name

"newClientActivity1" \-

enableCookieSupport

0 \-enableLargeHeader

false \-clientCiphers

"DEFAULT" \-httpProxy

":80" \-keepAlive

0 \-httpsProxy

":443"

$Activity_newAgent1 agent.actionList.clear

#-----------------------------------------------------------------------

# Add actions to this client agent #-----------------------------------------------------------------------set my_ ixHttpAction [::IxLoad new ixHttpAction]$my_ixHttpAction config \

-profile -1 \

-namevalueargs "" \

-destination "HTTP server_newServerActivity1:80" \

-abort "None" \ -command

"GET" \

-arguments "" \

-pageObject "/4k.html"

IxLoad Tcl API Programming Guide

43

API Overview $Activity_newAgent1 agent.actionList.appendItem -object $my_ixHttpAction

Step 5: Define ixSubscriberNetTraffic
The ixSubscriberNetTraffic is a special type of NetTraffic that simulates the traffic patterns created by residential customers that receive voice, video, and data service (Triple-play) over a single physical connection (usually a cable or DSL connection).
A Subscriber NetTraffic allows you to control the interactions between protocols for each user. This produces a traffic pattern that more accurately reproduces the pattern created by actual triple-play customers.
This involves:
l Creation of an ixSubscriber NetTraffic instance l Configuring an ixBandwidthLimit object l The rest is similar to ixNetTraffic described in Step 4: Define the NetTraffic (see "Step 4:
Define the NetTraffic").

Step 6: Define the NetworkGroup
This step involves the global network configuration. This involves:
l Creation of an ixNetworkGroup client and server network instance l Clearing the global plugins list

set Network1 [::IxLoad new ixNetworkGroup $chassisChain]

$Network1 config \

-comment

"" \

-name

"Network1" \

-macMappingMode

1\

-linkLayerOptions 0

$Network1 globalPlugins.clear

44

IxLoad Tcl API Programming Guide

API Overview

Step 7: Define the NetworkGroup
This step involves the network stack configuration.
This involves:
l Creating the network stack, including any extension protocols, appending the network stack plugins to the global plugin list, and then configuring them.
l Configuring the global settings (Dynamic Control plane)

set Filter [::IxLoad new ixNetFilterPlugin] # ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $Filter

$Filter config \ -all -pppoecontrol -isis -name -auto -udp -tcp -mac -pppoenetwork -ip -icmp

false \ false \
false \ "Filter" \
true \ "" \ "" \ "" \
false \ "" \
""

set GratARP [::IxLoad new ixNetGratArpPlugin] # ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $GratARP

$GratARP config \ -enabled

true \

IxLoad Tcl API Programming Guide

45

API Overview

-name

"GratARP"

set TCP [::IxLoad new ixNetTCPPlugin] # ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $TCP

$TCP config \

-name

"TCP" \

-tcp_orphan_retries

0\

-tcp_max_tw_buckets

180000 \

-tcp_wmem_default

4096 \

-tcp_low_latency

0\

-tcp_rmem_min

4096 \

-tcp_adv_win_scale

2\

-tcp_wmem_min

4096 \

-tcp_port_min

1024 \

-tcp_stdurg

false \

-tcp_port_max

65535 \

-tcp_fin_timeout

60 \

-tcp_no_metrics_save

false \

-tcp_dsack

true \

-tcp_mem_high

49152 \

-tcp_frto

0\

-tcp_app_win

31 \

-ip_no_pmtu_disc

false \

-tcp_window_scaling

false \

-tcp_max_orphans

8192 \

-tcp_mem_pressure

32768 \

-tcp_syn_retries

5

set DNS [::IxLoad new ixNetDnsPlugin]

46

IxLoad Tcl API Programming Guide

# ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $DNS

$DNS config \ -domain -name -timeout

"" \ "DNS" \ 5

$DNS hostList.clear

$DNS searchList.clear

$DNS nameServerList.clear

set Settings [::IxLoad new ixNetIxLoadSettingsPlugin] # ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $Settings

$Settings config \

-teardownInterfaceWithUser

false \

-name

"Settings" \

-interfaceBehavior

0

set Ethernet_1 [$Network1 getL1Plugin]

set my_ixNetEthernetELMPlugin [::IxLoad new ixNetEthernetELMPlugin]

$my_ixNetEthernetELMPlugin config \

-negotiationType

"master" \

-negotiateMasterSlave

true

API Overview

IxLoad Tcl API Programming Guide

47

API Overview

$Ethernet_1 config \ -advertise10Full -name -autoNegotiate -advertise100Half -advertise10Half -speed -advertise1000Full -advertise100Full -cardElm

true \ "Ethernet-1" \
true \ true \ true \ "k100FD" \ true \ true \ $my_ixNetEthernetELMPlugin

$Ethernet_1 childrenList.clear

set MAC_VLAN_2 [::IxLoad new ixNetL2EthernetPlugin] # ixNet objects needs to be added in the list before they are configured! $Ethernet_1 childrenList.appendItem -object $MAC_VLAN_2

$MAC_VLAN_2 config \ -name

"MAC/VLAN-2"

$MAC_VLAN_2 childrenList.clear

set IP_3 [::IxLoad new ixNetIpV4V6Plugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_2 childrenList.appendItem -object $IP_3

$IP_3 config \ -name

"IP-3"

$IP_3 childrenList.clear

48

IxLoad Tcl API Programming Guide

$IP_3 extensionList.clear

$MAC_VLAN_2 extensionList.clear

$Ethernet_1 extensionList.clear

################################################# # Setting the ranges starting with the plugin on top of the stack ################################################# $IP_3 rangeList.clear

set IP_R3 [::IxLoad new ixNetIpV4V6Range] # ixNet objects needs to be added in the list before they are configured! $IP_3 rangeList.appendItem -object $IP_R3

$IP_R3 config \

-count

1\

-name

"IP-R3" \

-gatewayAddress

"0.0.0.0" \

-enabled

true \

-autoMacGeneration

true \

-mss

1460 \

-incrementBy

"0.0.0.1" \

-prefix

16 \

-gatewayIncrement

"0.0.0.0" \

-gatewayIncrementMode

"perSubnet" \

-generateStatistics

false \

-ipAddress

"10.10.0.4" \

-ipType

"IPv4"

IxLoad Tcl API Programming Guide

API Overview 49

API Overview

set MAC_R2 [$IP_R3 getLowerRelatedRange "MacRange"]

$MAC_R2 config \ -count -name -enabled -mtu -mac -incrementBy

1\ "MAC-R2" \ true \ 1500 \ "00:0A:0A:00:04:00" \
"00:00:00:00:00:01"

set VLAN_R1 [$IP_R3 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \ -incrementStep -uniqueCount -name -innerIncrement -innerUniqueCount -enabled -innerFirstId -increment -priority -firstId -innerIncrementStep -idIncrMode -innerEnable -innerPriority

1\ 4094 \ "VLAN-R1" \ 1\
4094 \ true \ 1\ 1\ 1\ 1\
1\ 2\ false \ 1

50

IxLoad Tcl API Programming Guide

API Overview

Step 8: Define the NetworkRange

This step involves the creation of IP and MAC addresses.

This involves:

l Creation of an ixNetworkRange instance

l Configuring the network range used in a network set Network_Range_1_in_client_network__198_18_0_1_100_ [::IxLoad new

ixNetworkRange]$Network_Range_1_in_client_network__198_18_0_1_100_ config \-

rangeType

"Ethernet" \-vlanPriority

0 \-vlanEnable

0 \-innerVlanPriority

0 \-innerVlanUniqueCount

4094 \-innerVlanIncrStep

1 \-networkMask

"255.255.0.0" \-vlanIncrStep

1 \-gateway

"0.0.0.0" \-vlanIncrementMode

"inner-first" \-gatewayIncrStep

"None" \-mssEnable

0 \-mss

1460 \-enableStats

false \-firstMac

"00:C6:12:00:01:00" \-ipType

1 \-type

0 \-firstIp

"198.18.0.1" \-enable

1 \-vlanId

1 \-vlanCount

1 \-ipCount

100 \-vlanUniqueCount

4094 \-macIncrStep

"00:00:00:00:01:00" \-name

"Network Range 1 in

client network (198.18.0.1+100)" \-innerVlanCount

1 \-

ipIncrStep

"0.0.0.1" \-innerVlanId

1 \-innerVlanEnable

false \-rxBandwidthLimit

$my_ixBandwidthLimit \-txBandwidthLimit

$my_ixBandwidthLimit1

Step 9: Define the ixTimeline

This object configures the time in the test when the activities in the NetTraffics come online, and how long they stay up for. It is also used to configure the test's objectives. This involves:

l Creating an instance of ixTimeline object l Configuring the timeline and objectives

#################################################

# Timeline1 for activities HTTPClient1

#################################################

set Timeline1 [::IxLoad new ixTimeline]

$Timeline1 config \

-rampUpValue

10 \

IxLoad Tcl API Programming Guide

51

API Overview

-rampUpType -offlineTime -rampDownTime -standbyTime -iterations -rampUpInterval -sustainTime -timelineType -name

0\ 0\
20 \ 0\ 1\ 1\ 20 \ 0\ "Timeline1"

Step 10: Prepare to Run the Test
In this step, we will perform all operations necessary before starting the actual test. This involves: l Creating an instance of the ixTestController, defining where the results should be placed. l Initializing the statCollectorUtils, by using its Initialize command. l Clear all statistics with ClearStats. l Add statistics that we are interested in via the AddStat command. l Define a callback command to receive statistics update. A trivial routine is included in this example.
#----------------------------------------------------------------------# Create a test controller bound to the previously allocated # chassis chain. This will eventually run the test # we created earlier. #----------------------------------------------------------------------set testController [::IxLoad new ixTestController -outputDir 1] $testController setResultDir "[pwd]/RESULTS/simplehttpclientandserver"
################################################# # Create the test controller to run the test ################################################# set testController [::IxLoad new ixTestController -outputDir True]

52

IxLoad Tcl API Programming Guide

$testController setResultDir "[pwd]/RESULTS/simpleHTTP_3"
set NS statCollectorUtils
set test_server_handle [$testController getTestServerHandle] ${NS}::Initialize -testServerHandle $test_server_handle
${NS}::ClearStats $Test1 clearGridStats
set HTTP_Client_Per_URL_StatList { \ {"HTTP Client Per URL" "HTTP Aborted After Request" "kMax"} \ {"HTTP Client Per URL" "HTTP Aborted Before Request" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (400)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (401)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (403)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (407)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (408)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (4xx other)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (4xx)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (505)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (5xx other)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (5xx)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Aborted)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Bad Header)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Read)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Timeout)" "kMax"} \
IxLoad Tcl API Programming Guide

API Overview 53

API Overview
{"HTTP Client Per URL" "HTTP Requests Failed (Write)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Sent" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Successful" "kMax"} \ {"HTTP Client Per URL" "HTTP Responses Received With Match" "kMax"} \ {"HTTP Client Per URL" "HTTP Responses Received Without Match" "kMax"} \ } set HTTP_Client_StatList { \ {"HTTP Client" "Client Hello Sent" "kMax"} \ {"HTTP Client" "HTTP Aborted After Request" "kMax"} \ {"HTTP Client" "HTTP Aborted Before Request" "kMax"} \ {"HTTP Client" "HTTP Bytes" "kMax"} \ {"HTTP Client" "HTTP Bytes Received" "kMax"} \ {"HTTP Client" "HTTP Bytes Sent" "kMax"} \ {"HTTP Client" "HTTP Concurrent Connections" "kMax"} \ {"HTTP Client" "HTTP Connect Time (us)" "kAverageRate"} \ {"HTTP Client" "HTTP Connection Attempts" "kMax"} \ {"HTTP Client" "HTTP Connections" "kMax"} \ {"HTTP Client" "HTTP Content Bytes Received" "kMax"} \ {"HTTP Client" "HTTP Content Bytes Sent" "kMax"} \ {"HTTP Client" "HTTP Cookie headers Rejected - (Memory Overflow)" "kMax"} \ {"HTTP Client" "HTTP Cookies Received" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Cookiejar Overflow)" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Domain Match Failed)" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Path Match Failed)" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Probabilistic Reject)" "kMax"} \ {"HTTP Client" "HTTP Cookies Sent" "kMax"} \ {"HTTP Client" "HTTP Requests Failed" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (400)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (401)" "kMax"} \

54

IxLoad Tcl API Programming Guide

{"HTTP Client" "HTTP Requests Failed (403)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (407)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (408)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (4xx other)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (4xx)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (505)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (5xx other)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (5xx)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Aborted)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Bad Header)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Read)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Timeout)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Write)" "kMax"} \ {"HTTP Client" "HTTP Requests Sent" "kMax"} \ {"HTTP Client" "HTTP Requests Successful" "kMax"} \ {"HTTP Client" "HTTP Session Timeouts (408)" "kMax"} \ {"HTTP Client" "HTTP Sessions Rejected (503)" "kMax"} \ {"HTTP Client" "HTTP Simulated Users" "kSum"} \ {"HTTP Client" "HTTP Time To First Byte (us)" "kAverageRate"} \ {"HTTP Client" "HTTP Time To Last Byte (us)" "kAverageRate"} \ {"HTTP Client" "HTTP Transactions" "kMax"} \ {"HTTP Client" "HTTP Transactions Active" "kMax"} \ {"HTTP Client" "HTTP Users Active" "kMax"} \ {"HTTP Client" "SSL Alerts Received" "kMax"} \ {"HTTP Client" "SSL Alerts Received (access_denied)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (bad_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (bad_record_mac)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (certificate_expired)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (certificate_revoked)" "kMax"} \
IxLoad Tcl API Programming Guide

API Overview 55

API Overview
{"HTTP Client" "SSL Alerts Received (certificate_unknown)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (close_notify)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decode_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decompression_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decrypt_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decryption_failed)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (export_restriction)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (handshake_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (illegal_parameter)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (insufficient_security)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (internal_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (no_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (no_renegotiation)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (protocol_version)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (record_overflow)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (unexpected_message)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (unknown_ca)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (unsupported_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (user_canceled)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (access_denied)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (bad_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (bad_record_mac)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (certificate_expired)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (certificate_revoked)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (certificate_unknown)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (close_notify)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decode_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decompression_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decrypt_error)" "kMax"} \

56

IxLoad Tcl API Programming Guide

{"HTTP Client" "SSL Alerts Sent (decryption_failed)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (export_restriction)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (handshake_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (illegal_parameter)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (insufficient_security)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (internal_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (no_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (no_renegotiation)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (protocol_version)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (record_overflow)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (unexpected_message)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (unknown_ca)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (unsupported_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (user_canceled)" "kMax"} \ {"HTTP Client" "SSL Bytes Received" "kMax"} \ {"HTTP Client" "SSL Bytes Sent" "kMax"} \ {"HTTP Client" "SSL Concurrent Sessions" "kMax"} \ {"HTTP Client" "SSL Errors Received" "kMax"} \ {"HTTP Client" "SSL Errors Received (bad certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Received (no certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Received (no cipher)" "kMax"} \ {"HTTP Client" "SSL Errors Received (undefined error)" "kMax"} \ {"HTTP Client" "SSL Errors Received (unsupported certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Sent" "kMax"} \ {"HTTP Client" "SSL Errors Sent (bad certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (no certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (no cipher)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (undefined error)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (unsupported certificate)" "kMax"} \ {"HTTP Client" "SSL Negotiation Finished Successfuly" "kMax"} \
IxLoad Tcl API Programming Guide

API Overview 57

API Overview
{"HTTP Client" "SSL Session Reuse Failed" "kMax"} \ {"HTTP Client" "SSL Session Reuse Success" "kMax"} \ {"HTTP Client" "SSL Throughput Bytes" "kMax"} \ {"HTTP Client" "Server Hello Received" "kMax"} \ {"HTTP Client" "TCP Accept Queue Entries" "kMax"} \ {"HTTP Client" "TCP Connection Requests Failed" "kMax"} \ {"HTTP Client" "TCP Connections Established" "kMax"} \ {"HTTP Client" "TCP Connections in CLOSE STATE" "kMax"} \ {"HTTP Client" "TCP Connections in CLOSE-WAIT State" "kMax"} \ {"HTTP Client" "TCP Connections in CLOSING State" "kMax"} \ {"HTTP Client" "TCP Connections in ESTABLISHED State" "kMax"} \ {"HTTP Client" "TCP Connections in FIN-WAIT-1 State" "kMax"} \ {"HTTP Client" "TCP Connections in FIN-WAIT-2 State" "kMax"} \ {"HTTP Client" "TCP Connections in LAST-ACK State" "kMax"} \ {"HTTP Client" "TCP Connections in LISTENING State" "kMax"} \ {"HTTP Client" "TCP Connections in SYN-RECEIVED State" "kMax"} \ {"HTTP Client" "TCP Connections in SYN-SENT State" "kMax"} \ {"HTTP Client" "TCP Connections in TIME-WAIT State" "kMax"} \ {"HTTP Client" "TCP FIN Received" "kMax"} \ {"HTTP Client" "TCP FIN Sent" "kMax"} \ {"HTTP Client" "TCP FIN-ACK Received" "kMax"} \ {"HTTP Client" "TCP FIN-ACK Sent" "kMax"} \ {"HTTP Client" "TCP Listen Queue Drops" "kMax"} \ {"HTTP Client" "TCP Resets Received" "kMax"} \ {"HTTP Client" "TCP Resets Sent" "kMax"} \ {"HTTP Client" "TCP Retries" "kMax"} \ {"HTTP Client" "TCP SYN Failed" "kMax"} \ {"HTTP Client" "TCP SYN Sent" "kMax"} \ {"HTTP Client" "TCP SYN-ACK Sent" "kMax"} \ {"HTTP Client" "TCP SYN_SYN-ACK Received" "kMax"} \

58

IxLoad Tcl API Programming Guide

API Overview
{"HTTP Client" "TCP Timeouts" "kMax"} \ }
set HTTP_Server_Per_URL_StatList { \ {"HTTP Server Per URL" "HTTP Requests Failed" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Failed (50x)" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Failed (Write Error)" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Received" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Successful" "kMax"} \ }
set HTTP_Server_StatList { \ {"HTTP Server" "Client Hello Received" "kMax"} \ {"HTTP Server" "HTTP Bytes Received" "kMax"} \ {"HTTP Server" "HTTP Bytes Sent" "kMax"} \ {"HTTP Server" "HTTP Content Bytes Received" "kMax"} \ {"HTTP Server" "HTTP Content Bytes Sent" "kMax"} \ {"HTTP Server" "HTTP Cookies Received" "kMax"} \ {"HTTP Server" "HTTP Cookies Received With Matching ServerID" "kMax"} \ {"HTTP Server" "HTTP Cookies Received With Non-matching ServerID" "kMax"} \ {"HTTP Server" "HTTP Cookies Sent" "kMax"} \ {"HTTP Server" "HTTP Requests Failed" "kMax"} \ {"HTTP Server" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Server" "HTTP Requests Failed (50x)" "kMax"} \ {"HTTP Server" "HTTP Requests Failed (Write Error)" "kMax"} \ {"HTTP Server" "HTTP Requests Received" "kMax"} \ {"HTTP Server" "HTTP Requests Successful" "kMax"} \ {"HTTP Server" "HTTP Session Timeouts (408)" "kMax"} \ {"HTTP Server" "HTTP Sessions Rejected (503)" "kMax"} \

IxLoad Tcl API Programming Guide

59

API Overview
{"HTTP Server" "HTTP Transactions Active" "kMax"} \ {"HTTP Server" "SSL Alerts Received" "kMax"} \ {"HTTP Server" "SSL Alerts Received (access_denied)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (bad_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (bad_record_mac)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (certificate_expired)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (certificate_revoked)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (certificate_unknown)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (close_notify)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decode_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decompression_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decrypt_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decryption_failed)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (export_restriction)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (handshake_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (illegal_parameter)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (insufficient_security)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (internal_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (no_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (no_renegotiation)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (protocol_version)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (record_overflow)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (unexpected_message)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (unknown_ca)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (unsupported_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (user_canceled)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (access_denied)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (bad_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (bad_record_mac)" "kMax"} \

60

IxLoad Tcl API Programming Guide

{"HTTP Server" "SSL Alerts Sent (certificate_expired)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (certificate_revoked)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (certificate_unknown)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (close_notify)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decode_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decompression_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decrypt_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decryption_failed)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (export_restriction)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (handshake_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (illegal_parameter)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (insufficient_security)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (internal_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (no_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (no_renegotiation)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (protocol_version)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (record_overflow)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (unexpected_message)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (unknown_ca)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (unsupported_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (user_canceled)" "kMax"} \ {"HTTP Server" "SSL Bytes Received" "kMax"} \ {"HTTP Server" "SSL Bytes Sent" "kMax"} \ {"HTTP Server" "SSL Concurrent Sessions" "kMax"} \ {"HTTP Server" "SSL Errors Received" "kMax"} \ {"HTTP Server" "SSL Errors Received (bad certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Received (no certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Received (no cipher)" "kMax"} \ {"HTTP Server" "SSL Errors Received (undefined error)" "kMax"} \ {"HTTP Server" "SSL Errors Received (unsupported certificate)" "kMax"} \
IxLoad Tcl API Programming Guide

API Overview 61

API Overview
{"HTTP Server" "SSL Errors Sent" "kMax"} \ {"HTTP Server" "SSL Errors Sent (bad certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (no certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (no cipher)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (undefined error)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (unsupported certificate)" "kMax"} \ {"HTTP Server" "SSL Negotiation Finished Successfuly" "kMax"} \ {"HTTP Server" "SSL Session Reuse Failed" "kMax"} \ {"HTTP Server" "SSL Session Reuse Success" "kMax"} \ {"HTTP Server" "SSL Throughput Bytes" "kMax"} \ {"HTTP Server" "Server Hello Sent" "kMax"} \ {"HTTP Server" "TCP Accept Queue Entries" "kMax"} \ {"HTTP Server" "TCP Connection Requests Failed" "kMax"} \ {"HTTP Server" "TCP Connections Established" "kMax"} \ {"HTTP Server" "TCP Connections in CLOSE STATE" "kMax"} \ {"HTTP Server" "TCP Connections in CLOSE-WAIT State" "kMax"} \ {"HTTP Server" "TCP Connections in CLOSING State" "kMax"} \ {"HTTP Server" "TCP Connections in ESTABLISHED State" "kMax"} \ {"HTTP Server" "TCP Connections in FIN-WAIT-1 State" "kMax"} \ {"HTTP Server" "TCP Connections in FIN-WAIT-2 State" "kMax"} \ {"HTTP Server" "TCP Connections in LAST-ACK State" "kMax"} \ {"HTTP Server" "TCP Connections in LISTENING State" "kMax"} \ {"HTTP Server" "TCP Connections in SYN-RECEIVED State" "kMax"} \ {"HTTP Server" "TCP Connections in SYN-SENT State" "kMax"} \ {"HTTP Server" "TCP Connections in TIME-WAIT State" "kMax"} \ {"HTTP Server" "TCP FIN Received" "kMax"} \ {"HTTP Server" "TCP FIN Sent" "kMax"} \ {"HTTP Server" "TCP FIN-ACK Received" "kMax"} \ {"HTTP Server" "TCP FIN-ACK Sent" "kMax"} \ {"HTTP Server" "TCP Listen Queue Drops" "kMax"} \

62

IxLoad Tcl API Programming Guide

{"HTTP Server" "TCP Resets Received" "kMax"} \ {"HTTP Server" "TCP Resets Sent" "kMax"} \ {"HTTP Server" "TCP Retries" "kMax"} \ {"HTTP Server" "TCP SYN Failed" "kMax"} \ {"HTTP Server" "TCP SYN Sent" "kMax"} \ {"HTTP Server" "TCP SYN-ACK Sent" "kMax"} \ {"HTTP Server" "TCP SYN_SYN-ACK Received" "kMax"} \ {"HTTP Server" "TCP Timeouts" "kMax"} \ }

set statList [concat \ $HTTP_Client_Per_URL_StatList \ $HTTP_Client_StatList \ $HTTP_Server_Per_URL_StatList \ $HTTP_Server_StatList \ ]

set count 1

foreach statItem $statList {

set caption

[format "Watch_Stat_%s" $count]

set statSourceType [lindex $statItem 0]

set statName [lindex $statItem 1]

set aggregationType [lindex $statItem 2]

${NS}::AddStat \

-caption

$caption \

-statSourceType $statSourceType \

-statName

$statName \

-aggregationType $aggregationType \

-filterList

{}

IxLoad Tcl API Programming Guide

API Overview 63

API Overview

incr count }
proc ::my_stat_collector_command {args} { puts "=====================================" puts "INCOMING STAT RECORD >>> $args" puts "Len = [llength $args]" puts [lindex $args 0] puts [lindex $args 1] puts "=====================================" } ${NS}::StartCollector -command ::my_stat_collector_command
Step 11: Start the Test
In this step, we'll actually start and stop the test. The steps involved are: l Start the statistics collector using StartCollector. l Use the ixTestController instance to run the test. l Wait for the test complete. l Stop the statistics collector using StopCollector. l Disconnect from the remote server. See Initial Overhead for more details.
${NS}::StartCollector -command ::my_stat_collector_command
#-----------------------------------------------------------------------# Run the test#-----------------------------------------------------------------------$testController run $test
#-----------------------------------------------------------------------# have the script (v)wait until the test is over#----------------------------------------------------------------------vwait ::ixTestControllerMonitor;puts $::ixTestControllerMonitor
#-----------------------------------------------------------------------# Stop the

64

IxLoad Tcl API Programming Guide

API Overview
collector (running in the tcl event loop)#----------------------------------------------------------------------${NS}::StopCollector
#-----------------------------------------------------------------------# Cleanup#----------------------------------------------------------------------$testController generateReport -detailedReport 1 -format "PDF;HTML"
$testController releaseConfigWaitFinish::IxLoad delete $chassisChain::IxLoad delete $clnt_network::IxLoad delete $svr_network::IxLoad delete $clnt_traffic::IxLoad delete $svr_traffic::IxLoad delete $clnt_t_n_mapping::IxLoad delete $svr_t_n_ mapping::IxLoad delete $test::IxLoad delete $testController::IxLoad delete $logger::IxLoad delete $logEngine
#-----------------------------------------------------------------------# Disconnect#-----------------------------------------------------------------------}] { puts $errorInfo}## Disconnect/Release application lock#::IxLoad disconnect
Stopping a Test by Pressing Enter
You can configure a test to stop when the ENTER key is pressed. See below is the sample code. For an example of a complete script that stops when ENTER is pressed, see the sample script C:\Program Files\Ixia\IxLoad\Client\TclApi\Samples\simplehttp-abortrun.tcl .
#-----------------------------------------------------------------------# configure stdin for polling#----------------------------------------------------------------------fconfigure stdin -blocking 0 -buffering none# wait for the first sample or test stopwhile {$::ixTestControllerMonitor == "" && [read stdin] == ""} { after 100 set wakeup 1 # the script must call vwait or update while test runs # to keep TCL event loop going. Otherwise, no stat collector # callbacks will be made, and ixTestControllerMonitor will # never be set. vwait wakeup}#----------------------------------------------------------------------# if aborted, then stop test gracefully#-----------------------------------------------------------------------if {$::ixTestControllerMonitor == ""} { puts "" puts "!!!Aborting test at earliest opportunity!!!" puts "" # stop the run $testController stopRun # # (v)wait until the test really stops # vwait ::ixTestControllerMonitor puts $::ixTestControllerMonitor}## Stop the collector#${NS}::StopCollector#----------------------------------------------------------------------# Cleanup#----------------------------------------------------------------------

IxLoad Tcl API Programming Guide

65

API Overview
Running an IxLoad Tcl Script
The following sections describe how to run an IxLoad Tcl script test. Windows (see "Windows") describes how to run a script on Windows. Unix / Linux (see "Unix / Linux") describes how to run a script on Unix/Linux.
Windows
To run an IxLoad Tcl script, you can use either of the following Tcl shells: l Wish shell: C:\Program Files\Ixia\Tcl\<version>\bin\wish.exe l Tcl shell: C:\Program Files\Ixia\Tcl\<version>\bin\tclsh.exe
The IxLoad TCL code resides under C:\Program Files\Ixia\IxLoad\<version>\TclScripts. The code in the setup_ixload_paths.tcl script used in earlier releases is no longer used. Instead, the current method used by all Ixia applications is to source TclScripts\bin\IxiaWish.tcl for the application, and follow that with a package require command.
Note: If more than one version of IxLoad is installed, the package require command uses the highest-numbered version. To select a different version, include the complete version number in the command. For example: package require ixload 4.20.0.88

66

IxLoad Tcl API Programming Guide

API Overview
Unix / Linux
To run an IxLoad Tcl script on Unix/Linux: l You must use the ixwish shell or IxTclsh provided in the bin directory of the IxOS installation. l You must install the IxOS Unix Tcl Client, and the IxLoad Unix Tcl client.
The package require command used in the sample scripts will only succeed if you have a version of IxLoad installed on the Unix/Linux machine that matches the one you request in the package require statement, and the environment is set up correctly For multiversion support on Unix / Linux, the installer creates a lib/IxLoad<version> directory with a pkgIndex.tcl for each version of IxLoad that you install. The version number is the same one reported to TCL when the package is required. All normal package require logic applies to this.
Note: If more than one version of IxLoad is installed, the package require command uses the highest-numbered version. To select a different version, include the complete version number in the command. For example:
package require ixload 4.20.0.88
l You must install and run the IxLoad client on a Windows machine. When you run the TCL scripts on the Unix/Linux host, the TCL scripts are sent to the Windows machine and executed there. The results are also saved on the Windows host.
Ixia Tcl Server must be running on a Windows-based host, not the chassis.The Tcl Server machine is specified in a call to connect in the ::IxLoad command. The ::IxLoad connect call will only succeed if the specified client is:
l Running a compatible Tcl Server (release notes will detail the IxOS version that is compatible with a particular IxLoad version),
l Has the identical version of IxLoad installed that was actually loaded by the package require statement on the Unix machine (i.e. returned by the Unix package require IxLoad command).
l The ::IxLoad connect command also performs the IxOS ixConnectToTclServer, so a separate call is not necessary to access the ixTclHal commands on the client machine.

IxLoad Tcl API Programming Guide

67

API Overview

Maximum Numbers of Scripts That Can Be Run
A maximum of four instances of IxLoad can run on a Windows client PC.
l Each copy of the IxLoad GUI counts as 2 instances. l Each Tcl script counts as 1 instance.
If you receive the following error: Error: exceptions.Exception: Already running maximum allowed copies of IxLoad.
the most likely cause is running more scripts than allowed (that is, from multiple shells or in the background).
Unix Tcl scripts are executed on the Windows client PC. If a Unix script is terminated (killed), the Windows client might take a few seconds to notice and kill the corresponding tclsh, but it still counts as a copy of IxLoad until the tclsh is killed.
Scripts running on the Windows client do not launch their own tclsh, but still count as an instance. If a Windows Tcl script running in wish crashes during execution, it still counts as a running copy until the wish shell is killed.
Modifying Older Scripts
Multi-version support enables you to install multiple versions of IxLoad on the same client PC. Multiversion support was added to IxLoad beginning with release 3.40. If you want to run a non-multiversion (pre-3.40) script in a multi-version release, you must modify it.
To modify a multi-version script: 1. Open the script in an editor. 2. Remove following code from the old script:
if {$::tcl_platform(platform) == "windows"} {package require registry 1set ::_

68

IxLoad Tcl API Programming Guide

API Overview
IXLOAD_INSTALL_ROOT [registry get {HKEY_LOCAL_MACHINE\Software\Ixia Communications\IxLoad\InstallInfo} HOMEDIR]set ::_IXLOAD_PKG_DIR [file join $::_IXLOAD_ INSTALL_ROOT Client tclext teepee stage]lappend ::auto_path $::_IXLOAD_PKG_DIR}
3. Replace the removed code with either of the following lines (replace <version> with the IxLoad version number):
source "C:\\Program Files\\Ixia\\IxLoad\\<version>\\TclScripts\\bin\\IxiaWish.tcl" source "C:\\Program Files\\Ixia\\IxLoad\\<version>\\TclScripts\\bin\\IxiaWish.tcl"
4. Save and close the file.
API Description
The following sections of this chapter are an overview of the Tcl API, by topic. They are described in the same order as the suggested steps in Building an IxLoad Test.
l Network Commands--Defines the client and server networks. l ixNetworkGroup--Configure the global network. l ixChassisChain--Indicates the chassis that are used in the test.
DUT Commands l ixDut--Creates a DUT entry.
Traffic Commands l ixNetTraffic--Configures client and server traffic. l activityList--Generates traffic for one side of a particular protocol. l ixTimeline--Configures the time in the test when the activities in the NetTraffics come online,
and how long they stay up for. It is also used to configure the test's objectives. Test Structure Commands l ixTimeline--Configures the timeline and objectives for client and server. l ixTest--Creates a complete test structure. l ixView--Configures capture options in test repositories. l ixTrafficFlow--Lists the test scenario. l ixTrafficColumn--A container of ixNetTraffic and ixDut objects. Test Operation Commands l ixTestController--Starts and stops test. l ixTestControllerMonitor--A global variable to watch for test completion. l statCollectorUtils--Utilities for collecting statistics.
Reference pages for each of the IxLoad Tcl API commands are included in the following chapters:
l IxLoad Tcl API Commands. This includes a discussion of the most often used commands. l IxLoad Tcl API Internal Commands. This includes a discussion of the behind-the-scenes com-
mands on which most other commands are based. l Each of the remaining chapters describes one of the supported protocols.

IxLoad Tcl API Programming Guide

69

API Overview

The remainder of this section is an overview of these commands, including brief descriptions of command operation, options, and subcommands.

Network Commands
The commands in this section are the high-level used to create the networks used to support client and server traffic. There are minor differences between client and server net
The bulk of the network-related commands are described in the Network Stack API section.

ixNetworkGroup
The ixNetworkGroup command is used to construct a client or server network, which is used as part of an ixNetTraffic object. A chassis chain object, as created in the ixChassisChain command, must be used in the construction of this object.
A list of network ranges, as defined in the ixNetworkRange object is associated with the client network. Network ranges are added to the client network through the use of the networkRangeList.appendItem command.
A list of Ixia ports is also associated with the network through the portList option.
If an emulated router is to be used, a list of IP ranges for the router is also associated with the network through the emulatedRouterIpAddressPool option. The pool is defined in the ixEmulatedRouterIpAddressRange object. These are added to the object through the use of the em command.
Refer to ixNetworkGroup for a full description of this command. The important subcommands and options of this command are listed below.
ixClientNetwork Subcommands

Subcommand Usage checkConfig Checks the configuration of this object, raising an exception in the case of an error.

reset

Disassociates the network from all of the Ixia ports used in this network.

ixClientNetwork Options

Option

Usage

70

IxLoad Tcl API Programming Guide

API Overview

name

The name associated with this object.

networkRangeList The networks that are defined for this object--a list of ixNetworkRange objects.

portList cardType

The Ixia ports that will carry traffic for this network.
The card type for all of the ports in this network. Cards of a similar type must be used for all ports in a network. The cardType option is now used only for error/diag messages, and is automatically selected. Please refer to cardType for the list of card types.

macMappingMode Indicates whether one MAC address will be associated with each IP address or with each Ixia port. The use of the latter option indicates that an emulated router is to be used.

emulatedRouterIp If the macMappingMode indicates that one MAC is used per port, then this is a

AddressPool

list of addresses ranges-- a list of ixEmulatedRouterIpAddressRange objects.

emulatedRouter Gateway
dnsParameters

If the macMappingMode indicates that one MAC is used per port, then this is the gateway for the emulated router.
An object of type ixDns, which defines DNS operation for this network.

arpSettings tcpParameters impairment

An object of type ixArpSettings, which defines ARP operation for this network.
An object of type ixTcpParameters, which defines TCP options for this network.
An object of type ixImpairment, which Impairs one or more types of traffic from a client and server network.

ixChassisChain
Before defining client and server networks, it is necessary to define a chassis chain. This command is used to construct a chain of Ixia chassis, whose ports may be used in the ixNetworkGroup command. Chassis are assigned chassis IDs starting at 1; these are used in the network commands to define the chassis associated with the port.
Refer to ixChassisChain for a full description of this command. The important subcommands of this command are listed in the table below.

IxLoad Tcl API Programming Guide

71

API Overview

Subcommand addChassis

Usage Adds a chassis, by name or address, to the chassis chain.

setLoginName getLoginName

Sets and retrieves the user login name.

isValidChassisName Checks to see whether a chassis name/address is valid.

getChassisNames

Returns the names of all of the chassis, ordered by their chassis IDs.

deleteChassisByName Deletes a chassis, by name, from the list. The IDs of other chassis remain unaffected.

refresh refreshChassis

Rereads chassis information from one or all chassis.

ixEmulatedRouterIpAddressRange
The ixEmulatedRouterIpAddressRange command is used to construct an list of IP addresses assigned on a per-port basis for emulated routers, as used in the ixNetworkGroup command.
Refer to ixEmulatedRouterIpAddressRange for a full description of this command. The important options of this command are listed below.

ixEmulatedRouterIpAddressRange Options

Option

Usage

enable

Enables the use of this address range.

ipType

Type of address (IPv4 or IPv6).

firstIp lastIp

Controls the range of IP addresses generated.

networkMask The network mask for the IP addresses.

72

IxLoad Tcl API Programming Guide

API Overview

ixDns

The ixDns command is used to define DNS behavior on a network. A DNS object is set through the dnsParameters option of the ixNetworkGroup object.

Refer to ixDns for a full description of this command. The important options of this command are listed below: ixDns Options

Option

Usage

enable

Enables the use of this DNS specification.

serverList

A list of DNS servers to check at run time. This list consists of items of type ixDnsServerItem.

suffixList

A list of DNS suffixes to add to partial host names. This list consists of items of type ixDnsSuffixList.

cacheTimeout The time-out value used for cached DNS lookups.

ixDnsServerItem
The ixDnsServerItem command is used to define a DNS server on a network. A DNS server item object is appended to the serverList option of the ixDns object. For example, set dns [::IxLoad new ixDns options...] $test.dns.serverList appendItem \ -data192.168.3.1 Refer to ixDnsServerItem on page 4-36 for a full description of this command. The important options of this command are listed below.
ixDnsServerItem Options Option Usage
data The IP address of a DNS server.

IxLoad Tcl API Programming Guide

73

API Overview
ixDnsSuffixList
The ixDnsSuffixItem command is used to define a DNS suffix. A DNS suffix item object is appended to the suffixList option of the ixDns object. For example, set dns [::IxLoad new ixDns options...] $test.dns.suffixList appendItem \ -data".ixiacom.com" Refer to ixDnsServerItem for a full description of this command. The important options of this command are:
ixDnsSuffixItem Options Option Usage data A domain name suffix.
ixTcpParameters
The ixTcpParameters command is used to define TCP options on a network. A TCP parameters object is set in the tcpParameters option of an ixNetworkGroup object. Refer to ixTcpParameters for a full description of this command. A wide range of low level TCP options are exposed in this command.
ixEmulatedRouterIpAddressRange
The ixEmulatedRouterIpAddressRange command is used to construct an list of IP addresses assigned on a per-port basis for emulated routers, as used in the ixNetworkGroup command for both client and server. Refer to ixEmulatedRouterIpAddressRange for a full description of this command.
DUT Commands
In many cases, it is not necessary to define your DUT in an IxLoad test. Two cases are necessary, however:
l If your DUT is a Server Load Balancer (SLB) and the IP address of the DUT itself is the destination of client requests.
l If your DUT is a caching device, and direct server return is desired.

74

IxLoad Tcl API Programming Guide

API Overview

ixDut

The ixDut command is used to define a DUT used in the test. The DUTs are used to resolve symbolic references to them in traffic destinations in the various protocol agents. It also controls several DUT specific features.
Refer to ixDut for a full description of this command. The important options of this command are listed below. ixDut Options

Option

Usage

name

The name associated with the DUT.

type

The type of the DUT--external server, SLB or firewall.

ipAddress

The IP address, virtual IP address, or host name to be used to access the DUT.

serverNetwork

If the DUT is an SLB, this is the network that will be balanced.

enableDirectServer If the DUT is an SLB, this option allows balanced servers to send their return

Return

traffic directly back to the source of the request.

Traffic Commands
The commands in this section relate to the generation of traffic by clients and the handling of traffic by servers.
ixNetTraffic
The ixNetTraffic command is used to configure client or server traffic. Two separate ixNetTraffic objects have to be created for client and server traffic. The ixNetTraffic configuration also declares the ixNetworkGroup object. The activityList is appended to the ixNetTraffic object. Refer to ixNetTraffic for a full description of this command.

IxLoad Tcl API Programming Guide

75

API Overview
activityList
Generates traffic for one side of a particular protocol. For example, an HTTP client Activity generates HTTP client requests, simulating a web browser. The activityList is appended to the ixNetTraffic object. Refer to activityList for a full description of this command.
ixTimeline
Configures the time in the test when the activities in the NetTraffics come online, and how long they stay up for. It is also used to configure the test's objectives. The ixTimeline object is added to the timeline options of the activityList config. Refer to ixTimeline for a full description of this command.
Test Structure Commands
The commands in this section coordinate networks with traffic into communities, and communities into an entire test structure. These commands also define the operational parameters of the test.
ixTest
The ixTest command is used to construct a complete IxLoad test structure. It consist of a list of client traffic-network and server traffic-network mappings, called communities. In addition to the two lists, several options control global operations. An ixTest command is used in conjunction with a ixTestController to operthe test and collect statistics. A test is generally built via: set test [::IxLoad new IxTest -name "my_test"] $test clientCommunityList.appendItem -object $my_clients $test serverCommunityList.appendItem -object $my_servers Refer to ixTest for a full description of this command.
ixView
Configures capture options in test repositories. It is added as an object instance to the captureViewOptions in ixTest. Refer to ixView for a full description of this command.

76

IxLoad Tcl API Programming Guide

API Overview

ixTrafficFlow
Lists the test scenario. The ixTrafficFlow command is used to list the test scenarios. Traffic Flow object is appended to the ixTest object. Refer to ixTrafficFlow for a full description of this command.
ixTrafficColumn
This is a container of ixNetTraffic and ixDut objects. Refer to ixTrafficColumn for a full description of this command.

Test Operation Commands
The commands in this section relate to the actual test and statistics gathering operations.

ixTestController
The ixTestController command is used to setup, start, and stop an IxLoad test. It references the ixTest object in its run subcommand. Refer to ixTestController for a full description of this command. The important subcommands and options of this command are listed below:
ixTestController Subcommands

Subcommand run
setResultDir isBusy getTestServerHandle

Usage Run the test. The name of an ixTest object is a required argument.
Specifies the location of where CSV files from the run are saved. Returns true while the test is running. Returns a value necessary for the statistics collection routines.

IxLoad Tcl API Programming Guide

77

API Overview

releaseConfigWaitFinish

Releases all IxLoad configurations and waits for it to complete.
Beginning with the IxLoad 8.00 release, releaseConfigWaitFinish will no longer be included in scripts created by ScriptGen.
Instead, the following code will be included: $testController releaseConfig vwait ::ixTestControllerMonitor puts $::ixTestControllerMonitor
This new method is asnychronous, meaning that after it is called, a script can execute other code between the call for releaseConfig and the vwait statement.
Existing scripts that use releaseConfigWaitFinish will continue to function as before.

generateReport

Generates report from TCL.

ixTestController Options
Options Usage outputDir This should be set to a non-null value if you wish to save statistics in CSV files during
the run. The actual directory used is set in the setResultDir subcommand.

ixTestControllerMonitor
This is a global variable whose state may be used in a vwait to determine when a test has completed. Refer to ixTestControllerMonitor for a full description of this command.
statCollectorUtils
The statCollectorUtils is a library containing several commands to gather statistics during a test run. Refer to statCollectorUtils on page for a full description of this library. The important commands of this library are:
statCollectorUtils Commands

78

IxLoad Tcl API Programming Guide

API Overview

Subcommand

Usage

Initialize

Initializes the statistics utility package. Requires the result of a call to ixTest getTestServerHandle.

AddStat

Adds a statistic to the list of desired statistics to follow.

AddL2L3Stat

Adds a Layer 2 or 3 statistic to the list of desired statistics to follow.

AddNetworkStat

Adds a dynamic range network statistic to the list of desired statistics to follow.

AddPerInterfaceStat

Adds a per-range network statistic to the list of desired statistics to follow.

AddSIPPerStreamStat Adds a SIP per-stream statistic to the list of desired statistics to follow.

AddVideoPerStreamStat Adds a video per-stream statistic to the list of desired statistics to follow.

ClearStats

Clears the statistics values from any previous run.

StartCollector

Starts the statistics gathering process. The name of a user's callback command is passed in here.

StopCollector

Stops the statistics gathering process.

Debugging
During the normal operation of the Tcl API, only errors and warnings are logged. To increase the level of debugging, you should use the following code fragment: set logtag "IxLoad-api" set logName "simplehttpclientandserver" set logger [$::CMD new ixLogger $logtag 1] set logEngine [$logger getEngine] $logEngine setLevels $::ixLogger(kLevelDebug) $::ixLogger(kLevelInfo) $logEngine setFile $logName 2 256 1 The above fragment specifies that the log file name is prefixed with simplehttpclientandserver. The actual log file name is generated as fol

IxLoad Tcl API Programming Guide

79

API Overview

logName-<instance number>-<log file number>.log
where "instance number" is the number assigned to your session, with the first session being 1 up to a maximum of 4. "log file number" is a two digit number which is usually 00. Long or complicated tests may produce more log data than will fit in a single file, in which case a file ending with 01 will also exist. Extremely large logs may cause the sequence to start over, overwriting the original contents of log 00.
If the link is down on any of the ports in the test, the Tcl API logs the error in the log files but it does not display an error in the wish console. Although IxLoad allows the test to enter the "Configured" state with a link down, it will not allow the test to run.

Logging Levels
In the code snippet, the following line defines an example of the settings of the setLevels API on the logger object. $logEngine setLevels $::ixLogger(kLevelDebug) $::ixLogger(kLevelInfo)
The log levels are accessed using $::ixLogger(kLevelxxx). The first value is the file level and the second value is the console level.
File Level: The file level should always be kLevelDebug. Otherwise, the log files will not contain enough information, in the event of a problem with the script.
Console Level: The second level is typically kLevelInfo, but can be set to the other levels as desired. Setting it to kLevelDebug is not recommended as it is likely to flood the console with internal messages.
The following are some of the other options for the Console Level:

::ixLogger value Messages Logged

kLevelError

Error messages only.

kLevelWarning Error and warning messages.

kLevelInfo

Error, warning, and informational messages.

Log File Parameters
The following line defines the parameters of the log files: $logEngine setFile $logName 2 256 1

80

IxLoad Tcl API Programming Guide

API Overview
2 is the number of log files to use before wrapping and overwriting the existing log files. The value 2 results in log files named $logName-#-00.log and $logName-#-01.log (the # is the session number and is determined dynamically by IxLoad. This also corresponds to the /S#/ in the login name for taking owner 256 is the size limit of each file, in KB. 1 is the truncate flag. 1 indicates to start the logging cycle over, using file -00, and deleting any previous log files. 0 causes logging to resume from where it left off.
Log File Locations
For Windows scripts, the log file is stored in the current working directory of the Tcl shell. For Unix scripts, the file is stored on the intermediate Windows client hosting your remote script, in the directory C:\Program Files\Ixia\Ixload\Client\tclext\remoteScriptingService. To retrieve the log file from your Unix session, use the following script at the end of the test:
set fullLogName [file join "c:/Progra~1/IxLoad/Client/tclext/remoteScriptingService" [$logEngine getFileName]]puts [::IxLoad retrieveFile $fullLogName]

Sample Scripts Shipped with IxLoad
The table below lists the files in the C:\Program Files\Ixia\IxLoad\<version>\TclScripts\Samples directory, which are shipped with IxLoad. The sample files are grouped under four folders under Samples: Application Features, Network, Protocols, and Stats.

File
Application Features
FTP_MixedTrafficMaps.tcl
FTP_ModifyOnTheFly.tcl
HTTP_AbortRun.tcl

Description Example of how to set up traffic on multiple (2) ports. Example on how to modify on the fly test objective value. Example of how to stop a test before completion.

IxLoad Tcl API Programming Guide

81

API Overview

HTTP_ActivityIpMapping.tcl

Example of how to configure IP addresses on a per-activity basis.

HTTP_Capture.tcl

Example of how capture test traffic.

HTTP_CaptureCustom.tcl

Similar to HTTP_Capture.tcl but with the default filter set to TCP.

HTTP_CaptureManual.tcl

Example of how capture test traffic by starting within the test script itself.

HTTP_ConfigStopRun.tcl

Example of how to stop and restart a test.

HTTP_CustomTrafficMap.tcl

Example of how to set up a custom traffic pattern on a symbolic destination (IxLoad server or client).

HTTP_RetrieveResultsAPI.tcl

Example of how to retrieve the test results.

RepNewHTTP.tcl

Example of how to create a new repository and configure with a basic HTTP protocol test.

RepRun.tcl

Example of how to load a repository and start a test.

setup_ixload_paths.tcl Example of how to set up paths to IxLoad tcl code relative to install directory.

setup_simple.tcl

Setup script used for simple*.tcl tests.
This file is sourced by all IxLoad sample tcl test scripts, and provides a convenient central place to change the chassis, port, and card that the tests will run on.

SIP_RenamedObjective.tcl

Example of how to rename a Test Objective for a SIP protocol test.

Network

HTTP_DHCP.tcl

Example of how to configure a DHCP network range.

HTTP_EmulatedRouter.tcl

Example of how to configure an emulated router.

HTTP_IPDHCPRelay.tcl Example of how to configure a IPDHCPRelay network range.

HTTP_IPSec.tcl

Example of how to configure a IPSec network range.

HTTP_IPv6.tcl

Example of how to configure a IPv6 network range.

82

IxLoad Tcl API Programming Guide

API Overview

HTTP_PPPoE.tcl

Example of how to configure a PPPoE network range.

HTTP_VLAN_Impairment.tcl

Example of how to configure impairment with VLANs.

setup_ixload_paths.tcl Example of how to set up paths to IxLoad tcl code relative to install directory.

setup_simple.tcl

Setup script used for simple*.tcl tests.
This file is sourced by all IxLoad sample tcl test scripts, and provides a convenient central place to change the chassis, port, and card that the tests will run on.

Protocols

2.1.10_src_trace_http.- Capture file for use with Trace File Replay test. cap

ApplicationTest.pft

Sample .pft file for use with Application Test protocol.

ApplicationTest.tcl

Sample .tcl file for use with Application Test protocol.

DDoS.tcl

Example of a basic LDAP protocol test.

DHCP.tcl

Example of a basic DHCP protocol test.

DNS.tcl

Example of a basic DNS protocol test.

FTP.tcl

Example of a basic FTP protocol test.

FTP_POP3.tcl

Example of a basic FTP-POP3 protocol test.

HTTP.tcl

Example of a basic HTTP protocol test.

HTTP_SSL.tcl

Example of a basic HTTP_SSL protocol test.

IMAP.tcl

Example of a basic IMAP protocol test.

LDAP.tcl

Example of a basic LDAP protocol test.

MGCP.tcl

Example of a basic MGCP protocol test.

MGCP_Signaling.tcl

Example of a basic MGCP_Signaling protocol test.

MGCP_Signaling_ RTP.tcl

Example of a basic MGCP_Signaling_RTP protocol test.

POP3.tcl

Example of a basic POP3 protocol test.

IxLoad Tcl API Programming Guide

83

API Overview

QuickHTTP.tcl

Example of a basic QuickHTTP protocol test.

QuickTCP.tcl

Example of a basic QuickTCP protocol test.

RTSP.tcl

Example of a basic RTSP protocol test.

setup_ixoad_paths.tcl Example of how to set up paths to IxLoad tcl code relative to install directory.

setup_simple.tcl

Setup script used for simple*.tcl tests.
This file is sourced by all IxLoad sample tcl test scripts, and provides a convenient central place to change the chassis, port, and card that the tests will run on.

SIP.tcl

Example of a basic SIP protocol test.

sip_demo.wav

Audio file for SIP testing.

SIP_DTMF.tcl

Example of a SIP protocol test that uses DTMF tones.

SMTP.tcl

Example of a basic SMTP protocol test.

SPTS1-no_discontinuity

Video file for video testing.

TraceFileReplay.tcl

Example of a basic Trace File Replay (capture replay) test.

Video.tcl

Example of a basic Video protocol test.

Video_Configurable_ Pid.tcl

Example of configuring Package Identifiers (PIDs) for Video protocol tests.

Video_Control_TS_ Per_UDP.tcl

Example of configuring the number of transport stream (TS) packets contained in each UDP packet for Video protocol tests.

Video_I_Join_ Latency.tcl

Example of how to measure the IGMP I Join latency in a Video protocol test.

Video_IGMPv1.tcl

Example of how to use IGMPv1 in a Video protocol test.

Video_MLDv1.tcl

Example of how to configure version 1 of Multicast Listener Discovery (MLD) in a Video protocol test.

Video_MLDv2.tcl

Example of how to configure version 2 of Multicast Listener Discovery (MLD) in a Video protocol test.

Video_Multicast_Profiles.tcl

Example of how to configure a multicast video test that uses profiles.

84

IxLoad Tcl API Programming Guide

API Overview

Video_Poisson.tcl

Example of how to configure the Poisson distribution in a Video protocol test.

VulnerabilityAttacks.tcl Example of a basic Vulnerability (Nessus) test.

Stats

HTTP_PerInterfaceStats.tcl

Example of how to configure per-interface statistics for a HTTP protocol test.

HTTP_PerUrlPerIpStats.tcl

Example of how to configure per-url and per-IP statistics for a HTTP protocol test.

HTTP_RepRun_Stats.tcl

Example of how to load a repository, run an HTTP test, and retrieve the statistics.

HTTP_StateStats.tcl

Example of how to retrieve the Run State and Iteration Count statistics.

HTTP_StatFilter.tcl

Example of how to filter statistics by activity.

setup_ixload_paths.tcl Example of how to set up paths to IxLoad tcl code relative to install directory.

setup_simple.tcl

Setup script used for simple*.tcl tests.
This file is sourced by all IxLoad sample tcl test scripts, and provides a convenient central place to change the chassis, port, and card that the tests will run on.

SIP_PerStreamStats.tcl Example of how to configure per-stream statistics for a SIP protocol test.

Video_PerStreamStats.tcl

Example of how to configure per-stream statistics for a Video protocol test.

Examples in the Samples/... directory should be run from that directory.

Example Program
The following is the complete example used in the Building an IxLoad Test section cof this chapter. This example is similar to, but not identical to the C:\Program Files\Ixia\IxLoad\Client\TclApi\Samples\ simplehttpclientandserver.tcl file. This file is self-contained and omits some advanced usage features.
#################################################

IxLoad Tcl API Programming Guide

85

API Overview

# IxLoad ScriptGen created TCL script # Test1 serialized using version 4.10.0.79 # simpleHTTP.tcl made on Aug 29 2008 15:03 #################################################

################################################# # Copy content of setup_ixload_paths.tcl #################################################

package require IxLoad

::IxLoad connect 1.2.3.4

if [catch {

set logtag "IxLoad-api" set logName "simpleHTTP" set logger [::IxLoad new ixLogger $logtag 1] set logEngine [$logger getEngine] $logEngine setLevels $::ixLogger(kLevelDebug) $::ixLogger(kLevelInfo) $logEngine setFile $logName 2 256 1

global ixAppPluginManager $ixAppPluginManager load "HTTP"

################################################# # Build chassis chain ################################################# set chassisChain [::IxLoad new ixChassisChain]

set my_ixViewOptions [::IxLoad new ixViewOptions]

$my_ixViewOptions config \

-runMode

1\

-captureRunDuration

0\

-captureRunAfter

0\

-collectScheme

0\

-allocatedBufferMemoryPercentage

30

set Test1 [::IxLoad new ixTest] $Test1 config \ -comment -csvInterval -networkFailureThreshold -name -statsRequired -enableResetPorts -enableNetworkStats -enableForceOwnership -enableReleaseConfigAfterRun -currentUniqueIDForAgent -allowMultiple1GAggregatedPorts -captureViewOptions

"" \ 4\ 0\ "Test1" \ 1\ 0\ false \ false \ 0\ 2\ false \ $my_ixViewOptions

86

IxLoad Tcl API Programming Guide

API Overview

$Test1 scenarioList.clear

set TrafficFlow1 [::IxLoad new ixTrafficFlow]

$TrafficFlow1 config \

-name

"TrafficFlow1"

$TrafficFlow1 columnList.clear

set Client [::IxLoad new ixTrafficColumn]

$Client config \

-name

"Client"

$Client elementList.clear

set HTTP_client_client_network [::IxLoad new ixNetTraffic]

################################################# # Activity newClientActivity1 of NetTraffic HTTP client@client network

################################################# set Activity_newClientActivity1 [$HTTP_client_client_network activ-

ityList.appendItem \ -protocolAndType

"HTTP Client" ]

#################################################

# Timeline1 for activities newClientActivity1

#################################################

set Timeline1 [::IxLoad new ixTimeline]

$Timeline1 config \

-rampUpValue

5\

-rampUpType

0\

-offlineTime

0\

-rampDownTime

20 \

-standbyTime

0\

-iterations

1\

-rampUpInterval

1\

-sustainTime

60 \

-timelineType

0\

-name

"Timeline1"

$Activity_newClientActivity1 config \ -enable -name -userIpMapping -enableConstraint -userObjectiveValue -constraintValue -userObjectiveType -timeline

1\ "newClientActivity1" \ "1:1" \ false \ 100 \ 100 \ "simulatedUsers" \ $Timeline1

$Activity_newClientActivity1 agent.config \

-vlanPriority

0\

-enableDecompressSupport

false \

-enableHttpsProxy

0\

IxLoad Tcl API Programming Guide

87

API Overview

-enableSsl -enableUnidirectionalClose -uniqueID -ipPreference -loopValue -maxPersistentRequests -enableEsm -certificate -sequentialSessionReuse -tos -maxPipeline -maxHeaderLen -maxSessions -enableHttpProxy -enableTos -cookieRejectProbability -browserEmulation -cookieJarSize -privateKey -commandTimeout -enableIntegrityCheckSupport -commandTimeout_ms -privateKeyPassword -urlStatsCount -followHttpRedirects -tcpCloseOption -enableVlanPriority -esm -httpVersion -sslVersion -enableCookieSupport -enableLargeHeader -clientCiphers -httpProxy -keepAlive -enableCRCCheckSupport -httpsProxy

0\ 0\ 1\ 2\ 1\ 1\ 0\ "" \ 0\ 0\ 1\ 1024 \ 3\ 0\ false \ 0.0 \ 1\ 10 \ "" \ 600 \ false \ 0\ "" \ 10 \ 0\ 0\ 0\ 1460 \ 0\ 3\ 0\ 0\ "DEFAULT" \ ":80" \ 0\ false \ ":443"

$Activity_newClientActivity1 agent.actionList.clear

set my_ixHttpAction [::IxLoad new ixHttpAction]

$my_ixHttpAction config \

-profile

-1 \

-namevalueargs

"" \

-destination

"HTTP server_newServerActivity1:80" \

-abort

"None" \

-command

"GET" \

-arguments

"" \

-pageObject

"/4k.html"

$Activity_newClientActivity1 agent.actionList.appendItem -object $my_ixHttpAction

$Activity_newClientActivity1 agent.headerList.clear

88

IxLoad Tcl API Programming Guide

API Overview

set my_ixHttpHeaderString [::IxLoad new ixHttpHeaderString]

$my_ixHttpHeaderString config \

-data

"Accept: */*"

$Activity_newClientActivity1 agent.headerList.appendItem -object $my_ixHttpHeaderString

set my_ixHttpHeaderString1 [::IxLoad new ixHttpHeaderString]

$my_ixHttpHeaderString1 config \

-data

"Accept-Language: en-us"

$Activity_newClientActivity1 agent.headerList.appendItem -object $my_ixHttpHeaderString1

set my_ixHttpHeaderString2 [::IxLoad new ixHttpHeaderString]

$my_ixHttpHeaderString2 config \

-data

"Accept-Encoding: gzip, deflate"

$Activity_newClientActivity1 agent.headerList.appendItem -object $my_ixHttpHeaderString2

set my_ixHttpHeaderString3 [::IxLoad new ixHttpHeaderString]

$my_ixHttpHeaderString3 config \

-data

"User-Agent: Mozilla/4.0 (compatible;

MSIE 5.01; Windows NT 5.0)"

$Activity_newClientActivity1 agent.headerList.appendItem -object $my_ixHttpHeaderString3

$Activity_newClientActivity1 agent.profileList.clear

#################################################

# Network client network of NetTraffic HTTP client@client network

#################################################

set client_network [::IxLoad new ixNetworkGroup $chassisChain]

$client_network config \

-comment

"" \

-name

"client network" \

-macMappingMode

0\

-linkLayerOptions

0

$client_network globalPlugins.clear

set Filter [::IxLoad new ixNetFilterPlugin] # ixNet objects needs to be added in the list before they are configured! $client_network globalPlugins.appendItem -object $Filter

$Filter config \ -all -pppoecontrol -isis

false \ false \ false \

IxLoad Tcl API Programming Guide

89

API Overview

-name -auto -udp -tcp -mac -pppoenetwork -ip -icmp

"Filter" \ true \ "" \ "" \ "" \ false \ "" \ ""

set GratARP [::IxLoad new ixNetGratArpPlugin] # ixNet objects needs to be added in the list before they are configured! $client_network globalPlugins.appendItem -object $GratARP

$GratARP config \ -enabled -name

true \ "GratARP"

set TCP [::IxLoad new ixNetTCPPlugin] # ixNet objects needs to be added in the list before they are configured! $client_network globalPlugins.appendItem -object $TCP

$TCP config \ -tcp_bic -tcp_tw_recycle -tcp_retries2 -tcp_retries1 -tcp_keepalive_time -tcp_moderate_rcvbuf -tcp_rfc1337 -tcp_ipfrag_time -tcp_rto_max -tcp_vegas_alpha -tcp_ecn -tcp_westwood -tcp_rto_min -tcp_reordering -tcp_vegas_cong_avoid -tcp_keepalive_intvl -tcp_rmem_max -tcp_orphan_retries -tcp_max_tw_buckets -tcp_wmem_default -tcp_low_latency -tcp_rmem_min -tcp_adv_win_scale -tcp_wmem_min -tcp_port_min -tcp_stdurg -tcp_port_max -tcp_fin_timeout -tcp_no_metrics_save -tcp_dsack -tcp_mem_high

0\ true \ 15 \ 3\ 9\ 0\ false \ 30 \ 60000 \ 2\ false \ 0\ 1000 \ 3\ 0\ 7200 \ 262144 \ 0\ 180000 \ 4096 \ 0\ 4096 \ 2\ 4096 \ 1024 \ false \ 65535 \ 60 \ false \ true \ 49152 \

90

IxLoad Tcl API Programming Guide

API Overview

-tcp_frto -tcp_app_win -ip_no_pmtu_disc -tcp_window_scaling -tcp_max_orphans -tcp_mem_pressure -tcp_syn_retries -name -tcp_max_syn_backlog -tcp_mem_low -tcp_fack -tcp_retrans_collapse -tcp_rmem_default -tcp_keepalive_probes -tcp_abort_on_overflow -tcp_tw_reuse -tcp_wmem_max -tcp_vegas_gamma -tcp_synack_retries -tcp_timestamps -tcp_vegas_beta -tcp_sack -tcp_bic_fast_convergence -tcp_bic_low_window

0\ 31 \ false \ false \ 8192 \ 32768 \ 5\ "TCP" \ 1024 \ 24576 \ true \ true \ 4096 \ 75 \ false \ false \ 262144 \ 2\ 5\ true \ 6\ true \ 1\ 14

set DNS [::IxLoad new ixNetDnsPlugin] # ixNet objects needs to be added in the list before they are configured! $client_network globalPlugins.appendItem -object $DNS

$DNS config \ -domain -name -timeout

"" \ "DNS" \ 30000

$DNS hostList.clear

$DNS searchList.clear

$DNS nameServerList.clear

set Settings [::IxLoad new ixNetIxLoadSettingsPlugin] # ixNet objects needs to be added in the list before they are configured! $client_network globalPlugins.appendItem -object $Settings

$Settings config \ -teardownInterfaceWithUser -name -interfaceBehavior

false \ "Settings" \ 0

set Ethernet_1 [$client_network getL1Plugin]

set my_ixNetEthernetELMPlugin [::IxLoad new ixNetEthernetELMPlugin] $my_ixNetEthernetELMPlugin config \

IxLoad Tcl API Programming Guide

91

API Overview

-negotiationType -negotiateMasterSlave

"master" \ true

$Ethernet_1 config \ -advertise10Full -name -autoNegotiate -advertise100Half -advertise10Half -speed -advertise1000Full -advertise100Full -cardElm

true \ "Ethernet-1" \ true \ true \ true \ "k100FD" \ true \ true \ $my_ixNetEthernetELMPlugin

$Ethernet_1 childrenList.clear

set MAC_VLAN_1 [::IxLoad new ixNetL2EthernetPlugin] # ixNet objects needs to be added in the list before they are configured! $Ethernet_1 childrenList.appendItem -object $MAC_VLAN_1

$MAC_VLAN_1 config \ -name

"MAC/VLAN-1"

$MAC_VLAN_1 childrenList.clear

set IP_1 [::IxLoad new ixNetIpV4V6Plugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_1 childrenList.appendItem -object $IP_1

$IP_1 config \ -name

"IP-1"

$IP_1 childrenList.clear

$IP_1 extensionList.clear

$MAC_VLAN_1 extensionList.clear

$Ethernet_1 extensionList.clear

################################################# # Setting the ranges starting with the plugin on top of the stack ################################################# $IP_1 rangeList.clear

set IP_R1 [::IxLoad new ixNetIpV4V6Range] # ixNet objects needs to be added in the list before they are configured! $IP_1 rangeList.appendItem -object $IP_R1

$IP_R1 config \ -count -name -gatewayAddress

100 \ "IP-R1" \ "0.0.0.0" \

92

IxLoad Tcl API Programming Guide

API Overview

-enabled -autoMacGeneration -mss -incrementBy -prefix -gatewayIncrement -gatewayIncrementMode -generateStatistics -ipAddress -ipType

true \ true \ 1460 \ "0.0.0.1" \ 16 \ "0.0.0.0" \ "perSubnet" \ false \ "198.18.0.1" \ "IPv4"

set MAC_R1 [$IP_R1 getLowerRelatedRange "MacRange"]

$MAC_R1 config \ -count -name -enabled -mtu -mac -incrementBy

100 \ "MAC-R1" \ true \ 1500 \ "00:C6:12:00:01:00" \ "00:00:00:00:00:01"

set VLAN_R1 [$IP_R1 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \ -incrementStep -uniqueCount -name -innerIncrement -innerUniqueCount -enabled -innerFirstId -increment -priority -firstId -innerIncrementStep -idIncrMode -innerEnable -innerPriority

100 \ 4094 \ "VLAN-R1" \ 1\ 4094 \ false \ 1\ 1\ 0\ 1\ 1\ 1\ false \ 0

$HTTP_client_client_network config \ -enable -network

1\ $client_network

$HTTP_client_client_network traffic.config \

-name

"HTTP client"

$Client elementList.appendItem -object $HTTP_client_client_network

$TrafficFlow1 columnList.appendItem -object $Client

set DUT [::IxLoad new ixTrafficColumn] $DUT config \ -name

"DUT"

IxLoad Tcl API Programming Guide

93

API Overview

$DUT elementList.clear

$TrafficFlow1 columnList.appendItem -object $DUT

set Server [::IxLoad new ixTrafficColumn]

$Server config \

-name

"Server"

$Server elementList.clear

set HTTP_server_server_network [::IxLoad new ixNetTraffic]

#################################################

# Activity newServerActivity1 of NetTraffic HTTP server@server network

#################################################

set Activity_newServerActivity1 [$HTTP_server_server_network activ-

ityList.appendItem \

-protocolAndType

"HTTP Server" ]

set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]

$Activity_newServerActivity1 config \ -enable -name -timeline

1\ "newServerActivity1" \ $_Match_Longest_

$Activity_newServerActivity1 agent.config \

-vlanPriority

0\

-maxResponseDelay

0\

-uniqueID

2\

-enableEsm

0\

-certificate

"" \

-tos

0\

-enableMD5Checksum

false \

-httpPort

"80" \

-httpsPort

"443" \

-esm

1460 \

-enableTos

false \

-integrityCheckOption

"Custom MD5" \

-privateKey

"" \

-privateKeyPassword

"" \

-urlStatsCount

10 \

-tcpCloseOption

0\

-enableVlanPriority

0\

-docrootfile

"" \

-dhParams

"" \

-requestTimeout

300 \

-ServerCiphers

"DEFAULT" \

-acceptSslConnections

0\

-enablePerServerPerURLstat

0\

-enableDHsupport

0\

-minResponseDelay

0

94

IxLoad Tcl API Programming Guide

API Overview

$Activity_newServerActivity1 agent.webPageList.clear

set 200_OK [::IxLoad new ResponseHeader]

$200_OK config \

-mimeType

"text/plain" \

-expirationMode

0\

-code

"200" \

-name

"200_OK" \

-lastModifiedMode

1\

-lastModifiedIncrementEnable

false \

-lastModifiedDateTimeValue

"2005/02/02 21:55:04" \

-lastModifiedIncrementFor

1\

-expirationDateTimeValue

"2005/03/04 21:55:04" \

-expirationAfterRequestValue

3600 \

-expirationAfterLastModifiedValue

3600 \

-lastModifiedIncrementBy

5\

-description

"OK"

$200_OK responseList.clear

set my_PageObject [::IxLoad new PageObject]

$my_PageObject config \

-Md5Option

0\

-payloadSize

"1-1" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/1b.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject

set my_PageObject1 [::IxLoad new PageObject]

$my_PageObject1 config \

-Md5Option

0\

-payloadSize

"4096-4096" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/4k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject1

set my_PageObject2 [::IxLoad new PageObject]

$my_PageObject2 config \

-Md5Option

0\

-payloadSize

"8192-8192" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/8k.html" \

IxLoad Tcl API Programming Guide

95

API Overview

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject2

set my_PageObject3 [::IxLoad new PageObject]

$my_PageObject3 config \

-Md5Option

0\

-payloadSize

"16536-16536" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/16k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject3

set my_PageObject4 [::IxLoad new PageObject]

$my_PageObject4 config \

-Md5Option

0\

-payloadSize

"32768" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/32k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject4

set my_PageObject5 [::IxLoad new PageObject]

$my_PageObject5 config \

-Md5Option

0\

-payloadSize

"65536" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/64k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject5

set my_PageObject6 [::IxLoad new PageObject]

$my_PageObject6 config \

-Md5Option

0\

-payloadSize

"131072" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/128k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject6

set my_PageObject7 [::IxLoad new PageObject]

96

IxLoad Tcl API Programming Guide

API Overview

$my_PageObject7 config \ -Md5Option -payloadSize -customPayloadId -payloadType -payloadFile -page -response

0\ "262144" \ -1 \ "range" \ "<specify file>" \ "/256k.html" \ $200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject7

set my_PageObject8 [::IxLoad new PageObject]

$my_PageObject8 config \

-Md5Option

0\

-payloadSize

"524288" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/512k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject8

set my_PageObject9 [::IxLoad new PageObject]

$my_PageObject9 config \

-Md5Option

0\

-payloadSize

"1048576" \

-customPayloadId

-1 \

-payloadType

"range" \

-payloadFile

"<specify file>" \

-page

"/1024k.html" \

-response

$200_OK

$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject9

$Activity_newServerActivity1 agent.cookieList.clear

set UserCookie [::IxLoad new CookieObject]

$UserCookie config \

-mode

3\

-type

2\

-name

"UserCookie" \

-description

"Name of User"

$UserCookie cookieContentList.clear

set firstName [::IxLoad new ixCookieContent]

$firstName config \

-domain

"" \

-name

"firstName" \

-maxAge

"" \

-value

"Joe" \

-other

"" \

IxLoad Tcl API Programming Guide

97

API Overview

-path

""

$UserCookie cookieContentList.appendItem -object $firstName

set lastName [::IxLoad new ixCookieContent]

$lastName config \

-domain

"" \

-name

"lastName" \

-maxAge

"" \

-value

"Smith" \

-other

"" \

-path

""

$UserCookie cookieContentList.appendItem -object $lastName

$Activity_newServerActivity1 agent.cookieList.appendItem -object $UserCookie

set LoginCookie [::IxLoad new CookieObject]

$LoginCookie config \

-mode

2\

-type

2\

-name

"LoginCookie" \

-description

"Login name and password"

$LoginCookie cookieContentList.clear

set name [::IxLoad new ixCookieContent] $name config \ -domain -name -maxAge -value -other -path

"" \ "name" \ "" \ "joesmith" \ "" \ ""

$LoginCookie cookieContentList.appendItem -object $name

set password [::IxLoad new ixCookieContent]

$password config \

-domain

"" \

-name

"password" \

-maxAge

"" \

-value

"foobar" \

-other

"" \

-path

""

$LoginCookie cookieContentList.appendItem -object $password

$Activity_newServerActivity1 agent.cookieList.appendItem -object $LoginCookie

$Activity_newServerActivity1 agent.customPayloadList.clear

set AsciiCustomPayload [::IxLoad new CustomPayloadObject]

98

IxLoad Tcl API Programming Guide

API Overview

$AsciiCustomPayload config \ -repeat -name -asciiPayloadValue
\ -payloadmode -offset -hexPayloadValue -payloadPosition -id

false \ "AsciiCustomPayload" \ "Ixia-Ixload-Http-Server-Custom-Payload"
0\ 1\ "" \ "Start With" \ 0

$Activity_newServerActivity1 agent.customPayloadList.appendItem -object $AsciiCustomPayload

set HexCustomPayload [::IxLoad new CustomPayloadObject] $HexCustomPayload config \

-repeat -name

0\ "HexCustomPayload" \

-asciiPayloadValue -payloadmode

"" \ 1\

-offset -hexPayloadValue

1\ "49 78 69 61 2d 49 78 6c 6f 61 64 2d 48

74 74 70 2d 53 65 72 76 65 72 2d 43 75 73 74 6f 6d 2d 50 61 79 6c 6f 61 64" \

-payloadPosition

"Start With" \

-id

1

$Activity_newServerActivity1 agent.customPayloadList.appendItem -object $HexCustomPayload

$Activity_newServerActivity1 agent.responseHeaderList.clear

set 200_OK1 [::IxLoad new ResponseHeader]

$200_OK1 config \

-mimeType

"text/plain" \

-expirationMode

0\

-code

"200" \

-name

"200_OK" \

-lastModifiedMode

1\

-lastModifiedIncrementEnable

false \

-lastModifiedDateTimeValue

"2005/02/02 21:55:04" \

-lastModifiedIncrementFor

1\

-expirationDateTimeValue

"2005/03/04 21:55:04" \

-expirationAfterRequestValue

3600 \

-expirationAfterLastModifiedValue

3600 \

-lastModifiedIncrementBy

5\

-description

"OK"

$200_OK1 responseList.clear

$Activity_newServerActivity1 agent.responseHeaderList.appendItem -object $200_OK1

set 404_PageNotFound [::IxLoad new ResponseHeader]

IxLoad Tcl API Programming Guide

99

API Overview

$404_PageNotFound config \ -mimeType -expirationMode -code -name -lastModifiedMode -lastModifiedIncrementEnable -lastModifiedDateTimeValue -lastModifiedIncrementFor -expirationDateTimeValue -expirationAfterRequestValue -expirationAfterLastModifiedValue -lastModifiedIncrementBy -description

"text/plain" \ 0\ "404" \ "404_PageNotFound" \ 1\ false \ "2005/02/02 21:55:04" \ 1\ "2005/03/04 21:55:04" \ 3600 \ 3600 \ 5\ "Page not found"

$404_PageNotFound responseList.clear

$Activity_newServerActivity1 agent.responseHeaderList.appendItem -object $404_ PageNotFound

#################################################

# Network server network of NetTraffic HTTP server@server network

#################################################

set server_network [::IxLoad new ixNetworkGroup $chassisChain]

$server_network config \

-comment

"" \

-name

"server network" \

-macMappingMode

0\

-linkLayerOptions

0

$server_network globalPlugins.clear

set Filter_1 [::IxLoad new ixNetFilterPlugin] # ixNet objects needs to be added in the list before they are configured! $server_network globalPlugins.appendItem -object $Filter_1

$Filter_1 config \ -all -pppoecontrol -isis -name -auto -udp -tcp -mac -pppoenetwork -ip -icmp

false \ false \ false \ "Filter-1" \ true \ "" \ "" \ "" \ false \ "" \ ""

set GratARP_1 [::IxLoad new ixNetGratArpPlugin] # ixNet objects needs to be added in the list before they are configured! $server_network globalPlugins.appendItem -object $GratARP_1

100

IxLoad Tcl API Programming Guide

API Overview

$GratARP_1 config \ -enabled -name

true \ "GratARP-1"

set TCP_1 [::IxLoad new ixNetTCPPlugin] # ixNet objects needs to be added in the list before they are configured! $server_network globalPlugins.appendItem -object $TCP_1

$TCP_1 config \ -tcp_bic -tcp_tw_recycle -tcp_retries2 -tcp_retries1 -tcp_keepalive_time -tcp_moderate_rcvbuf -tcp_rfc1337 -tcp_ipfrag_time -tcp_rto_max -tcp_vegas_alpha -tcp_ecn -tcp_westwood -tcp_rto_min -tcp_reordering -tcp_vegas_cong_avoid -tcp_keepalive_intvl -tcp_rmem_max -tcp_orphan_retries -tcp_max_tw_buckets -tcp_wmem_default -tcp_low_latency -tcp_rmem_min -tcp_adv_win_scale -tcp_wmem_min -tcp_port_min -tcp_stdurg -tcp_port_max -tcp_fin_timeout -tcp_no_metrics_save -tcp_dsack -tcp_mem_high -tcp_frto -tcp_app_win -ip_no_pmtu_disc -tcp_window_scaling -tcp_max_orphans -tcp_mem_pressure -tcp_syn_retries -name -tcp_max_syn_backlog -tcp_mem_low -tcp_fack -tcp_retrans_collapse -tcp_rmem_default

0\ true \ 15 \ 3\ 9\ 0\ false \ 30 \ 60000 \ 2\ false \ 0\ 1000 \ 3\ 0\ 7200 \ 262144 \ 0\ 180000 \ 4096 \ 0\ 4096 \ 2\ 4096 \ 1024 \ false \ 65535 \ 60 \ false \ true \ 49152 \ 0\ 31 \ false \ false \ 8192 \ 32768 \ 5\ "TCP-1" \ 1024 \ 24576 \ true \ true \ 4096 \

IxLoad Tcl API Programming Guide

101

API Overview

-tcp_keepalive_probes -tcp_abort_on_overflow -tcp_tw_reuse -tcp_wmem_max -tcp_vegas_gamma -tcp_synack_retries -tcp_timestamps -tcp_vegas_beta -tcp_sack -tcp_bic_fast_convergence -tcp_bic_low_window

75 \ false \ false \ 262144 \ 2\ 5\ true \ 6\ true \ 1\ 14

set DNS_1 [::IxLoad new ixNetDnsPlugin] # ixNet objects needs to be added in the list before they are configured! $server_network globalPlugins.appendItem -object $DNS_1

$DNS_1 config \ -domain -name -timeout

"" \ "DNS-1" \ 30000

$DNS_1 hostList.clear

$DNS_1 searchList.clear

$DNS_1 nameServerList.clear

set Settings_1 [::IxLoad new ixNetIxLoadSettingsPlugin] # ixNet objects needs to be added in the list before they are configured! $server_network globalPlugins.appendItem -object $Settings_1

$Settings_1 config \ -teardownInterfaceWithUser -name -interfaceBehavior

false \ "Settings-1" \ 0

set Ethernet_2 [$server_network getL1Plugin]

set my_ixNetEthernetELMPlugin1 [::IxLoad new ixNetEthernetELMPlugin]

$my_ixNetEthernetELMPlugin1 config \

-negotiationType

"master" \

-negotiateMasterSlave

true

$Ethernet_2 config \ -advertise10Full -name -autoNegotiate -advertise100Half -advertise10Half -speed -advertise1000Full -advertise100Full -cardElm

true \ "Ethernet-2" \ true \ true \ true \ "k100FD" \ true \ true \ $my_ixNetEthernetELMPlugin1

102

IxLoad Tcl API Programming Guide

API Overview

$Ethernet_2 childrenList.clear

set MAC_VLAN_2 [::IxLoad new ixNetL2EthernetPlugin] # ixNet objects needs to be added in the list before they are configured! $Ethernet_2 childrenList.appendItem -object $MAC_VLAN_2

$MAC_VLAN_2 config \ -name

"MAC/VLAN-2"

$MAC_VLAN_2 childrenList.clear

set IP_2 [::IxLoad new ixNetIpV4V6Plugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_2 childrenList.appendItem -object $IP_2

$IP_2 config \ -name

"IP-2"

$IP_2 childrenList.clear

$IP_2 extensionList.clear

$MAC_VLAN_2 extensionList.clear

$Ethernet_2 extensionList.clear

################################################# # Setting the ranges starting with the plugin on top of the stack ################################################# $IP_2 rangeList.clear

set IP_R2 [::IxLoad new ixNetIpV4V6Range] # ixNet objects needs to be added in the list before they are configured! $IP_2 rangeList.appendItem -object $IP_R2

$IP_R2 config \ -count -name -gatewayAddress -enabled -autoMacGeneration -mss -incrementBy -prefix -gatewayIncrement -gatewayIncrementMode -generateStatistics -ipAddress -ipType

1\ "IP-R2" \ "0.0.0.0" \ true \ true \ 1460 \ "0.0.0.1" \ 16 \ "0.0.0.0" \ "perSubnet" \ false \ "198.18.1.1" \ "IPv4"

set MAC_R2 [$IP_R2 getLowerRelatedRange "MacRange"]

IxLoad Tcl API Programming Guide

103

API Overview

$MAC_R2 config \ -count -name -enabled -mtu -mac -incrementBy

1\ "MAC-R2" \ true \ 1500 \ "00:C6:12:01:01:00" \ "00:00:00:00:00:01"

set VLAN_R2 [$IP_R2 getLowerRelatedRange "VlanIdRange"]

$VLAN_R2 config \ -incrementStep -uniqueCount -name -innerIncrement -innerUniqueCount -enabled -innerFirstId -increment -priority -firstId -innerIncrementStep -idIncrMode -innerEnable -innerPriority

1\ 4094 \ "VLAN-R1" \ 1\ 4094 \ false \ 1\ 1\ 0\ 1\ 1\ 1\ false \ 0

$HTTP_server_server_network config \ -enable -network

1\ $server_network

$HTTP_server_server_network traffic.config \

-name

"HTTP server"

$Server elementList.appendItem -object $HTTP_server_server_network

$TrafficFlow1 columnList.appendItem -object $Server

$TrafficFlow1 links.clear

$Test1 scenarioList.appendItem -object $TrafficFlow1

#################################################

# Destination newServerActivity1 for newClientActivity1

#################################################

set destination [$HTTP_client_client_network getDestinationForActivity "newCli-

entActivity1" "HTTP server_newServerActivity1"]

$destination config \

-portMapPolicy

"portMesh"

################################################# # Session Specific Settings ################################################# set my_ixNetMacSessionData [$Test1 getSessionSpecificData "L2EthernetPlugin"]

104

IxLoad Tcl API Programming Guide

API Overview

$my_ixNetMacSessionData config \

-duplicateCheckingScope

2

set my_ixNetIpSessionData [$Test1 getSessionSpecificData "IpV4V6Plugin"]

$my_ixNetIpSessionData config \

-duplicateCheckingScope

2

################################################# # Create the test controller to run the test ################################################# set testController [::IxLoad new ixTestController -outputDir True]

$testController setResultDir "RESULTS/simpleHTTP" set NS statCollectorUtils

set test_server_handle [$testController getTestServerHandle] ${NS}::Initialize -testServerHandle $test_server_handle

${NS}::ClearStats $Test1 clearGridStats

set HTTP_Client_Per_URL_StatList { \ {"HTTP Client Per URL" "HTTP Aborted After Request" "kMax"} \ {"HTTP Client Per URL" "HTTP Aborted Before Request" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (400)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (401)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (403)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (407)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (408)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (4xx other)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (4xx)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (505)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (5xx other)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (5xx)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Aborted)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Bad Header)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Read)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Timeout)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Failed (Write)" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Sent" "kMax"} \ {"HTTP Client Per URL" "HTTP Requests Successful" "kMax"} \ {"HTTP Client Per URL" "HTTP Responses Received With Match" "kMax"} \ {"HTTP Client Per URL" "HTTP Responses Received Without Match" "kMax"} \ }

set HTTP_Client_StatList { \ {"HTTP Client" "Client Hello Sent" "kMax"} \ {"HTTP Client" "HTTP Aborted After Request" "kMax"} \ {"HTTP Client" "HTTP Aborted Before Request" "kMax"} \ {"HTTP Client" "HTTP Bytes" "kMax"} \ {"HTTP Client" "HTTP Bytes Received" "kMax"} \

IxLoad Tcl API Programming Guide

105

API Overview
{"HTTP Client" "HTTP Bytes Sent" "kMax"} \ {"HTTP Client" "HTTP Concurrent Connections" "kMax"} \ {"HTTP Client" "HTTP Connect Time (us)" "kAverageRate"} \ {"HTTP Client" "HTTP Connection Attempts" "kMax"} \ {"HTTP Client" "HTTP Connections" "kMax"} \ {"HTTP Client" "HTTP Content Bytes Received" "kMax"} \ {"HTTP Client" "HTTP Content Bytes Sent" "kMax"} \ {"HTTP Client" "HTTP Cookie headers Rejected - (Memory Overflow)" "kMax"} \ {"HTTP Client" "HTTP Cookies Received" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Cookiejar Overflow)" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Domain Match Failed)" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Path Match Failed)" "kMax"} \ {"HTTP Client" "HTTP Cookies Rejected - (Probabilistic Reject)" "kMax"} \ {"HTTP Client" "HTTP Cookies Sent" "kMax"} \ {"HTTP Client" "HTTP Requests Failed" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (400)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (401)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (403)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (407)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (408)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (4xx other)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (4xx)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (505)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (5xx other)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (5xx)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Aborted)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Bad Header)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Read)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Timeout)" "kMax"} \ {"HTTP Client" "HTTP Requests Failed (Write)" "kMax"} \ {"HTTP Client" "HTTP Requests Sent" "kMax"} \ {"HTTP Client" "HTTP Requests Successful" "kMax"} \ {"HTTP Client" "HTTP Session Timeouts (408)" "kMax"} \ {"HTTP Client" "HTTP Sessions Rejected (503)" "kMax"} \ {"HTTP Client" "HTTP Simulated Users" "kSum"} \ {"HTTP Client" "HTTP Time To First Byte (us)" "kAverageRate"} \ {"HTTP Client" "HTTP Time To Last Byte (us)" "kAverageRate"} \ {"HTTP Client" "HTTP Transactions" "kMax"} \ {"HTTP Client" "HTTP Transactions Active" "kMax"} \ {"HTTP Client" "HTTP Users Active" "kMax"} \ {"HTTP Client" "SSL Alerts Received" "kMax"} \ {"HTTP Client" "SSL Alerts Received (access_denied)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (bad_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (bad_record_mac)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (certificate_expired)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (certificate_revoked)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (certificate_unknown)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (close_notify)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decode_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decompression_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (decrypt_error)" "kMax"} \

106

IxLoad Tcl API Programming Guide

API Overview
{"HTTP Client" "SSL Alerts Received (decryption_failed)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (export_restriction)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (handshake_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (illegal_parameter)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (insufficient_security)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (internal_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (no_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (no_renegotiation)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (protocol_version)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (record_overflow)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (unexpected_message)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (unknown_ca)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (unsupported_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Received (user_canceled)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (access_denied)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (bad_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (bad_record_mac)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (certificate_expired)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (certificate_revoked)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (certificate_unknown)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (close_notify)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decode_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decompression_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decrypt_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (decryption_failed)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (export_restriction)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (handshake_failure)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (illegal_parameter)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (insufficient_security)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (internal_error)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (no_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (no_renegotiation)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (protocol_version)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (record_overflow)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (unexpected_message)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (unknown_ca)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (unsupported_certificate)" "kMax"} \ {"HTTP Client" "SSL Alerts Sent (user_canceled)" "kMax"} \ {"HTTP Client" "SSL Bytes Received" "kMax"} \ {"HTTP Client" "SSL Bytes Sent" "kMax"} \ {"HTTP Client" "SSL Concurrent Sessions" "kMax"} \ {"HTTP Client" "SSL Errors Received" "kMax"} \ {"HTTP Client" "SSL Errors Received (bad certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Received (no certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Received (no cipher)" "kMax"} \ {"HTTP Client" "SSL Errors Received (undefined error)" "kMax"} \ {"HTTP Client" "SSL Errors Received (unsupported certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Sent" "kMax"} \ {"HTTP Client" "SSL Errors Sent (bad certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (no certificate)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (no cipher)" "kMax"} \ {"HTTP Client" "SSL Errors Sent (undefined error)" "kMax"} \

IxLoad Tcl API Programming Guide

107

API Overview
{"HTTP Client" "SSL Errors Sent (unsupported certificate)" "kMax"} \ {"HTTP Client" "SSL Negotiation Finished Successfuly" "kMax"} \ {"HTTP Client" "SSL Session Reuse Failed" "kMax"} \ {"HTTP Client" "SSL Session Reuse Success" "kMax"} \ {"HTTP Client" "SSL Throughput Bytes" "kMax"} \ {"HTTP Client" "Server Hello Received" "kMax"} \ {"HTTP Client" "TCP Accept Queue Entries" "kMax"} \ {"HTTP Client" "TCP Connection Requests Failed" "kMax"} \ {"HTTP Client" "TCP Connections Established" "kMax"} \ {"HTTP Client" "TCP Connections in CLOSE STATE" "kMax"} \ {"HTTP Client" "TCP Connections in CLOSE-WAIT State" "kMax"} \ {"HTTP Client" "TCP Connections in CLOSING State" "kMax"} \ {"HTTP Client" "TCP Connections in ESTABLISHED State" "kMax"} \ {"HTTP Client" "TCP Connections in FIN-WAIT-1 State" "kMax"} \ {"HTTP Client" "TCP Connections in FIN-WAIT-2 State" "kMax"} \ {"HTTP Client" "TCP Connections in LAST-ACK State" "kMax"} \ {"HTTP Client" "TCP Connections in LISTENING State" "kMax"} \ {"HTTP Client" "TCP Connections in SYN-RECEIVED State" "kMax"} \ {"HTTP Client" "TCP Connections in SYN-SENT State" "kMax"} \ {"HTTP Client" "TCP Connections in TIME-WAIT State" "kMax"} \ {"HTTP Client" "TCP FIN Received" "kMax"} \ {"HTTP Client" "TCP FIN Sent" "kMax"} \ {"HTTP Client" "TCP FIN-ACK Received" "kMax"} \ {"HTTP Client" "TCP FIN-ACK Sent" "kMax"} \ {"HTTP Client" "TCP Listen Queue Drops" "kMax"} \ {"HTTP Client" "TCP Resets Received" "kMax"} \ {"HTTP Client" "TCP Resets Sent" "kMax"} \ {"HTTP Client" "TCP Retries" "kMax"} \ {"HTTP Client" "TCP SYN Failed" "kMax"} \ {"HTTP Client" "TCP SYN Sent" "kMax"} \ {"HTTP Client" "TCP SYN-ACK Sent" "kMax"} \ {"HTTP Client" "TCP SYN_SYN-ACK Received" "kMax"} \ {"HTTP Client" "TCP Timeouts" "kMax"} \ }
set HTTP_Server_Per_URL_StatList { \ {"HTTP Server Per URL" "HTTP Requests Failed" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Failed (50x)" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Failed (Write Error)" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Received" "kMax"} \ {"HTTP Server Per URL" "HTTP Requests Successful" "kMax"} \ }
set HTTP_Server_StatList { \ {"HTTP Server" "Client Hello Received" "kMax"} \ {"HTTP Server" "HTTP Bytes Received" "kMax"} \ {"HTTP Server" "HTTP Bytes Sent" "kMax"} \ {"HTTP Server" "HTTP Content Bytes Received" "kMax"} \ {"HTTP Server" "HTTP Content Bytes Sent" "kMax"} \ {"HTTP Server" "HTTP Cookies Received" "kMax"} \ {"HTTP Server" "HTTP Cookies Received With Matching ServerID" "kMax"} \ {"HTTP Server" "HTTP Cookies Received With Non-matching ServerID" "kMax"} \

108

IxLoad Tcl API Programming Guide

API Overview
{"HTTP Server" "HTTP Cookies Sent" "kMax"} \ {"HTTP Server" "HTTP Requests Failed" "kMax"} \ {"HTTP Server" "HTTP Requests Failed (404)" "kMax"} \ {"HTTP Server" "HTTP Requests Failed (50x)" "kMax"} \ {"HTTP Server" "HTTP Requests Failed (Write Error)" "kMax"} \ {"HTTP Server" "HTTP Requests Received" "kMax"} \ {"HTTP Server" "HTTP Requests Successful" "kMax"} \ {"HTTP Server" "HTTP Session Timeouts (408)" "kMax"} \ {"HTTP Server" "HTTP Sessions Rejected (503)" "kMax"} \ {"HTTP Server" "HTTP Transactions Active" "kMax"} \ {"HTTP Server" "SSL Alerts Received" "kMax"} \ {"HTTP Server" "SSL Alerts Received (access_denied)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (bad_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (bad_record_mac)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (certificate_expired)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (certificate_revoked)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (certificate_unknown)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (close_notify)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decode_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decompression_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decrypt_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (decryption_failed)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (export_restriction)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (handshake_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (illegal_parameter)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (insufficient_security)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (internal_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (no_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (no_renegotiation)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (protocol_version)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (record_overflow)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (unexpected_message)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (unknown_ca)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (unsupported_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Received (user_canceled)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (access_denied)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (bad_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (bad_record_mac)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (certificate_expired)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (certificate_revoked)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (certificate_unknown)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (close_notify)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decode_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decompression_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decrypt_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (decryption_failed)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (export_restriction)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (handshake_failure)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (illegal_parameter)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (insufficient_security)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (internal_error)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (no_certificate)" "kMax"} \

IxLoad Tcl API Programming Guide

109

API Overview
{"HTTP Server" "SSL Alerts Sent (no_renegotiation)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (protocol_version)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (record_overflow)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (unexpected_message)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (unknown_ca)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (unsupported_certificate)" "kMax"} \ {"HTTP Server" "SSL Alerts Sent (user_canceled)" "kMax"} \ {"HTTP Server" "SSL Bytes Received" "kMax"} \ {"HTTP Server" "SSL Bytes Sent" "kMax"} \ {"HTTP Server" "SSL Concurrent Sessions" "kMax"} \ {"HTTP Server" "SSL Errors Received" "kMax"} \ {"HTTP Server" "SSL Errors Received (bad certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Received (no certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Received (no cipher)" "kMax"} \ {"HTTP Server" "SSL Errors Received (undefined error)" "kMax"} \ {"HTTP Server" "SSL Errors Received (unsupported certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Sent" "kMax"} \ {"HTTP Server" "SSL Errors Sent (bad certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (no certificate)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (no cipher)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (undefined error)" "kMax"} \ {"HTTP Server" "SSL Errors Sent (unsupported certificate)" "kMax"} \ {"HTTP Server" "SSL Negotiation Finished Successfuly" "kMax"} \ {"HTTP Server" "SSL Session Reuse Failed" "kMax"} \ {"HTTP Server" "SSL Session Reuse Success" "kMax"} \ {"HTTP Server" "SSL Throughput Bytes" "kMax"} \ {"HTTP Server" "Server Hello Sent" "kMax"} \ {"HTTP Server" "TCP Accept Queue Entries" "kMax"} \ {"HTTP Server" "TCP Connection Requests Failed" "kMax"} \ {"HTTP Server" "TCP Connections Established" "kMax"} \ {"HTTP Server" "TCP Connections in CLOSE STATE" "kMax"} \ {"HTTP Server" "TCP Connections in CLOSE-WAIT State" "kMax"} \ {"HTTP Server" "TCP Connections in CLOSING State" "kMax"} \ {"HTTP Server" "TCP Connections in ESTABLISHED State" "kMax"} \ {"HTTP Server" "TCP Connections in FIN-WAIT-1 State" "kMax"} \ {"HTTP Server" "TCP Connections in FIN-WAIT-2 State" "kMax"} \ {"HTTP Server" "TCP Connections in LAST-ACK State" "kMax"} \ {"HTTP Server" "TCP Connections in LISTENING State" "kMax"} \ {"HTTP Server" "TCP Connections in SYN-RECEIVED State" "kMax"} \ {"HTTP Server" "TCP Connections in SYN-SENT State" "kMax"} \ {"HTTP Server" "TCP Connections in TIME-WAIT State" "kMax"} \ {"HTTP Server" "TCP FIN Received" "kMax"} \ {"HTTP Server" "TCP FIN Sent" "kMax"} \ {"HTTP Server" "TCP FIN-ACK Received" "kMax"} \ {"HTTP Server" "TCP FIN-ACK Sent" "kMax"} \ {"HTTP Server" "TCP Listen Queue Drops" "kMax"} \ {"HTTP Server" "TCP Resets Received" "kMax"} \ {"HTTP Server" "TCP Resets Sent" "kMax"} \ {"HTTP Server" "TCP Retries" "kMax"} \ {"HTTP Server" "TCP SYN Failed" "kMax"} \ {"HTTP Server" "TCP SYN Sent" "kMax"} \ {"HTTP Server" "TCP SYN-ACK Sent" "kMax"} \ {"HTTP Server" "TCP SYN_SYN-ACK Received" "kMax"} \

110

IxLoad Tcl API Programming Guide

API Overview

{"HTTP Server" "TCP Timeouts" "kMax"} \ }

set statList [concat \ $HTTP_Client_Per_URL_StatList \ $HTTP_Client_StatList \ $HTTP_Server_Per_URL_StatList \ $HTTP_Server_StatList \ ]

set count 1

foreach statItem $statList {

set caption

[format "Watch_Stat_%s" $count]

set statSourceType [lindex $statItem 0]

set statName

[lindex $statItem 1]

set aggregationType [lindex $statItem 2]

${NS}::AddStat \ -caption -statSourceType -statName -aggregationType -filterList

$caption \ $statSourceType \ $statName \ $aggregationType \ {}

incr count }

proc ::my_stat_collector_command {args} { puts "=====================================" puts "INCOMING STAT RECORD >>> $args" puts "Len = [llength $args]" puts [lindex $args 0] puts [lindex $args 1] puts "=====================================" } ${NS}::StartCollector -command ::my_stat_collector_command $testController run $Test1

vwait ::ixTestControllerMonitor puts $::ixTestControllerMonitor

${NS}::StopCollector

################################################# # Cleanup ################################################# # Release config is only strictly necessary if enableReleaseConfigAfterRun is 0. $testController releaseConfigWaitFinish

::IxLoad delete $chassisChain ::IxLoad delete $Test1 ::IxLoad delete $my_ixViewOptions ::IxLoad delete $TrafficFlow1

IxLoad Tcl API Programming Guide

111

API Overview
::IxLoad delete $Client ::IxLoad delete $HTTP_client_client_network ::IxLoad delete $Activity_newClientActivity1 ::IxLoad delete $Timeline1 ::IxLoad delete $my_ixHttpAction ::IxLoad delete $my_ixHttpHeaderString ::IxLoad delete $my_ixHttpHeaderString1 ::IxLoad delete $my_ixHttpHeaderString2 ::IxLoad delete $my_ixHttpHeaderString3 ::IxLoad delete $client_network ::IxLoad delete $Filter ::IxLoad delete $GratARP ::IxLoad delete $TCP ::IxLoad delete $DNS ::IxLoad delete $Settings ::IxLoad delete $Ethernet_1 ::IxLoad delete $my_ixNetEthernetELMPlugin ::IxLoad delete $MAC_VLAN_1 ::IxLoad delete $IP_1 ::IxLoad delete $IP_R1 ::IxLoad delete $MAC_R1 ::IxLoad delete $VLAN_R1 ::IxLoad delete $DUT ::IxLoad delete $Server ::IxLoad delete $HTTP_server_server_network ::IxLoad delete $Activity_newServerActivity1 ::IxLoad delete $_Match_Longest_ ::IxLoad delete $my_PageObject ::IxLoad delete $200_OK ::IxLoad delete $my_PageObject1 ::IxLoad delete $my_PageObject2 ::IxLoad delete $my_PageObject3 ::IxLoad delete $my_PageObject4 ::IxLoad delete $my_PageObject5 ::IxLoad delete $my_PageObject6 ::IxLoad delete $my_PageObject7 ::IxLoad delete $my_PageObject8 ::IxLoad delete $my_PageObject9 ::IxLoad delete $UserCookie ::IxLoad delete $firstName ::IxLoad delete $lastName ::IxLoad delete $LoginCookie ::IxLoad delete $name ::IxLoad delete $password ::IxLoad delete $AsciiCustomPayload ::IxLoad delete $HexCustomPayload ::IxLoad delete $200_OK1 ::IxLoad delete $404_PageNotFound ::IxLoad delete $server_network ::IxLoad delete $Filter_1 ::IxLoad delete $GratARP_1 ::IxLoad delete $TCP_1 ::IxLoad delete $DNS_1

112

IxLoad Tcl API Programming Guide

::IxLoad delete $Settings_1 ::IxLoad delete $Ethernet_2 ::IxLoad delete $my_ixNetEthernetELMPlugin1 ::IxLoad delete $MAC_VLAN_2 ::IxLoad delete $IP_2 ::IxLoad delete $IP_R2 ::IxLoad delete $MAC_R2 ::IxLoad delete $VLAN_R2 ::IxLoad delete $destination ::IxLoad delete $my_ixNetMacSessionData ::IxLoad delete $my_ixNetIpSessionData ::IxLoad delete $testController
################################################# # Disconnect / Release application lock ################################################# }] { puts $errorInfo }
::IxLoad disconnect

API Overview

IxLoad Tcl API Programming Guide

113

This page intentionally left blank.

114

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
This section describes the commands used to create the test infrastructure.

::IxLoad
::IxLoad-Top level IxLoad utility.
SYNOPSIS
set object [::IxLoad new ixObject options]
DESCRIPTION
The ixLoad command is the means by which other top level objects are created. Its new subcommand is documented in each of the created objects' commands. In addition, the connect and disconnect commands are used to connect to a remote server when running from a non-Windows client.
Although the connect operation is not needed for Windows clients, the disconnect operation is required. It is best to always use the following structure:
::IxLoad connect <server> catch { ... remainder of program ... } connectResults ::IxLoad disconnect
When operating on a Windows client, you can use localhost as a convenient placeholder for <server> .
When using a Unix host to run IxLoad Tcl API programs, the Windows-based host referred to in the connect subcommand must have the following software installed:
l The Tcl run-time environment from the IxOS installation. l The IxLoad client component from the IxLoad client installation.
SUBCOMMANDS ::IxLoad connect server (port)

IxLoad Tcl API Programming Guide

115

IxLoad Tcl API Commands
On non-Windows client, connect to a remote IxTcl server process on server. (port) is an optional argument that forces the command to connect on a specific port number. If you do not supply a port number, the command selects a random port above 10,000. This command has no effect on Windows clients.
::IxLoad disconnect
Disconnect from the last remote server used in a connect subcommand. This statement must be executed before exiting any IxLoad Tcl script.
::IxLoad leval command
Evaluates the command in the context of IxLoad. When running on a Windows system, this evaluates locally. When run on a Unix system, it is evaluated on the target system.
::IxLoad retrieveFile path
This subcommand is intended to be used by a Unix/Linux client to retrieve files from a Windows host. The Windows host that is the target of this subcommand is the host that the Unix/Linux client connected to in its most recent connect subcommand. retrieveFile returns the contents of the file as a string.
::IxLoad retrieveFileCopy sourcePath destPath
This subcommand is intended to be used by a Unix/Linux client to retrieve files from a Windows host. retrieveFileCopy copies a file from the Windows host, and creates (or overwrites) it on the Unix/Linux host. The Windows host that is the target of this subcommand is the host that the Unix/Linux client connected to in its most recent connect subcommand. sourcePath is the file name and path on the Windows host. destPath is the file name and path on the Unix/Linux host.
::IxLoad retrieveResults path
This subcommand is intended to be used by a Unix/Linux client to retrieve .csv files from a Windows host. retrieveResults tracks the path of the windows files internally, fetches the files, and places them in the unix machine; in the folder mentioned along with the retrieveResults subcommand. The Windows host that is the target of this subcommand is the host that the Unix/Linux client connected to in its most recent connect subcommand. path is the folder name and path on the Unix/Linux host.
puts "*****UnixResultDir = $UnixResultDir" #::IxLoad retrieveResults $::IxLoadPrivate::SimpleSettings::RESULTDIR ::IxLoad retrieveResults $UnixResultDir

116

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
::IxLoad sendFileCopy sourcePath destPath
This subcommand is intended to be used by a Unix/Linux client to send files to a Windows host for use in an IxLoad test. For example, you can use this subcommand to send files such as HTTP server pages and FTP server files. The Windows host, which is the target of this subcommand, is the host that the Unix/Linux client connected to in its most recent connect subcommand. sourcePath is the file name and path on the Unix/Linux host. destPath is the file name and path on the Windows host.
OPTIONS
None.
EXAMPLE
See above.
ixChassisChain
ixChassisChain-Builds a set of Ixia chassis.
SYNOPSIS
set chassisChain [::IxLoad new ixChassisChain] $chassisChain subcommand options...
DESCRIPTION
The ixChassisChain command is used to construct a chain of Ixia chassis, whose ports may be used in the ixNetworkGroup command for both client and server networks. Chassis are assigned chassis IDs starting at 1; these are used in the network commands to define the chassis associated with the port.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.

IxLoad Tcl API Programming Guide

117

IxLoad Tcl API Commands

addChassis chassisName
Adds a new chassis to the chassis chain. chassisName is the IP address or host name of a chassis. Each new chassis is assigned a c, starting at 1, which must be used to identify ports on that chassis.
changeCardsInterfaceMode
Changes the interface mode on PerfectStorm and Lava/XM cards. To use this method, pass the hostname or IP address of the chassis, the card number that you want to change the interface mode on, and the mode. The mode can be:

PerfectStorm 1G, 10G, or 40G

Lava

SingleMode or DualMode

XM

100G or 3x40GMode

To change multiple cards at once, separate the card numbers separated with commas. Example: $chassisChain changeCardsInterfaceMode 10.20.83.90 1,2 40G Call this method only after the testController object has been created, and only on ports that are not already assigned to the test. After the card interface mode is changed, you need to add the ports to the test. If you use this method on a port in a configured test, the test configuration will be released.
deleteChassisByName chassisName
Deletes the chassis whose name is chassisName from the chassis chain. All other chassis IDs remain unaffected.
getChassisNames
Returns a list of all of the chassis names, ordered by their chassisIDs.
getLoginName
Returns the user's login name.
isValidChassisName chassisName
Checks to see whether chassisName is a valid IP address or host name. True is returned if the name is valid and false otherwise.
refresh
Refreshes all of the chassis in the chassis chain-retrieving current card and port configuration.

118

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

refreshChassis chassisName
Refreshes the chassis whose name is chassisName-retrieving current card and port configuration.

setLoginName name
Sets the user's login name to name. If this call is not made, then the name of the chassis is used when port ownership is taken.

OPTIONS
None.

EXAMPLE

#set chassisChain [::IxLoad new ixChassisChain] #$chassisChain addChassis $chassisName ################################################## Build chassis chain#################################################

set chassisChain [::IxLoad new ixChassisChain] $chassisChain addChassis 10.205.29.101

set client_network [::IxLoad new ixNetworkGroup $chassisChain]

$client_network config \

-comment

"" \

-name

"client network" \

-emulatedRouterSubnetIPv6

"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0" \

-linkLayerOptions

0\

-ipSourcePortFrom

1024 \

-emulatedRouterGatewayIPv6

"::" \

-cardType

"ALM1000T8-1GB" \

-emulatedRouterGateway

"0.0.0.0" \

-ipSourcePortTo

65535 \

-emulatedRouterSubnet

"255.255.255.0" \

-macMappingMode

0\

-dnsParameters

$my_ixDns \

-tcpParameters

$my_ixTcpParameters \

-impairment

$my_ixImpairment \

-arpSettings

$my_ixArpSettings

$client_network portList.appendItem \ -chassisId 1 \ -cardId 3 \ -portId 7

SEE ALSO
ixNetworkGroup (see "ixNetworkGroup")

IxLoad Tcl API Programming Guide

119

IxLoad Tcl API Commands
IxChassisBuilder
chassisBuilder - Configure and manage an IxVM chassis.
SYNOPSIS
set chassisBuilder [::IxLoad new ixChassisBuilder]
DESCRIPTION
chassisBuilder is a a set of APIs that enable you to configure and manage an IxVM chassis. You can use chassisBuilder to perform most of the same tasks as the IxVM Chassis Builder application, such as adding, changing, or removing cards or ports from a chassis, setting the license server, enabling or disabling promiscuous mode, setting the NTP server, etc..
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
Creating a Chassis To create a chassis, use the following API:
set chassisBuilder [::IxLoad new ixChassisBuilder] Connecting to a Chassis To connect to a chassis, use the following API:
$chassisBuilder connectToChassis -chassisName "chassis name" Changing the Chassis Settings To change the chassis settings, you first need to issue a get command.
set chassisSettings [$chassisBuilder getChassisSettings] The chassisSettings objects has 4 parameters which can be inspected
l LicenseServer l EnableLicenseCheck l NtpServer l TxDelay To get a parameter, use the cget method. For example: [$chassisSettings cget -NtpServer]

120

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
You can change the value of a specific parameter by issuing a cset. For example: [$chassisSettings cset -NtpServer 10.215.10.99] When you have finished changing the settings, to make them permanent, you will need to do the following:
[$chassisBuilder setChassisSettings -chassisSettings $chassisSettings] Adding a Card To add a card, use the following API:
[$chasssisBuilder addCard -managementIp "127.0.0.1" -cardServerId 2 -keepAliveTimeout 100] Clearing Ownership To clear ownership, use the following API:
[$chassisBuilder clearOwnership -cardId cardid] Adding a Port To add a port to a specific card ID, use the following API: [$chassisBuilder addPort -cardId 2 -portId 1 -interfaceName "eth0" -promiscMode true/false -mtu 5000 -lineSpeed "1000"] Adding and Removing Credentials To remove credentials for a specific server, use the following API:
[$chassisBuilder removeCredentials -serverName "10.215.10.99"] To add a specific credential set, use the following API:
[$chassisBuilder addCredentials -serverName "10.215.10.99" -enable true -user user1 -password password1 -applianceType "Qemu"] applianceType is the VM type, and can be one of the following:
l "N/A" l "Qemu" l "VMWare" Connecting a Card To connect a disconnected card, use the following API: [$chassisBuilder connectCard - cardId 1] Deleting a Card To delete a card, use the following API: [$chassisBuilder deleteCard -cardId 1]

IxLoad Tcl API Programming Guide

121

IxLoad Tcl API Commands
Disconnecting a Card To disconnect a card, use the following API:
[$chassisBuilder disconnectCard -cardId 1]
Getting Card Info To get the card Information by card ID, use the following API:
set card [$chassisBuilder getCardById -cardId 3] The card object has the following properties which can only be retrieved (using cget):
l CardName l CardServerId l KeepAliveTimeout l ManagementIp l Status
Getting a List of Ports To get a list of all ports of a specific card, the user should use the following API.
set portList [$chassisBuilder getCardPorts -cardId 1] portList is a list of portInfo objects. Each portInfo object has the following properties, which can only be retrieved (using cget):
l InterfaceName l MTU l PortName l PortServerId l PromiscMode l Status
Getting the Chassis Topology To get a list of the chassis topologies, use the following API:
set topologies [$chassisBuilder getChassisTopology] topologies is a list of ixTopology objects. Each object has the following properties, which can only be retrieved (using cget):
l CardServerId l InterfaceName l IPAddress l KeepAliveTimeout l LineSpeed

122

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
l MAC l MTU l PortServerId l PromiscMode Getting Credentials To get a list of discovered credentials, use the following API: set credentials [$chassisBuilder getDiscoveredCredentials] credentials is a list of ixServerInfo objects. Each object has the following properties, which can only be retrieved (using cget): l Enabled l ErrorMessage l HasError l ServerName l ServerPassword l ServerType l ServerUser Getting a Card ID To get a card ID based on a management IP, use the following API: set cardId [$chassisBuilder getIxVMCardByIP -managementIp "10.215.10.100"] Rebooting a Chassis To perform a hard reboot of a chassis, use the following API: [$chassisBuilder hardChassisReboot] Loading Topology from a File To load a topology from a csv file, use the following API: [$chassisBuilder loadTopologyFromCsv -path "path to the file"] Rebuilding the Topology To rebuild the chassis topology, use the following API: [$chassisBuilder rebuildChassisTopology -usePreviousSlotId true -promiscMode true appVersion ""] Rediscovering Applicances To rediscover the appliances, use the following API: [$chassisBuilder rediscoverAppliances]

IxLoad Tcl API Programming Guide

123

IxLoad Tcl API Commands
Removing a Port To remove a port by id, use the following API:
[$chassisBuilder removePortById -cardId 1 -portId 2]
Updating a Card To update a card by ID, use the following API:
[$chassisBuilder updateCard -cardServerId -managementIp="10.215.11.11" -keepAliveTimeout true]
Updating a Port To update a port by id, use the following API:
[$chassisBuilder updatePortById -cardId 1 -portId 1 promiscMode false mtu 1000 lineSpeed "5000"]
Getting a List of Virtual Machines To get a list of discovered machines, use the following API:
set machines [$chassisBuilder getDiscoveredMachines] machines is a list of ixDiscoveredMachine objects. Each object has the following properties, which can only be retrieved (using cget):
l ApplianceName l Interfaces, which is a list of ixDiscoveredInterface objects. Each object has the following
properties: l InterfaceName l State, which can have one of the following values:
n "Available" n "Assigned" n "Unusable" l InterfaceNumber l ManagementIp l Type, which can have one of the following values: n "N/A" n "Qemu" n "VMWare" Rebooting Cards To reboot specific cards by their ID, use the following API: [$chassisBuilder hwRebootCardByIDs "a list of card ids"]

124

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
EXAMPLE
package require IxLoad
::IxLoad connect 1.2.3.4 set logtag "IxLoad-api" set logName "simplehttp" set logger [::IxLoad new ixLogger $logtag 1] set logEngine [$logger getEngine] $logEngine setLevels $::ixLogger(kLevelDebug) $::ixLogger(kLevelInfo) $logEngine setFile $logName 2 256 1
#Create a new chassis builder set chassisBuilder [::IxLoad new ixChassisBuilder]
# connect to a chassis $chassisBuilder connectToChassis -chassisName "10.215.122.90"
#getting a chassis topology and showing properties set topologies [$chassisBuilder getChassisTopology ] set count [$topologies indexCount] set index 0 set topology [$topologies getItem 0] set CardServerId [$topology cget -CardServerId] set InterfaceName [$topology cget -InterfaceName] set IPAddress [$topology cget -IPAddress] set KeepAliveTimeout [$topology cget -KeepAliveTimeout] set LineSpeed [$topology cget -LineSpeed] set MAC [$topology cget -MAC] set MTU [$topology cget -MTU] set PortServerId [$topology cget -PortServerId] set PromiscMode [$topology cget -PromiscMode]
#add a card and a port example set cardIp "10.215.122.96" $chassisBuilder addCard -managementIp $cardIp -keepAliveTimeout 300 set cardId [$chassisBuilder getIxVMCardByIP $cardIp] $chassisBuilder addPort -cardId $cardId -portId 1 -interfaceName "eth1" -promiscMode False -lineSpeed "1000"
#changing the license server on a virtual chassis $chassisSettings cset -LicenseServer "10.215.122.90" $chassisBuilder setChassisSettings $chassisSettings
#get cardId and connect it to the chassis set cardId [$chassisBuilder getIxVMCardByIP $cardIp] $chassisBuilder connectCard -cardId $cardId
#disconnecting a card $chassisBuilder disconnectCard -cardId $cardId
#getting discovered machines puts "Getting discovered machines"

IxLoad Tcl API Programming Guide

125

IxLoad Tcl API Commands
set machines [$chassisBuilder getDiscoveredMachines] set count [$machines indexCount] if { $count == 0} { puts "No machines discovered ! Should do a rediscovery !" } else { set index 0 puts $count puts "There are $count machines discovered" set machineInfo [$machines getItem 0] set ApplianceName [$machineInfo cget -ApplianceName] set Interfaces [$machineInfo cget -Interfaces] set ManagementIp [$machineInfo cget -ManagementIp] set Type [$machineInfo cget -Type] set InterfaceNumber [$machineInfo cget -InterfaceNumber] ::IxLoad disconnect
ixCustomPortMap
ixCustomPortMap-Customizes the order and frequency, by which client IPs will access server IPs.
SYNOPSIS
$destination1 config -portMapPolicy $ixPortMap(kPortMapCustom) set customPortMap [$destination1 cget customPortMap] $customPortMap subcommand options
DESCRIPTION
The ixCustomPortMap command is used to map a range of client and server trafIt is used to map client IPs onto server IPs or client VLANs onto server VLANs. A custom port map is associated with a specific symbolic destination. To create a Custom traffic map, the client and server network ranges, rangeType parameter can be anything, except IPSec. For DHCP and PPPoE ranges, VLAN must be enabled on both the client and server networks to use a custom traffic map.
SUBCOMMANDS
None.
OPTIONS
submapsIPv4
This is an ixConfigSequenceContainer holding a list of Submap objects. submapsIPv6
This is an ixConfigSequenceContainer holding a list of Submap objects.

126

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
Steps for Custom Traffic Mapping
To setup a Custom Traffic Map:
1. Set up the custom Traffic Map for symbolic destination. After creating the test object and assigning traffic-network mappings, setup the custom traffic map for the symbolic destination.
set destination1 [$clnt_t_n_mapping getDestinationForActivity my_http_client svr_ traffic_my_http_server]
2. Set up the client or server traffic-network mapping. Set the client or server traffic-network mapping for a custom traffic. Set the port for a destination to kPortMapCustom. Now it is possible to access the customPortMap property on the destination object.
$destination1 config -portMapPolicy $ixPortMap(kPortMapCustom) 3. Include the custom port map object. This includes the custom port map object into a local variable for convenience of scripting.
set customMap [$destination1 cget -customPortMap]
4. Set the submaps. A submap is a portion of a customPortMap that describes a simple relationship between a set of source addresses and a set of destination addresses. Complex relationships can be described using multiple ixPort objects.
set submap [$customMap submapsIPv4.getItem 0] 5. Set the submap's mesh type to be IP range pairs:
$submap config -meshType $ixSubmap(kMeshTypeIpRangePairs)
IP mesh types start out with ixSubmapRange objects that correspond to network ranges in the client and server networks for the symbolic destination. In this mode, ixSubmapRange IDs are the row numbers of the corresponding ranges in the networks. ixSubmapRange can be split into smaller, equal subranges using the split command. Refer to Split and Merge Submaps.
VLAN mesh types start out with ixSubmapRange objects that correspond to VLAN IDs (one ixSubmapRange per vLAN) in the client and server networks for the symbolic destination. In this mode, ixSubmapRange IDs are the same as the VLAN IDs they represent. Each ixSubmapRange can potentially span portions of many network ranges, depending on how the VLANs are specified on those ranges.
6. Specify the interconnections. You can now specify which server submap range that each client submap range communicates with. In the following example, the numbers next to the source range and the destination range show the mapping pattern.
# wire second source range to first destination range# and vise versa$submap sourceRanges(0).config -destinationId 3$submap sourceRanges(1).config -destinationId 1$submap sourceRanges(2).config -destinationId 1$submap sourceRanges(3).config enable 0
7. Split and merge submaps. For IP meshes, you can split a range in the list into subranges by calling the split method on that range. Once split, a range can be merged by calling merge on it. Merge doesn't need a parameter because it removes all of the child nodes originally created by using the split.
# split some ranges$submap sourceRanges(0).split 2$submap destinationRanges(0).split

IxLoad Tcl API Programming Guide

127

IxLoad Tcl API Commands
2
EXAMPLE
#--------------------------------------------------------------# Set up the custom traffic map for the symbolic destination.# This must be done after creating the test object and assigning# traffic-network mappings#-------------------------------------------------------------
set destination1 [$clnt_t_n_mapping getDestinationForActivity my_http_client svr_ traffic_my_http_server]$destination1 config -portMapPolicy $ixPortMap(kPortMapCustom)
# setting custom port map creates and initializes the custom port map object# get it so we can modify it
set customMap [$destination1 cget -customPortMap]
# the default has a single submap range available. Modify itset submap [$customMap submapsIPv4.getItem 0]
# set it to an IP range pair type$submap config -meshType $ixSubmap (kMeshTypeIpRangePairs)# split some ranges#$submap sourceRanges(0).split 2#$submap destinationRanges(0).split 2# wire second source child to first destination child# and vise versa
$submap sourceRanges(0).config -destinationId 3$submap sourceRanges(1).config -destinationId 1$submap sourceRanges(2).config -destinationId 1$submap sourceRanges(3).config -enable 0
SEE ALSO
ixClientTrafficNetworkMapping
ixPlaylists
ixPlaylist - Configure a playlist.
SYNOPSIS
set Playlist1 [::IxLoad new ixPlaylist] $Playlist1 config \

128

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

DESCRIPTION
ixPlaylist configures a playlist, a list of files to played. A playlist is added to the activity in a ixNetTraffic object using appendItem subcommand. To configure the playlist, use the config subcommand. Only certain protocols support playlists. Ensure that the protocol in the activity you are adding the playlist to supports playlists.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.
OPTIONS
splitMethod
Determines how the playlist is distributed among the ports in the test.

Value

Description

sameFileOnEachPort

(Default) The entire playlist is duplicated on each port

splitFileAcrossPorts

The playlist is divided equally among the ports.

splitFileAcrossPortsAsFixedSlices

The playlist is divided into chunks containing the number of entries you specify, and distributes one chunk to each port.
Specify the number of entries in the entryCountOnEachPort parameter.

name Name of the playlist. Default = "Playlistn" where n is a sequential integer starting with 1. filename Name of the CSV file to use as the source of the playlist data. Default = "" (None) indexIncrementMethod If userSequencing is set to sequential or uniqueOffset, this option determines the order that entries are loaded from the playlist.

Value

Description

IxLoad Tcl API Programming Guide

129

IxLoad Tcl API Commands

perIteration (Default) All commands access the same resource in the playlist. perCommand Each command access a different resource in the playlist, in order.

poolType Entry in the playlist each user begins executing with.

Value

Description

specificPool

(Default) Defines a fixed, repeatable pattern for distributing the playlist resources among the users.
If you select this option, you must specify values for the userSequencing and indexIncrementMethod parameters.

globalPool The playlist is accessed in order, without regard to which user accesses a particular entry.

entryCountOnEachPort
If splitMethod is splitFileAcrossPortsAsFixedSlices, this parameter determines the number of entries for each port. Default = 1 userSequencing
Method used to initially distribute the resources among the users. See the description in the User Guide for a full description of the parameters.

Value

Description

sequential

(Default) Users access resources based on their order in the playlist.

uniqueOffset Users access resources based on their user ID.

randomOffset Users access resources randomly.

firstRowIsColumnHeader
If true, the entries in the first row of each column are used as headings for each column. If false, default entries are used for column headings. Values = true (default), false

EXAMPLE
$Activity_IPTV_VideoClient1 playlists.clear

130

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

set Playlist1 [::IxLoad new ixPlaylist]

$Playlist1 config \

-splitMethod

"sameFileOnEachPort" \

-name

"Playlist1" \

-filename

"C:\\Users\\user1\\Desktop\\playlist.csv" \

-indexIncrementMethod

"perIteration" \

-poolType

"specificPool" \

-entryCountOnEachPort

1\

-userSequencing

"sequential" \

-firstRowIsColumnHeader

true

$Activity_IPTV_VideoClient1 playlists.appendItem -object $Playlist1

[...]

$Activity_IPTV_VideoClient1 agent.pm.commands.appendItem \

-commandType

"PlayMediaCommand" \

-media

"\{\{playlist.Playlist1.\$Media\}\}" \

-symServerIP

"\{\{playlist.Playlist1.\$Site\}\}" \

-cmdName

"Play Media 1"

ixPort
ixPort - retrieves the ID of an Ixia port and controls the port capture.
SYNOPSIS
$network portList.appendItem -chassisId 1 -cardId 1 - portId 1 set port [$network portList.getItem 0]

IxLoad Tcl API Programming Guide

131

IxLoad Tcl API Commands

DESCRIPTION
The ixPort command is used to define and retrieve the attributes of an Ixia port that is a member of a portList object. For example: puts "Added card [$clnt_network portList(0).getId]"
SUB-COMMANDS
None.
OPTIONS
getId Returns a string indicating the chassis ID, card ID, and port ID of a port, in the following format: chassisID.cardID.portID getOwner Returns a string indicating the current owner of the port. Returns an empty string if there is no owner. isLinkUp Returns a flag indicating, whether a cable is connected to another live port. isPortCaptureEnabled This returns a flag indicating the capture is enabled on the port. setPortCaptureEnable This enables the port capture. It is also enabled during the traffic-network map setPortCaptureFileName This enables the port capture and saves the details in a file on the hard disk.

EXAMPLE
#--------------------------------------------------------------# Build Chassis Chain and add a Chassis#--------------------------------------------------------------

set chassisChain [::IxLoad new ixChassisChain]$chassisChain addChassis myChassis#-------------------------------------------------------------# Build client Network#-------------------------------------------------------------

set clnt_network [::IxLoad new ixClientNetwork $chassisChain]#-------------------------------------------------------------# Add a port#-------------------------------------------------------------

$clnt_network portList.appendItem \-chassisId 1 \-cardId

1\-portId

1#------

132

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
--------------------------------------------------------# Get the port back and check its ID#--------------------------------------------------------------
puts [$clnt_network portList(0).getId]
SEE ALSO
ixChassisChain
ixSubmap
SYNOPSIS
set submap [$customMap submapsIPv4.getItem 0] $submap config -meshType $ixSubmap(kMeshTypeIpRangePairs)
DESCRIPTION
A portion of a customportmap that describes a relationship between a set of source addresses and destination addresses. Arbitrarily complex relationships can be described using multiple ixSubmaps.
Options
name This is the user-defined name for the submap. destinationRanges List of ixSubmapRange objects representing the server IPs. sourceRanges List of ixSubmapRange objects representing the server IPs. ipType IP version (IPv4 or IPv6) used on the submap (read-only). allowsIpMesh Returns 1 if IP meshTypes are allowed (read-only). allowsVlanMesh Returns 1 if the VLAN meshTypes are allowed (read-only). meshType This defines the relationship between the sourceRanges and destinationRanges. Can be one of:

IxLoad Tcl API Programming Guide

133

IxLoad Tcl API Commands

Option

Usage

$::ixSubmap (kMeshor "ipRangeMesh"

A pattern based on IP addresses, where each enabled client range communicates to all enabled server ranges.

$::ixSubmap (kMeshor "ipRangePairs"

A pattern based on IP addresses, where each enabled client range communicates with a single server range, as specified by the client range's destinationId option (see ixSubmapRange command).

$::ixSubmap

A pattern based on VLAN IDs, where each enabled client range communicates

(kMeshTypeVlanor with all enabled server ranges.

"vlanRange"

$::ixSubmap

A pattern based on VLAN IDs, where each enabled client range communicates

(kMeshTypeVlanor with all enabled server ranges.

"vlanRange"

ixSubmapRange
DESCRIPTION
A group of IPs, specified by either VLAN or IP (as determined by the ixSubmap meshType option). A submap range is the smallest unit of client or server IPs for specifying the traffic flow between clients and servers.
OPTION
id
This is the IxLoad-assigned ID for the submap. This is read-only. enable
This enables or disables traffic for the submap range. In full mesh modes, enable applies to both the client and server submap ranges. In range pair modes, enable affects the submap ranges only. All enabled client submap ranges will talk to their specified destination submap range, whether enabled or not.

134

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

destinationId
This is enabled for client submap ranges in a range pair meshType mode. It specifies the destination submap range to be communicated with. It can handle a list of destination IDs
childRanges
This is for IP meshTypes only. This is an ixConfigSequenceContainer with a list of ixSubmapRanges for nodes created via the split command. This list cannot be extended manually via appendItem.

ixIntRange

DESCRIPTION

This holds the items of comma separated list of ports defined in portRanges of ixDutProtocolPortRange. These items can either be a single integer value or a range of integers.

set my_ixIntRange [::IxLoad new ixIntRange]

$my_ixIntRange config \

-intRange

"16-80"

OPTION
intRange The value of portRanges of ixDutProtocolPortRange.

EXAMPLE

set destination [$Traffic1_Network1 getDestinationForActivity "HTTPClient1" "DUT1:-

custom"]$destination config \-portMapPolicy

"customMesh"

$destination portRangeList.clear

set my_ixIntRange [::IxLoad new ixIntRange]$my_ixIntRange config \-intRange "16"

$destination portRangeList.appendItem -object $my_ixIntRange

set my_ixIntRange1 [::IxLoad new ixIntRange]$my_ixIntRange1 config \-intRange "18"

$destination portRangeList.appendItem -object $my_ixIntRange1

set my_ixCustomPortMap [$destination cget -customPortMap]

IxLoad Tcl API Programming Guide

135

IxLoad Tcl API Commands

set Submap1 [$my_ixCustomPortMap submapsIPv6.getItem 0]$Submap1 config \-name

"Submap1" \-meshType

"ipRangeMesh"

ixRepository
ixRepository-Creates a repository object (RXF file).
SYNOPSIS
set ::repository [::IxLoad new ixRepository -name path]
DESCRIPTION
The repository (.RXF file) object is a set of lists that represents the tree shown in the IxLoad GUI. There are six lists, one for each top-level node in the GUI tree: clientNetworkList, serverNetworkList, dutList, clientTrafficList, serverTraffiand testList. In order to create a repository, all test components (networks, traffic, activities, traffic-network mappings, and tests) to be saved in a repository must be created in these lists. Similarly, the contents of an existing repository can be manipulated by manipulating the objects in these lists. The lists are of type ixConfigSortedNamedItemList. For examples of repository usage, see the following scripts in the \Samples directory.
l reprun.tcl - Runs all tests in a repository. l repNewHTTP.tcl - Creates a new repository. l reprunhttpstats.tcl - Runs all tests in a repository and collects http stats.
SUBCOMMANDS
The options for this command are configured and read using the subcommands defined in the ixConfigSortedNamedItemList command.
OPTIONS
name
Specifies the path to the file. activeTest
The name of the active test in the repository. This test should be selected when the repository is loaded into the IxLoad GUI. clientNetworkList
List of the client networks in the repository. This is a list of type ixConfigSortedNamedItemList. serverNetworkList

136

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

List of the server networks in the repository. This is a list of type ixConfigSortedNamedItemList. dutList List of the DUTs in the repository. This is a list of type ixConfigSortedNamedItemList. clientTrafficList List of the client activities in the repository. This is a list of type ixConfigSortedNamedItemList. serverTrafficList List of the server activities in the repository. This is a list of type ixConfigSortedNamedItemList. testList List of the test configurations (traffic-network mappings, timelines, port selections in the repository. This is a list of type ixConfigSortedNamedItemList. write Save the repository to a file. -write takes the following arguments:

-destination

The path to the file. Can be omitted to rewrite an existing repository opened with the -name option.

-overwrite If true, overwrites an existing file, provided it is accessible and not write-protected. (Defaults = false).

EXAMPLE
#Create an empty repository and save itset ::newRepository [::IxLoad new ixRepository ]$::newRepository write -destination newRepository -overwrite 1
SEE ALSO

ixSendEventCommand
ixSendEventCommand - trigger a waiting command
SYNOPSIS
$my_ixSendEventCommand config \ -optionvalue

IxLoad Tcl API Programming Guide

137

IxLoad Tcl API Commands
DESCRIPTION
ixSendEventCommand and ixWaitEventCommand synchronize the command lists of two or more activities within a Subscriber NetTraffic. ixWaitEventCommand stops command list execution until an ixSendEventCommand with a matching eventId is called. ixSendEventCommand causes all command lists within a Subscriber NetTraffic that are currently stopped by an ixWaitEventCommand with a matching eventId to resume execution. ixSendEventCommand and ixWaitEventCommand are added to an actionList using the appendItem command. For example, if Command2 must be executed only after Command1 has been executed: 1. An ixWaitEventCommand is inserted preceding Command2. 2. A ixSendEventCommand is added after Command1, with the same eventID as in the ixWaitEventCommand. When Command1 finishes executing, the ixSendEventCommand ends the ixWaitEventCommand for Command2, causing Command2 to be executed. ixSendEventCommand and ixWaitEventCommand can only be used with Subscriber activities.
OPTIONS
commandType Command type. The only value is "SendEventCommand". eventID ID of the corresponding ixWaitEventCommand. Default value = 1.
EXAMPLE
set my_ixSendEventCommand [::IxLoad new ixSendEventCommand] $my_ixSendEventCommand config \ -commandType"SendEventCommand" \ -eventId1
$Subscriber_Activity_HTTPClient1 agent.actionList.appendItem -object $my_ixSendEventCommand . . .

138

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
$Subscriber_Activity_FTPClient1 agent.actionList.clear
set my_ixWaitEventCommand [::IxLoad new ixWaitEventCommand] $my_ixWaitEventCommand config \ -commandType"WaitEventCommand" \ -eventId1
$Subscriber_Activity_FTPClient1 agent.actionList.appendItem -object $my_ixWaitEventCommand
SEE ALSO
ixWaitEventCommand
ixStatCatalogItem
ixStatCatalogItem-Describes a single item in a stat catalog.
SYNOPSIS
set statCatalog [$ixTestObject getStatCatalog]puts [[lindex $statCatalog 0] statSpecList(0).cget -name]
DESCRIPTION
The ixStatCatalogItem object is a returned element of a list from the ixTest g command. It describes a statistics source and all of the statistics and filters available from that source.
SUBCOMMANDS
The options for this command are read using the standard cget and getOptions subcommands defined in the ixConfig command.
OPTIONS
statFilterList (Read Only). The list of all filters available from the agent. Each item of the list is of type ixStatFilter. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. statSourceType

IxLoad Tcl API Programming Guide

139

IxLoad Tcl API Commands
(Read Only). The agent from which statistics originate, of the form: Protocol Client/Server Where Protocol is one of the supported protocols-for example, HTTP or FTP, and Client/Server is one of those two values. Some examples are: "HTTP Client""FTP Server" statSpecList (Read Only). The list of all statistics available from the agent. Each item of the list is of type ixStatSpec. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list.
EXAMPLE
puts [[lindex $statCatalog 0] statSpecList(0).cget -name]
SEE ALSO
ixTest ixStatFilter ixStatSpec
ixStatFilter
ixStatFilter-Describes a single statistics filter in a stat catalog.
SYNOPSIS
set statCatalog [$ixTestObject getStatCatalog] puts [[lindex $statCatalog 0] statFilterList(0).cget -type]
DESCRIPTION
The ixStatFilter object is one element of the statFilterList option of the ixStatCatalogItem object. It describes a single filter available for a protocol agent (statSourceType).
SUBCOMMANDS
The options for this command are read using the standard cget and getOptions subcommands defined in the ixConfig command.
OPTIONS
type (Read Only). The type of the filter available. One of:

140

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

Option

Usage

$::ixStatFilter(kTypePort) A filter operation may be performed across the port described in the

or "Port"

value field.

$::ixStatFilter(kTypeCard) A filter operation may be performed across the card described in the

or "Card"

value field.

$::ixStatFilter (kTypeChassis) or "Chassis"

A filter operation may be performed across the chassis described in the value field.

$::ixStatFilter(kTypeActiv- A filter operation may be performed across the activity described in the

ity)

value field.

or "Activity"

$::ixStatFilter(kTypeCommunity) or "Traffic-NetworkMapping"

A filter operation may be performed across the community described in the value field.

value (Read Only). A value corresponding to the value of the type option. One of:

Option
$::ixStatFilter (kTypePort) or "Port"
$::ixStatFilter (kTypeCard) or "Card"
$::ixStatFilter (kTypeChassis) or "Chassis"
$::ixStatFilter (kTypeActivity) or "Activity"

Usage A port specification in the form: chassis/card/port
A port specification in the form: chassis/card
A port specification in the form: chassis
The name associated with an ixCustomPortMap or ixServerTraffic object in the test.

IxLoad Tcl API Programming Guide

141

IxLoad Tcl API Commands

$::ixStatFilter (kTypeCommunity) or "Traffic-NetworkMapping"

The name associated with an ixClientTrafficNetworkMapping or ixServerTrafficNetworkMapping object in the test.

EXAMPLE
puts [[lindex $statCatalog 0] statFilterList(0).cget -type]
SEE ALSO
ixTest ixStatCatalogItem

ixStatSpec
ixStatSpec-Describes a single statistic in a stat catalog.
SYNOPSIS
set statCatalog [$ixTestObject getStatCatalog] puts [[lindex $statCatalog 0] statSpecList(0).cget -type]
DESCRIPTION
The ixStatSpec object is one element of the statSpecList option of the ixStatCatalogItem object. It describes a single statistic available for a protocol agent (statSourceType).
SUBCOMMANDS
The options for this command are read using the standard cget and getOptions subcommands defined in the ixConfig command.
OPTIONS
aggregationFunctionCode (Read Only). The type of statistic which this represents. One of:

Option "Raw"

Usage

142

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
"Interpolated" "Interpolated Rate" "Rate" "Smooth" "Interval Maximum" "Interval Minimum" "Interval Average" "Interval Weighted Average" "Sum over ports" "Maximum over ports" "Minimum over ports" "Average over ports" "Weighted Average over ports" enablePortAggregation (Read Only). If true, then it is possible to aggregate this statistic for all agents on a port. name (Read Only). The name of the statistic. This is the same name that is used in the name field of the ::statCollectorUtils::AddStat -statName argument. path (Read Only). The internal full-path name of the statistic.
EXAMPLE
puts [[lindex $statCatalog 0] statSpecList(0).cget -type]
SEE ALSO
ixTest ixStatCatalogItem

IxLoad Tcl API Programming Guide

143

IxLoad Tcl API Commands
ixTest
ixTest-Builds a complete IxLoad test.
SYNOPSIS
set Test1 [::IxLoad new ixTest] $test subcommand options...
DESCRIPTION
The ixTest command is used to construct a complete IxLoad test structure. It consists of a list of client traffic-network and server traffic-network mappings, called communities. In addition to the two lists, several options control global operation. An ixTest command is used in conjunction with a ixTestController to operate the test and collect statistics.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.
getStatCatalog
This subcommand returns a list of objects of type ixStatCatalogItem that define all of the statistics available, along with all possible filters. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list.
getCommunityList
This subcommand returns all the communities in the test in no particular order. It is provided for convenience. It is essentially equivalent to getting the clientCommand serverCommunityList and concatenating them.
# set the chassis chain on the repository # since there is no chassisChain clear, # it's easiest to start with a new one
myChassisChain = new ixChassisChain myChassisChain.addChassis("myChassis") repository.chassisChain = myChassisChain
# set ports on all the networks in the tests # for test in repository.testList: # or pick a specific test
for community in test.getCommunityList(): community.network.portList.clear()

144

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
# update x & y with next card and port to assign # (assuming single chassis) community.network.portList.appendItem(chassisId = 1, \ cardId = x, portId = y)
For an example of how to load a repository, see RepRun.tcl in the Samples directory.
OPTIONS
clientCommunityList
A list of objects of type ixClientTrafficNetworkMapping that define the client agent to network mappings used to generate client traffic. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}). comment
A comment associated with the test. (Default = ""). csvInterval
The interval, in seconds, at which the CSV statistics files are updated. In the GUI, this parameter is on the Test Options pane and is labeled CSV Polling Interval. This parameter does not set the statistics callback interval, which you must define manually for each script (see statCollectorUtils on page 4-60). (Default = 4). enableForceOwnerShip
If true, at the beginning of the test, any ports that are selected for the test but owned by another user are rebooted and their previous ownership cleared. This parameter corresponds to the GUI option "Forcefully Take Ownership." (Default = false). enableReleaseConfigAfterRun
If true, purges the test configuration from the ports after a test completes, releases ownership of them, and the ports will no longer respond to ARPs and PINGs from the DUT. (Default = false). enableResetPorts
If true, IxLoad reboots the ports before downloading the test configuration to them. To ensure the integrity of your testing, it is always safest to reboot the ports before running a test. However, rebooting the ports does increase the amount of time required to prepare the ports for a test. If you are developing a test and making incremental changes to it and then run it to see the effect of your changes, it may be safe to save time by not rebooting the ports before each run. If you do not want to reboot the ports for every test, you should at least reboot the ports the first time you load a repository; this will ensure that any software structures remaining from a previous test or other application are properly removed. (Default = false). name
The name associated with this object. (Default = "TestEnvelope"). serverCommunityList

IxLoad Tcl API Programming Guide

145

IxLoad Tcl API Commands

A list of objects of type ixServerTrafficNetworkMapping that define the server agent to network mappings used to simulate network servers. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}).
statsRequired

If true, statistics will be collected for the test. (Default = 1).

EXAMPLE

#--------------------------------------------------------------# Create the test#---

-----------------------------------------------------------set Test1 [::IxLoad new

ixTest]$Test1 config \-comment

"" \-csvInterval

4 \-name

"Test1" \-statsRequired

1 \-enableResetPorts

0 \-enableForceOwnership

false \-enableReleaseConfigAfterRun

0 \-captureViewOptions

$my_ixViewOptions

$Test1 scenarioList.clear

$Test1 scenarioList.appendItem -object $TrafficFlow1
SEE ALSO
ixTestController ixDut

ixTestController
ixTestController-Controls execution of an IxLoad test.
SYNOPSIS
set testController [::IxLoad new ixTestController options] $testController subcommand options...
DESCRIPTION
The ixTestController command is used to control the execution of an IxLoad test. The ixTest object is referenced in this command's run subcommand.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are avail-

146

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
able. Unless otherwise described, no values are returned and an exception is raised for any error found.
OPTIONS addReportFile
Adds a file to the IxReporter test results folder. This option corresponds to adding files to the Files tab in IxReporter. You can add the following types of files: BMP, JPG, CSV, PNG, GIF. For example: "c:/temp/reportFiles/http.csv" or "c:/temp/images/http.bmp". If you add a CSV file, you must add the metadeta file in the same folder as well. You can call this API after the test is stopped. See generateReport for more information. Values: Full path and name of file to add. Default = "" (none).
addReportFilesFromFolder
Adds all the files in a folder to the IxReporter test results folder. This option corresponds to adding files to the Files tab in IxReporter. You can add the following types of files: BMP, JPG, CSV, PNG, GIF. For example: "c:/temp/reportFiles". If you add a CSV file, you must add the metadeta file in the same folder as well. You can call this API after the test is stopped. See generateReport for more information. Values: Full path of the folder to add. Default = "" (none).
applyConfig
Downloads the test configuration to the Ixia ports. The syntax is the same as for the run subcommand.
applyObjectiveValues
Applies the new objective values that are configured on the activity when the test is running. See the example for canSetObjectiveValue.
autorepository
Automatically creates a repository that is used as the source of data for the "Test Configuration" section in a generated report. The repository is created in the results ($resultDir) directory. The autorepository and repository subcommands can both be used to create repositories that are the source of data for the "Test Configuration" section of reports.
l autorepository creates a repository based on IxLoad's internal, ephemeral repository. l repository creates a copy of the repository specified by $repository (created using ixRe-
pository). The choice of which one to use depends on whether or not you are using an $repository object in your test:
l If you are using $repository, use repository. l If you are not using $repository, use autorepository.

IxLoad Tcl API Programming Guide

147

IxLoad Tcl API Commands
autorepository requires the repository file name as an argument. For example, the following generates a repository named My_Rep.rxf: $testController run $test -autorepository "My_Rep.rxf"
canSetObjectiveValue
Checks whether the objective value can be set on the activity when the test is running. The objective value can be changed only during the Ramp-up and Sustain phases of the test. For a result equivalent to changing the objective values in the GUI ("modify-on-the-fly"), make sure your script changes the objectiveValue, not the userObjectiveValue. Your script must call canSetObjectiveValue before changing the objective value because changing the objective value is not allowed during some run states such as ramp down. # Modify objective value on the fly every 40s (3rd one should give a warning)
set maxObjectiveValue [$Activity_newClientActivity1 getMaxObjectiveValue]puts "Max objective value - $maxObjectiveValue"
set objectiveValue 733100for {set j 0} {$j < 3} {incr j} { sleep 40 puts "Trying to change objective to $objectiveValue..." $Activity_newClientActivity1 config -objectiveValue $objectiveValue set canSetObjectiveValue [$Activity_ newClientActivity1 canSetObjectiveValue] if { $canSetObjectiveValue } { $Activity_newClientActivity1 applyObjectiveValues } incr objectiveValue 100}
collectDebugLogs
This command places the debug logs in the DebugInfo\Logs directory of the configured results directory of the test configuration on the PC running the IxLoad client GUI. For example: <ResultsDirectory>\ DebugInfo\Logs Example: $testController collectDebugLogs
enableAutoGenerateReport
Automatically generates a report after the test stops. You must call this API before the test is configured. See generateReport for more information. Values: 0 = false (default), 1 = true.
getTestServerHandle
This subcommand returns a string used for statistics collection using the statCollectorUtils::Initialize command. IOR stands for Interoperable Object Refname given to a network-addressable reference as defined by CORBA.

148

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
getMaxObjectiveValue
Fetches the maximum objective value that can be configured on the activity when the test is running. This value is shown as the maximum value that can be set using the Objective slider in the IxLoad GUI. See the example below and the example for canSetObjectiveValue.
Example:
proc ::my_stat_collector_command {args} { set ::ixStatCollectorMonitor "statsReceived"
} ${NS}::StartCollector -command ::my_stat_collector_command -interval 4
set ::ixTestControllerMonitor "" $testController run $Test1
# wait till we get stats, indicating test is starting to run vwait ::ixStatCollectorMonitor
set maxObjectiveValue [$Activity_newClientActivity1 getMaxObjectiveValue] puts "Max objective value - $maxObjectiveValue"
generateReport
This command performs the report generation from TCL. The generateReport function is called after a test is run and completed. The test run generates certain CSV files. These files are stored in the result directory and contain the test statistics. IxReporter processes the resulted CSVs and generates the PDF file.
A new version of IxReporter, the report generation application, was introduced with IxLoad 6.0. This new version provides new report options, but requires a slightly different workflow. The legacy (pre6.0) report generation options are still supported. Legacy (pre-6.0) Report Generation
The legacy report generation options do not require the IxReporter GUI to be running in the background, and the only package that is required is the ixload package (package require ixload). The only legacy report generation options are:
-detailedReport -format
To generate a legacy report, specify the .rxf file for the test, and the report options:
$testController run $test -autorepository <rxf Name>vwait ::ixTestControllerMonitor$testController releaseConfigWaitFinish$testController gen-
erateReport -detailedReport 1 -format PDF
IxLoad 6.0 Report Generation
To use the IxLoad 6.0 report generation options, you use the same generateReport command with options you want, plus the following additional options:

IxLoad Tcl API Programming Guide

149

IxLoad Tcl API Commands

l enableAutoGenerateReport automatically generates a report after the test stops. l addReportFile adds a files to the report. l addReportFilesFromFolder adds all the files in a folder to the report .
As an alternative to using the report generation APIs, you can use IxReporter standalone to manipulate test results and generate a report.
The IxLoad 6.0 report options require the ixloadcsv package to be loaded (package require ixloadcsv).
The complete code workflow for generating reports is as follows:
1. Launch the ixWish console from the installed build menu. 2. Call "package require IxLoadCsv". 3. Call "Source xxx.tcl" where xxx.tcl is the file that contains the TCL reporter APIs for your
test. 4. Determine when you want to call the report generation APIs:

Explicitly, after the test stops: Automatically:

Call generateReport.

Call enableAutoGenerateReport.

5. Call the optional report generation APIs: addReportFile addReportFilesFromFolder
6. Access the location where the generated report is stored to retrieve the report file. generateReport options

-detailedReport

Type of report: summary or detailed. Summary reports are named "IxLoad Summary Report", detailed reports are named "IxLoad Detailed Report".

Values: 0 = summary (default), 1 = detailed.

-format

File format of report.

Values = "PDF" (default), "HTML", "PDF;HTML" (generates both), or HTML;PDF (generates both)

-orientation

Orientation of report.

Values: "Portrait" (default), "Landscape"

-outputFile

Path to which the test report is saved. If no path is specified, the report is saved in the default test results folder. For Unix users, report file is saved on the machine running the Tcl scripts.

150

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
Values: Full directory path, and file name without an extension. For example: "c:/temp/httpReport" -mailTo Email address to which the report is automatically mailed after generation. Value: Valid email address. For example: "tester1@company.com". The default value is empty (null string). -testName Name of test in report. Value: String. For example: "httpTest". The default value is the active test name in the rxf. -testerName Name of tester identified in report. Value: String. For example: "ixia". The default is the tester name in the rxf. -dutName Name of the DUT in the report Value: String. For example: "firewall". The default value is empty (null string). -highlights Applies highlighting-style formatting all instances of the specified string in the report. Value: String. For example, if you specify: "Performance testing", all instances of the string "Performance testing" are highlighted in the report. The default is the active test comments in the rxf. -coverPageImageFile Image file to be used as the report's cover page. Value: Full path of the image file. -qaCsv Reserved for internal use.
getRunResultDirFull
The getRunResultDirFull returns the directory into which the generated report has been placed. $testController generateReport -detailedReport 1set resultDir [$testController getRunResultDirFull]
isBusy
Following a call to the run subcommand, this subcommand returns true while the test is still running.

IxLoad Tcl API Programming Guide

151

IxLoad Tcl API Commands
repository
Creates the repository that is used as the source of data for the "Test Configuration" section in a generated report. The repository is created in the results ($resultDir) directory.
For example, the following generates a repository using the configuration specified by the ixRepository object: $testController run $test -repository $repository
The autorepository and repository subcommands can both be used to create repositories that are the source of data for the "Test Configuration" section of reports. For a description of the differences between them, see autorepository.
retrieveFileCopy
Copies files from Windows to Linux. You can use retrieveFileCopy to retrieve files from the Windows file system. set resultDir [$testController getRunResultDirFull]set remoteFile "$resultDir\\IxLoad Detailed Report.pdf"::IxLoad retrieveFileCopy $remoteFile /root/Report1.pdf
run $test
This command causes the test specified in $test, which must be an object of type ixTest, to start. After calling the TestController run function, your script must call vwait ::ixTestControllerMonitor to ensure that the Tcl event loop is processed. Otherwise, IxLoad will not call your statistics callback command, and you will not be able to tell when the test ends.
If you have a lot of processing to do after calling run, but before the test ends, your code may be executing when IxLoad sets the ::ixTestController monitor variable. Example 2 (see below) shows how to correctly handle detecting the end of test if this possibility exists.
setResultDir $dir
Specifies the location of where the execution results will be kept. If this subcommand is not called, no results will be stored. When running from a Unix client, this is a directory on the intermediate Windows host that the client connected to using the connect subcommand of ::IxLoad. The retrieveFile or retrieveFileCopy subcommands of ::IxLoad can be used to retrieve the files from the Windows host.
Within the directory you specify for setResultDir, IxLoad stores the following files for the current test: Test_Client.csvTest_Server.csv<Protocol>_<Client|Server>.csv<Protocol>_<Client|Server>_-_Default_CSV_Logs_<activity name>_<traffic name>@<network name>.csvTest_Client.csvTest_Server.csv
<Protocol> is the name of the protocol (for example, HTTP). There will be a set of files for each protocol used in the test.

152

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
<Client|Server> is the side of the connection, client or server. There will be a set of files for each side used in the test.
<activity name> is the name of the activities (agents) appended to the agentList of the traffic.
<traffic name> is the name of the ixCustomPortMap or ixServerTraffic element created in the test.
<network name> is the name of the ixDHCP or ixStatCatalogItem element created in the test.
startCapture
Starts packet capture. IxLoad automatically calls startCapture before the test starts running (when the nettraffics are being configured). If your script calls startCapture explicitly, you can start (or restart) capturing packets at any point in the test (provided you have first called stopCapture to stop a capture that is already running).
stopCapture
Stops packet capture. IxLoad automatically calls stopCapture when the test finishes running. You can use stopCapture to stop capture at any point during the test, such as when the test enters the Configured state.
For example, the following script fragment captures only the packets generated during the Apply Config process:
# Start the test $testController applyConfig $test vwait ::ixTestControllerMonitor puts $::ixTestControllerMonitor $testController stopCapture # # Wait for the rest of the capture data # if {$::ixCaptureMonitor == ""} { puts "Waiting for last capture data to arrive." vwait ::ixCaptureMonitor puts "Capture data received." }
stopRun
Stops the test. Any protocol sessions running at the time stopRun is issued are terminated as quickly as possible. To stop the test gracefully, use stopRunGraceful.
stopRunGraceful
Stops the test, allowing the DUT to end any remaining protocol sessions. Because stopRunGraceful allows sessions to terminate naturally, the ramp-down phase of the test may be longer than if you use stopRun.

IxLoad Tcl API Programming Guide

153

IxLoad Tcl API Commands
OPTIONS
outputDir If this is empty (""), then no result CSV files are saved. If this is not empty (for example, "1"), then CSV files are saved. (Default = "").
EXAMPLE
# Example 1: First method of using vwaitset testController [::IxLoad new ixTestController -outputDir 1]$testController setResultDir \ "[pwd]/RESULTS/simplehttpclientandserver" # Run the test$testController run $testvwait ::ixTestController
#Example 2: Second method of using vwait. This method is useful if you have processing you wish to do while the test is running.# Code to set up and define test and testController# ...
# The following function is useful to delay while running# the Tcl event loop.proc sleep {duration} { after $duration {set wakeUp 1} vwait wakeUp}
set ::ixTestControllerMonitor ""$testController run $test
# Other activities here. While waiting you must call# either vwait or update to ensure your statCollector command# is called.
## wait, if necessary, until the test is over#while {[lsearch $::ixTestControllerMonitor TEST_STOPPED] == -1} { sleep 1000}
puts $::ixTestControllerMonitor
SEE ALSO
ixTest
ixTestControllerMonitor
ixTestControllerMonitor-Global variable to wait on for test completion.
SYNOPSIS
vwait ::ixTestControllerMonitor

154

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
DESCRIPTION
The global variable ixTestControllerMonitor is maintained by ixTestController while a test is running. Its value may be vwait'd to determine when the test is complete. ixTestControllerMonitor is set by IxLoad either at the end of the last ixTestController command (using either the applyConfig or run options). ixTestControllerMonitor will only be set while inside a vwait command or an update command. The reason you should initialize ixTestControllerMonitor prior to issuing the test command is because it is vwaiting on something other than ixTestConmonitor, so you need to be able to detect the end of the test by examining the value of ::ixTestControllerMonitor. Also, because it is not set by IxLoad prior to the end of the test (or applyConfig), it will be undefined otherwise. Usually, you can use vwait or ixTestControllerMonitor directly, but if the script needs to do some other processing while the test is running, the following example from the simplehttpconfigstoprun.tcl sample script shows how this can be done. In this example, the code waits for the first statistic to arrive, and then falls through if the test stops or the event occurs: set ::ixTestControllerMonitor "" # initialize to known value$testController run $test# do the command# wait for the first sample or test stopwhile {$::ixTestControllerMonitor == "" && $::gotOneStat == 0} {after 1000 set wakeup 1
vwait wakeup# you have to call vwait (or update) # periodically to allow IxLoad to run }
While waiting for the test to finish, the script must call either vwait (as in the example) or update to allow the Tcl event loop to function. ixTestControllerMonitor returns one of the following values: {eventType TEST_STOPPED status OK}{eventType TEST_STOPPED status ERROR description {1}}
If an error occurs, refer to the log file to determine the cause.
EXAMPLE
See the example under statCollectorUtils.
SEE ALSO
statCollectorUtils ixTestController
statCollectorUtils
statCollectorUtils-Handles statistics gathering.

IxLoad Tcl API Programming Guide

155

IxLoad Tcl API Commands
SYNOPSIS
package require statCollectorUtils ::statCollectorUtils::command args
DESCRIPTION
The statCollectorUtils is a library containing several commands to gather statistics during a test run. The model for usage of these commands is:
l Initialize -Initializes the statistics utilities. l ClearStats - Clears statistics from a previous run. l AddStat - Adds a statistic to the list of statistics to be retrieved. Call this once per statistic. l AddL2L3Stat - Adds a layer 2 or 3 statistic to the list of statistics to be retrieved. Call this once
per statistic. l AddPerInterfaceStat - Adds a per-range statistic to the list of statistics to be retrieved. Call
this once per statistic. l AddSIPPerStreamStat - Adds a SIP per-stream statistic to the list of statistics to be retrieved.
Call this once per statistic. l AddVideoPerStreamStat - Adds a video per-stream statistic to the list of statistics to be
retrieved. Call this once per statistic. l AddNetworkStat - Adds a network statistic to the list of network statistics to be retrieved. Call
this once per statistic. l SetCsvVersion - Allows the stat names written to the CSV to be the same as would be the case if
generated by the given buildNumber or special constant. l SetCsvThroughputUnits - Defines the units used for throughput statistics written to the CSV
files. l StartCollector ­command callbackCommand -Starts the statistics collection process and indic-
ates a callback command to invoke when statistics are delivered. l Use ixTestController run to run the test. l Use vWait ::ixTestControllerMonitor to wait for the test to end. During the run, the callback
command indicated in StartCollector is called. l StopCollector - Stops the statistics collection process.
Note: QoE Detective stats and the Network overview with their associated drill-downs are not supported in the Tcl API.
COMMANDS
Unless otherwise described, no values are returned and an exception is raised for any error found.

156

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

AddStat arguments
Adds a statistic to the list of desired responses. The arguments to this command are -option value pairs:

Option

Usage

aggregationType

Specifies how statistics for multiple ports, as indicated in the filter argument, are combined. One of:
l "kSum"-Adds all of the statistics together. l "kMax" -Determines the maximum value. l "kMin"-Determines the minimum value. l "kAverage"-Determines the average value. l "kWeightedAverage"-This type is for use with weighted statistics. The stat-
istics descriptions indicate whether they are weighted or not. l "kRate" -Determines the rate of change of the sum of all the statistics. l "kMaxRate" -Determines the maximum rate. l "kMinRate"-Determines the minimum rate. l "kAverageRate"-Determines the average rate. l "kString"-Treats as a string.

caption

The caption associated with the statistic. This is not currently used by the Tcl API, but a comment must be supplied.

enumerated

If true, returns a list of stats as follows: l HTTP Client: Returns one stat in the callback for each different URL in the client's command list. l HTTP Server: Returns one stat in the callback for each defined server page.
If false (default), returns a single stat for all URLs.

IxLoad Tcl API Programming Guide

157

IxLoad Tcl API Commands

filterList
statName statSourceType

A list of filter items that specifies the origin of the statistics to be filtered. You can format the filterList to gather statistics from one of the following components in the test:
{Port {Chassis<chassis_id>/Card<card_id>/Port<port_id> ... } } {Card {Chassis<chassis_id>/Card<card_id> ... } } {Chassis {Chassis<chassis_id> ... } } {Community {<net_traffic_name> ... } } {Activity {<net_traffic_name> - <activity_name> ... } For the Activity filter, the spaces on either side of the "-" are required. Also, for net_traffic_name, use the full name of the nettraffic. For example, "client_ traffic@client_network". For activity_name, use the configured name of the activity. For example, "HTTPClient1". If filterList is empty, no statistics are filtered out.
The name of a specific statistic, as listed in the Statistics topic of the statistics page for the protocol client or server agent. For example, the list of statistics for HTTP Clients can be found in the Statistics topic at HTTP Client Agent.
The agent type that generates the statistics. This is a two part name of the form: Protocol Client|Server Where Protocol is one of the supported protocols-for example, HTTP or FTP, and Client/Server is one of those two values. Some examples are: "HTTP Client""FTP Server"

AddL2L3Stat arguments
Adds a layer 2 or 3 statistic to the list of network statistics to be retrieved.
The arguments to this command are similar to those for AddStat. The arguments to this command are -option value pairs:

Option

Usage

aggregationType See AddStat for description.

caption

See AddStat for description.

158

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

filterList

A list of filter items that specifies the origin of the statistics to be filtered.
Unlike the other Add<>Stat commands, AddL2L3Stat only allows filtering statistics from ports, and requires the chassis IP address in the filter instead of the chassis ID. The format for filtering L2/L3 statistics from a port is: {Port {<chassis_ip>/Card<card_number>/Port<port_number> ... }} For example, to filter statistics from ports 2 and 3 on card 2 of a chassis whose IP address is 10.200.1.1:

-filterList {Port {10.200.1.1/Card2/Port2 10.200.1.1/Card2/Port3}}

statName statSourceType

See AddStat for description.
The network plugin that generates the statistics. For AddL2L3Stat, the only available statSourceType is: "PortMonitor"

AddNetworkStat arguments
Adds a dynamic range network statistic to the list of network statistics to be retrieved.
Note: If you want to create a sample script using ScriptGen, the network statistics are not available until the test configuration has been downloaded to the Ixia ports. You can use the Apply Config command to download the test configuration to the ports without starting the test.
The arguments to this command are similar to those for AddStat. The arguments to this command are -option value pairs:

Option

Usage

aggregationType See AddStat for description.

caption

See AddStat for description.

filterList

See AddStat for description.

statName

See AddStat for description.

IxLoad Tcl API Programming Guide

159

IxLoad Tcl API Commands

statSourceType

The network plugin that generates the statistics.
For example: "IPSec" The list of network plugin names is:

l WebAuth l 802.1x l EAPoUDP l IPSec l L2TP_PPP/PPP l L2TP_PPP/PPPoE l GTP l 3GPP l IMPAIR

AddPerInterfaceStat arguments
This is the utility for per-range interface statistics.
To activate this statistics for the client and the server, enable IP interface (enableStats) statistics in the client and the server network.

Option

Usage

statSourceType

The agent type that generates the per interface statistics. This is a two part name of the form: Interface Protocol - Client|Server Where Protocol is IPV4 or IPV6 and Client|Server is one of those two values. Some examples are: "Interface IPv4 Client""Interface IPv4 Server""Interface IPv6 Cli-
ent""Interface IPv6 Server"

statList

This is a list of statistical names and aggregations function pair.
An example of IPV4: -statList {{"Packets Sent" "kSum"} {"Packets Received" "kSum"}} \

ipList

This is the list of IPs specified for the client and the server for collecting the statistics. -ipList {"198.18.2.1" "198.18.2.2"}

For each address that you specify in ipList, IxLoad records the statistics specified in statList.
For example, if you specify an ipList and statList as follows: -statList {{"Packets Sent" "kSum"} {"Packets Received" "kSum"}} \-ipList

160

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

{"198.18.2.1" "198.18.2.2"}
and a returned list of statistics contains the following: {{kInt 28112} {kInt 0} {kInt 31973} {kInt 0}}
{kInt 28112} is the statistic for Packets Sent for address 198.18.2.1. {kInt 0} is the statistic for Packets Received for address 198.18.2.1. {kInt 31973} is the statistic Packets Sent for address 198.18.2.2. {kInt 0} is the statistic for Packets Received for address 198.18.2.2. Because IxLoad adds the statistics in the order specified by statList for every address in ipList, you can parse the list of statistics returned by callback (see the StartCollector command) to obtain any specific statistic.
AddSIPPerStreamStat arguments
This is the utility for SIP per stream statistics.

Option

Usage

statSourceType

The agent type that generates the per stream statistics. This is a two part name of the form: SIP Client/Server Per Stream
Some examples are: "SIP Client Per Stream""SIP Server Per Stream"

statList

This is a list of statistic name and aggregation function pair. statList - list of {statName, aggregationFunction} like {"Packets"
"kSum"} {"Mos_Value" "kString"}

instanceList

This is the list of packets specified for the SIP port for collectthe statistics. list of {port, sipClientAgentName, index of Caller or Called}

AddVideoPerStreamStat arguments
This is the utility for video per stream statistics.

Option

Usage

statSourceType

The agent type that generates the per stream statistics. This is a two part name of the form: Video Client/Server Per Stream
For example: "Video Client Per Stream""Video Server Per Stream"

IxLoad Tcl API Programming Guide

161

IxLoad Tcl API Commands

statList instanceList

This is a list of statistic name and aggregation function pair. list of {statName, aggregationFunction}\
This is the list of packets specified for the video port for collecting the statistics. list of {port, videoClientAgentName, index of User, index of Entry}

ClearStats
Clears all statistical data from a previous or aborted run.
Initialize -testIOR $testIOR
Initializes the statistics utility package. $testIOR is the value returned from a call to ixTestController's getTestServerHandle subcommand. See the following example:
set tc [::IxLoad new ixTestController] ::statCollectorUtils::Initialize -testIOR [$tc getTestServerHandle]
SetCsvVersion <buildNumber>
Allows the stat names written to the CSV to be the same as would be the case if generated by the given buildNumber or special constant. The build number must be in dotted-quad notation (a.b.c.d). The build number is part of the installation path when IxLoad is installed, and is also available in the release notes for that release. buildNumber must be 5.0.117.0 or greater. If set to anything less than 5.0.117.0, the value is ignored.

Special Con- Description stant

rxf

Uses the build number of the version of IxLoad that most recently saved the repos-

itory.

If the TCL API does not load a repository, then it uses the build number of the current instance of IxLoad.

current

Uses the build number of current instance of IxLoad in all cases.

set tc [::IxLoad new ixTestController] ::statCollectorUtils::SetCsvVersion 5.0.280.0
SetCsvThroughputUnits <throughputUnits>
Defines the units used for throughput statistics written to the CSV files. throughputUnits can be one of: Bps (bytes per second, the legacy unit), Kbps, Mbps, or Gbps.
This overrides any IxAppOption.ini entry, allowing allowing your script to determine the units used for throughput statistics written to the CSV files.

162

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

StartCollector -command tclCommand -interval value
Initiates the operation of the statistics collection process, registering the name of a user supplied command (tclCommand), which will be called at -interval when new statistics are received. Callback Command Invocation
The statistics callback interval (-interval) must be set manually. It is not set by the csvInterval parameter (see ixTest). To invoke the statistics callback, define the statistics as a set of name-value pair arguments of the form: {timestamp 1102900690000 stats {{kInt 1659316} {kInt 58998232}}}
The pairs are:

Option

Usage

timestamp The number of milliseconds from the time that the test started.

stats

A list of pairs, one per statistic registered with AddStat in the order registered. The first member of each pair indicates the data type of the value, one of:
l kInt -an integer value. l kStr -a string. For example: {this is a string}.

StopCollector
Stops the operation of the statistics collector.
OPTIONS
None.
EXAMPLE

#-----------------------------------------------------------------------# Set up stat Collection#----------------------------------------------------------------------set NS statCollectorUtilsset ::test_server_handle [$testController getTestServerHandle]${NS}::Initialize -testServerHandle $::test_server_handle#----------------------------------------------------------------------# Clear any stats that may have been registered previously#----------------------------------------------------------------------${NS}::ClearStats#----------------------------------------------------------------------# Define the stats we would like to collect#----------------------------------------------------------------------${NS}::AddStat \-caption "Watch_ Stat_1" \-statSourceType "HTTP Client" \-statName "HTTP Bytes Sent" \-aggregationType kSum \-filterList {}

${NS}::AddStat \-caption "Watch_Stat_2" \-statSourceType "HTTP Client" \-statName "HTTP Bytes Received" \-aggregationType kSum \-filterList {}

${NS}::AddStat \-caption "Watch_Stat_3" \-statSourceType "HTTP Client" \-statName

IxLoad Tcl API Programming Guide

163

IxLoad Tcl API Commands

"HTTP Time To Last Byte (ms)" \-aggregationType kWeightedAverage \-filterList {}

${NS}::AddStat \-caption "Watch_Stat_4" \-statSourceType "HTTP Client" \-statName "HTTP Bytes Sent" \-aggregationType kRate \-filterList {}

${NS}::AddStat \-caption "Watch_Stat_5" \-statSourceType "HTTP Client" \-statName "HTTP Bytes Received" \-aggregationType kRate \-filterList {}#----------------------------------------------------------------------# Define the L2/L3 stats we would like to collect#----------------------------------------------------------------------${NS}::AddL2L3Stat \-caption "Watch_Stat_L2L3_3" \-statSourceType "PortMonitor" \-statName "Frames Sent" \-aggregationType kNone \-filterList {}#----------------------------------------------------------------------# Define the network stats we would like to collect#----------------------------------------------------------------------

set ::netstatList { \{"IPSec" "Interface ID" "kString"} \{"IPSec" "Status"

"kString"} \{"IPSec" "NAT-T" "kString"} \{"IPSec" "DPD" "kString"}

\{"IPSec"

"Total Retries" "kSum"} \{"IPSec" "Total Latency" "kSum"}

\{"IPSec" "Encap-

sulation Protocols" "kString"}

\{"IPSec" "Encapsulation Mode" "kString"}

\

{"IPSec" "Initiator Subnet" "kString"}

\{"IPSec" "Initiator IP Address"

"kString"}

\{"IPSec" "Responder IP Address" "kString"} \{"IPSec" "Responder Sub-

net" "kString"} \}

foreach statItem $::netstatList {

set caption

[format "Watch_

Stat_%s" $count]set statSourceType [lindex $statItem 0]set statName

[lindex

$statItem 1]set aggregationType [lindex $statItem 2]

${NS}::AddNetworkStat \-caption

$statSourceType \-statName

\-filterList

{}

$caption \-statSourceType $statName \-aggregationType $aggregationType

incr count}

# Start the collector (runs in the tcl event loop)#proc ::my_stat_collector_command {args} { puts "=====================================" puts "INCOMING STAT RECORD >>> $args" puts "Len = [llength $args]" puts [lindex $args 0] puts [lindex $args 1] puts "====================================="}

${NS}::StartCollector -command ::my_stat_collector_command -interval 2

#----------------------------------------------------------------------- # Run the test #-------------------------------------------------------------------

164

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
---- $testController run $test
#----------------------------------------------------------------------- # have the script (v)wait until the test is over #----------------------------------------------------------------------
vwait ::ixTestControllerMonitor; puts $::ixTestControllerMonitor
#----------------------------------------------------------------------# Stop the collector (running in the tcl event loop) #----------------------------------------------------------------------${NS}::StopCollector
SEE ALSO
ixTestController ixTestControllerMonitor ixTest
ixScriptGen
ixScriptGen-Generates a tcl script (TCL file).
SYNOPSIS
set scriptGenObj [::IxLoad new ixScriptGen]
DESCRIPTION
A scriptGen object is created and configured. scriptGen can generate a Tcl script for the following: l Complete test l NetTraffics l Activities l Networks
SUBCOMMANDS
None.
OPTIONS
fileName

IxLoad Tcl API Programming Guide

165

IxLoad Tcl API Commands

Specifies the name and path of the script to be generated. includeStats
If true, the script includes code to record the default statistics for each activity in the test. If false, the script does not include any code to record statistics. configSetting
This option determines whether or not the generated script includes code that sets the test control options to their default values.

Option

Usage

kConfigWriteAll

Generates a script that includes all the test control code, including code that sets the configuration options to their default val

kConfigComment Generates a script that comments out test control code that sets options to their default values.

kConfigOmit

Generates a script that only includes test control code for options set to nondefault values.

EXAMPLE
# Scriptgen for a complete script#----------------------------------------------------------"if {$::tcl_platform(platform) == "windows"} {package require registry 1set ::_IXLOAD_INSTALL_ROOT [registry get {HKEY_LOCAL_MACHINE\Software\Ixia Communications\IxLoad\InstallInfo} HOMEDIR]set ::_IXLOAD_PKG_DIR [file join $::_IXLOAD_ INSTALL_ROOT Client tclext teepee stage]
lappend ::auto_path $::_IXLOAD_PKG_DIR}package require IxLoad::IxLoad connect 1.2.3.4if [catch {set logtag "IxLoad-api"set logName "scriptgen"set logger [::IxLoad new ixLogger $logtag 1]set logEngine [$logger getEngine]$logEngine setLevels $::ixLogger(kLevelDebug) $::ixLogger(kLevelInfo)$logEngine setFile $logName 2 256 1
#--------------------------------------------------------------# Create a test controller bound to the previosuly allocated# chassis chain. This will eventually run the test we created earlier.#-------------------------------------------------------------set testController [::IxLoad new ixTestController -outputDir 1]$testController setResultDir "[pwd]/RESULTS/reprun"## Load the repository#set repository [::IxLoad new ixRepository -name {E:\ixweb\ixweb\3.20\automation\B2B_310_IMAP_RTSP_ TELNET_POP\Repository\IMAP_dns_all_atomic_level_cmd_ipv4.rxf}]
set testName [$repository testList(0).cget -name]set test [$repository testList.getItem $testName]

166

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
set scriptGenObj [::IxLoad new ixScriptGen]$scriptGenObj config \ -fileName {E:\ixweb\ixweb\3.20\automation\B2B_310_IMAP_RTSP_TELNET_POP\Repository\IMAP_dns_all_atomic_level_cmd_ipv4_new.tcl} \ -includeStatsFalse \ -configSetting$::ixScriptGen(kConfigWriteAll) $scriptGenObj scriptGen $test}] {puts $errorInfo}::IxLoad disconnect
SEE ALSO
ixNetTraffic
ixTimeline
ixTimeline-Configures the time in the test when the activities in the NetTraffics come online, and how long they stay up for. It is also used to configure the test's objectives.
SYNOPSIS
set Activity_HTTPClient1 [$Traffic1_Network1 activityList.appendItem options...] set Timeline [::IxLoad new ixTimeline] options...
DESCRIPTION
The ixTimeline command is used to create a test scenario. It controls the times and rates at which Activities come online (rampUp), the length of time they stay up for (sustainTime), and the rate at which they go offline (rampDown).
There are two types of Timelines:
Basic: A Basic timeline controls activities linearly -- the rampUp, sustain, and rampDown phases are straight lines, and the rampUp, sustain, and rampDown occur at steady rates, either increasing (rampUp), static (sustain) or decreasing (rampDown). Advanced: An advanced timeline allows you to plan the traffic shape to the objectValue, such as pulses or bursts. An Advanced timeline displays the rampUp, sustain, and rampDown phases as segments. There are five types of segments: Linear: a constant-slope segment that starts with the current objective value and ends at the End Objective Value value. Step: a classic stair step pattern that starts with the current objective value and ending after a number of fixed deltas.

IxLoad Tcl API Programming Guide

167

IxLoad Tcl API Commands

Burst: a burst segment starts with the current objective value and ends to the same objective value. Burst segments produce a symmetrical triangular shape fluctuation. Pulse: a pulse segment starts with the current objective value and ends to the same objective value. Pulse segments produce a symmetrical pulse shape fluctuation, with an increase in rate,a duration of time spent at the new peak and then drop to the starting value. Poisson: a poisson segment introduces a logarithmic noise element into the objective value.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS (BASIC TIMELINE)
rampUpValue
Value applied to rampUpType to either bring up users at a certain rate (Users per second or to maintain a pool of users waiting to establish connections (MaxUsers). rampUpType
Ramp-up type used by timeline. One of:

Value Description

-2

Mixed (may be displayed when ramp-up value is retrieved for a community of mixed activ-

ities)

-1

N/A

0

Users per second

1

Maximum pending users

2

Smooth users

offlineTime
The amount of time agents are idle between iterations. (Default = 0). This is also applicable to advanced timeline. rampDownTime
Amount of time used for closing any TCP connections that are still open after all transactions are complete. rampDownTime applies only to client activities. standbyTime

168

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
The amount of time, expressed in seconds, that elapses between the time the test is started and the time that the traffic-network pair become active. The valid range is from 0 to 1,000 hours (3,600,000). (Default = 0). This is also applicable to advanced timeline. iterations The number of times that the traffic-network pair perform their functions (establishing TCP connections, retrieving FTP files, and so forth) in the test. (Default = 1). This is also applicable to advanced timeline. rampUpInterval This field accepts integer values. The value for this option will be considered only when rampUpType is usersPerSecond. You can edit the value to increment or decrement the number of users to be started at every rampUpInterval. (Default = 1). sustainTime Amount of time when all users are up and performing the central test objectives, such as retrieving or serving pages (HTTP), or sending or receiving files (FTP). timelineType Denotes the type of phase in a section of the timeline. This is also used with the advanced timeline options. name Name of the Timeline.
OPTIONS (ADVANCED TIMELINE) ixLinearTimeSegment
duration The length of time that the segment lasts. noiseAmplitudeScale Amount of Gaussian noise added during the segment. No noise is added to the last point in the segment so that the segment can end at the specified End Objective Value endObjectiveScale The value of the objective at the end the segment.
ixPoissonTimeSegment
duration The length of time that the segment lasts

IxLoad Tcl API Programming Guide

169

IxLoad Tcl API Commands
averageScale Number used to compute the Poisson distribution for the segment noiseAmplitudeScale Amount of Gaussian noise added during the segment. No noise is added to the last point in the segment so that the segment can end at the specified End Objective Value
ixPulsesTimeSegment
amplitudeIncrementStepScale Additional gain in height (amplitude) from one pulse to the next. pulseRampDownDuration Amount of time allocated to the ramping-down of the pulse. pulseRampUpDuration Amount of time allocated to the rising edge of the pulse. numberOfRepetitions Number of steps. Minimum of 1. pulseOfflineDuration Time between pulses. pulseSustainDuration Length of time that the pulse occupies at the new peak value. noiseAmplitudeScale Amount of Gaussian noise added during the segment. No noise is added to the last point in the segment so that the segment can end at the specified End Objective Value. startingPulseAmplitudeScale Height (amplitude) of the first pulse.
ixBurstsTimeSegment
noiseAmplitudeScale Amount of Gaussian noise added during the segment. No noise is added to the last point in the segment so that the segment can end at the specified End Objective Value

170

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
numberOfRepetitions Number of steps. Minimum of 1 startingBurstHeightScale Height (amplitude) of the first burst. burstIncrementStepScale Additional gain in height (amplitude) from one burst to the next. burstDuration Length of time that the burst occupies burstSkew Bias applied to the burst curve: Symmetric: No bias (curve has identical slopes on both sides). Left: Curve is biased to the left (left side of the curve is steeper than the right). Right: Curve is biased to the right. (right side of the curve is steeper than the right) burstOfflineDuration Time between bursts.
ixStepsTimeSegment
stepHeightScale Height of the step. noiseAmplitudeScale Amount of Gaussian noise added during the segment. No noise is added to the last point in the segment so that the segment can end at the specified End Objective Value stepSustainDuration Length of time spent at the new peak objective value. stepRampDuration Length of time allocated to the rise to the new peak value. numberOfRepetitions Number of steps. Minimum of 1.
EXAMPLE
set Steps_Segment_0 [::IxLoad new ixStepsTimeSegment]$Steps_Segment_0 config \ -

IxLoad Tcl API Programming Guide

171

IxLoad Tcl API Commands

stepHeightScale 0.0 \ -stepSustainDuration 20 \ -numberOfRepetitions

0.1 \ -noiseAmplitudeScale 20 \ -stepRampDuration
3

$my_ixAdvancedIteration appendSegment $Steps_Segment_0

set Bursts_Segment_1 [::IxLoad new ixBurstsTimeSegment]$Bursts_Segment_1 config \ -

noiseAmplitudeScale

0.0 \ -numberOfRepetitions

3 \ -startingBurstHeightScale

0.1 \ -burstIncrementStepScale

0.1 \ -burstDuration

20 \ -burstSkew

0 \ -burstOfflineDuration

20

$my_ixAdvancedIteration appendSegment $Bursts_Segment_1

set Pulses_Segment_2 [::IxLoad new ixPulsesTimeSegment]$Pulses_Segment_2 config \ -

amplitudeIncrementStepScale

0.1 \ -pulseRampDownDuration t

SEE ALSO

ixNetTraffic

ixSubscriberNetTraffic
ixSubscriberNetTraffic-Special type of NetTraffic that simulates the traffic patterns created by residential customers that receive voice, video, and data service (Triple-play) over a single physical connection (usually a cable or DSL connection).
SYNOPSIS
set Subscriber1_Network1 [::IxLoad new ixSubscriberNetTraffic]
DESCRIPTION
Configuring an ixSubscriberNetTraffic is similar to configuring an ixNetTraffic. However, there are some differences:
Network and Protocols: Configuring a Subscriber is similar to configuring a NetTraffic. However, only the following protocols are supported:

DHCP

FTP

HTTP IMAP

IPTV/ Video LDAP

MGCP POP3

RADIUS

RTSP

SIP

SMTP

SSH

TraceFileReplay Telnet DNS

172

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

objectiveType: The only objectiveType available for a Subscriber is simulatedUsers.

OPTIONS
Refer ixNetTraffic for information on the options.

EXAMPLE

set Subscriber1_Network1 [::IxLoad new ixSubscriberNetTraffic]set Subscriber_Activ-

ity_HTTPClient1 [$Subscriber1_Network1 activityList.appendItem \-protocolAndType

"HTTP Client" ]$Subscriber1_Network1 config \-enable

true \-network

$Network1$Subscriber1_Network1

traffic.config \-name

"Subscriber1"

SEE ALSO

ixNetTraffic

ixBandwidthLimit

ixNetTraffic
ixNetTraffic-Define client and server traffic.
SYNOPSIS
set HTTP_client_client_network [::IxLoad new ixNetTraffic]
DESCRIPTION
The ixNetTraffic command is used to configure client or server traffic. Two separate ixNetTraffic objects have to be created for client and server traffic. The ixNetTraffic configuration also declares the ixNetworkGroup object. The activityList options are also configured. You can copy objects from used NetTraffic to another. See duplicate (see "duplicate").
OPTIONS Enabling Options
enable This enables the client or server network. network This specifies the name of the client or server network object.
activityList Configuration Options
enable If true, this mapping is included in the IxLoad test. (Default = true).

IxLoad Tcl API Programming Guide

173

IxLoad Tcl API Commands

name
Name of the activityList config object. Default = "newClientActivity1".
enableConstraint
Currently, constraints can be set on activities that run rate-based objectives, like connectionRate, transactionRate, throughput objectives. This option enables the constraint. Default = false.
constraintValue
If enableConstraint is true, this option defines the constraint value. Default =100.
timeline
Represents the name of the ixTimeline object.
userObjectiveType
userObjectiveType is the recommended way to set the objective. This is the Objective Type that is displayed in the GUI, and should be the most meaningful. Changing the userObjectiveType will result in an automatic change to the objectiveType.
For most protocols, the userObjectiveType and the objectiveType are the same, but protocols can define their own userObjectiveTypes when it makes sense to do so. For example, SIP defines the channels userObjectiveType that corresponds to an underlying objectiveType of simulatedUsers. See the individual protocols for a description of the userObjectiveTypes they accept and how they are translated to the objectiveType.

Option userAgents callsPerSecond bhca
registrationsinitiated

Usage
The objective is to sustain some number of SIP calls simultaneously. Specify the desired number of UserAgents in the objectiveValue option.
The objective is to establish a certain number of SIP calls per second. Specify the desired number of calls to establish per second in the objectiveValue option.
The objective is to establish a certain number of SIP calls per hour. Specify the desired number of calls to establish per hour in the objectiveValue option. Busy hour call attempts (BHCA) is a standard measure of the number of calls completed during a busy hour, the 60-minute period when the maximum traffic load occurs within a given 24-hour period.
The objective is to establish a certain number of call registrations of SIP. Specify the desired number of registrations in the objectiveValue option.

174

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

redirectionsinitiated

The objective is to establish a certain number of call redirections of SIP. Specify the desired number of redirections in the objectiveValue option.

transactionAttemptRate The objective is to issue some number of DNS query per second. The number of DNS query is mentioned in the userObjectiveValue option.

queriespersecond

The desired number of DNS query per second.

connectionAttemptRate

The objective is achieved if IxLoad succeeds in making the specified number of attempts to connect to the HTTP server or DUT.
Specify the desired number of attempted connections per second in the userObjectiveValue option.

streams

The objective is to monitor some number of multicast or unicast video or audio streams. Specify the desired number of streams in the userObjectiveValue option.

userObjectiveValue
The test objective value applied to the userObjectiveType. Default=100.
Note that some protocol-specific objectiveTypes apply scaling values to the value.
l bhca is mapped to transactionRate with a scaling factor of 3600. l callsPerSec is mapped to transactionRate with a scaling factor of 1. l userAgents is mapped to simulatedUsers with a scaling factor of 1. l registrationsinitiated is mapped to transactionRate with a scaling factor of 1. l redirectionsinitiated is mapped to transactionRate with a scaling factor of 1.
objectiveValuePercent
Expresses the objective of the NetTraffic or agent as a percentage of the userObjectiveValue. (Default="")
If you use ScriptGen to create a Tcl script, the ScriptGen allows you to script the test objective values as absolute values or as percentages of the overall test objective.
If you choose to script the objectives as percentages, the output depends on how the activities are grouped. If the activities are grouped by NetTraffic, the script will contain a user objective for the NetTraffic (the community) and a percentage value for each activity:
$Traffic1_Network1 config \ -enable true \ -totalUserObjectiveValue 200 \ -userObjectiveType "simulatedUsers" \ -tcpAccelerationAllowedFlag true \ -network $Network1
$Activity_HTTPClient1 config \ -secondaryConstraintValue 100 \

IxLoad Tcl API Programming Guide

175

IxLoad Tcl API Commands
-enable true \ -name "HTTPClient1" \ -userIpMapping "1:1" \ -enableConstraint false \ -objectivePercent 50.0 \ -timerGranularity 100 \ -secondaryEnableConstraint false \ -constraintValue 100 \ -secondaryConstraintType "TransactionRateConstraint" \ -constraintType "ConnectionRateConstraint" \ -destinationIpMapping "Consecutive" \ -timeline $Timeline1
If the grouping is by objective type, the script will contain a totalUserObjectiveValue that sets the total of the objective values for all the activities, followed by a list of <objective type, objective value> pairs and an objectivePercent option that sets the percentage value assigned to each activity.
$Test1 totalUserObjectiveInfoList.clear set my_ixTotalUserObjectiveInfo [::IxLoad new ixTotalUserObjectiveInfo] $my_ixTotalUserObjectiveInfo config \ -userObjectiveType "Simulated Users" \ -totalUserObjectiveValue 200
$Test1 totalUserObjectiveInfoList.appendItem -object $my_ixTotalUserObjectiveInfo
$Activity_HTTPClient1 config \ -secondaryConstraintValue 100 \ -enable true \ -name "HTTPClient1" \ -userIpMapping "1:1" \ -enableConstraint false \ -objectivePercent 50.0 \ -timerGranularity 100 \ -secondaryEnableConstraint false \ -constraintValue 100 \ -secondaryConstraintType "TransactionRateConstraint" \ -constraintType "ConnectionRateConstraint" \ -userObjectiveType "simulatedUsers" \ -destinationIpMapping "Consecutive" \ -timeline $Timeline1
totalUserObjectiveValue
Total objective value of all the activities in the NetTraffic that have the same objective type. See objectiveValuePercent. (Default="")
Traffic Map Setup Options
portMapPolicy

176

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

This option controls the sequence in which the client ports connect to the server ports. One of:

Option

Usage

$::ixPortMap

(Default). Client agents connect to server agents on a one-to-one

(kPortMapRoundRobin) basis.

or "portPairs"

$::ixPortMap (kPortMapFullMesh) or "portMesh"

Agents on every client port connect to every server port.

$::ixPortMap (kPortMapIpPair) or "ipPair"

Each simulated user on the client side comwith only one server IP address. This choice is only valid for SIP agents.

$::ixPortMap (kPortMapCustom) or "custom"

Each custom port map has a list of IPv4 suband IPv6 submaps. You can create a Custom traffic map. In a Custom traffic map, you select the client and server IP address ranges that will send traffic to each other.
To create a Custom traffic map, the subnet's rangeType parameter must be set to IP Only (Ethernet).

For large numbers of ports, the Port Pair sequence scales performance better than the Port Mesh sequence.
The operation of Port Pairs can be described by three scenarios:
l If the number of client ports is equal to the number of server agents, client ports will establish connections to server ports on a one-to-one basis.
l If the number of client ports is less than the number of server ports, the client ports will establish connections to the server ports on a one-to-one basis until all client ports are paired with server ports. The remaining server ports will not be used.
l If the number of client ports is greater than the number of server ports, the client ports will establish connections to the server ports on a one-to-one basis until all server ports are paired with client ports. Then, the remaining client ports will return to the first server port and continue pairing themselves with server ports.
The ixCustomPortMap customizes the order and frequency, by which client IPs will access server IPs.
Each custom port map has a list of IPv4 submaps and IPv6 submaps. There will be a list for the appropriate IP type if any ranges of that type appear in the network for the symbolic destination. When a submap list is initialized, it will have a single submap that will be a full IP mesh, if that type is available. If only VLAN maps are allowed, then it will be a vLAN pairs map instead. If a submap is appended to the list, by default it will be a copy of the last submap in the list, unless values are passed in. set destination [$HTTP_client_client_network getDestinationForActivity "newClientActivity1" "HTTP server_newServerActivity1"]$destination config \-portMapPolicy

IxLoad Tcl API Programming Guide

177

IxLoad Tcl API Commands

"portMesh"

Configuring Traffic

name

The configuration that is set in the protocolAndType option for activityList. $HTTP_client_client_network traffic.config \-name
"HTTP client"$Client elementList.appendItem -object $HTTP_client_client_network

EXAMPLE

set HTTP_client_client_network [::IxLoad new ixNetTraffic]

$HTTP_client_client_network config \

-enable

1\

-network

$client_network

$HTTP_client_client_network traffic.config \

-name

"HTTP client"

$Activity_newAgent1 config \

-enable

1\

-name

"newClientActivity1" \

-enableConstraint

false \

-userObjectiveValue

100 \

-constraintValue

100 \

-userObjectiveType

"simulatedUsers" \

-timeline

$Timeline1

$Client elementList.appendItem -object $HTTP_client_client_network

#################################################

# Destination newServerActivity1 for newClientActivity1

#################################################

set destination [$HTTP_client_client_network getDestinationForActivity "newClientActivity1" "HTTP server_newServerActivity1"]

$destination config \

-portMapPolicy

"portMesh"

178

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

SEE ALSO
ixSubscriberNetTraffic

activityList

activityList-Generates traffic for one side of a particular protocol. For example, an HTTP client Activity generates HTTP client requests, simulating a web browser.

SYNOPSIS
set HTTP_client_client_network [::IxLoad new ixNetTraffic]set Activity_newAgent1 [$HTTP_client_client_network activityList.appenoptions..]
DESCRIPTION
The activityList is used to generate traffic for one side of a particular protocol.
An Activity is added to the ixNetTraffic object using appendItem subcommand. Agents are added to the activity using the agent.config subcommand.
The protocolAndType is a required field. These define a particular type of agent; and the side of the communication. The agent definition should include options which are specific to a particular protocol, and defined in their respective appendix.

OPTIONS
protocolAndType
Protocol is the name of the protocol (for example, HTTP). Type denotes the side of the connection, that is, client or server.

EXAMPLE

set HTTP_client_client_network [::IxLoad new ixNetTraffic]#-------------------------

-------------------------------------# Activity newAgent1 of NetTraffic HTTP cli-

ent@client network#-----------------------------------------------------------set

Activity_newAgent1 [$HTTP_client_client_network activityList.appendItem \-

protocolAndType

"HTTP Client" ]

SEE ALSO

ixNetTraffic

ixTrafficFlow
ixTrafficFlow-Lists the test scenario.

IxLoad Tcl API Programming Guide

179

IxLoad Tcl API Commands
SYNOPSIS
set TrafficFlow1 [::IxLoad new ixTrafficFlow]$TrafficFlow1 config \ options...
DESCRIPTION
The ixTrafficFlow command is used to list the test scenario. Traffic Flow object is appended to the ixTest object.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
name This represents the name of the trafficflow object.
EXAMPLE
set TrafficFlow1 [::IxLoad new ixTrafficFlow]$TrafficFlow1 config \ -name "TrafficFlow1" $TrafficFlow1 columnList.clear
SEE ALSO
ixTrafficColumn
ixTrafficFlow-A container of ixNetTraffic and ixDut objects.
SYNOPSIS
set TrafficFlow1 [::IxLoad new ixTrafficFlow] $TrafficFlow1 config \ options...
DESCRIPTION
The ixTrafficColumn command is used to define and configure client, server and DUT objects. The client, server and DUT objects are appended to the ixTrafficFlow object.

180

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
name This represents the name of the trafficcolumn object.
EXAMPLE
set Client [::IxLoad new ixTrafficColumn]$Client config \ -name "Client" $Client elementList.clear$TrafficFlow1 columnList.appendItem -object $Clientset DUT [::IxLoad new ixTrafficColumn]$DUT config \ -name "DUT" $DUT elementList.clear$TrafficFlow1 columnList.appendItem -object $DUTset Server [::IxLoad new ixTrafficColumn]$Server config \-name "Server"$Server elementList.clear$TrafficFlow1 columnList.appendItem -object $Server
SEE ALSO
ixTrafficFlow
ixNetworkGroup
ixNetworkGroup-Configures the client and server network.
SYNOPSIS
set network [::IxLoad new ixNetworkGroup options]$network config \ options...
DESCRIPTION
The ixNetworkGroup object is used to configure the client and server network. The client or server network is used by the ixNetTraffic object to map to the nettraffic.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

IxLoad Tcl API Programming Guide

181

IxLoad Tcl API Commands

OPTIONS
The main options for this command are described in ixDHCP and ixStatCatalogItem. Additional options are listed below.
aggregation
On a card that supports aggregating ports such as the ASM1000XMV12X, this option sets the port aggregation. If you set the aggregation mode to 1G, you must set the active port (see activePortList).
The following values are supported for aggregation:

Value

Enum

Description

kNonAggregated 0 (default) Not aggregated

k1GAggregated 1

1G Aggregated

k10GAggregated 2

10G Aggregated

For example: $Net_Traffic1 config \ -aggregation 1 For an example of how to use an aggregating load module in a script, see the example in the Tcl API \ Samples \ Network directory. activePortList
List of active ports in a group of 1G aggregated ports. For each NetTraffic that uses 1G aggregated ports, there must be an activePortList that defines the active port. If ports from multiple cards are aggregated, there must be an active port for each card. Example: $Net_Traffic1 activePortList.appendItem \ -chassisId 1 \ -cardId 2 \ -portId 1

EXAMPLE

#------------------------------------------------------------# Network client net-

work of NetTraffic HTTP client@client network#--------------------------------------

----------------------set client_network [::IxLoad new ixNetworkGroup

$chassisChain]$client_network config \-comment

"" \-

name

"client network" \-emulatedRouterSubnetIPv6

182

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0" \-linkLayerOptions

0 \-

ipSourcePortFrom

1024 \-emulatedRouterGatewayIPv6

"::" \-cardType

"ALM1000T8-1GB" \-

emulatedRouterGateway

"0.0.0.0" \-ipSourcePortTo

65535 \-emulatedRouterSubnet

"255.255.255.0" \-macMappingMode

0 \-dnsParameters

$my_ixDns \-tcpParameters

$my_ixTcpParameters \-impairment

$my_ixImpairment \-

arpSettings

$my_ixArpSettings

SEE ALSO

ixNetworkRange

ixDut
ixDut-Defines a DUT.
SYNOPSIS
set DUT1 [::IxLoad new ixDut] $DUT1 subcommand options...
DESCRIPTION
The ixDut command is used to define a DUT used in the test. The DUTs are used to resolve symbolic references in traffic destinations in the various protocol agents. It also controls several DUT specific features. DUTs are added to the ixTest object using appendItem. For example, set DUT1 [::IxLoad new ixDut]$DUT1 config \ -comment "" \ -type "VirtualDut" \ -name "DUT1" \ -dutConfig $my_ixDutConfigVirtual
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
comment A comment associated with this DUT. (Default = ""). name

IxLoad Tcl API Programming Guide

183

IxLoad Tcl API Commands

The name associated with the DUT. (Default = "DUT1"). type The type of DUT in use. One of:

Option

Usage

ExternalServer

The DUT is a protocol server.

ServerLoadBalancer The DUT is a server load balancer.(Default)

Firewall

The DUT is a firewall.

VirtualDut

The DUT is a virtual DUT

dutConfig

The object instance of the DUT type.

EXAMPLE

set DUT1 [::IxLoad new ixDut]$DUT1 config \-comment

"" \-type

"VirtualDut" \-name

"DUT1" \-dutConfig

$my_ixDutConfigVirtual$DUT ele-

mentList.appendItem -object $DUT1$New_Traffic_Flow columnList.appendItem -object

$DUT

SEE ALSO

ixTest ixStatCatalogItem

ixDutConfigVirtual
ixDutConfigVirtual-Configures a virtual DUT.
SYNOPSIS
set my_ixDutConfigVirtual [::IxLoad new ixDutConfigVirtual] $my_ixDutConfigVirtual subcommand options...
DESCRIPTION
The ixDutConfigVirtual command is used to: l Define a range of IP addresses for the DUT, instead of the single address that the other DUT Types allow. l Specify the TCP/UDP ports that the Virtual DUT listens on, on a per-protocol basis.

184

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

Virtual DUTs are added to the ixDut object as an option. For example, set my_ixDutConfigVirtual [::IxLoad new ixDutConfigVirtual]$my_ixDutConfigVirtual config$my_ixDutConfigVirtual networkRangeList.clearset DUT1 [::IxLoad new ixDut]$DUT1 config \
-comment "" \
-type "VirtualDut" \
-name "DUT1" \
-dutConfig $my_ixDutConfigVirtual

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
ixDutNetworkRange and ixDutProtocolPortRange are appended to the ixDutConfigVirtual object.

EXAMPLE

set my_ixDutConfigVirtual [::IxLoad new ixDutConfigVirtual]$my_ixDutConfigVirtual

config$my_ixDutConfigVirtual networkRangeList.clearset Network_Range_1_in_DUT1__1_1_

1_1_100_ [::IxLoad new ixDutNetworkRange]$Network_Range_1_in_DUT1__1_1_1_1_100_ con-

fig \-vlanUniqueCount

4094 \-firstIp

"1.1.1.1" \-enable

true \-name

"Network Range 1 in DUT1 (1.1.1.1+100)" \-vlanEnable

true \-vlanId

1 \-innerVlanEnable

false \-ipIncrStep

"0.0.0.1" \-networkMask

"255.255.0.0" \-ipType

1 \-vlanIncrStep

1 \-vlanCount

1 \-ipCount

100$my_ixDutConfigVirtual networkRangeList.appendItem -object $Network_Range_1_in_

DUT1__1_1_1_1_100_$my_ixDutConfigVirtual protocolPortRangeList.clearset my_ixDutPro-

tocolPortRange [::IxLoad new ixDutProtocolPortRange]$my_ixDutProtocolPortRange con-

fig \

-portRanges "1001,1002,1003-1006" \

-protocol "HTTP"

$my_ixDutConfigVirtual protocolPortRangeList.appendItem -object $my_ixDutPro-

tocolPortRangeset DUT1 [::IxLoad new ixDut]$DUT1 config \-comment

"" \-type

"VirtualDut" \-name

"DUT1" \-dutConfig

$my_ixDutConfigVirtual$DUT ele-

mentList.appendItem -object $DUT1

SEE ALSO

ixDut

IxLoad Tcl API Programming Guide

185

IxLoad Tcl API Commands
ixDutNetworkRange
ixDutNetworkRange-Defines the one range of IP addresses (a subnet) that the Virtual DUT will have. Subnets defined here should match the subnets configured on the actual DUT.
SYNOPSIS
set Network_Range_1_in_DUT1__1_1_1_1_100_ [::IxLoad new ixDutNet$Network_Range_1_in_ DUT1__1_1_1_1_100_ subcommand options...
DESCRIPTION
Defines the one range of IP addresses (a subnet) that the Virtual DUT will have. Subnets defined here should match the subnets configured on the actual DUT. The Range of IP addresses are added to the ixRepository object. For example, set Network_Range_1_in_DUT1__1_1_1_1_100_ [::IxLoad new ixDutNetworkRange]$Network_ Range_1_in_DUT1__1_1_1_1_100_ config
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
vlanUniqueCount Specifies the number of VLAN IDs to create. firstIp This is the First IP address on the subnet, and subnet mask. Enter the subnet in /<bits> format, following the IP address. For example, to specify an address of 198.162.0.1 with a subnet of 255.255.0.0, enter: 198.162.0.1/16 (Default = "1.1.1.1" ). enable If true this makes a subnet active. Only traffic from active subnets can be meshed meshed; inactive subnets are not used. Default = true. name Specifies the name of the Network Range. vlanEnable Enable this if the actual DUT uses VLANs. Default = false. vlanId

186

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

Value of first 802.1Q VLAN tag. ipIncrStep
Amount of increase in the IP address used to create additional IP addresses on the subnet, and octet that will be incremented. Default = "0.0.0.1". networkMask
This specifies the subnet mask. Default = "255.255.0.0". ipType
Specifies the type of addressing for the subnet: IPv4 or IPv6. IxLoad supports all forms of IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4"). You must select the same type of addressing used on the corresponding subnet on the actual DUT. Default = 1. vlanIncrStep
Amount of increase in the VLAN ID. IxLoad applies this value to the ID to create the complete list of VLAN IDs that will be meshed. Default = 1. vlanCount
Number of VLAN IDs to create. Default = 1. ipCount
Number of IP addresses on this subnet.

EXAMPLE

set Network_Range_1_in_DUT1__1_1_1_1_100_ [::IxLoad new ixDutNetworkRange]$Network_

Range_1_in_DUT1__1_1_1_1_100_ config \-vlanUniqueCount

4094

\-firstIp

"1.1.1.1" \-enable

true \-name

"Network Range 1 in DUT1

(1.1.1.1+100)" \-vlanEnable

true \-vlanId

1 \-innerVlanEnable

false \-ipIncrStep

"0.0.0.1" \-networkMask

"255.255.0.0" \-ipType

1 \-vlanIncrStep

1 \-vlanCount

1 \-ipCount

100

SEE ALSO

ixDut ixDutConfigVirtual

IxLoad Tcl API Programming Guide

187

IxLoad Tcl API Commands

ixDutProtocolPortRange
ixDutProtocolPortRange-defines a protocol that the Virtual DUT listens for, and the ports that it listens of for that protocol.

SYNOPSIS
set my_ixDutProtocolPortRange [::IxLoad new ixDutProtocolPortRange] $my_ixDutProtocolPortRange subcommand options...

DESCRIPTION
Defines a protocol that the Virtual DUT listens for, and the ports that it listens of for that protocol. The ProtocolPortRange object is appended to the ixDutConfigVirtual object. For example, $my_ixDutConfigVirtual protocolPortRangeList.appendItem -object $my_ixDutProtocolPortRange
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
portRanges
Specifies the port numbers that the Virtual DUT listens on for the protocols in the protocol field. protocol
Defines a protocol to listen for. A virtual dut supports the following protocols:

FTP HTTP IMAP

IPTV/Video

LDAP POP3 RADIUS RTSP

SMTP SSH DNS

All

EXAMPLE

set my_ixDutProtocolPortRange [::IxLoad new ixDutProtocolPortRange]$my_

ixDutProtocolPortRange config \-portRanges

"" \-

protocol

"All"

SEE ALSO

ixDut

ixDutConfigVirtual

188

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

ixDutConfigVip

ixDutConfigVip-DUT Configuration class for firewall and external server.

SYNOPSIS

set my_ixDutConfigVip [::IxLoad new ixDutConfigVip] $my_ixDutConfigVip subcommand options...

DESCRIPTION
This class is associated with ixDut for DUT types - Firewall and External Server.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
ipAddress Specifies the IP address used to access the DUT.

EXAMPLE

set my_ixDutConfigVip [::IxLoad new ixDutConfigVip]$my_ixDutConfigVip config \-

ipAddress

"1.1.1.1"

SEE ALSO

ixDut

ixDutConfigSLB
ixDutConfigSLB-DUT Configuration class for server load balancer.
SYNOPSIS
set my_ixDutConfigSLB [::IxLoad new ixDutConfigSLB] $my_ixDutConfigSLB subcommand options...
DESCRIPTION
This class is associated with ixDut for DUT types - Server Load Balancer.

IxLoad Tcl API Programming Guide

189

IxLoad Tcl API Commands

SUBCOMMANDS

The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
enableDirectServerReturn Enables the Direct Server Run. In a topology using Direct Server Return, the responses are sent directly from the servers to the clients; they do not go through the SLB. Default = false. ipAddress Specifies the IP address used to access the DUT.

SUB-OBJECTS
serverNetwork
If type is "Server Load Balancer (SLB)" and the SLB is balancing Ixia emulated servers, set this option to the server network that is being balanced. This must be an object of type ixStatCatalogItem. (Default = {}).
Note: Ixia Server Network is not supported in SLB options.

EXAMPLE

set my_ixDutConfigSLB [::IxLoad new ixDutConfigSLB]$my_ixDutConfigSLB config \-

enableDirectServerReturn

false \-ipAddress

"198.18.0.101"

SEE ALSO

ixDut

ixView
ixViewOptions-Configures capture options.
SYNOPSIS
set my_ixViewOptions [::IxLoad new ixViewOptions]$my_ixViewOptions config options...
DESCRIPTION
The ixViewOptions command configures the capture (IxAnalyzer) options. Use the ixConfig subcommand to configure this command. It is added as an object instance to the captureViewOptions in ixTest.

190

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
runMode Specifies when capture starts, and how long it continues for. Values are:

1 Automatic 2 Manual 3 Start capture after a delay of captureRunAfter time and capture for captureRunDuration.

captureRunDuration
If runMode type is 3, this parameter specifies the capture duration, in seconds. captureRunAfter
If runMode type is 3, this parameter specifies the delay (after the test start) before capture begins. Specify the delay in seconds. collectScheme
Specifies whether or not packets are displayed as they are captured during a test, and whether newer captured data overwrites older data, or not. This parameter combines the functions of two GUI parameters, Capture View Display Mode and Buffer Full Behavior, into a single Tcl command. Values are:

0 (default) Stream (real-time capture) + Stop Capture

1

Upload captured packet after capture stops + Stop Capture

2

Stream (real-time capture) + Overwrite oldest packets(circular buffer)

3

Upload captured packets after capture stops + Overwrite oldest packets(circular buffer)

allocatedBufferMemoryPercentage
Percentage of the available memory on the Ixia port allocated for capturing packets.
The memory available for capturing packets is the total amount of memory available on the port, less the amount required for the IxLoad test configuration. Of this remaining amount, you can reserve up to 70% for capturing packets.
EXAMPLE
set my_ixViewOptions [::IxLoad new ixViewOptions]$my_ixViewOptions config \-runMode

IxLoad Tcl API Programming Guide

191

IxLoad Tcl API Commands

1 \-captureRunDuration

0 \-captureRunAfter

0 \-collectScheme

0 \-allocatedBufferMemoryPercentage

30set Test1 [::IxLoad new ixTest]$Test1 config \-comment

"" \-csvInterval

4 \-name

"Test1" \-statsRequired

1 \-enableResetPorts

0 \-enableForceOwnership

false \-enableReleaseConfigAfterRun

0 \-captureViewOptions

$my_ixViewOptions

SEE ALSO

ixTest

ixClientNetwork
ixClientNetwork-Defines a network for client agents.
SYNOPSIS
set clientNetwork [::IxLoad new ixClientNetwork $chassisChain options] $clientNetwork subsubcommandcommand options...
DESCRIPTION
The ixClientNetwork command is used to construct a client network, which is used as part of an ixClientTrafficNetworkMapping object. A chassis chain object, as created in the ixChassisChain command, must be used in the construction of this object.
A list of network ranges, as defined in the ixRepository object is associated with the client network. Network ranges are added to the client network through the use of the networkRangeList.appendItem command.
A list of ports is also associated with the network through the portList option.
If an emulated router is to be used, a list of IP ranges for the router is also associated with the network through the emulatedRouterIpAddressPool option. The pool is defined in the ixEmulatedRouterIpAddressRange object. These are added to the object through the use of the appendItem command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addithe following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.
checkConfig
Checks the configuration of the client network object.

192

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
reset
Disassociates the network from all of the Ixia ports currently in the portList option. Ownership of the ports is cleared.
OPTIONS
chassisChain
This must be a chassis chain object, as created in the ixChassisChain command. It represents the set of chassis used in the test and defines the chassis IDs used in the portList component. This option should not be changed after portList is set. (Default = None). comment
A commentary string for the object. (Default = ""). emulatedRouterGateway
If macMappingMode is set to kMacMappingModePort, then an emulated router is inserted between the clients and the external port. This is the gateway to be used for that router. (Default = 0.0.0.0). emulatedRouterGatewayIPv6
If macMappingMode is set to kMacMappingModePort and ipType in ixEmulat is set to "IPv6" for any addresses, then an IPv6 address is also required for the emulated router inserted between the clients and the external port. This is the IPv6-format address of the gateway to be used for that router. IxLoad supports all forms of IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4"). (Default = "::C212:0001").
emulatedRouterSubnetIPv6
Subnet mask applied to emulatedRouterGatewayIPv6 address. (Default = "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0")
emulatedRouterIpAddressPool
If macMappingMode is set to kMacMappingModePort, then an emulated router is inserted between the clients and the external port. This option is a list of ixEmulatedRouterIpAddressRange objects which define the routers' source addresses that will be used. One IP address is taken from the list and used for each Ixia port. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}) emulatedRouterSubnet
If macMappingMode is set to kMacMappingModePort, then an emulated router is inserted between the clients and the external port. This is the network mask to be used for that router. (Default = 255.255.255.0).
ipSourcePortFrom
Defines the beginning of the range of ephemeral port numbers used to establish connections to the server. The end of the range is specified by ipSourcePortTo.

IxLoad Tcl API Programming Guide

193

IxLoad Tcl API Commands

The first port in the range that IxLoad uses for traffic is 1 greater than the value you specify for ipSourcePortFrom. For example, if you specify 1,024, traffic originates from port 1025; no traffic originates from port 1,024. The minimum value for ipSourcePortFrom is 1024. (Default = 1,024).
ipSourcePortTo
Defines the end of the range of ephemeral port numbers used to establish connecto the server. The beginning of the range is specified by ipSourcePortFrom. (Default = 65,535).
linkLayerOptions
The link layer options to be associated with the ports associated with this client network. Only Ethernet options are currently supported. (Default = kLink
macMappingMode
The mapping between IP addresses and MAC addresses. One of:

Option
$::ixClientNetwork(kMacMappingModeIp)
$::ixClientNetwork(kMacMappingModePort)

Usage
(Default) One MAC address is associated with each IP address.
One MAC address is used for all IP addresses on the port.

name
The name associated with this object. (Default = "newNetwork").
networkRangeList
A list of ixRepository objects that define the networks from which addresses will be associated with the clients. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}).
portList
A list of ports associated with the client network. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. Ports are added directly into this object; see the following example: $clientNetwork portList.appendItem \
-chassisId 1 \ -cardId 2 \ -portId 2

SUB-OBJECTS
arpSettings

194

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

This is an object of type ixArpSettings, which specifies the manner in which ARP is handled on this network. (Default = <see ixArpSettings>). The options of this object should be set directly via: $clientNetwork arpSettings.config options...

dnsParameters

This is an object of type ixDns, which specifies the manner in which specifies the DNS operation associated with clients on this network. (Default = <see ixDns>). The options of this object should be set directly via: $clientNetwork dnsParameters.config options...$clientNetwork dnsPara-
meters.serverList.appendItem options...

tcpParameters

This is an object of type ixTcpParameters that specifies the manner in which TCP traffic is handled on this network. (Default = <see ixTcpParameters>). The options of this object should be set directly via: $clientNetwork tcpParameters.config options...
EXAMPLE
set clnt_network [::IxLoad new ixClientNetwork $chassisChain]$clnt_network config name "clnt_network" \

-cardType $::ixCard(kCard1000Txs4)

-ipSourcePortFrom 1024 \

-ipSourcePortTo 65536 \ $clnt_network networkRangeList.appendItem \

-name

-enable

1\

-firstIp

"198.18.2.1" \

\

-networkMask "255.255.0.0" \

-gateway

firstMac

"00:C6:12:02:01:00" \

-vlanEnable

1\

-mssEnable

0\

-mss

100

"clnt_range" \

-ipCount

100

"0.0.0.0" \

-

0\

-vlanId

$clnt_network portList.appendItem \

-portId

1

SEE ALSO

ixClientTrafficNetworkMapping

ixChassisChain

ixRepository

-chassisId 1 \

-cardId

2\

ixClientTraffic
ixClientTraffic-Builds a list of client agents to generate client traffic.

IxLoad Tcl API Programming Guide

195

IxLoad Tcl API Commands
SYNOPSIS
set clientTraffic [::IxLoad new ixClientTraffic options] $clientTraffic subcommand options...
DESCRIPTION
The ixClientTraffic command is used to construct the model for client traffic to be applied during a test. It is used in the ixClientTrafficNetworkMapping comto co-ordinate networks with client agent traffic. Its primary option is the agentList list of agents which will generate client traffic. Agents are added to the agentList using the appendItem subcommand and may be otherwise manipulated using the commands supported by the ixConfigSequenceContainer command. All agents are added in the same manner: set clientTraffic [::IxLoad new ixClientTraffic \ -name "Traffic"] $clientTraffic agentList.appendItem \ -name"my_protocol_traffic" \ -protocol"<PROTOCOL>" \ -type"Client" \ <other per-protocol options>
The name, protocol, and type are required fields. These define a particular type of agent; the protocol field should be drawn from the table above. In addition to the required fields, the agent definition should include options which are specific to a particular protocol, and defined in their respective appendix.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.
checkConfig
Checks the configuration of the client traffic object.
OPTIONS
name
The name associated with the agentList object. (Default = "newActivityModel"). agentList

196

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

A list of agent objects which define the agents that will be used to generate client traffic. Refer to the various appendixes listed above to determine the options that the agents offer. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}).
EXAMPLE
#--------------------------------------------------------------# Construct Client Traffic#--------------------------------------------------------------set clnt_ traffic [::IxLoad new ixClientTraffic \
-name "client_traffic"]

#--------------------------------------------------------------# Create a HTTP cli-

ent agent#--------------------------------------------------------------$clnt_

traffic agentList.appendItem \

-name

"my_http_client" \

-protocol

"HTTP" \

-type

"Client" \

-

maxSessions

3\

-httpVersion

$::HTTP_Client(kHt-

tpVersion10) \

-keepAlive

0\

-maxPersistentRequests 3 \

-followHttpRedirects 0 \

-enableCookieSupport 0 \

-

enableHttpProxy

0\

-enableHttpsProxy

0\

-

browserEmulation

$::HTTP_Client(kBrowserTypeIE5) \

-enableSsl

0

#----------------------------------------------------------

----# Add actions to this client agent#---------------------------------------------

-----------------foreach {pageObject destination} {

"/4k.htm" "svr_traffic_

my_http_server"

"/8k.htm" "svr_traffic_my_http_server"} { $clnt_traffic

agentList(0).actionList.appendItem \

-command

"GET" \

-destination $destination \

-pageObject

$pageObject }

SEE ALSO

ixClientTrafficNetworkMapping (see "ixClientTrafficNetworkMapping")

ixClientTrafficNetworkMapping
ixClientTrafficNetworkMapping-Ties a client network to traffic model.
SYNOPSIS
set clientMapping [::IxLoad new ixClientTrafficNetworkMapping options] $clientMapping subcommand options...
DESCRIPTION
The ixClientTrafficNetworkMapping command is used to map a set of agents that generate client traffic (in an ixCustomPortMap object) to the set of networks, which will carry the traffic (in an ixDHCP object).

IxLoad Tcl API Programming Guide

197

IxLoad Tcl API Commands
A number of additional options control the manner in which the client traffic is applied to the networks. The objectiveType and objectValue options allow the application of traffic to achieve a particular objective-for example, connections per second. The setObjectiveTypeForActivity and setObjectiveValueForActivity options allow you set objectives and values for individual activities within a traffic-network mapping. The rampUpType, rampUpValue, rampDownTime, standbyTime, offlineTime, sustainTime, and totalTime options determine the timeline for application of traffic. portMapPolicy controls the manner in which client traffic is sent to servers.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable If true, this mapping is included in the IxLoad test. (Default = true). getUserObjectiveTypeForActivity Objective type for user objective activity within a traffic-network mapping. You must specify the activity name. See the following example: set objType [$clnt_t_n_mapping getUserObjectiveTypeForActivity("my_sip_client")] getUserObjectiveValueForActivity Objective type for user objective value within a traffic-network mapping. You must specify the activity name. See the following example: set objValue [$clnt_t_n_mapping getUserObjectiveValueForActivity iterations The number of times that the traffic-network pair perform their functions (establishing TCP connections, retrieving FTP files, and so forth) in the test. (Default = 1). name The name associated with this object. This is read-only and cannot be set from the API. (Default = "NetworkTrafficMapping"). objectiveType The objective to be achieved for this traffic to network mapping. One of:

198

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

Option
"N/A"
$::ixObjective(kObjectiveTypeSimulatedUsers) or "simulatedUsers"
$::ixObjective(kObjectiveTypeConcurrentConnections) or "concurrentConnections"
$::ixObjective(kObjectiveTypeConcurrentSessions) or "concurrentSessions"
$::ixObjective(kObjectiveTypeConnectionRate) or "connectionRate"
$::ixObjective(kObjectiveTypeThroughputMBps) or "throughputMBps"
$::ixObjective(kObjectiveTypeThroughputMbps) or "throughputMbps"
$::ixObjective(kObjectiveTypeThroughputKBps) or "throughputKBps"
$::ixObjective(kObjectiveTypeThroughputKbps) or "throughputKbps"
$::ixObjective(kObjectiveTypeThroughputGbps) or "throughputGbps"

Usage
(Default).
The objective is to simulate some number of users. If you select this objective, remember that a 'user' does not necessarily mean one human user. For example, a Web browser used by one person may open several connections to a Web site simultaneously; each connection counts as one 'user,' because each connection was initiated by the same source simultaneously. Specify the desired number of users in the objectiveValue option.
The objective is to sustain some number of connections simultaneously. Specify the desired number of connections in the objectiveValue option.
The objective is to sustain some number of sessions simultaneously. Specify the desired number of connections in the objectiveValue option.
The objective is to create connections at a certain rate. For example, if the traffic in this mapping is HTTP client traffic, this objective will attempt to generate the specified number of HTTP connections per second. Specify the desired number of connections per second in the objectiveValue option.
As of IxLoad 5.00, this option has been deprecated. Use throughputMbps instead.
The objective is to achieve a certain level of throughput, measured in megabits per second (Mbps). Specify the amount of throughput in the objectiveValue option.
As of IxLoad 5.00, this option has been deprecated. Use throughputKbps instead.
The objective is to achieve a certain level of throughput, measured in kilobits per second (Kbps). Specify the amount of throughput in the objectiveValue option.
The objective is to achieve a certain level of throughput, measured in gigabits per second (Kbps). Specify the amount of throughput in the objectiveValue option.

IxLoad Tcl API Programming Guide

199

IxLoad Tcl API Commands

$::ixObjective(kObjectiveTypeTransactionRate) or "transactionRate"

The objective is to complete transactions at a certain rate. For example, if the traffic in this mapping is HTTP client traffic, this objective will attempt to complete the specified number of transaction per second. The definition of what constitutes one complete HTTP transaction depends on whether you select HTTP 1.0 or 1.1:
HTTP 1.0: open socket - issue GET - GET response close socket. HTTP 1.1: Open socket (if closed) - send request - Get response.
Specify the desired number of transactions per second in the objectiveValue option.

objectiveValue
Value for the choice made in the objectiveType option.
objectiveConstraints
Currently, constraints can be set on activities that run rate-based objectives, like connectionRate, transactionRate, throughput objectives.
The following API can be used to set the constraint value. The constraint needs to be enabled on the activity. $clnt_t_n_mapping setconstraints "my_http_client" 200 true
This sets the constraint value to 200 and true enables the constraint. If the activity is running a rate based activity, then the number of simulated users will be limto 200. $clnt_t_n_mapping setconstraints "my_http_client" 200 false
This sets the constraint value to 200 and false does not enable the constraint. The number of simulated users will not be limited here.
offlineTime
The amount of time agents are idle between iterations. (Default = 0).
portMapPolicy
This option controls the sequence in which the client ports connect to the server ports. One of:

Option

Usage

$::ixPortMap

(Default). Client agents connect to server agents on a one-to-one

(kPortMapRoundRobin) basis.

or "portPairs"

$::ixPortMap (kPortMapFullMesh) or "portMesh"

Agents on every client port connect to every server port.

200

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

$::ixPortMap (kPortMapIpPair) or "ipPair"
$::ixPortMap (kPortMapCustom) or "custom"

Each simulated user on the client side communicates with only one server IP address. This choice is only valid for SIP agents.
Each custom port map has a list of IPv4 suband IPv6 submaps. You can create a Custom traffic map. In a Custom traffic map, you select the client and server IP address ranges that will send traffic to each other. To create a Custom traffic map, the subnet's rangeType parameter must be set to IP Only (Ethernet).

For large numbers of ports, the Port Pair sequence scales performance better than the Port Mesh sequence.
The operation of Port Pairs can be described by three scenarios:
l If the number of client ports is equal to the number of server agents, client ports will establish connections to server ports on a one-to-one basis.
l If the number of client ports is less than the number of server ports, the client ports will establish connections to the server ports on a one-to-one basis until all client ports are paired with server ports. The remaining server ports will not be used.
l If the number of client ports is greater than the number of server ports, the client ports will establish connections to the server ports on a one-to-one basis until all server ports are paired with client ports. Then, the remaining client ports will return to the first server port and continue pairing themselves with server ports.
The ixCustomPortMap customizes the order and frequency, by which client IPs will access server IPs.
Each custom port map has a list of IPv4 submaps and IPv6 submaps. There will be a list for the appropriate IP type if any ranges of that type appear in the network for the symbolic destination. When a submap list is initialized, it will have a single submap that will be a full IP mesh, if that type is available. If only vLAN maps are allowed, then it will be a VLAN pairs map instead. If a submap is appended to the list, by default it will be a copy of the last submap in the list, unless values are passed in.
rampDownTime
The amount of time used for closing any TCP connections that are still open after all transactions are complete. When the ramp downtime expires, IxLoad terminates any remaining users.
If IxLoad terminates any client users that are still running after the ramp down expires, statistics for servers and clients that should match may not. This is an indication that the ramp downtime may be too short. (Default = 20).
rampUpTime
(Read-only). The amount of time that the test will spend bringing users online and initiating their first TCP connections. IxLoad calculates this time based on the number of users and the rampUpType option.
rampUpType

IxLoad Tcl API Programming Guide

201

IxLoad Tcl API Commands

The method used to apply the rampUpValue. One of:

Option

Usage

$::ixTimeline (kRampUpType UsersPerSecond)

(Default). IxLoad applies the rampUpValue to bring up the specified number of users per second.
For example, if you select Users/Second and you specify 10 for the rampUpValue, IxLoad brings up 10 new users every second until all the users are up and running.

$::ixTimeline (kRampUpType MaxPendingUsers)

IxLoad applies the rampUpValue to maintain a pool of users waiting to create connections. Regardless of how quickly the servers complete connections, IxLoad will always be ready with one or more new clients waiting to connect. As each user successfully creates a connection, IxLoad adds a new user to the pending pool until all the users are up and running.
For example, if you select Max. Pending Users and you specify 10 for the rampUpValue, IxLoad maintains 10 users waiting to establish connections until all the users are up and running.

rampUpValue A value dependent on the setting of rampUpType. One of:

Option

Usage

$::ixTimeline(kRampUpType The specified number of users per second to bring up. UsersPerSecond)

$::ixTimeline(kRampUpType The size of the pool of pending users awaiting con MaxPendingUsers)

rampUpInterval

This field accepts integer values. The value for this option will be considered only when rampUpType is

usersPerSecond. You can edit the value to increment or decrement the number of users to be started

at every rampUpInterval. (Default = 1). #--------------------------------------------------------------# Create a client and

server mapping and bind into the# network and traffic that they will be employing#--

------------------------------------------------------------set clnt_t_n_mapping

[::IxLoad new ixClientTrafficNetworkMapping \ -network

$clnt_net-

work \ -traffic

$clnt_traffic \ -objectiveType

$::ixOb-

jective(kObjectiveTypeSimulatedUsers) \ -objectiveValue

20 \ -

rampUpValue

5 \ -rampUpInterval

10 \ -sustainTime

20 \ -rampDownTime

20

In this example, 5 simulated users will be started every 10 seconds until the configured total number of simulated users are started.

202

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
setObjectiveTypeForActivity
Objective type for a single activity within a traffic-network mapping. You must specify the activity and the objective type. The objectives available are the same as for objectiveType. See the following example: setObjectiveTypeForActivity "my_http_client" \ $::ixObjective(kObjectiveTypeConnectionRate)
setObjectiveValueForActivity
Objective value for a single activity within a traffic-network mapping. You need to specify the activity and the value. See the following example: setObjectiveTypeForActivity setObjectiveValueForActivity \ "my_http_client" 200
setPortMapForActivity
Port mapping for a single activity within a traffic-network mapping. You need to specify the activity and the portMapPolicy. See the following example: setObjectiveTypeForActivitsetPortMapForActivity \ "my_http_client" $::ixPortMap (kPortMapFullMesh)
setUserObjectiveTypeForActivity
Objective type for user objective activity within a traffic-network mapping. You need to specify the activity name and the userObjectiveType. See the following example: $clnt_t_n_mapping setUserObjectiveTypeForActivity("my_sip_client", "bhca")
setUserObjectiveValueForActivity
Objective type for user objective value within a traffic-network mapping. You need to specify the activity name and the userObjectiveType. See the following example: $clnt_t_n_mapping setUserObjectiveValueForActivity("my_sip_client", 3600)
standbyTime
The amount of time, expressed in seconds, that elapses between the time the test is started and the time that the traffic-network pair become active. If you have multiple traffic-network pairs in your test, you can use this parameter to stagger their start times. A value of 0 causes the test to begin immediately. The valid range is from 0 to 1,000 hours (3,600,000). (Default = 0).
sustainTime
The amount of time, in seconds, when all users are up and performing the central test objectives, such as establishing and closing connections (TCP), retrieving or serving pages (HTTP), or sending or receiving files (FTP). The valid range is from 0 to 1,000 hours (3,600,000). (Default = 20).
totalTime
The total time required to run the test, including Ramp Up, Ramp Down, Sustain, and Offline times for all iterations. (Default = 60).
userObjectiveType

IxLoad Tcl API Programming Guide

203

IxLoad Tcl API Commands

UserObjectivetypes are basically alternate representations of the basic objectiveType - simulatedUsers, transactionRate, concurrentSessions, concurconnectionsPerSecond, throughputMbps, throughputKbps. They can have a scaling factor associated with them. For example, bhca has a scaling factor of 3,600. This means that, 3,600 busy hour call attempts (BHCA) userObrepresents 1 transactionRate objectiveValue.
userAgents represents simulatedUsers with scaling factor of 1.
callsPerSec represents transactionRate with scaling factor of 1.
Registrationsinitiated represents transactionRate with scaling factor of 1.
Redirectionsinitiated also represents transactionRate with scaling factor of 1.

set clnt_t_n_mapping [::IxLoad new ixClientTrafficNetworkMapping \

-network standbyTime 3600 \-rampUpValue 20

$clnt_network \-traffic 30 \-userObjectiveType
1 \-sustainTime

$clnt_traffic \"bhca" \-userObjectiveValue
40 \-rampDownTime

Option userAgents" callsPerSecond bhca
registrationsinitiated redirectionsinitiated

Usage
The objective is to sustain some number of SIP calls simultaneously. Specify the desired number of UserAgents in the objectiveValue option.
The objective is to establish a certain number of SIP calls per second. Specify the desired number of calls to establish per second in the objectiveValue option.
The objective is to establish a certain number of SIP calls per hour. Specify the desired number of calls to establish per hour in the objectiveValue option. Busy hour call attempts (BHCA) is a standard measure of the number of calls completed during a busy hour, the 60-minute period when the maximum traffic load occurs within a given 24-hour period.
The objective is to establish a certain number of call registrations of SIP. Specify the desired number of registrations in the objectiveValue option.
The objective is to establish a certain number of call redirections of SIP. Specify the desired number of redirections in the objectiveValue option.

204

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

transactionAttemptRate The objective is to issue some number of DNS query per second. The number of DNS query is mentioned in the userObjectiveValue option.

connectionAttemptRate

The objective is achieved if IxLoad succeeds in making the specified number of attempts to connect to the HTTP server or DUT.
Specify the desired number of attempted connections per second in the userObjectiveValue option.

userObjectiveValue A value related to the choice made in the userObjectiveType option. One of:

Option

Usage

Calls

The desired number of calls.

Callspersecond

The desired number of calls to establish per second.

Bhca

The desired number of calls to establish per hour.

Useragents

The desired number of user agents to be simulated.

Registrationinitiated The desired number of registrations to be initiated during the test.

Redirectionsinitiated The desired number of call redirections initiated during the test.

Queriespersecond

The desired number of DNS query per second.

SUB-OBJECTS
network
An object instance of type ixDHCP, which provides the networks from which the traffic will be generated. (Default = {}). traffic
An object of type ixCustomPortMap, which provides the model of traffic to be generated. (Default = {}).

EXAMPLE

#--------------------------------------------------------------# Create the client

traffic to network mapping#---------------------------------------------------------

-----set clnt_mapping [::IxLoad new ixClientTrafficNetworkMapping \ -network

$clnt_network \ -traffic

$clnt_traffic \ -objectiveType $::ixOb-

jective(kObjectiveTypeSimulatedUsers)\ -objectiveValue

20 \ -

rampUpValue

5 \ -sustainTime

20 \ -rampDownTime

20]

IxLoad Tcl API Programming Guide

205

IxLoad Tcl API Commands
SEE ALSO
ixTest ixCustomPortMap
ixNetworkRange
ixNetworkRange-Defines a range of IP and MAC addresses. Note: This item has been deprecated.
SYNOPSIS
set networkRange [::IxLoad new ixNetworkRange options] $networkRange subcommand options...
DESCRIPTION
The ixNetworkRange command is used to construct a network range consisting of a set of IP, MAC, and vLAN addresses. This is used in the ixDHCP and ixStatCatalogItem commands. If the ixDHCP/ixStatCatalogItem command speca "MACPerPort" mapping mode in its macMappingMode option, then the gateway, firstMac, and macIncrStep options are not relevant; all network ranges route to the emulated router and a single MAC addresses emanates from each Ixia port.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no valare returned and an exception is raised for any error found. checkConfig Checks the configuration of the client network object. set range Helps to select the activities (protocol agents) that each networkRange will run. set range1 [$clnt_network networkRangeList.getItem 0]$clnt_t_n_mapping setActivityAvailableForRange $range1 "my_http_client" trueset isAvailable [$clnt_t_n_mapping isActivityAvailableForRange $range1 "my_http_client"]puts "======= Activity-IP Mapping for Http Agent ========"puts $isAvailable
OPTIONS
enable If true, enables the use of this network range. (Default = true). enableStats

206

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

This is enabled to value 1, to collect per interface statistics ( - AddPerInterfaceStat arguments). (Default = 0).
firstIp
The first IP address for the range. If ipType is set to "IPv4," this must be an IPv4 address. If ipType is set to "IPv6," this must be an IPv6 address. Only HTTP and FTP agents support IPv6 addressing. If there is a mixture of IPv4 and IPv6 addresses, other protocols will use only the IPv4 addresses. IxLoad supports all forms of IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4"). (Default = 198.18.0.1).
firstMac
The first MAC address for the range. This is not used if the value of macMin the containing ixDHCP/ixStatCatalogItem object is set to "MACPerPort." (Default = 00:C6:12:00:01:00).
gateway
The gateway associated with all IP addresses in the network range. (Default = 0.0.0.0).
ipCount
The number of unique IP addresses in the network range. (Default = 100).
ipIncrStep
Indicates the increment to be applied between generated IP addresses. The format of this option is a dotted-quad IP address, in which only one of the octets may be nonzero. For example, 0.0.0.1, 0.0.2.0, 0.22.0.0 and 4.0.0.0 are valid values which will increment a different octet each time. Values that use more than one octet, for example 0.0.1.1, are illegal. (Default = 0.0.0.1). Some useful constants are:

Constant

Value

$::ixNetworkRange(kIpIncrOctetFirst)

1.0.0.0

$::ixNetworkRange(kIpIncrOctetSecond) 0.1.0.0

$::ixNetworkRange(kIpIncrOctetThird) 0.0.1.0

$::ixNetworkRange(kIpIncrOctetForth) 0.0.0.1

ipType
Type of IP address. This parameter indicates whether the address range is a range of IPv4 addresses or a range of IPv6 addresses. Only HTTP and FTP agents supIPv6. If there is a mixture of IPv4 and IPv6 addresses, other protocols will use only IPv4 addresses. IxLoad supports all forms of IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4"). The choices are: "IPv4" and "IPv6." (Default = "IPv4").
macIncrStep

IxLoad Tcl API Programming Guide

207

IxLoad Tcl API Commands

Indicates the increment to be applied between generated MAC addresses. The format of this option is a colon separated MAC address, in which only one of the octets may be nonzero. For example, 00:00:00:00:00:01, 00:00:00:00:22:00, 00:00:00:33:00:00, 00:00:44:00:00:00, 00:AA:00:00:00:00, and C:00:00:00:00:00 are valid values that will increment a different octet each time. Values that use more than one octet, for example 00:00:00:00:01:01, are illegal. This is not used if the value of macMappingMode in the containing ixDHCP/ixStatCatalogItem object is set to "MACPerPort." (Default = 00:00:00:00:00:01). Some useful constants are:

Constant

Value

$::ixNetworkRange(kMacIncrOctetFirst)

01:00:00:00:00:00

$::ixNetworkRange(kMacIncrOctetSecond) 00:01:00:00:00:00

$::ixNetworkRange(kMacIncrOctetThird) 00:00:01:00:00:00

$::ixNetworkRange(kMacIncrOctetForth) 00:00:00:01:00:00

$::ixNetworkRange(kMacIncrOctetFifth)

00:00:00:00:01:00

$::ixNetworkRange(kMacIncrOctetSixth) 00:00:00:00:00:01

mss If mssEnable is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, IxLoad clients or servers advertise their TCP MaxiSegment Size as 1,460 bytes. (Default = 1,460). mssEnable If true, the use of the mss option is enabled. (Default = false). networkMask The subnet mask associated with the IP range. (Default = 255.255.0.0). rangeType Type of IP range configured on the subnet.

Value Ethernet (default) DHCP IPSec

208

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands
PPPoE DHCP-PD DHCP-PD Client
vlanEnable If true, vLAN IDs are inserted. vlanId If vlanEnable is true, this is the vLAN ID used. (Default = None).
EXAMPLE
See example in ixDHCP.
SEE ALSO
ixStatCatalogItem
ixServerNetwork
ixServerNetwork-Defines a network for server agents.
SYNOPSIS
set serverNetwork [::IxLoad new ixServerNetwork $chassisChain options] $serverNetwork subcommand options...
DESCRIPTION
The ixServerNetwork command is used to construct a server network, which is used as part of an ixServerTrafficNetworkMapping object. A chassis chain object, as created in the ixChassisChain command, must be used in the construction of this object. A list of network ranges, as defined in the ixRepository object is associated with the server network. Network ranges are added to the server network through the use of the networkRangeList.appendItem command. A list of ports is also associated with the network through the portList option. If an emulated router is to be used, a list of IP ranges for the router is also associwith the network through the emulatedRouterIpAddressPool option. These are added to the object through the use of the emulatedRouterIpAddressPool.appendItem command.

IxLoad Tcl API Programming Guide

209

IxLoad Tcl API Commands
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addithe following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.
checkConfig
Checks the configuration of the server network object.
reset
Disassociates the network group from all of the Ixia ports currently in the portList option. Ownership of the ports is cleared.
OPTIONS
chassisChain
This must be a chassis chain object, as created in the ixChassisChain command. It represents the set of chassis used in the test and defines the chassis IDs used in the portList component. This option should not be changed after portList is set. (Default = None). comment
A commentary string for the object. (Default = ""). emulatedRouterGateway
If macMappingMode is set to kMacMappingModePort, then an emulated router is inserted between the servers and the external port. This is the gateway to be used for that router. (Default = 0.0.0.0). emulatedRouterIpAddressPool
If macMappingMode is set to kMacMappingModePort, then an emulated router is inserted between the servers and the external port. This option is a list of ixEmulatedRouterIpAddressRange objects that define the routers' source addresses that will be used. One IP address is taken from the list and used for each Ixia port. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}). emulatedRouterSubnet
If macMappingMode is set to kMacMappingModePort, then an emulated router is inserted between the clients and the external port. This is the network mask to be used for that router. (Default = 255.255.255.0).
emulatedRouterGatewayIPv6
If macMappingMode is set to kMacMappingModePort and ipType in ixEmulatedRouterIpAddressRange is set to "IPv6" for any addresses, then an IPv6 address is also required for the emulated router inserted between the clients and the external port. IxLoad supports all forms of

210

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4"). This is the IPv6-format address of the gateway to be used for that router. (Default = "::C212:0001").
emulatedRouterSubnetIPv6
Subnet mask applied to emulatedRouterGatewayIPv6 address. (Default = "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0").
impairment
If enabled, this option helps to intentionally degrade the traffic transmitted by the network. You can cause it to drop or duplicate packets, or delay them for certain lengths of time. Refer to ixImpairment for a description of all the options.
ipSourcePortFrom
Defines the beginning of the range of ephemeral port numbers used to establish connections. The end of the range is specified by ipSourcePortTo.
The first port in the range that IxLoad uses for traffic is 1 greater than the value you specify for ipSourcePortFrom. For example, if you specify 1,024, traffic originates from port 1,025; no traffic originates from port 1,024. The minimum value for ipSourcePortFrom is 1,024. (Default = 1,024).
ipSourcePortTo
Defines the end of the range of ephemeral port numbers used to establish connection to the server. The beginning of the range is specified by ipSourcePortFrom. (Default = 65,535).
linkLayerOptions
The link layer options to be associated with the ports associated with this server network. Only Ethernet options are currently supported. (Default = kLink
macMappingMode
The mapping between IP addresses and MAC addresses. One of:

Option
$::ixServerNetwork(kMacMappingModeIp)
$::ixServerNetwork(kMacMappingModePort)

Usage
(Default) One MAC address is associated with each IP address.
One MAC address is used for all IP addresses on the port.

name The name associated with this object. (Default = "newNetwork"). networkRangeList

IxLoad Tcl API Programming Guide

211

IxLoad Tcl API Commands
A list of ixRepository objects that define the networks from which addresses will be associated with the servers. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}). portList A list of ports associated with the server network. Refer to ixConfigSequenceContainer for a list of commands that may be used to maniputhis list. Ports are added directly into this object; see the following example: $serverNetwork portList.appendItem \ -chassisId 1 \
-cardId 2 \ -portId 2 rangeType Type of IP range configured on the subnet.
Value
Ethernet (default)
DHCP
IPSec
PPPoE
DHCP-PD
DHCP-PD Client
You can insert the same parameters for the ixStatCatalogItem.
SUB-OBJECTS
arpSettings This is an object of type ixArpSettings, which specifies the manner in which ARP is handled on this network. (Default = <see ixArpSettings>). The options of this object should be set directly via: $serverNetwork arpSettings.config options... tcpParameters This is an object of type ixTcpParameters that specifies the manner in which TCP traffic is handled on this network. (Default = <see ixTcpParameters>). The options of this object should be set directly via: $serverNetwork tcpParameters.config options...
EXAMPLE
set svr_network [::IxLoad new ixServerNetwork $chassisChain]$svr_network config -

212

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

name "svr_network" \

-cardType $::ixCard(kCard1000Txs4)

-ipSourcePortFrom 1024 \

-ipSourcePortTo 65536 \ $svr_network networkRangeList.appendItem \

-name

"svr_range" \

-enable

1\

-firstIp

"198.18.200.1" \

-ipCount

1

\

-networkMask "255.255.0.0" \

-gateway

"0.0.0.0" \

-

firstMac

"00:C6:12:02:02:00" \

-vlanEnable

0\

-vlanId

1\

-mssEnable

0\

-mss

100

$svr_network impairment.config\ -enable True\ -addDrop True\ -drop 5

$svr_network portList.appendItem \

-portId

2

-chassisId 1 \

SEE ALSO

ixClientTrafficNetworkMapping (see ixClientTrafficNetworkMapping),

ixChassisChain (see "ixChassisChain"),

ixRepository (see "ixRepository")

-cardId

2\

ixServerTraffic
ixServerTraffic-Builds a list of server agents to handle server traffic.
SYNOPSIS
set serverTraffic [::IxLoad new ixServerTraffic options] $serverTraffic subcommand options...
DESCRIPTION
The ixServerTraffic command is used to construct the model for server network traffic to be handled during a test. It is used in the ixServerTrafficNetworkMapping command to co-ordinate networks with server agents.
Its primary option is the agentList list of agents that will handle server traffic. The agents that exist for a number of protocols are documented in the subsequent chapters.
Agents are added to the agent list using the appendItem subcommand and may be otherwise manipulated using the commands supported by the ixConfigSequenceContainer command. All agents are added in the same manner: set serverTraffic [::IxLoad new ixServerTraffic \
-name "Servers"] $serverTraffic agentList.appendItem \

IxLoad Tcl API Programming Guide

213

IxLoad Tcl API Commands

-name"my_protocol_server" \
-protocol"<PROTOCOL>" \
-type"Server" \ <other per-protocol options>
The name, protocol, and type are required fields. These define a particular type of agent; the protocol field should be drawn from the table above. In addition to the required fields, the agent definition should include options that are specific to a particular protocol, and defined in their respective appendix.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.

checkConfig
Checks the configuration of the server traffic object.

OPTIONS
agentList
A list of agent objects that define the agents, which will be used to handle server traffic. Refer to the various appendixes listed above to determine the options that the agents offer. Refer to ixConfigSequenceContainer for a list of commands that may be used to manipulate this list. (Default = {}).
name
The name associated with this object. (Default = "newActivityModel").

EXAMPLE
#-----------------------------------------------------------# Construct the Server Traffic#-----------------------------------------------------------set svr_traffic [::IxLoad new ixServerTraffic \

-name "svr_traffic"]

#--------------------------------------------------------------# Create a server

agent -- no actions are involved in this agent#-------------------------------------

-------------------------$svr_traffic agentList.appendItem \

-name

"my_

http_server" \

-protocol "HTTP" \

-type

"Server" \

-

httpPort 80for {set idx 0} {$idx < \

[$svr_traffic agentList(0).responseHeaderList.indexCount]}\ {incr idx} {

214

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

set response [$svr_traffic \

agentList(0).responseHeaderList.getItem $idx]

if {[$response cget -name] == "200_OK"} {

set response200ok $response

}

if {[$response cget -name] == "404_PageNotFound"} {

set response404_

PageNotFound $response

}}

#--------------------------------------------------------------# Clear pre-defined

web pages, add new web pages#-------------------------------------------------------

-------$svr_traffic agentList(0).webPageList.clear $svr_traffic agentList

(0).webPageList.appendItem \

-page

"/4k.html" \

-payloadType

"range" \

-payloadSize "4096-4096" \

-response

$response200ok

$svr_traffic agentList(0).webPageList.appendItem \

\

-payloadType "range" \

-payloadSize

response

$response404_PageNotFound

SEE ALSO

ixServerTrafficNetworkMapping

-page

"/8k.html"

"8192-8192" \

-

ixServerTrafficNetworkMapping
ixServerTrafficNetworkMapping-Ties a server network to traffic model.
SYNOPSIS
set serverMapping [::IxLoad new ixServerTrafficNetworkMapping options] $serverMapping subcommand options...
DESCRIPTION
The ixServerTrafficNetworkMapping command is used to map a set of server agents that receive traffic (in an ixServerTraffic object) to the set of networks that will carry the traffic (in an ixStatCatalogItem object). A number of additional options control the manner in which the server traffic applied to the networks. The standbyTime, offlineTime, sustainTime, and totalTime options determine the timeline for server agents.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

IxLoad Tcl API Programming Guide

215

IxLoad Tcl API Commands
OPTIONS
enable If true, this mapping is included in the IxLoad test. (Default = true). iterations The number of times that the traffic-network pair perform their functions (establishing TCP connections, retrieving FTP files, and so forth) in the test. (Default = 1). matchClientTotalTime If true, the servers on this mapping will stay online for the same length of time as the longest-running client agent. If you do not check this box and a server's duration is shorter than one of the clients connecting to it, the server will go offline while the client is connected; if this is not what you intend to happen during testing, the test results for that client may be misleading. If false, IxLoad calculates agent run times independently for each server activity. (Default = true). name The name associated with this object. (Default = "NetworkTrafficMapping"). offlineTime Amount of time agents are idle between iterations. (Default = 0). standbyTime The amount of time, expressed in seconds, that elapses between the time the test is started and the time that the traffic-network pair become active. If you have multiple traffic-network pairs in your test, you can use this parameter to stagger their start times. A value of 0 causes the test to begin immediately. The valid range is from 0 to 1,000 hours (3,600,000). (Default = 0). sustainTime The amount of time, in seconds, during which all users are up and performing the central test objectives, such as establishing and closing connections (TCP), retrieving or serving pages (HTTP), or sending or receiving files (FTP). (Default = 20). totalTime The total time required to run the test, including Standby, Sustain, and Offline times for all iterations. (Default = 60).
SUB-OBJECTS
network An object of type ixStatCatalogItem that provides the networks associated with the server agents. (Default = {}).

216

IxLoad Tcl API Programming Guide

IxLoad Tcl API Commands

traffic
An object of type ixServerTraffic that provides the model of traffic to be generated.(Default = {}).

EXAMPLE

#--------------------------------------------------------------# Create the server

traffic to network mapping#---------------------------------------------------------

-----set svr_mapping [::IxLoad new ixServerTrafficNetworkMapping \

-network

$svr_network \

-traffic

$svr_traffic \

-

matchClientTotalTime 1]

SEE ALSO

ixTest

ixStatCatalogItem

ixServerTraffic

ixWaitEventCommand
ixWaitEventCommand - cause a command to wait for another to execute
SYNOPSIS
$my_ixWaitEventCommand config \ -optionvalue
DESCRIPTION
ixWaitEventCommand causes one command to wait for another to finish executing for it is itself executed. ixSendEventCommand is used to trigger the waiting command. ixSendEventCommand and ixWaitEventCommand are added to an actionList using the appendItem command. For example, if Command2 must be executed only after Command1 has been executed: 1. An ixWaitEventCommand is inserted preceding Command2. 2. An ixSendEventCommand is added after Command1, with the same eventID as in the ixWaitEventCommand. When Command1 finishes executing, the ixSendEventCommand ends the ixWaitEventCommand for Command2, causing Command2 to be executed. ixSendEventCommand and ixWaitEventCommand can only be used with Subscriber activities.
OPTIONS
commandType

IxLoad Tcl API Programming Guide

217

IxLoad Tcl API Commands
Command type. The only value is "WaitEventCommand". eventID Unique value identifying this ixWaitEventCommand. Default value = 1.
EXAMPLE
set my_ixSendEventCommand [::IxLoad new ixSendEventCommand] $my_ixSendEventCommand config \ -commandType"SendEventCommand" \ -eventId1
$Subscriber_Activity_HTTPClient1 agent.actionList.appendItem -object $my_ixSendEventCommand . . . $Subscriber_Activity_FTPClient1 agent.actionList.clear
set my_ixWaitEventCommand [::IxLoad new ixWaitEventCommand] $my_ixWaitEventCommand config \ -commandType"WaitEventCommand" \ -eventId1
$Subscriber_Activity_FTPClient1 agent.actionList.appendItem -object $my_ixWaitEventCommand
SEE ALSO
ixSendEventCommand
! 5

218

IxLoad Tcl API Programming Guide

Internal Commands
This section lists the IxLoad Tcl API's internal commands.

duplicate
duplicate--Copy elements from one object to another.
SYNOPSIS
set <target network/traffic/dut> [$<source network/traffic/dut> duplicate]
DESCRIPTION
Enables a NetTraffic to use a copy of a component used in another NetTraffic. You can duplicate networks, traffics, and DUTs. The example shows Traffic3 using copies of the same activities (agents) as Traffic1.
SUBCOMMANDS
None
OPTIONS
None.
EXAMPLE
set Traffic1 [$Traffic1_Network1 cget -traffic] set Traffic3 [$Traffic1 duplicate] $Traffic1_Network3 config \ -traffic $Traffic3
ixConfig
ixConfig--Allows options to be configured for an object.

IxLoad Tcl API Programming Guide

219

Internal Commands
SYNOPSIS
set anyIxLoadObject [$::IxLoad new ixLoadObject options] $anyIxLoadObject subcommand options...
DESCRIPTION
The ixConfig object provides the means by which command options are set and read. It is never used directly. The commands that are based on ixConfig support the subcommands described below.
SUBCOMMANDS
The following subcommands are available to handle options:
cget option
This subcommand is used to obtain the current value of any option. The option must begin with a hyphen (-). The return value is of a type appropriate for the option.
config option value option value...
The config subcommand may be used to set the value of one or more options in a command. The option must begin with a hyphen (-). The value must be of a type appropriate for the option.
getOptions
This subcommand returns a Tcl list with all of the options available for a community including an initial hyphen for each option.
OPTIONS
None.
EXAMPLE
$object cget -name$object config -name "media" -value "mp3"set optionList [$object getOptions]

ixConfigSequenceContainer
ixConfigSequenceContainer--Handles a list of objects.
SYNOPSIS
set anyIxLoadObject [$::IxLoad new ixLoadObject options]

220

IxLoad Tcl API Programming Guide

Internal Commands
$anyIxLoadObject option.subcommand sub-options...
DESCRIPTION
The ixConfigSequenceContainer object provides a list in which commands configures their options. See the following example:
l $anIxLoadCommand is an instance of an ixLoadCommand. l ixLoadCommand has an option listOfIxStuff. l listOfIxStuff is a list, each of whose elements is of type ixStuff, with options firstIp and lastIp. In order to create a new instance of ixLoadCommand and add an item to its list, you should use the following sequence:
set $anIxLoadCommand [$::IxLoad new ixLoadCommand] $anIxLoadCommand listOfIxStuff.appendItem \ -firstIp 192.18.0.1 \ -lastIp 192.18.0.100
The first item in a sequence container has index 0. Negative indexes may be used to indicate positions from the last item in the container. -1 corresponds to the last item in the list, -2 to the one before that, and so forth.
SUBCOMMANDS
The following subcommands are available to handle options. Except where noted, no value is returned; an exception is raised in the case of an error. In all cases where they are used the option must begin with a hyphen (-). The value must be of a type appropriate for the option.
appendItem option value option value...
The appendItem subcommand may be used to add an item to a list. Any number of options in the listed item may be set as part of the append.
configItem index option value option value...
The configItem subcommand may be used to configure a particular item in a list. Any number of options in the list item may be set. The index argument is used to indicate which item in the list is to be configured.
clear
The clear subcommand may be used to delete all listed items from a list.
deleteItem index
The deleteItem subcommand may be used to delete a listed item from a list. The index argument is used to indicate which item in the list is to be configured.

IxLoad Tcl API Programming Guide

221

Internal Commands

find mode option value option value...
The find subcommand may be used to search a list for matching criterion. The mode argument may be one of:

Option

Usage

exact

Match the value fields exactly.

regexp

Use regular expressions in the matching.

uppercase Perform a caseless match.

Any number of options may be used in the match. The find subcommand searches for all items in the list, whose keyworded options match the values indicated. A list of indexes of matching items is returned.
getItem index
The getItem subcommand may be used to retrieve an item from a list. The index argument is used to indicate which item in the list is to be retrieved. This subcommand returns the object from the list.
indexCount
The indexCount subcommand returns the number of objects in the list.
insertItem index option value option value...
The insertItem subcommand may be used to insert an item in a list. Any number of options in the list item may be set. The index argument is used to indicate the insertion point in the list.The new item will be inserted before the index'th item in the list.
OPTIONS
None.
EXAMPLE
$list_object.clear$list_object.appendItem -name "sample"$list_object.insertItem 1 name "sample2"$list_object.configItem -value "mp4"$list_object.deleteItem -1set found_list [$list_object.find regexp \
-speed "\d*[Mm]bps"] $list_object.getItem 3set numObjects [$list_object.indexCount]

ixConfigSortedNamedItemList
ixConfigSortedNamedItemList--Handles a list of objects that is in sorted order.

222

IxLoad Tcl API Programming Guide

Internal Commands
SYNOPSIS
set anyIxLoadObject [$::IxLoad new ixLoadObject options] $anyIxLoadObject option.subcommand sub-options...
DESCRIPTION
ixConfigSortedNamedItemList behaves similar to ixConfigSequenceContainer, except that getItem requires the name of an item rather than its index. The list(index) notation still works for positional indexing with the deleteItem and configItem options. insertItem and appendItem are not supported; instead an addItem method is supported which has the same syntax as appendItem. This difference is required because an item's position in the list is controlled by the automatic sorting and cannot be specified by the user. As with ixConfigSequenceContainer, the first item in an ixConfigSortedNamedhas index 0. Negative indexes indicate positions from the last item in the list. For example, -1 corresponds to the last item in the list, -2 to the one before that, and so forth.
SUBCOMMANDS
The following subcommands are available to handle options, which are lists. Except where noted, no value is returned; an exception is raised in the case of an error. In all cases where they are used the option must begin with a hyphen (-). The value must be of a type appropriate for the option.
addItem name option value option value...
The addItem subcommand adds an item to a list. Any number of options in the list item may be set as part of the addition. Items added with the addItem method should always include the -name option so that the item can be referenced later. If you do not specify a name, IxLoad will assign a default name, but you should not rely on default names because future releases of IxLoad may assign different default names. After addItem has been executed, it returns the object that has been added so that you can use the config subcommand to configure it.
configItem index option value option value...
The configItem subcommand configures a particular item in a list. You can pass multiple option/value pairs in one command, so that the command configures multiple options at the same time. The index argument specifies the list item to be configured. To determine the index number of an item, use the find subcommand.
clear
The clear subcommand deletes all items from a list.
deleteItem index
The deleteItem subcommand deletes an item from a list. The index argument specifies the list item to be deleted. To determine the index number of an item, use the find subcommand. To delete an

IxLoad Tcl API Programming Guide

223

Internal Commands

item by name, use the removeItem sub-command.
find mode option value option value...
The find subcommand searches a list for item that matches its search criteria. The mode argument may be one of:

Option

Usage

exact

Match the value fields exactly.

regexp

Use regular expressions in the matching.

uppercase Perform a caseless match.

Any number of options may be used in the match. The find subcommand searches for all items in the list, whose keyworded options match the values indiA list of indexes of matching items is returned.
getItem name
The getItem subcommand may be used to retrieve an item from a list. The name argument is used to indicate which item in the list is to be retrieved. This subcommand returns the object from the list.
indexCount
The indexCount subcommand returns the number of objects in the list.
removeItem name
The removeItem subcommand deletes an item from a list. The name argument specifies the list item to be deleted. To delete an item by its index, use the deleteItem subcommand.
OPTIONS
None.
EXAMPLE
$list_object.clear$list_object.addItem -name "sample"$list_object.configItem -value "mp4"set found_list [$list_object.find regexp \
-speed "\d*[Mm]bps"] $list_object.getItem "sample"set numObjects [$list_object.indexCount]$list_object.deleteItem -1
SEE ALSO
ixConfigSequenceContainer ixRepository

224

IxLoad Tcl API Programming Guide

Internal Commands ! 6

IxLoad Tcl API Programming Guide

225

This page intentionally left blank.

226

IxLoad Tcl API Programming Guide

Network Stack API
Beginning with release 4.10, IxLoad uses an object-oriented model for its network stack. TCL scripts created with previous releases of IxLoad will still function, but any scripts created using ScriptGen will use the object-oriented network stack.
The following sections describe the object model.

Network Stack Overview
The IxLoad network stack is organized as follows: l Network groups contain a list of network-specific settings, the foundation protocol (L1 Ethernet), and the list of global plugins. Network groups are sometimes referred to as Port Groups, the term used for them in IxNetwork. l Global plugins modify settings of port groups. For example, the TCP global plugin modifies the TCP parameters for the port group that it belongs to. l Layer plugins correspond to layers of a network communication stack. These are the protocols that you would see if captured the traffic and looked at it in a packet analyzer -- a packet header would be present. For example, for an Ethernet plugin, an Ethernet packet would be present. For a PPP plugin, a PPP header would be present. l Extension plugins modify behavior of associated Layer plugins For example, the 802.1x Extension protocol modifies the functionality of a MAC layer plugin. Impairment is another extension protocol -- it can be applied to a single protocol to damage or drop packets, but it has no header or other identifier that can be seen in a packet capture.
Network Stack Hierarchy
The figure below shows the network stack hierarchy in conceptual form and using examples of what you might see if you use ScriptGen to create a Tcl script of an IxLoad test. Each element is described in a subsequent section.

IxLoad Tcl API Programming Guide

227

Network Stack API

Test, scenario, and column
The test element resides at the top of the test. The test contains a property called scenarioList, which holds the test scenario. The scenario contains a property called columnList, which holds one or more columns. Each column contains a property called scenarioElementList, which holds the list of nettraffics or DUTs in the test. The following example shows how to add a nettraffic to a test.
set Test1 [::IxLoad new ixTest]
set scenarioElementFactory [$Test1 getScenarioElementFactory]
set scenarioFactory [$Test1 getScenarioFactory]
$Test1 scenarioList.clear
set New_Traffic_Flow [$scenarioFactory create "TrafficFlow"] $New_Traffic_Flow columnList.clear
set Originate [::IxLoad new ixTrafficColumn] $Originate elementList.clear
set Traffic1_Network1 [$scenarioElementFactory create $::ixScenarioElementType (kNetTraffic)]
Network Group Overview
The network element is a member of the column's nettraffic, and defines a Network Group. set Network1 [$Traffic1_Network1 cget -network] $Network1 globalPlugins.clear Network groups contain a list of network-specific settings, the foundation protocol (L1 Ethernet), and the list of global plugins. The foundation layer in an IxLoad stack is an L1 Ethernet plugin. Every time you create a port group, the L1 Ethernet plugin is created automatically for you. To create it explicitly, you call getL1Plugin. set Ethernet_1 [$Network1 getL1Plugin]

228

IxLoad Tcl API Programming Guide

Network Stack API
The network group data holds data that affects a network stack protocol that runs over a specific set of ports. Network groups are sometimes referred to as Port Groups, the term used for them in IxNetwork. In the IxLoad GUI, the network group data is accessed by clicking the Network Group Settings tab. For example, in the following figure, you would access the network group data for the PPPoX plugin by clicking the Network Group Settings tab:

Global plugins
Global plugins modify settings of port groups. For example, the TCP global plugin modifies the TCP parameters for the port group that it belongs to. In the IxLoad GUI, the global plugins are displayed in the scenario editor opposite the network stacks.
You script the parameters for the global plugins once per test.

To add a global plugin, you add it as an element of the list of Global plugins: set Network1 [$Traffic1_Network1 cget -network]$Network1 globalPlugins.clear

set Filter_1 [::IxLoad new ixNetFilterPlugin]$Network1 globalPlugins.appendItem object $Filter_1

After adding it to the list, you then configure it: $Filter_1 config \-all
false \-isis

false \

false \-pppoecontrol

IxLoad Tcl API Programming Guide

229

Network Stack API
Stacks and Protocol Plugins
This section describes the elements of a network stack.

Global options
Most protocols have Global options, which define the behavior of a protocol in all the ranges. There is only one instance of Global options for each protocol. They affect every instance of the protocol running on every port in the test. The Global Options are stored in the session-specific data. The sessionspecific data is unique to a single instance of an IxLoad test.
In the IxLoad GUI, these are configured by clicking on the Globe icon above the network stacks.

You should script a protocol's global options when you add the first instance of the protocol.

The global options can be set in Tcl by creating a structure to hold the options, and then calling getSessionSpecificData and passing the name of the protocol.

For example, to set the PPPoX global options:

set my_ixNetPppoxSessionData [$Test1 getSessionSpecificData "PppoxPlugin"]$my_

ixNetPppoxSessionData config \-teardownRateInitial

300 \-

acceptPartialConfig

true \-maxOutstandingRequests

300 \-maxOutstandingReleases

300 \-setupRateInitial

300

Each protocol has a reserved string that is passed as an argument to getSessionSpecificData. For a list of strings, see Plugin name strings.

230

IxLoad Tcl API Programming Guide

Network Stack API

Plugin name strings
The table below lists the names of the plugins to use for the GetSessionSpecificData and GetNetworkSpecificData commands.

Protocol Plugins

Plugin Name String

802.1x

Dot1xPlugin

DHCP Client

DHCPPlugin

DHCP Server

DHCPServerPlugin

EAPoUDP

Nacl3Plugin

eGTP S1/S11 eNB/MME

EGTPPlugin

eGTP S1/S11 eNB/SGW

EGTPPlugin_SGW

Emulated Router

N/A

GTP

GTPSPlugin

GTP-GGSN

GTPGPlugin

Impair

ImpairPlugin

IP

IpV4V6Plugin

IPSec

IPSecPlugin

L2EthernetPlugin (MAC/VLAN) N/A

L2TP

L2tpPlugin

Mobile Subscribers

MobileSubscribersPlugin

PPPoX

PppoxPlugin

Radius

RadiusPlugin

Static ARP

N/A

WebAuth

WebAuthPlugin

IxLoad Tcl API Programming Guide

231

Network Stack API

Network Group Settings
The network group settings contain the network-specific settings for a network group.
The network group settings can be set in Tcl by configuring the Port Group Specific Data, a list that holds the network group options for a specific protocol in the network group. There is a set of options for each protocol in the network group.
For example:
set my_ixNetPppoxPortGroupData [$client_network getNetworkSpecificData "PppoxPlugin"] $my_ixNetPppoxPortGroupData activities.clear

$my_ixNetPppoxPortGroupData associates.clear

$my_ixNetPppoxPortGroupData config \ -useWaitForCompletionTimeout -maxOutstandingRequests -perSessionStatFilePrefix -enablePerSessionStatGeneration -waitForCompletionTimeout -maxOutstandingReleases -overrideGlobalRateControls -role -filterDataPlaneBeforeL7 -teardownRateInitial -setupRateInitial

false \ 300 \ "MY_PREFIX" \ false \ 120 \ 300 \ false \ "client" \ true \ 300 \ 300

L2 Plugin
To build the stack, you add plugins as children of other plugins. The first plugin that you add to the stack is an L2 plugin. There is one L2 plugin per stack.
After the L1 plugin has been created, you add the L2 plugin as its child, using the appendItem command to add it to the childrenList property. Children lists are ranges of configuration data for the plugin being added. Most plugins have one range, but some have two. For example, an Ethernet range has a MAC range and VLAN range as its children.

232

IxLoad Tcl API Programming Guide

Network Stack API
For example, to create a MAC address range, you add it to the childrenList of the Ethernet plugin. set MAC_VLAN_1 [::IxLoad new ixNetL2EthernetPlugin]$Ethernet_1 childrenList.appendItem -object $MAC_VLAN_1
Adding Layer Plugins
To add additional higher-layer protocols to the stack, you them as ranges, again using appendItem: $PPPoX_4 rangeList.clearset PPPoX_R4 [::IxLoad new ixNetPppoxRange]$PPPoX_4 rangeList.appendItem -object $PPPoX_R4

Extension plugins
Extension plugins modify the behavior of the protocols they are associated with. To add an extension plugin, you add it to its associated protocol's extensionList property using the appendItem command: set Impair_1 [::IxLoad new ixNetImpairPlugin]$PPPoX_1 extensionList.appendItem object $Impair_1
Then, you configure the extension plugin's range and parameters, and then enable it: set Impair_R1 [$PPPoX_R1 getExtensionRange $Impair_1]

set DefaultProfile [::IxLoad new ixNetImpairProfile]$DefaultProfile config \-

addFragment

true \-sendFirstFragmentOnly

false \-fragmentSequenceLength

32 \-addFragmentSequence

true \-sendFragmentsInReverseOrder

true

$Impair_R1 config \-enabled $DefaultProfile

true \-profile

Ethernet Plugin

SYNOPSIS

IxLoad Tcl API Programming Guide

233

Network Stack API

DESCRIPTION
First plugin for all Ethernet stacks. This element is preconfigured to be the first element of the stack in the Network Group. You can get this item from the network by calling get NetworkPlugin.
SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" autoNegotiate If true, the Ixia port auto-negotiates its speed and duplex operation with the DUT, using the values that you select for the Speed parameter. If false, the Ixia port uses the speed that you select for the Speed parameter.

Value Description copper Use copper mode. fiber Use fiber mode. auto Automatically select the media type .

Default value = "True" speed If autoNegotiate is true, this parameter lists the speeds that the Ixia port advertises.

Value k10FD

Description 10Mbit Full Duplex

234

IxLoad Tcl API Programming Guide

k10HD 10Mbit Half Duplex k100FD 100Mbit Full Duplex k100HD 100Mbit Half Duplex k1000 1 Gigabit k10000 10 Gigabit Default value = "'k100FD'" advertise10Half If true, the Ixia port advertises 10 Mbps half duplex speed. Default value = "True" name="advertise10Full" If true, the Ixia port advertises 10 Mbps full duplex speed. Default value = "True" name="advertise100Half" If true, the Ixia port advertises 100 Mbps half duplex speed. Default value = "True" name="advertise100Full" If true, the Ixia port advertises 100 Mbps full duplex speed. Default value = "True" name="advertise1000Full" If true, the Ixia port advertises 1 Gbps full duplex speed. Default value = "True" name="cardElm" Default value = "None"
EXAMPLE
SEE ALSO
IxLoad Tcl API Programming Guide

Network Stack API 235

Network Stack API

Ethernet ELM options

SYNOPSIS

DESCRIPTION
Defines the parameters for using an Encrypting Load Module (ELM) in an IxLoad test.
SUBCOMMANDS

OPTIONS
enabled If true, an ELM port will be configured as an ELM port. If false, an ELM port will be configured as a generic Ethernet port. Default value = "False" negotiateMasterSlave If true, the master/slave relationship of all ports will be auto-negotiated. If false, the negotiationType value determines the master/slave relationship. Default value = "True" negotiationType If negotiateMasterSlave is false, this value determines the role (master or slave) of the ELM port.

Value Description master Port is master. slave Port is slave.

Default value = "'master"'

EXAMPLE

set my_ixNetEthernetELMPlugin [::IxLoad new ixNetEthernetELMPlugin]$my_ixNetEth-

ernetELMPlugin config \-negotiationType

"master" \-

negotiateMasterSlave

true

236

IxLoad Tcl API Programming Guide

$Ethernet_1 config \-advertise10Full "Ethernet-1" \-autoNegotiate true \-advertise10Half "k100FD" \-advertise1000Full true \-cardElm
$Ethernet_1 childrenList.clear $Ethernet_1 extensionList.clear
SEE ALSO

Network Stack API
true \-name true \-advertise100Half true \-speed true \-advertise100Full $my_ixNetEthernetELMPlugin

Physical Layer Example
This section shows an example of how to create a physical layer plugin in the Tcl API.

Physical Layer Example

IxLoad Tcl API Programming Guide

237

Network Stack API

238

IxLoad Tcl API Programming Guide

Network Stack API

Layer 2 Protocols (MAC / VLAN)
This section describes the Layer 2 protocol (MAC / VLAN) plugins.
L2EthernetPlugin

IxLoad Tcl API Programming Guide

239

Network Stack API

SYNOPSIS

DESCRIPTION
Plugin that describes the MAC and VLAN settings. This object appears as MAC/VLAN in the GUI.
SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" macRangeList Name of the list of MAC address ranges used by this plugin. The list must be a MacRangeList object. Default value = "None" vlanRangeList Name of the list of VLAN tag ranges used by this plugin. The list must be a VlanIdRangeList object. Default value = "None"
EXAMPLE
set MAC_VLAN_3 [::IxLoad new ixNetL2EthernetPlugin]# ixNet objects needs to be added in the list before they are configured!$Ethernet_1 childrenList.appendItem -object $MAC_VLAN_3

$MAC_VLAN_3 config \-name

"MAC/VLAN-3"

$MAC_VLAN_3 childrenList.clear

240

IxLoad Tcl API Programming Guide

SEE ALSO
L2 Ethernet (MAC/VLAN) Port Group Data
SYNOPSIS
DESCRIPTION
Options for Layer 2 Ethernet port groups.
SUBCOMMANDS
OPTIONS
activityID Activity ID. Default value = "'0'" activities List of activities. Default Value = "None"
EXAMPLE
SEE ALSO
MAC Session Data

Network Stack API

IxLoad Tcl API Programming Guide

241

Network Stack API

SYNOPSIS

DESCRIPTION
Global MAC settings for the L2EthernetPlugin.
SUBCOMMANDS

OPTIONS
duplicateCheckingScope
Value used to scope of check to determine whether IP is unique within the session, within the port group, or disabled.

Value Description

0

Disabled

1

PortGroup

2

Session

Default value = "None"
EXAMPLE

SEE ALSO

MAC Range
SYNOPSIS
DESCRIPTION
Range of MAC addresses. Configure the range as a list.

242

IxLoad Tcl API Programming Guide

Network Stack API
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range is enabled. Default value="True". mac The base value used when the network stack element creates MAC addresses. This address will be associated with the first interface on the port. This parameter is available for editing only when the AutoGenerate MAC option is disabled (in the layer 3 stack element). When you require a range of multiple MAC addresses, the network stack element uses this base address plus the Increment value to create the range of addresses. Note: If you are using VM ports, the default behavior of the test is to use the MAC address cloned from the NIC, rather than the configured address. To override this behavior and manually configure the MAC addresses, enable promiscuous mode in IxExplorer for each port and also enable promiscuous mode on the VmWare ESX virtual switch. Default value (for API)="" (none) incrementBy The value that is used (in conjunction with the base MAC address) to create a range of multiple MAC addresses. Default value="'00:00:00:00:00:01'" mtu Maximum Transmission Unit (MTU) is the largest packet that a given network medium can carry. Ethernet, for example, has a standard MTU of 1500 bytes, ATM has a fixed MTU of 48 bytes, and PPP has a negotiated MTU that is usually between 500 and 2000 bytes. The default value is 1500, the minimum value is 500, and the maximum value is 9500. Default value="1500". count

IxLoad Tcl API Programming Guide

243

Network Stack API

Number of MAC addresses to create. Default value="1". vlanRange Name of the VLAN range associated with the MAC address. Default value="None".
EXAMPLE
set MAC_R2 [$DHCP_R1 getLowerRelatedRange "MacRange"]

$MAC_R2 config \ -count -name -enabled -mtu -mac -incrementBy

1\ "MAC-R2" \ true \ 1500 \ "22:73:F7:4E:00:00" \
"00:00:00:00:00:01"

SEE ALSO

VLAN ID Range
SYNOPSIS
DESCRIPTION
Range of VLAN IDs.
SUBCOMMANDS

244

IxLoad Tcl API Programming Guide

Network Stack API
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". enable When enabled, the outer VLAN range is included in the configuration. Default value="False" firstId The first VLAN ID to be used for the outer VLAN tag. Valid VLAN IDs are in the range of 1 through 4094 (IDs 0 and 4095 are reserved). Default value="1" incrementStep The value to be added to the outer VLAN ID for each new assignment. The maximum value is 4093. Default value="1" increment How often a new outer VLAN ID is generated. For example, a value of 10 will cause a new VLAN ID to be used in blocks of 10 IP addresses. When using Inner First increment mode, this parameter determines how many inner cycles must be completed before a new outer VLAN ID is generated. For example if Increment every... is 2, a new outer VLAN ID is generated following two inner VLAN ID cycles. (A cycle is complete when the Unique Count has been reached for inner VLAN IDs.) Default value="1" uniqueCount The number of unique outer VLAN IDs that will be created. The default value is 4094. Default value="4094" priority The 802.1Q priority for the outer VLAN. The minimum value is zero; the maximum value is 7.

IxLoad Tcl API Programming Guide

245

Network Stack API
Default value="1" innerEnable When enabled, the inner VLAN range is included in the configuration. Inner VLAN cannot be enabled unless Outer VLAN is enabled. Default value="False" innerFirstId The first VLAN ID to be used for the inner VLAN tag. Valid VLAN IDs are in the range of 1 through 4094 (IDs 0 and 4095 are reserved). Default value="1" innerIncrementStep The value to be added to this inner VLAN ID for each new assignment. The maximum value is 4093. DefaultValue="1" innerIncrement How often a new inner VLAN ID is generated. For example, a value of 10 will cause a new VLAN ID to be used in blocks of 10 IP addresses. When using Outer First increment mode, this parameter determines how many outer cycles must be completed before a new inner VLAN ID is generated. For example if Increment every... is 2, a new inner VLAN ID is generated following two outer VLAN ID cycles. (A cycle is complete when the Unique Count has been reached for outer VLAN IDs.) Default value="1" innerUniqueCount The number of unique inner VLAN IDs that will be created. The default value is 4094. Default value="4094" innerPriority The 802.1Q priority for this inner VLAN. The minimum value is zero; the maximum value is 7. Default value="1" idIncrMode The Method used to increment VLAN IDs:
l Outer VLAN first - The outer VLAN ID is incremented first. When the Unique Count is reached the number of times specified by the Increment every... parameter, the inner VLAN ID is incremented.

246

IxLoad Tcl API Programming Guide

Network Stack API

l Inner VLAN first - The inner VLAN ID is incremented first. When the Unique Count is reached the number of times specified by the Increment every... parameter, the outer VLAN ID is incremented.
l Both - Both VLAN IDs are incremented at the same time.
Refer to VLAN Increment Examples for more information about VLAN increment modes.
Default value="2"

EXAMPLE
set VLAN_R1 [$DHCP_R1 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \ -incrementStep -uniqueCount -name -innerIncrement -innerUniqueCount -enabled -innerFirstId -increment -priority -firstId -innerIncrementStep -idIncrMode -innerEnable -innerPriority

1\ 4094 \ "VLAN-R1" \ 1\
4094 \ true \ 1\ 1\ 1\ 1\
1\ 2\ false \ 1

SEE ALSO

IxLoad Tcl API Programming Guide

247

Network Stack API
Layer 2 Example
This section shows an example of how to create a layer 2 plugin in the Tcl API.
Layer 2 Example

248

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

249

Network Stack API

250

IxLoad Tcl API Programming Guide

Network Stack API

Emulated Router Plugin
SYNOPSIS
DESCRIPTION
Used over L2EthernetPlugin to define an emulated router.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins.

IxLoad Tcl API Programming Guide

251

Network Stack API
Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" EmulatedRouterRangeList List of EmulatedRouterRange objects. Default value="None".
EXAMPLE
SEE ALSO
EmulatedRouterRange
SYNOPSIS
DESCRIPTION
Defines a range of IP addresses that will be used by an emulated router. You need to assign one port per address to this range. Configure the range as a list.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled

252

IxLoad Tcl API Programming Guide

Network Stack API
If True, the range base is enabled. Default value="True". ipType Indicates the IP version for each range:
l IPv4 l IPv6 The default value is IPv4. Must be one of the choices in IpTypeChoices. Default value="'IPv4'". ipAddress The first IP address in the range. This is the base address used for enumerating all the addresses in the range. The default IPv4 address is 10.10.10.2, and the default IPv6 address is ::A0A:A02. Note: IxOS reserves a range of addresses for use in the Ixia chassis VNIC network; the default reserved range is the 10.0.0.0 /16 subnet. If you attempt to configure IP addresses from this reserved subnet, IxLoad will reject the address assignment. Default value="'10.10.0.1'". prefix The number of one bits in the subnet mask. For example, a mask of 255.255.240.0 has a prefix of 20. The default IPv4 value is 24, and the default IPv6 value is 120. Default value="16". incrementBy The value used to enumerate all the addresses in the range. The default IPv4 value is 0.0.0.1. The default IPv6 value is ::1. Default value="1". gatewayAddress The gateway address to be associated with all the addresses in the range. If the Protocol is IPv6, the Gateway field adds a default route to this gateway for the range (unless the gateway is 0::0, in which case the route is not added). The default IPv4 value is 10.10.10.1. The default IPv6 value is ::A0A:A01. Note: When you configure an Emulated Router in an IP stack, the Emulated Router provides the gateway addresses for the IP ranges. In this case, the IP gateway parameters are not configurable. Default value="'0.0.0.0'"

IxLoad Tcl API Programming Guide

253

Network Stack API
gatewayIncrement
Defines the address increment value that is used to generate each gateway address required in the . (The gateway addresses are incremented according to the Gateway Increment Mode.) The default IPv4 value is 0.0.0.0, and the default IPv6 value is ::0. When the default value is used, the base gateway address will not be incremented. Rather, all gateway IPs will be the same for all interfaces generated by the plug-in range. Default value="'0.0.0.0'" gatewayIncrementMode
Determines when the gateway addresses are incremented. The options are: l Increment every subnet: A new gateway address is created for each subnet defined in the network group. With this mode, the increment operation is triggered when a range IP increment operation creates an IP address that is in a new subnet. l Increment every interface: A new gateway address is created for each interface, whether or not the next address is from the same subnet.
The default is Increment Every Subnet. Refer to Static IP Plug-in Gateway Addresses for more information. Must be one of the choices in GatewayIncrementModeChoices. Default value="'perSubnet'". generateStatistics
When this parameter is enabled, IxLoad will collect interface statistics for this range. Values=True/False. Default value="False". mss
The Maximum Segment Size. The MSS is the largest amount of data, specified in bytes, that the IP device can transmit as a single, unfragmented unit. The TCP MSS equals the MTU minus the TCP header size minus the IP header size. The MSS value can (theoretically) be as large as 65495. For traditional Ethernet, the maximum value is 1460 (1500 minus 40). For jumbo frame support, the maximum value is 9460 (9500 minus 40). IxLoad supports jumbo frames. The default value is 1460. Default value="1460". autoMacGeneration
This parameter is used to automatically generate MAC addresses: l If enabled, MAC addresses will be automatically generated based on the IP addresses, in which case the associated MAC range is ignored.

254

IxLoad Tcl API Programming Guide

Network Stack API

If disabled, the associated MAC range is used to create the MAC addresses. Values=True/False. Default value="True". macRange
Name of the MAC range. Must be one of the choices in MacRange. Default value="None". vlanRange
Name of the VLAN range. Must be one of the choices in VlanIdRange. Must be one of the choices in VlanIdRange. Default value="None".
EXAMPLE
set ER_R1 [::IxLoad new ixNetEmulatedRouterRange]# ixNet objects needs to be added in the list before they are configured!$Emulated_Router_1 rangeList.appendItem object $ER_R1

$ER_R1 config \-count "ER-R1" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement "perSubnet" \-generateStatistics "10.10.0.3" \-ipType

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode
false \-ipAddress "IPv4"

SEE ALSO

Emulated Router Example
This section shows an example of how to create an Emulated Router in the Tcl API.

IxLoad Tcl API Programming Guide

255

Network Stack API
Emulated Router Example

256

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

257

Network Stack API

258

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

259

Network Stack API

IP Plugin
This section describes the IP protocol plugin.

260

IxLoad Tcl API Programming Guide

Port Group Data
SYNOPSIS
DESCRIPTION
Options for IP ranges within a specific port group.
SUBCOMMANDS
OPTIONS
activityID Activity ID. Default value = "'0'" activities List of activities. Default Value = "None"
EXAMPLE
SEE ALSO
IP Session Data
SYNOPSIS
DESCRIPTION
Configures the IP global settings.
IxLoad Tcl API Programming Guide

Network Stack API 261

Network Stack API

SUBCOMMANDS

OPTIONS
Same as SessionSpecificData plus the following: duplicateCheckingScope
Value used to scope of check to determine whether IP is unique within the session, within the port group, or disabled.

Value Description

0

Disabled

1

Port Group

2

Session

Default value="None"
EXAMPLE

SEE ALSO

IpV4V6Plugin
SYNOPSIS
DESCRIPTION
Layer 3 plugin that provides IPv4/IPv6 address ranges.
SUBCOMMANDS

262

IxLoad Tcl API Programming Guide

OPTIONS
From IpStaticProvider: name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" rangeList Name of the IP range. This parameter is read-only. Default value="None".

EXAMPLE
set IP_2 [::IxLoad new ixNetIpV4V6Plugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_7 childrenList.appendItem -object $IP_2

$IP_2 config \ -name

"IP-2"

$IP_2 childrenList.clear

$IP_2 extensionList.clear

$MAC_VLAN_7 extensionList.clear

$Ethernet_1 extensionList.clear

Network Stack API

IxLoad Tcl API Programming Guide

263

Network Stack API
SEE ALSO
IP Plugin Example
This section shows an example of how to create a IP plugin in the Tcl API.

264

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

265

Network Stack API

266

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

267

Network Stack API

268

IxLoad Tcl API Programming Guide

Network Stack API

StaticARP
This section describes the StaticARP plugin.
SYNOPSIS
set StaticArpRange_2 [$IP_R4 getExtensionRange $Static_ARP_2]
$StaticArpRange_2 config \
DESCRIPTION
Configures a StaticARP range. A StaticARP range is an extension to an IP range.

IxLoad Tcl API Programming Guide

269

Network Stack API

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enabled If enabled, the Static ARP range is enabled for use in the configuration. If disabled, the range will not be validated, nor will it be configured. Static ARP ranges are enabled by default. API Default = true mac The base value that the plug-in uses to create a range of MAC addresses for the static ARP table. The default value is aa:bb:cc:00:00:00. API Default = "aa:bb:cc:00:00:00" macIncrementBy The increment value that the plug-in uses to create a range of MAC addresses for the static ARP table. The default value is 00:00:00:00:00:01. API Default = "00:00:00:00:00:01"
EXAMPLE
set StaticArpRange_2 [$IP_R4 getExtensionRange $Static_ARP_2]

$StaticArpRange_2 config \

-macIncrementBy

"00:00:00:00:00:01" \

-mac

"aa:bb:cc:00:00:00" \

-enabled

true

DHCP Client and Server
This section describes the DHCP client and server plugins.

270

IxLoad Tcl API Programming Guide

Network Stack API
DHCP Client Plugin
SYNOPSIS
DESCRIPTION
DHCP client.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" rangeList List of DHCP ranges. New elements can be added to the using appendItem. The elements of the list can be modified, but the list cannot be replaced. Default value="None".
EXAMPLE
set DHCP_Client_1 [::IxLoad new ixNetDHCPPlugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_3 childrenList.appendItem -object $DHCP_Client_1
$DHCP_Client_1 config \

IxLoad Tcl API Programming Guide

271

Network Stack API

-name

"DHCP Client-1"

$DHCP_Client_1 childrenList.clear

$DHCP_Client_1 extensionList.clear

$MAC_VLAN_3 extensionList.clear

$Ethernet_1 extensionList.clear

SEE ALSO

DHCP Server Plugin
SYNOPSIS
DESCRIPTION
Configures a DHCP server.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None"

272

IxLoad Tcl API Programming Guide

extensionList Name of the list of protocol extensions. Default value = "None" rangeList Name of the list of DHCP Server ranges. Default value = "None"
EXAMPLE
set DHCP_Server_1 [::IxLoad new ixNetDHCPServerPlugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_4 childrenList.appendItem -object $DHCP_Server_1

$DHCP_Server_1 config \ -name

"DHCP Server-1"

$DHCP_Server_1 childrenList.clear

$DHCP_Server_1 extensionList.clear

$MAC_VLAN_4 extensionList.clear

$Ethernet_1 extensionList.clear

SEE ALSO

Network Stack API

Authentication Extension Plugins
This section describes the Authentication Extension plugins.

IxLoad Tcl API Programming Guide

273

Network Stack API
WebAuthPlugin
SYNOPSIS
DESCRIPTION
Configures a WebAuthx plugin.
SUBCOMMANDS
OPTIONS
name Name of the instance of this plugin. rangeList List of address ranges used by this plugin. Default value = "None"
EXAMPLE
SEE ALSO
802.1x plugin
SYNOPSIS
DESCRIPTION
Creates a range of names and passwords for use in a Dot1xRangeList object.

274

IxLoad Tcl API Programming Guide

Network Stack API

SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the plugin is enabled. Default value="True". nacSequence The NAC Sequence used by this range. Note: If a NAC Sequence has been selected for an 802.1X range, but you do not want a NAC Sequence associated with the range, specify None to remove the NAC Sequence from the range configuration. Default value = "None" fastProvisionMode FAST provisioning mode specifies how the tunnel PAC is acquired.

Value

Description

authenticated

Authenticated (certificate is required). PAC provisioning occurs inside an authenticated tunnel, using the server certificate.

unauthenticated

Unauthenticated (no certificate required).
When using unauthenticated mode, the first session will acquire a special token named tunnelPac from the ACS server. By design, the server will send a plain EAP Failure message at the end of the successful session. The ACS logs will indicate for the failed session that the client was provisioned with a new tunnelPac. IxLoad will not re-initiate a new session with the obtained tunnelPac unless the DUT reinitiates full re-authentication or a new start test message is sent to the PCPU.

IxLoad Tcl API Programming Guide

275

Network Stack API

fromfile

Load from File
A PAC is stored on the chassis. The share location is C:\Program Files\ixia\nfs\rw\ports\_x_\_y_\
In this mode, the PAC file is loaded from the file and is directly presented to server. The client does not request a new PAC as part of its session. Phase 0 (provisioning) is skipped.

auth_save_pac

Authenticated and save to file This option is identical to the Authenticated option except that after receiving a tunnel PAC, the client saves it on the Ixia chassis share C:\Program Files\ixia\nfs\rw\ports\_x_\_y_\ Note that any existing PACs will be overwritten.

unauth_save_ pac

This option is identical to the Unauthenticated option except that after receiving a tunnel PAC, the client saves it on the Ixia chassis share C:\Program Files\ixia\nfs\rw\ports\_x_\_y_\
Note that any existing PACs will be overwritten.

Default value="'unauthenticated'" fastInnerMethod FAST inner method.

Value

Description

GTC

GTC

MsChapv2 MS CHAP v2

Default value = "'GTC'" fastStatelessResume FAST stateless resume mode.

Value Description

yes Yes: Within the secure tunnel established between the client and the server, based on the tunnel PAC, the client also requires a UserPAC which will be provided by the server (if it is enabled to do so). If the client is provided with the UserPAC, during the next authentication sessions, it will have to send the userPAC to the server, within the tunnel, for the authentication to complete.

no

No: FAST stateless resume mode is not used.

Default value="'no'"

276

IxLoad Tcl API Programming Guide

Network Stack API

userName
The UserName used to authenticate the port. Default value = "'username_1_1_1_file'" userPassword
The User Password used to authenticate the port. Default value = "'userpass_1_1_1_file'" waitId
defaultValue="False" protocol
The Authentication Protocol that this 802.1X range will use. The choices are:
l TLS l PEAPv0 l PEAPv1 l MD5 l TTLS l FAST When you choose FAST as the protocol, you need to also configure three more options (described below): FAST Provisioning, FAST Inner Method, and FAST Stateless. defaultValue="'MD5'" hostAuthMode
Host (Machine) Authentication Method that this 802.1X range will use.

Parameter Description

None

None ­ No machine account is used.

HOSTONLY

Host Only ­ When this mode is used, the Ixia port emulates only the host for each MAC address (but not the user). Nonetheless, the username certificate will be requested and transferred to the chassis.

IxLoad Tcl API Programming Guide

277

Network Stack API

HOSTUSERREAUTH
HOSTUSERBOTH

Host User-Reauth ­ When this mode is used, the Ixia port emulates both the host and the user for each MAC address. This emulates a case in which a domain machine that is started, the domain policies are applied (machine authentication), and multiple users then successfully log in. For each host/user pair, the host is authenticated first, followed by the user. Note that for user authentication to take place, the DUT must re-trigger authentication.
Host User-Both ­ When this mode is used, the Ixia port emulates both the host and the user for each MAC address. This emulates a case in which a domain machine is started, a domain policy is deployed, a user logs in, then a reboot occurs; the reboot starts the cycle again.

defaultValue="'None'" hostName The Machine Name used to authenticate the port. defaultValue="'hostname_1_1_1_file'" /> hostPassword The Machine Password used to authenticate the port. defaultValue="'hostpass_1_1_1_file'" />
EXAMPLE

SEE ALSO

EAPoUDP plugin
SYNOPSIS
DESCRIPTION
Configures the EAPoUDP Range Parameters.
SUBCOMMANDS

278

IxLoad Tcl API Programming Guide

Network Stack API

OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". nacSequence The NAC Sequence used by this range. Note: If a NAC Sequence has been selected for an 802.1X range, but you do not want a NAC Sequence associated with the range, specify None to remove the NAC Sequence from the range configuration. Default value = "None" fastProvisionMode FAST provisioning mode specifies how the tunnel PAC is acquired.

Value

Description

authenticated

Authenticated (certificate is required). PAC provisioning occurs inside an authenticated tunnel, using the server certificate.

unauthenticated

Unauthenticated (no certificate required).
When using unauthenticated mode, the first session will acquire a special token named tunnelPac from the ACS server. By design, the server will send a plain EAP Failure message at the end of the successful session. The ACS logs will indicate for the failed session that the client was provisioned with a new tunnelPac. IxLoad will not re-initiate a new session with the obtained tunnelPac unless the DUT reinitiates full re-authentication or a new start test message is sent to the PCPU.

fromfile

Load from File
A PAC is stored on the chassis. The share location is C:\Program Files\ixia\nfs\rw\ports\_x_\_y_\
In this mode, the PAC file is loaded from the file and is directly presented to server. The client does not request a new PAC as part of its session. Phase 0 (provisioning) is skipped.

IxLoad Tcl API Programming Guide

279

Network Stack API

auth_save_pac

Authenticated and save to file This option is identical to the Authenticated option except that after receiving a tunnel PAC, the client saves it on the Ixia chassis share C:\Program Files\ixia\nfs\rw\ports\_x_\_y_\ Note that any existing PACs will be overwritten.

unauth_save_ pac

This option is identical to the Unauthenticated option except that after receiving a tunnel PAC, the client saves it on the Ixia chassis share C:\Program Files\ixia\nfs\rw\ports\_x_\_y_\
Note that any existing PACs will be overwritten.

Default value="'unauthenticated'" fastInnerMethod FAST inner method.

Value

Description

GTC

GTC

MsChapv2 MS CHAP v2

Default value = "'GTC'" fastStatelessResume FAST stateless resume mode.

Value Description

yes Yes: Within the secure tunnel established between the client and the server, based on the tunnel PAC, the client also requires a UserPAC which will be provided by the server (if it is enabled to do so). If the client is provided with the UserPAC, during the next authentication sessions, it will have to send the userPAC to the server, within the tunnel, for the authentication to complete.

no

No: FAST stateless resume mode is not used.

Default value="'no'" userName The UserName used to authenticate the port. Default value = "'username_1_1_1_file'" userPassword The User Password used to authenticate the port.

280

IxLoad Tcl API Programming Guide

Network Stack API

Default value = "'userpass_1_1_1_file'"

protocol
The Authentication Protocol that this EAPoUDP range will use. The choices are: l PEAPv1 l FAST
When you choose FAST as the protocol, you need to also configure three more options: Fast Provisioning, Fast Inner Method, and Fast Stateless. Default value = "'PEAPv1'" responseType
The types of EAPoUDP messages to which the range responds.

Value

Description

RespondToAll Respond To All ­ Respond to all EAPoUDP messages.

NoStatusQuery No Status Query ­ Do not respond to EAP-StatusQuery messages. The lack of a response to these messages triggers a new full authorization exchange.

IgnoreAll

Ignore All ­ Do not respond to any EAPoUDP messages. This simulates a nonresponsive host.

Default value = "'RespondToAll'" expectedSystemToken The expected system token.

Value Description

0

Healthy

10

Checkup

15

Transition

20

Quarantine

30

Infected

100 Unknown

Default value = "'0; 10; 15; 20; 30; 100'"

IxLoad Tcl API Programming Guide

281

Network Stack API
EXAMPLE SEE ALSO

Impair Plugin

SYNOPSIS

DESCRIPTION
Defines an Impair plugin.
SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" rangeList Name of the Impair range. Default value = "None"
EXAMPLE
set Impair_1 [::IxLoad new ixNetImpairPlugin] # ixNet objects needs to be added in the list before they are configured! $IP_5 extensionList.appendItem -object $Impair_1

$Impair_1 config \ -name

"Impair-1"

282

IxLoad Tcl API Programming Guide

Network Stack API

$MAC_VLAN_11 extensionList.clear
$Ethernet_1 extensionList.clear
SEE ALSO
ImpairRange
SYNOPSIS
DESCRIPTION
Defines the properties of the Impair range. Configure the ranges as a list.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". targetRange The name of the target IP range. Default value = "None" profile The name of the ImpairProfile object that contains the impairment settings used by this range. defaultValue="None"
EXAMPLE
$IP_5 rangeList.clear

IxLoad Tcl API Programming Guide

283

Network Stack API

set IP_R5 [::IxLoad new ixNetIpV4V6Range]# ixNet objects needs to be added in the list before they are configured!$IP_5 rangeList.appendItem -object $IP_R5

$IP_R5 config \-count "IP-R5" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement "perSubnet" \-generateStatistics "10.10.0.6" \-ipType

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode
false \-ipAddress "IPv4"

set Impair_R1 [$IP_R5 getExtensionRange $Impair_1]

set DefaultProfile [::IxLoad new ixNetImpairProfile]$DefaultProfile config \-

addTcpFlagsFilter

false \-jitter

0 \-reorderPISkip

1 \-seed

0 \-typeOfService

"any" \-dropSequenceLength

1 \-protocol

"any" \-addFragment

false \-addBandwidth

false \-delay

1 \-addDelay

true \-impairOrder

"Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth" \-

sendFirstFragmentOnly

false \-addDrop

false \-reorderLength

1 \-addDuplicate

false \-reorderPILength

1 \-sendOverlappingFragments

false \-reorderPITimeout

1000 \-addReorderPI

false \-reorder

1 \-addFragmentSequence

false \-expectTcpFlags

"SYN" \-destinationIp

"any" \-fragmentSequenceSkip

1 \-addBandwidthIn

false \-selectTcpFlags

"SYN;RST;ACK" \-gap

1 \-destinationPort

0 \-fragmentSequenceLength

1 \-sourcePort

0 \-bandwidthUnitsIn

"kbps" \-name

"DefaultProfile" \-mtuSequence

1000 \-dropSequenceSkip

1 \-mtu

1000 \-addReorder

false \-defaultp

true \-bandwidthUnits

"kbps" \-reorderPIInterval

1 \-sourceIp

"any" \-sendFragmentsInReverseOrder

false \-addDropSequence

false

$Impair_R1 config \-enabled "Impair-R1" \-profile

true \-name $DefaultProfile

set MAC_R10 [$IP_R5 getLowerRelatedRange "MacRange"]

284

IxLoad Tcl API Programming Guide

Network Stack API

$MAC_R10 config \-count "MAC-R10" \-enabled 1500 \-mac "00:00:00:00:00:01"

1 \-name true \-mtu "00:0A:0A:00:06:00" \-incrementBy

set VLAN_R1 [$IP_R5 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \-incrementStep 4094 \-name 1 \-innerUniqueCount true \-innerFirstId 1 \-priority 1 \-innerIncrementStep 2\
-innerEnable -innerPriority
SEE ALSO

1 \-uniqueCount "VLAN-R1" \-innerIncrement 4094 \-enabled 1 \-increment 1 \-firstId 1 \-idIncrMode
false \ 1

ImpairProfile
SYNOPSIS
DESCRIPTION
Defines a new impairment profile. Configure the profiles as a list.
SUBCOMMANDS
OPTIONS General parameters
name Name of this profile. Default value = "None"

IxLoad Tcl API Programming Guide

285

Network Stack API
defaultp Set to True to make this the default profile. When True, this profile is assigned to new impair ranges. Default value = "False"
Delay parameters
addDelay If true, this impairment is applied to the packet stream. Default value = "True" delay The Delay impairment characteristic allows you to insert latency errors into a packet stream. Specifies the delay for each packet, in milliseconds. Default value = "1" jitter Specifies the jitter value, in milliseconds. A random value from 0 ms to the Jitter value that you specify is added to or subtracted from your specified Delay value. Note that the Jitter value cannot be greater than delay. Default value = "0"
Drop parameters
addDrop The Drop impairment characteristic allows you emulate random packet loss from a packet stream. If true, this impairment is applied to the packet stream. Default value = "False"
Drop Sequence parameters
addDropSequence The Drop Sequence impairment characteristic allows you emulate sequential packet loss from a packet stream. In this case, a specified number of packets will be dropped at a specified interval. If true, this impairment is applied to the packet stream. Default value = "False" dropSequenceSkip The number of packets that will be transmitted before one or more packets are dropped.

286

IxLoad Tcl API Programming Guide

Network Stack API
Default value = "1" dropSequenceLength The number of packets that will be dropped. The Drop Sequence setting specifies that a sequence of d packets is dropped after each transmitted sequence of s packets. For example, if s = 2 and d = 3, the transmitted packets are: 1, 2, 6, 7, 11, 12, 16, 17, 21, 22. Default value = "1"
Reorder parameters
addReorder The Reorder impairment characteristic allows you emulate packet reordering based on a time delay. In this case, because some packets are delayed during transmission, they arrive out of order in the packet stream. The delay pattern repeats after a specified number of packets (number of packets skipped plus the number of packets delayed) have been sent. If true, this impairment is applied to the packet stream. Default value = "False" gap Specifies the number of packets to skip before reordering packet. Default value = "1" reorder Specifies how long the packets are to be delayed (number of milliseconds). Default value = "20" reorderLength Specifies the number of consecutive packets to reorder. Default value = "1"
Reorder Sequence parameters
addReorderPI The Reorder Sequence impairment characteristic allows you emulate delay caused by packet reordering. In this form of impairment, packets are delayed during transmission by reordering the packet interval. If true, this impairment is applied to the packet stream.

IxLoad Tcl API Programming Guide

287

Network Stack API
Default value = "False" reorderPISkip The number of packets (s) to transmit prior to delaying the transmission of d packets. Default value = "1" reorderPILength The number of packets (d) to take out of the stream for delayed transmission. Default value = "1" reorderPIInterval The number of packets (m) to transmit before transmitting the d packets that were previously taken out of the stream. Default value = "1" reorderPITimeout The maximum time that a packet may be delayed, specified in milliseconds. Default value = "1000"
Duplicate parameters
addDuplicate The Duplicate impairment characteristic allows you emulate the appearance of duplicate packets in a packet stream. In this case, a specified percentage of packets will be duplicated. If true, this impairment is applied to the packet stream. Default value = "False" duplicate The percentage of packets to be duplicated.
Fragment parameters
addFragment The Fragment impairment characteristic allows you emulate various packet fragmentation scenarios. If true, this impairment is applied to the packet stream. Default value = "False" mtu The maximum transmission unit for packets that will be fragmented. Default value = "1000"

288

IxLoad Tcl API Programming Guide

Network Stack API
sendFragmentsInReverseOrder If true, transmit fragments in reverse order. This setting allows testing of worst-case reassembly scenarios. Default value = "False" sendFirstFragmentOnly If true, transmit only the first fragment of each datagram. All other fragments are discarded. If you also select Reverse Fragments, only the fragment that would have been sent last is sent. This feature allows you to test reassembly timeout mechanisms. Default value = "False" sendOverlappingFragments If true, the IP stack creates and sends random, but legitimate, IP fragments whose data offset and length are randomly selected. In this case, that the receiving end detects overlapping data in the fragments it receives. This setting is useful for testing reassembly mechanisms at the other end. Default value = "False"
Fragment Sequence parameters
addFragmentSequence The Fragment Sequence impairment characteristic allows you to emulate various packet fragmentation scenarios. In this form of impairment, the packets selected for fragmentation are chosen based on a defined packet sequence. If true, this impairment is applied to the packet stream. Default value = "False" fragmentSequenceSkip The number of packets (s) to skip before fragmenting packets. Default value = "1" fragmentSequenceLength The number of packets (d) to select from the stream for fragmentation. Default value = "1" mtuSequence The maximum transmission unit for the packets that will be fragmented.

IxLoad Tcl API Programming Guide

289

Network Stack API
MTU defines the packet size after fragmentation. For example, if MTU=220, the Impair plug-in breaks a packet of 661 bytes into 4 fragments. Default value = "1000" sendFragmentsInReverseOrder If true, transmit fragments in reverse order. This setting allows testing of worst-case reassembly scenarios. Default value = "False" sendFirstFragmentOnly If true, transmit only the first fragment of each datagram. All other fragments are discarded. If you also select Reverse Fragments, only the fragment that would have been sent last is sent. This feature allows you to test reassembly timeout mechanisms. Default value = "False" sendOverlappingFragments If true, the IP stack creates and sends random, but legitimate, IP fragments whose data offset and length are randomly selected. In this case, that the receiving end detects overlapping data in the fragments it receives. This setting is useful for testing reassembly mechanisms at the other end. Default value = "False"
Outbound Rate parameters
addBandwidth Adds an impairment characteristic to the outbound traffic that allows you to limit egress traffic speed, and thereby simulate a lower bandwidth network. Default value = "False" bandwidthUnits The bandwidth unit to use.
Value Description kbps KByte/sec kbit KBit/sec

290

IxLoad Tcl API Programming Guide

Network Stack API
mbps MByte/sec mbit MBit/sec Default value = "'kbps'"
Inbound Rate parameters
addBandwidthIn Adds an impairment characteristic to the inbound traffic that allows you to limit ingress traffic speed, and thereby simulate a lower bandwidth network. Default value = "False" bandwidthUnitsIn The bandwidth unit to use.
Value Description kbps KByte/sec kbit KBit/sec mbps MByte/sec mbit MBit/sec Default value = "'kbps'"
Packets to Impair parameters
destinationIp A destination IP address and prefix on which to filter. Impairment will be applied only on packets targeted to this destination. You can specify a host address (such as 192.168.85.10/32) or a network address (such as 192.168.85.0/24). You can also specify IPv6 addresses, both in the long form (such as 2008:0007:0031:0000:0000:0000:0000:0001/64), or in the short form (such as 2008:7:31::1/64). The default value is any address (in which case, all packets are impaired). Default value = "'any'" sourceIp

IxLoad Tcl API Programming Guide

291

Network Stack API
A source IP address and prefix on which to filter. Impairment will be applied only on packets received from the specified source. You can specify a host address (such as 192.168.85.10/32) or a network address (such as 192.168.85.0/24). You can also specify IPv6 addresses, both in the long form (such as 2008:0007:0031:0000:0000:0000:0000:0001/64), or in the short form (such as 2008:7:31::1/64). The default value is any address (in which case, all packets are impaired). Default value = "'any'" sourcePort The source port number on which to filter. Impairment will be applied to only those packets that have this source port number. The default value is zero (in which case, all packets are impaired). Default value = "0" destinationPort The destination port number on which to filter. Impairment will be applied to only those packets that have this destination port number. The default value is zero (in which case, all packets are impaired). Default value = "0" protocol The type of protocol to which the impairment will be applied:
l any ­ all protocols l ICMP l TCP l UDP l ICMPv6 The default value is any protocol (in which case, all packets are impaired). Default value = "'any'" typeOfService Indicates the Type of Service to which the impairment will be applied: l any ­ all TOS l Minimum Cost (0x02) l Maximum Reliability (0x04)

292

IxLoad Tcl API Programming Guide

Network Stack API
l Maximum Throughput (0x08) l Minimum Delay (0x10) l Class 1 (0x20) l Class 2 (0x40) l Class 3 (0x60) l Class 4 (0x80) l Express Forwarding (0xA0) l Control (0xC0) You can also manually enter any custom TOS value (between 0x00 ­ 0xFF, or between 0 ­ 255). The default value is any TOS value (in which case, all packets are impaired). Default value = "'any'" addTcpFlagsFilter If true, impairment will be applied to only those TCP packets having specific TCP flags set, as specified in the Select TCP Flags and Expect TCP Flags fields. The default setting is Unchecked. Selecting this parameter enables the Select TCP Flags and Expect TCP Flags fields. Default value = "False" selectTcpFlags A comma-separated list of TCP flags to be examined on the packet.
Value Description SYN SYN flag ACK ACK flag FIN FIN flag RST RST flag URG URG flag PSH PSH flag ECE ECE flag CWR CWR flag ALL All flags NONE No flags

IxLoad Tcl API Programming Guide

293

Network Stack API

Default value = "'SYN;RST;ACK'" expectTcpFlags A comma-separated list of TCP flags that must be set in the packet for that packet to be selected. See selectTcpFlags for the list of flags Default value = "'SYN'" impairOrder A comma-separated list that defines the order that the impairments will be applied in.

Value

Description

Delay

Delay impairment

Drop

Drop impairment

DropSeq

Drop Sequence impairment

Reorder

Reorder impairment

ReorderPI

Reorder Sequence impairment

Duplicate

Duplicate impairment

Fragment

Fragment impairment

FragmentSeq Fragment Sequence impairment

Bandwidth Inbound / Outbound Rate impairment

Default value = "'Delay;Drop;DropSeq;Reorder;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth'"

EXAMPLE

set DefaultProfile [::IxLoad new ixNetImpairProfile]

$DefaultProfile config \

-addTcpFlagsFilter

false \

-jitter

0\

-reorderPISkip

1\

-seed

0\

-typeOfService

"any" \

-dropSequenceLength

1\

294

IxLoad Tcl API Programming Guide

-protocol

"any" \

-addFragment

false \

-addBandwidth

false \

-delay

1\

-addDelay

true \

-impairOrder

"Delay;Drop;DropSeq;Re-

order;ReorderPI;Duplicate;Fragment;FragmentSeq;Bandwidth" \

-sendFirstFragmentOnly

false \

-addDrop

false \

-reorderLength

1\

-addDuplicate

false \

-reorderPILength

1\

-sendOverlappingFragments

false \

-reorderPITimeout

1000 \

-addReorderPI

false \

-reorder

1\

-addFragmentSequence

false \

-expectTcpFlags

"SYN" \

-destinationIp

"any" \

-fragmentSequenceSkip

1\

-addBandwidthIn

false \

-selectTcpFlags

"SYN;RST;ACK" \

-gap

1\

-destinationPort

0\

-fragmentSequenceLength

1\

-sourcePort

0\

-bandwidthUnitsIn

"kbps" \

-name

"DefaultProfile" \

-mtuSequence

1000 \

-dropSequenceSkip

1\

IxLoad Tcl API Programming Guide

Network Stack API 295

Network Stack API

-mtu

1000 \

-addReorder

false \

-defaultp

true \

-bandwidthUnits

"kbps" \

-reorderPIInterval

1\

-sourceIp

"any" \

-sendFragmentsInReverseOrder

false \

-addDropSequence

false

SEE ALSO

Impair Plugin Example
This section shows an example of how to create an Impair plugin in the Tcl API.

296

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

297

Network Stack API

298

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

299

Network Stack API

300

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

301

Network Stack API

302

IxLoad Tcl API Programming Guide

Network Stack API

IPSec Plugin
SYNOPSIS
DESCRIPTION
Configures an IPSec plugin.
SUBCOMMANDS

IxLoad Tcl API Programming Guide

303

Network Stack API

OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" rangeList Name of the list of ranges used by this plugin. Default value = "None"
EXAMPLE
set IPSec_1 [::IxLoad new ixNetIPSecPlugin]# ixNet objects needs to be added in the list before they are configured!$IP_3 childrenList.appendItem -object $IPSec_1

$IPSec_1 config \-name

"IPSec-1"

$IPSec_1 childrenList.clear

$IPSec_1 extensionList.clear

$IP_3 extensionList.clear

$Emulated_Router_1 extensionList.clear

$MAC_VLAN_8 extensionList.clear

$Ethernet_1 extensionList.clear
SEE ALSO

304

IxLoad Tcl API Programming Guide

Network Stack API
IPSecRange
SYNOPSIS
DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True".
Basic Parameters
ikeVersion The keying protocol to be used for the tunnel negotiation phase:
l IKEv1: Use IKE version 1 to establish security associations between IPsec peers. l IKEv2: Use IKE version 2 to establish security associations between IPsec peers. l Manual: Use manual keying to configure the security policy options. In this case, you configure
the keys in the Keys grid (refer to IPsec Range Parameters - Keys). Note that manual keying is not supported in Ixia port-to-port configurations. The default is IKEv2. Note: All ranges within a must be configured with the same IKE Version (IKEv1, IKEv2, or Manual). Values= "ikev1", "ikev2", "manual", Default value = "'ikev1'" testScenario The type of IPsec test scenario for which you are defining this configuration:

IxLoad Tcl API Programming Guide

305

Network Stack API
l Site to Site: Two sites are connected through a pair of IPsec Secure Gateways. When this option is selected, the fields pertaining to Xauth and ModeCfg are disabled.
l Remote Access: An individual client is connected to a LAN through a secure tunnel. In this scenario, the client is operating as its own Secure Gateway. When this option is selected, the fields pertaining to Emulated Subnet are disabled.
The default is Site to Site. Default value = "'site2site'" ikeMode
Specifies the IKE (Internet Key Exchange) mode of communications for phase 1. The choices are: l Main Mode - 6 messages exchanged with identity protection. l Aggressive Mode - 3 messages exchanged without identity protection.
The default is Main Mode. Default value = "'main'" hashAlgoPhase1
Specifies the hashing algorithm to use for Phase 1. The choices are: l HMAC-MD5: Message-Digest Algorithm 5. l HMAC-SHA1: Secure Hash Algorithm 1. l AES-XCBC: AUTH_AES_XCBC_96 algorithm, defined in RFC3566. Supported by IKEv2 only.
The default is HMAC-MD5. API values = "md5", "sha1", "aes-xcbc"." Default value = "'md5'" dhGroup
Specifies the DH Group. The public-private cryptography used to create the shared secret uses an algorithm called Diffie-Hellman. DH Groups use different bit length selections in this calculation. The choices are:
l DH-1 l DH-2 l DH-5 l DH-14 l DH-15 l DH-16 The default is DH-2. Default value = "'dh2'" dpdIdlePeriod

306

IxLoad Tcl API Programming Guide

Network Stack API
The default value is 1000. encAlgoPhase1 Specifies the encryption algorithm used to protect communications during phase 1 message exchange. The choices are:
l DES l 3-DES l AES-128 l AES-192 l AES-256 The default is 3-DES. Default value = "'3des'" ahNespMode Specifies the AH (Authentication Header) and ESP (Encapsulating Security Payload) options. The choices are: l AH Only l ESP Only l Both AH and ESP The default is ESP Only. Default value = "'ESPOnly'" encapMode Specifies the IKE phase 2 encapsulation mode. The choices are: l Tunnel Mode l Transport Mode Note that in IxLoad tests using transport mode, the data traffic terminates in the DUT: the data is not forwarded to the protected hosts on the Ixia port. API values = "tunnel", "transport". Default value = "'tunnel'" hashAlgoPhase2 Specifies the hashing algorithm to use for Phase 2. The choices are: l HMAC-MD5 l HMAC-SHA1 The default is HMAC-MD5. Default value = "'md5'"

IxLoad Tcl API Programming Guide

307

Network Stack API
encAlgoPhase2 Specifies the encryption algorithm used to protect communications during phase 1 and phase 2 message exchange. The choices are:
l Null l DES l 3-DES l AES-128 l AES-192 l AES-256 The default is 3-DES. Default value = "'3des'"

EXAMPLE

$IPsec_R3 config \

-psnIncrementBy

"0.0.1.0" \

-singlePH

false \

-numEHCount

1\

-psk

"ipsec" \

-enableNatt

false \

-enabled

true \

-peerPublicIP

"1.1.1.1" \

-dpdTimeout

10 \

-ipsecIDTypeInitiator

"ip-addr-id" \

-publishStats

false \

-ikeMode

"main" \

-encAlgoPhase2

"3des" \

-encAlgoPhase1

"3des" \

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

308

IxLoad Tcl API Programming Guide

-modeCfgAddressSuffix -emulatedSubnetIpType -modeCfgFirstAddress -ipsecIDTypeResponder -modeCfg -ipCompression -hashAlgoPhase1 -protectedSubnet -peerPublicIPType -groupName -hashAlgoPhase2 -pfsGroup -eapMethod -encapMode -ahNespMode -username -ikeVersion -enablePFS -initialContact -emulatedSubnet -authMethod -testScenario -esnIncrementBy -lifeTimePhase1 -lifeTimePhase2 -protectedSubnetSuffix -prfAlgo -password -fqdnSeedInitiator -enableDPD

24 \ "IPv4" \ "30.0.0.1" \ "ip-addr-id" \ "none" \ false \ "md5" \ "70.0.0.0" \ "IPv4" \ "vpngroup" \ "md5" \ "dh2" \ "md5" \ "tunnel" \ "ESPOnly" \ "ipsec-username" \ "ikev2" \ false \ false \ "40.0.0.0" \ "eap" \ "site2site" \ "0.0.1.0" \ 3600 \ 28800 \ 24 \ "md5" \ "ipsec-pass" \ "" \ false \

IxLoad Tcl API Programming Guide

Network Stack API 309

Network Stack API

-emulatedSubnetSuffix

24 \

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

SEE ALSO

Network Config

SYNOPSIS

DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". emulatedSubnetIpType Specifies the IP version to be used for the emulated subnets in the test:
l IPv4

310

IxLoad Tcl API Programming Guide

Network Stack API
l IPv6 Note that the IPsec plug-in supports mixing IP types within a network stack. For example, you can define IPv6 addresses for the IPsec layer and IPv4 addresses for the IP and Emulated Router layers. The IP and Emulated Router layers must, however, be of the same type. For more information, refer to Support for Mixed IP Types. The default is IPv4. Default value = "'IPv4'" numEHCount The total number of hosts to be created for each of the emulated subnets. This parameter is configurable only for site-to-site tests. In a remote-access test, an emulated client is operating as its own Secure Gateway; therefore, the IPsec plug-in sets the count to 1. The default is 1, the minimum is 1 and the maximum is 65,534. Default value = "1" emulatedSubnet The base address for enumerating all the emulated subnets in the range. Default value = "'40.0.0.0'" protectedSubnet The base address for enumerating all the protected subnets in the range. Default value = "'70.0.0.0'" emulatedSubnetSuffix Mask width for emulatedSubnet. Default value = "24" protectedSubnetSuffix Mask width for protectedSubnet. Default value = "24" esnIncrementBy The increment to be used for enumerating all the emulated subnets in the range. The default IPv4 value is 0.0.1.0, and the default IPv6 value is ::100. For each address in the IP range, a subnet will be generated by incrementing the emulated subnet field with the increment value. For example, if you have an IP range with a count of 5, the following subnets will be created on the port: 40.0.0.0/24

IxLoad Tcl API Programming Guide

311

Network Stack API
40.0.1.0/24 40.0.2.0/24 40.0.3.0/24 40.0.4.0/24 The number of hosts created on each subnet is defined in the Host Count field. Note: The ESN Increment by value must be the same on the initiator side and the responder side. If there is a mismatch (0.0.1.1 versus 0.0.1.0, for example), the tunnels will come up but the traffic will fail. Default value = "'0.0.1.0'" psnIncrementBy The increment to be used for enumerating all the protected subnets in the range. The generated subnets will be used as traffic selectors. The default IPv4 value is 0.0.1.0, and the default IPv6 value is ::100. Note: The PSN Increment By value must be the same on the initiator side and the responder side. If there is a mismatch (0.0.1.1 versus 0.0.1.0, for example), the tunnels will come up but the traffic will fail. Default value = "'0.0.1.0'" peerPublicIPType The IP version to be used for describing the range:
l IPv4 l IPv6 The default is IPv4. Default value = "'IPv4'" peerPublicIP The host name or public IP address of the peer. You can specify a host name only for Port-to-DUT tests and only when the Encapsulation Mode is set to Tunnel Mode. Host names are resolved at run time. Default value = "'1.1.1.1'" singlePH Select if this is a single protected subnet on the responder side. Selecting this field inhibits the generation of PSNs. Note that this option is valid only for Port-to-DUT tests.

312

IxLoad Tcl API Programming Guide

Network Stack API
Default value = "False" modeCfg Specifies the Mode Configuration mode. This parameter is valid only when the Test Scenario parameter is set to Remote Access. The choices are:
l Push: The Responder allocates an IP address for the Initiator to use as a traffic endpoint. In this case, the Responder pushes the allocated address to the Initiator. This mode uses the CFG_SET / CFG_ACK transaction sequence.
Note that Push cannot be configured with IKEv2. l Pull: The Responder allocates an IP address for the Initiator to use as a traffic endpoint. In this case, the Initiator requests (pulls) the allocated address from the Responder. This mode uses the CFG_REQUEST / CFG_REPLY transaction sequence.
None: ModeCfg is not enabled. In this case, the traffic endpoint uses the underlying IP range address; this is the same IP address that is used for IKE control plane negotiations. API values = "none", "push", "pull". Default value = "'none'" modeCfgFirstAddress Defines the base address to be used for the ModeCfg address pool (the IP addresses that the server port will assign to the clients). The three ModeCfg "Address" parameters are used only by responder ports. That is, they are used only for a Responder Mode test or for the responder port in a port-to-port test. modeCfgAddressIncrement Defines the increment value for the ModeCfg address pool. The default value is 0.0.0.1. modeCfgAddressSuffix Defines the IP address suffix for the ModeCfg address pool. The default value is 24, the minimum value is 1, and the maximum value is 128.

EXAMPLE
$IPsec_R3 config \ -psnIncrementBy

"0.0.1.0" \

IxLoad Tcl API Programming Guide

313

Network Stack API

-singlePH

false \

-numEHCount

1\

-psk

"ipsec" \

-enableNatt

false \

-enabled

true \

-peerPublicIP

"1.1.1.1" \

-dpdTimeout

10 \

-ipsecIDTypeInitiator

"ip-addr-id" \

-publishStats

false \

-ikeMode

"main" \

-encAlgoPhase2

"3des" \

-encAlgoPhase1

"3des" \

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

-modeCfgAddressSuffix

24 \

-emulatedSubnetIpType

"IPv4" \

-modeCfgFirstAddress

"30.0.0.1" \

-ipsecIDTypeResponder

"ip-addr-id" \

-modeCfg

"none" \

-ipCompression

false \

-hashAlgoPhase1

"md5" \

-protectedSubnet

"70.0.0.0" \

-peerPublicIPType

"IPv4" \

-groupName

"vpngroup" \

-hashAlgoPhase2

"md5" \

-pfsGroup

"dh2" \

-eapMethod

"md5" \

-encapMode

"tunnel" \

-ahNespMode

"ESPOnly" \

314

IxLoad Tcl API Programming Guide

-username

"ipsec-username" \

-ikeVersion

"ikev2" \

-enablePFS

false \

-initialContact

false \

-emulatedSubnet

"40.0.0.0" \

-authMethod

"eap" \

-testScenario

"site2site" \

-esnIncrementBy

"0.0.1.0" \

-lifeTimePhase1

3600 \

-lifeTimePhase2

28800 \

-protectedSubnetSuffix

24 \

-prfAlgo

"md5" \

-password

"ipsec-pass" \

-fqdnSeedInitiator

"" \

-enableDPD

false \

-emulatedSubnetSuffix

24 \

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

SEE ALSO

Authentication

SYNOPSIS

IxLoad Tcl API Programming Guide

Network Stack API 315

Network Stack API
DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True".
Basic Parameters
username The User Name field configures EAP in IKEv2, and Xauth in IKEv1. A username may be any unique identifier of the user, such as a login name, an email address, or an X.500 Distinguished Name. These usernames are sent to the DUT for authentication. During the EAP exchange, the Responder may request the EAP identity of the Initiator; in this case, the configured User Name is sent. If the string is empty, the Initiator ID is sent. This is a string value, with a maximum of 1024 characters. Note that user names must be unique. The default value is ipsec. Default = "ipsec" password The Password field is used for EAP-MD5 in IKEv2 and Xauth in IKEv1. The password, if specified, is sent to the DUT for authentication. This parameter takes a string value, with a maximum of 1024 characters. Note that when this field is used for EAP-MD5, a null password is not permitted. Passwords do not have to be unique; you can use the same password for all user names. The default value is ipsec. Default = "ipsec" authMethod Specifies the authentication method for IKE phase 1. The choices are:

316

IxLoad Tcl API Programming Guide

Network Stack API
l Pre-Shared Key: If you select this method, enter the desired value in the Pre-Shared Key column.
l Certificates: If you select this method, use the Certificates tab in the Network Plug-in Settings window to configure the certificate parameters. This authentication method requires the CA root certificate, plus a client certificate for each tunnel.
l EAP: If you select this method (which is supported only with IKEv2): 1. Specify the EAP username in the User Name column. 2. Use the EAP-SIM tab or EAP-AKA tab in the Network Plug-in Settings window to configure the EAP parameters. 3. Make sure that the CA root certificate is available: it is required for EAP authentication. 4. If the EAP Method is TLS, also ensure that you have a client certificate for each tunnel. The default is Pre-Shared Key. Default value = "'psk'" psk The Pre-Shared Key value. This is a string value, with a maximum of 4096 characters. The default is ipsec. Note: Make certain that the Pre-Shared Key value does not include a trailing space. IxLoad will treat the trailing space as part of the value. Some DUTs will drop an Authentication Failed notification payload, while others will issue a Payload_Malformed notification payload. In any case, the tunnel will be dropped by the DUT. Default value = "'ipsec'"
userGroups A Boolean value that enables or disables User Groups for extended authentication. The default setting is unchecked. Default value = "False" groupName A comma-separated list of user groups configured on the DUT. To specify more than one user group, separate the group names with commas. For example: groupA, groupB, groupC, and so on. The default value is vpngroup. Default value = "'vpngroup'"

IxLoad Tcl API Programming Guide

317

Network Stack API

EXAMPLE

$IPsec_R3 config \

-psnIncrementBy

"0.0.1.0" \

-singlePH

false \

-numEHCount

1\

-psk

"ipsec" \

-enableNatt

false \

-enabled

true \

-peerPublicIP

"1.1.1.1" \

-dpdTimeout

10 \

-ipsecIDTypeInitiator

"ip-addr-id" \

-publishStats

false \

-ikeMode

"main" \

-encAlgoPhase2

"3des" \

-encAlgoPhase1

"3des" \

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

-modeCfgAddressSuffix

24 \

-emulatedSubnetIpType

"IPv4" \

-modeCfgFirstAddress

"30.0.0.1" \

-ipsecIDTypeResponder

"ip-addr-id" \

-modeCfg

"none" \

-ipCompression

false \

-hashAlgoPhase1

"md5" \

-protectedSubnet

"70.0.0.0" \

-peerPublicIPType

"IPv4" \

-groupName

"vpngroup" \

318

IxLoad Tcl API Programming Guide

-hashAlgoPhase2

"md5" \

-pfsGroup

"dh2" \

-eapMethod

"md5" \

-encapMode

"tunnel" \

-ahNespMode

"ESPOnly" \

-username

"ipsec-username" \

-ikeVersion

"ikev2" \

-enablePFS

false \

-initialContact

false \

-emulatedSubnet

"40.0.0.0" \

-authMethod

"eap" \

-testScenario

"site2site" \

-esnIncrementBy

"0.0.1.0" \

-lifeTimePhase1

3600 \

-lifeTimePhase2

28800 \

-protectedSubnetSuffix

24 \

-prfAlgo

"md5" \

-password

"ipsec-pass" \

-fqdnSeedInitiator

"" \

-enableDPD

false \

-emulatedSubnetSuffix

24 \

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

IxLoad Tcl API Programming Guide

Network Stack API 319

Network Stack API
SEE ALSO
IKE Phase 1
SYNOPSIS
DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". lifeTimePhase1 Specifies the Phase 1 Security Association (SA) lifetime, in seconds. The valid range of values is 0 through 31,557,600. Default value = "3600" ikeMode Specifies the IKE (Internet Key Exchange) mode of communications for phase 1. The choices are:
l Main Mode - 6 messages exchanged with identity protection. l Aggressive Mode - 3 messages exchanged without identity protection. The default is Main Mode. Default value = "'main'" hashAlgoPhase1

320

IxLoad Tcl API Programming Guide

Network Stack API
Specifies the hashing algorithm to use for Phase 1. The choices are: l HMAC-MD5: Message-Digest Algorithm 5. l HMAC-SHA1: Secure Hash Algorithm 1. l AES-XCBC: AUTH_AES_XCBC_96 algorithm, defined in RFC3566. Supported by IKEv2 only.
The default is HMAC-MD5. API values = "md5", "sha1", "aes-xcbc"." Default value = "'md5'" dhGroup
Specifies the DH Group. The public-private cryptography used to create the shared secret uses an algorithm called Diffie-Hellman. DH Groups use different bit length selections in this calculation. The choices are:
l DH-1 l DH-2 l DH-5 l DH-14 l DH-15 l DH-16 The default is DH-2. Default value = "'dh2'" encAlgoPhase1
Specifies the encryption algorithm used to protect communications during phase 1 message exchange. The choices are:
l DES l 3-DES l AES-128 l AES-192 l AES-256 The default is 3-DES. Default value = "'3des'" prfAlgo
Specifies the algorithm used to perform Pseudo-Random Functions (key derivations). The choices are: l HMAC-MD5: Message-Digest Algorithm 5. l HMAC-SHA1: Secure Hash Algorithm 1. l AES-XCBC: AUTH_AES_XCBC_96 algorithm, defined in RFC3566.

IxLoad Tcl API Programming Guide

321

Network Stack API

This parameter is enabled for IKEv2 only. The default value is HMAC-MD5. Default value = "'md5'"

EXAMPLE

$IPsec_R3 config \

-psnIncrementBy

"0.0.1.0" \

-singlePH

false \

-numEHCount

1\

-psk

"ipsec" \

-enableNatt

false \

-enabled

true \

-peerPublicIP

"1.1.1.1" \

-dpdTimeout

10 \

-ipsecIDTypeInitiator

"ip-addr-id" \

-publishStats

false \

-ikeMode

"main" \

-encAlgoPhase2

"3des" \

-encAlgoPhase1

"3des" \

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

-modeCfgAddressSuffix

24 \

-emulatedSubnetIpType

"IPv4" \

-modeCfgFirstAddress

"30.0.0.1" \

-ipsecIDTypeResponder

"ip-addr-id" \

-modeCfg

"none" \

-ipCompression

false \

-hashAlgoPhase1

"md5" \

322

IxLoad Tcl API Programming Guide

-protectedSubnet

"70.0.0.0" \

-peerPublicIPType

"IPv4" \

-groupName

"vpngroup" \

-hashAlgoPhase2

"md5" \

-pfsGroup

"dh2" \

-eapMethod

"md5" \

-encapMode

"tunnel" \

-ahNespMode

"ESPOnly" \

-username

"ipsec-username" \

-ikeVersion

"ikev2" \

-enablePFS

false \

-initialContact

false \

-emulatedSubnet

"40.0.0.0" \

-authMethod

"eap" \

-testScenario

"site2site" \

-esnIncrementBy

"0.0.1.0" \

-lifeTimePhase1

3600 \

-lifeTimePhase2

28800 \

-protectedSubnetSuffix

24 \

-prfAlgo

"md5" \

-password

"ipsec-pass" \

-fqdnSeedInitiator

"" \

-enableDPD

false \

-emulatedSubnetSuffix

24 \

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

IxLoad Tcl API Programming Guide

Network Stack API 323

Network Stack API

SEE ALSO
IKE Phase 2
SYNOPSIS
DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". ipCompression When enabled, the IPsec plug-in provides support for the IP Payload Compression Protocol (IPComp). IPComp is negotiated during IKE phase 2 negotiations. When enabled, IxLoad compresses the IP packets prior to encryption, using the DEFLATE compression algorithm. The resulting reduction in size of the packets can significantly improve performance on a VPN device. This setting is disabled by default. API Default = "false" enablePFS If checked, enables PFS (perfect forward secrecy). The default setting is unchecked. Default value = "False"

324

IxLoad Tcl API Programming Guide

Network Stack API
lifeTimePhase2 Specifies the Phase 2 Security Association (SA) lifetime, in seconds. The valid range is from 1 to 31557600. Default value = "28800" ahNespMode Specifies the AH (Authentication Header) and ESP (Encapsulating Security Payload) options. The choices are:
l AH Only l ESP Only l Both AH and ESP The default is ESP Only. Default value = "'ESPOnly'" encapMode Specifies the IKE phase 2 encapsulation mode. The choices are: l Tunnel Mode l Transport Mode Note that in IxLoad tests using transport mode, the data traffic terminates in the DUT: the data is not forwarded to the protected hosts on the Ixia port. API values = "tunnel", "transport". Default value = "'tunnel'" hashAlgoPhase2 Specifies the hashing algorithm to use for Phase 2. The choices are: l HMAC-MD5 l HMAC-SHA1 The default is HMAC-MD5. Default value = "'md5'" pfsGroup Specifies the PFS Group. The choices are: l DH-1 l DH-2 l DH-5 l DH-14

IxLoad Tcl API Programming Guide

325

Network Stack API

l DH-15 l DH-16
The default is DH-2.
Default value = "'dh2'"
encAlgoPhase2
Specifies the encryption algorithm used to protect communications during phase 1 and phase 2 message exchange. The choices are:
l Null l DES l 3-DES l AES-128 l AES-192 l AES-256
The default is 3-DES.
Default value = "'3des'"

EXAMPLE
$IPsec_R3 config \ -psnIncrementBy -singlePH -numEHCount -psk -enableNatt -enabled -peerPublicIP -dpdTimeout -ipsecIDTypeInitiator -publishStats -ikeMode -encAlgoPhase2 -encAlgoPhase1

"0.0.1.0" \ false \
1\ "ipsec" \
false \ true \
"1.1.1.1" \ 10 \
"ip-addr-id" \ false \ "main" \
"3des" \ "3des" \

326

IxLoad Tcl API Programming Guide

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

-modeCfgAddressSuffix

24 \

-emulatedSubnetIpType

"IPv4" \

-modeCfgFirstAddress

"30.0.0.1" \

-ipsecIDTypeResponder

"ip-addr-id" \

-modeCfg

"none" \

-ipCompression

false \

-hashAlgoPhase1

"md5" \

-protectedSubnet

"70.0.0.0" \

-peerPublicIPType

"IPv4" \

-groupName

"vpngroup" \

-hashAlgoPhase2

"md5" \

-pfsGroup

"dh2" \

-eapMethod

"md5" \

-encapMode

"tunnel" \

-ahNespMode

"ESPOnly" \

-username

"ipsec-username" \

-ikeVersion

"ikev2" \

-enablePFS

false \

-initialContact

false \

-emulatedSubnet

"40.0.0.0" \

-authMethod

"eap" \

-testScenario

"site2site" \

-esnIncrementBy

"0.0.1.0" \

-lifeTimePhase1

3600 \

-lifeTimePhase2

28800 \

-protectedSubnetSuffix

24 \

-prfAlgo

"md5" \

IxLoad Tcl API Programming Guide

Network Stack API 327

Network Stack API

-password

"ipsec-pass" \

-fqdnSeedInitiator

"" \

-enableDPD

false \

-emulatedSubnetSuffix

24 \

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

SEE ALSO

Identification

SYNOPSIS

DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True".

328

IxLoad Tcl API Programming Guide

Network Stack API
ipsecIDTypeInitiator
Selects how IxLoad offers the local Emulated Gateway ID type for tunnel negotiations. The setting of this parameter determines the contents of the Identification Type and Identification Data fields in the IPSec packet sent to the DUT. (The Identification Type field describes the type of information contained in the Identification Data field. See RFC 2407 for more information.)
The choices are:
l ID_IP_ADDR: IxLoad sets the Identification Type field to 1 and inserts the Emulated Gateway address into the Identification Data field as a single four-octet IPv4 address.
l ID_IP_ADDR_SUBNET: IxLoad sets the Identification Type field to 4 and inserts the Emulated Gateway address into the Identification Data field as two four-octet values: an IPv4 address and an IPv4 network mask. (This option is not supported by IKEv2.)
l ID_FQDN: IxLoad sets the Identification Type field to 2 and inserts the Emulated Gateway address into the Identification Data field as a fully-qualified domain name string. For example, "foo.bar.com".
l ID_USER_FQDN: IxLoad sets the Identification Type field to 3 and inserts the Emulated Gateway address into the Identification Data field as a fully-qualified username string. For example, "piper@foo.bar.com".
l ID_DER_ASN1_DN: IxLoad sets the Identification Type field to 9 and inserts the Emulated Gateway address into the Identification Data field as a binary DER encoding of an ASN.1 X.500 Certificate Distinguished Name.
l ID_KEY_ID: IxLoad sets the Identification Type field to 11 and inserts the Emulated Gateway address into the Identification Data field as an opaque byte stream that may be used to pass vendor-specific information necessary to identify which pre-shared key should be used to authenticate Aggressive mode negotiations. ID_KEY_ID is recommended for Network Access Identifiers (NAIs) that do not include the realm component (reference: draft-eronen-ipsec-ikev2-clarifications). ID_KEY_ID is supported by IKEv2 only.
The default is ID_IP_ADDR.
API values = "ip-addr-id", ip-subnet-id", "fqdn-id", "fqdn-user","der-asn1-dn", "key-id".
Default value = "'ip-addr-id'"
fqdnSeedInitiator
If you set the Local ID Type parameter to ID_FQDN or ID_USER_FQDN, enter the user name that IxLoad inserts into the IPsec packets to identify the emulated gateway.
This is a string value, with a maximum of 1024 characters.
For FQDN_USER, if you enter user$@foo.bar.com, IxLoad creates the user names user1@foo.bar.com, user2@foo.bar.com, user3@foo.bar.com, and so on.
Default value = "''"
ipsecIDTypeResponder

IxLoad Tcl API Programming Guide

329

Network Stack API

Selects how IxLoad offers the Protected Hosts (peer) ID type for tunnel negotiations. The setting of this parameter determines the contents of the Identification Type and Identification Data fields in the IPSec packet sent to the DUT. (The Identification Type field describes the type of information contained in the Identification Data field. See RFC 2407 for more information.)
The choices are:
l ID_IP_ADDR: IxLoad sets the Identification Type field to 1 and inserts the Emulated Gateway address into the Identification Data field as a single four-octet IPv4 address.
l ID_IP_ADDR_SUBNET: IxLoad sets the Identification Type field to 4 and inserts the Emulated Gateway address into the Identification Data field as two four-octet values: an IPv4 address and an IPv4 network mask. (This option is not supported by IKEv2.)
l ID_FQDN: IxLoad sets the Identification Type field to 2 and inserts the Emulated Gateway address into the Identification Data field as a a fully-qualified domain name string. For example, "foo.bar.com".
l ID_USER_FQDN: IxLoad sets the Identification Type field to 3 and inserts the Emulated Gateway address into the Identification Data field as a fully-qualified username string. For example, "piper@foo.bar.com".
l ID_DER_ASN1_DN: IxLoad sets the Identification Type field to 9 and inserts the Emulated Gateway address into the Identification Data field as a binary DER encoding of an ASN.1 X.500 Certificate Distinguished Name.
ID_KEY_ID: IxLoad sets the Identification Type field to 11 and inserts the Emulated Gateway address into the Identification Data field as an opaque byte stream that may be used to pass vendor-specific information necessary to identify which pre-shared key should be used to authenticate Aggressive mode negotiations. ID_KEY_ID is recommended for Network Access Identifiers (NAIs) that do not include the realm component (reference: draft-eronen-ipsec-ikev2-clarifications). ID_KEY_ID is supported by IKEv2 only.
API values = "ip-addr-id", "ip-subnet-id", "fqdn-id", "fqdn-user", "der-asn1-dn", "key-id".
Default value = "ip-addr-id"
fqdnSeedResponder
If you set the Peer ID Type parameter to ID_FQDN or ID_USER_FQDN, enter the user name that IxLoad inserts into the IPsec packets to identify the protected hosts.
This is a string value, with a maximum of 1024 characters.
For FQDN_USER, if you enter user$@foo.bar.com, IxLoad creates the user names user1@foo.bar.com, user2@foo.bar.com, user3@foo.bar.com, and so on.
Default value = "''"

EXAMPLE
$IPsec_R3 config \ -psnIncrementBy

"0.0.1.0" \

330

IxLoad Tcl API Programming Guide

-singlePH

false \

-numEHCount

1\

-psk

"ipsec" \

-enableNatt

false \

-enabled

true \

-peerPublicIP

"1.1.1.1" \

-dpdTimeout

10 \

-ipsecIDTypeInitiator

"ip-addr-id" \

-publishStats

false \

-ikeMode

"main" \

-encAlgoPhase2

"3des" \

-encAlgoPhase1

"3des" \

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

-modeCfgAddressSuffix

24 \

-emulatedSubnetIpType

"IPv4" \

-modeCfgFirstAddress

"30.0.0.1" \

-ipsecIDTypeResponder

"ip-addr-id" \

-modeCfg

"none" \

-ipCompression

false \

-hashAlgoPhase1

"md5" \

-protectedSubnet

"70.0.0.0" \

-peerPublicIPType

"IPv4" \

-groupName

"vpngroup" \

-hashAlgoPhase2

"md5" \

-pfsGroup

"dh2" \

-eapMethod

"md5" \

-encapMode

"tunnel" \

-ahNespMode

"ESPOnly" \

IxLoad Tcl API Programming Guide

Network Stack API 331

Network Stack API

-username

"ipsec-username" \

-ikeVersion

"ikev2" \

-enablePFS

false \

-initialContact

false \

-emulatedSubnet

"40.0.0.0" \

-authMethod

"eap" \

-testScenario

"site2site" \

-esnIncrementBy

"0.0.1.0" \

-lifeTimePhase1

3600 \

-lifeTimePhase2

28800 \

-protectedSubnetSuffix

24 \

-prfAlgo

"md5" \

-password

"ipsec-pass" \

-fqdnSeedInitiator

"" \

-enableDPD

false \

-emulatedSubnetSuffix

24 \

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

SEE ALSO

IKE Control

SYNOPSIS

332

IxLoad Tcl API Programming Guide

Network Stack API
DESCRIPTION
Creates an IPSec address range for addition to an IPSecRangeList object.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If True, the range base is enabled. Default value="True". dpdTimeout Hash key used for ESP-mode traffic originating from the Left Subnet and destined for the Right Subnet. The forward hash key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value. The default value is 10. enableNatt Enable this parameter when running IPsec over NAT devices. When enabled, the IPsec plug-in implements NAT-T for all the traffic in the range. NAT-T is configurable in IPv4 environments only. The default value is false. API values = "md5", "sha1", "aes-xcbc"." Default value = "'md5'" dpdIdlePeriod The interval for sending DPD messages, in seconds. For example, if you set this to 60, the IPsec plugin sends DPD HELLO messages every 60 seconds to each peer defined for the range. This value must be smaller than the tunnel lifetimes. The default value is 1000. initialContact

IxLoad Tcl API Programming Guide

333

Network Stack API
When enabled, the IPsec plug-in will send the INITIAL_CONTACT notification payload as part of IKE SA establishment.
This parameter is disabled by default.
(Note that the IPsec plug-in always ignores the INITIAL_CONTACT notification payload, if it is received.)
API Default = false
enableDPD
When enabled, each IKE peer in the range uses the Dead Peer Detection (DPD) protocol to determine proof of liveliness of the other peer. The peers send DPD HELLO messages according to the interval that you specify (the DPD Idle Period).
When disabled, the IKE peers do not send DPD HELLO messages.
An IPsec endpoint uses DPD to confirm that its peer is still up. DPD is implemented in IKE through the use of an asynchronous, bidirectional message exchange:
l DPD HELLO l DPD HELLO ACK
A complete DPD exchange (transmission of DPD HELLO and receipt of the corresponding DPD HELLO ACK) serves as proof of liveliness. If a VPN device does not receive a response to a DPD HELLO within a specified time, it assumes that the peer is dead or unreachable, and tears down the tunnel.
Notes:
l If DPD is enabled, IxLoad always sends the DPD messages regardless of the traffic that is being sent over the tunnel.
l The IPsec plug-in always responds to DPD messages received from the DUT whether or not DPD is enabled.
The IPsec plug-in implementation of DPD does not use an explicit retry mechanism. For example, if you set the idle period to 5 seconds and the timeout to 14 seconds, the plug-in will send two DPD HELLOs (at 5 and 10 seconds) within the timeout period. If at least one of those hellos receives a DPD HELLO ACK, the timer will be reset and the tunnel will remain up.
Default value = "false".
txPreFrag
When enabled, the IPsec plug-in will--if necessary--pre-fragment IPsec-encapsulated payloads into multiple smaller UDP packets prior to encrypting the payload. This is a transmit-only option; it is not negotiated, and the two ends need not agree on it. The fragment size is determined by the MTU setting in the MAC/VLAN network stack element.
Pre-fragmentation is applicable to Tunnel Mode only. In Tunnel Mode there are two IP headers, thus two places where IP-level fragmentation can be done. The default behaviour is to fragment at the outer

334

IxLoad Tcl API Programming Guide

Network Stack API
IP header (post-fragmentation). With pre-fragmentation enabled, fragmentation is performed at the inner IP header. When disabled, the IPsec plug-in performs post-fragmentation on the IP packets. In this case, the packet is first encapsulated and then fragmented at the outer IP header. To configure pre-fragmentation:
1. Set the MTU value (in the MAC/VLAN stack element) to the desired packet size. 2. Enable the Pre-fragmentation parameter. For example, if you set the MTU value to 600, and you have a UDP payload that is 2400 bytes long, the plug-in will fragment it into four IP datagrams prior to encrypting the payload. API Default value = "false"

EXAMPLE

$IPsec_R3 config \

-psnIncrementBy

"0.0.1.0" \

-singlePH

false \

-numEHCount

1\

-psk

"ipsec" \

-enableNatt

false \

-enabled

true \

-peerPublicIP

"1.1.1.1" \

-dpdTimeout

10 \

-ipsecIDTypeInitiator

"ip-addr-id" \

-publishStats

false \

-ikeMode

"main" \

-encAlgoPhase2

"3des" \

-encAlgoPhase1

"3des" \

-userGroups

false \

-modeCfgAddressIncrement

"0.0.0.1" \

-xauth

false \

-modeCfgAddressSuffix

24 \

IxLoad Tcl API Programming Guide

335

Network Stack API

-emulatedSubnetIpType -modeCfgFirstAddress -ipsecIDTypeResponder -modeCfg -ipCompression -hashAlgoPhase1 -protectedSubnet -peerPublicIPType -groupName -hashAlgoPhase2 -pfsGroup -eapMethod -encapMode -ahNespMode -username -ikeVersion -enablePFS -initialContact -emulatedSubnet -authMethod -testScenario -esnIncrementBy -lifeTimePhase1 -lifeTimePhase2 -protectedSubnetSuffix -prfAlgo -password -fqdnSeedInitiator -enableDPD -emulatedSubnetSuffix

"IPv4" \ "30.0.0.1" \
"ip-addr-id" \ "none" \
false \ "md5" \ "70.0.0.0" \ "IPv4" \
"vpngroup" \ "md5" \
"dh2" \ "md5" \ "tunnel" \ "ESPOnly" \ "ipsec-username" \
"ikev2" \ false \ false \
"40.0.0.0" \ "eap" \ "site2site" \
"0.0.1.0" \ 3600 \ 28800 \
24 \ "md5" \
"ipsec-pass" \ "" \
false \ 24 \

336

IxLoad Tcl API Programming Guide

Network Stack API

-enableMultipleP2perP1

false \

-dhGroup

"dh2" \

-dpdIdlePeriod

1000 \

-fqdnSeedResponder

"" \

-txPreFrag

false \

-manualKeyingOpts $my_ixNetIPSecManualKeyingOpts

SEE ALSO

Keys

SYNOPSIS

DESCRIPTION
If manual keying is enabled, this object defines the keying options.
SUBCOMMANDS

OPTIONS
forwardEncryptKey
Encryption key used for traffic originating from the Left Subnet and destined for the Right Subnet. The forward encryption key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
API default value="''" (null)
forwardEncryptKeyIncrement
The increment value for the Forward Encryption Key. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
The default value is 0x00.

IxLoad Tcl API Programming Guide

337

Network Stack API
API default value="'0x00'" forwardHashKeyAH
Hash key used for AH-mode traffic originating from the Left Subnet and destined for the Right Subnet. The forward hash key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value. API default value="''" (null) forwardHashKeyAHincrement
The increment value for the Forward Hash Key/AH, for each tunnel. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value. The default value is 0x00. API default value="'0x00'" (null) forwardHashKeyESP
Hash key used for ESP-mode traffic originating from the Left Subnet and destined for the Right Subnet. The forward hash key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value. API default value="''" (null) forwardHashKeyESPincrement
The increment value for the Forward Hash Key/ESP, for each tunnel. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value. The default value is 0x00. API default value="'0x00'" forwardSPI
The Security Parameter Index for IPsec traffic originating from the Left Subnet and destined for the Right Subnet. The SPI is a 32-bit value. You can enter the Forward SPI using either decimal or hexadecimal notation (enter hexadecimal values with a leading 0x). If you enter the value in decimal, IxLoad automatically converts your entry to a hexadecimal number. API default value="0" (null) forwardSPIincrement

338

IxLoad Tcl API Programming Guide

Network Stack API
The incrementor for the Forward SPI.
You can enter the increment value in either decimal or hexadecimal notation (enter hexadecimal values with a leading 0x). If you enter it in decimal, IxLoad automatically converts your entry to a hexadecimal number.
API default value="0" (null)
reverseEncryptKey
Encryption key used for traffic originating from the Right Subnet and destined for the Left Subnet. The reverse encryption key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
API default value="''" (null)
reverseEncryptKeyIncrement
Value for incrementing the Reverse Encryption Key, for each tunnel. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
The default value is 0x00.
API default value="'0x00'" (null)
reverseHashKeyAH
Hash key used for AH-mode traffic originating from the Right Subnet and destined for the Left Subnet. The reverse hash key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
API default value="''" (null)
reverseHashKeyAHincrement
Value for incrementing the Reverse Hash Key/AH, for each tunnel. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
The default value is 0x00.
defaultValue="'0x00'" />
reverseHashKeyESP
Hash key used for ESP-mode traffic originating from the Right Subnet and destined for the Left Subnet. The reverse hash key is a variable length value; the key length is determined by the Phase 2 encryption algorithm that you have configured. You can enter the value as a string or as a hexadecimal

IxLoad Tcl API Programming Guide

339

Network Stack API

number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
API default value="''" (null)
reverseHashKeyESPincrement
Value for incrementing the Reverse Hash Key/ESP, for each tunnel. You can enter the value as a string or as a hexadecimal number (use a leading 0x for hexadecimal). If you enter the value as a string, IxLoad automatically converts it to an ASCII value.
The default value is 0x00.
API default value="'0x00'"
reverseSPI
The Security Parameter Index for IPsec traffic originating from the Right Subnet and destined for the Left Subnet. The SPI is a 32-bit value.
You can enter the Reverse SPI using either decimal or hexadecimal notation (enter hexadecimal values with a leading 0x). If you enter the value in decimal, IxLoad automatically converts your entry to a hexadecimal number.
API default value="0"
reverseSPIincrement
The incrementor for the Reverse SPI.
You can enter the increment value in either decimal or hexadecimal notation (enter hexadecimal values with a leading 0x). If you enter it in decimal, IxLoad automatically converts your entry to a hexadecimal number.
API default value="0"

EXAMPLE

set my_ixNetIPSecManualKeyingOpts [::IxLoad new ixNetIPSecManualKeyingOpts]

$my_ixNetIPSecManualKeyingOpts config \

-forwardHashKeyESPincrement

"0x00" \

-reverseEncryptKey

"abcdefabcdefabcdefabcdef" \

-reverseSPI

0\

-reverseHashKeyAH

"" \

-reverseHashKeyESP

"abcdefabcdef9876" \

-forwardEncryptKeyIncrement

"0x00" \

340

IxLoad Tcl API Programming Guide

-forwardSPI

0\

-reverseHashKeyESPincrement

"0x00" \

-forwardHashKeyAHincrement

"0x00" \

-reverseSPIincrement

0\

-forwardHashKeyESP

"abcdefabcdef1223" \

-reverseEncryptKeyIncrement

"0x00" \

-forwardSPIincrement

0\

-forwardEncryptKey

"abcdefabcdefabcdefabcdef" \

-forwardHashKeyAH

"" \

-reverseHashKeyAHincrement

"0x00"

SEE ALSO

Network Stack API

Tunnel Setup
SYNOPSIS
DESCRIPTION
Configures the IPSec tunnel setup options. Global settings apply to all network groups and all ranges defined for a test.
SUBCOMMANDS
OPTIONS
testType The type of test that this IPSec encapsulation will support:
l Port to DUT

IxLoad Tcl API Programming Guide

341

Network Stack API
l Port to Port If you are setting up a back-to-back test, select the Port to Port option. Default value = "'P2D'" tunnelSetupTimeout The number of seconds to wait for a response from the DUT before declaring that a tunnel setup attempt has failed. The default is 30, the minimum is 1, the maximum is 600. Default value = "30" numRetries The number of attempts that the IPSec plug-in makes to renegotiate the Phase 1 and 2 SAs. If all attempts at renegotiation fail, the plug-in drops the tunnel. The default is 0, the minimum is 0, the maximum is 100. Default value = "0" retryInterval The number of seconds to wait before retrying the tunnel creation. The default is 10, the minimum is 1, the maximum is 60. Default value = "10" retryDelay Specifies the desired delay between subsequent attempts, specified in seconds. The default is 10, the minimum is 1, the maximum is 60. Default value = "10" sendCiscoVid If checked, IxLoad sends the Cisco-Unity Vendor ID payload type. Valid for IKEv1 only. Default value = "False" useMaxInitiationRate If true, IxLoad attempts to create tunnels at its fastest possible rate. If false, IxLoad attempts to create tunnels at the rate that you specify as the Initiation Rate parameter. Default value = "False" useMaxPendingTunnels

342

IxLoad Tcl API Programming Guide

Network Stack API
If true, IxLoad attempts to create the largest possible pool of pending tunnels, and continues to initiate tunnels irrespective of how many tunnels are waiting to be set up. If false, IxLoad attempts to create a pool of pending tunnels no larger than the value that you specify as the Maximum Number of Pending Tunnels parameter. Default value = "False" enableRekey Enables or disables renegotiation of Phase 1 and Phase 2 SAs on expiry of tunnel lifetimes:
l When disabled, tunnels are torn down when their lifetimes expire. l When enabled, the tunnels' Phase 1 and Phase 2 options are renegotiated before their lifetimes
expire, and the tunnels stay up. The rekey parameters control the renegotiation process. Default value = "False" rekeyRetries The total number of rekey retries permitted. This defines the number of attempts that the IPSec plug-in makes to renegotiate the Phase 1 and 2 SAs. If all attempts at renegotiation fail, the IPSec plug-in drops the tunnel. The valid range of values is from 0 through 10,000. The default value is 0. Default value = "0" rekeyFuzzPercentage The maximum rekey fuzz percentage. The fuzz percentage is used to randomize rekeying intervals. It is randomly applied to the Rekey Margin to either shrink (for values under 100) or enlarge (for values over 100) the window of time during which the IPSec plug-in performs rekeying for the tunnels. It prevents all the rekey attempts from occurring at the same time and overloading the DUT. The valid range of values is from 0 through 100. The default value is 0. Default value = "0" rekeyMargin The rekey margin, in seconds. This is the number of seconds that are subtracted from the connection expiration time, to ensure that creation of new IPsec SAs begins before the current IPsec SAs expire. The valid range of values is from 0 through 10,000. The default value is 0. Default value = "0"

IxLoad Tcl API Programming Guide

343

Network Stack API

EXAMPLE

set my_ixNetIPSecTunnelSetup [::IxLoad new ixNetIPSecTunnelSetup]

$my_ixNetIPSecTunnelSetup config \

-retryInterval

10 \

-useMaxPendingTunnels

false \

-enableRekey

false \

-useMaxInitiationRate

false \

-sendCiscoVid

false \

-testType

"P2D" \

-rekeyRetries

0\

-tunnelSetupTimeout

30 \

-retryDelay

10 \

-rekeyMargin

10 \

-rekeyFuzzPercentage

0\

-numRetries

0

SEE ALSO

Certificates

SYNOPSIS

DESCRIPTION
Configures the certificate parameters when the chosen authentication method is Certificates.
SUBCOMMANDS

OPTIONS
uniqueCert

344

IxLoad Tcl API Programming Guide

Network Stack API
If true, IxLoad uses the same certificate to negotiate every tunnel. This can significantly speed up the negotiation process, but it does not stress the DUT's ability to cache certificates or to negotiate tunnels using multiple certificates, as would happen in an actual VPN. If you select a cache as the Certificate source and the cache contains more than one certificate, IxLoad selects the certificate file with the oldest timestamp. Default value = "False" certSource
If enabled, IxLoad gets the certificates from the Certificate Authority (CA). If you select this option, IxLoad deletes any cached certificates from the chassis (from the folder specified for `Certificates Folder'). Default value = "'kNewCert'" certSubjectAltDN
A comma-separated list of subject alternative names. The subject alternative name is an X.509 v3 extension that permits various literal values to be included in the configuration file. defaultValue="''" (null) caURL
Certificate Authority URL. Check this option to use a certificate authority (CA) server for authentication. Enter the CA server's URL in the field. IxLoad uses Simple Certificate Enrollment Protocol (SCEP) to obtain signed certificates from the CA. This option is not supported in a port-to-port test. Default value = "''" caDN
Issuing CA Distinguished Name. Name of the Certificate Authority (CA) that issued the DUT's certificate. This field includes the Distinguished Name fields and values that IxLoad sends to the DUT's CA. These can include the following fields:
l CN: Common name l E: Email address l OU: Organizational unit l O: Organization name l L: Locality l S: State or province l C: 2-letter country or region name For example, CN=Liesl Benjamin, E=liesl@ixia.com, OU=Security, O=Ixia, L=Los Angeles S=California, C=US

IxLoad Tcl API Programming Guide

345

Network Stack API
Default value = "''" certSubjectDN Subject Distinguished Name. A name designating the owner of the certificate. This field includes the Distinguished Name fields and values that IxLoad sends to the DUT's CA. These can include the same fields as described for the Issuing CA Distinguished Name parameter. Default value = "''" remoteIkeId Attribute that identifies the DUT in its certificate. You can enter the following in this field:
l A fully-qualified domain name (FQDN). Syntax: @<domain> For example, @ixiacom.com
l An email address. Syntax: user@domain For example, liesl@ixiacom.com
l An IP address. Syntax: IP=<address> For example, IP=192.168.0.1
l A context string. Syntax: attribute=value For example, CN=liesl benjamin, O=ixia, C=us This is a string value, with a maximum length of 2048 characters. Default value = "''" bitSize Bit Size for the Keys. The choices are: 512, 1024, 2048. Default value = "'k512'" saveCert If true, IxLoad stores certificates in the specified folder on the chassis. The default folder is specified in cacheCertFolder. Default value = "False" cacheCertFolder

346

IxLoad Tcl API Programming Guide

Network Stack API

Folder where certificates are stored. Default value = "'C:\Program Files\Ixia\CachedCerts'" certParentFolder Root path of certificate folder. Default value = "'C:\Program Files\Ixia\CachedCerts'" certNumber Number of certificates cached. If the number of tunnels exceeds the number of certificates, IxLoad reuses certificates as necessary. Default value = "''" earlyExpDate Earliest expiry date and time of cached certificates. Default value = "''" lateExpDate Latest expiry date and time of cached certificates. Default value = "''" usePerRangeCertNameExp If enabled, IxLoad expands the $ (if present) in the Subject Distinguished Name field on a per-range basis. If disabled (the default), IxLoad expands the $ globally. Default value = "False"

EXAMPLE

set my_ixNetIPSecSessionData [$Test1 getSessionSpecificData "IPSecPlugin"]

set my_ixNetIPSecCertificates [::IxLoad new ixNetIPSecCertificates]

$my_ixNetIPSecCertificates config \

-uniqueCert

false \

-usePerRangeCertNameExp

false \

-caURL

"" \

-bitSize

"k512" \

-remoteIkeId

"" \

IxLoad Tcl API Programming Guide

347

Network Stack API

-lateExpDate -cacheCertFolder -saveCert -certSubjectAltDN -certSubjectDN -certParentFolder -earlyExpDate -certSource -caDN -certNumber
SEE ALSO

"" \ "C:\\Program Files\\Ixia\\CachedCerts" \
false \ "" \ "" \ "C:\\Program Files\\Ixia\\CachedCerts" \
"" \ "kNewCert" \ "" \ ""

EAP Common

SYNOPSIS

DESCRIPTION
Configures the common portion of the EAP SIM and AKA tuple. Configure the EAP SIM and AKA tuples as lists.
SUBCOMMANDS

OPTIONS
imsi A string value that represents the International Mobile Subscriber Identity. Default value="''" (null) rand A hexadecimal number that represents the 128-bit random challenge generated by the DUT. Default value="''" (null)

348

IxLoad Tcl API Programming Guide

EXAMPLE SEE ALSO

Network Stack API

EAP AKA
SYNOPSIS
DESCRIPTION
Configures the AKA portion of an EAP AKA tuple
SUBCOMMANDS
OPTIONS
ck A 128-bit hexadecimal value representing the Cipher Key. The CK is used for encryption. (On EAP-AKA full authentication, keying material (a Master Key) is generated from the Integrity Key (IK), the Cipher Key (CK), and the peer identity.) Default value="''" (null) ik A 128-bit hexadecimal value representing the Integrity Key. The IK is a session key used for integrity checks. (On EAP-AKA full authentication, keying material (a Master Key) is generated from the Integrity Key (IK), the Cipher Key (CK), and the peer identity.) Default value="''" (null) res

IxLoad Tcl API Programming Guide

349

Network Stack API
A 128-bit hexadecimal value representing the authentication result that the identity module produces and sends to the home environment, following successful verification of the AUTN. The RES, together with the RAND, authenticates the peer to the server. (The AUTN is the authenticator part of the authentication vector produced by the home environment. The home environment is the home operator's authentication network infrastructure.) Default value="''" (null)
EXAMPLE
$my_ixNetIPSecSessionData eapAkaTuples.clear
set my_ixNetIPSecEapAkaTuple [::IxLoad new ixNetIPSecEapAkaTuple] # ixNet objects needs to be added in the list before they are configured! $my_ixNetIPSecSessionData eapAkaTuples.appendItem -object $my_ixNetIPSecEapAkaTuple
$my_ixNetIPSecEapAkaTuple config \ -ck "0xc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0" \ -rand "0xe0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0" \ -ik "0xb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0" \ -imsi "" \ -res "0xd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0"
SEE ALSO
EAP SIM
SYNOPSIS

350

IxLoad Tcl API Programming Guide

Network Stack API
DESCRIPTION
Configures the SIM portion of an EAP AKA tuple
SUBCOMMANDS
OPTIONS
kc A hexadecimal number that represents the 64-bit ciphering key used as a session key for encryption of the over-the-air channel. The Kc key was originally intended to be used as an encryption key over the air interface, but in the EAP-SIM protocol, it is used for deriving keying material and is not directly used. (Note that the secrecy of Kc is critical to the security of this protocol.) Default value = "''" (null) sres A hexadecimal number that represents the 32-bit signed response generated by the SIM. Default value = "''" (null)
EXAMPLE
$my_ixNetIPSecSessionData eapSimTuples.clear
set my_ixNetIPSecEapSimTuple [::IxLoad new ixNetIPSecEapSimTuple] # ixNet objects needs to be added in the list before they are configured! $my_ixNetIPSecSessionData eapSimTuples.appendItem -object $my_ixNetIPSecEapSimTuple
$my_ixNetIPSecEapSimTuple config \ -kc "0xa0a1a2a3a4a5a6a7" \ -rand "0x101112131415161718191a1b1c1d1e1f" \ -sres "0xd1d2d3d4" \ -imsi ""

IxLoad Tcl API Programming Guide

351

Network Stack API
SEE ALSO
IPSec Example
This section shows an example of how to create an IPSec plugin in the Tcl API.

352

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

353

Network Stack API

354

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

355

Network Stack API

356

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

357

Network Stack API

PPPoX Plugin
SYNOPSIS DESCRIPTION
Configures a PPPoX plugin.
SUBCOMMANDS OPTIONS
name
358

IxLoad Tcl API Programming Guide

Network Stack API

Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" rangeList Name of the list of IP address ranges used by this plugin. The list must be a PppoxRangeList object. This option is read-only. Default value = "None"
EXAMPLE
set PPPoX_1 [::IxLoad new ixNetPppoxPlugin]# ixNet objects needs to be added in the list before they are configured!$MAC_VLAN_10 childrenList.appendItem -object $PPPoX_ 1

$PPPoX_1 config \-name

"PPPoX-1"

$PPPoX_1 childrenList.clear

$PPPoX_1 extensionList.clear

$MAC_VLAN_10 extensionList.clear

$Ethernet_1 extensionList.clear
SEE ALSO

PppoxPortGroupData
SYNOPSIS

IxLoad Tcl API Programming Guide

359

Network Stack API
DESCRIPTION
Configures the PPPoX network group settings.
SUBCOMMANDS
OPTIONS
activityID Activity ID. Default value = "'0'" activities List of activities. Default Value = "None" associates Name of the list of associates. This list must an AssociateList object. This option is read only. Default value = "None" overrideGlobalRateControls If false, the global setup and teardown rate values will be equally divided among the ports. If true, The setup and teardown parameters defined at the port level will override those defined at the global level. For example, if you have set the initial setup rate to 150 on the global level, and you have defined two ports, these 150 session setups will be evenly distributed across the ports (75 for each). If you then enable Override Global Rate Controls, you can modify the number of session setups for each of the ports (such as changing the distribution from 75-75 to 120-30). Default value = "False" setupRateInitial The number of PPP sessions to set up, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingRequests The maximum number of PPP sessions that can be outstanding at any given time. The minimum is 1, the maximum is 1000.

360

IxLoad Tcl API Programming Guide

Network Stack API
Default value="300" teardownRateInitial The number of PPP sessions to tear down, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingReleases The maximum number of PPP sessions that can be released at any given time. The minimum is 1, the maximum is 1000. Default value = "300" useWaitForCompletionTimeout Enables the application to wait for a specified amount of time for the sessions to negotiate before declaring a negotiation timeout. Default value = "False" waitForCompletionTimeout If useWaitForCompletionTimeout is true, specify the number of seconds that the application will wait for the sessions to negotiate. The default is 120, the minimum is 1, and the maximum is 65535. Default value = "120" enablePerSessionStatGeneration Enables or disables per-session statistics generation. When enabled, PPP protocol statistics are generated during the session negotiation phase of an L2TP or PPP test and written to a CSV file. The CSV file is generated at the end of the session negotiation phase. The concatenated results for each port are returned as a single file. Statistics are generated only for client ports because server ports do not establish any sessions during the negotiation phase. Default value = "False" perSessionStatFilePrefix If enablePerSessionStatGeneration is true, specify the prefix to use for the name of the per-session PPP protocol statistics file. The per-session PPP protocol statistics file names are of the form:
StatsFilePrefix_chassis_card_port_TimeStamp_.csv The CSV files are saved in the folder defined by the setResultDir option of the ixTestController command. See ixTestController (see "ixTestController").

IxLoad Tcl API Programming Guide

361

Network Stack API
Default value = "'MY_PREFIX'" role The role that the PPPoX network group plays in the test configuration. Must be one of the choices in the RoleChoices object. Note: A client and a server cannot both be set at the same time on the same network group. Default value = "'client'" filterDataPlaneBeforeL7 Default value = "False"
EXAMPLE
SEE ALSO
PLSessionDataBase
SYNOPSIS
DESCRIPTION
Configures the PPPoX and L2TP network group settings.
SUBCOMMANDS
OPTIONS
setupRateInitial The number of PPP sessions to set up, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingRequests The maximum number of PPP sessions that can be outstanding at any given time. The minimum is 1, the maximum is 1000. Default value = "300"

362

IxLoad Tcl API Programming Guide

Network Stack API
teardownRateInitial The number of PPP sessions to tear down, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingReleases The maximum number of PPP sessions that can be released at any given time. The minimum is 1, the maximum is 1000. Default value = "300"
EXAMPLE
SEE ALSO
PppoxRangeList
SYNOPSIS
DESCRIPTION
List of PPPoX ranges. This list must be a list of PppoxRange objects.
SUBCOMMANDS
OPTIONS
EXAMPLE
SEE ALSO

IxLoad Tcl API Programming Guide

363

Network Stack API
PppoxAcNameList
SYNOPSIS DESCRIPTION
List of access concentrator names. This list must be a list of PppoxAcName objects.
SUBCOMMANDS OPTIONS EXAMPLE SEE ALSO
PppoxAcMacList
SYNOPSIS DESCRIPTION
List of access concentrator MAC addresses. This list must be a list of PppoxAcMac objects.
SUBCOMMANDS OPTIONS

364

IxLoad Tcl API Programming Guide

EXAMPLE SEE ALSO

Network Stack API

PppoX Plugin Example
This section shows an example of how to create a PPPoX plugin in the Tcl API.

IxLoad Tcl API Programming Guide

365

Network Stack API

366

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

367

Network Stack API

368

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

369

Network Stack API

L2TP Plugin
SYNOPSIS DESCRIPTION
Configures an L2TP plugin.
SUBCOMMANDS
370

IxLoad Tcl API Programming Guide

Network Stack API

OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None"

l2tpRanges Name of the L2tpRangeList containing the address ranges used by this plugin. Default value = "None"
EXAMPLE
set L2TP_1 [::IxLoad new ixNetL2tpPlugin] # ixNet objects needs to be added in the list before they are configured! $IP_4 childrenList.appendItem -object $L2TP_1

$L2TP_1 config \ -name

"L2TP-1"

$L2TP_1 childrenList.clear

$L2TP_1 extensionList.clear

$IP_4 extensionList.clear

$MAC_VLAN_9 extensionList.clear

IxLoad Tcl API Programming Guide

371

Network Stack API
$Ethernet_1 extensionList.clear
SEE ALSO
Network Group Settings
SYNOPSIS
DESCRIPTION
Configures the L2TP Network Group Settings Parameters.
SUBCOMMANDS
OPTIONS
activityID Activity ID. Default value = "'0'" activities List of activities. Default Value = "None" associates Name of the list of Associates. This option is read only. Default value = "None" overrideGlobalRateControls If false, the global setup and teardown rate values will be equally divided among the ports. If true, The setup and teardown parameters defined at the port level will override those defined at the global level.

372

IxLoad Tcl API Programming Guide

Network Stack API
For example, if you have set the initial setup rate to 150 on the global level, and you have defined two ports, these 150 session setups will be evenly distributed across the ports (75 for each). If you then enable Override Global Rate Controls, you can modify the number of session setups for each of the ports (such as changing the distribution from 75-75 to 120-30). Default value = "False" setupRateInitial
The number of PPP sessions to set up, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingRequests
The maximum number of PPP sessions that can be outstanding at any given time. The minimum is 1, the maximum is 1000. Default value="300" teardownRateInitial
The number of PPP sessions to tear down, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingReleases
The maximum number of PPP sessions that can be released at any given time. The minimum is 1, the maximum is 1000. Default value = "300" useWaitForCompletionTimeout
Enables the application to wait for a specified amount of time for the sessions to negotiate before declaring a negotiation timeout. Default value = "False" waitForCompletionTimeout
If useWaitForCompletionTimeout is true, specify the number of seconds that the application will wait for the sessions to negotiate. The default is 120, the minimum is 1, and the maximum is 65535. Default value = "120" enablePerSessionStatGeneration
Enables or disables per-session statistics generation. When enabled, PPP protocol statistics are generated during the session negotiation phase of an L2TP or PPP test and written to a CSV file. The CSV

IxLoad Tcl API Programming Guide

373

Network Stack API
file is generated at the end of the session negotiation phase. The concatenated results for each port are returned as a single file. Statistics are generated only for client ports because server ports do not establish any sessions during the negotiation phase. Default value = "False" perSessionStatFilePrefix If enablePerSessionStatGeneration is true, specify the prefix to use for the name of the per-session PPP protocol statistics file. The per-session PPP protocol statistics file names are of the form:
StatsFilePrefix_chassis_card_port_TimeStamp_.csv The CSV files are saved in this folder: <Install path>\data\result\[UserName]\Per Session Stats PPP_L2TP\ Default value = "'MY_PREFIX'" role The role that the L2TP network group plays in the test configuration:
l lac - L2TP Access Concentrator (LAC) l lns - L2TP Network Server (LNS) Default value = "'lac'"
EXAMPLE
SEE ALSO
L2tpSessionData
SYNOPSIS
DESCRIPTION
Global L2TP settings.
SUBCOMMANDS

374

IxLoad Tcl API Programming Guide

Network Stack API
OPTIONS
setupRateInitial The number of PPP sessions to set up, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingRequests The maximum number of PPP sessions that can be outstanding at any given time. The minimum is 1, the maximum is 1000. Default value = "300" teardownRateInitial The number of PPP sessions to tear down, per second. The default is 300, the minimum is 1, the maximum is 1000. Default value = "300" maxOutstandingReleases The maximum number of PPP sessions that can be released at any given time. The minimum is 1, the maximum is 1000. Default value = "300"
EXAMPLE
SEE ALSO
Basic parameters
SYNOPSIS DESCRIPTION
Configures the L2TP Basic parameters.
SUBCOMMANDS

IxLoad Tcl API Programming Guide

375

Network Stack API

OPTIONS
tunnelDestinationIp Defines the base address to be used for the L2TP tunnel destinations. Default value = "'10.10.10.1'" tunnelIncrementBy Defines the increment to be used for enumerating all the addresses in the destination range. Default value = "'0.0.0.1'" sessionsPerTunnel The number of PPP sessions that each L2TP tunnel may carry. The default is 1, the minimum is 1, and the maximum is 32000. Default value = "1"

EXAMPLE
$L2TP_1 l2tpRanges.clear

set L2TP_R1 [::IxLoad new ixNetL2tpRange]# ixNet objects needs to be added in the list before they are configured!$L2TP_1 l2tpRanges.appendItem -object $L2TP_R1

$L2TP_R1 config \-authTimeout

10 \-lacToLNSMapping

"gateway" \-authRetries

20 \-authType

"none" \-sessionsPerTunnel

1 \-echoReqInterval

10 \-domainList

"Domain Groups" \-peerHostName

"ixia" \-useHiddenAVPs

false \-incrementBy

1 \-ncpRetries

3 \-serverPrimaryDnsAddress

"10.10.10.10" \-clientDnsOptions

"disableExtension" \-

enableHelloRequest

false \-lcpTermTimeout

15 \-baseLnsIp

"0.0.0.0" \-name

"L2TP-R1" \-lcpTermRetries

3 \-serverIIDIncr

1 \-rxConnectSpeed

268435456 \-clientBaseIID

"00:11:11:11:00:00:00:01" \-numSessions

1 \-

tunnelAuthentication

"none" \-serverBaseIID

"00:11:22:11:00:00:00:01" \-ncpTimeout

10 \-

tunnelDestinationIp

"10.10.10.1" \-ipv6PoolPrefixLen

48 \-l2tpAuthOptions

"L2PT Authentication Options" \-

clientIIDIncr

1 \-udpDestinationPort

1701 \-lacSecret

"ixia" \-ipIncrementOctet

4 \-ncpType

"IPv4" \-lnsIpList

"LNS IPs" \-authOptions

"Authentication Options" \-

376

IxLoad Tcl API Programming Guide

Network Stack API

offsetByte

0 \-enableRedial

false \-lcpRetries

3 \-maxRetransmitInterval

8 \-chapName

"user" \-useSequenceNoInPayload

false \-serverSecondaryDnsAddress

"11.11.11.11" \-basicOptions

"L2PT Options" \-lacHostName

"ixia" \-serverNetmask

"255.255.255.0" \-bearerCapability

"3" \-receiveWindowSize

10 \-serverDnsOptions

"disableExtension" \-

clientPrimaryDnsAddress

"8.8.8.8" \-lnsIpNumber

1 \-tunnelIncrementBy

"0.0.0.1" \-chapSecret

"secret" \-enableEchoReq

false \-lcpOptions

"LCP Options" \-serverNetmaskOptions

"disableExtension" \-

helloRequestInterval

60 \-clientNetmask

"255.0.0.0" \-initRetransmitInterval

2 \-clientNetmaskOptions

"disableExtension" \-sessionAllocMethod

"nextTunnel" \-

enableControlChecksum

true \-framingCapability

"1" \-useLengthBitInPayload

false \-ipv6PoolPrefix

"1:1:1::" \-enableEchoRsp

true \-serverIpIncr

"0.0.0.0" \-papPassword

"password" \-txConnectSpeed

268435456 \-ipv6AddrPrefixLen

64 \-redialInterval

10 \-clientBaseIp

"1.1.1.1" \-domainToIpList

"Domain To LNS" \-controlMsgsRetryCounter

30 \-

clientSecondaryDnsAddress

"9.9.9.9" \-enabled

true \-mtu

1492 \-serverBaseIp

"2.2.2.2" \-noCallTimeout

5 \-clientIpIncr

"0.0.0.1" \-dataPlaneOptions

"Data Plane Options" \-

enableDataChecksum

false \-enableProxy

true \-lcpTimeout

10 \-enableDomainGroups

false \-bearerType

"2" \-offsetLength

0 \-udpSourcePort

1701 \-maxRedialAttempts

20 \-sessionStartId

1 \-papUser

"user" \-controlPlaneOptions

"Control Plane Options" \-

useOffsetBitInPayload

false \-tunnelStartId

1 \-useMagic

true

$L2TP_R1 domainGroupList.clear

$L2TP_R1 lnsIpAddresses.clear

set IP_R4 [$L2TP_R1 getLowerRelatedRange "IpV4V6Range"]

$IP_R4 config \-count "IP-R4" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode

IxLoad Tcl API Programming Guide

377

Network Stack API

"perSubnet" \-generateStatistics "10.10.0.5" \-ipType

false \-ipAddress "IPv4"

set MAC_R8 [$IP_R4 getLowerRelatedRange "MacRange"]

$MAC_R8 config \-count "MAC-R8" \-enabled 1500 \-mac "00:00:00:00:00:01"

1 \-name true \-mtu "00:0A:0A:00:05:00" \-incrementBy

set VLAN_R1 [$IP_R4 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \-incrementStep 4094 \-name 1 \-innerUniqueCount true \-innerFirstId 1 \-priority 1 \-innerIncrementStep 2 \-innerEnable 1
SEE ALSO

1 \-uniqueCount "VLAN-R1" \-innerIncrement 4094 \-enabled 1 \-increment 1 \-firstId 1 \-idIncrMode false \-innerPriority

L2TP Control Plane
SYNOPSIS DESCRIPTION
Configures the L2TP Control Plane parameters.
SUBCOMMANDS
OPTIONS
sessionsPerTunnel The number of PPP sessions that each L2TP tunnel may carry. The default is 1, the minimum is 1, and the maximum is 32000.

378

IxLoad Tcl API Programming Guide

Network Stack API

Default value = "1" tunnelStartId A unique identifier for the L2TP tunnel. The default is 1; the minimum is 1; and the maximum is 65,535. Min=1, Max=65535, Default=1 noCallTimeout
The amount of time, in seconds to wait to receive an L2TP request for connection. If it does not receive a call within this time, the tunnel is closed. The default is 5, the minimum is 1, and the maximum is 180. Default value = "5" enableHelloRequest
If checked, Hello messages are sent to confirm that a tunnel is still up. Default value = "False" helloRequestInterval
If Hello Requests are enabled, this value determines the amount of time that can elapse between the time the most recent control or data message are sent, and the time a Hello message is sent. The default is 60, the minimum is 1, and the maximum is 180. Default value = "60" bearerCapability
Indicates to the DUT the bearer device types from which incoming calls will be accepted. You can set this parameter to the following values:
l Analog: advertises its bearer device type as analog only. l Digital: advertises its bearer device type as digital only. l Both: advertises its bearer device types as analog and digital. The default value is Both.

Value Description

1

Digital: advertises its bearer device type as digital only.

2

Analog: advertises its bearer device type as analog only.

3

Both: advertises its bearer device types as analog and digital.

Default value = "'3'" bearerType

IxLoad Tcl API Programming Guide

379

Network Stack API

Device type requested for outgoing calls. You can set this parameter to the following values: l Analog: requests analog device capability. l Digital: requests digital device capability.
The default value is Digital.

Value Description

1

Digital: requests digital device capability.

2

Analog: requests analog device capability.

Default value = "'2'" controlMsgsRetryCounter
Number of times a control message for which an acknowledgment has not been received will be retransmitted. The default is 30, the minimum is 1, and the maximum is 100.
Default value = "30" initRetransmitInterval
Initial amount of time that can elapse before an unacknowledged control message is retransmitted.
If a control message is retransmitted and still does not receive a reply from the DUT, the control message will be retransmitted at increasingly longer intervals until it receives a reply. The Max Retransmit Interval parameter establishes the upper limit on retransmit interval.
The default is 2, the minimum is 1, and the maximum is 65535.
Default value = "2" maxRetransmitInterval
Unacknowledged control messages are retransmitted.
If a control message is transmitted at the Maximum Retransmit Interval and still does not receive a reply, the associated tunnel is torn down along with the PPP sessions within it.
The default is 8, the minimum is 1, and the maximum is 65535.
Default value = "8" receiveWindowSize
Configures the size of the sliding window used for managing control message transmission. The values for this parameter are expressed in units of unacknowledged control messages. For example, if you set this parameter to 4, the DUT can send control messages until it has four messages for which it is waiting for acknowledgments. At that point, it must wait for one or more of the messages to be acknowledged before it can send any new control messages.
The default is 10, the minimum is 1, and the maximum is 2048.

380

IxLoad Tcl API Programming Guide

Network Stack API

Default value = "10" enableRedial
If the L2TP link goes down and this parameter is enabled, the DUT will be redialed to reestablish the link. Default value = "False" redialInterval
Number of seconds that can elapse between attempts to redial the DUT to re-establish a downed L2TP link. The default is 10, the minimum is 1, and the maximum is 65535. Default value = "10" maxRedialAttempts
The maximum number attempts IxLoad will make to redial the DUT to re-establish a downed L2TP link. The default is 20, the minimum is 1, and the maximum is 65535. Default value = "20" sessionAllocMethod
Method for allocating sessions among tunnels.

Value

Description

nextTunnel Distribute sessions among tunnels

fillTunnel Fill tunnels in order

Default value = "'nextTunnel'"

framingCapability Framing capability.

Value Description

1

Synchronous

2

Asynchronous

Default value = "'1'"
EXAMPLE
$L2TP_1 l2tpRanges.clear

set L2TP_R1 [::IxLoad new ixNetL2tpRange]# ixNet objects needs to be added in the

IxLoad Tcl API Programming Guide

381

Network Stack API

list before they are configured!$L2TP_1 l2tpRanges.appendItem -object $L2TP_R1

$L2TP_R1 config \-authTimeout

10 \-lacToLNSMapping

"gateway" \-authRetries

20 \-authType

"none" \-sessionsPerTunnel

1 \-echoReqInterval

10 \-domainList

"Domain Groups" \-peerHostName

"ixia" \-useHiddenAVPs

false \-incrementBy

1 \-ncpRetries

3 \-serverPrimaryDnsAddress

"10.10.10.10" \-clientDnsOptions

"disableExtension" \-

enableHelloRequest

false \-lcpTermTimeout

15 \-baseLnsIp

"0.0.0.0" \-name

"L2TP-R1" \-lcpTermRetries

3 \-serverIIDIncr

1 \-rxConnectSpeed

268435456 \-clientBaseIID

"00:11:11:11:00:00:00:01" \-numSessions

1 \-

tunnelAuthentication

"none" \-serverBaseIID

"00:11:22:11:00:00:00:01" \-ncpTimeout

10 \-

tunnelDestinationIp

"10.10.10.1" \-ipv6PoolPrefixLen

48 \-l2tpAuthOptions

"L2PT Authentication Options" \-

clientIIDIncr

1 \-udpDestinationPort

1701 \-lacSecret

"ixia" \-ipIncrementOctet

4 \-ncpType

"IPv4" \-lnsIpList

"LNS IPs" \-authOptions

"Authentication Options" \-

offsetByte

0 \-enableRedial

false \-lcpRetries

3 \-maxRetransmitInterval

8 \-chapName

"user" \-useSequenceNoInPayload

false \-serverSecondaryDnsAddress

"11.11.11.11" \-basicOptions

"L2PT Options" \-lacHostName

"ixia" \-serverNetmask

"255.255.255.0" \-bearerCapability

"3" \-receiveWindowSize

10 \-serverDnsOptions

"disableExtension" \-

clientPrimaryDnsAddress

"8.8.8.8" \-lnsIpNumber

1 \-tunnelIncrementBy

"0.0.0.1" \-chapSecret

"secret" \-enableEchoReq

false \-lcpOptions

"LCP Options" \-serverNetmaskOptions

"disableExtension" \-

helloRequestInterval

60 \-clientNetmask

"255.0.0.0" \-initRetransmitInterval

2 \-clientNetmaskOptions

"disableExtension" \-sessionAllocMethod

"nextTunnel" \-

enableControlChecksum

true \-framingCapability

"1" \-useLengthBitInPayload

false \-ipv6PoolPrefix

"1:1:1::" \-enableEchoRsp

true \-serverIpIncr

"0.0.0.0" \-papPassword

"password" \-txConnectSpeed

268435456 \-ipv6AddrPrefixLen

64 \-redialInterval

10 \-clientBaseIp

"1.1.1.1" \-domainToIpList

"Domain To LNS" \-controlMsgsRetryCounter

30 \-

clientSecondaryDnsAddress

"9.9.9.9" \-enabled

true \-mtu

1492 \-serverBaseIp

"2.2.2.2" \-noCallTimeout

5 \-clientIpIncr

382

IxLoad Tcl API Programming Guide

Network Stack API

"0.0.0.1" \-dataPlaneOptions enableDataChecksum true \-lcpTimeout false \-bearerType 0 \-udpSourcePort 20 \-sessionStartId "user" \-controlPlaneOptions useOffsetBitInPayload 1 \-useMagic

"Data Plane Options" \false \-enableProxy
10 \-enableDomainGroups "2" \-offsetLength
1701 \-maxRedialAttempts 1 \-papUser "Control Plane Options" \-
false \-tunnelStartId true

$L2TP_R1 domainGroupList.clear

$L2TP_R1 lnsIpAddresses.clear

set IP_R4 [$L2TP_R1 getLowerRelatedRange "IpV4V6Range"]

$IP_R4 config \-count "IP-R4" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement "perSubnet" \-generateStatistics "10.10.0.5" \-ipType

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode
false \-ipAddress "IPv4"

set MAC_R8 [$IP_R4 getLowerRelatedRange "MacRange"]

$MAC_R8 config \-count "MAC-R8" \-enabled 1500 \-mac "00:00:00:00:00:01"

1 \-name true \-mtu "00:0A:0A:00:05:00" \-incrementBy

set VLAN_R1 [$IP_R4 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \-incrementStep 4094 \-name 1 \-innerUniqueCount true \-innerFirstId 1 \-priority 1 \-innerIncrementStep 2 \-innerEnable 1

1 \-uniqueCount "VLAN-R1" \-innerIncrement 4094 \-enabled 1 \-increment 1 \-firstId 1 \-idIncrMode false \-innerPriority

IxLoad Tcl API Programming Guide

383

Network Stack API
SEE ALSO
L2TP Data Plane
SYNOPSIS DESCRIPTION
Configures the L2TP Range Parameters.
SUBCOMMANDS
OPTIONS
enableControlChecksum Enables the use of UDP checksums on control messages. The L2TP RFC (RFC 2661) recommends that UDP checksums always be enabled on control packets. Default value = "True" enableDataChecksum Enables the use of UDP checksums on data messages. Default value = "False" udpSourcePort The UDP port used to send requests to the DUT for L2TP connections. The well-known port number for L2TP is 1701. Default value = "1701" udpDestinationPort The UDP port that the DUT uses to listen for L2TP connection requests. The well-known port number for L2TP is 1701. Default value = "1701" useLengthBitInPayload If true, sets the Length bit in data messages, adding the Length field to the header and indicating that it is present.

384

IxLoad Tcl API Programming Guide

Network Stack API

Default value = "False" useOffsetBitInPayload
If true, sets the Offset bit in data messages, adding the Offset Length field to the header and indicating that it is present. Default value = "False" offsetByte
If useOffsetBitInPayload is true, the Offset Byte field specifies the byte value used to pad the header from the end of the Offset Length field to the beginning of the payload. The default is 0, the minimum is 0, and the maximum is 255. Default value = "0" offsetLength
The Offset Length field specifies the number of octets past the L2TP header at which the payload data starts. The default is 0, the minimum is 0, and the maximum is 255. Default value = "0" useSequenceNoInPayload
If true, sets the Sequence bit in data messages, adding the Sequence Number fields to the header and indicating that they are present. Default value = "False"

EXAMPLE
$L2TP_1 l2tpRanges.clear

set L2TP_R1 [::IxLoad new ixNetL2tpRange]# ixNet objects needs to be added in the list before they are configured!$L2TP_1 l2tpRanges.appendItem -object $L2TP_R1

$L2TP_R1 config \-authTimeout

10 \-lacToLNSMapping

"gateway" \-authRetries

20 \-authType

"none" \-sessionsPerTunnel

1 \-echoReqInterval

10 \-domainList

"Domain Groups" \-peerHostName

"ixia" \-useHiddenAVPs

false \-incrementBy

1 \-ncpRetries

3 \-serverPrimaryDnsAddress

"10.10.10.10" \-clientDnsOptions

"disableExtension" \-

enableHelloRequest

false \-lcpTermTimeout

15 \-baseLnsIp

"0.0.0.0" \-name

"L2TP-R1" \-lcpTermRetries

3 \-serverIIDIncr

1 \-rxConnectSpeed

268435456 \-clientBaseIID

"00:11:11:11:00:00:00:01" \-numSessions

1 \-

IxLoad Tcl API Programming Guide

385

Network Stack API

tunnelAuthentication

"none" \-serverBaseIID

"00:11:22:11:00:00:00:01" \-ncpTimeout

10 \-

tunnelDestinationIp

"10.10.10.1" \-ipv6PoolPrefixLen

48 \-l2tpAuthOptions

"L2PT Authentication Options" \-

clientIIDIncr

1 \-udpDestinationPort

1701 \-lacSecret

"ixia" \-ipIncrementOctet

4 \-ncpType

"IPv4" \-lnsIpList

"LNS IPs" \-authOptions

"Authentication Options" \-

offsetByte

0 \-enableRedial

false \-lcpRetries

3 \-maxRetransmitInterval

8 \-chapName

"user" \-useSequenceNoInPayload

false \-serverSecondaryDnsAddress

"11.11.11.11" \-basicOptions

"L2PT Options" \-lacHostName

"ixia" \-serverNetmask

"255.255.255.0" \-bearerCapability

"3" \-receiveWindowSize

10 \-serverDnsOptions

"disableExtension" \-

clientPrimaryDnsAddress

"8.8.8.8" \-lnsIpNumber

1 \-tunnelIncrementBy

"0.0.0.1" \-chapSecret

"secret" \-enableEchoReq

false \-lcpOptions

"LCP Options" \-serverNetmaskOptions

"disableExtension" \-

helloRequestInterval

60 \-clientNetmask

"255.0.0.0" \-initRetransmitInterval

2 \-clientNetmaskOptions

"disableExtension" \-sessionAllocMethod

"nextTunnel" \-

enableControlChecksum

true \-framingCapability

"1" \-useLengthBitInPayload

false \-ipv6PoolPrefix

"1:1:1::" \-enableEchoRsp

true \-serverIpIncr

"0.0.0.0" \-papPassword

"password" \-txConnectSpeed

268435456 \-ipv6AddrPrefixLen

64 \-redialInterval

10 \-clientBaseIp

"1.1.1.1" \-domainToIpList

"Domain To LNS" \-controlMsgsRetryCounter

30 \-

clientSecondaryDnsAddress

"9.9.9.9" \-enabled

true \-mtu

1492 \-serverBaseIp

"2.2.2.2" \-noCallTimeout

5 \-clientIpIncr

"0.0.0.1" \-dataPlaneOptions

"Data Plane Options" \-

enableDataChecksum

false \-enableProxy

true \-lcpTimeout

10 \-enableDomainGroups

false \-bearerType

"2" \-offsetLength

0 \-udpSourcePort

1701 \-maxRedialAttempts

20 \-sessionStartId

1 \-papUser

"user" \-controlPlaneOptions

"Control Plane Options" \-

useOffsetBitInPayload

false \-tunnelStartId

1 \-useMagic

true

$L2TP_R1 domainGroupList.clear

$L2TP_R1 lnsIpAddresses.clear

386

IxLoad Tcl API Programming Guide

Network Stack API

set IP_R4 [$L2TP_R1 getLowerRelatedRange "IpV4V6Range"]

$IP_R4 config \-count "IP-R4" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement "perSubnet" \-generateStatistics "10.10.0.5" \-ipType

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode
false \-ipAddress "IPv4"

set MAC_R8 [$IP_R4 getLowerRelatedRange "MacRange"]

$MAC_R8 config \-count "MAC-R8" \-enabled 1500 \-mac "00:00:00:00:00:01"

1 \-name true \-mtu "00:0A:0A:00:05:00" \-incrementBy

set VLAN_R1 [$IP_R4 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \-incrementStep 4094 \-name 1 \-innerUniqueCount true \-innerFirstId 1 \-priority 1 \-innerIncrementStep 2 \-innerEnable 1
SEE ALSO

1 \-uniqueCount "VLAN-R1" \-innerIncrement 4094 \-enabled 1 \-increment 1 \-firstId 1 \-idIncrMode false \-innerPriority

L2TP Authentication
SYNOPSIS DESCRIPTION
Configures the L2TP Range Parameters.

IxLoad Tcl API Programming Guide

387

Network Stack API

SUBCOMMANDS

OPTIONS
peerHostName
On LAC ports, this is a text string identifying IxLoad to the DUT for the purposes of Hidden AVPs and Tunnel Authentication. This text string is also used for the hostname AVP. The default value is ixia. The text string can have a maximum of 32 characters.
On LNS ports, this is the hostname expected by the LNS in authentication.
Default value = "'ixia'"
tunnelAuthentication
Enables a LAC or LNS to authenticate the identity of a peer it is contacting or being contacted by during control connection establishment.
If Tunnel Authentication is enabled, the hosts exchange control messages that include the host names and a shared secret. If the expected response and response received do not match, the tunnel will not be established.
To use Tunnel Authentication, you must also configure the lacHostName and lacSecret fields, which define the shared secret for a host.

Value

Description

none

Tunnel Authentication Disabled

hostname Authenticate Hostname

Default value = "'none'" useHiddenAVPs
If true, Attribute Value Pair hiding is enabled. This enables the use of hidden AVPs, Attribute-Value Pairs (parameters and values) within control messages that are protected by encryption. Hiding AVPs is done to hide sensitive control message data such as user passwords or user IDs. To use Hidden AVPs, you must also configure the Host and Secret fields, which define the shared secret for a host. Default value = "False"
EXAMPLE
$L2TP_1 l2tpRanges.clear

set L2TP_R1 [::IxLoad new ixNetL2tpRange]# ixNet objects needs to be added in the

388

IxLoad Tcl API Programming Guide

Network Stack API

list before they are configured!$L2TP_1 l2tpRanges.appendItem -object $L2TP_R1

$L2TP_R1 config \-authTimeout

10 \-lacToLNSMapping

"gateway" \-authRetries

20 \-authType

"none" \-sessionsPerTunnel

1 \-echoReqInterval

10 \-domainList

"Domain Groups" \-peerHostName

"ixia" \-useHiddenAVPs

false \-incrementBy

1 \-ncpRetries

3 \-serverPrimaryDnsAddress

"10.10.10.10" \-clientDnsOptions

"disableExtension" \-

enableHelloRequest

false \-lcpTermTimeout

15 \-baseLnsIp

"0.0.0.0" \-name

"L2TP-R1" \-lcpTermRetries

3 \-serverIIDIncr

1 \-rxConnectSpeed

268435456 \-clientBaseIID

"00:11:11:11:00:00:00:01" \-numSessions

1 \-

tunnelAuthentication

"none" \-serverBaseIID

"00:11:22:11:00:00:00:01" \-ncpTimeout

10 \-

tunnelDestinationIp

"10.10.10.1" \-ipv6PoolPrefixLen

48 \-l2tpAuthOptions

"L2PT Authentication Options" \-

clientIIDIncr

1 \-udpDestinationPort

1701 \-lacSecret

"ixia" \-ipIncrementOctet

4 \-ncpType

"IPv4" \-lnsIpList

"LNS IPs" \-authOptions

"Authentication Options" \-

offsetByte

0 \-enableRedial

false \-lcpRetries

3 \-maxRetransmitInterval

8 \-chapName

"user" \-useSequenceNoInPayload

false \-serverSecondaryDnsAddress

"11.11.11.11" \-basicOptions

"L2PT Options" \-lacHostName

"ixia" \-serverNetmask

"255.255.255.0" \-bearerCapability

"3" \-receiveWindowSize

10 \-serverDnsOptions

"disableExtension" \-

clientPrimaryDnsAddress

"8.8.8.8" \-lnsIpNumber

1 \-tunnelIncrementBy

"0.0.0.1" \-chapSecret

"secret" \-enableEchoReq

false \-lcpOptions

"LCP Options" \-serverNetmaskOptions

"disableExtension" \-

helloRequestInterval

60 \-clientNetmask

"255.0.0.0" \-initRetransmitInterval

2 \-clientNetmaskOptions

"disableExtension" \-sessionAllocMethod

"nextTunnel" \-

enableControlChecksum

true \-framingCapability

"1" \-useLengthBitInPayload

false \-ipv6PoolPrefix

"1:1:1::" \-enableEchoRsp

true \-serverIpIncr

"0.0.0.0" \-papPassword

"password" \-txConnectSpeed

268435456 \-ipv6AddrPrefixLen

64 \-redialInterval

10 \-clientBaseIp

"1.1.1.1" \-domainToIpList

"Domain To LNS" \-controlMsgsRetryCounter

30 \-

clientSecondaryDnsAddress

"9.9.9.9" \-enabled

true \-mtu

1492 \-serverBaseIp

"2.2.2.2" \-noCallTimeout

5 \-clientIpIncr

IxLoad Tcl API Programming Guide

389

Network Stack API

"0.0.0.1" \-dataPlaneOptions enableDataChecksum true \-lcpTimeout false \-bearerType 0 \-udpSourcePort 20 \-sessionStartId "user" \-controlPlaneOptions useOffsetBitInPayload 1 \-useMagic

"Data Plane Options" \false \-enableProxy
10 \-enableDomainGroups "2" \-offsetLength
1701 \-maxRedialAttempts 1 \-papUser "Control Plane Options" \-
false \-tunnelStartId true

$L2TP_R1 domainGroupList.clear

$L2TP_R1 lnsIpAddresses.clear

set IP_R4 [$L2TP_R1 getLowerRelatedRange "IpV4V6Range"]

$IP_R4 config \-count "IP-R4" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement "perSubnet" \-generateStatistics "10.10.0.5" \-ipType

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode
false \-ipAddress "IPv4"

set MAC_R8 [$IP_R4 getLowerRelatedRange "MacRange"]

$MAC_R8 config \-count "MAC-R8" \-enabled 1500 \-mac "00:00:00:00:00:01"

1 \-name true \-mtu "00:0A:0A:00:05:00" \-incrementBy

set VLAN_R1 [$IP_R4 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \-incrementStep 4094 \-name 1 \-innerUniqueCount true \-innerFirstId 1 \-priority 1 \-innerIncrementStep 2 \-innerEnable 1

1 \-uniqueCount "VLAN-R1" \-innerIncrement 4094 \-enabled 1 \-increment 1 \-firstId 1 \-idIncrMode false \-innerPriority

390

IxLoad Tcl API Programming Guide

SEE ALSO

Network Stack API

LNS

SYNOPSIS DESCRIPTION
Configures the L2TP LNS Parameters.
SUBCOMMANDS

OPTIONS
lacToLNSMapping This parameter defines how the LAC (DUT) accesses the LNS (Ixia port).

Value

Description

domain

Through Domain: The LAC maps to the LNS through one of the Domain-to-LNS mappings defined on the Domain to LNS dialog (access to this dialog is through the Domain to LNS column).

gateway Through Gateway: The LAC maps to the LNS through the gateway specified in the IP tab.

Default value = "'gateway'" lnsIpNumber The number of IP addresses that will be created to simulate an LNS. The default is 1, the minimum is 1, and the maximum is 65535. Default value = "1" baseLnsIp The first IP address that will be used to simulate an LNS. Default value = "'0.0.0.0'" incrementBy The amount of increase between each incremented IP address.

IxLoad Tcl API Programming Guide

391

Network Stack API

Default value = "1" ipIncrementOctet The octet in the Base LNS IP address that is incremented to create additional IP addresses. Octets are numbered 1 to 4 from left (most-significant) to right (least-significant). Default value = "4" lnsIpList Name of the list of LNS IP addresses. Default value = "'LNS IPs'" domainToIpList Default value = "'Domain To LNS'"
EXAMPLE
$L2TP_1 l2tpRanges.clear

set L2TP_R1 [::IxLoad new ixNetL2tpRange]# ixNet objects needs to be added in the list before they are configured!$L2TP_1 l2tpRanges.appendItem -object $L2TP_R1

$L2TP_R1 config \-authTimeout

10 \-lacToLNSMapping

"gateway" \-authRetries

20 \-authType

"none" \-sessionsPerTunnel

1 \-echoReqInterval

10 \-domainList

"Domain Groups" \-peerHostName

"ixia" \-useHiddenAVPs

false \-incrementBy

1 \-ncpRetries

3 \-serverPrimaryDnsAddress

"10.10.10.10" \-clientDnsOptions

"disableExtension" \-

enableHelloRequest

false \-lcpTermTimeout

15 \-baseLnsIp

"0.0.0.0" \-name

"L2TP-R1" \-lcpTermRetries

3 \-serverIIDIncr

1 \-rxConnectSpeed

268435456 \-clientBaseIID

"00:11:11:11:00:00:00:01" \-numSessions

1 \-

tunnelAuthentication

"none" \-serverBaseIID

"00:11:22:11:00:00:00:01" \-ncpTimeout

10 \-

tunnelDestinationIp

"10.10.10.1" \-ipv6PoolPrefixLen

48 \-l2tpAuthOptions

"L2PT Authentication Options" \-

clientIIDIncr

1 \-udpDestinationPort

1701 \-lacSecret

"ixia" \-ipIncrementOctet

4 \-ncpType

"IPv4" \-lnsIpList

"LNS IPs" \-authOptions

"Authentication Options" \-

offsetByte

0 \-enableRedial

false \-lcpRetries

3 \-maxRetransmitInterval

8 \-chapName

"user" \-useSequenceNoInPayload

false \-serverSecondaryDnsAddress

"11.11.11.11" \-basicOptions

392

IxLoad Tcl API Programming Guide

Network Stack API

"L2PT Options" \-lacHostName

"ixia" \-serverNetmask

"255.255.255.0" \-bearerCapability

"3" \-receiveWindowSize

10 \-serverDnsOptions

"disableExtension" \-

clientPrimaryDnsAddress

"8.8.8.8" \-lnsIpNumber

1 \-tunnelIncrementBy

"0.0.0.1" \-chapSecret

"secret" \-enableEchoReq

false \-lcpOptions

"LCP Options" \-serverNetmaskOptions

"disableExtension" \-

helloRequestInterval

60 \-clientNetmask

"255.0.0.0" \-initRetransmitInterval

2 \-clientNetmaskOptions

"disableExtension" \-sessionAllocMethod

"nextTunnel" \-

enableControlChecksum

true \-framingCapability

"1" \-useLengthBitInPayload

false \-ipv6PoolPrefix

"1:1:1::" \-enableEchoRsp

true \-serverIpIncr

"0.0.0.0" \-papPassword

"password" \-txConnectSpeed

268435456 \-ipv6AddrPrefixLen

64 \-redialInterval

10 \-clientBaseIp

"1.1.1.1" \-domainToIpList

"Domain To LNS" \-controlMsgsRetryCounter

30 \-

clientSecondaryDnsAddress

"9.9.9.9" \-enabled

true \-mtu

1492 \-serverBaseIp

"2.2.2.2" \-noCallTimeout

5 \-clientIpIncr

"0.0.0.1" \-dataPlaneOptions

"Data Plane Options" \-

enableDataChecksum

false \-enableProxy

true \-lcpTimeout

10 \-enableDomainGroups

false \-bearerType

"2" \-offsetLength

0 \-udpSourcePort

1701 \-maxRedialAttempts

20 \-sessionStartId

1 \-papUser

"user" \-controlPlaneOptions

"Control Plane Options" \-

useOffsetBitInPayload

false \-tunnelStartId

1 \-useMagic

true

$L2TP_R1 domainGroupList.clear

$L2TP_R1 lnsIpAddresses.clear

set IP_R4 [$L2TP_R1 getLowerRelatedRange "IpV4V6Range"]

$IP_R4 config \-count "IP-R4" \-gatewayAddress true \-autoMacGeneration 1460 \-incrementBy 16 \-gatewayIncrement "perSubnet" \-generateStatistics "10.10.0.5" \-ipType

1 \-name "0.0.0.0" \-enabled true \-mss "0.0.0.1" \-prefix "0.0.0.0" \-gatewayIncrementMode
false \-ipAddress "IPv4"

set MAC_R8 [$IP_R4 getLowerRelatedRange "MacRange"]

IxLoad Tcl API Programming Guide

393

Network Stack API

$MAC_R8 config \-count "MAC-R8" \-enabled 1500 \-mac "00:00:00:00:00:01"

1 \-name true \-mtu "00:0A:0A:00:05:00" \-incrementBy

set VLAN_R1 [$IP_R4 getLowerRelatedRange "VlanIdRange"]

$VLAN_R1 config \-incrementStep 4094 \-name 1 \-innerUniqueCount true \-innerFirstId 1 \-priority 1 \-innerIncrementStep 2 \-innerEnable 1
SEE ALSO

1 \-uniqueCount "VLAN-R1" \-innerIncrement 4094 \-enabled 1 \-increment 1 \-firstId 1 \-idIncrMode false \-innerPriority

L2tp Plugin Example
This section shows an example of how to create an L2TP plugin in the Tcl API.

394

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

395

Network Stack API

396

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

397

Network Stack API

398

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

399

Network Stack API

400

IxLoad Tcl API Programming Guide

GTPSPlugin
SYNOPSIS
DESCRIPTION
Configures a GTP SGSN plugin.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins. Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" sgsnRangeList List of emulated SGSNs. This must be a GTPSRange object. Default value = "None" ueRangeList List of emulated UEs. This must be a GTPSUERange object. Default value = "None" ixGTPVersion GTP version. Default value = "'3.20.1.51'"
IxLoad Tcl API Programming Guide

Network Stack API 401

Network Stack API

EXAMPLE
set GTP_1 [::IxLoad new ixNetGTPSPlugin] # ixNet objects needs to be added in the list before they are configured! $MAC_VLAN_5 childrenList.appendItem -object $GTP_1

$GTP_1 config \ -ixGTPVersion -name

"3.20.1.79" \ "GTP-1"

$GTP_1 childrenList.clear

$GTP_1 extensionList.clear

$MAC_VLAN_5 extensionList.clear

$Ethernet_1 extensionList.clear

SEE ALSO

GTP SGSN Plugin
This section describes the GTP SGSN plugin.
GTP GGSN Plugin
This section describes the GTP GGSN plugin.

402

IxLoad Tcl API Programming Guide

eGTP Plugin
This section describes the eGTP plugin.
eGTP Plugin MME eNB S1 S11 commands
This section describes the eGTP MME eNodeB S1 S11 settings.
eGTP Plugin Network Commands
This section describes the eGTP network commands.
eGTP eGTP PGW S5 S8 commands
This section describes the eGTP PGW S5 S8 commands.
eGTP eGTP SGSN RNC S4 commands
This section describes the eGTP SGSN RNC S4 commands.
eGTP SGW S1 S11 commands
This section describes the eGTP SGW S1 S11 commands.
eGTP Plugin DNS commands
This section describes the eGTP plugin DNS settings.
eGTP Base objects
This section describes the eGTP base (common) objects.

Network Stack API

IxLoad Tcl API Programming Guide

403

Network Stack API
DSLite Plugin
This section describes the DSLite plugin.
DSLite Range
SYNOPSIS
DESCRIPTION
Creates a DSLite range.
SUBCOMMANDS
OPTIONS
startAddress The IPv4 Address for the first emulated host in this range of addresses. The default value is 192.168.0.1. incrementBy The step value for incrementing the host IP addresses in the range. The default value is 0.0.0.1. sameHostsPerTunnel You use this option to specify whether or not the host IPv4 addresses will be duplicated on each emulated home gateway. If enabled: If this option is enabled, the same set of IPv4 addresses will be configured behind each tunnel. For example:
l Same Hosts Per Tunnel is enabled. l Host Start Address =192.168.0.1. l Address Increment = 0.0.0.1. l B4 Count = 2. l Hosts per B4 = 2.

404

IxLoad Tcl API Programming Guide

Network Stack API
As a result, each B4 (home gateway) will have have the following hosts behind it: 192,168.0.1, 192.168.0.2. If disabled: If this option is not enabled, IxLoad will configure a set of unique IPv4 addresses across the home gateways. In this case, the test configuration will not contain any duplicate IPv4 addresses. For example:
l Same Hosts Per Tunnel is disabled. l Host Start Address =192.168.0.1. l Address Increment = 0.0.0.1. l B4 Count = 2. l Hosts per B4 = 2. As a result, the first B4 will be configured with hosts 192.168.0.1 and 192.168.0.2, and the second B4 will be configured with hosts 192.168.0.3 and 192.168.0.4. API values = true (default), false tunnelDst The address of the tunnel destination (the AFTR address). Set this parameter to match the address of the interface on the DUT being used in the test. The default value is ::c612:65. ipType A read-only value that shows the IP version used for the emulated hosts (behind the home gateway). The only valid value is IPv4. tunnelCount A read-only value that shows the number of emulated B4 elements configured on the IP stack element. API Default = 1 enabled If enabled, the DSLite address range is enabled for use in the configuration. If disabled, the range will not be validated, nor will it be configured. Each DSLite address range is enabled by default. API default = true hostCount A read-only value that shows the total number of emulated hosts that will be carried by the tunnel configured for this range.

IxLoad Tcl API Programming Guide

405

Network Stack API
The value is calculated as the number of hosts that you specify (Hosts Per B4) multiplied by the number of B4 elements configured on the IP stack element (shown in the B4 Count parameter). API default = 10 mss The Maximum Segment Size. The MSS is the largest amount of data, specified in bytes, that the IP device can transmit as a single, unfragmented unit. The TCP MSS equals the MTU minus the TCP header size minus the IP header size. IxLoad supports jumbo frames. Therefore the maximum value is 9460 (9500 minus 40). The default value is 1440. API default = 1440 tunnelDstIncrementBy Amount to increment the AFTR address (tunnelDst parameter). API default = "::0" useGatewayAsTunnelDst If enabled, the IPv6 gateway address is used as the tunnel destination (the AFTR address, configured in the tunnelDst parameter). API default = false hostsPerTunnel The number of desired emulated hosts for this range. The default value is 10. API default = 10
EXAMPLE
SEE ALSO
Global Services Plugins
This section describes the global plugins.

406

IxLoad Tcl API Programming Guide

Network Stack API
Filter Plugin
SYNOPSIS
DESCRIPTION
Configures a filter to filter traffic on an Ixia port. Filters are applied on all ports in the network group.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" auto If true, filters will be configured automatically to allow traffic for protocols defined in the current stack. Default value = "True" all If true, all traffic is allowed through; no traffic is filtered out. Default value = "False" isis If true, ISIS traffic is allowed to pass through. Default value = "False" ip A list of IP protocol names or numbers to enable. Numbers are expressed in decimal or 0x<hex digits> format. Ranges may be separated by a dash ( - ). A blank entry signifies no IP protocol filtering. Default value = "''" (null) tcp

IxLoad Tcl API Programming Guide

407

Network Stack API

A list of TCP source or destination well-known port names or port numbers to enable. Ranges may be separated by a dash ( - ). A blank entry signifies no UDP port filtering. Default value = "''" (null) udp
A list of UDP source or destination well-known port names or port numbers to enable. Ranges may be separated by a dash ( - ). A blank entry signifies no UDP port filtering. Default value = "''" (null) mac
A list of MAC type names or numbers to enable. Numbers are expressed in decimal or 0x<hex digits> format. Ranges may be separated by a dash ( - ). A blank entry signifies no MAC type filtering. Default value = "''" (null) icmp
A list of ICMP type names or numbers to enable. Numbers are expressed in decimal or 0x<hex digits> format. Ranges may be separated by a dash ( - ). A blank entry signifies no ICMP type filtering. Default value = "''" (null)
EXAMPLE
set Filter [::IxLoad new ixNetFilterPlugin]# ixNet objects needs to be added in the list before they are configured!$Network1 globalPlugins.appendItem -object $Filter

$Filter config \-all false \-name true \-udp "" \-mac "" \-icmp
SEE ALSO

false \-isis "Filter" \-auto "" \-tcp "" \-ip ""

Gratuitous ARP Plugin

SYNOPSIS

DESCRIPTION
Enables the Grat ARP plugin.

408

IxLoad Tcl API Programming Guide

Network Stack API

The Grat ARP global service allows you to configure a test to broadcast a gratuitous ARP request packet to all connected interfaces before starting the test. In this way, the emulated network nodes advertise their own addresses, ensuring that the DUT has valid ARP cache entries.
In a gratuitous ARP packet, the ARP Sender Protocol Address and ARP Target Protocol Address are both set to the IP address of the source host, and the ARP Sender Hardware Address is set to the link-layer address of the source host.
SUBCOMMANDS

OPTIONS
name Name of the instance of the plugin. Default value = "None" enabled If true, the Grat ARP service is enabled. Default value = "True"

EXAMPLE
set GratARP [::IxLoad new ixNetGratArpPlugin] # ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $GratARP

$GratARP config \ -enabled -name
SEE ALSO

true \ "GratARP"

DNS Plugin

IxLoad Tcl API Programming Guide

409

Network Stack API
SYNOPSIS
DESCRIPTION
Configures the DNS global servers.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" domain The DNS domain for the host. Default value = "''" (null) timeout The amount of time an entry should remain in cache memory before being flushed. Default value = "5" nameServerList Name of the list of DNS servers to be used. Default value = "None" searchList Name of the list of DNS servers to be searched. Default value = "None" hostList Name of the list of DNS hosts to be used. Default value = "None"
EXAMPLE
set DNS [::IxLoad new ixNetDnsPlugin] # ixNet objects needs to be added in the list before they are configured!

410

IxLoad Tcl API Programming Guide

$Network1 globalPlugins.appendItem -object $DNS

$DNS config \ -domain -name -timeout

"ixiacom.com" \ "DNS" \ 5

$DNS hostList.clear

set my_ixNetDnsHost [::IxLoad new ixNetDnsHost] # ixNet objects needs to be added in the list before they are configured! $DNS hostList.appendItem -object $my_ixNetDnsHost

$my_ixNetDnsHost config \

-alias2

"localhost-alias2" \

-hostName

"localhost" \

-alias1

"localhost-alias1" \

-hostIP

"127.0.0.1"

$DNS searchList.clear

set my_ixNetDnsSearch [::IxLoad new ixNetDnsSearch] # ixNet objects needs to be added in the list before they are configured! $DNS searchList.appendItem -object $my_ixNetDnsSearch

$my_ixNetDnsSearch config \

-search

".com"

$DNS nameServerList.clear

Network Stack API

IxLoad Tcl API Programming Guide

411

Network Stack API

set my_ixNetDnsNameServer [::IxLoad new ixNetDnsNameServer] # ixNet objects needs to be added in the list before they are configured! $DNS nameServerList.appendItem -object $my_ixNetDnsNameServer

$my_ixNetDnsNameServer config \

-nameServer

"127.0.0.1"

SEE ALSO

TCP Plugin
SYNOPSIS
DESCRIPTION
Configures the global settings for a TCP plugin.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" tcp_abort_on_overflow Reserved. Default value = "False" tcp_adv_win_scale Reserved. Default value = "2"

412

IxLoad Tcl API Programming Guide

Network Stack API
adjust_tcp_buffers If set to true, for certain test configurations, the values configured for the TCP read and write buffer sizes are ignored and values selected by IxLoad are used instead. If set to false, buffer size adjustment is disabled and the configured values for the TCP read and write buffer sizes are used. Default value = "true" tcp_app_win Reserved. Default value = "31" tcp_bic Reserved. Default value = "0" tcp_bic_fast_convergence Reserved. Default value = "1" tcp_bic_low_window
Default value = "14" tcp_dsack Reserved. Default value = "True" tcp_ecn If true, Explicit Congestion Notification is enabled. Default value = "False" tcp_fack Reserved. Default value = "True" tcp_fin_timeout FIN Timeout. The number of seconds the client or server waits to receive a final FIN before closing a socket. A FIN Timeout is usually used to prevent denial-of-service attacks. Default value = "60" tcp_frto

IxLoad Tcl API Programming Guide

413

Network Stack API
Fragment Reassembly Timer. ReThe number of seconds the TCP should keep IP fragments before discarding them. Default value = "0" tcp_keepalive_intvl The number of seconds between repeated keep-alive probes. Default value = "75" tcp_keepalive_probes Number of keep-alive probes sent out before determining that a link is down. Default value = "9" tcp_keepalive_time If a link has no activity on it for the time specified, keep-alive probes are sent to determine if the link is still up. The Keep-alive Time value is expressed in seconds. Default value = "7200" tcp_low_latency Reserved. Default value = "0" tcp_max_orphans Reserved. Default value = "8192" tcp_max_syn_backlog Reserved. Default value = "1024" tcp_max_tw_buckets Reserved. Default value = "180000" tcp_mem_low Reserved. Default value = "24576" tcp_mem_pressure Reserved.

414

IxLoad Tcl API Programming Guide

Network Stack API
Default value = "32768" tcp_mem_high Reserved. Default value = "49152" tcp_moderate_rcvbuf Reserved. Default value = "0" tcp_no_metrics_save Reserved. Default value = "False" tcp_orphan_retries Reserved. Default value = "0" tcp_reordering Reserved. Default value = "3" tcp_retrans_collapse Default value = "True" tcp_retries1 Retransmit Retries 1. The number of times TCP will attempt to retransmit a segment on an established connection. If the number of retransmit attempts exceeds this value, TCP requests that the network layer update the route. The default is the RFC 1122 specified minimum of 3 retransmissions. Default value = "3" tcp_retries2 Retransmit Retries 2. If the number of retransmissions of the same segment reaches this threshold, TCP closes the connection. The default value is 15, which corresponds to a duration of approximately between 13 to 30 minutes, depending on the retransmission timeout. Default value = "15" tcp_rfc1337 Reserved. Default value = "False"

IxLoad Tcl API Programming Guide

415

Network Stack API
tcp_rmem_min Reserved. Default value = "4096" tcp_rmem_default Reserved. Default value = "262144" tcp_rmem_max Reserved. Default value = "262144" tcp_sack If true, RFC 2018 TCP Selective Acknowledgements are enabled. Default value = "True" tcp_stdurg Reserved. Default value = "False" tcp_synack_retries Number of times an un-acknowledged SYN-ACK for a passive TCP connection will be re-transmitted. Default value = "5" tcp_syn_retries Number of times an un-acknowledged SYN for an active TCP connection will be re-transmitted. Default value = "5" tcp_timestamps If true, the client or server inserts a timestamp into each packet. Note: Enabling the TCP Timestamp option adds 12 bytes to the TCP header. This has the effect of reducing the effective MSS configured. Default value = "True" tcp_tw_recycle If true, fast recycling of TIME-WAIT sockets is enabled. Enabling this option is not recommended when working with NAT (Network Address Translation). Default value = "False"

416

IxLoad Tcl API Programming Guide

Network Stack API
tcp_tw_reuse If true, allows the reuse of TIME-WAIT sockets for new connections.Enable this option only if you are certain that it is safe from a protocol viewpoint. Default value = "False" tcp_vegas_alpha Reserved. Default value = "2" tcp_vegas_beta Reserved. Default value = "6" tcp_vegas_cong_avoid Reserved. Default value = "0" tcp_vegas_gamma Reserved. Default value = "2" tcp_westwood Reserved. Default value = "0" tcp_window_scaling If true, RFC 1323 TCP window scaling is enabled. The TCP Window Scaling feature allows the use of a large window (greater than 64K) on a TCP connection, if the other end supports it. Default value = "True" ip_no_pmtu_disc Reserved. Default value = "False" tcp_wmem_min Reserved. Default value = "4096" tcp_wmem_default

IxLoad Tcl API Programming Guide

417

Network Stack API
Reserved. Default value = "262144" tcp_wmem_max Reserved. Default value = "262144" tcp_ipfrag_time Fragment Reassembly Timer. The number of seconds the TCP should keep IP fragments before discarding them. Default value = "30" tcp_port_min Minimum TCP source port value. The source port specifies which ports to use for client connections. The Min value specifies the lower bound (the lowest permissible port number). Default value = "1024" tcp_port_max Maximum TCP source port value. The Maximum source port value specifies the upper bound (the highest permissible port number). Default value = "65535" tcp_rto_min Minimum Retransmission Timeout value. Default value = "200" tcp_rto_max Maximum Retransmission Timeout value. Default value = "120000" llm_hdr_gap The number of bytes separating packets in a stream. The default value is 8, the minimum is 8, and the maximum is 8191. tcp_reordering The number of duplicate ACKs that are required to indicate that a packet was lost. Changing this value is not recommended. The default is 3, the minimum is 0, and the maximum is 255. tcp_max_tw_buckets

418

IxLoad Tcl API Programming Guide

Network Stack API

The maximum number of sockets that can be in the TIME_WAIT state in the system. The purpose of this limit is to prevent simple DoS attacks. If this number is exceeded, the socket is closed and a warning is displayed. The default is180,000 and the minimum is 0. tcp_tw_rfc1323_strict Enables RFC 1323 strict behavior. Specifically, if a packet has TSOPT set, but does not have the ACK bit set, the TSecr field in the TSOPT will be zero in that packet. API Values = true, false (default) udp_port_randomization Enables UDP port randomization. If this option is set, each new sockets will be bound to a random port. API Values = true, false (default)
EXAMPLE
set TCP [::IxLoad new ixNetTCPPlugin]# ixNet objects needs to be added in the list before they are configured!$Network1 globalPlugins.appendItem -object $TCP

$TCP config \-tcp_bic true \-tcp_retries2 3 \-tcp_keepalive_time 0 \-tcp_rfc1337 30 \-tcp_rto_max 2 \-tcp_ecn 0 \-tcp_rto_min 3 \-tcp_vegas_cong_avoid 7200 \-tcp_rmem_max 0 \-tcp_max_tw_buckets 4096 \-tcp_low_latency 4096 \-tcp_adv_win_scale 4096 \-tcp_port_min false \-tcp_port_max 60 \-tcp_no_metrics_save true \-tcp_mem_high 0 \-tcp_app_win false \-tcp_window_scaling 8192 \-tcp_mem_pressure 5 \-name 1024 \-tcp_mem_low true \-tcp_retrans_collapse 4096 \-tcp_keepalive_probes false \-tcp_tw_reuse

0 \-tcp_tw_recycle 5 \-tcp_retries1 75 \-tcp_moderate_rcvbuf false \-tcp_ipfrag_time 60000 \-tcp_vegas_alpha false \-tcp_westwood 1000 \-tcp_reordering 0 \-tcp_keepalive_intvl 262144 \-tcp_orphan_retries 180000 \-tcp_wmem_default 0 \-tcp_rmem_min 2 \-tcp_wmem_min 1024 \-tcp_stdurg
65535 \-tcp_fin_timeout false \-tcp_dsack
49152 \-tcp_frto 31 \-ip_no_pmtu_disc
false \-tcp_max_orphans 32768 \-tcp_syn_retries "TCP" \-tcp_max_syn_backlog 24576 \-tcp_fack true \-tcp_rmem_default 9 \-tcp_abort_on_overflow
false \-tcp_wmem_max

IxLoad Tcl API Programming Guide

419

Network Stack API
262144 \-tcp_vegas_gamma 5 \-tcp_timestamps 6 \-tcp_sack 1 \-tcp_bic_low_window
SEE ALSO

2 \-tcp_synack_retries true \-tcp_vegas_beta true \-tcp_bic_fast_convergence 14

Routes Plugin
SYNOPSIS
DESCRIPTION
Configures Routes global service, which allows the network group to be associated with a set of IP routes.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" routes List of routes. This list must be a RouteList object. Default value = "None"
EXAMPLE
set Routes_1 [::IxLoad new ixNetRoutesPlugin] # ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $Routes_1

420

IxLoad Tcl API Programming Guide

Network Stack API

$Routes_1 config \ -name

"Routes-1"

$Routes_1 routes.clear
SEE ALSO

Dynamic Control Plane plugin
SYNOPSIS
DESCRIPTION
Configures the IxLoad Dynamic Control Plane settings.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" teardownInterfaceWithUser If true, the interfaces will come up with the users and will go down when users go down. This option is enabled only if the interfaceBehavior is true. Default value = "False" interfaceBehavior If true, enables dynamic control plane. The interfaces are created on demand but are not destroyed until the test ends. Default value = "0"
EXAMPLE
set Settings [::IxLoad new ixNetIxLoadSettingsPlugin]

IxLoad Tcl API Programming Guide

421

Network Stack API

# ixNet objects needs to be added in the list before they are configured! $Network1 globalPlugins.appendItem -object $Settings

$Settings config \

-teardownInterfaceWithUser

true \

-name

"Settings" \

-interfaceBehavior

1

SEE ALSO

Mobile Subscribers Plugins
This section describes the Mobile Subscriber plugin.
MobileSubscribersPlugin
SYNOPSIS
DESCRIPTION
Creates a network stack element representing 3G mobile subscribers.
SUBCOMMANDS
OPTIONS
name Name of the instance of the plugin. Default value = "None" childrenList Name of the list of next-lower layer plugins.

422

IxLoad Tcl API Programming Guide

Network Stack API
Default value = "None" extensionList Name of the list of protocol extensions. Default value = "None" rangeList List of MobileSubscriber ranges. New elements can be added to the using appendItem. The elements of the list can be modified, but the list cannot be replaced. Default value="None".
EXAMPLE
set Mobile_Subscribers_1 [::IxLoad new ixNetMobileSubscribersPlugin] # ixNet objects needs to be added in the list before they are configured! $Emulated_Router_1 childrenList.appendItem -object $Mobile_Subscribers_1
$Mobile_Subscribers_1 childrenList.clear
$Mobile_Subscribers_1 extensionList.clear
SEE ALSO
Radius Plugin
SYNOPSIS
DESCRIPTION
Defines a Radius plugin. A Radius plugin is an extension to a Mobile Subscribers plugin.
SUBCOMMANDS

IxLoad Tcl API Programming Guide

423

Network Stack API
OPTIONS
name Name of the instance of the plugin. Default value = "None" rangeList List or Radius ranges. Default value = "None"
EXAMPLE
set RADIUS_1 [::IxLoad new ixNetRadiusPlugin] # ixNet objects needs to be added in the list before they are configured! $Mobile_Subscribers_1 extensionList.appendItem -object $RADIUS_1
$Emulated_Router_1 extensionList.clear
$MAC_VLAN_2 extensionList.clear
$Ethernet_1 extensionList.clear
$MAC_VLAN_11 extensionList.clear
$Ethernet_1 extensionList.clear
################################################# # Setting the ranges starting with the plugin on top of the stack ################################################# $Mobile_Subscribers_1 rangeList.clear
SEE ALSO

424

IxLoad Tcl API Programming Guide

Network Stack API
Mobile Subscribers Example
This section shows an example of how to create a Mobile Subscribers plugin in the Tcl API.

IxLoad Tcl API Programming Guide

425

Network Stack API

426

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

427

Network Stack API

428

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

429

Network Stack API

430

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

431

Network Stack API

432

IxLoad Tcl API Programming Guide

Network Stack API

IxLoad Tcl API Programming Guide

433

This page intentionally left blank.

434

IxLoad Tcl API Programming Guide

AppReplay
The IxLoad Application Replay API consists of the Application Replay Peer Agent and its commands.

Objectives
The objectives (userObjective) you can set for Application Replay are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers l peerCount (displays as Initiator Peer Count in the GUI) l connectionRate l concurrentConnections l throughputMbps l throughputKbps l throughputGbps l transactionRate

IxLoad Tcl API Programming Guide

435

AppReplay

Application Replay Peer Agent
Application Replay Peer Agent - create an Application Replay agent
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set AppReplayPeer1 [$Traffic1_Network1 activityList.appendItem options...] $AppReplayPeer1 agent.config
DESCRIPTION
An ApplicationReplay peer agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcomfrom the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time. concurrentObjectiveBehaviour An optional parameter that is used to achieve the concurrent connections number to the configured value.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity AppRe-

playPeer1 of NetTraffic

Traffic1@Network1#################################################set Activity_AppRe-

playPeer1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"AppReplay Peer" ]$Activity_AppReplayPeer1 agent.config \-

concurrentObjectiveBehaviour

1 \-enable

true \-name

"AppReplayPeer1"

436

IxLoad Tcl API Programming Guide

SEE ALSO
ixNetTraffic

AppReplay

IxLoad Tcl API Programming Guide

437

AppReplay

Flow Definition
FlowDefinition--Defines a remote peer activity and port.

SYNOPSIS

set ServerTraffic1_ServerNetwork1 [::IxLoad new ixNetTraffic]

set Activity_AppReplayPeer1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"AppReplay Peer" ]

$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem

DESCRIPTION
An option is added to the list of protocol flows using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None

OPTIONS
None.

EXAMPLE
Activity_AppReplayPeer1 agent.pm.protocolFlows.clear$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \ -id "CustomFlowTCP" \ -captureFile "C:/Captures/http1user.cap" \ -sessionSelectionLogic 0 \ -remotePeer "Traffic1_AppReplayPeer1" \ -responderPort80 -filt_InitiatorIP"198.18.0.1" \ -filt_ResponderPort"80" \ -filt_InitiatorPort "6140" \ -filt_ResponderIP"198.18.0.101" \ -overrideResponderPort false \

SEE ALSO
CustomFlowTCP

438

IxLoad Tcl API Programming Guide

AppReplay
CustomFlowETH
Custom FlowETH -- Replays an Ethernet flow.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
commandType Type of AppReplay command. Default = "CustomFlowEthernet" cmdName Name of the command. Default = "CustomFlow - ETH <number>" captureFile Capture file, in cap or pcap format, that the TCP session is replayed from. Default = "" (null) interPacketTimeMultiplyingFactor Amount of multiplication applied to inter-packet time interval in order to increase or decrease the replay speed Min = 0.0, Max = 1000, Default = "1.0" maintainInterPacketTime If true, AppReplay attempts to maintain the same timing between consecutive packets in the replayed traffic as in the original flow. If false, AppReplay does not attempt to reproduce the timing between packets in the flow. Default=false.

IxLoad Tcl API Programming Guide

439

AppReplay

EXAMPLE

$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \

-commandType

"CustomFlowEthernet" \

-interPacketTimeMultiplyingFactor 1.0 \

-maintainInterPacketTime

false \

-cmdName

"Custom Flow - ETH 5" \

-captureFile

""

SEE ALSO
FlowDefinition

440

IxLoad Tcl API Programming Guide

AppReplay

CustomFlowTCP
Custom FlowTCP --Specifies a custom TCP session, defined by a capture file, that is replayed between the initiator and the responder host.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list of using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
captureFile Capture file, in pcap format, that the TCP session is replayed from. sessionSelectionLogic The session logic determining the point in the capture file where replay of the TCP session starts from.

Value Description

0

Follow First SYN. Replay starts from the first SYN packet found in the capture file.

The initiator and responder addresses and port numbers are taken from the source IP, destination IP, source port, and destination port (respectively) in the first TCP SYN packet.

1

User-defined Filter. Replay starts from the first SYN packet found in the capture file that

matches the filter criteria. To configure the filter, the initiator and responder addresses and

port numbers have to be defined.

filt_InitiatorIP The initiator IP in case a user-defined filter has been chosen. filt_ResponderIP The responder IP in case a user-defined filter has been chosen. filt_InitiatorPort The initiator port in case a user-defined filter has been chosen. filt_ResponderPort

IxLoad Tcl API Programming Guide

441

AppReplay

The responder port in case a user-defined filter has been chosen. overrideResponderPort If true, enables you to override the responder port number defined in the FlowDefinition object. If false, the responder port is set according to the filter configuration. max_persistent_requests Configures the number of flow replays that can occur over a single TCP connection.

Value Description

0

Maximum Possible. All iterations take place over the same connection, for as long as the

connection remains up.

1

Up to. You specify the number of iterations that can occur over a single connection in the

persistent_requests_count parameter.

persistent_requests_count
If max_persistent_requests = 1, this is the number of requests that can occur over a single connection. Min="0", max="2147483647", default="1". Zero value signifies maximum possible.

EXAMPLE
Activity_AppReplayPeer1 agent.pm.protocolFlows.clear
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \ -id "CustomFlowTCP" \ -captureFile "C:/Captures/http1user.cap" \ -sessionSelectionLogic 0 \ -remotePeer "Traffic1_AppReplayPeer1" \ -responderPort80 -filt_InitiatorIP"198.18.0.1" \ -filt_ResponderPort"80" \ -filt_InitiatorPort "6140" \ -filt_ResponderIP"198.18.0.101" \ -overrideResponderPort false

442

IxLoad Tcl API Programming Guide

SEE ALSO
FlowDefinition

AppReplay

IxLoad Tcl API Programming Guide

443

AppReplay
CustomFlowIP
Custom FlowIP -- Specifies a custom IP session, defined by a capture file, that is replayed between the initiator and the responder host.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list of using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
commandType Name of the command. Default = "CustomFlowIP" flow_name Name of the flow. Default = "" (null) cycleThroughInitiatorPortUDP If true and this Custom Flow-IP command is run more than once during a test, different UDP port numbers are used each time the command runs. Specify the UDP port range in udpPortRange. Default = "false" cycleThroughInitiatorPortTCP If true and this Custom Flow-IP command is run more than once during a test, different TCP port numbers are used each time the command runs. Specify the TCP port range in tcpPortRange. Default = "false" captureFile Capture file, in pcap format, that the TCP session is replayed from. Default = "" (null) destination Destination of the traffic from the initiator:
l If the destination is a DUT, this is the IP address of the DUT. l If the destination is another AppReplay peer, this is the name of the AppReplay activity. Default = "None" packetSelectionLogic

444

IxLoad Tcl API Programming Guide

AppReplay

The packet selection logic determining the point in the capture file where replay of the TCP session starts from.

Value

Description

0

Follow first IP Packet. Replay starts from the first IP packet found in the capture file.

(Default)

1

User-defined Filter. Replay starts from the first IP packet found in the capture file that

matches the filter criteria. To configure the filter, define the initiator and responder IP

addresses and port numbers (filt_InitiatorIP, filt_ResponderIP, filt_Ini-

tiatorPort, and filt_ResponderPort) .

filt_InitiatorIP
If sessionSelectionLogic=1, this parameter defines the initiator IP of the packet to begin playback from. Default=""(null). filt_ResponderIP
If sessionSelectionLogic=1, this parameter defines the responder IP of the packet to begin playback from. Default=""(null). filt_InitiatorPort
If sessionSelectionLogic=1, this parameter defines the initiator port of the packet to begin playback from. Specify "\[ANY\]" for any port. Default=""(null). filt_ResponderPort
If sessionSelectionLogic=1, this parameter defines the responder port of the packet to begin playback from. Specify "\[ANY\]" for any port. Default=""(null). maintainInterPacketTime
If true, AppReplay attempts to maintain the same timing between consecutive packets in the replayed traffic as in the original flow. If false, AppReplay does not attempt to reproduce the timing between packets in the flow. Default=false. interPacketTimeMultiplyingFactor
Amount of multiplication applied to inter-packet time interval in order to increase or decrease the replay speed Min = 0.0, Max = 1000, Default = "1.0" overrideResponderPortTCP
If true, you can override the responder port number defined in the FlowDefinition object. If false, the responder port is set according to the filter configuration. Default=false. responderPortTCP

IxLoad Tcl API Programming Guide

445

AppReplay

TCP port number that responding peer listens on. Default=10000. By default, this parameter is read-only. If overrideResponderPortTCP is true, you can change the port number. If you change the port number, the responding peer automatically updates itself with the new port number. overrideResponderPortUDP
If true, you can override the responder port number defined in the FlowDefinition object. If false, the responder port is set according to the filter configuration. Default=false. preserveIPHeader
If true, the IP header is preserved. Default = false responderPortUDP
UDP port number that responding peer listens on. Default=10000 By default, this parameter is read-only. If overrideResponderPortUDP is true, you can change the port number. If you change the port number, the responding peer automatically updates itself with the new port number. tcpPortRange
Range of TCP port numbers used for traffic from this peer. Default="" (null) udpPortRange
Range of UDP port numbers used for traffic from this peer. Default="" (null) useIPAdressFromCaptureFile
If true, the replayed traffic uses the same IP addresses as the original flow in the capture file. Defaultt=false

EXAMPLE

$Activity_AppReplayPeer1 agent.pm.protocolFlows.clear

$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \

-id

"CustomFlowIP" \

-cycleThroughInitiatorPortUDP

false \

-flow_name

"CustomFlow3" \

-filt_InitiatorIP

"" \

-udpPortRange

"" \

446

IxLoad Tcl API Programming Guide

-packetSelectionLogic

0\

-cycleThroughInitiatorPortTCP

false \

-destination

"None" \

-overrideResponderPortTCP

false \

-tcpPortRange

"" \

-maintainInterPacketTime

false \

-overrideResponderPortUDP

false \

-responderPortUDP

10000 \

-responderPortTCP

10000 \

-filt_ResponderPort

"" \

-captureFile

"" \

-filt_ResponderIP

"" \

-useIPAddressFromCaptureFile

false \

-filt_InitiatorPort

""

SEE ALSO
FlowDefinition

AppReplay

IxLoad Tcl API Programming Guide

447

AppReplay

LoopBeginCommand
LoopBeginCommand -- Specifies the beginning of a command loop.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list of using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
id Name of the command. Default = "LoopBeginCommand" LoopCount Number of times the loop is executed. Default = 5. Min=0, Max = 2147483647.

EXAMPLE

$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \

-id

"LoopBeginCommand" \

-LoopCount

5

SEE ALSO

448

IxLoad Tcl API Programming Guide

AppReplay

LoopEndCommand
LoopEndCommand -- Specifies the end of a command loop.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list of using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
id Name of the command. Default = "LoopEndCommand"

EXAMPLE

$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \

-id

"LoopEndCommand"

SEE ALSO

IxLoad Tcl API Programming Guide

449

AppReplay

Think
THINK -- Pauses execution of a command loop.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list of using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
id Name of the command. Default = "THINK". minimumInterval Minimum length of time to pause, in ms. Default = 1000. Min = 1, Max = 2147483647. maximumInterval Maximum length of time to pause, in ms. Default = 1000. Min = 1, Max = 2147483647.

EXAMPLE

$Activity_AppReplayPeer1 agent.pm.protocolFlows.appendItem \

-id

"LoopEndCommand"

SEE ALSO

450

IxLoad Tcl API Programming Guide

AppReplay

availableTosList
availableTosList -- Create a list of available TOS choices.
SYNOPSIS
$Activity_<activity name> agent.pm.availableTosList.appendItem
DESCRIPTION
An option is added to the availableTosList using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
id Name of the list. Default = "AvailableTypeOfService". tos_value TOS value to be added to the list. Default = "Best Effort 0x0". If you want to specify the standard choices that are in the GUI, you can use a string representation. The choices are:

Value

Description

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

EXAMPLE
$Activity_AppReplayPeer1 agent.pm.availableTosList.clear

IxLoad Tcl API Programming Guide

451

AppReplay

$Activity_AppReplayPeer1 agent.pm.availableTosList.appendItem \

-id

"AvailableTypeOfService" \

-tos_value

"Class 1 (0x20)"

SEE ALSO

452

IxLoad Tcl API Programming Guide

AppReplay

Advanced Options
AdvancedOptions--Defines the App Replay client's global options.
SYNOPSIS
$Activity_AppReplayPeer1 agent.pm.advOptions.config \ -max_concurrent_flows1 \ -payloadVerification0 \ -typeOfService"Best Effort (0x0)" \ -enableTOSfalse
DESCRIPTION
Defines the App Replay client's global options.
SUBCOMMANDS
None
OPTIONS
enableTOS Enables the setting of the TOS (Type of Service) bits in the IP header of the packets.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

enableOOSforUDP Enables out-of-sequence packet handling for UDP packets.

Value Description

0

(default) Disabled.

1

Enabled.

max_concurrent_flows Maximum number of flows that each simulated user can send at one time. Default = 1. payloadVerification Packet payload is being verified based on the following two options:

IxLoad Tcl API Programming Guide

453

AppReplay
l Verify Content (0): The content of the payload is verified byte-by-byte against the expected payload. This verification option is set by default.
l Verify Length (1): The length of the payload is verified against the expected value. Choosing this option yields better throughput performance.
retransmissionDelayIPReplay Length of time that can elapse before a packet is retransmitted. Default = 10 sessionTimeOut Time, in seconds, to wait for a response from the responder peer. Default = 600 enableAdvanceStats If true, advanced statistics are collected. Default = false typeOfService Type of Service (TOS) bits in the replayed packets. See availableTosList for the list of choices. Default = "Best Effort (0x0)" retransmissionCountIPReplay Maximum number of times a packet can be retransmitted. Default = 1 enableRetransmissionIPReplay Enables retransmission of packets. Default = false useIPAddressFromCaptureFile Determines the source of the IP addresses used by the peer during the test.
l If true the peer uses the IP addresses from the capture file. l If false, the peer uses the IP addresses from the network that it runs over. Default = false instrumentationModeUDP Default = 0
EXAMPLE
$Activity_AppReplayPeer1 agent.pm.advOptions.config \-max_concurrent_flows

454

IxLoad Tcl API Programming Guide

1 \-enableTOS 1 \-enableOOSforUDP false \-typeOfService SeqNumInPayload
SEE ALSO

AppReplay
false \-payloadVerification false \-enableAdvanceStats
"Best Effort (0x0)" \01

IxLoad Tcl API Programming Guide

455

AppReplay

Global Statistics
The following table describes the global statistics for the Application Replay peer. AppReplay statistics are available on both a global basis and per-flow.
Note: The segment latency statistics are only displayed if you enable Advanced Statistics on the Advanced Options tab.

Statistic

Description

Test Objective Statistics

AppReplay Application Initiator Peer Count

Number of Application Replay initiator peers created.

AppReplay Application Responder Peer Count

Number of Application Replay responder peers created.

AppReplay Connection Rate

Rate (in connections per second) at which Application Replay peers connected to each other.

AppReplay Con-

Number of concurrent connections established between peers.

current Connections

AppReplay Transaction Rate

Rate (in transactions per second) at which Application Replay peers completed transactions.
For Application Replay peers, one transaction consists of a Layer-7 protocol's request packet, and the responses to that packet.

AppReplay Initiator Rate at which the initiators sent data. Total Bytes Sent/sec

AppReplay Application Initiator Total Bytes Received/sec

Rate at which the initiators received data.

AppReplay Initiator Combined rate at which the initiators sent and received data. Total Throughput

456

IxLoad Tcl API Programming Guide

AppReplay

AppReplay Responder Total Bytes Sent/sec

Rate at which the responders sent data.

AppReplay Responder Total Bytes Received/sec

Rate at which the responders received data.

AppReplay Respon- Combined rate at which the responders sent and received data. der Total Throughput

Total Connection Statistics

AppReplay Connection Requests Sent

Number of connection requests sent by the initiators to the responders.

AppReplay Connection Requests Successful

Number of connection attempts that succeeded.

AppReplay Connection Requests Failed

Number of connection attempts that failed.

AppReplay Connection Requests Received

Number of connection requests received by the responders.

AppReplay Connections Accepted

Number of connections accepted by the responders. This statistic measures the number of successful connections from the point of view of the responder.

AppReplay Connections Failed

Number of connections that were established but then closed because they would have exceeded the maximum number of connections that the responder could support.
The maximum number of connections that the responder can accept is calculated based on the test configuration and depends on the resources available on the load module, such as memory.

AppReplay Active Connections

Number of connections currently active.

Total Transaction Statistics

IxLoad Tcl API Programming Guide

457

AppReplay

AppReplay Total Transactions Initiated

Total number of TCP or UDP transactions initiated.

AppReplay Total Transactions Successful

Total number of TCP or UDP transactions that succeeded.

Total Flow Replay Statistics

AppReplay Total Flow Replays Initiated

Total number of TCP, IP, or UDP flow replays initiated. A TCP flow consists of a SYN, SYN+ACK, FIN, and FIN+ACK packets, all for the same session.

To be considered valid, a flow must begin with a SYN packet, and end with packets from both the initiator and the responder with the FIN flag set, or a RESET.

AppReplay Total Act- Total number of flows being replayed. ive Flow Replays

AppReplay Total Flow Replays Succeeded

Total number of flows replayed successfully.

AppReplay Total

Total number of flow replays that failed for any reason.

Flow Replays Failed

AppReplay Total Flow Replays Failed Error

Total number of flow replays that failed due to a network error.

AppReplay Total Flow Replays Failed Timeout

Total number of flow replays that failed due to a timeout.

AppReplay Total Flow Replays Failed Mismatch

Total number of flow replays that failed because the replayed session did not match the session in the pcap file.

AppReplay Total Flow Replays Aborted

Total number of flow replays aborted for any reason.
Aborted flows are flows in which the session is terminated abnormally. Flows can be aborted if a Reset is received from the far end, or the test is focefully stopped while sessions are in progress, or for other reasons.

458

IxLoad Tcl API Programming Guide

AppReplay

Initiator Total Bytes Statistics

AppReplay Initiator Total number of bytes sent by the initiators. Total Bytes Sent

AppReplay Initiator Total Bytes Received

Total number of bytes received by the initiators.

AppReplay Initiator Combined total of bytes sent and received by the initiators. Total Bytes Sent and Received

Responder Total Bytes Statistics

AppReplay Respon- Total number of bytes sent by the responders. der Total Bytes Sent

AppReplay Responder Total Bytes Received

Rate at which the responders received data.

AppReplay Responder Total Bytes Sent and Received

Combined total number of bytes sent and received by the responders.

Control Tx/Rx Statistics

AppReplay Segment Transmission Initiated

Number of segments for which transmission has begun. Segments are counted based on how they are formed in the capture file. For example, if one segment in the capture file becomes split between two segments while being replayed, it is still counted as only one segment when it is received. Conversely, if two segments in the capture file are packed into a single segment during replay, they are counted as two segments.

AppReplay Segment Transmission Succeeded

Number of segments successfully transmitted (Initiator side).

AppReplay Segment Total number of segments that failed transmission (Initiator side). Transmission Failed

AppReplay Segment Transmission Failed (Error)

Number of segments that failed transmission due to a network error (Initiator side).

IxLoad Tcl API Programming Guide

459

AppReplay

AppReplay Segment Transmission Failed (Timeout)

Number of segments that failed transmission due to a timeout (Initiator side).

AppReplay Segment Number of segments that the responders are receiving. Reception Initiated

AppReplay Segment Reception Succeeded

Number of segments successfully received (Responder side).

AppReplay Segment Total number of segments that were not received (Responder side). Reception Failed

AppReplay Segment Reception Failed (Error)

Number of segments that were not received due to a network error (Responder side).

AppReplay Segment Reception Failed (Timeout)

Number of segments that were not received due to a timeout (Responder side).

AppReplay Segment Reception Failed (Mismatch)

Number of segments received that did not match the segments in the pcap file (Responder side).

AppReplay UDP Lost Number of UDP packets that were transmitted but not received. Packets

AppReplay UDP Out Of Sequence Packets

Number of UDP packets received out of sequence. This statistic only displays if Enable Out of Sequence Packet Handling for UDP is enabled on the Advanced Options tab.

AppReplay IP Packet Retransmission Count

Number of retransmitted IP packets. If a packet is retransmitted more than once, this statistic is incremented each time the packet is retransmitted. This statistic is incremented only if Enable Retransmission for Custom Flow IP is enabled on the Application Replay Advanced tab.

AppReplay Out Of Sequence IP Packet Count

Number of IP packets received out of sequence. This statistic is incremented only if Enable Retransmission for Custom Flow IP is enabled on the Application Replay Advanced tab.

Packet Latency Statistics

460

IxLoad Tcl API Programming Guide

AppReplay

Inter Segment First Response Latency (for Initiated Flows)

The average delay between the time the initiator recieves the first segment from the responder, after the initiator has sent a segment to the responder. In the diagram below, this statistic calculates latency by measuring time at the following points: A2 - A1 A4 - A3 A7 - A6 This statistic displays a value only if the initiator has sent a segment prior to receiving a segment. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Inter Segment Last Response Latency (for Responded Flows)

The average delay between the time the responder recieves the first segment from the initiator, after the responder has sent a segment to the initiator. In the diagram below, this statistic calculates latency by measuring time at the following points: B3 - B2 B5 - B4 B8 - B7 This statistic displays a value only if the responder has sent a segment prior to receiving a segment. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Inter Segment Last Response Latency (for Initiated Flows)

The average delay between the time the initiator receives the final segment from the responder, after the initiator has sent a segment to the responder. The received segment is considered the final segment if the flow ends after this segment, or if the initiator sends a segment after this segment. In the diagram below, this statistic calculates latency by measuring time at the following points: A3 - A1 A5 - A3 A8 - A6 This statistic displays a value only if the initiator has sent a segment prior to receiving the final segment. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

IxLoad Tcl API Programming Guide

461

AppReplay

Inter Segment Last Response Latency (for Responded Flows)

The average delay between the final segment received by the responder from the initiator after the responder sent a segment to the initiator. The received segment is considered the final segment if the flow ends after this, or if the initiator sends a segment after this. In the diagram below, this statistic calculates latency by measuring time at the following points: B3 - B2 B6 - B4 B8 - B7 This statistic displays a value only if the responder has sent a segment prior to receiving the final segment. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Session Life Time (for Initiated Flows)

The average duration between the time the initiator sends or receives the first segment and sends or receives the final segment over a TCP session. In the diagram below, this statistic calculates latency by measuring time at the following points: A8 - A1 Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Session Life Time (for Responded Flows)

The average duration between the time the responder sends or receives the first segment and sends or receives the final segment over a TCP session. In the diagram below, this statistic calculates latency by measuring time at the following points: B8 - B1 Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

The following diagram shows an example of segment exchanges in an AppReplay session and identifies the points at which the Latency statistics are measured. The diagram assumes peer A is running as an Initiator only and peer B is a Responder only.

462

IxLoad Tcl API Programming Guide

AppReplay

! 9

IxLoad Tcl API Programming Guide

463

This page intentionally left blank.

464

IxLoad Tcl API Programming Guide

AppMix
This section describes the AppMix Tcl API. Note: You must use the IxLoadCSV package with AppMix scripts.

IxLoad Tcl API Programming Guide

465

AppMix
Creating an AppMix Object
ixTraffixMix
SYNOPSIS
set TrafficMix [::IxLoad new ixTrafficMix] $New_Scenario trafficMixList.appendItem -object $TrafficMix
DESCRIPTION
New instances of TrafficMix objects are created in TCL using the ixTrafficMix constructor. After being configured, the TrafficMix objects are added to scenario.trafficMixList TrafficMix objects expose to TCL certain fields: the list of flows, a list of endpoints, and the name. The name is set using the config method.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
STATISTICS
EXAMPLE
set TrafficMix [::IxLoad new ixTrafficMix] $New_Scenario trafficMixList.appendItem -object $TrafficMix
SEE ALSO

466

IxLoad Tcl API Programming Guide

AppMix
Adding Flows to an AppMix Object
SYNOPSIS
set flow [$flowFactory create "<flow name>"] $TrafficMix flowList.appendItem -object $flow
DESCRIPTION
Flows are created in TCL using the flowFactory field of the traffic mix object. The flow factory instance is set when creating the mix, and can be retrieved in TCL using the getFlowFactory method. Creating a new flow is done using the create method of the flowFactory object. This method receives a protocol ID as a parameter, and is exposed to the TCL script.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
STATISTICS
EXAMPLE
$TrafficMix flowList.clearset flowFactory [$TrafficMix getFlowFactory]set flow [$flowFactory create "HTTP"]$TrafficMix flowList.appendItem -object $flow
SEE ALSO

IxLoad Tcl API Programming Guide

467

AppMix
Setting Flow Parameters
SYNOPSIS
set flowEndpoint_client [$flow getClientFlowEndpoint]
DESCRIPTION
When created, a flow automatically creates instances for its endpoints. To access endpoints from the TCL in order to assign them to traffic mix endpoints, there are two methods: getClientFlowEndpoint and getServerFlowEndpoint. getClientFlowEndpoint method takes no argument, and returns the Originator flow endpoint. The getServerFlowEndpoint method receives as an argument the index of the required server endpoint in the flow endpoint list.
SUBCOMMANDS
None.
OPTIONS
STATISTICS
EXAMPLE
set flowEndpoint_client [$flow getClientFlowEndpoint] set flowEndpoint_server [$flow getServerFlowEndpoint 0]
SEE ALSO

468

IxLoad Tcl API Programming Guide

AppMix
Configuring Flow Commands
SYNOPSIS
set <method name> [$flow commandList.appendItem -commandType "<command>" ­protocol "<flow name>"]
DESCRIPTION
A flow contains a list of commands. These are commands from all protocols inside a flow's list. In the TCL script, the command list is cleared, and you can edit the number of executed commands, and can add one or more of the available commands. Adding a command is done with the appendItem method of the command list. The appendItem method is called with one or two arguments:
l The `command type' argument specifies what command should be added (the command name). This argument is mandatory in creating a command
l The `protocol' argument is optional, and specifies for what protocol in the protocol list the command should be created. If the argument is not given, all the protocols will be parsed until finding a protocol that contains a command with the given name.
A command may contain a list of parameters, that are configured the same as the flow parameters.
SUBCOMMANDS
None.
OPTIONS
STATISTICS
EXAMPLE
set HTTP_Get [$flow commandList.appendItem -commandType "Get"]set HTTP_Get [$flow commandList.appendItem -commandType "Get" ­protocol "HTTP"]
SEE ALSO

IxLoad Tcl API Programming Guide

469

AppMix

Flow Protocols

SYNOPSIS
set <method name> [$flow getProtocol "<protocol>"]

DESCRIPTION

Protocols can be retrieved from the protocol list using the getProtocol method. This method receives as an argument the protocol's ID. set HTTP1_protocol [$flow getProtocol "HTTP"]

The protocol exposes to the TCL script a list of connections, and a list of parameters. The parameters are configured identically as the flow parameters. The protocol also contains a list of endpoints, but this are created when parsing the protocol XML, and assigned automatically to the flow endpoints. You cannot configure the protocol endpoints in TCL.

You cannot specify a new connection. These are automatically created. In order to retrieve a connection in TCL, call the getConnection method with the connection display name as an argument: set HTTP2_connection [$HTTP1_protocol getConnection "HTTP"]

The connection contains a list of connection parameters which are configured in the same way as flow parameters.

The flow also exposes to TCL a transaction list, and the percentage and flow name:

$flow transactionList.clear$flow config \-percentage

1.0 \-name

"HTTP"

SUBCOMMANDS
None.
OPTIONS

STATISTICS

EXAMPLE

$flow transactionList.clear$flow config \-percentage

1.0 \-name

"HTTP"

470

IxLoad Tcl API Programming Guide

SEE ALSO

AppMix

IxLoad Tcl API Programming Guide

471

AppMix

Setting Flow Endpoints

SYNOPSIS
set <parameter> [$flow cget -<parameter>]
DESCRIPTION
The flow parameters are created automatically when creating the flow. Parameters are retrieved from the parent list using the cget method that receives as an argument the parameter ID. After getting the parameter, you can define its source, value and encodings fields. Besides the flows, all protocol, command and connection instances contain parameters. All these parameters are configured in the same way.
SUBCOMMANDS
None.
OPTIONS

STATISTICS

EXAMPLE

set ipMeshing [$flow cget -ipMeshing]

$ipMeshing config \

-source

"Choices" \

-value -encodings

"1:1" \

"Chunk"

SEE ALSO

472

IxLoad Tcl API Programming Guide

AppMix

Flow Endpoints

SYNOPSIS
set my_ixTrafficMixEndpoint [::IxLoad new ixTrafficMixEndpoint]
DESCRIPTION
New Traffic Mix endpoints can be added using the class constructor. The fields that are available for modifications in TCL are the flow endpoint list, the aliasName, and the netTraffic. The flow endpoint list can be assigned one or more flow endpoints (that are retrieved using the getClientFlowEndpoint and getServerFlowEndpoint methods).
SUBCOMMANDS
None.
OPTIONS

STATISTICS

EXAMPLE

set my_ixTrafficMixEndpoint [::IxLoad new ixTrafficMixEndpoint]$my_ixTraf-

ficMixEndpoint flowEndpointList.clear$my_ixTrafficMixEndpoint flowEnd-

pointList.appendItem -object $flowEndpoint_client$my_ixTrafficMixEndpoint config \-

aliasName

"" \-netTraffic

$Traffic1_Network1 $TrafficMix mixEndpointList.appendItem -object $my_ixTraf-

ficMixEndpoint

SEE ALSO

! 10

IxLoad Tcl API Programming Guide

473

This page intentionally left blank.

474

IxLoad Tcl API Programming Guide

Bulk MGCP
This section describes the MGCP Tcl API objects.
API Overview
The IxLoad MGCP API consists of MGCP client and server agents, with separate APIs for configuring each major aspect of the agents' functionality.
MGCP Client API
The IxLoad MGCP Client API commands are organized as shown in the figure below.

IxLoad Tcl API Programming Guide

475

Bulk MGCP

Objectives
The objectives (userObjective) you can set for MGCP are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers l calls (displays as "Endpoints" in the GUI l transactionRate l bhca l callsPerSec (displays as "Calls Initiated Per Second" in the GUI

MGCP Client Agent
The MGCP Client Agent creates an IxLoad agent that simulates an MGCP gateway. Refer to MGCP Client Agent on page 23-12 for a full description of this command. The most significant options of this command are listed below.

Option Description

enable Enables the use of this client agent.

name The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

Parameters
Sets an MGCP client's basic parameters. Refer to Parameters on page 23-21 for a full description of this command. The most significant options of this command are listed below.

Option

Description

GatewaySourcePort Source port for MGCP commands.

CallAgent_port

Call agent that controls this Gateway.

enableTosMGCP

Enable TOS for MGCP traffic.

type_of_service_ for_mgcp

IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for MGCP.

476

IxLoad Tcl API Programming Guide

Bulk MGCP

enableTosRTP
type_of_service_ for_rtp

Enables the setting of the TOS (Type of Service) bits in the header of the RTP data packets.
IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for RTP data packets.

Low-Level Parameters
Sets an MGCP client's low-level parameters. Refer to Low Level Parameters on page 23-23 for a full description of this command. The most significant options of this command are listed below.

Option

Description

CommandTimeout

Command timeout.

LocalMediaProperties String containing the encoding of endpoint media parameters.

AcknowledgeResponses Specifies if the sent command will include K parameter with the ID of last received response.

DNS Record
Adds a DNS record to the list to be sent to a DNS server. Refer to DNS Record on page 23-24 for a full description of this command. The most significant options of this command are listed below.

Option
dns_record_time_ to_live
dns_ip_port

Description
Used for DNS update query to specify time of validity of the updated DNS record.
Hostname:port number or IP address:port number of DNS server to which DNS records will be sent.

Endpoint Names
Adds a DNS record to the list to be sent to a DNS server. Refer to Endpoint Names on page 23-25 for a full description of this command. The most signifioptions of this command are listed below.

IxLoad Tcl API Programming Guide

477

Bulk MGCP

Option

Description

GatewayName

Gateway IP address:port or domain name:port.

NumberOfEndpoints Number of endpoints hosted by the gateway.

UseCustomNames

Specifies whether to use custom names or not.

EndpointNamePrefix Prefix applied to endpoint name.

EndpointNameSuffix Suffix applied to endpoint name.

EndpointNameStartAt Initial value of variable portion of endpoint name.

EndpointNameExpan Width of variable used to create endpoint names that are unique within a gateway.

EndpointNameStep

Amount of increase in the variable (the Endpoint Name Expand On parameter) used to create unique base endpoint names.

EndpointPhonePrefix String containing digits to be used at beginning of phone num

EndpointPhoneSuffix String containing digits to be used at the end of the phone number.

EndpointPhoneStartAt Initial value of variable portion of phone number.

EndpointPhoneStep Amount of increase in variable to create additional phone numbers.

NumGateways

Number of gateways.

GatewayNamePrefix String prefixed to gateway name.

GatewayNameSuffix String suffixed to gateway name.

GatewayNameStartAt Initial value of variable portion of gateway name.

GatewayNameExpan Width of variable used to create unique gateway names.

GatewayNameStep Amount of increase in variable used for gateway name.

Media Settings
Selects and configure the streaming audio files for the multimedia session that the client will play over RTP. Refer to Media Settings on page 23-27 for a full description of this command. The most

478

IxLoad Tcl API Programming Guide

Bulk MGCP

significant options of this command are:

Option

Description

szCodecName

Codec to be used to encode waveform audio files listed in the Audio Clips Pool.

szCodecDetails

Displays the properties of the codec such as the number of bytes per frame of compressed audio, and the rate at which packets are sent over the connection.

szCodecDescr

Codec description.

bModifyPowerLevel If true, IxLoad modifies the volume of the compressed audio.

szPowerLevel

If bModifyPowerLevel is true, this parameter specifies the amount of gain (volume) added to compressed audio.

bUseJitter

Enables or disables use of the jitter buffer.

bJitMs

Defines the method used to set the jitter buffer size.

nJitterBuffer

Jitter Buffer size, in packets.

nJitterMs

Jitter Buffer size, in milliseconds.

bUseCompensation Enables or disables use of the compensation jitter buffer.

bCompMs

Defines the method used to set the compensation jitter buffer size.

nCompJitterBuffer

Compensation jitter buffer maximum size, in packets.

nCompJitterMs

Compensation jitter buffer maximum size, in milliseconds.

nCompMaxDropped Maximum dropped consecutive packets.

bUseMOS

Enables or disables use of MOS.

bMosOnMax

Defines whether MOS is calculated for a subset of streams or for all streams.

nMosMaxStreams

Maximum number of concurrent streams used in MOS calcu

nMosInterval

Frequency at which IxLoad samples the RTP streams to genthe MOS scores.

nDtmfDuration nDtmfInterdigits bLimitDtmf

Length of time allowed to play the DTMF sequence. Duration (in milliseconds) of the DTMF interdigit signal. Enable or disable limitation on the number of DTMF streams to be processed.

IxLoad Tcl API Programming Guide

479

Bulk MGCP

nDtmfStreams

Number of streams to which path confirmation will be applied.

nPcInterval

If Synthetic path confirmation is selected, this is the interval at which IxLoad add the synthetic RTP packets to the stream.

nSessionType

Type of voice session.

szDtmfSeq

DTMF sequence used for path confirmation.

szPeerCodecName Name of codec used by peer.

szPeerCodecDetails Details of codec used by peer.

szPeerDtmfSeq

DTMF sequence used by peer.

nPeerDtmfDuration DTMF duration used by peer.

nPeerDtmfInterdigits Inter-digits interval used by peer.

audioClipsTable

This list contains the waveform audio files that the MGCP cliwill play.

Commands
Creates the list of MGCP commands that the client will send. Refer to Commands on page 23-31 for a full description of this command. The most significant options of this command are listed below.

Option Description

id

MGCP command to be executed.

Audio Clips Pool
Defines an audio file to be included in the list that the MGCP client will play. Refer to Audio Clips Pool on page 23-33 for a full description of this command. The most significant options of this command are listed below.

Option szWaveName szDataFormat

Description Waveform audio (.wav) file. Encoding format of waveform audio file.

480

IxLoad Tcl API Programming Guide

Bulk MGCP

nSampleRate

Number of samples taken per second from the recording source.

nResolution

Number of bits per sample.

nChannels

Number of audio channels.

nDuration

Playing time of audio file.

nSize

Size of audio file, in bytes.

szRawWaveName Name and path of wave file to be added to the list.

Custom Endpoint Names
Retrieves the list of custom endpoint names generated by Endpoint Names. Refer to Custom Endpoint Names on page 23-34 for a full description of this command. The most significant options of this command are:

Option

Description

endpoint_names List of custom endpoint names to be used.

MGCP Server API
The figure below shows the MGCP Server API structure.

IxLoad Tcl API Programming Guide

481

Bulk MGCP

MGCP Server Agent
The MGCP Server Agent command simulates an MGCP Call Agent. Refer to MGCP Server Agent on page 23-35 for a full description of this command. The most significant options of this command are listed below.

Option Description

enable Enables the use of this client agent.

name The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

Low-Level Parameters
Sets the MGCP Server Agent's low-level commands. Refer to Low Level Parameters on page 23-43 for a full description of this command. The most sigoptions of this command are listed below.

Option

Description

CommandTimeout

If no response to a command is received within this number of seconds, a error is declared.

AcknowledgeResponses Specifies if the sent command will include the K parameter with the ID of last received response.

DNS Updates
Configures the list of DNS records that will be sent to a DNS server. Refer to DNS Updates on page 2344 for a full description of this command. The most significant options of this command are listed below.

Option

Description

482

IxLoad Tcl API Programming Guide

Bulk MGCP

dns_record_time_to_ live
dns_source_ip

Used for DNS update query to specify time of validity of the updated DNS record.
IP address indicated as the source of the DNS records.

DNS Record
Configures a DNS record that will be added to the list to be sent to a DNS server. Refer to DNS Record on page 23-45 for a full description of this command. The most significant options of this command are:

Option

Description

dns_record_name Name to be added to DNS database.

dns_record_address IP address to be added to DNS database.

Endpoint Names
Configures the names used for MGCP endpoints. Refer to Endpoint Names on page 23-46 for a full description of this command. The most significant options of this command are listed below.

Option

Description

NumberOfEndpoints

Number of endpoints hosted by the gateway.

UseCustomNames

Specifies whether to use custom names or not.

EndpointNamePrefix

Prefix applied to endpoint name.

EndpointNameSuffix

Suffix applied to endpoint name.

EndpointNameStartAt

Initial value of variable portion of endpoint name.

EndpointNameExpandOn Width of variable used to create endpoint names that are unique within a gateway.

EndpointNameStep

Amount of increase in the variable (the Endpoint Name Expand On parameter) used to create unique base endpoint names.

EndpointPhonePrefix

String containing digits to be used at beginning of phone num

IxLoad Tcl API Programming Guide

483

Bulk MGCP

EndpointPhoneSuffix

String containing digits to be used at the end of the phone number.

EndpointPhoneStartAt

Initial value of variable portion of phone number.

EndpointPhoneStep

Amount of increase in variable to create additional phone numbers.

NumGateways

Number of gateways.

GatewayNamePrefix

String prefixed to gateway name.

GatewayNameSuffix

String suffixed to gateway name.

GatewayNameStartAt

Initial value of variable portion of gateway name.

GatewayNameExpandOn Width of variable used to create unique gateway names.

GatewayNameStep

Amount of increase in variable used for gateway name.

Custom Endpoint Names
Retrieves the list of custom endpoint names generated by Endpoint Names. Refer to Custom Endpoint Names on page 23-48 for a full description of this command. The most significant options of this command are listed below.

Option

Description

endpoint_names List of custom endpoint names to be used.

Parameters
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.parameters.config

484

IxLoad Tcl API Programming Guide

Bulk MGCP

DESCRIPTION
An MGCP server's basic parameters are set by modifying the options of the pm.parameters option of the MGCP Server Agent object using appendItem. Note the use of the `pm.' component in the name.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
call_agent_name Call agent FQDN name that controls this gateway. (Default = "prica.ixi"). listen_port_start Initial port that the agent listens on for new MGCP connections. Minimum = "1" maximum = "65,535." (Default = "2,727"). listen_port_stop Number of ports that the agent listens on for new MGCP connections. Minimum = "1." (Default = "1"). listen_port_step Increment value applied initially to listen_port_start and to each subsequent value to create the list of listening ports. Minimum = "1." (Default = "1"). enableTosMGCP Enable TOS for MGCP traffic.

Value Description

0

(default) TOS bits disabled.

1

TOS bits enabled.

type_of_service_for_mgcp
If enableTosMGCP is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

Value "Best Effort (0x0)"

Description (Default) routine priority

IxLoad Tcl API Programming Guide

485

Bulk MGCP

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

486

IxLoad Tcl API Programming Guide

Bulk MGCP
MGCP Client Agent
MGCP Client Agent - configure an MGCP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.config
DESCRIPTION
An MGCP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity MGCPClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"MGCP Client" ]$Activity_MGCPClient1 agent.config \-enable

true \-name

"MGCPClient1"

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

487

Bulk MGCP

Parameters
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.parameters.config
DESCRIPTION
An MGCP client's basic parameters are set by modifying the options of the pm.parameters option of the MGCP Client Agent object.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
GatewaySourcePort
Source port for MGCP commands. This may be changed by Call Agent by using NotifiedEntity parameter. Minimum = "1," maximum = "65535." (Default = "2,427"). CallAgent_port
Call agent that controls this Gateway. Example: \"192.168.8.9:2427\" or prica.ixialab.com. (Default = "None"). The following suboptions exist for this option:

Value

Description

enableDns Enable (1) or disable (0) DNS for symbolic destinations (IxLoad agents) for this call agent. Default = 0.
Protocol id ID of the call agent protocol issuing the DNS request. Default = "mgcp."

enableTosMGCP Enable TOS for MGCP traffic.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

type_of_service_for_mgcp

488

IxLoad Tcl API Programming Guide

Bulk MGCP

If enableTosMGCP is true, then this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

Value

Description

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

enableTosRTP Enables the setting of the TOS (Type of Service) bits in the header of the RTP data packets.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

type_of_service_for_rtp
If enableTosRTP is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for RTP data packets. See type_of_service_for_mgcp for the list of choices (Default = "Best Effort (0x0)").

EXAMPLE

$Activity_MGCPClient1 agent.pm.parameters.config \-type_of_service_for_mgcp

"Best Effort (0x0)" \-CallAgent_port

"Traffic2_MGCPServer-

1:2727" \-type_of_service_for_rtp

"Best Effort (0x0)" \-enableTosRTP

true \-CallAgent

"" \-GatewaySourcePort

2427 \-enableTosMGCP

true \-implicitLoopCheck

true

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

489

Bulk MGCP

490

IxLoad Tcl API Programming Guide

Bulk MGCP

Low Level Parameters

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.ll_parameters.config

DESCRIPTION
An MGCP client's low-level parameters are set by modifying the options of the pm.ll_parameters option of the MGCP Client Agent object.

SUBCOMMANDS
None.

OPTIONS
CommandTimeout
If no response to a command is received within this number of seconds, a error is declared. Minimum = "1," Maximum = "120." (Default = "30"). LocalMediaProperties
String containing the encoding of endpoint media parameters. Default = "v:on, e:off," maxLength = "2,048." AcknowledgeResponses
Specifies if the sent command will include the K parameter with the ID of last received response. (Default = "0").

EXAMPLE

$Activity_MGCPClient1 agent.pm.ll_parameters.config \-LocalMediaProperties

"v:on, e:off" \-CommandTimeout

30 \-AcknowledgeResponses

true \-RingCount

2

SEE ALSO

MGCP Client Agent

IxLoad Tcl API Programming Guide

491

Bulk MGCP

DNS Record

SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.dns_update_parameters.config

DESCRIPTION
The DNS Update Parameters command is used to add DNS records to the list of records that will be sent to the DNS server to update it with changes to the gateway name.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
dns_record_time_to_live
Used for DNS update query to specify time of validity of the updated DNS record. Default = "43,200."
dns_ip_port
Hostname:port number or IP address:port number of DNS server to which DNS records will be sent. Default = "192.168.1.1:53."

EXAMPLE

$Activity_MGCPClient1 agent.pm.dns_update_parameters.config \-dns_record_name

"" \-dns_record_address

"" \-dns_record_time_to_live

43200 \-dns_source_ip

"" \-enable_dns_updates

false \-dns_ip_port

"192.168.1.1:53"

492

IxLoad Tcl API Programming Guide

Bulk MGCP
Endpoint Names
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.endpoint_parameters.config
DESCRIPTION
Configures the names used for MGCP endpoints. An MGCP client's endpoint update parameters are set by modifying the options of the pm.endpoint_parameters option of the MGCP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
GatewayName Gateway IP address:port or domain name:port. (Default = "ixloadmgw.ixia-lab.com"). NumberOfEndpoints Number of endpoints hosted by the gateway. Minimum = "1," maximum = "15,000." (Default = "2"). UseCustomNames Specifies whether to use custom names or not. (Default = "0"). EndpointNamePrefix Prefix applied to endpoint name. (Default = "aaln/"). EndpointNameSuffix Suffix applied to endpoint name. (Default={}). EndpointNameStartAt Initial value of variable portion of endpoint name. Minimum = "0," maximum = "4,294,967,295." (Default = "0"). EndpointNameExpandOn Width of variable used to create endpoint names that are unique within a gate way. Minimum = "1," maximum = "5." (Default = "1"). EndpointNameStep

IxLoad Tcl API Programming Guide

493

Bulk MGCP

Amount of increase in the variable (the Endpoint Name Expand On parameter) used to create unique base endpoint names. Minimum = "1,"maximum = "3,000." (Default = "1"). EndpointPhonePrefix String containing digits to be used at beginning of phone number. (Default = {}). EndpointPhoneSuffix String containing digits to be used at the end of the phone number. (Default = {}). EndpointPhoneStartAt Initial value of variable portion of phone number. Minimum = "0" Maximum = "4,294,967,295." (Default = "1,000"). EndpointPhoneStep Amount of increase in variable to create additional phone numbers. Minimum = "1," maximum = "3,000." (Default = "1"). NumGateways Number of gateways. Minimum = "1," maximum = "3,000." (Default = "2"). GatewayNamePrefix String prefixed to gateway name. (Default = "ix"). GatewayNameSuffix String suffixed to gateway name. (Default = ".ixia-lab.com"). GatewayNameStartAt Initial value of variable portion of gateway name. Minimum = "0," maximum = "4,294,967,295." (Default = "3,000"). GatewayNameExpandOn Width of variable used to create unique gateway names. Minimum = "1," maxi= "5." (Default = "1"). GatewayNameStep Amount of increase in variable used for gateway name. Minimum = "1," maxi= "3,000." (Default = "1").
EXAMPLE

$Activity_MGCPClient1 agent.pm.endpoint_parameters.config \-GatewayName

"ixloadmgw.ixia-lab.com" \-NumGateways

2 \-

EndpointPhonePrefix

"" \-EndpointNameSuffix

"" \-EndpointPhoneStartAt

1000 \-EndpointNameExpandOn

494

IxLoad Tcl API Programming Guide

1 \-GatewayNamePrefix 2 \-GatewayNameStep 0 \-EndpointNameStep 1 \-GatewayNameStartAt false \-EndpointPhoneSuffix "aaln/" \-GatewayNameSuffix GatewayNameExpandOn
SEE ALSO
MGCP Client Agent

Bulk MGCP
"ix" \-NumberOfEndpoints 1 \-EndpointNameStartAt 1 \-EndpointPhoneStep 3000 \-UseCustomNames
"" \-EndpointNamePrefix ".ixia-lab.com" \-
1

IxLoad Tcl API Programming Guide

495

Bulk MGCP

Media Settings
Media Settings--Selects and configures the streaming audio files for the multisession that the client will play over RTP.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.mediaSettings.config
DESCRIPTION
An MGCP client's media settings are set by modifying the options of the pm.mediaSettings option of the MGCP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
szCodecName Codec to be used to encode waveform audio files listed in the Audio Clips Pool. The choices are:

Value

Description

"G711ALaw" (default) G.711 A-law

"G711ULaw" G.711 mu-law

"G729A"

G.729A

"G729B"

G.729B

"G726"

G.726

"G723_1"

G.723.1

szCodecDetails
Displays the properties of the codec such as the number of bytes per frame of compressed audio, and the rate at which packets are sent over the connection. (Default = {}). szCodecDescr
Codec description. (Default = {}).

496

IxLoad Tcl API Programming Guide

Bulk MGCP

bModifyPowerLevel
If true, IxLoad modifies the volume of the compressed audio. (Default = "0"). szPowerLevel
If bModifyPowerLevel is true, this parameter specifies the amount of gain (volume added to compressed audio. The choices are:

Value Description "PL0" (default) 0 dB "PL_10" -10 dB "PL_20" -20 dB "PL_30" -30 dB bUseJitter Enables or disables use of the jitter buffer. (Default = "0"). bJitMs Defines the method used to set the jitter buffer size.

Value Description

0

(Default). Jitter buffer size is set by nJitterBuffer.

1

Jitter buffer size is set by nJitterMs.

nJitterBuffer Jitter Buffer size, in packets. Minimum = "1," maximum = "300." (Default = "1"). nJitterMs Jitter Buffer size, in milliseconds. Minimum = "1," maximum = "3,000." (Default = "20"). bUseCompensation Enables or disables use of the compensation jitter buffer. (Default = "0"). bCompMs Defines the method used to set the compensation jitter buffer size.

IxLoad Tcl API Programming Guide

497

Bulk MGCP

Value Description

0

(Default). Compensation jitter buffer size is set by nCompJitterBuffer.

1

Compensation jitter buffer size is set by nCompJitterMs.

nCompJitterBuffer Compensation jitter buffer maximum size, in packets. Minimum = "0," maxi= "300." (Default = "50"). nCompJitterMs Compensation jitter buffer maximum size, in milliseconds. Minimum = "0," maximum = "3,000." (Default = "1,000"). nCompMaxDropped Maximum dropped consecutive packets. Minimum = "1," maximum = "100." (Default = "7"). bUseMOS Enables or disables use of MOS. (Default = "0"). bMosOnMax Defines whether MOS is calculated for a subset of streams or for all streams.

Value Description

0

(Default). MOS calculation is applied to all streams.

1

MOS calculation is applied to the number of streams specified by nMosMax.

nMosMaxStreams
Maximum number of concurrent streams used in MOS calculation. Minimum = "1." (Default = "1"). nMosInterval
Frequency at which IxLoad samples the RTP streams to generate the MOS scores. Minimum = "2," maximum = "30." (Default = "3"). nDtmfDuration
Length of time allowed to play the DTMF sequence. Minimum = "60," maxi= "999." (Default = "100"). nDtmfInterdigits

498

IxLoad Tcl API Programming Guide

Bulk MGCP

Duration (in milliseconds) of the DTMF interdigit signal. Minimum = "30," maximum = "9999." (Default = "40"). bLimitDtmf
Enable or disable limitation on the number of DTMF streams to be processed. (Default = "1").

Value Description

0

DTMF applied to all streams.

1

(Default) DTMF limited to number of streams specified by nDtmfStreams.

nDtmfStreams Number of streams to which path confirmation will be applied. Minimum = "1" maximum = "900." (Default ="10"). nPcInterval
If Synthetic path confirmation is selected, this is the interval at which IxLoad add the synthetic RTP packets to the stream. Minimum = "1." (Default = "500"). nSessionType
Type of voice session. The choices are:

Value Description (default) Plays audio file specified by szAudioFIle.
"0" "1" Perform DTMF path confirmation. "2" Perform synthetic DTMF path confirmation.

szDtmfSeq DTMF sequence used for path confirmation. (Default = "12,345"). szPeerCodecName Name of codec used by peer. (Default = {}). szPeerCodecDetails Details of codec used by peer. (Default = {}). szPeerDtmfSeq DTMF sequence used by peer. (Default = {}).

IxLoad Tcl API Programming Guide

499

Bulk MGCP

nPeerDtmfDuration

DTMF duration used by peer. (Default = "0"). nPeerDtmfInterdigits

Inter-digits interval used by peer. (Default = "0"). audioClipsTable

This is a list of type Audio Clips Pool. This list contains the waveform audio files that the MGCP client will play. (Default = {}).

EXAMPLE

$Activity_MGCPClient1 agent.pm.mediaSettings.config \-nPcInterval

500 \-nJitterBuffer

1 \-nDtmfInterdigits

40 \-nCompMaxDropped

7 \-nPeerDtmfDuration

0 \-nJitterMs

20 \-nAudioPoolTime

1181544691 \-nDtmfDuration

100 \-szPeerCodecName

"" \-groupBox_MOS1

false \-szPeerCodecDetails

"" \-bMosOnMax

0 \-groupBox_JB1

false \-nMosInterval

3 \-nCompJitterBuffer

50 \-bUseJitter

false \-szCodecName

"G711ALaw" \-szPeerDtmfSeq

"" \-bLimitDtmf

true \-bUseMOS

false \-bJitMs

0 \-szCodecDescr

"ITU-T G.711 is a standard to represent

8 bit compressed pulse code modulation (PCM) samples for signals of voice fre-

quencies, sampled at the rate of 8000 samples/second. G.711 encoder will create a 64

Kbps bitstream. A-Law G.711 PCM encoder converts 13 bit linear PCM samples into 8

bit compressed PCM (logarithmic form) samples, and the decoder does the conversion

vice versa." \-bCompMs

0 \-nDtmfStreams

10 \-szPowerLevel

"PL_20" \-szDtmfSeq

"12345" \-nCompJitterMs

1000 \-nPeerDtmfInterdigits

0 \-nMosMaxStreams

1 \-szCodecDetails

"BF160PT20" \-nSessionType

0 \-bModifyPowerLevel

false \-bUseCompensation

false

SEE ALSO

MGCP Client Agent

500

IxLoad Tcl API Programming Guide

Bulk MGCP

Commands
Commands--Creates the list of MGCP commands that the client will send.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.scenarios.appendItem

DESCRIPTION
A command is added to the Scenarios object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id MGCP command to be executed. One of the following:

Command

Description

OriginateCall Sets up a multimedia session with the specified destination.

THINK

Pause during command list processing. You should include a {Think} command whenever necessary to allow the destination to process the preceding commands. You can configure a pause of fixed length or of random length.

EndCall

Terminates the MGCP session.

ReceiveCall

Accepts a call from another endpoint.

VOICESESSION Plays one of the waveform audio files listed in the Audio Clips Pool on the Media Settings tab. The MGCP client sends the file to the destination configured for the previous Originate Call command in the command list.

Arguments for id = OrginateCall
Destination

IxLoad Tcl API Programming Guide

501

Bulk MGCP
Destination of the call, which is usually another endpoint. If the destination is an IxLoad MGCP server agent, specify the name of the agent. (Default = "99,312,345").
Arguments for id = THINK
MinDuration Minimum length of the pause, in milliseconds. To configure a fixed-length pause, enter the same value in this field and MaxDuration. (Default = "1"). MaxDuration Maximum length of the pause, in milliseconds. To configure a fixed-length pause, enter the same value in this field and MinDuration. (Default = "1").
Arguments for id = ReceiveCall
RSpeakSequenceFile File containing media description. (Default = "mgcp_speak_config").
Arguments for id = VOICESESSION
szAudioFile Waveform audio file that will be played during the session. This must be an szWaveName object contained within the Audio Clips Pool object. (Default = "<None>"). nPlayMode If true, the audio file plays for a fixed number of times. If false, the audio file plays continuously. (Default = "0"). nRepeatCount If nPlayMode is true, this parameter sets the number of times that the audio file will play. (Default = "1"). nPlayTime Length of time to play the audio file. Specify the units of time in the nTimeUnit. nTimeUnit Units of time used to set the audio file play time (nPlayTime). The choices are:
Value Description (default) Seconds
"0"

502

IxLoad Tcl API Programming Guide

Bulk MGCP

"1" Minutes "2" Hours "3" Days

nTotalTime (Read-only). Total length of time that the audio file will be played. nSessionType Type of voice session. The choices are:

Value Description (default) Plays audio file specified by szAudioFIle.
"0" "1" Perform DTMF path confirmation. "2" Perform synthetic DTMF path confirmation.

nWavDuration
(Read-only). Length of selected audio (.wav) file. szDtmfSeq
For a path confirmation Voice Session, (nSessionType = 1 or 2), this is the DTMF sequence. (Default = "12345").

EXAMPLE

$Activity_MGCPClient1 agent.pm.scenarios.appendItem \-id

"OriginateCall" \-Destination

"99312345"$Activity_

MGCPClient1 agent.pm.scenarios.appendItem \-id

"ReceiveCall" \-RSpeakSequenceFile

"mgcp_speak_config"$Activ-

ity_MGCPClient1 agent.pm.scenarios.appendItem \-id

"EndCall" \-Dummy

1

SEE ALSO

MGCP Client Agent

IxLoad Tcl API Programming Guide

503

Bulk MGCP

Custom Endpoint Names
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_MGCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_MGCPClient1 agent.pm.customNamesList.endpoint_names.config
DESCRIPTION
Retrieves the list of custom endpoint names generated by Endpoint Names.
SUBCOMMANDS
None.
SUB-OBJECTS
endpoint_names List of custom endpoint names to be used. This is a list of Custom Name objects, which have the following format:

Value

Description

endpoint_name

Endpoint name. Default={}.

destination_number Phone number of endpoint. Default={}.

EXAMPLE
$Activity_MGCPClient1 agent.pm.custom\ endpoint_names
SEE ALSO
Endpoint Names

504

IxLoad Tcl API Programming Guide

Bulk MGCP

MGCP Server Agent

MGCP Server Agent - create an MGCP server

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_MGCPServer1 agent.config

DESCRIPTION
An MGCP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time.

STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity MGCPServer1

of NetTraffic Traffic2@Network2#################################################set

Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"MGCP Server" ]$Activity_MGCPServer1 agent.config \-enable

true \-name

"MGCPServer1"

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

505

Bulk MGCP

Parameters
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_MGCPServer1 agent.pm.parameters.config
DESCRIPTION
An MGCP server's basic parameters are set by modifying the options of the pm.parameters option of the MGCP Server Agent object.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
call_agent_name Call agent FQDN name that controls this gateway. (Default = "prica.ixi listen_port_start Initial port that the agent listens on for new MGCP connections. Minimum = "1" maximum = "65,535." (Default = "2,727"). listen_port_step Increment value applied initially to listen_port_start and to each subsequent value to create the list of listening ports. Minimum = "1." (Default = "1"). enableTosMGCP Enable TOS for MGCP traffic.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

type_of_service_for_mgcp
If enableTosMGCP is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the stand-

506

IxLoad Tcl API Programming Guide

Bulk MGCP

ard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

Value

Description

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

EXAMPLE

$Activity_MGCPServer1 agent.pm.parameters.config \-listen_port_stop

1 \-type_of_service_for_mgcp

"Best Effort (0x0)" \-listen_port_start

2727 \-call_agent_name

"prica.ixia-lab.com" \-enableTosMGCP

true \-listen_port_step

1

SEE ALSO

MGCP Server Agent

IxLoad Tcl API Programming Guide

507

Bulk MGCP

Low Level Parameters

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_MGCPServer1 agent.pm.ll_parameters.config

DESCRIPTION
An MGCP server's low-level parameters are set by modifying the options of the pm.ll_parameters option of the MGCP Server Agent object.

SUBCOMMANDS
None.

OPTIONS
CommandTimeout
If no response to a command is received within this number of seconds, a error is declared. Minimum = "1," maximum = "120." (Default = "30"). AcknowledgeResponses
Specifies if the sent command will include the K parameter with the ID of last received response. (Default = "0").

EXAMPLE

$Activity_MGCPServer1 agent.pm.ll_parameters.config \-CommandTimeout

30 \-AcknowledgeResponses

true

SEE ALSO

MGCP Server Agent

508

IxLoad Tcl API Programming Guide

Bulk MGCP
DNS Updates
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_MGCPServer1 agent.pm.dns_update_parameters.config
DESCRIPTION
An MGCP server's DNS update parameters are set by modifying the options of the pm.dns_update_ parameters option of the MGCP Server Agent object.
SUBCOMMANDS
None.
OPTIONS
enable_dns_updates Updates a DNS server with updates to the gateway names. The DNS server must be configured to accept Update Queries from the IxLoad IP address. The first IP in range will be used to source the DNS Query packets. (Default = "0"). dns_records List of DNS records to be sent to the DNS servers. This is a list of DNS Record objects. dns_record_name Name to be added to DNS database. (Default = {}). dns_record_address IP address to be added to DNS database. (Default = {}). dns_record_time_to_live Used for DNS update query to specify time of validity of the updated DNS record. (Default = "43,200"). dns_source_ip IP address indicated as the source of the DNS records. (Default = {}). dns_ip_port Hostname:port number or IP address:port number of DNS server to which DNS records will be sent. (Default = "192.168.1.1:53").
EXAMPLE
$Activity_MGCPServer1 agent.pm.dns_update_parameters.config \-dns_record_name

IxLoad Tcl API Programming Guide

509

Bulk MGCP
"" \-dns_record_address 43200 \-dns_source_ip false \-dns_ip_port
SEE ALSO
MGCP Server Agent DNS Record

"" \-dns_record_time_to_live "" \-enable_dns_updates "192.168.1.1:53"

510

IxLoad Tcl API Programming Guide

Bulk MGCP

DNS Record
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_MGCPServer1 agent.pm.dnsrecord.config
DESCRIPTION
The DnsRecord command is used to add DNS records to the list of records that will be sent to the DNS server to update it with changes to the gateway name. The complete list of records is contained in the dns_records option of the DNS Updates object.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
dns_record_name Name to be added to DNS database. (Default = {}). dns_record_address IP address to be added to DNS database. (Default = {}).
EXAMPLE

$Activity_MGCPServer1 agent.pm.dns_update_parameters.config \-dns_record_name

"" \-dns_record_address

"" \-dns_record_time_to_live

43200 \-dns_source_ip

"" \-enable_dns_updates

false \-dns_ip_port

"192.168.1.1:53"

SEE ALSO

DNS Updates

IxLoad Tcl API Programming Guide

511

Bulk MGCP
Endpoint Names
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_MGCPServer1 agent.pm.endpoint_parameters.config
DESCRIPTION
Configures the names used for MGCP endpoints. An MGCP client's endpoint parameters are set by modifying the options of the pm.endpoint_parameters option of the MGCP Server Agent object.
SUBCOMMANDS
None.
OPTIONS
NumberOfEndpoints Number of endpoints hosted by the gateway. Minimum = "1," maximum = "15,000." (Default = "2"). UseCustomNames Specifies whether to use custom names or not. (Default = "0"). EndpointNamePrefix Prefix applied to endpoint name. (Default = "aaln/"). EndpointNameSuffix Suffix applied to endpoint name. (Default = {}). EndpointNameStartAt Initial value of variable portion of endpoint name. Minimum = "0," maximum = "4,294,967,295." (Default = "0"). EndpointNameExpand On Width of variable used to create endpoint names that are unique within a gate way. Minimum = "1," maximum = "5." (Default = "1"). EndpointNameStep Amount of increase in the variable (the Endpoint Name Expand On parameter) used to create unique base endpoint names. Minimum = "1," maximum = "3,000." (Default = "1"). EndpointPhonePrefix

512

IxLoad Tcl API Programming Guide

Bulk MGCP

String containing digits to be used at beginning of phone number. (Default = {}). EndpointPhoneSuffix String containing digits to be used at the end of the phone number. (Default = {}). EndpointPhoneStartAt Initial value of variable portion of phone number. Minimum = "0," maximum = "4,294,967,295." (Default = "1,000"). EndpointPhoneStep Amount of increase in variable to create additional phone numbers. Minimum = "1," maximum = "3000." (Default = "1"). NumGateways Number of gateways. Minimum = "1," maximum = "3,000." (Default = "2"). GatewayNamePrefix String prefixed to gateway name. (Default = "ix"). GatewayNameSuffix String suffixed to gateway name. (Default = ".ixia-lab.com"). GatewayNameStartAt Initial value of variable portion of gateway name. Minimum = "0", maximum = "4,294,967,295." (Default = "3,000"). GatewayNameExpand On Width of variable used to create unique gateway names. Minimum = "1," maxi= "5," (Default = "1"). GatewayNameStep Amount of increase in variable used for gateway name. Minimum = "1," maxi= "3,000." (Default = "1").
EXAMPLE

$Activity_MGCPServer1 agent.pm.endpoint_parameters.config \-NumGateways

4 \-EndpointPhonePrefix

"" \-EndpointNameSuffix

"" \-EndpointPhoneStartAt

1000 \-EndpointNameExpandOn

1 \-GatewayNamePrefix

"ix" \-NumberOfEndpoints

2 \-GatewayNameStep

1 \-EndpointNameStartAt

0 \-EndpointNameStep

1 \-EndpointPhoneStep

1 \-GatewayNameStartAt

3000 \-UseCustomNames

false \-EndpointPhoneSuffix

"" \-EndpointNamePrefix

IxLoad Tcl API Programming Guide

513

Bulk MGCP
"aaln/" \-GatewayNameSuffix GatewayNameExpandOn
SEE ALSO
MGCP Server Agent

".ixia-lab.com" \1

514

IxLoad Tcl API Programming Guide

Bulk MGCP

Custom Endpoint Names
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_MGCPServer1 [$Traffic2_Network2 activityList.appendItem options...] $set Activity_MGCPServer1 agentList(0).pm.customNamesList \ endpoint_names
DESCRIPTION
Retrieves the list of custom endpoint names generated by Endpoint Names.
SUBCOMMANDS
None.
OPTIONS
endpoint_names List of custom endpoint names to be used. This is a list of Custom Name objects, which have the following format:

Value

Description

endpoint_name

Endpoint name. Default={}.

destination_number Phone number of endpoint. Default={}.

EXAMPLE
$set Activity_MGCPServer1 agentList(0).pm.customNamesList\ endpoint_names
SEE ALSO
Endpoint Names

IxLoad Tcl API Programming Guide

515

Bulk MGCP
Bulk MGCP Statistics
For Bulk MGCP statistics, see the following: Bulk MGCP Client Statistics Bulk MGCP Server Statistics

516

IxLoad Tcl API Programming Guide

Bulk MGCP

Bulk MGCP Client Statistics
The following table describes the Bulk MGCP Client statistics.

Statistic Objectives Statistics MGCP Simulated Users MGCP connections initiated
MGCP connections completed
MGCP connections active MGCP connections failed busy
MGCP connections failed reorder
Total Message Statistics Total MGCP Messages Sent Total MGCP Messages Received
Total MGCP Messages Malformed
NTFY messages NTFY sent
NTFY recv
NTFY success
NTFY failed

Description
Number of MGCP users simulated during the test. Number of MGCP connections initiated during the test. Number of MGCP connections successfully completed during the test. Number of MGCP connections active. Number of MGCP connections that failed because they received a Busy tone. Number of initiated MGCP connections that failed because they received a Reorder tone.
Total number of MGCP messages sent by the client. Total number of MGCP messages received by the client. Total number of malformed MGCP messages received by the client.
Number of NTFY (Notify) messages sent by the client. Number of NTFY (Notify) messages received by the client. Number of NTFY (Notify) messages sent by the client that succeeded. Number of NTFY (Notify) messages sent by the client that failed.

IxLoad Tcl API Programming Guide

517

Bulk MGCP
NTFY dial sent NTFY dial recv NTFY dial success NTFY dial failed CRCX messages CRCX sent CRCX recv CRCX success CRCX failed MDCX messages MDCX sent MDCX recv MDCX success MDCX failed DLCX messages DLCX sent DLCX recv
518

Number of NTFY (Notify) dialing messages sent by the client. Number of NTFY (Notify) dialing messages received by the client. Number of NTFY (Notify) dialing messages sent by the client that succeeded. Number of NTFY (Notify) dialing messages sent by the client that failed.
Number of CRCX (Create Connection) messages sent by the client. Number of CRCX (Create Connection) messages received by the client. Number of CRCX (Create Connection) messages sent by the client that succeeded. Number of CRCX (Create Connection) messages sent by the client that failed.
Number of MDCX (Modify Connection) messages sent by the client. Number of MDCX (Modify Connection) messages received by the client. Number of MDCX (Modify Connection) messages sent by the client that succeeded. Number of MDCX (Modify Connection) messages sent by the client that failed.
Number of DLCX (Delete Connection) messages sent by the client. Number of DLCX (Delete Connection) messages received by the client.
IxLoad Tcl API Programming Guide

DLCX success DLCX failed RQNT messages RQNT sent RQNT recv RQNT success RQNT failed AUEP messages AUEP sent AUEP recv AUEP success AUEP failed AUCX messages AUCX sent AUCX recv AUCX success AUCX failed

Bulk MGCP
Number of DLCX (Delete Connection) messages sent by the client that succeeded. Number of DLCX (Delete Connection) messages sent by the client that failed.
Number of RQNT (Notification Request) messages sent by the client. Number of RQNT (Notification Request) messages received by the client. Number of RQNT (Notification Request) messages sent by the client that succeeded. Number of RQNT (Notification Request) messages sent by the client that failed.
Number of AUEP (Audit Endpoint) messages sent by the client. Number of AUEP (Audit Endpoint) messages received by the client. Number of AUEP (Audit Endpoint) messages sent by the client that succeeded. Number of AUEP (Audit Endpoint) messages sent by the client that failed.
Number of AUCX (Audit Connection) messages sent by the client. Number of AUCX (Audit Connection) messages received by the client. Number of AUCX (Audit Connection) messages sent by the client that succeeded. Number of AUCX (Audit Connection) messages sent by the client that failed.

IxLoad Tcl API Programming Guide

519

Bulk MGCP
EPCF messages EPCF sent EPCF recv EPCF success EPCF failed RSIP messages RSIP sent RSIP recv RSIP success RSIP failed 1XX Responses Responses_1XX sent
Responses_1XX recv 2XX Responses Responses_2XX sent
Responses_2XX recv XX Responses
520

Number of EPCF (Endpoint Configuration) messages sent by the client. Number of EPCF (Endpoint Configuration) messages received by the client. Number of EPCF (Endpoint Configuration) messages sent by the client that succeeded. Number of EPCF (Endpoint Configuration) messages sent by the client that failed.
Number of RSIP (Restart in Progress) messages sent by the client. Number of RSIP (Restart in Progress) messages received by the client. Number of RSIP (Restart in Progress) messages sent by the client that succeeded. Number of RSIP (Restart in Progress) messages sent by the client that failed.
Number of 100-series responses sent by the client. 100-series responses indicate provisional responses. Number of 100-series responses received by the client.
Number of 200-series responses sent by the client. 200-series responses indicate successful completion. Number of 200-series responses received by the client.
IxLoad Tcl API Programming Guide

Bulk MGCP

Responses_3XX sent

Number of 300-series responses sent by the client.

Responses_3XX recv

Number of 300-series responses received by the client.

4XX Responses

Responses_4XX sent

Number of 400-series responses sent by the client. 400-series responses indicate a transient error.

Responses_4XX recv

Number of 400-series responses received by the client.

5XX Responses

Responses_5XX sent

Number of 500-series responses sent by the client. 500-series responses indicate a permanent error.

Responses_5XX recv

Number of 500-series responses received by the client.

RTP: Global Stream Transmit Statistics

RTP Bytes Sent

Total number of bytes sent, including header and payload.

RTP Packets Sent

Total number of packets sent.

RTP Tx Jitter (ns)

Average amount of transmit jitter, in nanoseconds.

RTP Tx Packets Dropped

Number of packets transmitted by the client that were dropped.

RTP: Global Stream Statistics

RTP Dropped Packets

Number of RTP packets dropped.

RTP Bytes Received

Number of RTP bytes received.

RTP Packets Received

Number of RTP packets received.

RTP Payload Bytes Received

Number bytes received in RTP payloads.

RTP Bad Packets Received

Number of defective RTP packets received.

RTP Lost Packets

Number of packets lost.

RTP Misordered Packets Received

Number of packets received out of order.

IxLoad Tcl API Programming Guide

521

Bulk MGCP

RTP Duplicate Packets Received

Number of duplicate packets received.

RTP Jitter Min

Smallest amount of jitter detected.

RTP Jitter Max

Largest amount of jitter detected.

RTP Packets With Jitter Up To 1ms

Packets received with jitter of up to 1ms.

RTP Packets With Jitter Up To 3ms

Packets received with jitter of 1-3ms.

RTP Packets With Jitter Up To 5ms

Packets received with jitter of 3-5ms.

RTP Packets With Jitter Up To 10ms

Packets received with jitter of 5-10ms.

RTP Packets With Jitter Up To 20ms

Packets received with jitter of 10-20ms

RTP Packets With Jitter Up To 40ms

Packets received with jitter of 20-40ms

RTP Packets With Jitter More Than 40ms

Packets received with jitter of more than 40ms.

RTP DTMFs Detected

Total number of path confirmation DTMF tone sequences sent.

RTP Good DTMF Sequences Detected

Total number of correct path confirmation DTMF tone sequences received.

RTP Bad DTMF Sequences Detected

Total number of incorrect path confirmation DTMF tone sequences received.

RTP Packets Dropped By Jitter Buffer

Number of packet dropped from the jitter buffer because they arrived later than expected.

Note: In the CSV files, global MOS scores are represented as whole numbers (for example, "345"); in StatViewer (they are represented as floating-point numbers (for example, "3.45").

RTP MOS Average Instant

Average MOS score at the time of the sampling interval.

RTP MOS Worst Instant

Lowest MOS score at the time of the sampling interval.

RTP MOS Best Instant

Highest MOS score at the time of the sampling interval.

RTP MOS Worst

Lowest MOS score recorded during the test.

RTP MOS Best

Highest MOS score recorded during the test.

522

IxLoad Tcl API Programming Guide

Bulk MGCP

RTP MOS Average Per Call

Average MOS score per call.

RTP MOS Worst Per Call

Lowest MOS score per call.

RTP MOS Best Per Call

Highest MOS score per call.

RTP Calls With Continuous Path Confirmation Number of calls on which path confirmation continued througout the call.

RTP Calls With Interrupted Path Confirmation Number of calls on which path confirmation was interrupted during the call.

RTP Calls Without Path Confirmation

Number of calls on which there was no path confirmation.

Transport Statistics

MGCP Bytes Transmitted

Number of MGCP bytes transmitted.

MGCP Bytes Received

Number of MGCP bytes received.

MGCP Signaling UDP Packets Transmitted

Number of UDP packets containing MGCP signaling bytes transmitted.

MGCP Signaling UDP Packets Received

Number of UDP packets containing MGCP signaling bytes received.

Per-Stream Statistics

RTP Path Confirmation Status

Status of path confirmation on the stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

RTP MOS

Average MOS score recorded on the stream.

RTP Worst MOS

Lowest MOS score recorded on the stream.

RTP Best MOS

Highest MOS score recorded on the stream.

RTP Bytes

Number of bytes transmitted on the stream.

RTP Packets

Number of packets transmitted on the stream.

RTP Bad Packets

Number of bad packets transmitted on the stream.

RTP Lost Packets

Number of packets lost on the stream.

IxLoad Tcl API Programming Guide

523

Bulk MGCP

RTP Missorder Packets RTP Duplicate Packets RTP Packets With Jitter Up To 1ms RTP Packets With Jitter Up To 3ms RTP Packets With Jitter Up To 5ms RTP Packets With Jitter Up To 10ms RTP Packets With Jitter Up To 20ms RTP Packets With Jitter Up To 40ms RTP Packets With Jitter More Than 40ms RTP Average Jitter (ns) RTP Min Jitter (ns) RTP Max Jitter (ns) RTP DTMFs Detected RTP Good DTMF Sequences Detected RTP Bad DTMF Sequences Detected RTP Packets Dropped By Jitter Buffer

Number of packets received out of order on the stream.
Number of duplicate packets received on the stream.
Number of packets received on the stream with jitter up to 1 millisecond.
Number of packets received on the stream with jitter up to 3 milliseconds.
Number of packets received on the stream with jitter up to 5 milliseconds.
Number of packets received on the stream with jitter up to 10 milliseconds.
Number of packets received on the stream with jitter up to 20 milliseconds.
Number of packets received on the stream with jitter up to 40 milliseconds.
Number of packets received on the stream with jitter over 40 milliseconds.
Average jitter, in nanoseconds.
Lowest jitter recorded, in nanoseconds.
Largest jitter recorded, in nanoseconds.
Total number of path confirmation DTMF tone sequences sent.
Total number of correct path confirmation DTMF tone sequences received.
Total number of incorrect path confirmation DTMF tone sequences received.
Total number of packets dropped from the jitter buffer because they were received late.

524

IxLoad Tcl API Programming Guide

Bulk MGCP

IxLoad Tcl API Programming Guide

525

Bulk MGCP

Bulk MGCP Server Statistics
The following table describes the Bulk MGCP Server statistics.

Statistic

Description

Total MGCP Commands Received

Total number of MGCP commands received by the server

Total MGCP Responses Received

Total number of MGCP responses received by the server.

Total MGCP Commands Sent

Total number of MGCP commands sent by the server.

Total MGCP Responses Sent Total number of MGCP responses sent by the server.

Total MGCP Received Malformed Messages

Total number of malformed MGCP messages received by the server.

NTFY messages

NTFY sent

Number of NTFY (Notify) messages sent by the server.

NTFY recv

Number of NTFY (Notify) messages received by the server.

NTFY success

Number of NTFY (Notify) messages sent by the server that succeeded.

NTFY failed

Number of NTFY (Notify) messages sent by the server that failed.

NTFY dial sent

Number of NTFY (Notify) dialing messages sent by the server.

NTFY dial recv

Number of NTFY (Notify) dialing messages received by the server.

NTFY dial success

Number of NTFY (Notify) dialing messages sent by the server that succeeded.

NTFY dial failed

Number of NTFY (Notify) dialing messages sent by the server that failed.

CRCX messages

CRCX sent

Number of CRCX (Create Connection) messages sent by the server.

CRCX recv

Number of CRCX (Create Connection) messages received by the server.

526

IxLoad Tcl API Programming Guide

CRCX success CRCX failed MDCX messages MDCX sent MDCX recv MDCX success MDCX failed DLCX messages DLCX sent DLCX recv DLCX success DLCX failed RQNT messages RQNT sent RQNT recv RQNT success RQNT failed AUEP messages AUEP sent

Bulk MGCP
Number of CRCX (Create Connection) messages sent by the server that succeeded. Number of CRCX (Create Connection) messages sent by the server that failed.
Number of MDCX (Modify Connection) messages sent by the server. Number of MDCX (Modify Connection) messages received by the server. Number of MDCX (Modify Connection) messages sent by the server that succeeded. Number of MDCX (Modify Connection) messages sent by the server that failed.
Number of DLCX (Delete Connection) messages sent by the server. Number of DLCX (Delete Connection) messages received by the server. Number of DLCX (Delete Connection) messages sent by the server that succeeded. Number of DLCX (Delete Connection) messages sent by the server that failed.
Number of RQNT (Notification Request) messages sent by the server. Number of RQNT (Notification Request) messages received by the server. Number of RQNT (Notification Request) messages sent by the server that succeeded. Number of RQNT (Notification Request) messages sent by the server that failed.
Number of AUEP (Audit Endpoint) messages sent by the server.

IxLoad Tcl API Programming Guide

527

Bulk MGCP
AUEP recv AUEP success AUEP failed AUCX messages AUCX sent AUCX recv AUCX success AUCX failed EPCF messages EPCF sent EPCF recv EPCF success EPCF failed RSIP messages RSIP sent RSIP recv RSIP success RSIP failed 1XX Responses

Number of AUEP (Audit Endpoint) messages received by the server. Number of AUEP (Audit Endpoint) messages sent by the server that succeeded. Number of AUEP (Audit Endpoint) messages sent by the server that failed.
Number of AUCX (Audit Connection) messages sent by the server. Number of AUCX (Audit Connection) messages received by the server. Number of AUCX (Audit Connection) messages sent by the server that succeeded. Number of AUCX (Audit Connection) messages sent by the server that failed.
Number of EPCF (Endpoint Configuration) messages sent by the server. Number of EPCF (Endpoint Configuration) messages received by the server. Number of EPCF (Endpoint Configuration) messages sent by the server that succeeded. Number of EPCF (Endpoint Configuration) messages sent by the server that failed.
Number of RSIP (Restart in Progress) messages sent by the server. Number of RSIP (Restart in Progress) messages received by the server. Number of RSIP (Restart in Progress) messages sent by the server that succeeded. Number of RSIP (Restart in Progress) messages sent by the server that failed.

528

IxLoad Tcl API Programming Guide

Bulk MGCP

Responses_1XX sent

Number of 100-series responses sent by the server. 100-series responses indicate provisional responses.

Responses_1XX recv

Number of 100-series responses received by the server.

2XX Responses

Responses_2XX sent

Number of 200-series responses sent by the server. 200-series responses indicate successful completion.

Responses_2XX recv

Number of 200-series responses received by the server.

3XX Responses

Responses_3XX sent

Number of 300-series responses sent by the server.

Responses_3XX recv

Number of 300-series responses received by the server.

4XX Responses

Responses_4XX sent

Number of 400-series responses sent by the server. 400-series responses indicate a transient error.

Responses_4XX recv

Number of 400-series responses received by the server.

5XX Responses

Responses_5XX sent

Number of 500-series responses sent by the server. 500-series responses indicate a permanent error.

Responses_5XX recv

Number of 500-series responses received by the server.

Transport Statistics

MGCP Signaling Bytes Transmitted

Number of MGCP signaling bytes transmitted.

MGCP Signaling Bytes Received

Number of MGCP signaling bytes received.

MGCP Signaling UDP Pack- Number of UDP packets containing MGCP signaling bytes transmitted. ets Transmitted

MGCP Signaling UDP Pack- Number of UDP packets containing MGCP signaling bytes received. ets Received

Objectives Statistics

IxLoad Tcl API Programming Guide

529

Bulk MGCP

MGCP Simulated Users

Number of MGCP users simulated during the test.

MGCP connections initiated Number of MGCP connections initiated during the test.

MGCP connections completed

Number of MGCP connections successfully completed during the test.

MGCP connections active

Number of MGCP connections active.

MGCP connections failed busy

Number of MGCP connections that failed because they received a Busy tone.

MGCP connections failed reorder

Number of initiated MGCP connections that failed because they received a Reorder tone.

530

IxLoad Tcl API Programming Guide

Bulk SIP
This section describes the SIP Tcl API objects.
Overview
The IxLoad SIP API consists of a client agent, a server agent, and their com

IxLoad Tcl API Programming Guide

531

Bulk SIP
Objectives
The objectives (userObjective) you can set for SIP are listed below. Test objecare set in the ixTimeline object.
l simulatedUsers l useragents l transactionRate l bhca l callsPerSec (displays as "Calls Initiated Per Second" in the GUI) l registrationsinitiated (displays as "Registrations Initiated Per Second" in the GUI) l redirectionsinitiated (displays as "Redirections Initiated Per Second" in the GUI)

532

IxLoad Tcl API Programming Guide

SIP Client Commands
This section describes the SIP client Tcl API objects.

Bulk SIP

IxLoad Tcl API Programming Guide

533

Bulk SIP

SIP Client Agent
The SIP Client Agent command defines a simulated user using SIP to establish and terminate sessions SIP. Refer to SIP Client Agent for a full description of this command. The most significant options of this command are listed below.

Option enable name

Description Enables the use of this client agent. The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

534

IxLoad Tcl API Programming Guide

Bulk SIP

General Settings
The SIP Client Agent General Settings command sets the SIP client agent's genconfiguration options. Refer to General Settings for a full description of this command. The most significant options of this command are listed below.

Option

Description

szAuthUsername User name to be registered with registrar.

szAuthPassword Password to be registered with registrar.

szAuthDomain Domain to be registered with registrar.

szTransport

Type of transport to be used.

nUdpPort

Port number to be used for sending and receiving SIP mesover UDP.

nTcpPort nUdpMaxSize szRegistrar bRegBefore
enableTosSIP
enableTosRtp
type_of_service_for_sip type_of_service_for_rtp

Port number to be used for sending and receiving SIP mesover TCP.
Maximum size, in Kb, of a SIP message that will be sent.
Host name or IP address and port number of registrar.
If true, before starting the Originate Call/EnCall --> Receive call process, the IxLoad SIP client registers with the proxy server.
Enables the setting of the TOS (Type of Service) bits in the header of the SIP packets.
Enables the setting of the TOS (Type of Service) bits in the header of the RTP data packets.
IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for the SIP packets.
IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for RTP data packets.

IxLoad Tcl API Programming Guide

535

Bulk SIP

Content of Messages
The SIP Client Agent Content of Messages command specifies the content of the SIP messages sent by the client. Refer to Content of Messages for a full descripof this command. The most significant options of this command are listed below.

Option

Description

bRoute

If true, IxLoad inserts a Route header field into the SIP mes

szRoute

If bRoute is true, this parameter specifies the Route header field used to force the request to follow a fixed route through a listed set of proxies.

bCompact

If true, IxLoad uses the compact forms of the SIP header field notations.

bFolding

If true, the VIA field spans two lines. Some SIP devices many not be able to handle this.

bScattered

If true, IxLoad moves the header fields around in the mesin order to make it more difficult for the DUT to decode the message.

bAdvisable

If true, the SIP request includes the header fields that are defined as `mandatory' by the SIP RFC (RFC 3261), plus those that are recommended as `advisable.'

bOptional

If true, the SIP request includes the header fields that are defined as `mandatory' by the SIP RFC (RFC 3261), plus those that are listed as `optional.'

bBestPerformance If true, IxLoad inserts the headers into the message so that the message can be processed as quickly as possible by the receiving system.

szREQUESTURI

User or service to which the SIP request is being addressed.

szFROM

Initiator of the SIP request.

szTO

Logical recipient of the request.

szCONTACT

Contact header field.

rulesTable

Rules defining how this message will be handled.

536

IxLoad Tcl API Programming Guide

Bulk SIP

Rules
The SIP Client Agent Rules command defines a rule for handling a SIP message. Refer to Rules for a full description of this command. The most significant options of this command are listed below.

Option

Description

szMessage Type of message the rule will apply to.

szAction Action that rule performs.

szValue

Numerical value for the szAction.

IxLoad Tcl API Programming Guide

537

Bulk SIP

State Machine
The SIP Client Agent State Machine command configures the SIP client agent's internal timers and other parameters of its state machine. Refer to State Machine for a full description of this command. The most significant options of this comare listed below.

Option

Description

nTimersT1

Estimate of the round-trip time (RTT).

nTimersT2

Maximum retransmit interval, in milliseconds (ms), for non-INVITE requests and INVITE responses.

nTimersT4

Maximum length of time, in milliseconds (ms), that a message will remain in the network.

nTimersTC

Proxy INVITE transaction timeout.

nTimersTD

Wait time for response retransmits.

bUseTimer

If true, IxLoad enforces a timeout limit on transactions.

nTimeout

Transaction timeout interval.

bRecv5xx

If true and IxLoad receives a 5xx series response to a transaction, IxLoad marks it as a failed transaction, and increments the transfailure statistics.

nReRegDuration In the event that IxLoad fails to register with a registrar, this field defines the amount of time allowed to re-registration.

bNextOnFail

If true and IxLoad encounters a transaction failure, it continues processing SIP requests.

538

IxLoad Tcl API Programming Guide

Bulk SIP

Media Settings
The SIP Client Agent Media Settings command selects and configures the streaming audio files for the multimedia session that the client will play over RTP. Refer to Media Settings for a full description of this command. The most significant options of this command are listed below.

Option

Description

szCodecName

Codec to be used to encode waveform audio files listed in the Audio Clips Pool.

szCodecDetails

Displays the properties of the codec such as the number of bytes per frame of compressed audio, and the rate at which packets are sent over the connection.

szCodecDescr

Codec description.

bModifyPowerLevel If true, IxLoad modifies the volume of the compressed audio.

szPowerLevel

If bModifyPowerLevel is true, this parameter specifies the amount of gain (volume) added to compressed audio.

bUseJitter

Enables or disables use of the jitter buffer.

bJitMs

Defines the method used to set the jitter buffer size.

nJitterBuffer

Jitter Buffer size, in packets.

nJitterMs

Jitter Buffer size, in milliseconds.

bUseCompensation Enables or disables use of the compensation jitter buffer.

bCompMs

Defines the method used to set the compensation jitter buffer size.

nCompJitterBuffer

Compensation jitter buffer maximum size, in packets.

nCompJitterMs

Compensation jitter buffer maximum size, in milliseconds.

nCompMaxDropped Maximum dropped consecutive packets.

bUseMOS

Enables or disables use of MOS.

bMosOnMax

Defines whether MOS is calculated for a subset of streams or for all streams.

nMosMaxStreams

Maximum number of concurrent streams used in MOS calcu

nMosInterval

Frequency at which IxLoad samples the RTP streams to genthe MOS scores.

IxLoad Tcl API Programming Guide

539

Bulk SIP

nDtmfDuration

Length of time allowed to play the DTMF sequence.

nDtmfInterdigits

Duration (in milliseconds) of the DTMF interdigit signal.

bLimitDtmf

Enable or disable limitation on the number of DTMF streams to be processed.

nDtmfStreams

Number of streams to which path confirmation will be applied.

nPcInterval

If Synthetic path confirmation is selected, this is the interval at which IxLoad add the synthetic RTP packets to the stream.

nSessionType

Type of voice session.

szDtmfSeq

DTMF sequence used for path confirmation.

szPeerCodecName Name of codec used by peer.

szPeerCodecDetails Details of codec used by peer.

szPeerDtmfSeq

DTMF sequence used by peer.

nPeerDtmfDuration DTMF duration used by peer.

nPeerDtmfInterdigits Inter-digits interval used by peer.

audioClipsTable

This list contains the waveform audio files that the SIP client will play.

540

IxLoad Tcl API Programming Guide

Bulk SIP

Audio Clips Pool
The SIP Client Agent Audio Clips Pool defines an audio file to be included in the list that the SIP client will play. Refer to Audio Clips Pool for a full description of this command. The most significant options of this command are listed below.

Option szWaveName szDataFormat nSampleRate

Description Waveform audio (.wav) file. Encoding format of waveform audio file. Number of samples taken per second from the recording source.

nResolution

Number of bits per sample.

nChannels

Number of audio channels.

nDuration

Playing time of audio file.

nSize

Size of audio file, in bytes.

szRawWaveName Name and path of wave file to be added to the list.

IxLoad Tcl API Programming Guide

541

Bulk SIP

Video Settings
The Video Settings tab defines the controls that you can use to define the paramof the synthetic video the SIP server generates for a MEDIASESSION sceRefer to Video Settings for a full description of this command. The most significant options of this command are listed below.

Option

Description

videoBitrate

Bit rate of generated (synthetic) video data.

videoBitrateLimit The videoBitrate limit in Kbps.

542

IxLoad Tcl API Programming Guide

Bulk SIP

Scenarios
The SIP Client Agent Scenarios is the list of SIP commands that the client will send to a SIP server. Refer to Scenarios for a full description of this command. The most significant options of this command are listed below.

Option Description

id

SIP command to be executed.

IxLoad Tcl API Programming Guide

543

Bulk SIP
SIP Server Commands
The structure of the SIP server API is shown below.

544

IxLoad Tcl API Programming Guide

Bulk SIP

SIP Server Agent
The SIP Server Agent command defines a simulated user using SIP to establish and terminate sessions SIP. Refer to SIP Server Agent for a full description of this command. The most significant options of this command are listed below.

Option Description

enable Enables the use of this client agent.

name The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

IxLoad Tcl API Programming Guide

545

Bulk SIP
General Settings
The SIP Server Agent General Settings command sets the SIP server agent's genconfiguration options. The options for this command are similar to those for the SIP client agent.

546

IxLoad Tcl API Programming Guide

Bulk SIP
Content of Messages
The SIP Server Agent Content of Messages command specifies the content of the SIP messages sent by the server. The options for this command are similar to those for the SIP client agent.

IxLoad Tcl API Programming Guide

547

Bulk SIP
Rules
The SIP Server Agent Rules command defines a rule for handling a SIP message. The options for this command are similar to those for the SIP client agent.

548

IxLoad Tcl API Programming Guide

Bulk SIP
State Machine
The SIP Server Agent State Machine command configures the SIP server agent's internal timers and other parameters of its state machine. The options for this command are similar to those for the SIP client agent.

IxLoad Tcl API Programming Guide

549

Bulk SIP
Media Settings
The SIP Server Agent Media Settings command selects and configures the streaming audio files for the multimedia session that the server will play over RTP. The options for this command are similar to those for the SIP client agent.

550

IxLoad Tcl API Programming Guide

Bulk SIP
Audio Clips Pool
The SIP Server Agent Audio Clips Pool defines an audio file to be included in the list that the SIP server will play. The options for this command are similar to those for the SIP client agent.

IxLoad Tcl API Programming Guide

551

Bulk SIP
Scenarios
The SIP Server Agent Scenarios is the list of SIP commands that the server will send to a SIP client. The options for this command are similar to those for the SIP client agent.

552

IxLoad Tcl API Programming Guide

Bulk SIP

SIP Client Agent
SIP Client Agent - create a SIP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.config
DESCRIPTION
An SIP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity SIPClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"SIP Client" ]################################################## Timeline1 for activ-

ities SIPClient1#################################################set Timeline1

[::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_SIPClient1 config

\-enable

true \-name

"SIPClient1" \-enableConstraint

false \-userObjectiveValue

IxLoad Tcl API Programming Guide

553

Bulk SIP

100 \-constraintValue

100 \-userObjectiveType

"useragents" \-timeline

$Timeline1$Activity_SIPCli-

ent1 agent.config \-enable

true \-name

"SIPClient1"$Activity_SIPClient1 agent.pm.generalSettings.config \-dhcpServerPort

5060 \-ipv6Form

0 \-bRemoveCredent

false \-bRegBefore

false \-type_of_service_for_rtp

"Best Effort (0x0)" \-_gbDhcpServerPort

false \-nUdpMaxSize

1024 \-nUdpPort

5060 \-szAuthDomain

"domain\[0000-\]" \-vlan_priority_sip

0 \-useDhcp

false \-enableTosSIP

false \-implicitLoopCheck

true \-ipPreference

0 \-_gbIpPreference

false \-nPrefQop

0 \-szRegistrar

"127.0.0.1:5060" \-enableVlanPriority_for_sip

false \-nTcpPort

5060 \-szTransport

"UDP" \-szAuthPassword

"password\[0000-\]" \-type_of_service_for_sip

"Best Effort (0x0)" \-

szAuthUsername

"user\[0000-\]" \-enableTosRTP

false \-compressZeros

false$Activity_SIPClient1 agent.p-

m.mediaSettings.config \-nPcInterval

500 \-nJitterBuffer

1 \-nDtmfInterdigits

40 \-nCompMaxDropped

7 \-nPeerDtmfDuration

0 \-nJitterMs

20 \-bSilenceMode

1 \-nAudioPoolTime

1178615586 \-szBitRate

"64 kbps" \-nDtmfDuration

100 \-szPeerCodecName

"" \-szSilenceFile

"" \-bytesPerFrameBuffer

"" \-groupBox_MOS1

false \-szPeerCodecDetails

"" \-bMosOnMax

0 \-groupBox_JB1

false \-nMosInterval

3 \-nCompJitterBuffer

50 \-bUseJitter

false \-szCodecName

"G711ALaw" \-szPeerDtmfSeq

"" \-bLimitDtmf

true \-bUseMOS

false \-bJitMs

0 \-szCodecDescr

"ITU-T G.711 is a standard to represent 8 bit compressed pulse code modulation (PCM)

samples for signals of voice frequencies, sampled at the rate of 8000

samples/second. G.711 encoder will create a 64 Kbps bitstream. A-Law G.711 PCM

encoder converts 13 bit linear PCM samples into 8 bit compressed PCM (logarithmic

form) samples, and the decoder does the conversion vice versa." \-bCompMs

0 \-nDtmfStreams

10 \-packetTimeBuffer

"" \-szPowerLevel

"PL_20" \-szDtmfSeq

"12345" \-nCompJitterMs

1000 \-nPeerDtmfInterdigits

0 \-bRtpStartCollector

false \-nMosMaxStreams

1 \-szCodecDetails

"BF160PT20" \-nSessionType

0 \-bUseSilence

false \-bModifyPowerLevel

false \-bUseCompensation

false$Activity_SIPClient1 agent.p-

m.contentOfMessages.config \-bFolding

false \-

bBestPerformance

1 \-szRoute

"Route: <sip:p1.example.com;lr>,<sip:p2.domain.com;lr>" \-bOptional

false \-szCONTACT

"<sip:id\[00000-\]@IP>" \-bAdvisable

false \-bCompact

false \-bRoute

554

IxLoad Tcl API Programming Guide

Bulk SIP

false \-szFROM

"<sip:id\[00000-\]@IP>" \-szTO

"<sip:id\[50000-\]@IP>" \-szREQUESTURI

"sip:id\[50000-

\]@IP" \-bScattered

false$Activity_SIPClient1 agent.p-

m.contentOfMessages.rulesTable.clear$Activity_SIPClient1 agent.p-

m.stateMachine.config \-bNextOnFail

true \-nTimersT4

5000 \-nReRegDuration

0 \-nTimersT1

500 \-nTimersT2

4000 \-bUseTimer

false \-nTimeout

30000 \-nTimersTD

32000 \-nTimersTC

180000 \-bRecv5xx

false$Activity_SIPClient1 agent.pm.videoSettings.config \-videoBitrate

128.0 \-videoBitrateLimit

0$Activity_SIPClient1 agent.p-

m.scenarios.clear$Activity_SIPClient1 agent.pm.scenarios.appendItem \-id

"ORIGINATECALL" \-symDestination

"Traffic2_SIPServer1:5060"

\-bNextCommandIsDetect

false \-isLastCmd

false \-useDhcpForOriginate

false \-hasVideo

false \-_gbDhcpServerPortForOriginate

false \-dhcpServerPortForOriginate

5060$Activity_SIPClient1 agent.pm.scenarios.appendItem \-id

"ENDCALL" \-isLastCmd

false \-szDummy03

""$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.clear$Activity_SIPClient1

agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Best Effort

(0x0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 1

(0x20)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 2

(0x40)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 3

(0x60)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 4

(0x80)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Express Forwarding

(0xA0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Control

(0xC0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Best Effort

(0x0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.clear$Activity_SIPClient1

agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Best Effort

(0x0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 1

(0x20)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 2

(0x40)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 3

(0x60)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 4

(0x80)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

IxLoad Tcl API Programming Guide

555

Bulk SIP

"TypeOfServiceForSIP" \-tos_val_for_sip

"Express Forwarding

(0xA0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Control

(0xC0)"$Activity_SIPClient1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Best Effort (0x0)"

SEE ALSO

ixNetTraffic

556

IxLoad Tcl API Programming Guide

Bulk SIP
General Settings
General Settings--Sets the SIP client agent's general configuration options.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.pm.generalSettings.config
DESCRIPTION
A SIP client's advanced configuration options are set by modifying the options of the pm.generalSettings option of the SIP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
ipv6Form Specifies 0 (ipv4) or 1 (ipv6) to determine the types of networks (in the ixNetTraffic) that the SIP client and server use. All the fields that support IPv4 addresses also support IPv6 addresses. There are two methods for entering IPv6 addresses in SIP fields: in square brackets ([ ]) or in vertical bar (pipe) symbols ( | ). For the following options, enclose the address in square brackets ([ ]). For example [::C212:1003]:5060
l szRegistrar; l ORIGINATECALL command l REGISTRATION command l REDIRECTION command For information on these options, see Scenarios. In the Content of Messages object, the following four options accept IPV6 addresses. Enclose the address for these options in vertical bar (pipe) symbols ( | ). (square brackets are used to enclose sequence generators). The options are:
szREQUESTURI szFROM szTO szCONTACT szAuthUsername

IxLoad Tcl API Programming Guide

557

Bulk SIP

User name to be registered with registrar. You can include variables in this field to automatically generate large numbers of unique user names. See Using Variables in SIP Fields on page 20-80. Maximum length = 128 characters. (Default = "user[0000-]").
szAuthPassword
Password to be registered with registrar. You can include variables in this field to automatically generate large numbers of unique passwords. See Using Variables in SIP Fields on page 20-80. Maximum length = 128 characters. (Default = "password[0000-]").
szAuthDomain
Domain to be registered with registrar. You can include variables in this field to automatically generate large numbers of unique domains. See Using Variables in SIP Fields on page 20-80. Maximum length = 128 characters. (Default = "domain[0000-]").
szTransport
Type of transport to be used. The choices are:

Value Description

TCP IxLoad initially uses TCP as the transport. If the remote party answers using UDP, IxLoad accepts the response and switches to UDP as the trans

UDP

IxLoad initially uses UDP as the transport. If the remote party answers using TCP, IxLoad accepts the response and switches to TCP as the trans

Only IxLoad uses only TCP as the transport. If the remote party answers using UDP, IxLoad disTCP cards the response and continues using TCP.

Only IxLoad uses only UDP as the transport. If the remote party answers using TCP, IxLoad disUDP cards the response and continues using UDP.

nUdpPort Port number to be used for sending and receiving SIP messages over UDP. Mini= "1," maximum = "65,535." (Default = "5,060"). nTcpPort
Port number to be used for sending and receiving SIP messages over TCP. Mini= "1," maximum = "65,535." (Default = "5,060"). nUdpMaxSize
Maximum size, in Kb, of a SIP message that will be sent. If a message exceeds this size, IxLoad ignores it. szRegistrar

558

IxLoad Tcl API Programming Guide

Bulk SIP

Host name or IP address and port number of registrar. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "127.0.0.1:5060).
bRegBefore
If true, before starting the Originate Call/EnCall --> Receive call process, the IxLoad SIP client registers with the proxy server. Registration occurs only once at the beginning of the test. (Default = "0").
enableTosSIP
Enables the setting of the TOS (Type of Service) bits in the header of the SIP packets.

Value Description

0

(default) TOS bits disabled.

1

TOS bits enabled.

enableTosRtp Enables the setting of the TOS (Type of Service) bits in the header of the RTP data packets.

Value Description

0

(default) TOS bits disabled.

1

TOS bits enabled.

type_of_service_for_sip
If enableTosSIP is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

Value

Description

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

IxLoad Tcl API Programming Guide

559

Bulk SIP

"Control (0xC0)"

Internet-control

type_of_service_for_rtp
If enableTosRtp is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for RTP data packets. See type_of_service_for_sip for the list of choices. (Default = "Best Effort (0x0)").
enableVlanPriority_for_sip
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false).
vlanPriority
When enableVlanPriority is true, this option sets the vlan priority value.

EXAMPLE

$Activity_SIPClient1 agent.pm.generalSettings.config \-dhcpServerPort

5060 \-ipv6Form

0 \-bRemoveCredent

false \-bRegBefore

false \-type_of_service_for_rtp

"Best Effort (0x0)" \-_gbDhcpServerPort

false \-nUdpMaxSize

1024 \-nUdpPort

5060 \-szAuthDomain

"domain\[0000-\]" \-vlan_priority_sip

0 \-useDhcp

false \-enableTosSIP

false \-implicitLoopCheck

true \-ipPreference

0 \-_gbIpPreference

false \-nPrefQop

0 \-szRegistrar

"127.0.0.1:5060" \-enableVlanPriority_for_sip

false \-nTcpPort

5060 \-szTransport

"UDP" \-szAuthPassword

"password\[0000-\]" \-type_of_service_for_sip

"Best Effort (0x0)" \-

szAuthUsername

"user\[0000-\]" \-enableTosRTP

false \-compressZeros

false

SEE ALSO

SIP Client Agent

560

IxLoad Tcl API Programming Guide

Bulk SIP
Content of Messages
Content of Messages--Specifies the content of the SIP messages sent by the cli
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.pm.contentOfMessages.config
DESCRIPTION
A SIP client's advanced configuration options are set by modifying the options of the pm.contentOfMessages option of the SIP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
bRoute If true, IxLoad inserts a Route header field into the SIP message. The route should contain a list of specified proxies. Use the szRoute parameter to specify the route. (Default = "0"). szRoute If bRoute is true, this parameter specifies the Route header field used to force the request to follow a fixed route through a listed set of proxies. (Default = "Route: <sip:p1.example.com;lr>,<sip:p2.domain.com;lr>). bCompact If true, IxLoad uses the compact forms of the SIP header field notations.The compact form is intended for instances in which messages would otherwise become too large to be carried on the transport available to it (exceeding the maximum transmission unit [MTU] when using UDP, for example). (Default = "0"). bFolding If true, the VIA field spans two lines. Some SIP devices many not be able to handle this. (Default = "0"). bScattered If true, IxLoad moves the header fields around in the message in order to make it more difficult for the DUT to decode the message. (Default = "0"). bAdvisable

IxLoad Tcl API Programming Guide

561

Bulk SIP

If true, the SIP request includes the header fields that are defined as `mandatory' by the SIP RFC (RFC 3261), plus those that are recommended as `advisable.' (Default = "0").
bOptional
If true, the SIP request includes the header fields that are defined as `mandatory' by the SIP RFC (RFC 3261), plus those that are listed as `optional.' (Default = "0").
bBestPerformance
If true, IxLoad inserts the headers into the message so that the message can be processed as quickly as possible by the receiving system. If false, IxLoad inserts the headers into the message so that it requires maximum processing by the receiving system. (Default = "1").
szREQUESTURI
User or service to which the SIP request is being addressed. You can include variables iin this field to automatically generate large numbers of unique domains. Maximum length = 128 characters. This option also accepts IPV6 addresses that are enclosed in square brackets(Default = "sip:id [50000-]@IP").
szFROM
Initiator of the SIP request. You can include variables in this field to autogenerate large numbers of unique domains. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "sip:id[50000-]@IP").
szTO
Logical recipient of the request. You can include variables in this field to autogenerate large numbers of unique domains. Maximum length = 128 characters. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "sip:id[50000-]@IP").
szCONTACT
The Contact header field value provides a URI whose meaning depends on the type of request or response it is in.The Contact header field has a role similar to the Location header field in HTTP. You can include variables in this field to autogenerate large numbers of unique domains. See Using Variables in SIP Fields on page 20-80. Maximum length = 128 characters. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "sip:id[50000-]@IP").
rulesTable
This is a list of type Rules. The rules in this list define how this message will be handled. (Default = {}).

EXAMPLE

$Activity_SIPClient1 agent.pm.contentOfMessages.config \-bFolding

false \-bBestPerformance

1 \-szRoute

"Route: <sip:p1.example.com;lr>,<sip:p2.domain.com;lr>" \-bOptional

false \-szCONTACT

"<sip:id\[00000-\]@IP>" \-bAdvisable

false \-bCompact

false \-bRoute

562

IxLoad Tcl API Programming Guide

false \-szFROM "<sip:id\[50000-\]@IP>" \-szREQUESTURI \]@IP" \-bScattered
SEE ALSO
SIP Client Agent

Bulk SIP
"<sip:id\[00000-\]@IP>" \-szTO "sip:id\[50000-
false

IxLoad Tcl API Programming Guide

563

Bulk SIP
State Machine
State Machine--Configures the SIP client agent's internal timers and other parameters of its state machine.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.pm.stateMachine.config
DESCRIPTION
A SIP client's state machine parameters are set by modifying the options of the pm.StateMachine option of the SIP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
nTimersT1 Estimate of the round-trip time (RTT), in milliseconds (ms). (Default = "500"). nTimersT2 Maximum retransmit interval, in milliseconds (ms), for non-INVITE requests and INVITE responses. (Default = "4,000"). nTimersT4 Maximum length of time, in milliseconds (ms), that a message will remain in the network. (Defaultt="5,000"). nTimersTC Proxy INVITE transaction timeout. Minimum = 180,000. (Default = "180,000"). nTimersTD Wait time for response retransmits. For UDP, this must be greater than 32 sec(Default = "32,000"). bUseTimer If true, IxLoad enforces a timeout limit on transactions. If a transaction exceeds the timeout value, IxLoad marks it as a failed transaction, and increments the transaction failure statistics. (Default = "0"). nTimeout

564

IxLoad Tcl API Programming Guide

Bulk SIP

If bUseTimer is true, this parameter specifies the transaction timeout interval, in in milliseconds (ms). (Default = "30,000").
bRecv5xx

If true and IxLoad receives a 5xx series response to a transaction, IxLoad marks it as a failed transaction, and increments the transaction failure statistics. (Default = "0").
nReRegDuration

In the event that IxLoad fails to register with a registrar, this field defines the amount of time allowed to re-registration. Minimum = "0," maximum = "60,000." (Default = "0").
bNextOnFail

If true and IxLoad encounters a transaction failure, it continues processing SIP requests. If false and IxLoad encounters a transaction failure, it stops processing SIP requests. (Default = "1").

EXAMPLE

$Activity_SIPClient1 agent.pm.stateMachine.config \-bNextOnFail

true \-nTimersT4

5000 \-nReRegDuration

0 \-nTimersT1

500 \-nTimersT2

4000 \-bUseTimer

false \-nTimeout

30000 \-nTimersTD

32000 \-nTimersTC

180000 \-bRecv5xx

false

SEE ALSO

SIP Client Agent

IxLoad Tcl API Programming Guide

565

Bulk SIP

Media Settings
Media Settings--Selects and configures the streaming audio files for the multimedia session that the client will play over RTP.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.pm.mediaSettings.config

DESCRIPTION
A SIP client's advanced configuration options are set by modifying the options of the pm.mediaSettings option of the SIP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
szCodecName Codec to be used to encode waveform audio files listed in the Audio Clips Pool. The choices are:

Value

Description

"G711ALaw" (default) G.711 A-law

"G711ULaw" G.711 mu-law

"G729A"

G.729A

"G729B"

G.729B

"G726"

G.726

"G723_1"

G.723.1

szCodecDetails
Displays the properties of the codec such as the number of bytes per frame of compressed audio, and the rate at which packets are sent over the connection. (Default = {}). szCodecDetails from Media Settings has a special format: BFval1PTval2, where:

Value Description

566

IxLoad Tcl API Programming Guide

Bulk SIP

"val1" Number of codec bytes per frame (only the rtp payload; do not add the 12 bytes for the rtp header)
"val2" The packet time

These two options specify information about the packetization. szCodecDescr Codec description. (Default = {}). szBitRate This specifies the bit rate of the codec being used. Possible values are:

Codec

Bit Rate

G711Alaw 64 kbps

G711Ulaw 64 kbps

G723.1

5.3 kbps 6.3 kbps

G726

40 kbps

G729A

8 kbps

G729B

8 kbps

AMR

4.75 kbps 5.15 kbps 5.9 kbps 6.7 kbps 7.4 kbps 7.95 kbps 10.2 kbps 12.2 kbps

iLBC

13.33 kbps 15.2 kbps

bModifyPowerLevel If true, IxLoad modifies the volume of the compressed audio. (Default = "0"). szPowerLevel

IxLoad Tcl API Programming Guide

567

Bulk SIP

If bModifyPowerLevel is true, this parameter specifies the amount of gain (volume added to compressed audio. The choices are:

Value Description "PL0" (default) 0 dB "PL_10" -10 dB "PL_20" -20 dB "PL_30" -30 dB bUseJitter Enables or disables use of the jitter buffer. (Default = "0"). bJitMs Defines the method used to set the jitter buffer size.

Value Description

(Default). Jitter buffer size is set by nJitterBuffer. 0

1

Jitter buffer size is set by nJitterMs.

nJitterBuffer Number of packets to buffer in order to reduce jitter. Minimum = "0," maximum = "3." (Default = 0). nJitterMs Jitter Buffer size, in milliseconds. Minimum = "1," maximum = "3,000." (Default = "20"). bUseCompensation Enables or disables use of the compensation jitter buffer. (Default = "0"). bCompMs Defines the method used to set the compensation jitter buffer size.

Value Description

568

IxLoad Tcl API Programming Guide

Bulk SIP

0

(Default). Compensation jitter buffer size is set by nCompJitterBuffer.

1

Compensation jitter buffer size is set by nCompJitterMs.

nCompJitterBuffer Compensation jitter buffer maximum size, in packets. Minimum = "0," maxi= "300." (Default = "50"). nCompJitterMs Compensation jitter buffer maximum size, in milliseconds. Minimum = "0," maximum = "3,000." (Default = "1,000"). nCompMaxDropped Maximum dropped consecutive packets. Minimum = "1," maximum = "100," (Default = "7"). bUseMOS Enables or disables use of MOS. (Default = "0"). bMosOnMax Defines whether MOS is calculated for a subset of streams or for all streams.

Value Description

0

(Default). MOS calculation is applied to all streams.

1

MOS calculation is applied to the number of streams specified by nMosMax.

nMosMaxStreams Maximum number of concurrent streams used in MOS calculation. Minimum = "1." (Default = "1"). nMosInterval
Frequency at which IxLoad samples the RTP streams to generate the MOS scores. Minimum = "2," maximum = "30." (Default = "3"). nDtmfDuration
Length of time allowed to play the DTMF sequence. Minimum = "60," maxi= "999." (Default = "100"). nDtmfInterdigits
Duration (in milliseconds) of the DTMF interdigit signal. Minimum = "30," max= "9999." (Default = "40"). bLimitDtmf

IxLoad Tcl API Programming Guide

569

Bulk SIP

Enable or disable limitation on the number of DTMF streams to be processed. (Default = "1").

Value Description

0

DTMF applied to all streams.

1

(Default) DTMF limited to number of streams specified by nDtmfStreams.

nDtmfStreams Number of streams to which path confirmation will be applied. Minimum = "1," maximum = "900." (Default = "10"). nPcInterval
If Synthetic path confirmation is selected, this is the interval at which IxLoad add the synthetic RTP packets to the stream. Minimum = "1," (Default = "500"). nSessionType
Type of voice session. The choices are:

Value Description
(default) Plays audio file specified by szAudioFile. "0" "1" Perform DTMF path confirmation. "2" Perform synthetic DTMF path confirmation.
szDtmfSeq DTMF sequence used for path confirmation. (Default = "12,345"). szPeerCodecName Name of codec used by peer. (Default = {}). szPeerCodecDetails Details of codec used by peer. (Default = {}). szPeerDtmfSeq DTMF sequence used by peer. (Default = {}). nPeerDtmfDuration

570

IxLoad Tcl API Programming Guide

Bulk SIP

DTMF duration used by peer. (Default = "0"). nPeerDtmfInterdigits Inter-digits interval used by peer. (Default = "0"). audioClipsTable This is a list of type Audio Clips Pool. This list contains the waveform audio files that the SIP message will send. (Default = {}). bUseSilence If enabled, IxLoad generates and sends artificial background noise during times of silence during a call. bSilenceMode Indicates the method used to generate the background noise. Possible Values are:

Value Description "0" Comfort Noise silence type. "1" Null Data encoded silence type.

bRtpStartCollector Specifies, whether the statistics for rtp should be collected or not. Possible values are:

Value Description

0

Do not start

1

Start

EXAMPLE

$Activity_SIPClient1 agent.pm.mediaSettings.config \-nPcInterval

500 \-nJitterBuffer

1 \-nDtmfInterdigits

40 \-nCompMaxDropped

7 \-nPeerDtmfDuration

0 \-nJitterMs

20 \-bSilenceMode

1 \-nAudioPoolTime

1178615586 \-szBitRate

"64 kbps" \-nDtmfDuration

100 \-szPeerCodecName

"" \-szSilenceFile

"" \-bytesPerFrameBuffer

IxLoad Tcl API Programming Guide

571

Bulk SIP

"" \-groupBox_MOS1

false \-szPeerCodecDetails

"" \-bMosOnMax

0 \-groupBox_JB1

false \-nMosInterval

3 \-nCompJitterBuffer

50 \-bUseJitter

false \-szCodecName

"G711ALaw" \-szPeerDtmfSeq

"" \-bLimitDtmf

true \-bUseMOS

false \-bJitMs

0 \-szCodecDescr

"ITU-T G.711 is a standard to represent

8 bit compressed pulse code modulation (PCM) samples for signals of voice fre-

quencies, sampled at the rate of 8000 samples/second. G.711 encoder will create a 64

Kbps bitstream. A-Law G.711 PCM encoder converts 13 bit linear PCM samples into 8

bit compressed PCM (logarithmic form) samples, and the decoder does the conversion

vice versa." \-bCompMs

0 \-nDtmfStreams

10 \-packetTimeBuffer

"" \-szPowerLevel

"PL_20" \-szDtmfSeq

"12345" \-nCompJitterMs

1000 \-nPeerDtmfInterdigits

0 \-bRtpStartCollector

false \-nMosMaxStreams

1 \-szCodecDetails

"BF160PT20" \-nSessionType

0 \-bUseSilence

false \-bModifyPowerLevel

false \-bUseCompensation

false

SEE ALSO

SIP Client Agent

572

IxLoad Tcl API Programming Guide

Bulk SIP

Video Settings

Video Settings--Contains the controls that you can use to define the parameters of the synthetic video the SIP server generates for a MEDIASESSION scenario.

SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.pm.videoSettings.config \

DESCRIPTION
Video Settings is configured and added to an SIP activity.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
videoBitrate Bit rate of generated (synthetic) video data. videoBitrateLimit The videoBitrate limit in Kbps.

EXAMPLE

$Activity_SIPClient1 agent.pm.videoSettings.config \-videoBitrate

128.0 \-videoBitrateLimit

0$Activity_SIPClient1 agent.p-

m.scenarios.clear

SEE ALSO

Media Settings

IxLoad Tcl API Programming Guide

573

Bulk SIP

Scenarios
Scenarios--Creates the list of SIP commands that the client will send to a SIP server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SIPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_SIPClient1 agent.pm.scenarios.appendItem
DESCRIPTION
A command is added to the Scenarios object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id SIP command to be executed. One of the following:

Command

Description

REGISTRATION Registers the SIP client with a registrar. This option also accepts IPV6 addresses that are enclosed in square brackets.

ORIGINATECALL Sets up a multimedia session with the specified destination. This option also accepts IPV6 addresses that are enclosed in square brackets.

THINK

Pause during command list processing. You should include a {Think} command whenever necessary to allow the destination to process the preceding commands. You can configure a pause of fixed length or of random length.

ENDCALL

Terminates the SIP session.

REDIRECTION

Redirects the request for a SIP session from one proxy to another. This option also accepts IPV6 addresses that are enclosed in square brackets.

VOICESESSION

Plays one of the waveform audio files listed in the Audio Clips Pool on the Media Settings tab. The SIP client sends the file to the desticonfigured for the previous Originate Call command in the command list.

574

IxLoad Tcl API Programming Guide

Bulk SIP

GENERATEMF

Generates multi-frequency tone sequences. The sequences are encoded using a G.711 voice codec and sent in-band over RTP.

GENERATEDTMF Generates dual-tone multi-frequency sequences. The sequences are encoded using a G.711 voice codec and sent in-band over RTP.

GENERATETONE Generates tone sequences. The sequences are encoded using a G.711 voice codec and sent in-band over RTP.

DETECTDTMF

Detects the tones generated by the DETECTDTMF, DETECTMF, or DETECTTONE commands.

MEDIASESSION

Simulates a call made using a video phone. MEDIASESSION transaudio similar to the VOICESESSION command and, optionally, generates simulated video data. MEDIASESSION must be preceded by ORIGINATECALL and succeeded by ENDCALL.

Arguments for id = REGISTRATION
bUseDest
If true, the registration is sent to the address specified by szDestination. If false, the registration is sent to the Registrar configured by the General Settings com(Default = "1"). szDestination
Registrar that the registration will be sent to. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "127.0.0.1:5060").
Arguments for id = ORIGINATECALL
symDestination
Destination of the call. If the destination is an external host, specify its address or host name and port number. If the destination is an IxLoad SIP server agent, specify the name of the agent. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "None").
Arguments for id = THINK
nThinkMin
Minimum length of the pause, in milliseconds. To configure a fixed-length pause, enter the same value in this field and nThinkMax. (Default = "1,000"). nThinkMax
Maximum length of the pause, in milliseconds. To configure a fixed-length pause, enter the same value in this field and nThinkMin. (Default = "1,000").

IxLoad Tcl API Programming Guide

575

Bulk SIP
Arguments for id = ENDCALL
None.
Arguments for id = REDIRECTION
szDestination Address of the proxy to which the request is to be redirected to. This option also accepts IPV6 addresses that are enclosed in square brackets. (Default = "127.0.0.1:5060").
Arguments for id = VOICESESSION
szAudioFile Waveform audio file that will be played during the session. This must be an szWaveName object contained within the Audio Clips Pool object. (Default = "<None>"). nPlayMode If true, the audio file plays for a fixed number of times. If false, the audio file plays continuously. (Default = "0"). nRepeatCount If nPlayMode is true, this parameter sets the number of times that the audio file will play. (Default = "1"). nPlayTime Length of time to play the audio file. Specify the units of time in the nTimeUnit. nTimeUnit Units of time used to set the audio file play time (nPlayTime). The choices are:
Value Description "0" (default) Seconds "1" Minutes "2" Hours "3" Days
Arguments for id = GENERATEMF
szMfSeq The sequence of MF digits to be generated.

576

IxLoad Tcl API Programming Guide

Bulk SIP

nMfDuration Length of time allowed to play the MF sequence. Minimum = "10", Maximum = "990". nInterMfInterval Duration (in milliseconds) of the MF interdigit signal. Minimum = "10", Maxi = "9990". nMfAmplitude The amplitude of the signal generated by the sending sequence. Minimum = "-30", Maximum = "-10". nPlayMode The play mode to play the MF tones. Possible values are:

Value Description

0

Generate for a specified period of time

1

Repeat for a specified number of times

nRepeatCount Number of times to repeat the generation of the sequence. nPlayTime The time units to play the specified sequence. nTimeUnit Signifies the time unit type. Possible values are:

Value Description "0" (default) Seconds "1" Minutes "2" Hours "3" Days

Arguments for id = GENERATEDTMF
szDtmfSeq The dtmf sequence to be generated. nDtmfDuration

IxLoad Tcl API Programming Guide

577

Bulk SIP

Length of time allowed to play the DTMF sequence. Minimum = "10", Maximum = "990". nDtmfInterdigits Duration (in milliseconds) of the DTMF interdigit signal. Minimum = "10", Max = "9990". nDtmfAmplitude The signal amplitude generated for the stream containing the digits. nPlayMode The play mode to play the DTMF tones. Possible values are:

Value Description

0

Generate the specified sequence for a specified number of times

1

Generate the specified sequence for a specified time

nRepeatCount Number of time to repeat the generation of the specified sequence.

Arguments for id = GENERATETONE
nToneName This is the id for the tone. Possible values are:

Value Description

0

"600-10"

1

"1400-10"

2

"2500-10"

3

"550-20"

4

"1350-20"

5

"2450-20"

6

"650-30"

7

"2550-30"

578

IxLoad Tcl API Programming Guide

8

"1450-30"

9

"3400-10"

10

"3400-30"

11

"2100-10"

12

"2150-30"

13

"400-10"

14

"450-30"

15

"Confirmation Tone"

16

"Call Waiting Tone"

17

"TN_1"

-1

"Custom Tone"

nPlayMode The play mode to play the MF tones. Possible values are:

Value Description

0

Generate for a specified period of time

1

Repeat for a specified number of times

nRepeatCount Number of times to repeat the generation of the sequence. nPlayTime The time units to play the specified sequence. nTimeUnit Signifies the time unit type. Possible values are:

Value Description "0" (default) Seconds

IxLoad Tcl API Programming Guide

Bulk SIP 579

Bulk SIP

"1" Minutes "2" Hours "3" Days

nToneDuration The duration of a tone with only one frequency. nFrequency1 For a single tone, this is the frequency of the signal used to generate the tone. For a dual tone, this is the frequency of the signal used to generate the lower band of the tone. nFrequency2 For a dual tone, this is the frequency of the signal used to generate the upper band of the tone. nAmplitude1 Amplitude of the nFrequency1 signal. nAmplitude2 Amplitude of the nFrequency2 signal. nOnTime For a cadenced tone, this is the amount of time the tone signal or signals are played. nOffTime For a cadenced tone, this is the amount of time the tone signal or signals are muted. nRepetitionCount For a cadenced tone, this specifies the number of times that the On Time / Off Time cycle is repeated. nToneType The format of the tone. Possible values:

Value Description

0

"Single Tone"

1

"Dual Tone"

2

"Single Tone Cadence"

3

"Dual Tone Cadence"

580

IxLoad Tcl API Programming Guide

Arguments for id = DETECTDTMF
nDTMFDetectionMode Method used to detect tones. Possible values are:

Value Description

0

detect continuously for a specified time

1

detect exactly a specified number of digits

2

detect a specified sequence

szDtmfSeq Sequence of digits to detect. nDetectTime The number of time units to sustain the detect operation. nDetectTimeUnit Signifies the time unit type. Possible values are:

Value Description "0" (default) Seconds "1" Minutes "2" Hours "3" Days
nDtmfCount The exact number of digits to detect. nFirstDTMFTimeout The maximum time for the first digit to arrive and to be decoded. nInterDTMFInterval The maximum time between the arrival of digits.

IxLoad Tcl API Programming Guide

Bulk SIP 581

Bulk SIP

Arguments for id = MEDIASESSION
nRepeatCount Number of times to repeat the generation of the sequence. nWavDuration The time duration of a wave. nTimeUnit Signifies the time unit type. Possible values are:

Value Description "0" (default) Seconds "1" Minutes "2" Hours "3" Days

nPlayMode The play mode to play the MF tones. Possible values are:

Value Description

0

Generate for a specified period of time

1

Repeat for a specified number of times

synthVideo If enabled, the SIP client generates video data and transmits it to the server along with the audio to simulate a video phone call. To configure the video parameters refer Video Settings. szAudioFile The name of the audio file that will be played. szTotalTime The total time for which an audio file will be played. nTotalTime The total time for which a .wav file will be played. nPlayTime The time units to play the specified sequence.

582

IxLoad Tcl API Programming Guide

Bulk SIP

EXAMPLE

$Activity_SIPClient1 agent.pm.scenarios.appendItem \-id

"ORIGINATECALL" \-symDestination

"Traffic2_SIPServer1:5060"

\-bNextCommandIsDetect

false \-isLastCmd

false \-useDhcpForOriginate

false \-hasVideo

false \-_gbDhcpServerPortForOriginate

false \-dhcpServerPortForOriginate

5060$Activity_SIPClient1 agent.pm.scenarios.appendItem \-id

"ENDCALL" \-isLastCmd

true \-szDummy03

""

SEE ALSO

Video Settings

IxLoad Tcl API Programming Guide

583

Bulk SIP

SIP Server Agent
SIP Server Agent - create a SIP server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_SIPServer1 agent.config
DESCRIPTION
An SIP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity SIPServer1

of NetTraffic Traffic2@Network2#################################################set

Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"SIP Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

SIPServer1 config \-enable

true \-name

"SIPServer1" \-timeline

$_Match_Longest_$Activity_

SIPServer1 agent.config \-enable

true \-name

"SIPServer1"$Activity_SIPServer1 agent.pm.generalSettings.config \-dhcpServerPort

5060 \-ipv6Form

0 \-bRemoveCredent

false \-bRegBefore

false \-type_of_service_for_rtp

"Best Effort (0x0)" \-_gbDhcpServerPort

false \-nUdpMaxSize

1024 \-regInterval

0 \-szAuthDomain

"domain\[0000-\]" \-vlan_priority_sip

0 \-useDhcp

584

IxLoad Tcl API Programming Guide

Bulk SIP

false \-enableTosSIP

false \-nUdpPort

5060 \-ipPreference

0 \-_gbIpPreference

false \-nPrefQop

0 \-szRegistrar

"127.0.0.1:5060" \-enableVlanPriority_for_sip

false \-nTcpPort

5060 \-szTransport

"UDP" \-szAuthPassword

"password\[0000-\]" \-type_of_service_for_sip

"Best Effort (0x0)" \-

szAuthUsername

"user\[0000-\]" \-enableTosRTP

false \-compressZeros

false$Activity_SIPServer1 agent.p-

m.mediaSettings.config \-nPcInterval

500 \-nJitterBuffer

1 \-nDtmfInterdigits

40 \-nCompMaxDropped

7 \-nPeerDtmfDuration

0 \-nJitterMs

20 \-bSilenceMode

1 \-nAudioPoolTime

1178615588 \-szBitRate

"64 kbps" \-nDtmfDuration

100 \-szPeerCodecName

"" \-szSilenceFile

"" \-bytesPerFrameBuffer

"" \-groupBox_MOS1

false \-szPeerCodecDetails

"" \-bMosOnMax

0 \-groupBox_JB1

false \-nMosInterval

3 \-nCompJitterBuffer

50 \-bUseJitter

false \-szCodecName

"G711ALaw" \-szPeerDtmfSeq

"" \-bLimitDtmf

true \-bUseMOS

false \-bJitMs

0 \-szCodecDescr

"ITU-T G.711 is a standard to represent 8 bit compressed pulse code modulation (PCM)

samples for signals of voice frequencies, sampled at the rate of 8000

samples/second. G.711 encoder will create a 64 Kbps bitstream. A-Law G.711 PCM

encoder converts 13 bit linear PCM samples into 8 bit compressed PCM (logarithmic

form) samples, and the decoder does the conversion vice versa." \-bCompMs

0 \-nDtmfStreams

10 \-packetTimeBuffer

"" \-szPowerLevel

"PL_20" \-szDtmfSeq

"12345" \-nCompJitterMs

1000 \-nPeerDtmfInterdigits

0 \-bRtpStartCollector

false \-nMosMaxStreams

1 \-szCodecDetails

"BF160PT20" \-nSessionType

0 \-bUseSilence

false \-bModifyPowerLevel

false \-bUseCompensation

false$Activity_SIPServer1 agent.p-

m.contentOfMessages.config \-bFolding

false \-

bBestPerformance

1 \-szTO

"<sip:id\[50000-\]@IP>" \-bOptional

false \-szCONTACT

"<sip:id\[50000-\]@IP>" \-bAdvisable

false \-bCompact

false \-szFROM

"<sip:id\[50000-\]@IP>" \-

szREQUESTURI

"sip:IP" \-bScattered

false$Activity_SIPServer1 agent.pm.contentOfMessages.rulesTable.clear$Activity_

SIPServer1 agent.pm.stateMachine.config \-nActiveTimeout

0

\-bUasStateless

false \-nActiveTimeoutValue

0 \-nTimersT4

5000 \-nTimersT1

500 \-nTimersT2

4000 \-nTimersTD

32000 \-nActiveTimeoutTU

0 \-nTimersTC

180000$Activity_SIPServer1 agent.pm.videoSettings.config \-videoBitrate

128.0 \-videoBitrateLimit

0$Activity_SIPServer1

IxLoad Tcl API Programming Guide

585

Bulk SIP

agent.pm.scenarios.clear$Activity_SIPServer1 agent.pm.scenarios.appendItem \-id

"RECEIVEUSING180" \-bNextCommandIsDetect

false \-szDummy10

"" \-isLastCmd

false$Activity_SIPServer1 agent.p-

m.predefined_tos_for_rtp.clear$Activity_SIPServer1 agent.pm.predefined_tos_for_

rtp.appendItem \-id

"TypeOfServiceForRTP" \-

tos_val_for_rtp

"Best Effort (0x0)"$Activity_SIPServer1

agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 1

(0x20)"$Activity_SIPServer1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 2

(0x40)"$Activity_SIPServer1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 3

(0x60)"$Activity_SIPServer1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Class 4

(0x80)"$Activity_SIPServer1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Express Forwarding

(0xA0)"$Activity_SIPServer1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Control

(0xC0)"$Activity_SIPServer1 agent.pm.predefined_tos_for_rtp.appendItem \-id

"TypeOfServiceForRTP" \-tos_val_for_rtp

"Best Effort

(0x0)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.clear$Activity_SIPServer1

agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Best Effort

(0x0)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 1

(0x20)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 2

(0x40)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 3

(0x60)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Class 4

(0x80)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Express Forwarding

(0xA0)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Control

(0xC0)"$Activity_SIPServer1 agent.pm.predefined_tos_for_sip.appendItem \-id

"TypeOfServiceForSIP" \-tos_val_for_sip

"Best Effort (0x0)"

SEE ALSO

ixNetTraffic

586

IxLoad Tcl API Programming Guide

Bulk SIP

General Settings
General Settings--Sets the SIP server agent's general configuration options.

SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_SIPServer1 agent.pm.generalSettings.config

DESCRIPTION
A SIP server's advanced configuration options are set by modifying the options of the pm.generalSettings option of the SIP Server Agent object.

SUBCOMMANDS
None.

OPTIONS
The SIP server agent's General Settings options are the same as for the SIP client agent. See the SIP Client.

EXAMPLE

$Activity_SIPServer1 agent.pm.generalSettings.config \-dhcpServerPort

5060 \-ipv6Form

0 \-bRemoveCredent

false \-bRegBefore

false \-type_of_service_for_rtp

"Best Effort (0x0)" \-_gbDhcpServerPort

false \-nUdpMaxSize

1024 \-regInterval

0 \-szAuthDomain

"domain\[0000-\]" \-vlan_priority_sip

0 \-useDhcp

false \-enableTosSIP

false \-nUdpPort

5060 \-ipPreference

0 \-_gbIpPreference

false \-nPrefQop

0 \-szRegistrar

"127.0.0.1:5060" \-enableVlanPriority_for_sip

false \-nTcpPort

5060 \-szTransport

"UDP" \-szAuthPassword

"password\[0000-\]" \-type_of_service_for_sip

"Best Effort (0x0)" \-

szAuthUsername

"user\[0000-\]" \-enableTosRTP

false \-compressZeros

false

SEE ALSO

SIP Server Agent

IxLoad Tcl API Programming Guide

587

Bulk SIP
Content of Messages
Content of Messages--Specifies the content of the SIP messages sent by the server.
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_SIPServer1 agent.pm.contentOfMessages.config
DESCRIPTION
A SIP server's advanced configuration options are set by modifying the options of the pm.contentOfMessages option of the SIP Server Agent object.
SUBCOMMANDS
None.
OPTIONS
The SIP server agent's Content of Messages options are the same as for the SIP client agent. See Content of Messages.
SEE ALSO
SIP Server Agent

588

IxLoad Tcl API Programming Guide

Bulk SIP

State Machine

State Machine--Configures the SIP server agent's internal timers and other parameters of its state machine.

SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_SIPServer1 agent.pm.stateMachine.config

DESCRIPTION
A SIP server's state machine parameters are set by modifying the options of the pm.StateMachine option of the SIP Server Agent object.

SUBCOMMANDS
None.

OPTIONS
The SIP server agent's Sate Machine options are the same as for the SIP client agent with one addition (below). See Content of Messages.
bUasStateless
If true, the SIP server behaves as a stateless User Agent Server (UAS).
A stateless UAS does not maintain transaction states. It replies to requests normally but discards any state that would ordinarily be retained by a UAS after a response has been sent.
If a stateless UAS receives a retransmission of a request, it regenerates the response and resends it, just as if it were replying to the first instance of the request. (Default = "0").

EXAMPLE

$Activity_SIPServer1 agent.pm.stateMachine.config \-nActiveTimeout

0 \-bUasStateless

false \-nActiveTimeoutValue

0 \-nTimersT4

5000 \-nTimersT1

500 \-nTimersT2

4000 \-nTimersTD

32000 \-nActiveTimeoutTU

0 \-nTimersTC

180000

SEE ALSO

SIP Server Agent

IxLoad Tcl API Programming Guide

589

Bulk SIP
Media Settings
Media Settings--Selects and configures the streaming audio files for the multimedia session that the server will play over RTP.
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_SIPServer1 agent.pm.mediaSettings.config
DESCRIPTION
A SIP server's advanced configuration options are set by modifying the options of the pm.mediaSettings option of the SIP Server Agent object.
SUBCOMMANDS
None.
OPTIONS
The SIP server agent's Media Settings options are the same as for the SIP client agent. See Media Settings.
SEE ALSO
SIP Server Agent

590

IxLoad Tcl API Programming Guide

Bulk SIP

Scenarios
Scenarios--Creates the list of SIP commands that the server will send to a SIP server.
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SIPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_SIPServer1 agent.pm.scenarios.appendItem
DESCRIPTION
A command is added to the Scenarios object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id SIP command to be executed. One of the following:

Command

Description

RECEIVEUSING180

Causes the SIP server to respond to an INVITE by returning a 180 (Ringing) response, which indicates that it is trying to alert the user. The 180 response is routed back through the proxies in the reverse direction.

RECEIVEUSING100AND180

Causes the SIP server to respond to an INVITE by first returning a 100 response, which indicates that the request has been received by the next-hop server and that some unspecified action is being taken on behalf of this call (for example, a database is being consulted).
The server then responses with a 180 (Ringing) response, which indicates that it is trying to alert the user. The 180 response is routed back through the proxies in the reverse direction.

SEND6XX

Causes the SIP server to respond to an INVITE by first returning a 604 (Does not Exist Anywhere) response. 6xx-series responses are failure responses that indicate that the server has definitive information about a particular user, not just the particular instance indicated in the Request-URI.

IxLoad Tcl API Programming Guide

591

Bulk SIP

VOICESESSION

Plays one of the waveform audio files listed in the Audio Clips Pool on the Media Settings tab. The SIP server sends the file to the origin of the SIP call.
Audio Pool File: Select one of the waveform audio files listed in the Audio Pool File on the Media Settings tab.
Play: Select this option if you want the SIP server to play the clip a fixed number of times. Configure the number of times in the field.
Repeat Continuous for: Select this option if you want the SIP server to play the clip continuously for some number of seconds, minutes, hours, or days. Select the units of time from the drop-down list, then configure the number of seconds, minutes, hours, or days that the clip will play in the field.

Arguments for id = RECEIVEUSING180
None.
Arguments for id = RECEIVEUSING100AND180
None.
Arguments for id = SEND6XX
None.
Arguments for id = VOICESESSION
szAudioFile Waveform audio file that will be played during the session. This must be an szWaveName object contained within the Audio Clips Pool object. (Default = "<None>"). nPlayMode If true, the audio file plays for a fixed number of times. If false, the audio file plays continuously. (Default = "0"). nRepeatCount If nPlayMode is true, this parameter sets the number of times that the audio file will play. (Default ="1"). nPlayTime Length of time to play the audio file. Specify the units of time in the nTimeUnit. nTimeUnit Units of time used to set the audio file play time (nPlayTime). The choices are:

592

IxLoad Tcl API Programming Guide

Bulk SIP

Value Description "0" (default) Seconds "1" Minutes "2" Hours "3" Days

EXAMPLE

$Activity_SIPServer1 agent.pm.scenarios.appendItem \-id

"RECEIVEUSING180" \-bNextCommandIsDetect

"" \-isLastCmd

false

SEE ALSO
SIP Client Agent

false \-szDummy10

IxLoad Tcl API Programming Guide

593

Bulk SIP
Using Variables in SIP Fields
You can insert variables into various fields on the SIP client tabs, such as the Username, Password, and Domain fields on the SIP client General Settings tab and the Userinfo (header) fields on the Content of Messages. You can use the variables to generate large numbers of unique user names, passwords, and domain names or header fields.
You can use the following variables:
l Numbers 0-9 l Letters A-Z and a-z
The letter variables are case-sensitive; IxLoad considers the variable strings "AA" and "aa" to be different.
You can combine the variables with fixed text to create the user names, passwords, and domain names. For example, you can enter user[00-] to create a range of unique user names that begin with the characters "user" (user00, user01, and so on).
To insert the variables into a field, enclose them in square brackets ( [ ] ). To specify a range, separate the minimum and maximum values with a hyphen (-). For example, [00-10] specifies a range of 00 through 10.
The number of variables you insert determines the width of the generated strings. For example, the variable "00" can generate the strings 00 - 99. The variable string "000" can generate the strings 000 999.
Similarly, "AA" can generate strings that consist of all the two-letter combinations from AA to ZZ. "AAA" can generate strings that consist of all the three letter combinations from AAA to ZZZ.
You can use a single variable string and allow IxLoad to generate strings up the maximum value of the string, or you can use two variable strings together to restrict the generated strings to a certain range.
See the following example:
[0- ] will generate all the values 0 - 9 (0, 1, 2, 3 . . . 9). [0-5] will generate all the values 0 - 5.
[00- ] will generate all the values 00 - 99 (00, 01, 02, 03. . .97, 98, 99). [00-50] will generate all the values 0 - 50.
[A- ] will generate all the values A - Z (A, B, C . . . Z). [A-K] will generate all the values A - K.
[AA- ] will generate all the values AA - ZZ (AA, AB, AC. . ZX, ZY, ZZ). [AA-KK] will generate all the values AA - KK.
When IxLoad has generated the final string, if the test configuration requires additional strings, IxLoad returns to the starting value of the variable and continues to generate strings until no more are required. In this case, the generated strings will not be unique.
For example, if a SIP test requires 256 user names and the Username field is configured as:

594

IxLoad Tcl API Programming Guide

Bulk SIP

User[00-]
IxLoad generates the strings User00 - User99, then repeats and again generates strings User00 User99, then generates the final group of strings User00 - User56.
IxLoad generates the SIP Username, Password, and Domain fields simultaneously and associates one value from each to form each user name­password­ domain combination used in the test.
For example, the first generated user name will be associated with the first generated password and the first generated domain. The second generated user name will be associated with the second generated password and the second generated domain, and so on until all the necessary strings have been generated.
If a SIP Username, Password, and Domain fields contain variables while the remaining fields contain a fixed value (no variable), IxLoad associates the identical value from the fixed field to all the generated values.
See the following example:

Field Values

Associated Strings

Username = User[00-] Password = Pass[AZ-] Domain = Domain[az-]

User00 + PassAA + Domainaa User01 + PassAB + Domainab User02 + PassAC + Domainac ...

Username = User[00-] Password = Pass[AZ-] Domain = MyDomain

User00 + PassAA + MyDomain User01 + PassAB + MyDomain User02 + PassAC + MyDomain ...

Username = User[00-] Password = Pass Domain = MyDomain

User00 + Pass + MyDomain User01 + Pass + MyDomain User02 + Pass + MyDomain ...

IxLoad Tcl API Programming Guide

595

Bulk SIP
Bulk SIP Statistics
For the Bulk SIP statistics, see the following: Bulk SIP Client Statistics Bulk SIP Server Statistics For TCP statistics, see TCP, Run State, and Curve Segment Statistics. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it. The test results are available from the location defined on the User Directories window. See User Directories.

596

IxLoad Tcl API Programming Guide

Bulk SIP

Bulk SIP Client Statistics
The table below lists the Bulk SIP Client Statistics.

Statistic

Description

Call-related Statistics

SIP calls initiated

Number of SIP calls initiated.

SIP calls completed

Number of SIP calls established.

SIP calls active

Number of SIP calls active.

Transaction-related Statistics

SIP INVITE client trans- Number of SIP INVITE transactions initiated by the client. actions initiated

SIP INVITE client trans- Number of INVITE transactions initiated by the client that succeeded. actions succeded

SIP INVITE client trans- Number of INVITE transactions initiated by the client that failed for all

actions failed

reasons.

SIP INVITE client trans- Number of INVITE transactions initiated by the client that failed because actions failed (TIMER B) Timer B (transaction timeouts timer) expired.

SIP INVITE client transactions failed (TRANSPORT ERROR)

Number of INVITE transactions initiated by the client that failed due to TCP or UDP errors.

SIP INVITE client transactions failed (TRANSACTION TIMEOUT TIMER)

Number of INVITE transactions initiated by the client that failed because the transaction timeout timer expired.

SIP INVITE client trans- Number of INVITE transactions initiated by the client that failed due to

actions failed (5xx)

5xx-series (server error) errors.

SIP NON-INVITE client transactions initiated

Number of SIP NON-INVITE transactions initiated by the client.

SIP NON-INVITE client transactions succeded

Number of SIP NON-INVITE transactions initiated by the client that succeeded.

SIP NON-INVITE client transactions failed

Number of SIP NON-INVITE transactions initiated by the client that failed.

IxLoad Tcl API Programming Guide

597

Bulk SIP

SIP NON-INVITE client transactions failed (TIMER F)

Number of NON-INVITE transactions initiated by the client that failed because Timer F (non-INVITE transaction timeout timer) expired.

SIP NON-INVITE client transactions failed (TRANSPORT ERROR)

Number of NON-INVITE transactions initiated by the client that failed due to TCP or UDP errors.

Message-related Statistics

SIP INVITE requests sent

Number of SIP INVITE messages sent by the client.

SIP ACK requests sent Number of SIP ACK messages sent by the client.

SIP BYE requests sent Number of SIP BYE messages sent by the client.

SIP REGISTER requests Number of SIP REGISTER messages sent by the client. sent

SIP INVITE messages retransmitted

Number of INVITE messages initiated by the client that had to be re-transmitted.

SIP NON-INVITE requests retransmitted

Number of NON-INVITE transactions initiated by the client that had to be re-transmitted.

SIP INVITE requests unexpected

Number of SIP INVITE requests that the client did not expect to receive.

SIP ACK requests unex- Number of SIP ACK requests that the client did not expect to receive. pected

SIP BYE requests unex- Number of SIP BYE requests that the client did not expect to receive. pected

SIP CANCEL requests unexpected

Number of SIP CANCEL requests that the client did not expect to receive.

SIP UNKNOWN messages unexpected

Number of SIP UNKNOWN messages that the client did not expect to receive.

SIP UNKNOWN requests Number of SIP UNKNOWN requests that the client did not expect to

unexpected

receive.

SIP 1xx responses expected

Number of SIP 1xx-series responses the client received that it expected.

598

IxLoad Tcl API Programming Guide

Bulk SIP

SIP 1xx responses unex- Number of SIP 1xx-series responses the client received that it did not

pected

expect.

SIP 2xx responses expected

Number of SIP 2xx-series responses the client received that it expected.

SIP 2xx responses unex- Number of SIP 2xx-series responses the client received that it did not

pected

expect.

SIP 3xx responses expected

Number of SIP 3xx-series responses the client received that it expected.

SIP 3xx responses unex- Number of SIP 3xx-series responses the client received that it did not

pected

expect.

SIP 4xx responses expected

Number of SIP 4xx-series responses the client received that it expected.

SIP 4xx responses unex- Number of SIP 4xx-series responses the client received that it did not

pected

expect.

SIP 5xx responses expected

Number of SIP 5xx-series responses the client received that it expected.

SIP 5xx responses unex- Number of SIP 5xx-series responses the client received that it did not

pected

expect.

SIP 6xx responses expected

Number of SIP 6xx-series responses the client received that it expected.

SIP 6xx responses unex- Number of SIP 6xx-series responses the client received that it did not

pected

expect.

RTP: Global Stream Transmit Statistics

RTP Bytes Sent

Total number of bytes sent, including header and payload.

RTP Packets Sent

Total number of packets sent.

RTP Tx Jitter (ns)

Average amount of transmit jitter, in nanoseconds.

RTP Tx Packets Dropped Number of packets transmitted by the client that were dropped.

RTP: Global Stream Statistics

RTP Dropped Packets

Number of RTP packets dropped.

RTP Bytes Received

Number of RTP bytes received.

IxLoad Tcl API Programming Guide

599

Bulk SIP

RTP Packets Received Number of RTP packets received.

RTP Payload Bytes Received

Number bytes received in RTP payloads.

RTP Bad Packets Received

Number of defective RTP packets received.

RTP Lost Packets

Number of packets lost.

RTP Misordered Packets Number of packets received out of order. Received

RTP Duplicate Packets Received

Number of duplicate packets received.

RTP Jitter Min

Smallest amount of jitter detected.

RTP Jitter Max

Largest amount of jitter detected.

RTP Packets With Jitter Packets received with jitter of up to 1ms. Up To 1ms

RTP Packets With Jitter Packets received with jitter of 1-3ms. Up To 3ms

RTP Packets With Jitter Packets received with jitter of 3-5ms. Up To 5ms

RTP Packets With Jitter Packets received with jitter of 5-10ms. Up To 10ms

RTP Packets With Jitter Packets received with jitter of 10-20ms Up To 20ms

RTP Packets With Jitter Packets received with jitter of 20-40ms Up To 40ms

RTP Packets With Jitter Packets received with jitter of more than 40ms. More Than 40ms

RTP DTMF Digits Detec- Total number of path confirmation DTMF tone sequences received. ted

600

IxLoad Tcl API Programming Guide

Bulk SIP

RTP DTMF Digits Matched

Number of DTMF sequences received that matched the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMF Digits Not Matched

Number of DTMF sequences received that did not match the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP Good DTMF Sequences Detected

Total number of correct path confirmation DTMF tone sequences received.

RTP Bad DTMF Sequences Detected

Total number of incorrect path confirmation DTMF tone sequences received.

RTP DTMF Detection Timeout

Number of DTMF detection attempts (by the Detect DTMF command) that ended because one of the timeout timers expired.

RTP DTMF Digits Sent

Number of DTMF digits sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMF Sequences Sent

Number of DTMF sequences sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP MF Digits Sent

Number of MF digits sent by Generate MF commands.

RTP MF Sequences Sent Number of MF sequences sent by Generate MF commands.

RTP Custom Tones Sent Number of custom tones sent by Generate Tone commands.

RTP Packets Dropped By Number of packet dropped from the jitter buffer because they arrived later

Jitter Buffer

than expected.

Note: In the CSV files, global MOS scores are represented as whole numbers (for example, "345"); in StatViewer (they are represented as floating-point numbers (for example, "3.45").

RTP MOS Average Instant

Average MOS score at the time of the sampling interval.

RTP MOS Worst Instant Lowest MOS score at the time of the sampling interval.

RTP MOS Best Instant

Highest MOS score at the time of the sampling interval.

RTP MOS Worst

Lowest MOS score recorded during the test.

IxLoad Tcl API Programming Guide

601

Bulk SIP

RTP MOS Best

Highest MOS score recorded during the test.

RTP MOS Average Per Call

Average MOS score per call.

RTP MOS Worst Per Call Lowest MOS score per call.

RTP MOS Best Per Call Highest MOS score per call.

RTP Calls With Continu- Number of calls on which path confirmation continued throughout the call. ous Path Confirmation

RTP Calls With Interrupted Path Confirmation

Number of calls on which path confirmation was interrupted during the call.

RTP Calls Without Path Confirmation

Number of calls on which there was no path confirmation.

Transport Statistics

SIP Bytes Transmitted Total number of SIP bytes transmitted.

SIP Bytes Received

Total number of SIP bytes received.

SIP Signaling UDP Pack- Number UDP packets transmitted for SIP signaling purposes. ets Transmitted

SIP Signaling UDP Pack- Number UDP packets received for SIP signaling purposes. ets Received

Per-Stream Statistics

RTP Path Confirmation Status

Status of path confirmation on the stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

RTP MOS

Average MOS score recorded on the stream.

RTP Worst MOS

Lowest MOS score recorded on the stream.

RTP Best MOS

Highest MOS score recorded on the stream.

RTP Bytes

Number of bytes transmitted on the stream.

RTP Packets

Number of packets transmitted on the stream.

RTP Bad Packets

Number of bad packets transmitted on the stream.

602

IxLoad Tcl API Programming Guide

Bulk SIP

RTP Lost Packets

Number of packets lost on the stream.

RTP Missorder Packets Number of packets received out of order on the stream.

RTP Duplicate Packets Number of duplicate packets received on the stream.

RTP Packets With Jitter Number of packets received on the stream with jitter up to 1 millisecond. Up To 1ms

RTP Packets With Jitter Number of packets received on the stream with jitter up to 3 milliseconds. Up To 3ms

RTP Packets With Jitter Number of packets received on the stream with jitter up to 5 milliseconds. Up To 5ms

RTP Packets With Jitter Number of packets received on the stream with jitter up to 10 mil-

Up To 10ms

liseconds.

RTP Packets With Jitter Number of packets received on the stream with jitter up to 20 mil-

Up To 20ms

liseconds.

RTP Packets With Jitter Number of packets received on the stream with jitter up to 40 mil-

Up To 40ms

liseconds.

RTP Packets With Jitter Number of packets received on the stream with jitter over 40 mil-

More Than 40ms

liseconds.

RTP Average Jitter (ns) Average jitter, in nanoseconds.

RTP Min Jitter (ns)

Lowest jitter recorded, in nanoseconds.

RTP Max Jitter (ns)

Largest jitter recorded, in nanoseconds.

RTP DTMFs Detected

Total number of path confirmation DTMF tone sequences sent.

RTP DTMFs Matched

Number of DTMF sequences received that matched the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMFs Not Matched

Number of DTMF sequences received that did not match the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP Good DTMF Sequences Detected

Total number of correct path confirmation DTMF tone sequences received.

IxLoad Tcl API Programming Guide

603

Bulk SIP

RTP Bad DTMF Sequences Detected

Total number of incorrect path confirmation DTMF tone sequences received.

RTP DTMF Detection Timeout

Number of DTMF detection attempts (by the Detect DTMF command) that ended because one of the timeout timers expired.

RTP DTMF Digits Sent

Number of DTMF digits sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMF Sequences Sent

Number of DTMF sequences sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP MF Digits Sent

Number of MF digits sent by Generate MF commands.

RTP MF Sequences Sent Number of MF sequences sent by Generate MF commands.

RTP Custom Tones Sent Number of custom tones sent by Generate Tone commands.

RTP Packets Dropped By Total number of packets dropped from the jitter buffer because they were

Jitter Buffer

received late.

Video Statistics

Video Total Bytes Sent Total video bytes sent by the server.

Video Total Packets Sent

Total video packets sent by the server.

Video Tx Jitter (ns)

Variation in video packet transmission times, in nanoseconds.

Video Tx Packets Dropped

Number of video packets dropped before transmission.

Video Global Stream Statistics

604

IxLoad Tcl API Programming Guide

Bulk SIP

Video Frame Stats Disabled

Initially, this statistic displays no value.
If the received data rate exceeds the cut-off threshold, IxLoad stops computing the I-, P-, and B-frame statistics and this statistic will display "YES".
The value will remain YES until the end of the iteration. Once frame statistics computation is disabled during a run, it remains disabled throughout the remainder of the run.
Prior to starting the next run (or the next iteration of the same test), this statistic will be cleared and IxLoad will again begin computing the frame statistics. It will continue to compute the frame statistics as long as the bit rate remains below the cut-off threshold.
Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Quality Metrics Disabled

Initially, this statistic displays no value.
If the received data rate exceeds the cut-off threshold, IxLoad stops computing the Quality Metrics, and this statistic will display "YES".
The value will remain YES until the end of the iteration. Once the Quality Metrics computation is disabled during a run, it remains disabled throughout the remainder of the run.
Prior to starting the next run (or the next iteration of the same test), this statistic will be cleared and IxLoad will again begin computing the Quality Metrics. It will continue to compute the metrics as long as the bit rate remains below the cut-off threshold.
Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Total Bytes Rcvd Total number of video bytes received by the client.

Video Total packets Rcvd

Total number of video packets received by the client.

Video Total Loss

Total number video packets lost.

Video Unexpected UDP Packets Received

Number of UDP video packets received packets during a time when no channels are active.

Video Overload Packets Number of RTP video packets dropped because a port did not have

Dropped

enough computing power to process them.

Video Total RTP Packets Total number of RTP video packets lost while using RTP over UDP trans-

Lost

port.

Video Total Out Of Order Total number of RTP video packets received in the wrong order while

RTP Packets

using RTP over UDP transport.

IxLoad Tcl API Programming Guide

605

Bulk SIP

Video Total Duplicate RTP Packets

Total number of duplicate video RTP packets received.

Video Global Jitter

Average variation in arrival times of video packets on all streams. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Video Jitter less than 50 Number of video packets received with 0 to 50 microseconds of jitter. us

Video Jitter between 50 Number of video packets received with 50 to 100 microseconds of jitter. - 100 us

Video Jitter between 100 - 500 us

Number of video packets received with 100 -500 microseconds of jitter.

Video Jitter between 500 us - 2 ms

Number of video packets received with 500 microseconds to 2 milliseconds of jitter.

Video Jitter between 2 - Number of video packets received with 2 to 5 milliseconds of jitter. 5 ms

Video Jitter between 5 - Number of video packets received with 5 to 10 milliseconds of jitter. 10 ms

Video Jitter greater than Number of video packets received with more than 10 milliseconds of jit-

10 ms

ter.

Video Inter Packet

Number of video packets that arrived less than 2 milliseconds after the

Arrival Time between 0 - preceding packet was received.

2 ms

Video Inter Packet

Number of video packets that arrived between 2 and 5 milliseconds after

Arrival Time between 2 - the preceding packet was received.

5 ms

Video Inter Packet

Number of video packets that arrived between 5 and 10 milliseconds after

Arrival Time between 5 - the preceding packet was received.

10 ms

Video Inter Packet Arrival Time between 10 - 25 ms

Number of video packets that arrived between 10 and 25 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 25 - 50 ms

Number of video packets that arrived between 25 and 50 milliseconds after the preceding packet was received.

606

IxLoad Tcl API Programming Guide

Bulk SIP

Video Inter Packet Arrival Time between 50 - 100 ms

Number of video packets that arrived between 50 and 100 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 100 - 200 ms

Number of video packets that arrived between 100 and 200 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 200 - 500 ms

Number of video packets that arrived between 200 and 500 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time greater than 500 ms

Number of video packets that arrived more than 500 milliseconds after the preceding packet was received.

Video Per-Stream Statistics

Video Active

Indicates whether the video stream is active or not: 0 = inactive 1 = active Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Stream Name

Name of video stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Flow ID

Number identifying the flow used by the video stream. A flow consists of the packets flowing between a source IP:port and a destination IP:port. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Transport

Type of transport used on the video stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Codec

Video codec used on the video stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Stream Bit Rate Bit rate used on video stream.

Video MDI-DF

Media Delay Index Delay Factor (MDI-DF) experienced on video stream.

IxLoad Tcl API Programming Guide

607

Bulk SIP

Video MIN MDI-DF Video MAX MDI-DF Video AVG-MDI-DF Video MDI-MLR Video Bytes Video I Frames Rcvd
Video P Frames Rcvd
Video B Frames Rcvd
Video Packets

Smallest MDI Delay Factor experienced on video stream.
Largest MDI Delay Factor experienced on video stream.
Average MDI Delay Factor experienced on video stream.
Media Delay Index Media Loss Rate experienced on video stream.
Number of bytes received on the video stream.
Number of I-frames received on the video stream. An I-frame is encoded with no reference to any previous or subsequent frames.
Number of P-frames received on the video stream. A P-frame is encoded relative to the previous reference frame.
Number of B-frames received on the video stream. A B-frame is encoded relative to the previous reference frame, the subsequent reference frame, or both
Number of packets received on the video stream.

Video Loss
Video Jitter
Video Inter Pkt Arrival Time
Video Min Inter Pkt Arrival Time
Video Max Inter Pkt Arrival Time
Video Packet Latency (ns)
Video Min Packet Latency (ns)
Video Max Packet Latency (ns)

Number of packets lost on the video stream. Number of packets with jitter received on the video stream. Amount of time between received video packets, in milliseconds.
Smallest amount of time between received video packets, in milliseconds. Largest amount of time between received video packets, in milliseconds.
Average packet latency on the video stream.
Smallest packet latency on the video stream.
Longest packet latency on the video stream.

608

IxLoad Tcl API Programming Guide

Bulk SIP

Video Join Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first byte of video data.

Video I Join Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first I frame.
This statistic is computed for MPEG2 transport streams carrying MPEG2 video data.

Video Leave Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) and the time it received the last byte of video data.
Leave latency has a maximum timeout of 10 seconds; if the client continues to receive data 10 seconds after it has sent the Leave command, the latency is measured as 10 seconds.

Video Channel Switch Latency

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) to stop receiving one video stream and the time it received the first byte of data of a new video stream.

Video Channel Gap Duration

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) and received the last byte of the old video stream and the time it received the first byte of data of a new video stream.

Video Channel Overlap Duration

Amount of time, in milliseconds, elapsed after sending an IGMP LEAVE (broadcast channel) that the client was simultaneously receiving both the old and new video streams.

Video Control Sent

Indicates the type of video control command that has most recently been sent: 0 = LEAVE or PAUSE/TEARDOWN sent 1 = JOIN or PLAY sent

Video Data Rcvd

Indicates whether or not video data is being received: 0 = no data received 1 = data received

Video RTP Packets Lost Number of RTP video packets lost.

Video RTP Packets Out of Order

Number of RTP video packets received out of order.

IxLoad Tcl API Programming Guide

609

Bulk SIP

Video RTP Packets Duplicated

Number of duplicate RTP video packets received.

Video Quality Statistics

Video JB Packets Accep- Number of video packets accepted into the jitter buffer. ted

Video JB Packets Early

Number of video packets that arrived earlier than expected in the jitter buffer.

Video JB Packets Discarded

Total number of video packets that were discarded. This statistic is the total of: JB Packets Discarded (Underrun) and JB Packets Discarded (Overrun).

Video JB Packets Discarded (Underrun)

Number of video packets discarded because they arrived after their expected time slot.

Video JB Packets Discarded (Overrun)

Number of video packets discarded because the jitter buffer was full.

Video MOS_V

Mean Opinion Score for Video. This score is computed from the Video Service Quality statistic to create a zero-to-five (0-5) assessment of the quality of the video stream.

Video Service Quality

A factor in the range from 0 to 120, which provides an assessment of the capability of the RTP channel to support video transmission.

Video Gap Video Service Quality

Video Service Quality during the Gap state.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Burst Video Service Quality

Video Service Quality during the Burst state.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Burst Count

Number of times the stream entered the Burst state.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

610

IxLoad Tcl API Programming Guide

Bulk SIP

Video Avg Gap Len (Pkts)

The average gap length, in packets.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Avg Burst Len (Pkts)

The average burst length, in packets.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Degradation (Loss)

The amount of the overall video quality degradation that can be attributed to packet loss.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Degradation (Discard)

The amount of the overall video quality degradation that can be attributed to packets being discarded from the jitter buffer.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Degradation (Video Codec)

The amount of the overall quality degradation that can be attributed to video codec selection.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Current JB Packets Accepted

Number of video packets accepted into the jitter butter during the current statistics Update Interval.

Video Current JB Packets Discarded

Number of video packets discarded from the jitter butter during the current statistics Update Interval.

Video Current JB Packets Lost

Number of video packets lost during the current statistics Update Interval.

Video Current Video Ser- Video Service Quality during the current statistics update interval. vice Quality

IxLoad Tcl API Programming Guide

611

Bulk SIP

Bulk SIP Server Statistics
The table below lists the Bulk SIP Server Statistics.

Statistic

Description

Call-related Statistics

SIP calls received

Number of SIP calls received.

SIP calls completed

Number of SIP calls completed.

SIP calls active

Number of SIP calls active.

Transaction-related Statistics

SIP INVITE server trans- Number of INVITE transactions received by the server. actions received

SIP INVITE server trans- Number of INVITE transactions received by the server that succeeded. actions succeded

SIP INVITE server trans- Number of INVITE transactions received by the server that failed for all

actions failed

reasons.

SIP INVITE server trans- Number of INVITE transactions initiated by the server that failed because actions failed (TIMER H) Timer H (wait time for ACK receipt) expired.

SIP INVITE server trans- Number of INVITE transactions initiated by the server that failed due to

actions failed

TCP or UDP errors.

(TRANSPORT ERROR)

SIP NON-INVITE server Number of NON-INVITE transactions received by the server. transactions received

SIP NON-INVITE server Number of SIP NON-INVITE transactions initiated by the server that suctransactions succeded ceeded.

SIP NON-INVITE server Number of SIP NON-INVITE transactions initiated by the server that

transactions failed

failed.

Message-related Statistics

SIP NON-INVITE requests retransmitted

Number of NON-INVITE requests that were re-transmitted.

SIP REGISTER Requests Number of REGISTER requests sent. sent

612

IxLoad Tcl API Programming Guide

Bulk SIP

SIP 1xx responses expected

Number of 100-series responses that the server expected to receive.

SIP 2xx responses expected

Number of 200-series responses that the server expected to receive.

SIP 3xx responses expected

Number of 300-series responses that the server expected to receive.

SIP 4xx responses expected

Number of 400-series responses that the server expected to receive.

SIP 5xx responses expected

Number of 500-series responses that the server expected to receive.

SIP 6xx responses expected

Number of 600-series responses that the server expected to receive.

SIP 300-699 responses retransmitted

Number of 3xx- to 6xx-series responses that had to be retransmitted by the server.

SIP INVITE requests expected

Number of INVITE requests that the server expected to receive.

SIP ACK requests expec- Number of ACK requests that the server expected to receive. ted

SIP BYE requests expec- Number of BYE requests that the server expected to receive. ted

SIP 1xx responses sent Number of 1xx-series responses sent by the server.

SIP 1xx responses unex- Number of 1xx-series responses sent by the server that it did not expect

pected

to send.

SIP 2xx responses sent Number of 2xx-series responses sent by the server.

SIP 2xx responses unex- Number of 2xx-series responses sent by the server that it did not expect

pected

to send.

SIP 3xx responses sent Number of 3xx-series responses sent by the server.

SIP 3xx responses unex- Number of 3xx-series responses sent by the server that it did not expect

pected

to send.

SIP 4xx responses sent Number of 4xx-series responses sent by the server.

SIP 4xx responses unex- Number of 4xx-series responses sent by the server that it did not expect

pected

to send.

IxLoad Tcl API Programming Guide

613

Bulk SIP

SIP 5xx responses sent Number of 5xx-series responses sent by the server.

SIP 5xx responses unex- Number of 5xx-series responses sent by the server that it did not expect

pected

to send.

SIP 6xx responses sent Number of 6xx-series responses sent by the server.

SIP 6xx responses unex- Number of 6xx-series responses sent by the server that it did not expect

pected

to send.

SIP INVITE requests unexpected

Number of SIP INVITE requests that the server did not expect to receive.

SIP ACK requests unex- Number of SIP ACK requests that the server did not expect to receive. pected

SIP BYE requests unex- Number of SIP BYE requests that the server did not expect to receive. pected

SIP CANCEL requests unexpected

Number of SIP CANCEL requests that the server did not expect to receive.

SIP UNKNOWN requests Number of SIP requests that the server did not expect to receive. unexpected

SIP UNKNOWN messages unexpected

Number of SIP messages that the server sent that it did not expect to send.

RTP: Global Stream Transmit Statistics

RTP Bytes Sent

Total number of bytes sent, including header and payload.

RTP Packets Sent

Total number of packets sent.

RTP Tx Jitter (ns)

Average amount of transmit jitter, in nanoseconds.

RTP Tx Packets Dropped Number of packets transmitted by the client that were dropped.

RTP: Global Stream Statistics

RTP Dropped Packets

Number of RTP packets dropped.

RTP Bytes Received

Number of RTP bytes received.

RTP Packets Received Number of RTP packets received.

RTP Payload Bytes Received

Number bytes received in RTP payloads.

614

IxLoad Tcl API Programming Guide

Bulk SIP

RTP Bad Packets Received

Number of defective RTP packets received.

RTP Lost Packets

Number of packets lost.

RTP Misordered Packets Number of packets received out of order. Received

RTP Duplicate Packets Received

Number of duplicate packets received.

RTP Jitter Min

Smallest amount of jitter detected.

RTP Jitter Max

Largest amount of jitter detected.

RTP Packets With Jitter Packets received with jitter of up to 1ms. Up To 1ms

RTP Packets With Jitter Packets received with jitter of 1-3ms. Up To 3ms

RTP Packets With Jitter Packets received with jitter of 3-5ms. Up To 5ms

RTP Packets With Jitter Packets received with jitter of 5-10ms. Up To 10ms

RTP Packets With Jitter Packets received with jitter of 10-20ms Up To 20ms

RTP Packets With Jitter Packets received with jitter of 20-40ms Up To 40ms

RTP Packets With Jitter Packets received with jitter of more than 40ms. More Than 40ms

RTP DTMFs Detected

Total number of path confirmation DTMF tone sequences sent.

RTP DTMFs Matched

Number of DTMF sequences received that matched the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMFs Not Matched

Number of DTMF sequences received that did not match the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

IxLoad Tcl API Programming Guide

615

Bulk SIP

RTP Good DTMF Sequences Detected

Total number of correct path confirmation DTMF tone sequences received.

RTP Bad DTMF Sequences Detected

Total number of incorrect path confirmation DTMF tone sequences received.

RTP DTMF Detection Timeout

Number of DTMF detection attempts (by the Detect DTMF command) that ended because one of the timeout timers expired.

RTP DTMF Digits Sent

Number of DTMF digits sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMF Sequences Sent

Number of DTMF sequences sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP MF Digits Sent

Number of MF digits sent by Generate MF commands.

RTP MF Sequences Sent Number of MF sequences sent by Generate MF commands.

RTP Custom Tones Sent Number of custom tones sent by Generate Tone commands.

RTP Packets Dropped By Number of packet dropped from the jitter buffer because they arrived later

Jitter Buffer

than expected.

Note: In the CSV files, global MOS scores are represented as whole numbers (for example, "345"); in StatViewer (they are represented as floating-point numbers (for example, "3.45").

RTP MOS Average Instant

Average MOS score at the time of the sampling interval.

RTP MOS Worst Instant Lowest MOS score at the time of the sampling interval.

RTP MOS Best Instant

Highest MOS score at the time of the sampling interval.

RTP MOS Worst

Lowest MOS score recorded during the test.

RTP MOS Best

Highest MOS score recorded during the test.

RTP MOS Average Per Call

Average MOS score per call.

RTP MOS Worst Per Call Lowest MOS score per call.

RTP MOS Best Per Call Highest MOS score per call.

616

IxLoad Tcl API Programming Guide

Bulk SIP

RTP Calls With Continu- Number of calls on which path confirmation continued throughout the call. ous Path Confirmation

RTP Calls With Interrupted Path Confirmation

Number of calls on which path confirmation was interrupted during the call.

RTP Calls Without Path Confirmation

Number of calls on which there was no path confirmation.

Transport Statistics

SIP Bytes Transmitted Total number of SIP bytes transmitted.

SIP Bytes Received

Total number of SIP bytes received.

SIP Signaling UDP Pack- Number UDP packets transmitted for SIP signaling purposes. ets Transmitted

SIP Signaling UDP Pack- Number UDP packets received for SIP signaling purposes. ets Received

Per-Stream Statistics

RTP Path Confirmation Status

Status of path confirmation on the stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

RTP MOS

Average MOS score recorded on the stream.

RTP Worst MOS

Lowest MOS score recorded on the stream.

RTP Best MOS

Highest MOS score recorded on the stream.

RTP Bytes

Number of bytes transmitted on the stream.

RTP Packets

Number of packets transmitted on the stream.

RTP Bad Packets

Number of bad packets transmitted on the stream.

RTP Lost Packets

Number of packets lost on the stream.

RTP Missorder Packets Number of packets received out of order on the stream.

RTP Duplicate Packets Number of duplicate packets received on the stream.

RTP Packets With Jitter Number of packets received on the stream with jitter up to 1 millisecond. Up To 1ms

IxLoad Tcl API Programming Guide

617

Bulk SIP

RTP Packets With Jitter Number of packets received on the stream with jitter up to 3 milliseconds. Up To 3ms

RTP Packets With Jitter Number of packets received on the stream with jitter up to 5 milliseconds Up To 5ms

RTP Packets With Jitter Number of packets received on the stream with jitter up to 10 mil-

Up To 10ms

liseconds.

RTP Packets With Jitter Number of packets received on the stream with jitter up to 20 mil-

Up To 20ms

liseconds.

RTP Packets With Jitter Number of packets received on the stream with jitter up to 40 mil-

Up To 40ms

liseconds.

RTP Packets With Jitter Number of packets received on the stream with jitter over 40 mil-

More Than 40ms

liseconds.

RTP Average Jitter (ns) Average jitter, in nanoseconds.

RTP Min Jitter (ns)

Lowest jitter recorded, in nanoseconds

RTP Max Jitter (ns)

Largest jitter recorded, in nanoseconds.

RTP DTMFs Detected

Total number of path confirmation DTMF tone sequences sent.

RTP Good DTMF Sequences Detected

Total number of correct path confirmation DTMF tone sequences received.

RTP DTMFs Matched

Number of DTMF sequences received that matched the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMFs Not Matched

Number of DTMF sequences received that did not match the sequence specified on the Detect DTMF command.
This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP Good DTMF Sequences Detected

Total number of correct path confirmation DTMF tone sequences received.

RTP Bad DTMF Sequences Detected

Total number of incorrect path confirmation DTMF tone sequences received.

RTP DTMF Detection Timeout

Number of DTMF detection attempts (by the Detect DTMF command) that ended because one of the timeout timers expired.

618

IxLoad Tcl API Programming Guide

Bulk SIP

RTP DTMF Digits Sent

Number of DTMF digits sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP DTMF Sequences Sent

Number of DTMF sequences sent by Generate DTMF commands. This statistic is not related to the option to perform path confirmation using DTMF digits.

RTP MF Digits Sent

Number of MF digits sent by Generate MF commands.

RTP MF Sequences Sent Number of MF sequences sent by Generate MF commands.

RTP Custom Tones Sent Number of custom tones sent by Generate Tone commands.

RTP Packets Dropped By Total number of packets dropped from the jitter buffer because they were

Jitter Buffer

received late.

Video Statistics

Video Total Bytes Sent Total video bytes sent by the server.

Video Total Packets Sent

Total video packets sent by the server.

Video Tx Jitter (ns)

Variation in video packet transmission times, in nanoseconds.

Video Tx Packets Dropped

Number of video packets dropped before transmission.

Video Global Stream Statistics

Video Frame Stats Disabled

Initially, this statistic displays no value.
If the received data rate exceeds the cut-off threshold, IxLoad stops computing the I-, P-, and B-frame statistics and this statistic will display "YES".
The value will remain YES until the end of the iteration. Once frame statistics computation is disabled during a run, it remains disabled throughout the remainder of the run.
Prior to starting the next run (or the next iteration of the same test), this statistic will be cleared and IxLoad will again begin computing the frame statistics. It will continue to compute the frame statistics as long as the bit rate remains below the cut-off threshold.
Note for Tcl API users: For this statistic, use the Aggregation Type kString.

IxLoad Tcl API Programming Guide

619

Bulk SIP

Video Quality Metrics Disabled

Initially, this statistic displays no value.
If the received data rate exceeds the cut-off threshold, IxLoad stops computing the Quality Metrics, and this statistic will display "YES".
The value will remain YES until the end of the iteration. Once the Quality Metrics computation is disabled during a run, it remains disabled throughout the remainder of the run.
Prior to starting the next run (or the next iteration of the same test), this statistic will be cleared and IxLoad will again begin computing the Quality Metrics. It will continue to compute the metrics as long as the bit rate remains below the cut-off threshold.
Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Total Bytes Rcvd Total number of video bytes received by the client.

Video Total packets Rcvd

Total number of video packets received by the client.

Video Total Loss

Total number video packets lost.

Video Unexpected UDP Packets Received

Number of UDP video packets received packets during a time when no channels are active.

Video Overload Packets Number of RTP video packets dropped because a port did not have

Dropped

enough computing power to process them.

Video Total RTP Packets Total number of RTP video packets lost while using RTP over UDP trans-

Lost

port.

Video Total Out Of Order Total number of RTP video packets received in the wrong order while

RTP Packets

using RTP over UDP transport.

Video Total Duplicate RTP Packets

Total number of duplicate video RTP packets received.

Video Global Jitter

Average variation in arrival times of video packets on all streams. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Video Jitter less than 50 Number of video packets received with 0 to 50 microseconds of jitter. us

Video Jitter between 50 Number of video packets received with 50 to 100 microseconds of jitter. - 100 us

Video Jitter between 100 - 500 us

Number of video packets received with 100 -500 microseconds of jitter.

620

IxLoad Tcl API Programming Guide

Bulk SIP

Video Jitter between 500 us - 2 ms

Number of video packets received with 500 microseconds to 2 milliseconds of jitter.

Video Jitter between 2 - Number of video packets received with 2 to 5 milliseconds of jitter. 5 ms

Video Jitter between 5 - Number of video packets received with 5 to 10 milliseconds of jitter. 10 ms

Video Jitter greater than Number of video packets received with more than 10 milliseconds of jit-

10 ms

ter.

Video Inter Packet

Number of video packets that arrived less than 2 milliseconds after the

Arrival Time between 0 - preceding packet was received.

2 ms

Video Inter Packet

Number of video packets that arrived between 2 and 5 milliseconds after

Arrival Time between 2 - the preceding packet was received.

5 ms

Video Inter Packet

Number of video packets that arrived between 5 and 10 milliseconds after

Arrival Time between 5 - the preceding packet was received.

10 ms

Video Inter Packet Arrival Time between 10 - 25 ms

Number of video packets that arrived between 10 and 25 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 25 - 50 ms

Number of video packets that arrived between 25 and 50 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 50 - 100 ms

Number of video packets that arrived between 50 and 100 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 100 - 200 ms

Number of video packets that arrived between 100 and 200 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time between 200 - 500 ms

Number of video packets that arrived between 200 and 500 milliseconds after the preceding packet was received.

Video Inter Packet Arrival Time greater than 500 ms

Number of video packets that arrived more than 500 milliseconds after the preceding packet was received.

IxLoad Tcl API Programming Guide

621

Bulk SIP

Video Per-Stream Statistics

Video Active

Indicates whether the video stream is active or not: 0 = inactive 1 = active Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Stream Name

Name of video stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Flow ID

Number identifying the flow used by the video stream. A flow consists of the packets flowing between a source IP:port and a destination IP:port. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Transport

Type of transport used on the video stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Codec

Video codec used on the video stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Video Stream Bit Rate Bit rate used on video stream.

Video MDI-DF

Media Delay Index Delay Factor (MDI-DF) experienced on video stream.

Video MIN MDI-DF

Smallest MDI Delay Factor experienced on video stream.

Video MAX MDI-DF

Largest MDI Delay Factor experienced on video stream.

Video AVG-MDI-DF

Average MDI Delay Factor experienced on video stream.

Video MDI-MLR

Media Delay Index Media Loss Rate experienced on video stream.

Video Bytes

Number of bytes received on the video stream.

Video I Frames Rcvd

Number of I-frames received on the video stream. An I-frame is encoded with no reference to any previous or subsequent frames.

622

IxLoad Tcl API Programming Guide

Bulk SIP

Video P Frames Rcvd

Number of P-frames received on the video stream. A P-frame is encoded relative to the previous reference frame.

Video B Frames Rcvd

Number of B-frames received on the video stream. A B-frame is encoded relative to the previous reference frame, the subsequent reference frame, or both.

Video Packets

Number of packets received on the video stream.

Video Loss

Number of packets lost on the video stream.

Video Jitter

Number of packets with jitter received on the video stream.

Video Inter Pkt Arrival Time

Amount of time between received video packets, in milliseconds.

Video Min Inter Pkt Arrival Time

Smallest amount of time between received video packets, in milliseconds.

Video Max Inter Pkt Arrival Time

Largest amount of time between received video packets, in milliseconds.

Video Packet Latency (ns)

Average packet latency on the video stream.

Video Min Packet Latency (ns)

Smallest packet latency on the video stream.

Video Max Packet Latency (ns)

Longest packet latency on the video stream.

Video Join Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first byte of video data.

Video I Join Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first I frame.
This statistic is computed for MPEG2 transport streams carrying MPEG2 video data.

Video Leave Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) and the time it received the last byte of video data.
Leave latency has a maximum timeout of 10 seconds; if the client continues to receive data 10 seconds after it has sent the Leave command, the latency is measured as 10 seconds.

IxLoad Tcl API Programming Guide

623

Bulk SIP

Video Channel Switch Latency

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) to stop receiving one video stream and the time it received the first byte of data of a new video stream.

Video Channel Gap Duration

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) and received the last byte of the old video stream and the time it received the first byte of data of a new video stream.

Video Channel Overlap Duration

Amount of time, in milliseconds, elapsed after sending an IGMP LEAVE (broadcast channel) that the client was simultaneously receiving both the old and new video streams.

Video Control Sent

Indicates the type of video control command that has most recently been sent: 0 = LEAVE or PAUSE/TEARDOWN sent 1 = JOIN or PLAY sent

Video Data Rcvd

Indicates whether or not video data is being received: 0 = no data received 1 = data received

Video RTP Packets Lost Number of RTP video packets lost.

Video RTP Packets Out of Order

Number of RTP video packets received out of order.

Video RTP Packets Duplicated

Number of duplicate RTP video packets received.

Video Quality Statistics

Video JB Packets Accep- Number of video packets accepted into the jitter buffer. ted

Video JB Packets Early

Number of video packets that arrived earlier than expected in the jitter buffer.

Video JB Packets Discarded

Total number of video packets that were discarded. This statistic is the total of: JB Packets Discarded (Underrun) and JB Packets Discarded (Overrun).

624

IxLoad Tcl API Programming Guide

Bulk SIP

Video JB Packets Discarded (Underrun) Video JB Packets Discarded (Overrun) Video MOS_V
Video Service Quality
Video Gap Video Service Quality
Video Burst Video Service Quality
Video Burst Count
Video Avg Gap Len (Pkts)
Video Avg Burst Len (Pkts)
Video Degradation (Loss)

Number of video packets discarded because they arrived after their expected time slot.
Number of video packets discarded because the jitter buffer was full.
Mean Opinion Score for Video. This score is computed from the Video Service Quality statistic to create a zero-to-five (0-5) assessment of the quality of the video stream.
A factor in the range from 0 to 120, which provides an assessment of the capability of the RTP channel to support video transmission.
Video Service Quality during the Gap state. This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).
Video Service Quality during the Burst state. This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).
Number of times the stream entered the Burst state. This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).
The average gap length, in packets. This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).
The average burst length, in packets. This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).
The amount of the overall video quality degradation that can be attributed to packet loss. This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

IxLoad Tcl API Programming Guide

625

Bulk SIP

Video Degradation (Discard)

The amount of the overall video quality degradation that can be attributed to packets being discarded from the jitter buffer.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Degradation (Video Codec)

The amount of the overall quality degradation that can be attributed to video codec selection.
This statistic is cumulative, and is reset to zero (0) whenever you join or pause the channel/stream (Multicast/VOD mode) or change to the channel/stream (Broadcast mode).

Video Current JB Packets Accepted

Number of video packets accepted into the jitter butter during the current statistics Update Interval.

Video Current JB Packets Discarded

Number of video packets discarded from the jitter butter during the current statistics Update Interval.

Video Current JB Packets Lost

Number of video packets lost during the current statistics Update Interval.

Video Current Video Ser- Video Service Quality during the current statistics update interval. vice Quality

! 12

626

IxLoad Tcl API Programming Guide

CIFS
This section describes the CIFS Tcl API objects.
API Overview
The IxLoad CIFS API consists of the CIFS Client Agent, its commands, and a CIFS Server Agent.

Objectives
The objectives (userObjective) you can set for CIFS are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers l connectionRate l concurrentConnections l throughputMbps l throughputKbps l throughputGbps l transactionRate

IxLoad Tcl API Programming Guide

627

CIFS

628

IxLoad Tcl API Programming Guide

CIFS

CIFS Client Agent

CIFS client agent - create a CIFS client agent

SYNOPSIS

set Activity_CIFSClient1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"cifs Client" ]

DESCRIPTION
A CIFS client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_CIFSClient1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"cifs Client" ]

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

629

CIFS
CIFS Client Commands
This section lists the CIFS client agent's commands.

630

IxLoad Tcl API Programming Guide

CIFS Basic configuration
CIFS Basic config - configure the basic properties of a CIFS client agent
SYNOPSIS
$Activity_CIFSClient1 agent.pm.basic.config
DESCRIPTION
This object configures the basic properties of a CIFS client agent.
SUBCOMMANDS
None.
OPTIONS
enableUnicode Enables Unicode support. Default = 0 enableLock Lock type.

Values

Description

0 (Default) None

2

Exclusive

4

Batch

6

Both Batch and Exclusive

protocolVersion CIFS protocol version. The only choice is NT LM 0.12. Default = 1 (NT LM 0.12) authentication Authentication mechanism used.

Values

Description

1 (Default) NTLM

IxLoad Tcl API Programming Guide

CIFS 631

CIFS

2

NTLMv2

3

Plaintext

primaryDomain Client's primary domain. Minimum length = 1, maximum length = 256. Default = IXIACOM nativeOs String identifying the operating system. Minimum length = 1, maximum length = 255. Default = "Windows 2002 Service Pack 2 2600" nativeLanMan String identifying the native LAN manager. Minimum length = 1, maximum length = 255 Default = "Windows 2002 5.1" commandTimeout Number of seconds to wait for a response to a command. Min = 1, Max = 65535, Default = 10 chunk_size The length of Data Chunk to write in each WriteAndX. Min = 1, max = 15728640, Default = 65535 chunk_size_unit Number of Data Chunks to write in each WriteAndX. Min = 0, Max = 2, Default= 2 enablerandomdummy If true, dummy data is randomized. Default = 0 block_size Block size of random data. Default = 4096 syntheticPatternGenOption If true, the synthetic pattern generator is used to generate data. Default = 0

632

IxLoad Tcl API Programming Guide

EXAMPLE

$Activity_CIFSClient1 agent.pm.basic.config \

-nativeLanMan

"Windows 2002 5.1" \

-commandTimeout

10 \

-enableUnicode

false \

-syntheticPatternGenOption

0\

-protocolVersion

1\

-authentication

2\

-chunk_size_unit

2\

-enableLock

0\

-enablerandomdummy

false \

-chunk_size

65535 \

-nativeOs

"Windows 2002 Service Pack 2 2600" \

-block_size

4096 \

-primaryDomain

"IXIACOM"

SEE ALSO
ixNetTraffic

CIFS

IxLoad Tcl API Programming Guide

633

CIFS

CIFS Advanced configuration

CIFS Advanced config - configure the advanced properties of a CIFS client agent

SYNOPSIS
$Activity_CIFSClient1 agent.pm.advanced.config

DESCRIPTION
This object configures the advanced properties of a CIFS client agent.

SUBCOMMANDS
None.

OPTIONS
enableEsm Enables sending of MSS size. Default = 0 esm MSS size. Min = 64, max = 1460, default = 1460 enableTOS Enables setting of TOS bits. Min = 64, max = 1460, default = 1460 typeOfService TOS bit setting. Must be one of the choices configured in availableTosList. Default = Best Effort (0x0)

EXAMPLE

$Activity_CIFSClient1 agent.pm.advanced.config \

-enableTOS

false \

-esm

1460 \

-enableEsm

false \

-typeOfService

"Best Effort (0x0)"

634

IxLoad Tcl API Programming Guide

SEE ALSO
ixNetTraffic

CIFS

IxLoad Tcl API Programming Guide

635

CIFS

availableTosList

availableTosList - configure the list of ToS levels for a CIFS client.

SYNOPSIS

$Activity_CIFSClient1 agent.pm.availableTosList.appendItem \

-id

"AvailableTypeOfService" \

-tos_value

"Best Effort (0x0)"

DESCRIPTION
The availableTosList object configures the list of available ToS levels.
To add a ToS level to the list, you use the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the availableTosList. It is customary to set all the options of the availableTosList during the appendItem call.
Each member of the list can be separately addressed and modified using the ixConfig subcommands.
Before you add items to the availableTosList, you should initialize the list by using the clear subcommand of the ixConfigSequenceContainer command.

SUBCOMMANDS

OPTIONS
id ToS list name. (Default = "AvailableTypeOfService"). tos_value ToS level to be added to the list. Default = "" (null). Choices: "Best Effort (0x0)" "Class 1 (0x20)" "Class 2 (0x40)" "Class 3 (0x60)" "Class 4 (0x80)" "Express Forwarding (0xA0)" "Control (0xC0)"

636

IxLoad Tcl API Programming Guide

STATISTICS

EXAMPLE

$Activity_CIFSClient1 agent.pm.availableTosList.appendItem \

-id

"AvailableTypeOfService" \

-tos_value

"Best Effort (0x0)"

SEE ALSO

CIFS

IxLoad Tcl API Programming Guide

637

CIFS

CIFS Server Agent

CIFS server agent - create a CIFS server agent

SYNOPSIS

set Activity_CIFSServer1 [$Traffic2_Network2 activityList.appendItem \

-protocolAndType

"cifs Server" ]

DESCRIPTION

A CIFS server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_CIFSServer1 [$Traffic2_Network2 activityList.appendItem \

-protocolAndType

"cifs Server" ]

SEE ALSO

ixNetTraffic

638

IxLoad Tcl API Programming Guide

CIFS configuration
CIFS config - configure the basic properties of a CIFS server agent
SYNOPSIS
$Activity_CIFSClient1 agent.pm.basic.config
DESCRIPTION
This object configures the basic properties of a CIFS client agent.
SUBCOMMANDS
None.
OPTIONS
authenticationLevel Enable / disable authentication.

Value

Description

0 (default) No authentication

1

User-level authentication

authenticationMechanism Mode used for user-level authentication.

Value

Description

0

NTLM

1 (default) NTLM v2

2

Both NTLM and NTLM v2

3

PlainText

enableGuestLogin Enables guest access to server. Default = 0 enableByteByteDataCheck Enables byte-for-byte data integrity check.

IxLoad Tcl API Programming Guide

CIFS 639

CIFS
Default = 0 enableRandomDummy Enables support for random dummy data. Default = 0 block_size The size of the random block. Default = 4096

EXAMPLE

$Activity_CIFSServer1 agent.pm.cifs.config \

-enablePlaintext

false \

-enableGuestLogin

false \

-enableByteByteDataCheck

false \

-enableChallengeResponse

true \

-enableRandomDummy

false \

-block_size

4096 \

-authenticationMechanism

1\

-authenticationLevel

0

SEE ALSO
ixNetTraffic

640

IxLoad Tcl API Programming Guide

CIFS

User Info
CIFS user info - object list for storing users, with their password and domain
SYNOPSIS
$Activity_CIFSClient1 agent.pm.basic.config
DESCRIPTION
This object creates a list of users together with their passwords and domains. Items are added to the list using the appendItem subcommand from the ixConfigSequenceContainer command.The options are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
SUBCOMMANDS
None.
OPTIONS
id Name of the user info list. Default = AccountInfo username User name. Maximum length = 255. Default = "User <number>" password Password for user name. Maximum length = 255. Default = "password" domain User domain. Maximum length = 255. Default = "IXIACOM"
EXAMPLE
$Activity_CIFSServer1 agent.pm.cifs.UserInfo.clear

$Activity_CIFSServer1 agent.pm.cifs.UserInfo.appendItem \

-id

"AccountInfo" \

IxLoad Tcl API Programming Guide

641

CIFS
-username -domain -password
SEE ALSO
ixNetTraffic

"User0" \ "IXIACOM" \ "password"

642

IxLoad Tcl API Programming Guide

CIFS

Advanced configuration

CIFS server advanced configuration - configure the advanced properties of a CIFS server

SYNOPSIS
$Activity_CIFSServer1 agent.pm.advanced.config \

DESCRIPTION

This object configures the advanced properties of a CIFS server.

SUBCOMMANDS
None.

OPTIONS
enableEsm Enables sending of MSS size. Default = 0 esm MSS size. Min = 64, max = 1460, default = 1460 enableTOS Enable setting of TOS bits. Default = 0 typeOfService TOS bit setting. Must be one of the settings configured in the availableTosList. See availableTosList (see "availableTosList") for a description of creating an availableTosList. Default = "Best Effort (0x0)" listening_port Comma separated list of listening ports. (for example 143, 243, 343, 443) Default = 445

EXAMPLE

$Activity_CIFSServer1 agent.pm.advanced.config \

-enableTOS

false \

IxLoad Tcl API Programming Guide

643

CIFS
-esm -enableEsm -typeOfService -listening_port
SEE ALSO
ixNetTraffic

1460 \ false \ "Best Effort (0x0)" \ "445"

644

IxLoad Tcl API Programming Guide

CIFS
Shared Pool
CIFS server shared pool - configure the shared folders on the server
SYNOPSIS
$Activity_CIFSServer1 agent.pm.advanced.config \
DESCRIPTION
This object configures the shared files and folder structure on the CIFS server. To add a file or folder to the list, you use the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the list. It is customary to set all the options of the list during the appendItem call. Each member of the list can be separately addressed and modified using the ixConfig subcommands. Before you add items to the list, you should initialize the list by using the clear subcommand of the ixConfigSequenceContainer command.
SUBCOMMANDS
None.
OPTIONS
selfId ID for this item. Default = 1 parentId ID of the parent folder of this item. Default = 1 dateCreated Date the file or folder was created. The value for this option is a double data type, where the decimal part stores the number of days passed since 1st Jan, 1970 to now, and the fractional part specifies the number of milliseconds passed since last midnight. Default = ""(none) dateAccessed

IxLoad Tcl API Programming Guide

645

CIFS

Date the file or folder was last accessed. The value for this option is a double data type, where the decimal part stores the number of days passed since 1st Jan, 1970 to now, and the fractional part specifies the number of milliseconds passed since last midnight.
Default = ""(none)
dateModified
Date the file or folder was last modified. The value for this option is a double data type, where the decimal part stores the number of days passed since 1st Jan, 1970 to now, and the fractional part specifies the number of milliseconds passed since last midnight.
Default = ""(none)
payloadType
Payload type.

Values Description

0

Dummy

1

Real

2

Synthetic Pattern Generator

realFilePath Path for real file if the payload is a real file. Default = "" (none) dataLength The length of data to write. Min = 0, max = 2147483647, default = 0 nodeType Type of object added to the shared pool.

Values

Description

0 (default) File

1

Folder

2

Root

646

IxLoad Tcl API Programming Guide

EXAMPLE

$Activity_CIFSServer1 agent.pm.sharedPool.appendItem \

-id

"Node" \

-name

"root1" \

-enableRandomDataLength

false \

-selfId

1\

-dateCreated

14768.40324 \

-payloadType

0\

-maxDataLength

0\

-dataLength

0\

-parentId

-1 \

-dateAccessed

14768.40324 \

-dateModified

14768.40324 \

-realFilePath

""

$Activity_CIFSServer1 agent.pm.sharedPool.appendItem \

-id

"Node" \

-name

"folder2" \

-enableRandomDataLength

false \

-selfId

2\

-dateCreated

14768.40324 \

-payloadType

0\

-maxDataLength

0\

-dataLength

0\

-parentId

1\

-dateAccessed

14768.40324 \

-dateModified

14768.40324 \

-realFilePath

""

IxLoad Tcl API Programming Guide

CIFS 647

CIFS

$Activity_CIFSServer1 agent.pm.sharedPool.appendItem \

-id

"Node" \

-name

"file3" \

-enableRandomDataLength

false \

-selfId

3\

-dateCreated

14768.40324 \

-payloadType

0\

-maxDataLength

0\

-dataLength

0\

-parentId

1\

-dateAccessed

14768.40324 \

-dateModified

14768.40324 \

-realFilePath

""

SEE ALSO
ixNetTraffic

648

IxLoad Tcl API Programming Guide

Statistics
This section describes the CIFS statistics.

CIFS

IxLoad Tcl API Programming Guide

649

CIFS

CIFS Client Statistics
The following table describes the CIFS client statistics.

Statistic

Description

CIFS Active Connections

Number of CIFS sessions currently active.

CIFS Total Connections Requested

Number of sessions that the CIFS client attempted to establish.

CIFS Total Connections Succeeded

Number of sessions successfully established.

CIFS Total Connections Failed

Number of sessions that could not be established.

CIFS Integrity Check Succeeded

Number of integrity checks in which the data was verified to be free of errors.

CIFS Integrity Check Failed

Number of integrity checks in which the data failed verification.

CIFS Average Session Duration

Average duration of a CIFS session. This statistic computes the length of a CIFS session beginning when the TCP connection is established and ending when the TCP session is closed.

CIFS Data Integrity Statistics

CIFS Client Total Data Integrity Check Failed

Total number of data integrity (DI) comparisons in which the data the client received was different from what it expected.

CIFS Client Total Data Integrity Check Succeeded

Total number of data integrity (DI) comparisons in which the data the client received matched the data that it expected.
Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.

CIFS Negotiation Statistics

650

IxLoad Tcl API Programming Guide

CIFS

CIFS Protocol Nego- Average time elapsed between the time the client sent an SMB_COM_

tiation Average

NEGOTIATE request containing the list of dialects it supports and the time it

Latency

received the server's response.

CIFS Total Protocol Negotiation Attempted

Number of attempts the client made to negotiate an SMB protocol with the server.

CIFS Total Protocol Negotiation Succeeded

Number of protocol negotiations that succeeded.

CIFS Total Protocol Negotiation Failed (Error)

Number of protocol negotiations that failed due to an error.

CIFS Total Protocol Negotiation Failed (Timed Out)

Number of protocol negotiations that failed because the client did not receive a response from the server within the timeout period.

CIFS Sessions Statistics

CIFS SessionSetupAndX Average Latency

Average time elapsed between the time the client sent an SMB_COM_ SESSION_SETUP_ANDX request and the time it received the server's response.

CIFS Total SessionSetupAndX Sent

Number of SMB_COM_SESSION_SETUP_ANDX requests sent by the client.

CIFS Total SessionSetupAndX Succeeded

Number of SMB_COM_SESSION_SETUP_ANDX requests that succeeded.

CIFS Total SessionSetupAndX failed (Error)

Number of SMB_COM_SESSION_SETUP_ANDX requests that failed due to an error.

CIFS Total SessionSetupAndX failed (Timed Out)

Number of SMB_COM_SESSION_SETUP_ANDX requests that failed because the client did not receive a response within the timeout period.

CIFS Total SessionSetupAndX failed (badpw)

Number of SMB_COM_SESSION_SETUP_ANDX requests that failed because the password was incorrect.

IxLoad Tcl API Programming Guide

651

CIFS

CIFS Total SessionSetupAndX failed (toomanyuids)

Number of SMB_COM_SESSION_SETUP_ANDX requests that failed because the maximum number of users per session was exceeded.

CIFS Total SessionSetupAndX failed (nosupport)

Number of SMB_COM_SESSION_SETUP_ANDX requests that failed because the function is not supported.

CIFS Total Sessions close successfully

Total number of CIFS sessions that were closed normally.

CIFS Command Statistics

TREE_CONNECT_AndX Statistics

CIFS TreeConnectAndX Average Latency

Average time elapsed between the time the client sent an SMB_COM_TREE_ CONNECT_ANDX request and the time it received the server's response.

CIFS Total TreeCon- Number of SMB_COM_TREE_CONNECT_ANDX requests sent by the client. nectAndX Sent

CIFS Total TreeCon- Number of SMB_COM_TREE_CONNECT_ANDX requests that succeeded. nectAndX Succeeded

CIFS Total TreeCon- Number of SMB_COM_SESSION_SETUP_ANDX requests that failed due to an

nectAndX Failed

error.

(Error)

CIFS Total TreeCon- Number of SMB_COM_SESSION_SETUP_ANDX requests that failed because the

nectAndX Failed

client did not receive a response within the timeout period.

(Timed Out)

NT_CREATE_AndX Statistics

CIFS NT_ CreateAndX Average Latency

Average time elapsed between the time the client sent an SMB_COM_NT_ CREATE_ANDX request and the time it received the server's response.

CIFS Total NT_ CreateAndX Sent

Number of SMB_COM_NT_CREATE_ANDX requests sent by the client.

CIFS Total NT_ CreateAndX Succeeded

Number of SMB_COM_NT_CREATE_ANDX requests that succeeded.

652

IxLoad Tcl API Programming Guide

CIFS

CIFS Total NT_ CreateAndX Failed (Error)

Number of SMB_COM_NT_CREATE_ANDX requests that failed due to an error.

CIFS Total NT_ CreateAndX Failed (Timed Out)

Number of SMB_COM_NT_CREATE_ANDX requests that failed because the client did not receive a response within the timeout period.

Trans Statistics

CIFS Trans Average Latency

Average time elapsed between the time the client sent an SMB_COM_ TRANSACTION request and the time it received the server's response.

CIFS Total Trans Sent

Number of SMB_COM_TRANSACTION requests sent by the client.

CIFS Total Trans Succeeded

Number of SMB_COM_TRANSACTION requests that succeeded.

CIFS Total Trans Failed (Error)

Number of SMB_COM_TRANSACTION requests that failed due to an error.

CIFS Total Trans

Number of SMB_COM_TRANSACTION requests that failed because the client

Failed (Timed Out) did not receive a response within the timeout period.

READ_ANDX Statistics

CIFS ReadAndX Average Latency

Average time elapsed between the time the client sent an SMB_COM_READ_ ANDX request and the time it received the server's response.

CIFS Total ReadAndX Sent

Number of SMB_COM_READ_ANDX requests sent by the client.

CIFS Total ReadAndX Succeeded

Number of SMB_COM_READ_ANDX requests that succeeded.

CIFS Total ReadAndX Failed (Error)

Number of SMB_COM_READ_ANDX requests that failed due to an error.

CIFS Total ReadAndX Failed (Timed Out)

Number of SMB_COM_READ_ANDX requests that failed because the client did not receive a response within the timeout period.

WRITE_ANDX Statistics

IxLoad Tcl API Programming Guide

653

CIFS

CIFS WriteAndX Average Latency

Average time elapsed between the time the client sent an SMB_COM_WRITE_ ANDX request and the time it received the server's response.

CIFS Total WriteAndX Sent

Number of SMB_COM_WRITE_ANDX requests sent by the client.

CIFS Total WriteAndX Succeeded

Number of SMB_COM_WRITE_ANDX requests that succeeded.

CIFS Total WriteAndX Failed (Error)

Number of SMB_COM_WRITE_ANDX requests that failed due to an error.

CIFS Total WriteAndX Failed (Timed Out)

Number of SMB_COM_WRITE_ANDX requests that failed because the client did not receive a response within the timeout period.

COPY Statistics

CIFS COPY Average Latency

Average time elapsed between the time the client sent an SMB_COM_COPY request and the time it received the server's response.

CIFS Total COPY Sent

Number of SMB_COM_COPY requests sent by the client.

CIFS Total COPY Succeeded

Number of SMB_COM_COPY requests that succeeded.

CIFS Total COPY Failed (Error)

Number of SMB_COM_COPY requests that failed due to an error.

CIFS Total COPY

Number of SMB_COM_COPY requests that failed because the client did not

Failed (Timed Out) receive a response within the timeout period.

MOVE Statistics

CIFS MOVE Average Latency

Average time elapsed between the time the client sent an SMB_COM_MOVE request and the time it received the server's response.

CIFS Total MOVE Sent

Number of SMB_COM_MOVE requests sent by the client.

CIFS Total MOVE Succeeded

Number of SMB_COM_MOVE requests that succeeded.

654

IxLoad Tcl API Programming Guide

CIFS

CIFS Total MOVE Failed (Error)

Number of SMB_COM_MOVE requests that failed due to an error.

CIFS Total MOVE Number of SMB_COM_MOVE requests that failed because the client did not Failed (Timed Out) receive a response within the timeout period.

DELETE Statistics

CIFS DELETE Aver- Average time elapsed between the time the client sent an SMB_COM_DELETE

age Latency

request and the time it received the server's response.

CIFS Total DELETE Number of SMB_COM_DELETE requests sent by the client. Sent

CIFS Total DELETE Number of SMB_COM_DELETE requests that succeeded. Succeeded

CIFS Total DELETE Number of SMB_COM_DELETE requests that failed due to an error. Failed (Error)

CIFS Total DELETE Number of SMB_COM_DELETE requests that failed because the client did not Failed (Timed Out) receive a response within the timeout period.

RENAME Statistics

CIFS RENAME Aver- Average time elapsed between the time the client sent an SMB_COM_RENAME

age Latency

request and the time it received the server's response.

CIFS Total RENAME Number of SMB_COM_RENAME requests sent by the client. Sent

CIFS Total RENAME Number of SMB_COM_RENAME requests that succeeded. Succeeded

CIFS Total RENAME Number of SMB_COM_RENAME requests that failed due to an error. Failed (Error)

CIFS Total RENAME Number of SMB_COM_RENAME requests that failed because the client did not Failed (Timed Out) receive a response within the timeout period.

CLOSE Statistics

CIFS CLOSE Aver- Average time elapsed between the time the client sent an SMB_COM_CLOSE

age Latency

request and the time it received the server's response.

CIFS Total CLOSE Sent

Number of SMB_COM_CLOSE requests sent by the client.

IxLoad Tcl API Programming Guide

655

CIFS

CIFS Total CLOSE Succeeded

Number of SMB_COM_CLOSE requests that succeeded.

CIFS Total CLOSE Failed (Error)

Number of SMB_COM_CLOSE requests that failed due to an error.

CIFS Total CLOSE Number of SMB_COM_CLOSE requests that failed because the client did not Failed (Timed Out) receive a response within the timeout period.

LOGOFF_ANDX Statistics

CIFS LogoffAndX Average Latency

Average time elapsed between the time the client sent an SMB_COM_LOGOFF_ ANDX request and the time it received the server's response.

CIFS Total LogoffAndX Sent

Number of SMB_COM_LOGOFF_ANDX requests sent by the client.

CIFS Total LogoffAndX Succeeded

Number of SMB_COM_LOGOFF_ANDX requests that succeeded.

CIFS Total LogoffAndX Failed (Error)

Number of SMB_COM_LOGOFF_ANDX requests that failed due to an error.

CIFS Total LogoffAndX Failed (Timed Out)

Number of SMB_COM_LOGOFF_ANDX requests that failed because the client did not receive a response within the timeout period.

TRANS2_FIND_FIRST2 Statistics

CIFS Trans2FindFirst2 Average Latency

Average time elapsed between the time the client sent an SMB_COM_ TRANSACTION2 request with an TRANS2_FIND_FIRST2 subcommand and the time it received the server's response.

CIFS Total Trans2FindFirst2 Sent

Number of TRANS2_FIND_FIRST2 subcommands sent by the client.

CIFS Total Trans2FindFirst2 Succeeded

Number of TRANS2_FIND_FIRST2 subcommands that succeeded.

CIFS Total Trans2FindFirst2 Failed (Error)

Number of TRANS2_FIND_FIRST2 subcommands that failed due to an error.

656

IxLoad Tcl API Programming Guide

CIFS

CIFS Total Trans2FindFirst2 Failed (Timed Out)

Number of TRANS2_FIND_FIRST2 subcommands that failed because the client did not receive a response within the timeout period.

TRANS2_SET_FILE_INFORMATION Statistics

CIFS Trans2SetFileInfo Average Latency

Average time elapsed between the time the client sent an SMB_COM_ TRANSACTION2 request with an TRANS2_SET_FILE_INFORMATION subcommand and the time it received the server's response.

CIFS Total Trans2SetFileInfo Sent

Number of TRANS2_SET_FILE_INFORMATION subcommands sent by the client.

CIFS Total Trans2SetFileInfo Succeeded

Number of TRANS2_SET_FILE_INFORMATION subcommands that succeeded.

CIFS Total Trans2SetFileInfo Failed (Error)

Number of TRANS2_SET_FILE_INFORMATION subcommands that failed due to an error.

CIFS Total Trans2SetFileInfo Failed (Timed Out)

Number of TRANS2_SET_FILE_INFORMATION subcommands that failed because the client did not receive a response within the timeout period.

TREE_DISCONNECT Statistics

CIFS TreeDisconnect Average Latency

Average time elapsed between the time the client sent an SMB_COM_TREE_ DISCONNECT request and the time it received the server's response.

CIFS Total TreeDis- Number of SMB_COM_TREE_DISCONNECT requests sent by the client. connect Sent

CIFS Total TreeDis- Number of SMB_COM_TREE_DISCONNECT requests that succeeded. connect Succeeded

CIFS Total TreeDis- Number of SMB_COM_TREE_DISCONNECT requests that failed due to an error. connect Failed (Error)

CIFS Total TreeDis- Number of SMB_COM_TREE_DISCONNECT requests that failed because the cli-

connect Failed

ent did not receive a response within the timeout period.

(Timed Out)

IxLoad Tcl API Programming Guide

657

CIFS

CIFS Dfs Path Not Covered Received

Number or error messages received from the server indicating that the requested file is stored on a different system (STATUS_DFS_PATH_NOT_COVERED messages).

Requests Sent and Responses Received Statistics

CIFS Total Requests Sent

Total number of SMB requests sent by the client.

CIFS Total Responses Received

Total number of SMB responses received from the server.

Bytes Statistics

CIFS Total Bytes Transmitted

Total number of bytes transmitted in CIFS packets.

CIFS Total Bytes Received

Total number of bytes received in CIFS packets.

CIFS Total Bytes

Combined total of bytes sent and received in CIFS packets.

Sent And Received

CIFS Total Through- Rate at which the client sent and received CIFS packets. put

Transaction Statistics

CIFS Total Transactions

Total number of SMB transactions completed. For CIFS, a transaction consists of an SMB request and the server's response to it.

CIFS Total Commands Sent

Total number of SMB commands sent by the client.

CIFS Total Com-

Total number of SMB commands that succeeded.

mands Succeeded

CIFS Total Commands Failed

Total number of SMB commands that failed for any reason.

CIFS Total Commands Failed (Timed Out)

Number of SMB commands that failed because the client did not receive a response from the server within the timeout period.

658

IxLoad Tcl API Programming Guide

CIFS

CIFS Total Commands Failed (Other)

Number of SMB commands that failed for reasons other than a timeout.

Test Objective Statistics

CIFS Simulated Users

Number of CIFS clients simulated during the test.

IxLoad Tcl API Programming Guide

659

CIFS

CIFS Server Statistics
The following table describes the CIFS server statistics.

Statistic

Description

Session Statistics

CIFS Session Setup Succeeded

Number of CIFS sessions successfully setup.

CIFS Session Setup Failed Number of CIFS sessions that could not be setup.

CIFS Session Close Succeeded

Number of CIFS sessions that ended normally.

Bytes Statistics

CIFS Server Total Bytes Sent

Total number of bytes sent in CIFS packets by the server, including header and payload bytes.

CIFS Server Total Bytes Received

Total number of bytes received in CIFS packets by the server, including header and payload bytes.

CIFS Server Total Bytes Sent And Received

Combined total of bytes sent and received by the server in CIFS packets.

CIFS Active Connections

Number of CIFS connections established and in progress.

Command Related Statistics

Negotiate Protocol Request Number of NEGOTIATE messages received by the server. Received

Trans2 Set File Info Request Received

Number of SMB_COM_TRANSACTION2 requests received with the TRANS2_SET_FILE_INFORMATION subcommand code set.

Trans2 Find First2 Request Number of SMB_COM_TRANSACTION2 requests received with the

Received

TRANS2_FIND_FIRST2 subcommand code set.

Trans2 Find Next2 Request Number of SMB_COM_TRANSACTION2 requests received with the

Received

TRANS2_FIND_NEXT2 subcommand code set.

CIFS SessionSetupAndx Request Received

Number of SMB_COM_SESSION_SETUP_ANDX messages received by the server.

CIFS TreeConnectAndx Request Received

Number of SMB_COM_TREE_CONNECT_ANDX messages received by the server.

660

IxLoad Tcl API Programming Guide

CIFS

CIFS TreeDisconnect Request Received

Number of SMB_COM_TREE_DISCONNECT messages received by the server.

CIFS NT_CreateAndx Request Received

Number of SMB_COM_NT_CREATE_ANDX messages received by the server.

CIFS NetshareEnumall Request Received

Number of SMB_COM_NETSHARE_ENUM_ALL messages received by the server.

CIFS ReadAndx Request Received

Number of SMB_COM_READ_ANDX messages received by the server.

CIFS Rename Request Received

Number of SMB_COM_RENAME messages received by the server.

CIFS Delete Request Received

Number of SMB_COM_DELETE messages received by the server.

CIFS WriteAndx Request Received

Number of SMB_COM_WRITE_ANDX messages received by the server.

CIFS Close Request Received

Number of SMB_COM_CLOSE messages received by the server.

CIFS Logoff Request Received

Number of SMB_COM_LOGOFF_ANDX messages received by the server.

Command Response Statistics

Negotiate Protocol Response Sent

Number of responses sent for SMB_COM_NEGOTIATE commands.

Trans2 Set File Info Response Sent

Number of responses sent for SMB_COM_TRANSACTION2 requests received with the TRANS2_SET_FILE_INFORMATION subcommand code set.

Trans2 Find First2 Response Sent

Number of responses sent for SMB_COM_TRANSACTION2 requests received with the TRANS2_FIND_FIRST2 subcommand code set.

Trans2 Find Next2 Response Sent

Number of responses sent for SMB_COM_TRANSACTION2 requests received with the TRANS2_FIND_NEXT2 subcommand code set.

CIFS SessionSetupAndx Response Sent

Number of reponses sent for SMB_COM_SESSION_SETUP_ANDX commands.

CIFS TreeConnectAndx Response Sent

Number of responses sent for SMB_COM_TREE_CONNECT_ANDX commands.

IxLoad Tcl API Programming Guide

661

CIFS

CIFS TreeDisconnect Response Sent

Number of responses sent for SMB_COM_TREE_DISCONNECT commands.

CIFS NT_CreateAndx Response Sent

Number of responses sent for SMB_COM_NT_CREATE_ANDX commands.

CIFS Netsharenumall Response Sent

Number of responses sent for SMB_COM_NETSHARE_ENUM_ALL commands.

CIFS ReadAndx Response Sent

Number of responses sent for SMB_COM_READ_ANDX commands.

CIFS Rename Succeeded

Number of responses sent for SMB_COM_RENAME commands.

CIFS Delete Succeeded

Number of responses sent for SMB_COM_DELETE commands.

CIFS WriteAndx Response Sent

Number of responses sent for SMB_COM_WRITE_ANDX commands.

CIFS Close Response Sent Number of responses sent for SMB_COM_CLOSE commands.

CIFS Logoff Response Sent Number of responses sent for SMB_COM_LOGOFF_ANDX commands.

Command Failed Statistics The following statistics are updated when an error occurs or when an error response is generated for a invalid request.

Negotiate Protocol Sent Failed

Number of SMB_COM_NEGOTIATE responses sent that did not result in a CIFS session being established.

Trans2 Set File Info Sent Failed

Number of responses sent for TRANS2_SET_FILE_INFORMATION commands that failed.

Trans2 Find First2 Sent Failed

Number of responses sent for TRANS2_FIND_FIRST2 commands that failed.

Trans2 Find Next2 Sent Failed

Number of responses sent for TRANS2_FIND_NEXT2 commands that failed.

CIFS SessionSetupAndx Sent Failed

Number of responses sent for SMB_COM_SESSION_SETUP_ANDX commands that failed.

CIFS TreeConnectAndx Sent Failed

Number of responses sent for SMB_COM_TREE_CONNECT_ANDX commands that failed.

CIFS TreeDisconnect Sent Failed

Number of responses sent for SMB_COM_TREE_DISCONNECT commands that failed.

662

IxLoad Tcl API Programming Guide

CIFS

CIFS NT_CreateAndx Sent Failed

Number of responses sent for SMB_COM_NT_CREATE_ANDX commands that failed.

CIFS Netsharenumall Sent Failed

Number of responses sent for SMB_COM_NETSHARE_ENUM_ALL commands that failed.

CIFS ReadAndx Sent Failed Number of responses sent for SMB_COM_READ_ANDX commands that failed.

CIFS Rename Failed

Number of responses sent for SMB_COM_RENAME commands that failed.

CIFS Delete Failed

Number of responses sent for SMB_COM_DELETE commands that failed.

CIFS WriteAndx Sent Failed Number of responses sent for SMB_COM_WRITE_ANDX commands that failed.

CIFS Close Sent Failed

Number of responses sent for SMB_COM_CLOSE commands that failed.

CIFS Logoff Sent Failed

Number of responses sent for SMB_COM_LOGOFF_ANDX commands that failed.

SMB Error Statistics

CIFS Server Logon Failure Number of failed attempts by clients to log on to the server.

CIFS Server Bad Password

Number of incorrect passwords provided by clients attempting to log on.

CIFS Server Bad User ID

Number of incorrect user names provided by clients attempting to log on.

CIFS Server Bad Filename

Number of attempts by clients to access files that do not exist on the server.

CIFS Server Bad Path

Number of attempts by clients to access paths that do not exist on the server.

CIFS Server Bad Access

Number of instances in which the client did not have the access rights to perform a function.

CIFS Server Bad Command Number of SMB commands that the server did not recognize.

CIFS Server Invalid Parameter

Number of invalid parameters received in SMB commands.

IxLoad Tcl API Programming Guide

663

CIFS ! 13

664

IxLoad Tcl API Programming Guide

DHCP
This section describes the DHCP Tcl API objects.
Overview
The IxLoad DHCP API consists of a client agent and its commands.
Objectives
The objectives (userObjective) you can set for DHCP are listed below. Test objectives are set in the ixTimeline object.
l transactionRate l simulatedUsers

IxLoad Tcl API Programming Guide

665

DHCP

DHCP Client Agent
DHCP Client Agent
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.config
DESCRIPTION
A DHCP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time. loopValue If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0).
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity DHCPClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"dhcp Client" ]$Activity_DHCPClient1 agent.config \-enable

true \-name

"DHCPClient1"

666

IxLoad Tcl API Programming Guide

SEE ALSO
ixNetTraffic

DHCP

IxLoad Tcl API Programming Guide

667

DHCP

DHCP Command List
DHCP Command List--Creates the list of DHCP commands that the client will send to a DHCP server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.DHCPCommandList.appendItem
DESCRIPTION
A command is added to the DHCP Command List object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id DHCP command to be executed. One of the following:

Command DHCPDiscover DHCPRequest
DHCPDecline DHCPRelease

Description
Broadcasts a DHCPDISCOVER message--a broadcast to locate available servers. The client will then wait to receive one or more DHCPOFFER messages and select one of these offers.
l Sends a DHCPREQUEST message. The DHCPREQUEST message can be used to perform several tasks:
l It can request the offered parameters from one server and implicitly decline offers from all others.
l It can confirm the correctness of a previously allocated address (for example, after a reboot).
l It can extend the lease on a particular network address.
Sends a DHCPDECLINE message. A DHCP client sends a DHCPDECLINE when it knows that an offered IP address is already in use.
Sends a DHCPRELEASE message. If a client no longer requires use of its assigned network address (for example, because it is shutting down), it sends a DHCPRELEASE mesto the server.

668

IxLoad Tcl API Programming Guide

DHCP

DHCPInform Bind
BindRelease BindRenew BOOTRequest Think

Sends a DHCPINFORM message. After sending the comthe client waits for a DHCPACK message from the server. The DHCPINFORM message allows hosts that are not using DHCP to acquire IP addresses to still utilize its other configuration capabilities to request that a server send it parameters for how the network is to be used.
An IxLoad command that is a composite of several DHCP commands that simulates a binding. The {Bind} command functions as follows: 1. Send a DHCPDISCOVER message. 2. Wait to receive one or more DHCPOFFER messages from the servers. 3. Send a DHCPREQUEST message to one of the servers. 4. Wait to receive a DHCPACK message. 5. Validate the IP address received. If it is invalid, then send a DHCPDECLINE message to the server. Using the {Bind} command is equivalent to issuing a DHCPcommand followed by a DHCPREQUEST (SELECTING) command and an optional DHCPDECLINE command.
An IxLoad command that is a composite of several DHCP commands that simulates a client binding, pausing execution, and then releasing its IP address. It is included to help speed your testing. Using the {BindRelease} command is equivalent to using {Bind}, {Think}, and DHCPRELEASE.
An IxLoad command that is a composite of several DHCP commands that simulates a client binding, pausing execution, and then renewing its IP address. It is included to help speed your testing. Using the {BindRenew} command is equivalent to using {Bind}, {Think}, and DHCPREQUEST (RENEWING).
A BOOTP (Bootstrap Protocol) command that sends a BOOTREQUEST message and waits to receive a BOOTREmessage from a server.
Causes the client to become idle. {Think} is an internal IxLoad command intended to assist your testing; it is not a command defined in the DHCP protocol. If you specify identical values for the minimum and maximum times, the client will be idle for a fixed length of time. If you specify different values for the minimum and maximum times, IxLoad will select a value within the range and cause the client to be idle for that length of time.

IxLoad Tcl API Programming Guide

669

DHCP

LoopBeginCommand An IxLoad command that you can add to the Command List to cause the commands between it and the {LoopEndCommand} to be executed a specified number of times.

LoopEndCommand

Ends the list of commands that will be executed by the preceding Loop Begin} command.

Arguments for id = DHCPDiscover
optionSet
Name of option set. A value for this argument must one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for DHCPDISCOVER"). serverAlgo
Determines how the client selects the DHCP server from among those offered. Minimum = 1, maximum = 3. The choices are:

Value Description

1

(default) The client selects the server that replies first.

2

The client selects the server whose IP address is specified for the

serverIPAddr argument.

3

The client selects a server at random from a pool of those that reply. Specify the number of

servers in the upperLimit field.

serverIPAddr
If serverAlgo is set to 2, this is the IP address of the DHCP server. Minimum length = 7, maximum length = 19. (Default = "10.0.1.1").
upperLimit
If serverAlgo is set to 3, this is the number of servers in the pool. Minimum = 1, maximum length = 2147483647. (Default = "5").

Arguments for id = DHCPRequest
sendState
State in which the client is to send the DHCPREQUEST message. See the state transition diagram in RFC 2131. Minimum = "1," maximum = "4." The choices are:

670

IxLoad Tcl API Programming Guide

DHCP
Value Description "1" (default) Selecting "2" InitReboot "3" Renewing "4" Rebinding
Arguments for id = DHCPDecline
optionSet Name of option set. A value for this argument must one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for DHCPDECLINE").
Arguments for id = DHCPRelease
optionSet Name of option set. A value for this argument must one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for DHCPRELEASE").
Arguments for id = DHCPInform
optionSet Name of option set. A value for this argument must one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for DHCPINFORM"). clientIPAddr IP address and subnet of client. The client will insert this address and subnet into the CIAddr field of the DHCPINFORM message. If the IP address has already been assigned, then this address will be ignored. Minimum length = "7," maxilength = "24." (Default = "10.0.0.1/8").
Arguments for id = Bind
optionSet Name of option set. A value for this argument must be one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for {Bind}"). serverAlgo Determines how the client selects the DHCP server from among those offered. Minimum = 1, maximum = 3. The choices are:

IxLoad Tcl API Programming Guide

671

DHCP

Value Description

1

(default) The client selects the server that replies first.

2

The client selects the server whose IP address is specified for the

serverIPAddr argument.

3

The client selects a server at random from a pool of those that reply. Specify the number of

servers in the upperLimit field.

serverIPAddr
If serverAlgo is set to 2, this is the IP address of the DHCP server. Minimum length = 7, maximum length = 19. (Default = "10.0.1.1/8"). upperLimit
If serverAlgo is set to 3, this is the number of servers in the pool. Minimum = 1, maximum length = 2,147,483,647. (Default = "5").
Arguments for id = BindRelease
timeToThinkMin
Minimum length of time before the client releases the IP address. Minimum = "1," maximum = "2,147,483,647." (Default = "1"). timeToThinkMax
Maximum length of time before the client releases the IP address. Minimum = "1," maximum = "2,147,483,647." (Default = "1"). optionSet
Name of option set. A value for this argument must one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for {BindRelease}"). serverAlgo
Determines how the client selects the DHCP server from among those offered. Minimum = 1, maximum = 3. The choices are:

Value Description

1

(default) The client selects the server that replies first.

672

IxLoad Tcl API Programming Guide

DHCP

2

The client selects the server whose IP address is specified for the

serverIPAddr argument.

3

The client selects a server at random from a pool of those that reply. Specify the number of

servers in the upperLimit field.

serverIPAddr
If serverAlgo is set to 2, this is the IP address of the DHCP server. Minimum length = 7, maximum length = 19. (Default = "10.0.1.1/8").
upperLimit
If serverAlgo is set to 3, this is the number of servers in the pool. Minimum = 1, maximum length = 2,147,483,647. (Default = "5").
Arguments for id = BindRenew
timeToThinkMin
Minimum length of time before the client releases the IP address. If you set a value for timeToThinkMin, you must also set timeToThinkMax to the same value. Minimum = "1," maximum = "2,147,483,647." (Default = "1").
timeToThinkMax
Maximum length of time before the client releases the IP address. If you set a value for timeToThinkMax, you must also set timeToThinkMin to the same value. Minimum = "1," maximum = "2,147,483,647." (Default = "1").
optionSet
Name of option set. A value for this argument must one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for {BindRenew}").
serverAlgo
Determines how the client selects the DHCP server from among those offered. Minimum = 1, maximum = 3. The choices are:

Value Description

1

(default) The client selects the server that replies first.

2

The client selects the server whose IP address is specified for the

serverIPAddr argument.

3

The client selects a server at random from a pool of those that reply. Specify the number of

servers in the upperLimit field.

IxLoad Tcl API Programming Guide

673

DHCP
serverIPAddr
If serverAlgo is set to 2, this is the IP address of the DHCP server. Minimum length = 7, maximum length = 19. (Default = "10.0.1.1/8"). upperLimit
If serverAlgo is set to 3, this is the number of servers in the pool. Minimum = 1, maximum length = 2,147,483,647. (Default = "5").
Arguments for id = BOOTRequest
clientIPAddr
IP address and subnet of client. Minimum length = "7," maximum length = "24." (Default = "10.0.0.1/8"). serverName
Host name or IP address of the BOOTP server. In actual BOOTP implementations, this field (SName) is normally used by a client to specify a particular server that it wants to receive a a reply from. If you enter a host name or IP address in this field, the client sends the BOOTREQUEST as a unicast message to the BOOTP server. If you leave this field blank, the client sends the BOOTREQUEST as a broadcast message to the port number used by BOOTP to the broadcast address of the local network. Minimum length = "7," maximum length = "24." (Default = "10.0.0.1/8"). bootFileType
Indication to the BOOTP server as to the boot file that the client wants to receive. When the server receives the BOOTREQUEST, it determines which file contains the requested image, and uses Boot File Name field to send the name of the file to the client. Maximum length = 127. (Default="{}"). optionSet
Name of option set. A value for this argument must be one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set for {BOOTRequest}").
Arguments for id = Think
timeToThinkMin
Minimum length of time that the client is idle. Minimum = "1," maximum = "2,147,483,647." (Default = "1"). timeToThinkMax
Maximum length of time that the client is idle. Minimum = "1," maximum = "2,147,483,647." (Default = "1").

674

IxLoad Tcl API Programming Guide

DHCP

Arguments for id = LoopBeginCommand
loopCount
Number of times to repeat the enclosed commands. '0' treated as infinity. Mini= "0," maximum = "2,147,483,647." (Default = "5").

Arguments for id = LoopEndCommand

None.

EXAMPLE

$Activity_DHCPClient1 agent.pm.DHCPCommandList.appendItem \-id

"DHCPDiscover" \-upperLimit

5 \-optionSet

"Default Option Set for DHCPDISCOVER" \-serverAlgo

serverIPAddr

"10.0.1.1"

SEE ALSO

1 \-

DHCP Client Agent

IxLoad Tcl API Programming Guide

675

DHCP
Advanced Options
Advanced Options--Sets the DHCP client agent's global configuration options.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.advancedOptions.config
DESCRIPTION
A DHCP client's advanced configuration options are set by modifying the options of the pm.advancedOptions option of the DHCP Client Agent.
SUBCOMMANDS
None.
OPTIONS
clientPort UDP port that the client listens on for DHCP and BOOTP responses. Minimum = 1, maximum = 65,535. (Default = 68). serverPort UDP port that the client addresses server requests to. Minimum = 1, maximum = 65535. (Default = 67). numRetransmit Number of times that the client will retransmit a request for which it has not received a response. Minimum = 0, maximum = 2,147,483. (Default = 3). initialTimeout Length of time that the client waits for a response to a request. If the Initial Timeout period expires, the client retransmits the request (unless numRetransmit is 0). Minimum = 1, maximum = 2,147,483. (Default = 4). timeoutIncrFactor If the client has retransmitted a timed-out request, this parameter increments the Initial Timeout value. Minimum = 1, maximum = 2,147,483. (Default = 2). maximumDHCPMsgSize Maximum size of a DHCP packet that the client will accept, including IP and UDP headers. According to RFC 2131, the minimum message size that a client should accept is 576 octets. Minimum = 576, maximum = 65,536. (Default = 576).

676

IxLoad Tcl API Programming Guide

DHCP

vendorClass
Text string identifying the vendor type and configuration of the DHCP client. Minimum length = 0, maximum length = 255. (Default = "IXIA IxLoad DHCP Client") optionsOverload

If true, indicates to the server that the client will allow option overloading. (Default = 0).
broadcastBit
If true, sets the client's Broadcast bit to 1 in the `flags' field in any DHCPDISCOVER or DHCPREQUEST messages that client sends. (Default = 0).

EXAMPLE

$Activity_DHCPClient1 agent.pm.advancedOptions.config \-clientPort

68 \-firstLoad

false \-maxDHCPMsgSize

576 \-broadcastBit

false \-timeoutIncrFactor

2 \-numRetransmit

3 \-needValidation

false \-writeLeasesToFile

false \-serverPort

67 \-optionsOverload

false \-memRequiredForOptions

52 \-vendorClass

"IXIA IxLoad DHCP Client" \-

initialTimeout

4 \-implicitLoopCheck

true

SEE ALSO

DHCP Client Agent

IxLoad Tcl API Programming Guide

677

DHCP
Relay Agent
Relay Agent--Enables the DHCP client agent to function as a DHCP relay agent and configuration the relay agent options.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.relayAgent.config
DESCRIPTION
A DHCP client's relay agent is configured by modifying the options of the pm.relayAgent option of the DHCP Client Agent object.
SUBCOMMANDS
None.
OPTIONS
enableRelay If true, the DHCP client will emulate DHCP relay agents. (Default = 0). enableCircuitId If true, the DHCP agent includes the Circuit ID sub-option in DHCP messages. Use the circuitId option to configure the ID value. (Default = 0). circuitId If circuitId is true, this option sets the circuit ID. You can include variables to cause the client to generate large numbers of unique values. Maximum length = 243. (Default = "123[000-999]"). circuitIdGroupSize Number of DHCP clients sharing the same Circuit ID. enableRemoteId If true, the DHCP agent includes the Remote ID suboption in DHCP messages. Use the remoteId option to configure the ID value. (Default = 0). remoteId If remoteId is true, this option sets the remote ID. You can include variables to cause the client to generate large numbers of unique values. Maximum length = 243. (Default = "Ixia-host[0000-]"). remoteIdGroupSize

678

IxLoad Tcl API Programming Guide

DHCP

Number of DHCP clients sharing the same Remote ID. relayAgentIPAddr
IP address of the first emulated DHCP Relay Agent. If you specify more than Relay Agent (the numRelayAgent option), IxLoad increments this address to create additional addresses for the agents. Minimum length = 7, maximum length = 24, (Default = "11.0.0.1/8"). numRelayAgent
Number of DHCP Relay Agents to emulate. Minimum = 1, maximum = 1,000,000. (Default = 1).

EXAMPLE

$Activity_DHCPClient1 agent.pm.relayAgent.config \-remoteId

"Ixia-host-\[0000-\]" \-memRequired

0 \-circuitId

"123\[000-999\]" \-relayAgentIPAddr

"11.0.0.1/8" \-numVlans

1 \-enableRemoteId

false \-remoteIdGroupSize

1 \-enableCircuitId

false \-circuitIdGroupSize

1 \-enableRIdByteStream

false \-vlanId

1 \-enableVlan

false \-incrVlanId

1 \-enableCIdByteStream

false \-numRelayAgent

1 \-enableRelay

0

SEE ALSO

DHCP Client Agent

IxLoad Tcl API Programming Guide

679

DHCP

Option
Option--Configures a DHCP option.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList.appendItem $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList(0).option
DESCRIPTION
An Option object is an item in an OptionsList. An Option is added to an Options List using appendItem.
SUBCOMMANDS
None.
OPTIONS
id DHCP option. One of the following:

Value

Description

RequestedIPAddress IPAddressLeaseTime
ParameterRequestList DHCPErrorMessage

This option is used in a client request (DHCPDISCOVER) to allow the client to request that a particular IP address be assigned.
This option is used in a client request (DHCPDISCOVER or DHCPREQUEST) to allow the client to request a lease time for the IP address. In a server reply (DHCPOFFER), a DHCP server uses this option to specify the lease time it is willing to offer.
This option is used by a DHCP client to request values for specified configuration parameters.
This option is used by a DHCP server to provide an error message to a DHCP client in a DHCPNAK message, in the event of a failure. A client may use this option in a DHCPDErrorMessage to indicate why the client declined the offered parameters.

680

IxLoad Tcl API Programming Guide

DHCP

DHCPRenewalTime

This option specifies the time interval from address assignment until the client transitions to the RENEWING state.

DHCPRebindingTime

This option specifies the time interval from address assignment until the client transitions to the REBINDING state.

VendorClassIdentifier

This option is used by DHCP clients to optionally identify the vendor type and configuration of a DHCP client.

ClientIdentifier

This option is used by DHCP clients to specify their unique identifier. DHCP servers use this value to index their database of address bindings. This value is expected to be unique for all clients in an administrative domain.

SubnetMaskValue

The subnet mask option specifies the client's subnet mask as per RFC 950.

TimeOffsetUTC

The time offset field specifies the offset of the client's subnet in seconds from Coordinated Universal Time (UTC). A positive offset indicates a location east of the zero meridian and a negative offset indicates a location west of the zero meridian.

RouterAddresses

The router option specifies a list of IP addresses for routers on the client's subnet. Enter the router addresses in order of preference.

DNSServerAddresses

The domain name server option specifies a list of Domain Name System name servers available to the client. List the servers in order of preference.

HostnameString

This option specifies the name of the client. The name may or may not be qualified with the local domain name.

DNSDomainNameClient This option specifies the domain name that client should use when resolving hostnames via the Domain Name System.

InterfaceMTUSize

This option specifies the MTU to use on this interface. The MTU is specified as a 16-bit unsigned integer. The minimum value for MTU is 68.

SubnetsLocal

This option specifies whether or not the client may assume that all subnets of the IP network to which the client is connected use the same MTU as the subnet of that network to which the client is directly connected.
If this option is enabled, that indicates that all subnets share the same MTU.
If this option is disabled, that indicates that the client should assume that some subnets of the directly connected network may have smaller MTUs.

BroadcastAddress

This option specifies the broadcast address in use on the client's subnet.

IxLoad Tcl API Programming Guide

681

DHCP

PerformMaskDiscovery

This option specifies whether or not the client should perform subnet mask discovery using ICMP.
If this option is disabled, then it indicates that the client should not perform mask discovery.
If this option is enabled, then it indicates that the client should perform mask discovery.

PerformRouterDiscovery

This option specifies whether or not the client should solicit routers using the Router Discovery mechanism defined in RFC 1256.
If this option is disabled, then it indicates that the client should not perform router discovery.
If this option is enabled, then it indicates that the client should perform router discovery.

ARPCacheTimeOut

This option specifies the timeout in seconds for ARP cache entries.

VendorSpecificInfo

This option is used by clients and servers to exchange vendor information. The vendor is indicated in the vendor class identifier option.

UserClassInfo

This option is used by a DHCP client to optionally identify the type or category of user or applications it represents.

Arguments for option = RequestedIPAddress
clientIPAddr IP address requested by the client. Minimum length = 7, maximum length = 24. (Default = "10.0.0.1/8").
Arguments for option = IPAddressLeaseTime
interval Duration of lease, in seconds. Minimum = 0, maximum = 4,294,967,295. (Default = 3,600).
Arguments for option = ParameterRequestList
options List of options for requested parameters. This argument is a list of Option Choices objects. See Option Choices on page 19-35.
Arguments for option = DHCPErrorMessage
message

682

IxLoad Tcl API Programming Guide

DHCP
Text of error message. Minimum length = 1, maximum length = 255. (Default = "IP Address Rejected by IxLoad").
Arguments for option = DHCPRenewalTime
interval Time, in seconds, from address assignment to transition to the RENEWING state. Minimum = 0, maximum = 4,294,967,295. (Default = 0).
Arguments for option = DHCPRebindingTime
interval Time, in seconds, from address assignment to transition to the REBINDING state. Minimum = 0, maximum = 4,294,967,295. (Default = 0).
Arguments for option = VendorClassIdentifier
data Text identifying vendor class. Minimum length = 1, maximum length = 255. (Default = "IXIA IxLoad DHCP Client").
Arguments for option = ClientIdentifier
identifier Value for client identifier. Minimum = 1, maximum = 2,147,467,647. (Default = 1).
Arguments for option = SubnetMaskValue
mask Subnet mask. Minimum length = 7, maximum length = 19. (Default = "255.0.0.0").
Arguments for option = TimeOffsetUTC
offset Offset value. Minimum = -2,147,483,648, maximum = 2,147,483,647. (Default = 0).
Arguments for option = RouterAddresses
address List of router IP addresses. This is a list of type IPAddress. IP Address on page 19-37. (Default= {}).
Arguments for option = DNSServerAddresses
address

IxLoad Tcl API Programming Guide

683

DHCP
List of router IP addresses. This is a list of type IPAddress. IP Address on page 19-37. (Default = {}).
Arguments for option = HostnameString
hostName Name of the client. You can use the following characters a-z, A-Z, 0-9, dash (-). Minimum length = 1, maximum length = 53. (Default = "IxLoad-DHCP-Cli.
Arguments for option = DNSDomainNameClient
domainName Domain name. Minimum length = 1, maximum length = 255. (Default = "ixia").
Arguments for option = InterfaceMTUSize
size MTU value. Minimum = 68, maximum = 65,535. (Default = 68).
Arguments for option = SubnetsLocal
val Boolean value. 0 = false, 1 = true. (Default = 0).
Arguments for option = BroadcastAddress
address Broadcast IP address. Minimum length = 7, maximum length = 19. (Default = "10.255.255.255").
Arguments for option = PerformMaskDiscovery
val Boolean value. 0 = false, 1 = true. (Default = 0).
Arguments for option = PerformRouterDiscovery
val Boolean value. 0 = false, 1 = true. (Default = 0).
Arguments for option = ARPCacheTimeOut
timeout Timeout value. Minimum = 0, maximum = 4,294,967,295. (Default = 0).

684

IxLoad Tcl API Programming Guide

DHCP

Arguments for option = VendorSpecificInfo
info Text string describing vendor information. Minimum length = 1. (Default = "None").

Arguments for option = UserClassInfo
info
Text string describing user class information. Minimum length = "1," maximum length = "254." (Default = "IXIA IxLoad DHCP Client").

EXAMPLE

$Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList.appendItem \-id

"OptionSet" \-predefined

true \-decline

0 \-name

"Default Option Set for DHCPDISCOVER" \-

inUse

1 \-bootRequest

0 \-bind

0 \-discover

true \-bindRelease

0 \-inform

0 \-bindRenew

0 \-release

0$Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList

(0).optionsList.clear$Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList(0).-

optionsList.appendItem \-id

"Reques-

tedIPAddress" \-clientIPAddr

"10.0.0.1/8"$Activity_

DHCPClient1 agent.pm.optionSetMgr.optionSetList(0).optionsList.appendItem \-id

"IPAddressLeaseTime" \-interval

3600

SEE ALSO

DHCP Client Agent

IxLoad Tcl API Programming Guide

685

DHCP
Option Set
Options Set--Configures the list of commands that an option list applies to.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.optionSet.config
DESCRIPTION
An Options Set is a list of Options, their arguments, and the commands for which those options are used. Configure the list using the same subcommands as for ixConfig.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
name Name of option set list. Minimum length = 1. (Default = "No Name") optionsList List of options and their arguments. See Option on page 19-27. (Default = "{}). predefined If true, then the options in this option set are predefined for the DHCP server to expose as available options. (Default = "0"). inUse Minimum = 0, maximum = 1. (Default = 0). discover If true, then this option set can be used for the DHCPDISCOVER command. (Default = 0). inform If true, then this option set can be used for the DHCPINFORM command. (Default = 0). decline If true, then this option set can be used for the DHCPDECLINE command. (Default = 0). release If true, then this option set can be used for the DHCPRELEASE command. (Default = 0).

686

IxLoad Tcl API Programming Guide

DHCP

bind

If true, then this option set can be used for the (Bind} command. (Default = 0). bindRelease

If true, then this option set can be used for the BindRelease command. (Default = 0). bindRenew

If true, then this option set can be used for the BindRenew command. (Default = 0). bootRequest

If true, then this option set can be used for the BOOTREQUEST command. (Default = 0).

EXAMPLE

$Activity_DHCPClient1 agent.pm.optionSet.config \-predefined

false \-decline

false \-name

"No Name" \-inUse

0 \-bootRequest

false \-bind

false \-discover

false \-bindRelease

false \-inform

false \-bindRenew

false \-release

false

SEE ALSO

DHCP Client Agent

IxLoad Tcl API Programming Guide

687

DHCP
Option Set Manager
Options Set Manager--Configures the list of Option Sets.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList.appendItem $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList(0).option
DESCRIPTION
To configure an Option Set Manager, use the appendItem command on the pm.optionSetManager component of the DHCP Client Agent.
SUBCOMMANDS
None.
OPTIONS
optionSetList List of Option Sets. See Option Set.
EXAMPLE
See the example for Option.
SEE ALSO
DHCP Client Agent

688

IxLoad Tcl API Programming Guide

DHCP

Option Choices
Option Choices--Configures a list of DHCP options that the client agent requests values for.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList.appendItem $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList(0).option
DESCRIPTION
The Option command includes a Parameter Request List option. Parameter Request List allows the client to send a list of DHCP options to the server and request the server to return the values that it supports for each option. To specify the list of DHCP options that the client sends, use the optionCode parameter of the Options Choices command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
optionCode
DHCP option that the client requests values for. Minimum = 1, maximum = 59. The choices are:

Value Description

51

(default) IP Address Lease Time

58

DHCP Renewal (T1) Time

59

DHCP Rebinding (T2) Time

1

Subnet Mask Value

2

Time Offset in Seconds from UTC

3

Router Addresses

6

DNS Server Addresses

12

Hostname String

IxLoad Tcl API Programming Guide

689

DHCP

15

DNS Domain Name of the Client

26

Interface MTU Size

27

All Subnets are Local

28

Broadcast Address

29

Perform Mask Discovery

31

Perform Router Discovery

35

ARP Cache Timeout

43

Vendor Specific Information

SEE ALSO
Option

690

IxLoad Tcl API Programming Guide

DHCP

IP Address

IP Address--Configures a list of IP addresses.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DHCPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_DHCPClient1 agent.pm.optionSetMgr.optionSetList(0).option

DESCRIPTION
Several DHCP Option commands includes options (RouterAddresses, DNSServ) that specify lists of IP addresses for various functions. To create those lists, you use IP Address, which is a list of type ixConfigSequenceContainer. Each element in the list is an IP address.

SUBCOMMANDS
None.

OPTIONS
address IP address. Minimum length = 7, maximum length = 19. (Default = "0.0.0.0").

EXAMPLE

# Create a list of IP addresssset ipAddrList [list \

"198.18.0.1" \

"10.205.17.71" \

"10.205.17.176" \

"198.18.0.101" \

]# Go through the following loop adding the addresses one by one.foreach {option id}

[list RouterAddresses addresses DNSServerAddresses addresses] {

$clnt_traffic agentList(0).pm.optionSetMgr.optionSetList(0) \ .optionsList.appendItem \ -id $option

set index [$clnt_traffic agentList(0).pm.optionSetMgr.optionSetList(0) \ .optionsList.indexCount] incr index -1foreach ip $ipAddrList {

$clnt_traffic agentList(0).pm.optionSetMgr.optionSetList(0) \

.optionsList($index).${id}.appendItem \

-address $ip

}

}

SEE ALSO

ixConfigSequenceContainer

IxLoad Tcl API Programming Guide

691

DHCP
Using Variables in DHCP Fields
You can insert variables into the Circuit ID and Remote ID fields on the DHCP client Relay Agent tab. You can use the variables to generate large numbers of unique circuit IDs and remote IDs.
You can use the following variables:
l Numbers 0-9 l Letters A-Z and a-z
The letter variables are case-sensitive; IxLoad considers the variable strings "AA" and "aa" to be different.
You can combine the variables with fixed text to create the circuit IDs and remote IDs. For example, you can enter circuitID_[00-] to create a range of unique IDs that begin with the characters "circuitID_" (circuitID_00, circuitID_01, and so on).
To insert the variables into a field, enclose them in square brackets ( [ ] ). To specify a range, separate the minimum and maximum values with a hyphen (-). For example, [00-10] specifies a range of 00 through 10.
The number of variables you insert determines the width of the generated strings. For example, the variable "00" can generate the strings 00 - 99. The variable string "000" can generate the strings 000 999.
Similarly, "AA" can generate strings that consist of all the two-letter combinations from AA to ZZ. "AAA" can generate strings that consist of all the three-letter combinations from AAA to ZZZ.
You can use a single variable string and allow IxLoad to generate strings up the maximum value of the string or, you can use two variable strings together to restrict the generated strings to a certain range.
See the following example:
[0- ] will generate all the values 0 - 9 (0, 1, 2, 3 . . . 9). [0-5] will generate all the values 0 - 5.
[00- ] will generate all the values 00 - 99 (00, 01, 02, 03. . .97, 98, 99). [00-50] will generate all the values 0 - 50.
[A- ] will generate all the values A - Z (A, B, C . . . Z). [A-K] will generate all the values A - K.
[AA- ] will generate all the values AA - ZZ (AA, AB, AC. . ZX, ZY, ZZ). [AA-KK] will generate all the values AA - KK.
When IxLoad has generated the final string, if the test configuration requires additional strings, IxLoad returns to the starting value of the variable and continues to generate strings until no more are required. In this case, the generated strings will not be unique.
For example, if a DHCP test requires 256 circuit IDs and the Circuit ID field is configured as:
circuitID_[00-]

692

IxLoad Tcl API Programming Guide

DHCP
IxLoad will generate the strings circuitID_00 - circuitID_99, then repeat and again generate strings circuitID_00 - circuitID_99, then generate the final group of strings circuitID_00 - circuitID_56.

IxLoad Tcl API Programming Guide

693

DHCP

DHCP Statistics
The table below describes the DHCP client statistics. For information on how the various DHCP options affect the size of a DHCP packet generated by IxLoad, see Effect of Options on DHCP Packet Size (see Effect of Options on DHCP Packet Size).

Statistic
DHCP DHCPDISCOVER Response Time
DHCP DHCPREQUEST Response Time
DHCP DHCPREQUEST (SELECTING) Response Time
DHCP DHCPREQUEST (INIT-REBOOT) Response Time
DHCP DHCPREQUEST (RENEWING) Response Time
DHCP DHCPREQUEST (REBINDING) Response Time

Description
Amount of time elapsed between the time the client sent a DHCPDISCOVER request and the time it received an acceptable response to it. This statistic is updated when the client selects a DHCPOFFER, which can be affected by the server selection algorithm. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed between the time the client sent a DHCPREQUEST request and the time it received the first response to it. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed between the time the client sent a DHCPREQUEST request in the Selecting state and the time it received the first response to it. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed between the time the client sent a DHCPREQUEST request in the Init-Reboot state and the time it received the first response to it. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed between the time the client sent a DHCPREQUEST request in the Renewing state and the time it received the first response to it. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed between the time the client sent a DHCPREQUEST request in the Rebinding state and the time it received the first response to it. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

694

IxLoad Tcl API Programming Guide

DHCP

DHCP DHCPINFORM Response Time

Amount of time elapsed between the time the client sent a DHCPINFORM request and the time it received the first response to it.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

DHCP BOOTREQUEST Response Time

Amount of time elapsed between the time the client sent a BOOTREQUEST request and the time it received the first response to it.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

DHCP Total Commands Sent

Total number of commands sent by the client.
Composite commands such as {Bind} are counted according to the number of actual DHCP commands they generate. For example, {Bind} normally generates two commands (DHCPDISCOVER and DHCPREQUEST) but it may generate three if it also sends a DHCPDECLINE.

DHCP Total Commands Succeeded

Total number of commands sent by the client that succeeded.

DHCP Total Commands Failed

Total number of commands sent by the client that failed for all reasons.

DHCP Total Commands Failed (NAK Received)

Total number of commands sent by the client that failed because it received a NAK response.

DHCP Total Commands Failed (Timeout)

Total number of commands sent by the client that failed because it did not receive a response within the timeout period.

DHCP Total Commands Failed (Error)

Total number of commands sent by the client that failed because an error other than a timeout or NAK occurred.

DHCP Total Commands Retransmitted

Total number of commands that the client retransmitted.

DHCP Total Responses Matched

Total number of responses received by the client in which the options in the response matched those it expected to receive.
The expected options are provided on the Expected Options tab. If you provide a set of expected values or the server sends a set of values, a match between any of the expected values and received values is treated as success.

IxLoad Tcl API Programming Guide

695

DHCP

DHCP Total Responses Mismatched

Total number of responses received by the client in which the options in the response did not match those it expected to receive.

DHCP DHCPDISCOVER Commands Sent

Total number of DHCPDISCOVER commands sent by the client.

DHCP DHCPDISCOVER Commands Succeeded

Total number of DHCPDISCOVER commands that succeeded.

DHCP DHCPDISCOVER Commands Failed

Total number of DHCPDISCOVER commands that failed for all reasons.

DHCP DHCPDISCOVER Commands Failed (Timeout)

Total number of DHCPDISCOVER commands that failed because the client did not receive a response within the timeout period.

DHCP DHCPDISCOVER Commands Failed (Error)

Total number of DHCPDISCOVER commands that failed because an error other than a NAK or timeout occurred.

DHCP DHCPDISCOVER Commands Retransmitted

Total number of DHCPDISCOVER commands that the client retransmitted.

DHCP DHCPDISCOVER Responses Matched

Total number of DHCPDISCOVER responses received by the client in which the options matched those that it expected to receive.

DHCP DHCPDISCOVER Responses Mismatched

Total number of DHCPDISCOVER responses received by the client in which the options did not match those that it expected to receive.

DHCP DHCPREQUEST Commands Sent

Total number of DHCPREQUEST commands sent by the client.

696

IxLoad Tcl API Programming Guide

DHCP

DHCP DHCPREQUEST Commands Succeeded

Total number of DHCPREQUEST commands that succeeded.

DHCP DHCPREQUEST Commands Failed

Total number of DHCPREQUEST commands that failed for all reasons.

DHCP DHCPREQUEST Commands Failed (NAK Received)

Total number of commands sent by the client that failed because it received a NAK response.

DHCP DHCPREQUEST Commands Failed (Timeout)

Total number of DHCPREQUEST commands that failed because the client did not receive a response within the timeout period.

DHCP DHCPREQUEST Commands Failed (Error)

Total number of DHCPREQUEST commands that failed because an error other than a NAK or timeout occurred.

DHCP DHCPREQUEST Commands Retransmitted

Total number of DHCPREQUEST commands that the client retransmitted.

DHCP DHCPREQUEST Responses Matched

Total number of DHCPREQUEST responses received by the client in which the options matched those that it expected to receive.

DHCP DHCPREQUEST Responses Mismatched

Total number of DHCPREQUEST responses received by the client in which the options did not match those that it expected to receive.

DHCP DHCPREQUEST (SELECTING) Commands Sent

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state.

IxLoad Tcl API Programming Guide

697

DHCP

DHCP DHCPREQUEST (SELECTING) Commands Succeeded

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state that succeeded.

DHCP DHCPREQUEST (SELECTING) Commands Failed

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state that failed for all reasons.

DHCP DHCPREQUEST (SELECTING) Commands Failed (NAK Received)

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state that failed because the client received a NAK response.

DHCP DHCPREQUEST (SELECTING) Commands Failed (Timeout)

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state that failed because the client did not receive a response within the timeout period.

DHCP DHCPREQUEST (SELECTING) Commands Failed (Error)

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state that failed because an error other than a NAK or timeout occurred.

DHCP DHCPREQUEST (SELECTING) Commands Retransmitted

Total number of DHCPREQUEST commands sent by the client while it was in the Selecting state that the client retransmitted.

DHCP DHCPREQUEST (SELECTING) Responses Matched

Total number of DHCPREQUEST responses received by the client while it was in the Selecting state in which the options matched those that it expected to receive.

DHCP DHCPREQUEST (SELECTING Responses Mismatached

Total number of DHCPREQUEST responses received by the client while it was in the Selecting state in which the options did not match those that it expected to receive.

698

IxLoad Tcl API Programming Guide

DHCP

DHCP DHCPREQUEST (INIT-REBOOT) Commands Sent

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state.

DHCP DHCPREQUEST (INIT-REBOOT) Commands Succeeded

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state that succeeded.

DHCP DHCPREQUEST (INIT-REBOOT) Commands Failed

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state that failed for all reasons.

DHCP DHCPREQUEST (INIT-REBOOT) Commands Failed (NAK Received)

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state that failed because the client received a NAK response.

DHCP DHCPREQUEST (INIT-REBOOT) Commands Failed (Timeout)

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state that failed because the client did not receive a response within the timeout period.

DHCP DHCPREQUEST (INIT-REBOOT) Commands Failed (Error)

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state that failed because an error other than a NAK or timeout occurred.

DHCP DHCPREQUEST (INIT-REBOOT) Commands Retransmitted

Total number of DHCPREQUEST commands sent by the client while it was in the Init-Reboot state that the client retransmitted.

DHCP DHCPREQUEST (INIT-REBOOT) Responses Matched

Total number of DHCPREQUEST responses received by the client while it was in the Init-Reboot state in which the options matched those that it expected to receive.

IxLoad Tcl API Programming Guide

699

DHCP

DHCP DHCPREQUEST (INIT-REBOOT) Responses Mismatched

Total number of DHCPREQUEST responses received by the client while it was in the Init-Reboot state in which the options did not match those that it expected to receive.

DHCP DHCPREQUEST (RENEWING) Commands Sent

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state.

DHCP DHCPREQUEST (RENEWING) Commands Succeeded

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state that succeeded.

DHCP DHCPREQUEST (RENEWING) Commands Failed

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state that failed for all reasons.

DHCP DHCPREQUEST (RENEWING) Commands Failed (NAK Received)

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state that failed because the client received a NAK response.

DHCP DHCPREQUEST (RENEWING) Commands Failed (Timeout)

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state that failed because the client did not receive a response within the timeout period.

DHCP DHCPREQUEST (RENEWING) Commands Failed (Error)

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state that failed because an error other than a NAK or timeout occurred.

DHCP DHCPREQUEST (RENEWING) Commands Retransmitted

Total number of DHCPREQUEST commands sent by the client while it was in the Renewing state that the client retransmitted.

700

IxLoad Tcl API Programming Guide

DHCP

DHCP DHCPREQUEST (RENEWING) Responses Matched

Total number of DHCPREQUEST responses received by the client while it was in the Renewing state in which the options matched those that it expected to receive.

DHCP DHCPREQUEST (RENEWING) Responses Mismatched

Total number of DHCPREQUEST responses received by the client while it was in the Renewing state in which the options did not match those that it expected to receive.

DHCP DHCPREQUEST (REBINDING) Commands Sent

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state.

DHCP DHCPREQUEST (REBINDING) Commands Succeeded

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state that succeeded.

DHCP DHCPREQUEST (REBINDING) Commands Failed

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state that failed for all reasons.

DHCP DHCPREQUEST (REBINDING) Commands Failed (NAK Received)

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state that failed and for which the client received a NAK response.

DHCP DHCPREQUEST (REBINDING) Commands Failed (Timeout)

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state that failed because the client did not receive a response within the timeout period.

DHCP DHCPREQUEST (REBINDING) Commands Failed (Error)

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state that failed because an error other than a NAK or timeout occurred.

IxLoad Tcl API Programming Guide

701

DHCP

DHCP DHCPREQUEST (REBINDING) Commands Retransmitted

Total number of DHCPREQUEST commands sent by the client while it was in the Rebinding state that the client retransmitted.

DHCP DHCPREQUEST (REBINDING) Responses Matched

Total number of DHCPREQUEST responses received by the client while it was in the Rebinding state in which the options matched those that it expected to receive.

DHCP DHCPREQUEST (REBINDING) Responses Mismatched

Total number of DHCPREQUEST responses received by the client while it was in the Rebinding state in which the options did not match those that it expected to receive.

DHCP

Total number of DHCPDECLINE commands sent by the client.

DHCPDECLINE Com-

mands Sent

DHCP

Total number of DHCPDECLINE commands that failed for all reasons.

DHCPDECLINE Com-

mands Send Failed

DHCP

Total number of DHCPRELEASE commands sent by the client.

DHCPRELEASE Com-

mands Sent

DHCP

Total number of DHCPRELEASE commands that failed for all reasons.

DHCPRELEASE Com-

mands Send Failed

DHCP

Total number of DHCPINFORM commands sent by the client.

DHCPINFORM Com-

mands Sent

DHCP

Total number of DHCPINFORM commands that succeeded.

DHCPINFORM Com-

mands Succeeded

DHCP

Total number of DHCPINFORM commands that failed for all reasons.

DHCPINFORM Com-

mands Failed

702

IxLoad Tcl API Programming Guide

DHCP

DHCP DHCPINFORM Commands Failed (Timeout)

Total number of DHCPINFORM commands that failed because the client did not receive a response within the timeout period.

DHCP DHCPINFORM Commands Failed (Error)

Total number of DHCPINFORM commands that failed because an error other than a NAK or timeout occurred.

DHCP DHCPINFORM Commands Retransmitted

Total number of DHCPINFORM commands that the client retransmitted.

DHCP DHCPINFORM Responses Matched

Total number of DHCPINFORM responses received by the client in which the options matched those that it expected to receive.

DHCP DHCPINFORM Responses Mismatched

Total number of DHCPINFORM responses received by the client in which the options did not match those that it expected to receive.

DHCP BOOTREQUEST Commands Sent

Total number of BOOTREQUEST commands sent by the client.

DHCP BOOTREQUEST Commands Succeeded

Total number of BOOTREQUEST commands that succeeded.

DHCP BOOTREQUEST Commands Failed

Total number of BOOTREQUEST commands that failed for all reasons.

DHCP BOOTREQUEST Commands Failed (Timeout)

Total number of BOOTREQUEST commands that failed because the client did not receive a response within the timeout period.

DHCP BOOTREQUEST Commands Failed (Error)

Total number of BOOTREQUEST commands that failed because an error other than a NAK or timeout occurred.

IxLoad Tcl API Programming Guide

703

DHCP

DHCP BOOTREQUEST Commands Retransmitted

Total number of BOOTREQUEST commands that the client retransmitted.

DHCP BOOTREQUEST Responses Matched

Total number of BOOTREQUEST responses received by the client in which the options matched those that it expected to receive.

DHCP BOOTREQUEST Responses Mismatched

Total number of BOOTREQUEST responses received by the client in which the options did not match those that it expected to receive.

DHCP Total Number of DHCPOFFER Messages

Total number of DHCPOFFER commands received by the client.

DHCP Number of DHCPOFFER Messages Ignored

Total number of DHCPOFFER messages that the client ignored.

DHCP Total Number of DHCPACK Messages

Total number of DHCPACK commands received by the client.

DHCP Number of DHCPACK Messages Ignored

Total number of DHCPACK messages that the client ignored.

DHCP Total Number of DHCPNAK Messages

Total number of DHCPNAK messages received by the client.

DHCP Number of DHCPNAK Messages Ignored

Total number of DHCPNAK messages that the client ignored.

DHCP ICMP Echo

Total number of ICMP Echo (ping) messages received by the client.

Messages Received

DHCP ICMP Echo Reply Messages Sent

Total number of ICMP Echo (ping) reply messages sent by the client.

704

IxLoad Tcl API Programming Guide

DHCP

DHCP ARP Request Total number of ARP requests received by the client. Messages Received

DHCP ARP Reply Messages Sent

Total number of ARP replies sent by the client.

DHCP Valid IP Addresses Received

Total number of valid IP addresses received by the client.

DHCP Duplicate IP Addresses Received

Total number of duplicate IP addresses received by the client.

DHCP User Count Number of DHCP users simulated by the client.

DHCP Total Transaction

Total number of DHCP transactions completed by the client. Note: DHCPRELEASE and DHCPDECLINE do not contribute to this statistic.

DHCP Number of Active Leases

Total number of IP address leases received that have not expired, been released (by sending DHCPRELEASE), or been declined (by sending DHCPDECLINE).

DHCP Number of Leases Expired

Total number of IP address leases that have expired.

DHCP Number of Clients Awaiting IP Address from Server

Total number of DHCP clients waiting to receive IP addresses from a server.

DHCP Total Bytes Transmitted

Total number bytes transmitted by the client. Note: All of the "Total Bytes" statistics count all the bytes in the packet, including the UDP and IP headers.

DHCP Total Bytes Received

Total number of bytes received by the client.

DHCP Total Bytes Transmitted and Received

Combined total of bytes transmitted and received by the client.

IxLoad Tcl API Programming Guide

705

DHCP

Effect of Options on DHCP Packet Size
The table below describes how the various DHCP options affect the size of a DHCP packet generated by IxLoad.

Description

Bytes

Size of headers and other fixed fields:

278

If "Allow Options Overload" is enabled, number 3 of bytes added regardless of whether IxLoad actually overloads the options or not:

If the Maximum DHCP Message Size option is

4

enabled, number of bytes added to a DHCP (not

BOOTP) packet:

Number of bytes added for each option in the Option set used by a particular command:

Size of the option, including code, len, and data fields.

If the Host Name option is enabled, number of

10

bytes added to the size of the (user-specified)

data:

Note: If all options cannot fit into the packet and "Allow Options Overload" is enabled, IxLoad first tries to fit the extra options into "file" field of the DHCP packet header, and then into the "sname" field. Options that are placed in the "file" or the "sname" fields do not contribute to the packet size calculation.

706

IxLoad Tcl API Programming Guide

DNS
This section describes the DNS Tcl API objects.
Overview
DNS protocol commands are organized as a simple structure. DNS Client Agent DNS Client Query DNS Client Advanced Options - DNS Server Agent - DNS Server Zone Management - DNS Server Zone Configuration - DNS Server Advanced Options - DNS Server Resource Records
Objectives
The objectives (userObjective) you can set for DNS are listed below. Test objecare set in the ixTimeline object.
l simulatedUsers l transactionRate l throughputKBps l transactionAttemptRate (displays as "Queries/Second" in the GUI)

IxLoad Tcl API Programming Guide

707

DNS

DNS Client Agent
DNS Client Agent - configure a DNS client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DNSClient1 [$Traffic1_Network1 activityList.appendItem $Activity_DNSClient1 agent.config
DESCRIPTION
A DNS client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None.
OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity DNSClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_DNSClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"DNS Client" ]################################################## Timeline1 for activ-

ities DNSClient1#################################################set Timeline1

[::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_DNSClient1 config

\-enable

true \-name

"DNSClient1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

708

IxLoad Tcl API Programming Guide

DNS

"simulatedUsers" \-timeline

$Timeline1$Activity_

DNSClient1 agent.config \-enable

true \-name

"DNSClient1"$Activity_DNSClient1 agent.pm.advancedOptions.config \-

lowerLayerTransport

1 \-noWaitForResp

false \-version

0 \-responseTimeout

20 \-implicitLoopCheck

true \-numberOfRetries

3$Activity_DNSClient1 agent.pm.seqGenExample.config \-dummy

""$Activity_DNSClient1 agent.pm.dnsConfig.dnsQueries.clear$Activity_DNSClient1

agent.pm.dnsConfig.dnsQueries.appendItem \-id

"DnsQuery" \-expect

"" \-hostName

"localhost" \-queryType

"A" \-recursionDesired

0 \-dnsServer

"Traffic2_DNSServer1:53"

SEE ALSO

DNS Client Query

DNS Client Advanced Options

ixNetTraffic

IxLoad Tcl API Programming Guide

709

DNS
DNS Client Query
DNS Client Query - configure a DNS query that the client will send
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DNSClient1 [$Traffic1_Network1 activityList.appendItem $Activity_DNSClient1 agent.pm.dnsConfig.dnsQueries.appendItem
DESCRIPTION
A DNS client query is added to the pm.dnsConfig.dnsQueries option of the DNS Client Agent object using its appendItem. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
None.
OPTIONS
dnsServer The name of the DNS server to be queried. (Default = `None'). expect The expected answer for the query; optional. (Default = ""). enableDNSSEC Enable DNSSEC. Default = 0 (false). hostName The host name to be queries for. (Default = `localhost'). If the queryType option is ENUM then the hostName option accepts only integers. You can use both independent and interdependent sequence generators if the queryType option is ENUM. See the Automatic Sequence Generators appendix for more information. loopValue If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0). publicKeyPath Path to DNSSEC public encryption key file. (Default = "publickeys"). queryType

710

IxLoad Tcl API Programming Guide

DNS

The type of query to be performed. One of:

option Usage

"A"

(default) An Address query.

"AAAA" An IPV6 address retrieval query

"NS"

A Name Server query.

"CNAME" A CName query.

"SOA"

A Start Of Authority query.

"PTR"

A Pointer query.

"MX"

A Mail eXchanger query.

"ENUM" A query that resolves fully qualified telephone numbers to fully qualified domain name addresses.

recursionDesired

Indicates whether DNS referrals are to be followed or not. (Default = false).

EXAMPLE

$Activity_DNSClient1 agent.pm.dnsConfig.dnsQueries.appendItem \-id

"DnsQuery" \-expect

"" \-hostName

"localhost" \-queryType

"A" \-recursionDesired

0 \-dnsServer

"Traffic2_DNSServer1:53"

SEE ALSO

DNS Client Agent

IxLoad Tcl API Programming Guide

711

DNS
DNS Client Advanced Options
DNS Client Advanced Options - configure the DNS client's advanced options
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_DNSClient1 [$Traffic1_Network1 activityList.appendItem $Activity_DNSClient1 agent.pm.advancedOptions.config
DESCRIPTION
DNS advanced options are set through the pm.advancedOptions option of the DNS Client Agent object.
SUBCOMMANDS
None.
OPTIONS
lowerLayerTransport The type of IP transport to be used for the queries in this client. One of:
option Usage "TCP" TCP. "UDP" (default) UDP. The number of retries is only configurable for this option.
numberOfRetries If lowerLayerTransport is true, this is the number of retries for the query. (Default = 3). responseTimeout The time, expressed in seconds, to wait for a DNS server response. (Default = 20). noWaitForResp This option accepts boolean value, true or false. This parameter is only effective when you set the client's userObjectiveType to queriesPerSecond. If true, the client does not wait for a response before sending the next query. Besides, fewer simulated users are created, and a higher objectiveValue (more queriesPerSecond) are likely to be achieved. If false, the client waits for a response before sending the next query. More simulated users are created, and a lower objectiveValue (fewer queriesPerSecond) are likely to be achieved.
EXAMPLE
$Activity_DNSClient1 agent.pm.advancedOptions.config \-lowerLayerTransport

712

IxLoad Tcl API Programming Guide

1 \-noWaitForResp 0 \-responseTimeout true \-numberOfRetries
SEE ALSO
DNS Client Agent

false \-version 20 \-implicitLoopCheck
3

DNS

IxLoad Tcl API Programming Guide

713

DNS

DNS Server Agent
DNS Server Agent - configure a DNS server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem $Activity_DNSServer1 agent.config
DESCRIPTION
A DNS server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this action. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity DNSServer1

of NetTraffic Traffic2@Network2#################################################set

Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"DNS Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

DNSServer1 config \-enable

true \-name

"DNSServer1" \-timeline

$_Match_Longest_$Activity_

DNSServer1 agent.config \-enable

true \-name

"DNSServer1"$Activity_DNSServer1 agent.pm.zoneConfig.zoneList.clear$Activity_

DNSServer1 agent.pm.zoneConfig.zoneList.appendItem \-id

"ZoneList" \-name

"ixiacom.com"$Activity_

DNSServer1 agent.pm.advancedOptions.config \-listeningPort

53$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices.clear$Activity_DNSServer1

agent.pm.zoneMgr.zoneChoices.appendItem \-id

714

IxLoad Tcl API Programming Guide

DNS

"Zone" \-predefine

true \-serial

1234 \-expire

8888 \-name

"localhost" \-masterServer

"ixia-dns-tester"$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(0).resourceRecordList.clear$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(0).resourceRecordList.appendItem \-id

"A" \-hostName

"localhost" \-address

"127.0.0.1"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(0).re-

sourceRecordList.appendItem \-id

"A" \-hostName

"host1" \-address

"198.18.0.1"$Activity_DNSServer1

agent.pm.zoneMgr.zoneChoices(0).resourceRecordList.appendItem \-id

"NS" \-nameServer

"198.18.0.2" \-zoneName

"localhost"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices.appendItem \-id

"Zone" \-predefine

true \-serial

1234 \-expire

8888 \-name

"ixiacom.com" \-masterServer

"ixia-dns-tester"$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(1).resourceRecordList.clear$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(1).resourceRecordList.appendItem \-id

"A" \-hostName

"puppy1" \-address

"198.18.1.100"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(1).re-

sourceRecordList.appendItem \-id

"A" \-hostName

"drowzee" \-address

"198.18.1.200"$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(1).resourceRecordList.appendItem \-id

"CNAME" \-name

"testName" \-realName

"realName"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(1).re-

sourceRecordList.appendItem \-id

"NS" \-

nameServer

"198.18.0.2" \-zoneName

"ixiacom.com"

SEE ALSO

DNS Server Zone Management

DNS Server Zone Configuration

DNS Server Advanced Options

IxLoad Tcl API Programming Guide

715

DNS

DNS Server Zone Management
DNS Server Zone Management - manage the DNS zones that the server is authoritative for

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem $Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices.appendItem

DESCRIPTION
Each DNS server zone management list item represents a DNS domain that may be enabled by inclusion in the zoneConfig list of the - DNS Server Agent command (see the example below).

SUBCOMMANDS
None.

OPTIONS
expire The expiration of the Start of Authority (SOA). (Default = 8,888). masterServer The master server IP address. (Default = "ixia-dns-tester"). name The name of the domain, for example, "ixiacom.com." (Default = "Zone0"). resourceRecordList This is a list of type ixConfigSequenceContainer used to hold DNS Server Resource Record objects. The elements in this list describe a DNS resource record. (Default = {}). serial The serial number for the SOA. (Default = "1234").

EXAMPLES

$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices.appendItem \-id

"Zone" \-predefine

true \-serial

1234 \-expire

8888 \-name

"ixiacom.com" \-masterServer

"ixia-dns-tester"$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(1).resourceRecordList.clear$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(1).resourceRecordList.appendItem \-id

"A" \-hostName

"puppy1" \-address

"198.18.1.100"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(1).re-

sourceRecordList.appendItem \-id

"A" \-hostName

716

IxLoad Tcl API Programming Guide

DNS

"drowzee" \-address

"198.18.1.200"$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(1).resourceRecordList.appendItem \-id

"CNAME" \-name

"testName" \-realName

"realName"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(1).re-

sourceRecordList.appendItem \-id

"NS" \-

nameServer

"198.18.0.2" \-zoneName

"ixiacom.com"

SEE ALSO

DNS Server Agent

DNS Server Resource Record

IxLoad Tcl API Programming Guide

717

DNS

DNS Server Zone Configuration
DNS Server Zone Configuration - setup the zones that the DNS server is authoritative for
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem $Activity_DNSServer1 agent.pm.zoneConfig.zoneList.appendItem
DESCRIPTION
Each DNS server zone configuration list item represents a DNS domain that the server will respond to.
SUBCOMMANDS
None.
OPTIONS
name The name of the domain, for example, "ixiacom.com."(Default = "Zone0"). id ID of the list of zones. (Default = "ZoneList") signedzone Enables DNSSEC signing (encryption) for the zone. (Default = false) keylength Length of the key used to sign the zone. (Min="512" max="4096" default="512") algorithm Encryption algorithm used to sign the zone. One of the following: "RSASHA1" (Default)"RSASHA256""RSASHA512""RSAMD5""DSA"
EXAMPLES
$Activity_DNSServer1 agent.pm.zoneConfig.zoneList.clear

$Activity_DNSServer1 agent.pm.zoneConfig.zoneList.appendItem \

-id

"ZoneList" \

-signedzone

true \

-keylength

512 \

-name

"ixiacom.com" \

718

IxLoad Tcl API Programming Guide

-algorithm

"RSASHA1"

SEE ALSO
DNS Server Agent DNS Server Resource Record

DNS

IxLoad Tcl API Programming Guide

719

DNS

DNS Server Advanced Options
DNS Server Advanced Options

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem $Activity_DNSServer1 agent.pm.advancedOptions.config

DESCRIPTION
DNS server advanced options are set through the pm.advancedOptions option of the DNS Server Agent object.

SUBCOMMANDS
None.

OPTIONS
enableDNSSEC Enable DNSSEC. (Default = 0 (false)) listenPort The port number that the server listens on for TCP and UDP requests. (Default = 53)

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity DNSServer1

of NetTraffic Traffic2@Network2#################################################set

Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"DNS Server" ]$Activity_DNSServer1 agent.config \-enable

true \-name

"DNSServer1"$Activity_DNSServer1

agent.pm.advancedOptions.config \-listeningPort

53

SEE ALSO

DNS Server Agent

720

IxLoad Tcl API Programming Guide

DNS

DNS Server Resource Record
DNS Server Resource Record - add a resource record to the DNS server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_DNSServer1 [$Traffic2_Network2 activityList.appendItem $Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(0).resourceRecord

DESCRIPTION
Each DNS server resource record list item represents a DNS domain that the server is authoritative over.
SUBCOMMANDS
None.
OPTIONS
id Specifies the type of resource record defined. The remaining options in this command are dependent on this setting. One of:

option Usage

A

Address record.

AAAA IPV6 Address record

MX

Mail eXchanger record.

CNAME Canonical Name record.

PTR

Pointer, or reverse DNS record.

NS

Name Server record.

Options for id = A
address The IP address of a host. (Default = ""). hostName The name of the host. (Default = "").

IxLoad Tcl API Programming Guide

721

DNS
Options for id = AAAA
address The IPV6 address of a host. (Default = ""). hostName The name of the host. (Default = "").
Options for id = MX
mailServer The name of the mail server. (Default = ""). name The mail domain name. (Default = ""). priority The priority associated with the mail server. (Default = "").
Options for id = CNAME
name An alias of a host. (Default = ""). realName The real name of the host, as it appears in an A record. (Default = "").
Options for id = PTR
hostName The host name for the ipAddress. (Default = ""). ipAddress The IP address for the reverse lookup. (Default = "").
Options for id = NS
nameServer The IP address for the name server. (Default = ""). zoneName The zone name being served. (Default = "").
EXAMPLES
$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices.appendItem \-id

722

IxLoad Tcl API Programming Guide

DNS

"Zone" \-predefine

true \-serial

1234 \-expire

8888 \-name

"localhost" \-masterServer

"ixia-dns-tester"$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(0).resourceRecordList.clear$Activity_

DNSServer1 agent.pm.zoneMgr.zoneChoices(0).resourceRecordList.appendItem \-id

"A" \-hostName

"localhost" \-address

"127.0.0.1"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices(0).re-

sourceRecordList.appendItem \-id

"A" \-hostName

"host1" \-address

"198.18.0.1"$Activity_DNSServer1

agent.pm.zoneMgr.zoneChoices(0).resourceRecordList.appendItem \-id

"NS" \-nameServer

"198.18.0.2" \-zoneName

"localhost"$Activity_DNSServer1 agent.pm.zoneMgr.zoneChoices.appendItem \-id

"Zone" \-predefine

true \-serial

1234 \-expire

8888 \-name

"ixiacom.com" \-masterServer

"ixia-dns-tester"

SEE ALSO

DNS Server Agent

DNS Server Zone Management

IxLoad Tcl API Programming Guide

723

DNS
DNS Statistics
For DNS client statistics, see DNS Client Statistics For DNS server statistics, see DNS Server Statistics

724

IxLoad Tcl API Programming Guide

DNS

DNS Client Statistics
The table below describes the DNS client statistics.

Statistic

Description

General Statistics

DNS Total Queries Attempted

Total number of DNS queries attempted. This statistic is only incremented if the DNS test objective is Query Attempts / Second.

DNS Total Queries Attempted/s

Rate, per second, at which the client attempted DNS queries. This statistic is only incremented if the DNS test objective is Query Attempts / Second.

DNS Total Queries Sent

Total number of DNS queries sent by the client.

DNS Total Queries Sent/s

Rate, per second, at which the client sent DNS queries.

DNS Total Queries Successful

Total number of DNS queries for which a valid response was received.

DNS Total Queries Successful/s

Rate, per second, at which DNS queries succeeded.

DNS Total Queries Retried

Total number of DNS queries that had to be re-sent at least once.

DNS Total Queries Retried/s

Rate, per second, at which DNS queries were retried.

DNS Total Queries Failed

Total number of DNS queries that failed for all reasons.

DNS Total Queries Failed/s

Rate, per second, at which DNS queries failed.

DNS Total Queries Failed (Format Error)

Number of DNS queries that failed because the DNS server could not interpret the format of the query.
Note: According to RFC 1034, the maximum host name length is 63 bytes. IxLoad does not enforce this limit, and allows you to create queries for host names larger than 63 bytes.
If you configure the DNS client to send a query to a host name that is larger than 63 bytes, the DNS server responds with a Format Error.

IxLoad Tcl API Programming Guide

725

DNS

DNS Total Queries Failed (Format Error)/s

Rate, per second, at which DNS queries failed due to format errors.

DNS Total Queries Failed (Server Failure)

Number of DNS queries that failed due to an error on the DNS server.
Note: According to RFC 1034, the maximum host name length is 63 bytes. IxLoad does not enforce this limit, and allows you to create Resource Records that include host names larger than 63 bytes.
If you configure the DNS client to send a query to server zone for a Resource Record that contains a host name that is larger than 63 bytes, the DNS server responds with a Server Failure.

DNS Total Queries Failed (Server Failure)/s

Rate, per second, at which DNS queries failed due to server failures.

DNS Total Queries Number of DNS queries that failed because the DNS name does not exist. Failed (Name Error)

DNS Total Queries Failed (Name Error)/s

Rate, per second, at which DNS queries failed due to name errors.

DNS Total Queries Failed (Not Implemented)

Number of DNS queries that failed because the name server does not support the DNS request.

DNS Total Queries Failed (Not Implemented)/s

Rate, per second, at which DNS queries failed because the server does not support the request

DNS Total Queries Failed (Refused)

Number of DNS queries that failed because the DNS server refused the request.

DNS Total Queries Failed (Refused)/s

Rate, per second, at which DNS queries failed because the server refused the request.

DNS Total Queries Failed (Other)

Number of DNS queries that failed for unknown reasons.

DNS Total Queries Failed (Other)/s

Rate, per second, at which DNS queries failed due to unknown reasons.

DNS Total Queries Failed (Timeout)

Number of DNS queries that failed because no response was received within the timeout period.

726

IxLoad Tcl API Programming Guide

DNS

DNS Total Queries Failed (Timeout)/s

Rate, per second, at which DNS queries failed due to timeouts.

DNS Total Queries Failed (Aborted)

Number of aborted DNS queries.

DNS Total Queries Failed (Aborted)/s

Rate, per second, at which DNS queries were aborted.

DNS Average Response Latency

Average time elapsed between the time the client sent a DNS query and the time it received a response.

DNS Minimum Response Latency

Shortest time elapsed between the time the client sent a DNS query and the time it received a response.

DNS Maximum Response Latency

Longest time elapsed between the time the client sent a DNS query and the time it received a response.

DNS Response

Number of responses received within 0 to 1 milliseconds after the query was

Latency in 0 to 1 ms sent, including those at 1 millisecond.

DNS Response Latency in 1 to 50 ms

Number of DNS query responses received within 1 to 50 milliseconds after the query was sent, including those at 50 milliseconds.

DNS Response Latency in 50 to 100 ms

Number of DNS query responses received within 50 to 100 milliseconds after the query was sent, including those at 100 milliseconds.

DNS Response Latency in 100 to 500 ms

Number of DNS query responses received within 100 to 500 milliseconds after the query was sent, including those at 500 milliseconds.

DNS Response

Number of DNS query responses received within 500 milliseconds to 1

Latency in 500 ms to second after the query was sent, including those at 1 second.

1 second

DNS Response Latency in 1 second to 3 seconds

Number of DNS query responses received within 1 to 3 seconds after the query was sent, including those at 3 seconds.

DNS Response Latency more than 3 seconds

Number of DNS query responses received more than 3 seconds after the query was sent.

A Record Statistics

IxLoad Tcl API Programming Guide

727

DNS

DNS (Type A) Quer- Number of A record queries sent. ies Sent

DNS (Type A) Quer- Rate, per second, at which Type A queries were sent. ies Sent/s

DNS (Type A) Queries Successful With Match

Number of A record queries for which the DNS client received the expected IP address.

DNS (Type A) Queries Successful With Match/s

Rate, per second, at which Type A queries matched successfully.

DNS (Type A) Queries Successful Without Match

Number of A record queries which were processed without error but whose responses did not contain the expected IP address.

DNS (Type AAAA) Queries Successful Without Match/s

Rate, per second, at which Type A queries succeeded but did not contain the expected IP address.

DNS (Type A) Quer- Number of A record queries for which an invalid response was received, or no

ies Failed

response was received.

DNS (Type A) Quer- Rate, per second, at which Type A queries failed. ies Failed/s

AAAA Record Statistics

DNS (Type AAAA) Queries Sent

Number of AAAA record queries sent.

DNS (Type AAAA) Queries Sent/s

Rate, per second, at which AAAA record queries were sent.

DNS (Type AAAA) Queries Successful With Match

Number of AAAA record queries for which the DNS client received the expected IP address.

DNS (Type AAAA) Queries Successful With Match/s

Rate, per second, at which AAAA record queries matched.

DNS (Type AAAA) Queries Successful Without Match

Number of AAAA record queries which were processed without error but whose responses did not contain the expected IP address.

728

IxLoad Tcl API Programming Guide

DNS

DNS (Type AAAA) Queries Successful Without Match/s

Rate, per second, at which AAAA record queries succeeded but did not contain the expected IP address.

DNS (Type AAAA) Queries Failed

Number of AAAA record queries for which an invalid response was received, or no response was received.

DNS (Type AAAA) Queries Failed/s

Rate, per second, at which AAAA record queries failed.

CNAME Record Statistics

DNS (Type CNAME) Number of canonical name record queries sent. Queries Sent

DNS (Type CNAME) Rate, per second, at which CNAME record queries were sent. Queries Sent/s

DNS (Type CNAME) Queries Successful With Match

Number of canonical name record queries for which the DNS server returned the expected host name.

DNS (Type CNAME) Queries Successful With Match/s

Rate, per second, at which the CNAME record responses contained the expected IP address.

DNS (Type CNAME) Queries Successful Without Match

Number of canonical name record queries which were processed without error but whose responses did not contain the expected host name.

DNS (Type CNAME) Queries Successful Without Match/s

Rate, per second, at which the CNAME record responses succeeded but did not contain the expected IP address.

DNS (Type CNAME) Number of canonical name record queries for which an invalid response was

Queries Failed

received, or no response was received.

DNS (Type CNAME) Rate, per second, at which CNAME record queries failed. Queries Failed/s

MX Record Statistics

DNS (Type MX) Quer- Number of mail exchange record queries sent. ies Sent

DNS (Type MX) Quer- Rate, per second, at which MX record queries were sent. ies Sent/s

IxLoad Tcl API Programming Guide

729

DNS

DNS (Type MX) Quer- Number of mail exchange record queries for which the response contained ies Successful With the expected mail server host name. Match

DNS (Type MX) Quer- Rate, per second, at which the MX record responses contained the expected ies Successful With IP address. Match/s

DNS (Type MX) Quer- Number of mail exchange record queries that were processed without error

ies Successful

but for which the response did not contain the expected mail server host

Without Match

name.

DNS (Type MX) Quer- Rate, per second, at which the MX record responses succeeded but did not

ies Successful

contain the expected IP address.

Without Match/s

DNS (Type MX) Quer- Number of mail exchange record queries for which an invalid response was

ies Failed

received, or no response was received.

DNS (Type MX) Quer- Rate, per second, at which MX record queries failed. ies Failed/s

PTR Record Statistics

DNS (Type PTR) Queries Sent

Number of pointer record queries sent.

DNS (Type PTR) Queries Sent/s

Rate, per second, at which PTR record queries were sent.

DNS (Type PTR) Queries Successful With Match

Number of pointer record queries for which the DNS client received the expected canonical host name for the supplied IP address.

DNS (Type PTR) Queries Successful With Match/s

Rate, per second, at which the PTR record responses contained the expected IP address.

DNS (Type PTR) Queries Successful Without Match

Number of pointer record queries that were processed correctly but whose responses did not contain the expected canonical host name.

DNS (Type PTR) Queries Successful Without Match/s

Rate, per second, at which the PTR record responses succeeded but did not contain the expected IP address.

730

IxLoad Tcl API Programming Guide

DNS

DNS (Type PTR) Queries Failed

Number of pointer record queries for which an invalid response was received, or no response was received.

DNS (Type PTR) Queries Failed/s

Rate, per second, at which PTR record queries failed.

NS Record Statistics

DNS (Type NS) Quer- Number of name server record queries sent. ies Sent

DNS (Type NS) Quer- Rate, per second, at which NS record queries were sent. ies Sent/s

DNS (Type NS) Quer- Number of name server record queries for which the DNS server returned the ies Successful With name server expected for the supplied domain. Match

DNS (Type NS) Quer- Rate, per second, at which the NS record responses contained the expected ies Successful With IP address. Match/s

DNS (Type NS) Quer- Number of name server record queries which the DNS server processed

ies Successful

without error but whose responses did not contain the expected name server.

Without Match

DNS (Type NS) Quer- Rate, per second, at which the NS record responses succeeded but did not

ies Successful

contain the expected IP address.

Without Match/s

DNS (Type NS) Quer- Number of name server record queries for which an invalid response was

ies Failed

received, or no response was received.

DNS (Type NS) Quer- Rate, per second, at which NS record queries failed. ies Failed/s

SOA Record Statistics

DNS (Type SOA) Queries Sent

Number of Start of Authority record queries sent.

DNS (Type SOA) Queries Sent/s

Rate, per second, at which SOA record queries were sent.

DNS (Type SOA) Queries Successful With Match

Number of Start of Authority record queries for which the DNS client received the expected DNS server for the supplied domain.

IxLoad Tcl API Programming Guide

731

DNS

DNS (Type SOA) Queries Successful With Match/s

Rate, per second, at which the SOA record responses contained the expected IP address.

DNS (Type SOA) Queries Successful Without Match

Number of Start of Authority record queries which were processed without error but whose responses did not contain the name of the expected DNS server.

DNS (Type SOA) Queries Successful Without Match/s

Rate, per second, at which the SOA record responses succeeded but did not contain the expected IP address.

DNS (Type SOA) Queries Failed

Number of Start of Authority record queries for which an invalid response was received, or no response was received.

DNS (Type SOA) Queries Failed/s

Rate, per second, at which SOA record queries failed.

NAPTR (ENUM) Query Statistics

DNS (Type NAPTR) Queries Sent

Number of Naming Authority Pointer (ENUM) record queries sent.

DNS (Type NAPTR) Queries Sent/s

Rate, per second, at which NAPTR record queries were sent.

DNS (Type NAPTR) Queries Successful With Match

Number of Naming Authority Pointer (ENUM) queries for which the response contained a string that matched the Expect field.

DNS (Type NAPTR) Queries Successful With Match/s

Rate, per second, at which the NAPTR record responses contained the expected IP address

DNS (Type NAPTR) Queries Successful Without Match

Number of Naming Authority Pointer (ENUM) queries which were processed without error but for which the response did not contain a string that matched the Expect field.

DNS (Type NAPTR) Queries Successful Without Match/s

Rate, per second, at which the NAPTR record responses succeeded but did not contain the expected IP address.

DNS (Type NAPTR) Queries Failed

Number of Naming Authority Pointer (ENUM) queries for which an invalid response was received, or no response was received.

DNS (Type NAPTR) Queries Failed/s

Rate, per second, at which NAPTR record queries failed.

732

IxLoad Tcl API Programming Guide

DNS

Bytes Transmitted and Received Statistics

DNS Total Bytes Transmitted

Total bytes transmitted for all DNS queries, including re-tried queries.

DNS Total Bytes Received

Total bytes received for all DNS responses.

Test Objective Statistics

DNS Bytes

Combined total number of DNS bytes transmitted and received.

DNS Throughput

Combined rate that the client received and transmitted DNS bytes.

DNS Transactions

Total number of DNS transactions completed. A DNS transaction consists of one query and one response to it.

DNS Transaction Rate

Rate at which the client completed DNS transactions completed.

DNS Simulated Users

Number of simulated users generating DNS queries.

DNS Queries Attempt/Second

Rate at which the client attempted DNS queries.

IxLoad Tcl API Programming Guide

733

DNS

DNS Server Statistics
The table below describes the DNS server statistics.

Statistic

Description

General Statistics

DNS Total Queries Received

Total number of DNS queries received by the server.

DNS Total Queries Responded Successfully

Total number of DNS queries for which the server returned a valid response.

DNS Total Queries Failed

Total number of DNS queries which the server could not process for any reason.

DNS Total Queries Failed (Format Error)

Number of DNS queries which the server could not process because it could not parse the query format.
Note: According to RFC 1034, the maximum label length is 63 bytes. IxLoad does not enforce this limit, and allows you to create queries for labels larger than 63 bytes.
If you configure the DNS client to send a query to a label that is larger than 63 bytes, the DNS server responds with a Format Error.

DNS Total Queries Failed (Server Failure)

Number of DNS queries that failed due to an error on the server.
Note: According to RFC 1034, the maximum label length is 63 bytes. IxLoad does not enforce this limit, and allows you to create Resource Records that include labels larger than 63 bytes.
If you configure the DNS client to send a query to server zone for a Resource Record that contains a label that is larger than 63 bytes, the DNS server responds with a Server Failure.

DNS Total Queries Number of DNS queries that failed because the DNS name does not exist. Failed (Name Error)

DNS Total Queries Failed (Not Implemented)

Number of DNS queries that failed because the name server does not support the DNS request.

DNS Total Queries Failed (Refused)

Number of DNS queries that failed because the server refused to serve the query.

DNS Total Queries Failed (Other)

Number of DNS queries that failed for unknown reasons.

734

IxLoad Tcl API Programming Guide

DNS

A Record Statistics

DNS (Type A) Quer- Number of A record queries received. ies Received

DNS (Type A) Queries Responded Successfully

Number of A record queries for which the DNS server returned a valid response.

DNS (Type A) Quer- Number of A record queries that failed for any reason. ies Failed

AAAA Record Statistics

DNS (Type AAAA) Queries Received

Number of AAAA record queries received.

DNS (Type AAAA) Queries Responded Successfully

Number of AAAA record queries for which the DNS server returned a valid response.

DNS (Type AAAA) Queries Failed

Number of AAAA record queries that failed for any reason.

CNAME Record Statistics

DNS (Type CNAME) Number of canonical name record queries received. Queries Received

DNS (Type CNAME) Queries Responded Successfully

Number of canonical name record queries for which the DNS server returned a valid response.

DNS (Type CNAME) Number of canonical name record queries that failed for any reason. Queries Failed

MX Record Statistics

DNS (Type MX) Queries Received

Number of mail exchange record queries received.

DNS (Type MX) Queries Responded Successfully

Number of mail exchange record queries for which the DNS server returned a valid response.

DNS (Type MX) Queries Failed

Number of mail exchange record queries that failed for any reason.

IxLoad Tcl API Programming Guide

735

DNS

PTR Record Statistics

DNS (Type PTR) Queries Received

Number of pointer record queries received.

DNS (Type PTR) Queries Responded Successfully

Number of pointer record queries for which the DNS server returned a valid response.

DNS (Type PTR) Queries Failed

Number of pointer record queries that failed for any reason.

NS Record Statistics

DNS (Type NS) Quer- Number of name server record queries received. ies Received

DNS (Type NS) Quer- Number of name server record queries for which the DNS server returned a ies Responded Suc- valid response. cessfully

DNS (Type NS) Quer- Number of name server record queries that failed for any reason. ies Failed

SOA Record Statistics

DNS (Type SOA) Queries Received

Number of Start of Authority record queries received.

DNS (Type SOA) Queries Responded Successfully

Number of Start of Authority record queries for which the DNS server returned a valid response.

DNS (Type SOA) Queries Failed

Number of Start of Authority record queries that failed for any reason.

Bytes Transmitted and Received Statistics

DNS Total Bytes Transmitted

Total bytes transmitted for all DNS queries, including re-tried queries.

DNS Total Bytes Received

Total bytes received for all DNS responses.

DNS Total Bytes Transmitted and Received

Combined total of bytes received in DNS queries and transmitted in DNS responses.

736

IxLoad Tcl API Programming Guide

! 15

DNS

IxLoad Tcl API Programming Guide

737

This page intentionally left blank.

738

IxLoad Tcl API Programming Guide

FTP
This section describes the FTP Tcl API objects.
Overview
FTP protocol commands are organized as follows. FTP Client Agent FTP Client Action FTP Server Agent
Objectives
The objectives (userObjective) you can set for FTP are listed below. Test objecare set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections l throughputMbps l throughputKbps l throughputGbps

IxLoad Tcl API Programming Guide

739

FTP

FTP Client Agent
The FTP Client Agent defines a simulated user performing FTP requests against one or more FTP servers. Refer to FTP Client Agent for a full description of this command. The important options of this command are listed in the table below:

Option

Usage

enable

Enables the use of the FTP client agent.

name

The name associated with the client agent.

actionList The list of actions associated with the agent.

realFileList Add real files in client and server plugins.

mode

The active/passive mode of the FTP interaction.

userName The default user name for actions.

password The default password for actions.

740

IxLoad Tcl API Programming Guide

FTP

FTP Client Action
Each client action is a single step in the interaction. Refer to FTP Client Action for a full description of this command. The important subcommands and options of this command are listed below.
Subcommand Usage checkConfig Checks the configuration of the action.

Option

Usage

command The FTP command, with optional arguments, to be executed. arguments

destination The name/address of the FTP server.

userName The user name to use for login commands.

password The password to use for login commands.

IxLoad Tcl API Programming Guide

741

FTP

FTP Server Agent
The FTP Server Agent defines the operation of the FTP server. Refer to FTP Server Agent for a full description of this command. The important options of this command are listed in the table below:

Option

Usage

enable

Enables the use of the FTP server agent.

name

The name associated with the server agent.

ftpPort

The port number that the server will respond on.

realFileList Add real files in client and server plugins.

742

IxLoad Tcl API Programming Guide

FTP

realFileList
To add real files, use the realFileList is exposed in both client and server plugins. It is a sequence container of RealFileObjects. RealFileObjects have two configurables exposed, page and payload.

Option Usage

page

Any linux file name (client_file1)

payload The actual path of the file.("C:\\Program Files\\Ixia\\IxLoad\\buildversion.ini")

For a sample script refer to the example section of FTP Client Agent .

IxLoad Tcl API Programming Guide

743

FTP
FTP Client Agent
FTP Client Agent - create an FTP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_FTPClient1 [$Traffic1_Network1 activityList.appendItem options...] Activity_FTPClient1 agent.config options...
DESCRIPTION
An FTP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
None.
OPTIONS
actionList A list of actions that the agent should perform, of type FTP Client Action. enable Enables the use of this agent. (Default = true). enableEsm If true, the use of the esm option is enabled. (Default = false). enableTos Enables the setting of the TOS (Type of Service) bits in the header of the FTP packets. Use the tos option to specify the TOS bit setting.
0 (default) TOS bits not enabled. 1 TOS bits enabled.
esm If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size as 1,460 bytes. (Default = 1,460). enableVlanPriority

744

IxLoad Tcl API Programming Guide

FTP

VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false).
fileList
Represents a list of filenames which is of the form #<a number>. These can be referred in the arguments option in any of the ixFtpAction Objects.
vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value.
ipPreference
If a mixture of IPv4 and IPv6 addresses are available on the client network, this parameter configures which address types the agent uses.

0 IPv4 1 IPv6 2 (default) Both, IPv4 first 3 Both, IPv6 first

loopValue
If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0).
mode
The mode that the client will use to access the server: To establish an FTP connection, the client connects from a random unprivileged port (port n, where n is greater than 1,024) to the FTP server's command port, normally port 21. What happens next depends on whether the client is in active or passive mode. The choices are listed below:

Option

Usage

"ACTIVE" (Default). The client sends the PORT command and waits for an OK response from the server.

"PASSIVE" In Passive mode, the client initiates both connections to the server.

name The name associated with this object, which must be set at object creation. password

IxLoad Tcl API Programming Guide

745

FTP

Enter the password for the default user name in userName. When you use a LOGIN action in the action list, this password will be used by default. (Default = "noreply@ixiacom.com").
You can insert sequence generators into this field to create unique entries automatically. For information on how to use sequence generators, see <X-ref>"Using Automatic Sequence Generators" on page -1.
tos
If enableTos is true, this option specifies the IP Precedence / TOS (Type of Service bit setting and Assured Forwarding classes. (Default="Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The choices are:

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

userName
Enter the default user name that the client will use to login to the FTP server. When you use a LOGIN action in the action list, this user name will be used by default. Ixia servers currently only accept a user name of `root.' (Default = "root").
STATISTICS

EXAMPLE
set Traffic1_Network1 [::IxLoad new ixNetTraffic]

#------------------------------------------------------------# Activity FTPClient1

of NetTraffic Traffic1@Network1#----------------------------------------------------

--------set Activity_FTPClient1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"FTP Client" ]

#------------------------------------------------------------ # Timeline1 for activities FTPClient1#------------------------------------------------------------set Timeline1 [::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

746

IxLoad Tcl API Programming Guide

FTP

1 \-rampUpType 0 \-rampDownTime 0 \-iterations 1 \-sustainTime 0 \-name

0 \-offlineTime 20 \-standbyTime 1 \-rampUpInterval 20 \-timelineType "Timeline1"

$Activity_FTPClient1 config \-enable "FTPClient1" \-enableConstraint 100 \-constraintValue "simulatedUsers" \-timeline

true \-name false \-userObjectiveValue 100 \-userObjectiveType
$Timeline1

$Activity_FTPClient1 agent.config \-userName

"root"

\-enableTos

false \-loopValue

true \-enable

true \-ipPreference

2 \-name

"FTPClient1" \-vlanPriority

0 \-tos

0 \-fileList

"'/#1', '/#4', '/#16', '/#64', '/#256', '/#1024', '/#4096', '/#16384', '/#65536',

'/#262144', '/#1048576'" \-enableEsm

false \-mode

"ACTIVE" \-esm

1460 \-password

"noreply@ixiacom.com" \-enableVlanPriority

false$Activity_

FTPClient1 agent.actionList.clearset my_ixFtpAction [::IxLoad new ixFtpAction]$my_

ixFtpAction config \-userName

"root" \-destination

"Traffic2_FTPServer1:21" \-sessionId

"1" \-command

"{Get}" \-arguments

"/#4096" \-password

"noreply@ixiacom.com"$Activity_FTPClient1 agent.actionList.appendItem -object $my_

ixFtpAction

SEE ALSO

FTP Client Action

ixNetTraffic

IxLoad Tcl API Programming Guide

747

FTP

FTP Client Action
FTP Client Action - define the commands that the FTP client will execute

SYNOPSIS
set clientTraffic [::IxLoad new ixClientTraffic options] $clientTraffic agentList.appendItem options... $clientTraffic agentList(0).actionList.appendItem options...
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_FTPClient1 [$Traffic1_Network1 activityList.appendItem $Activity_FTPClient1 agent.actionList.appendItem -object $my_ixFtpAction

DESCRIPTION
An FTP client action is added to the actionList option of the FTP Client Agent activityList object using its appendItem. See the following example:
Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.

checkConfig
This subcommand checks the configuration of an individual action.

OPTIONS
arguments
This option contains an argument that is used by the various commands defined in the command option. The type of the value depends on the command:

Command option "CD" "{Get}" "LOGIN"

Usage
The path to switch to. The path to where the file is stored. N/A.

748

IxLoad Tcl API Programming Guide

FTP

"{Put}" "QUIT" "RETRIEVE" "STORE" "{Think}"

The path/size of the file to be sent to the server. N/A. The path to where the file is stored. The path/size of the file to be sent to the server. The number of milliseconds to pause before executing the next command in the action list.

command Selects the FTP command to be used. One of:

Option

Usage

"CD"

Changes the current working directory to the value in the arguments option.

"{Get}"

(Default). Retrieves the file specified in the argument option. {Get} is not a standard FTP command; it allows you to retrieve a file from an Ixia server without having to log in.

"LOGIN"

Logs in to the FTP server using the name and password in the us and password options.

"{Put}"

Copies the file specified in the arguments option from the client to the server. {Put} is not a standard FTP command; it allows you to store a file on an Ixia server without having to log in.

"QUIT"

Logs out of the FTP server.

"RETRIEVE"

Retrieves the file specified in the arguments option.

"STORE"

Copies the file specified in the arguments option from the client to the server.

"{Think}"

Adds a pause (think time) before the next command is executed. Specify the duration of the pause in the arguments option.

"{LoopBegin}" An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

"{LoopEnd}"

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

destination
Either the IP address of a real FTP server or the value of the -name option of an FTP Server Agent. If the FTP server listens on a port other than the standard (21), enter a colon after the IP address and then

IxLoad Tcl API Programming Guide

749

FTP

enter the port number. When using an FTP Server Agent, the port number must agree with that defined by the Server Agent. See the following example: 192.168.0.1:21

The destination option also accepts IPv6 addresses. IxLoad supports all forms of IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4").
password

The password for the user name. Ixia servers accept any password. userName

The user name that the client will use to log in to the FTP server. Ixia servers only accept a user name of root.

EXAMPLE

set my_ixFtpAction [::IxLoad new ixFtpAction]$my_ixFtpAction config \-userName

"root" \-destination

"Traffic2_FTPServer1:21" \-

sessionId

"1" \-command

"{Get}" \-arguments

"/#4096" \-password

"noreply@ixiacom.com"$Activity_FTPClient1 agent.actionList.appendItem -object $my_

ixFtpAction

SEE ALSO

FTP Client Agent

750

IxLoad Tcl API Programming Guide

FTP
FTP Server Agent
FTP Server Agent - configure an FTP server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_FTPServer1 [$Traffic2_Network2 activityList.appendItem $Activity_FTPServer1 agent.config options...
DESCRIPTION
An FTP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this server agent. (Default = true). enableEsm If true, the use of the esm option is enabled. (Default = false). enableTos Enables the setting of the TOS (Type of Service) bits in the header of the FTP packets. Use the tos option to specify the TOS bit setting.
0 (default) TOS bits not enabled. 1 TOS bits enabled.
esm If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size is 1,460 bytes. (Default = 1,460). enableVlanPriority

IxLoad Tcl API Programming Guide

751

FTP

VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false).
vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value.
ftpPort
The port number that the FTP server listens on. To specify multiple listening ports, enter the port numbers, separated by commas (,). You can specify up to 50 listening ports. (Default = 21).
name
The name associated with this object, which must be set at object creation.
tos
If enableTos is true, this option specifies the IP Precedence / TOS (Type of Service bit setting and Assured Forwarding classes. (Default="Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

STATISTICS
EXAMPLE
set Traffic2_Network2 [::IxLoad new ixNetTraffic] #--------------------------------------------------------------# Activity FTPServer1

752

IxLoad Tcl API Programming Guide

FTP

of NetTraffic Traffic2@Network2#----------------------------------------------------

--------set Activity_FTPServer1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"FTP Server" ]set _Match_Longest_ [::IxLoad

new ixMatchLongestTimeline]$Activity_FTPServer1 config \-enable

1 \-name

"FTPServer1" \-timeline

$_Match_Longest_$Activity_FTPServer1 agent.config \-enableTos

0 \-enable

1 \-name

"FTPServer1" \-vlanPriority

0 \-tos

0 \-ftpPort

21 \-enableEsm

0 \-esm

1460 \-enableVlanPriority

0$Activity_FTPServer1 agent.realFileList.clearset my_RealFileObject11 [::IxLoad new

RealFileObject]$my_RealFileObject11 config \-payloadFile

"<Dummy File>" \-page

"/#1"$Activity_FTPServer1

agent.realFileList.appendItem -object $my_RealFileObject11

SEE ALSO
ixServerTraffic

IxLoad Tcl API Programming Guide

753

FTP
FTP Statistics
For the FTP statistics, see the following: FTP Client Statistics FTP Server Statistics

754

IxLoad Tcl API Programming Guide

FTP

FTP Client Statistics
The table below lists the statistics that IxLoad reports for FTP clients. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
The test results are available from the location defined on the User Directories window. See User Directories.
The QoE Detective column indicates the QoE Detective views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

QoE

Description

Detective

FTP Bytes

--

Total number of FTP bytes sent.

FTP Control Bytes

All

Received

Number of bytes received on the control connections by the FTP client.

FTP Control Bytes Sent All

Number of bytes transmitted on the control connections by the FTP client.

FTP Control Conn

All

Requested

Number of requests to establish control connections sent by the clients.

FTP Control Conn

All

Established

Number of control connections established by the clients.

FTP Control Conn

All

Failed

Number of control connections that could not be established.

FTP Control Conn

All

Failed (Rejected)

Number of control connections that could not be established because the server rejected the connection request.

FTP Control Conn

All

Failed (Other)

Number of control connections that could not be established for reasons other than rejection by the server.

FTP Control Conn Act- All ive

Number of control connections actively transferring FTP commands.

IxLoad Tcl API Programming Guide

755

FTP

FTP Data Conn Estab- All lished

FTP Data Conn Estab- All lished (Active Mode)

FTP Data Conn Reques- All ted (Passive Mode)

FTP Data Conn Estab- All lished (Passive Mode)

FTP Data Conn Failed All (Passive Mode)

FTP Data Conn Active All

FTP File Uploads

All

Requested

FTP File Uploads Suc- All cessful

FTP File Uploads Failed All

FTP File Downloads

All

Requested

FTP File Downloads

All

Successful

FTP File Downloads

All

Failed

FTP Data Bytes Sent All

FTP Data Bytes

All

Received

FTP Control Bytes Sent All

FTP Control Bytes

All

Received

FTP Simulated Users - -

Number of data connections established.
Number of data connections established in Active mode.
Number of data connections requested in Passive mode.
Number of data connections established in passive mode.
Number of data connections that failed.
Number of data connections active. Number of requests to upload files sent by the clients.
Number of uploads that completed successfully.
Number of upload attempts that failed. Number of requests to download files sent by the clients.
Number of downloads that completed successfully.
Number of download attempts that failed.
Number of bytes transmitted on the data connections by the FTP client Number of bytes received on the data connections by the FTP client. Number of bytes received on the control connections by the FTP client. Number of bytes received on the control connections by the FTP client. Number of users to be simulated during the test.

756

IxLoad Tcl API Programming Guide

FTP

FTP Connections

--

FTP Transactions

--

FTP Bytes

All

FTP Throughput

--

FTP Throughput (Kbps) All

FTP Connection Rate All

FTP Transaction Rate All

FTP Concurrent Ses-

All

sions

FTP Control Con-

All

nection Latency (ms)

FTP Data Connection All Latency (Passive Mode) (ms)

Number of FTP connections between clients and servers, including both control and data connections.
Number of transactions completed by the clients.
Total number of FTP bytes sent.
Rate, in bytes per second, at which the client sent and received FTP data.
Rate, in kilobits per second, at which the client sent and received FTP data. This statistic is only available in Conditional View.
Rate at which the client established FTP connections.
Average rate at which the clients completed FTP transactions.
Number of simultaneous FTP sessions active.
Average amount of latency on control connections, in milliseconds. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Average amount of latency (in milliseconds) on data connections that were established in Passive mode. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

IxLoad Tcl API Programming Guide

757

FTP

FTP Server Statistics
The table below lists the statistics that IxLoad reports for FTP servers. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
The QoE Detective column indicates which views a statistic is available in:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views
The test results are available from the location defined on the User Directories window. See User Directories.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

Conditional Description Views

FTP Control Conn Received

IP, VLAN

Number of requests to establish control connections received by the servers.

FTP Control Conn Established

IP, VLAN Number of control connections established by the servers.

FTP Control Conn Rejected

IP, VLAN

Number of requests to establish control connections rejected by the servers.

FTP Control Conn Act- IP, VLAN ive

Number of control connections actively transferring FTP commands.

FTP Data Conn Estab- IP, VLAN lished

Number of data connections established by the server (active and passive mode).

FTP Data Conn Requested (Active Mode)

IP, VLAN

Number of requests to establish data connections in active mode received by the servers.

FTP Data Conn Estab- IP, VLAN lished (Active Mode)

Number of data connections established in active mode.

FTP Data Conn Failed IP, VLAN (Active Mode)

Number of data connections opened in active mode that failed.

FTP Data Conn Estab- IP, VLAN lished (Passive Mode)

Number of data connections established in passive mode.

758

IxLoad Tcl API Programming Guide

FTP

FTP Data Conn Active IP, VLAN

FTP File Uploads Requested

IP, VLAN

FTP File Uploads Suc- IP, VLAN cessful

FTP File Uploads Failed

IP, VLAN

FTP File Downloads Requested

IP, VLAN

FTP File Downloads Successful

IP, VLAN

FTP File Downloads Failed

IP, VLAN

FTP Data Bytes Sent - -

FTP Data Bytes

--

Received

FTP Control Bytes

--

Sent

FTP Control Bytes

--

Received

FTP Data Connection Latency (Active Mode) (ms)

IP, VLAN

Number of data connections actively uploading or downloading data. Number of requests to upload data received by the servers.
Number of uploads that completed successfully.
Number of uploads that failed.
Number of requests to download files received by the servers.
Number of downloads that completed successfully.
Number of downloads that failed.
Number of bytes sent by the servers on data connections. Number of bytes received by the servers on data connections.
Number of bytes sent by the servers on control connections.
Number of bytes received by the servers on control connections. Average amount of latency (in milliseconds) on data connections opened in active mode. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

! 16

IxLoad Tcl API Programming Guide

759

This page intentionally left blank.

760

IxLoad Tcl API Programming Guide

HTTP
This section describes the HTTP Tcl API objects.

Overview
HTTP protocol commands are organized as:
l HTTP Client Agent l HTTP Client Action l HTTP Server Agent l ixCookieContents l ixResponseHeader l ixWebPageObject l CustomPayloadObject
Additional topics included are:
l Supported Ciphers-- describes the set of supported encryption ciphers. l Using Your Own Web Pages In IxLoad describes how to use your own Web pages in the server's
emulation. l Using Sequence Generators in HTTP Client Commands and Server Header Name=Value Fields--
describes how to use variables to generate large numbers of difobjects.
Objectives
The objectives (userObjective) you can set for HTTP are listed below. Test objectives are set in the ixTimeline object.
l connectionRate l connectionAttemptRate l transactionRate l simulatedUsers l concurrentConnections l throughputMbps l throughputKbps

IxLoad Tcl API Programming Guide

761

HTTP l throughputGbps

762

IxLoad Tcl API Programming Guide

HTTP
HTTP Client Agent
HTTP Client Agent
SYNOPSIS
set HTTP_client_client_network [::IxLoad new ixNetTraffic] set Activity_newAgent1 [$HTTP_client_client_network activityList.appendItem option...] $Activity_newAgent1 agent.config \
DESCRIPTION
An HTTP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
Two subcommands are available to load certificates and private keys: importCertificate and importPrivateKey.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found. importCertificate file
Imports a certificate from a disk file, setting the certificate option with the result. True is returned if the import succeeded and false otherwise. IxLoad can import ASCII PEM (Privacy Enhanced Mail) or binary (PKCS#12) certificates and keys; it converts binary certificates and keys into ASCII PEM format.
l PEM uses Base64 encoding, and is optimized for sending binary data in 7-bit transport environments like the Internet.
l PKCS #12 (Public Key Cryptography Standard #12) is an industry standard format used to transfer certificates and their corresponding private keys from one computer to another, or from a computer to removable media. If this format is imported, the privateKeyPassword must be set.
Note: Even though the certificate and key are stored in the same file, you must import each one separately.
Example$Activity_newClientActivity1 agent.importCertificate "C:/ProgramFiles/Ixia/IxLoad/3.40.49.32-EB/Client/Plugins/agent/HTTP_Common/SSL_Certificates/Unsecured_ RSA_cert_512.pem"
importPrivateKey file

IxLoad Tcl API Programming Guide

763

HTTP

This subcommand performs the same function, but for the private key. The decoded and decrypted values are set into the password option and true or false are returned to indicate success and failure, respectively. $Activity_newClientActivity1 agent.importPrivateKey "C:/ProgramFiles/Ixia/IxLoad/3.40.49.32-EB/Client/Plugins/agent/HTTP_Common/SSL_Certificates/Unsecured_ RSA_key_512.pem"
OPTIONS
actionList
A list of actions that the agent should perform, of type HTTP Client Action. Actions are normally added using the appendItem subcommand.
browserEmulation
The type of browser that the client will emulate.One of:

Option
::HTTP_Client(kBrowserTypeNone) or "<Custom>"
::HTTP_Client(kBrowserTypeIE5) "Microsoft IE 5.x"
::HTTP_Client(kBrowserTypeMozilla) "Mozilla"
::HTTP_Client(kBrowserTypeIE6) "Microsoft IE 6.x"
::HTTP_Client(kBrowserTypeFirefox) "Firefox"
::HTTP_Client(kBrowserTypeSafari) "Safari"
certificate

Usage No browser is emulated by the client. The headers may be entered in the headerList option. Microsoft Internet Explorer 5.x browser is emulated by the client.
Netscape, Mozilla, and Firefox browsers are emulated by the client.
(Default) Microsoft Internet Explorer 6.x browser is emulated by the client. The Firefox browser is emulated by the client.
The Safari browser is emulated by the client.

764

IxLoad Tcl API Programming Guide

HTTP
If enableSsl is true, this is a certificate to be used by the client if requested by the server. The certificate must be an X.509 certificate in binary format, fully decoded. The importCertificate subcommand can read and decode a certificate held in a disk file. (Default = ""). clientCiphers If enableSsl is true, this is a `:' separated list of encryption ciphers that will be supported by the client. See Supported Ciphers for a list of supported ciphers. (Default = "DEFAULT"). cookieJarSize If enableCookieSupport is true, this option indicates the number of cookies that will be saved for each client. The maximum value of this is 300. (Default = 10). cookieRejectProbability If enableCookieSupport is true, then this option indicates the probability, from 0 to 1, that a client will reject a request for a cookie's contents from the server. (Default = 0.0). enable Enables the use of this action. (Default = true). enableCookieSupport If true, then the client will support cookie retention, as indicated in the cookieJarSize and cookieRejectProbability. (Default = false). piggybackAck If true, the client includes the ACK for the previous packet in the same packet as the next packet.. (Default = true). enableDecompressSupport If true, the client decodes pages that have been encoded using a supported encoding method such as gzip or deflate. (Default = false). enableEsm If true, the use of the esm option is enabled. (Default = false). enableHttpProxy If true, the client will retrieve pages from an HTTP proxy device defined in httpProxy instead of the target specified in the URL. (Default = false). enableHttpsProxy If true, the client will retrieve secure (SSL) pages from an HTTPS proxy device defined in httpsProxy instead of the target specified in the URL. (Default = false). enableHttpsTunnel

IxLoad Tcl API Programming Guide

765

HTTP
If true, the client will retrieve secure (SSL) pages from over an HTTPS tunnel defined in httpsTunnelIp instead of the target specified in the URL. (Default = false). enableIntegrityCheckSupport If true, the client calculates a checksum for a received page and compares it with the checksum received from the server. (Default = false). enableLargeHeader If enabled, this specifies whether IxLoad will support large headers. It accepts boolean value of True or False. (Default = false). enablePerConnCookieSupport If enabled, cookies are maintained on a per-connection basis instead of on a per-user basis. (Default = false). enableSsl If true, then the client will support SSL interactions. The operation of SSL mode is controlled by the certificate, clientCiphers, privateKey, privateKeyPassword, sequentialSessionReuse (sic), and sslVersion options. (Default = 0). enableTos Enables the setting of the TOS (Type of Service) bits in the header of the HTTP packets. Use the tos option to specify the TOS bit setting.
0 (default) TOS bits not enabled.
1 TOS bits enabled.
esm If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size is 1,460 bytes. (Default = 1,460). enableVlanPriority VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority When enableVlanPriority is true, this option accepts the vlan priority value. followHttpRedirects If true, the client follows HTTP Redirect commands from the server. An HTTP Redirect is a response status code from the server in the range 300-399 that defines the reason for redirection (for example,

766

IxLoad Tcl API Programming Guide

HTTP

"301 Moved Permanently") and supplies an alternative location (specified in the Location HTTP header) from which the client can retrieve the page. (Default = false).
headerList
If browserEmulation is set to "None," then this list of headers will be transmitted as part of a client request. This list is of type ixResponseHeader; items are added to the list via the appendItem subcommand. Each element of the list must be of the form "key: value" without any spaces in the key. (Default = None).
httpProxy
If enableHttpProxy is true, this option is the name of a HTTP proxy device (typically, a caching device) that will be used instead of the target specified in the URL. It should be of the form: <IP address>:<port>; for example, 192.168.3.1:8080. (Default = "").
httpsProxy
If enableHttpsProxy is true, this option is the name of a HTTPS proxy device (typically, a caching device) that will be used instead of the target specified in the URL for secure (SSL) pages. It should be of the form: <IP address>:<port>; for example, 192.168.3.1:8080. (Default = "").
httpsTunnelIp
If enableHttpsTunnel is true, this is the IP address of the HTTPS tunnel that will be used instead of the target specified in the URL for secure (SSL) pages. It should be of the form: <IP address>:<port>; for example, 192.168.3.1:8080. (Default = "").
httpVersion
Select the version of the HTTP protocol that you want to use in the test. One of:

Option Usage

"1.0"

(Default) Under HTTP 1.0 without Keep-Alive, when a user clicks on a link for a Web page, a TCP connection request is sent by the client to the server. When the server accepts the connection, the client sends an HTTP GET request to download the Web page from the server. The client acknowledges receipt of the page by sending an ACK to the server. After making a single HTTP request, the client closes the TCP connection. After the server has sent the entire page, it will also close the connection from its side.
See the description of keepAlive for a description of its effect on HTTP 1.0

"1.1"

Most browsers use HTTP 1.1. If a client and server use HTTP 1.1, multiple HTTP requests can be sent by the client on a single TCP connection. This saves processing power, since fewer TCP connections need to be established. HTTP 1.1 also allows for persistent connections, enabling connections to stay up for (relatively) long periods of time. In HTTP 1.1, the server initiates the closing of the TCP connection by sending a FIN message.

ipPreference

IxLoad Tcl API Programming Guide

767

HTTP
If a mixture of IPv4 and IPv6 addresses are available on the client network, this parameter configures which address types the agent uses.
0 IPv4
1 IPv6
2 (default) Both, IPv4 first
3 Both, IPv6 first
keepAlive
This option is only applicable if httpVersion is set to "1.0." If this option is set to true, the client adds the Connection: Keep-Alive header to its request. Each request from a client creates a new socket connection to the server. The client reads from that socket connection to get the response. If keepAlive is not set, the server closes the connection. If the client needs to make a new request, it will establish a new connection. If the client sends the Keep-Alive header, the server keeps the connection open. When the client sends another request, it uses the same connection. This will continue until either the client or the server decides that the session is over, and one of them closes the connection. (Default = false). loopValue
If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0) then the client will progress through the command list only once, and then go idle. (Default = 0). maxHeaderLen
Specifies the length of header data. It accepts integer values. Minimum = 1,024, maximum =1,0240. (Default = 1,024).
maxPersistentRequests
This option is only applicable if httpVersion is set to "1.1" or httpVersion is set to "1.0" with keepAlive set to true. This option enables you to control the number of transactions that can occur during a single connection. A value of 0 indicates the maximum possible, in which case IxLoad will create as many transactions as possible for each connection. If you enter a value to limit the number of transactions, IxLoad limits the number of transactions that can occur during a single TCP connection. If a user reaches the maximum number of transactions and needs to continue communicating with the server, it will close the connection and open a new one. (Default = 1). maxPipeline

768

IxLoad Tcl API Programming Guide

HTTP
This option enables you to control the maximum number of requests that the client will send before waiting for a response. Minimum = 1, maximum = 1,000. (Default = 1).
HTTP pipelining allows a client to send multiple HTTP requests before it has received a response to the first request. A client that does not use HTTP pipelining waits for a response to a request before it sends the next request.
This option is only applicable if httpVersion is set to "1.1" or httpVersion is set to "1.0" with keepAlive set to true.
Setting maxPipeline to 1 (the default) effectively disables pipelining; the client will send only one request before stopping to wait for a response.
Setting maxPipeline to a value greater than 1 reduces the maximum number of concurrent connections that a test can attain.
If pipelining is enabled, IxLoad pipelines all requests: GET, PUT, POST, HEAD, and DELETE.
Note: If you enable pipelining, you should also consider the value you will enter in the maxPersistentRequests field, because it may override the value for maxPipeline. For example, if you set the value of maxPersistentRequests to `5' instead of "Maximum possible" and set the maxPipeline value to 100, pipelining will effectively be nullified because the client will allow only 5 requests to be sent by over an HTTP connection.
maxSessions
This value determines the maximum number of connections that a single user can have open at any given time. For example, clients may open multiple connections when their command list contains URLs for multiple servers.
The value for this parameter has an effect on the total number of users that can be configured; increasing the number of concurrent connections decreases the number of users that can be configured. Setting this parameter to 1 allows the maximum numbers of users to be created.
IxLoad enforces these limits for clients. For servers, the limits are the same but not enforced. (Default = 3).
name
The name associated with this object, which must be set at object creation.
privateKey
If enableSsl is true, this is a user's private key. The password must be in binary format, fully decoded. The importPrivateKey subcommand can read and decode a certificate held in a disk file. (Default = "").
privateKeyPassword
The password used to decode a certificate and private key, when using the importCertificate or importPrivateKey subcommands. (Default = 0).
sequentialSession Reuse

IxLoad Tcl API Programming Guide

769

HTTP

If enableSsl is true, this option indicates the number of times that a set of keys will be reused after its initial usage. For example, if this value is set to 3, then the keys will be used for four total sessions. (Default = 0).
sslVersion
If enableSsl is true, this is the SSL version be supported by the client. One of

Option

Usage

$::HTTP_Client(kSslVersion2) SSL version 2.0.

$::HTTP_Client(kSslVersion3) SSL version 3.0.

$::HTTP_Client(kTlsVersion1) (Default) TLS version 1.0.

tcpCloseOption This option selects the mehod used to close connections.

0 (Default) Connections are closed using three way handshake. 1 Connections are closed by sending Reset (RST) segments instead of Finish (FIN) segments 2 Connections are closed using a four-way handshake

tos
If enableTos is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

urlStatsCount

770

IxLoad Tcl API Programming Guide

HTTP

Number of URL statistics to display in Statistics (StatViewer) window. During a test, IxLoad displays statistics for one or more URLs in the Statistics window at the bottom of the main IxLoad window. You can use this field to restrict the number of per-URL statistics that are displayed, so that the window displays statistics only for the URLs that are most important to you. If you select a large number of URLs, the Statistics window can become difficult to read. Maximum = 1,000, (default=10).
Value Extraction Settings
varExtract_enable
If enabled, IxLoad searches for a match for the string configured in the fields and, if found, applies the value to the variable. It accepts true or false value. varExtract_varName
This represents the name of the variable. varExtract_prefix
This indicates the characters preceding the value string in the response. You can specify up to 512 characters, which can be any valid printable ASCII characters. varExtract_suffix
This indicates the characters following the value string in the response. You can specify up to 512 characters, which can be any valid printable ASCII characters. varExtract_location
This indicates where to search for the value string. It can take three different values: Header, Body, or Both.
STATISTICS

EXAMPLE

$Activity_HTTPClient1 agent.config \

-vlanPriority

0\

-enableDecompressSupport

0\

-enableHttpsProxy

0\

-enableSsl

0\

-enableUnidirectionalClose

0\

-ipPreference

2\

-loopValue

1\

IxLoad Tcl API Programming Guide

771

HTTP

-enableLargeHeader

0\

-maxPersistentRequests

1\

-enableEsm

0\

-certificate

"" \

-sequentialSessionReuse

0\

-tos

0\

-maxPipeline

1\

-maxHeaderLen

1024 \

-maxSessions

3\

-enableHttpProxy

0\

-enableTos

0\

-cookieRejectProbability

0.0 \

-browserEmulation

3\

-cookieJarSize

10 \

-privateKey

"" \

-commandTimeout

600 \

-enableIntegrityCheckSupport

0\

-commandTimeout_ms

0\

-privateKeyPassword

"" \

-urlStatsCount

10 \

-followHttpRedirects

0\

-tcpCloseOption

0\

-enableVlanPriority

0\

-esm

1460 \

-httpVersion

0\

-sslVersion

3\

-enableCookieSupport

0\

-piggybackAck

true \

-clientCiphers

"DEFAULT" \

-httpProxy

"0.0.0.0" \

772

IxLoad Tcl API Programming Guide

-keepAlive -enableCRCCheckSupport -httpsProxy
SEE ALSO
HTTP Client Action ixNetTraffic

0\ 0\
"0.0.0.0"

HTTP

IxLoad Tcl API Programming Guide

773

HTTP

HTTP Client Profile
HTTP Client Profile - configure the an HTTP client's functionality.

SYNOPSIS

set HTTP_client_client_network [::IxLoad new ixNetTraffic] set Activity_newAgent1 [$HTTP_client_client_network activityList.appen set CustomCommandProfile1 [::IxLoad new ixHttpCommandProfile] $Activity_newAgent1 agent.profileList.appendItem -object $CustomCommandProfile1

DESCRIPTION

An HTTP client profile is added to the profileList option of the HTTP Client Agent object using the appendItem subcommand from the HTTP Client Agent. Request Headers

The request header is a list of type ixConfigSequenceContainer used to hold objects of type ixRe-

sponseHeader. The elements in this list describe the responses of the Web server to HTTP requests

as per the profile specified in the client. You can map multiple header responses to one common profile

ID.

# Request Headersset my_ixHttpHeaderString [::IxLoad new ixHttpHeaderString]$my_ixHt-

tpHeaderString config \-data

"Accept: */*"$Activ-

ity_newAgent1 agent.headerList.appendItem -object $my_ixHttpHeaderStringSubstring

Matching

The HTTP client filter strings received in responses from the server.

# Substring Matchset CustomCommandProfile1 [::IxLoad new ixHttpCommandProfile]$Cus-

tomCommandProfile1 config \-name

"Cus-

tomCommandProfile1" \-substringMatchEnabled

true \-userID

"test" \-id

0 \-substring

"a" \-basicAuthenticationEnabled

true \-password

"test" \-caseInsensitiveMatch

true$CustomCommandProfile1

requestHeaders.clear

SUBCOMMANDS
None.
OPTIONS

Substring options
name This is the name of the profile that needs to be matched.

774

IxLoad Tcl API Programming Guide

HTTP
caseInsensitivematch If this is enabled, then IxLoad ignores the case of the characters in a substring match. The value is 0 for enabled and 1 if disabled. (Default = 0). substring This is the server response text string to be matched, when enabled. Minimum = 0, maximum =1,024. (Default=0). substringMatchEnabled If enabled, the response to any command that uses this profile is searched for the text string in the substring field. The value is true if enabled and false if disabled. (Default = false). basicAuthentication If this is enabled the client sends an autorization header to the server requesting for a page. The userID and password is sent to the server against Authorization header like userID: password after base64 encoding. (Default = 0). userID Identification of the client sending the basicAuthentication request. (Default = userid). password Password of the client sending the basicAuthentication request. (Default = pass. randomPageGenEnabled If enabled, the GET requests that contain sequence generators in the pageObject field send requests for pages in a random order. If disabled, GET requests that use sequence generators generate requests in alphabetic or numerical order.The value is true if enabled and false if disabled. (Default = false).
Request Header options
data This contains the name and the value of the header. The request header maps to the profile list through the profile ID declared in the client action. The request header is specified for GET, HEAD, PUT, POST, DELETE and their SSL counter

IxLoad Tcl API Programming Guide

775

HTTP

HTTP Client Action
HTTP Client Action - configure the actions that an HTTP client will perform.
SYNOPSIS
set HTTP_client_client_network [::IxLoad new ixNetTraffic] set Activity_newAgent1 [$HTTP_client_client_network activityList.appendItem set my_ixHttpAction [::IxLoad new ixHttpAction] $Activity_newAgent1 agent.actionList.appendItem -object $my_ixHttpAction

DESCRIPTION

An HTTP client action is added to the actionList option of the HTTP Client Agent object using the

appendItem subcommand from the HTTP Client Agent. See the following example: set Traffic1_Network1 [::IxLoad new ixNetTraffic]set Activity_HTTPClient1 [$Traf-

fic1_Network1 activityList.appendItem \set my_ixHttpAction [::IxLoad new ixHt-

tpAction]$my_ixHttpAction config \-profile

0 \-

namevalueargs

"" \-destination

"Traffic2_HTTPServer1:80" \-abort

"None" \-command

"GET" \-arguments

"" \-pageObject

"/1b.html"$Activity_HTTPClient1 agent.actionList.appendItem -object $my_ixHttpAction

Each member of the list may be separately addressed and modified using the ixConfig subcommands.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, the following commands are available. Unless otherwise described, no values are returned and an exception is raised for any error found.
checkConfig
This subcommand checks the configuration of an individual action.

OPTIONS
abort
This option allows you to abort an operation at one of two places during the interThe following commands support the abort option: GET, PUT, POST, HEAD, DELETE, GET(SSL), PUT(SSL), POST (SSL), HEAD(SSL), and DELETE(SSL).
The types of aborts available are:

Option

Usage

776

IxLoad Tcl API Programming Guide

HTTP

::HttpAction (kAbortNone) or "None"
::HttpAction (kAbortBefore or "AbortBeforeRequest"
::HttpAction (kAbortAfter or "AbortAfterRequest"

Do not abort transaction. (Default) Abort the operation immediately after the TCP connection.
Abort the operation after the operation has been sent to the HTTP server. This option is not valid for SSL connections.

arguments
This option contains an argument that is used by the various commands defined in command. The type of the value depends on the command:

Option

Usage

"GET", "GET(SSL)" N/A.

"DELETE"

N/A.

"HEAD", "HEAD (SSL)"

N/A.

"PUT", "PUT(SSL)" The name and path of the file to be posted on the server.

"POST","POST (SSL)"

The name and path of the file to be posted on the server.

"{Think}"

The number of milliseconds to pause before executing the next command in the action list.

command Selects the HTTP command to be used. One of:

Option "GET" "GET(SSL)"

Usage
(Default) Retrieves the page specified in the pageObject option.
Retrieves the page specified in the pageObject option, using SSL. This command must be used if enableSsl is set in the HTTP Client Action.

IxLoad Tcl API Programming Guide

777

HTTP

"DELETE"

Requests that the server delete the page specified in the pageObject option.

"HEAD"

Retrieves only the HTTP headers for the page specified in pageObject option.

"HEAD(SSL)" Retrieves only the HTTP headers for the page specified in pageObject option. This command must be used if enableSsl is set in the HTTP Client Action.

"PUT"

Stores the page specified in the pageObject option on the server at the path specified in the arguments option.

"PUT(SSL)"

Stores the page specified in the pageObject option on the server at the path specified in the arguments option. This command must be used if enableSsl is set in the HTTP Client Action.

"POST"

Creates a new object linked to the item specified in the pageObject option. The arguments option can be used to set the object's message-ID field.

"POST(SSL)"

Creates a new object linked to the item specified in the pageObject option. The arguments option can be used to set the object's message-ID field. This command must be used if enableSsl is set in the HTTP Client Action.

"{Think}"

Adds a pause (think time) before the next command is executed. Specify the duration of the pause in the arguments option.

"{LoopBegin}" An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

"{LoopEnd}"

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

destination
Either the IP address of a real HTTP server or the value of the -name option of an HTTP Server Agent. If the HTTP server listens on a port other than the standard (80), enter a colon after the IP address and then enter the port number. If an HTTP Server Agent is used, the port number should agree with the port number associated with the Server Agent. If you are testing an SLB with a virtual IP address (VIP), enter its address here. See the following example: 192.168.0.1:80
The destination option also accepts IPv6 addresses. IxLoad supports all forms of IPv6 addressing except ::dotted-quad notation (for example, "::1.2.3.4").
namevalueargs
Name=value arguments for GET, HEAD, POST and PUT commands. Name=value arguments are optional and specify parameter names and values; they can occur in any order. To enter multiple namee=value arguments, separate the arguments with ampersands (&). For example:
name1=value1&name2=value2&. . .

778

IxLoad Tcl API Programming Guide

HTTP

You can include sequence generators and system variables in the name=value arguments. (Default= "")
pageObject
This option contains a page stored on the HTTP server specified in the Destination field. Three formats are available:
l /#n identifies a target that contains n bytes of HTTP data. For example, /#1 is 1 byte of HTTP data. In addition to the default sizes listed, you can cause the HTTP Server agent to generate a custom-size target by specifying the size using the same convention used for the default sizes. For example, to specify a target of 16 bytes, use /#16.
l /nk.htm identifies a target that is an HTML page that is n kilobytes in size. For example, /4k.htm is an 4096-byte HTML page.
l If you have added customized pages, type its path and name into the Page/Object field. See Using Your Own Web Pages In IxLoad for a description of how to use your own custom pages.
You can also include variables in this parameter.
sendingChunkSize
Chunk size (PUT and POST commands). Enables chunked-transfer encoding if set to a numeric value. Default = "None".
sendMD5ChkSumHeader
If true, an MD5 check sum header is included with the requests sent to the server. Default = 0.
profile
When a HTTP Client Profile is created there is an associated ID, created for each profile. This is incremented by one for each profile. This profile ID maps the Substring match and Request Header together. (Default= -1). exactTransactions
If enabled, the transaction count is maintained throughout the test. Default = 0.

EXAMPLE

#--------------------------------------------------------------# Add actions to this

client agent#--------------------------------------------------------------set my_

ixHttpAction [::IxLoad new ixHttpAction]$my_ixHttpAction config \-profile

0 \-namevalueargs

"" \-destination

"Traffic2_HTTPServer1:80" \-abort

"None" \-command

"GET" \-arguments

"" \-pageObject

"/1b.html"

$Activity_HTTPClient1 agent.actionList.appendItem -object $my_ixHttpAction
SEE ALSO
HTTP Client Agent

IxLoad Tcl API Programming Guide

779

HTTP

780

IxLoad Tcl API Programming Guide

HTTP
HTTP Server Agent
HTTP Server Agent - configure an HTTP server.
SYNOPSIS
set HTTP_server_server_network [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$HTTP_server_server_network activityList. appendItem $Activity_newServerActivity1 agent.config
DESCRIPTION
An HTTP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. The set of Web pages available through the server is described in the webPageList option, which references response headers held in the responseHeaderList option and cookies held in the cookieList.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. In addition, two subcommands are available to load certificates and private keys: importCertificate and importPrivateKey. importCertificate file Imports a certificate from a disk file, setting the certificate option with the result. For more information, see the description under HTTP Client Agent. importPrivateKey file This subcommand performs the same function, but for the private key. For more information, see the description under HTTP Client Agent.
OPTIONS
acceptSslConnections If true, the server will accept incoming SSL connections. (Default = false). piggybackAck If true, the server includes the ACK for the previous packet in the same packet as the next packet.. (Default = true). minResponseDelay

IxLoad Tcl API Programming Guide

781

HTTP
Minimum length of time, in milliseconds, that the HTTP server delays sending a response. maxResponseDelay
Maximum length of time, in milliseconds, that the HTTP server delays sending a response. privateKey
If the acceptSslConnections parameter is true, this parameter specifies a private key in ASCII PEM (Privacy Enhanced Mail) or binary (PKCS#12) format that is used to create a server private key. privateKeyPassword
If the privateKey is password-protected (PKCS#12 format), this parameter defines a password for retrieving the key. certificate
If the acceptSslConnections parameter is true, this parameter specifies a certifiin ASCII PEM (Privacy Enhanced Mail) format that is used to create a server certificate. enableDHsupport
Enables Diffie-Hellman support for DH keys and ADH or EDH ciphers. (Default = false). dhParams
If the EnableDH support option is selected, this parameter specifies the file that contains a DSA key and certificate. The DSA key is converted to a DH key that can be used in a DH key exchange with an SSL client when the selected cipher is ADH or EDH. ServerCiphers
Defines the server cipher which is one of these listed under Supported Ciphers. cookieList
This is a list of type ixConfigSequenceContainer used to hold objects of type ixCookieObject. The elements in this list describe the cookies that the server sends to clients. (Default = {}). docrootfile
Selects the file (zip or tar) that defines default directory path for actual files stored on the HTTP server. HTTP clients can retrieve these files. To retrieve the files specify in the pageObject option in the client's command list. docrootChunkSize
If enableChunkEncoding is true, this option defines the chunk size used for pages in the Docroot file. Specify this value as a min-max range. (Default = 521-1024) enable
Enables the use of this server agent. (Default = true). enableEsm
If true, the use of the esm option is enabled. (Default = false). enableTos

782

IxLoad Tcl API Programming Guide

HTTP

Enables the setting of the TOS (Type of Service) bits in the header of the HTTP packets. Use the tos option to specify the TOS bit setting.

0 (default) TOS bits not enabled. 1 TOS bits enabled.

esm
If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size is 1,460 bytes. (Default = 1,460).
enableMD5Checksum
If true, the server calculates checksums for the pages it sends to the client. See integrityCheckOption in HTTP Server Agent and MD5option in ixWebPageOb(Default = false).
enablePerServerPerURLstat
If true, the statistics from a returned page, records the server IP address from where the page is sent. (Default = false).
enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false).
vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value.
httpPort
The port number to which the HTTP server will respond to non-SSL requests. To specify multiple listening ports, enter the port numbers, separated by commas (,). You can specify up to 50 listening ports. (Default = 80).
httpsPort
The port number to which the HTTP server will respond to SSL requests. To specify multiple listening ports, enter the port numbers, separated by commas (,). You can specify up to 50 listening ports. (Default = 443).
integrityCheckOption
Type of checksum calculated for pages requested from the docroot file. In order to send checksums, enableMD5Checksum must be true. Valid values for this option are the following strings:

Option

Usage

IxLoad Tcl API Programming Guide

783

HTTP

Custom MD5

(Default) MD5 checksum in IxLoad-specific header.

Standard MD5

MD5 checksum in RFC 2616-compliant header.

Standard & Custom MD5 MD5 checksum in both IxLoad-specific and RFC-compliant headers

Disable MD5

No checksum is sent.

enableChunkEncoding
If true, Chunk Transfer-Encoding is enabled. (Default = false). name
The name associated with this object, which must be set at object creation. requestTimeout
The amount of time that the server will wait for input on an open connection before closing the session with a `408' error. The legal values are from 1 to 64,000 seconds. (Default = 300). responseHeaderList
This is a list of type ixConfigSequenceContainer used to hold objects of type ixResponseHeader. The elements in this list describe the responses of the Web server to requests--both returned page contents and other messages. (Default = {}). tcpCloseOption
This option helps the server to close connections. It accepts integer value. (Default = 0).

0 (Default) Connections are closed using three way handshake 1 Connections are closed by sending Reset (RST) segments instead of Finish (FIN) segments 2 Connections are closed using a four-way handshake

tos
If enableTos is true, this option specifies the IP Precedence / TOS (Type of Serbit setting and Assured Forwarding classes. (Default = "0"). The choices are:

0 (Default) (0x000) routine 32 (0x0020) priority service, Assured Forwarding class 1 64 (0x0040) immediate service, Assured Forwarding class 2 96 (0x0060) flash, Assured Forwarding class 3

784

IxLoad Tcl API Programming Guide

HTTP

128 (0x0080) flash-override, Assured Forwarding class 4
160 (0x00A0) critical-ecp
192 (0x00C0) internet-control
urlStatsCount
Number of URL statistics to display in Statistics (StatViewer) window. During a test, IxLoad displays statistics for one or more URLs in the Statistics window at the bottom of the main IxLoad window. You can use this field to restrict the number of per-URL statistics that are displayed, so that the window displays statistics only for the URLs that are most important to you. If you select a large number of URLs, the Statistics window can become difficult to read. Maximum = 1,000, (Default = 10).
webPageList
This is a list of type ixConfigSequenceContainer used to hold objects of type ixWebPageObject. The elements in this list describe the headers of the Web pages returned by the server. (Default = {}). customPayloadList
This is a list of type ixConfigSequenceContainer used to hold objects of type CustomPayloadObject. The elements in this list describe the payload of the Web pages returned by the server. (Default = {}). Two predefined CustomPayloadObjects exist, AsciiCustomPayload and HexCustomPayload.
STATISTICS

EXAMPLE

$Activity_HTTPServer1 agent.config \

-vlanPriority

0\

-maxResponseDelay

0\

-docrootChunkSize

"512-1024" \

-enablePerServerPerURLstat

0\

-enableEsm

0\

-certificate

"" \

-tos

0\

-enableMD5Checksum

false \

-httpPort

"80" \

-httpsPort

"443" \

IxLoad Tcl API Programming Guide

785

HTTP

-esm -enableTos -integrityCheckOption -enableChunkEncoding -privateKey -privateKeyPassword -urlStatsCount -tcpCloseOption -enableVlanPriority -docrootfile -dhParams -requestTimeout -ServerCiphers -acceptSslConnections -piggybackAck -enableDHsupport -minResponseDelay
SEE ALSO
ixCookieContent ixResponseHeader PageObject

1460 \ 0\ "Custom MD5" \ false \ "" \ "" \ 10 \ 0\ 0\ "" \ "" \ 300 \ "DEFAULT" \ 0\ true \ 0\ 0

786

IxLoad Tcl API Programming Guide

HTTP

ixCookieContent

ixCookieContent--Defines a cookie response for a Web page.

SYNOPSIS

$UserCookie cookieContentList.appendItem -object $lastName $Activity_newServerActivity1 agent.cookieList.appendItem -object $User

DESCRIPTION

The ixCookieContent command is used to construct a cookie response associated with a cookie,

described in a ixCookieObject. The list of cookie contents are normally added to a ixCookieObject

at the time of its creation.

set firstName [::IxLoad new ixCookieContent]$firstName config \-domain

"" \-name

"firstName" \-maxAge

"" \-value

"Joe" \-other

"" \-path

""$UserCookie cook-

ieContentList.appendItem -object $firstName

SUBCOMMANDS

The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
domain
The domain for which the cookie is valid. If omitted, it applies to the entire domain for the HTTP server. (Default = "").
maxAge
The lifetime of the cookie, in seconds. After the time elapses, the client should discard the cookie. A value of zero means the cookie should be discarded immediately. If blank, the cookie is discarded at the end of the browser session. (Default = ""). name
The name part of the name = value pair being defined. (Default = "name"). other
A comment associated with the cookie. (Default = ""). path
The subset of URLs to which this cookie applies. If omitted, it applies to all URLs for the server. (Default = "") value

IxLoad Tcl API Programming Guide

787

HTTP

The value part of the name = value pair being defined. (Default = "value").

EXAMPLE

set firstName [::IxLoad new ixCookieContent]$firstName config \-domain

"" \-name

"firstName" \-maxAge

"" \-value

"Joe" \-other

"" \-path

""$UserCookie cook-

ieContentList.appendItem -object $firstNameset lastName [::IxLoad new ixCook-

ieContent]$lastName config \-domain

"" \-name

"lastName" \-maxAge

"" \-value

"Smith" \-other

"" \-path

""$UserCookie cookieContentList.appendItem -object $lastName$Activity_newServer-

Activity1 agent.cookieList.appendItem -object $UserCookie

SEE ALSO

HTTP Server Agent

788

IxLoad Tcl API Programming Guide

HTTP

ixCookieObject
ixCookieObject--Defines a cookie.
SYNOPSIS
set HTTP_server_server_network [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$HTTP_server_server_network activityList.appendItem $Activity_newServerActivity1 agent.cookieList.appendItem -object $UserCookie

DESCRIPTION

The ixCookieObject command is used to construct a cookie for the server. The list of cookie contents

are normally added to a HTTP Server Agent at the time of its creation. set UserCookie [::IxLoad new CookieObject]$UserCookie config \-mode

3 \-type

2 \-name

"UserCookie" \-description

"Name of User"

The cookies are referenced by the actual Web page in an ixWebPageObject included in the webPageList option of the HTTP Server Agent.

SUBCOMMANDS

The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS

cookieContentList

This is a list of type ixConfigSequenceContainer used to hold objects of type ixCookieContent. The elements in this list describe the cookie contents associated with this cookie. (Default = {}).
description

A description for the cookie. (Default = ""). mode

Determines how the cookies in the cookie group should be handled by the HTTP server that receives them. One of:

Option
$::CookieObject (kModeIgnore)

Usage
Causes the server to discard these cookies when it receives them from the client. The IxLoad HTTP server does not add cookies received with this mode to its statistics. Therefore, the statistics for the number of cookies sent by the client will be greater than the number of cookies received by the IxLoad HTTP server.

IxLoad Tcl API Programming Guide

789

HTTP

$::CookieObject

Causes the server to return the cookies to the client in a Set-Cookie

(kModeReflectSetCookie1) format header.

$::CookieObject

Causes the server to return the received cookie data to the client in a

(kModeReflectSetCookie2) Set-Cookie2 format header.

$::CookieObject (kModeNormal)

(default) Causes the server to perform the functions described by the cookies.

name The name part of the cookie object being defined. (Default = "name"). readOnly Indicates that the cookie may not be deleted without resetting this flag. (Default = false) type The type of the cookie. One of:

Option

Usage

$::CookieObject(kTypeSetCookie1) Use the original cookie specification, as per RFC 2109. "1"

$::CookieObject(kTypeSetCookie2) (default) Use the cookie 2 specification, as per RFC 2965. "2"

EXAMPLE

set UserCookie [::IxLoad new CookieObject]$UserCookie config \-mode

3 \-type

2 \-name

"UserCookie" \-description

"Name of User"$UserCookie

cookieContentList.clear

SEE ALSO

HTTP Server Agent

790

IxLoad Tcl API Programming Guide

HTTP

ixResponseHeader
ixResponseHeader--Defines a response for a Web page.

SYNOPSIS
set HTTP_server_server_network [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$HTTP_server_server_network activityL options... $Activity_newServerActivity1 agent.responseHeaderList.appendItem options...

DESCRIPTION

The ixResponseHeader command is used to describe the responses of the Web server to request both

returned page contents and other messages. See the following example:

set 200_OK [::IxLoad new ResponseHeader]$200_OK config \-mimeType

"text/plain" \-expirationMode

0 \-code

"200" \-name

"200_OK" \-lastModifiedMode

1 \-lastModifiedIncrementEnable

false \-lastModifiedDateTimeValue

"2005/02/02 21:55:04" \-lastModifiedIncrementFor

1 \-

expirationDateTimeValue

"2005/03/04 21:55:04" \-

expirationAfterRequestValue

3600 \-expirationAfterLastModifiedValue

3600 \-lastModifiedIncrementBy

5 \-description

"OK"$200_OK responseList.clear

The response header referenced by the actual Web page in an ixWebPageObject included in the responseHeaderList option of the HTTP Server Agent.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
code
The number returned by response. HTTP response codes are defined in Section 10 of RFC 2616. (Default = "200").
description
A commentary description for the response. (Default = "OK"). expirationAfterLastModifiedValue
If expirationMode is set to "AfterLastModified," this is the number of seconds after the page's last modified value, at which time the page will expire. The last modified value is set in lastModifiedDateTimeValue, lastModifiedIncrementEnable, lastModifiedIncrementBy, and lastModifiedIncrementFor options. . (Default = 3,600). expirationAfterRequestValue

IxLoad Tcl API Programming Guide

791

HTTP

If expirationMode is set to "AfterRequest," this is the number of seconds after which the page will expire. (Default = 3,600).
expirationDateTimeValue
If expirationMode is set to "DateTime," this is the date and time at which the page will expire. The format of this field is "YYYY/MM/DD HH:MM:SS." For example, "2004/12/31 23:59:59." (Default = "2004/12/31 23:59:59").
expirationMode
The means by which the page's expiration is published. One of:

Option

Usage

$::ResponseHeader (kExpirationModeNever)

(Default) The page never expires.

$::ResponseHeader (kExpirationModeDateTime)

The page expires after a certain date and time, specified in e.

$::ResponseHeader (kExpirationModeAfterRequest)

The page expires after a certain amount of time, specified in e.

$::ResponseHeader

The page expires after a certain amount of time following the

(kExpirationModeAfterLastModified) last modified date and time, specified in e.

lastModifiedDateTimeValue
If lastModifiedMode is set to "DateTime," then this is the value to be returned for the last modified date/time. This value may be incremented for subsequent responses through use of the lastModifiedIncrementEnable, lastModifi and lastModifiedIncrementFor options. (Default = "2004/12/31 23:59:59").
lastModifiedIncrementBy
If lastModifiedMode is set to "DateTime" and lastModifiedIncrementEnable is set to true, then this is the number of seconds to increment the lastModifiedDateTimeValue(Default = 5).
lastModifiedIncrementEnable
If lastModifiedMode is set to "DateTime," this option enables the incrementing of lastModifiedDateTimeValue by lastModifiedIncrementBy as modified by l. (Default = false).
lastModifiedIncrementFor
If lastModifiedMode is set to "DateTime" and lastModifiedIncrementEnable is set to true, then this is the number of times that the page is referenced before the last modified date/time is incremented as specified in lastModifiedIncrementBy. (Default = 1).
lastModifiedMode
This option determines if and how the last modified field will be published for the page. One of:

792

IxLoad Tcl API Programming Guide

HTTP

Option

Usage

$::ResponseHeader (kLastModifiedModeNever)

(Default) No last modification time is pub

$::ResponseHeader

A last modification date/time is published as specified in lastModi-

(kLastModifiedModeDateTime) fiedDateTimeValue, lastModifiedIncrementEnable, lastModi-

fiedIncrementBy, and lastModifiedIncrementFor.

mimeType

The MIME type for the page. The types: "text/plain," "text/html," and "text/xml" are predefined, but any legal type may be set. (Default = "text/plain").
name

The name of the response. (Default = "200_OK"). responseList

A list of additional headers, to be sent with the response. This list is of type ixConfigSequenceContainer; items are added to the list via the appendItem sub-command. Each element of the list must be of the form "key: value" where key is a value HTTP header key. (Default = {}).

Items are added to this list using the -data option. See the following example: $responseHeader responseList.appendItem -data "key1:value1"

You can also include variables in this parameter. See Using Sequence Generators in HTTP Client Commands and Server Header Name=Value Fields on page 6-57.

EXAMPLE

set 200_OK [::IxLoad new ResponseHeader]$200_OK config \-mimeType

"text/plain" \-expirationMode

0 \-code

"200" \-name

"200_OK" \-lastModifiedMode

1 \-lastModifiedIncrementEnable

false \-lastModifiedDateTimeValue

"2005/02/02 21:55:04" \-lastModifiedIncrementFor

1 \-

expirationDateTimeValue

"2005/03/04 21:55:04" \-

expirationAfterRequestValue

3600 \-expirationAfterLastModifiedValue

3600 \-lastModifiedIncrementBy

5 \-description

"OK"$200_OK responseList.clear

SEE ALSO

HTTP Server Agent PageObject

IxLoad Tcl API Programming Guide

793

HTTP
PageObject
ixWebPageObject --Defines a Web page supported by an HTTP Server Agent.
SYNOPSIS
set HTTP_server_server_network [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$HTTP_server_server_network activityLoptions... $Activity_newServerActivity1 agent.webPageList.appendItem options...
DESCRIPTION
The PageObject command is used to describe the Web pages that are available from the Web server, along with the response header described in ixResponseHeader and cookie described in ixCookieContent. See the following example: set my_PageObject [::IxLoad new PageObject]$my_PageObject config \
-Md5Option "0" \ -payloadType"range" \ -payloadFile"<specify file>" \ -page"/1b.html" \ -payloadSize "1-1" \ -customPayloadId -1 \ -response$200_OK $Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageObject
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
cookie This option links to an element in the cookieList of the enclosing HTTP Server Agent. It should match the contents of the name field of one of the ixCookieContent members of that list. (Default = ""). response This option links to an element in the responseHeaderList of the enclosing HTTP Server Agent. It should match an ixResponseHeader object. (Default = ""). chunkSize

794

IxLoad Tcl API Programming Guide

HTTP

If enableChunkEncoding is true (in HTTP Server Agent), this option defines the chunk size used for the page, in bytes. (Default = "1").
Md5Option
Type of checksum generated for page object and sent along with page data to the client. In order to send checksums, enableMD5Checksum in the HTTP Server Agent must be true. The valid values for this option are:

Option Usage

0

(Default) Custom MD5. MD5 checksum in IxLoad-specific header.

1

Standard MD5. MD5 checksum in RFC 2616-compliant header.

2

Standard & Custom MD5. MD5 checksum in both IxLoad-specific and RFC-compliant head-

ers

3

Disable MD5. No checksum is sent.

page
The URL of the HTML page that clients can retrieve from the HTTP Server Agent. The path is relative to the root directory of the Ixia server port. You can enter an asterisk (*) at any point on the path, and the server will treat it as a match for any number of directories.
For example, if you configure the page's URL as /home/liesl/*/pup.html, a server would serve the page if it received any of the following GET requests:
/home/liesl/pics/pup.html /home/liesl/0/temp/pup.html /home/liesl/pup.html (Default = "/newPage.html").
payloadFile
If payloadType is set to "file," this field specifies the file that will be returned. Make sure to specify the entire path to the file in this specification. Also note that the directory separator `\' must be represented as `\\' within the string. (Default = "<specify file>").
If payloadType is set to "customPayload", this field specifies an existing custom payload type or a new one.
payloadSize
If payloadType is set to "range," this field specifies the amount of data returned. Specify the size of the data as a minimum size and a maximum size. For example, to specify a minimum size of 1,024 bytes and a maximum of 2,048, specify 1,024-2,048. To specify a single fixed amount of data, specify the a single value. (Default = 4,096).
payloadType

IxLoad Tcl API Programming Guide

795

HTTP

Indicates the type of payload that will be returned for this page reference. One of:

Option

Usage

$::PageObject

(Default) Causes the Server Agent to generate data automatically. The

(kPayloadTypeRange) value in payloadSize indicates the amount of data to return.

or "range"

$::PageObject (kPayloadTypeFile) or "file"

Causes the Server Agent to return the actual file indicated in the payloadFile option. See Using Your Own Web Pages In IxLoad for instructions on making your own pages available on the Server Agent.

"customPayload"

Causes the server to return a response that contains syn(generated) data that includes a payload that you create. Specify the payload in the payloadFile option.

EXAMPLE

set my_PageObject [::IxLoad new PageObject]$my_PageObject config \-payloadType

"range" \-payloadFile

"<specify file>" \-page

"/1b.html" \-payloadSize

"1-1" \-response

$200_OK$Activity_newServerActivity1 agent.webPageList.appendItem -object $my_PageOb-

ject

SEE ALSO

HTTP Server Agent

ixResponseHeader

ixCookieContent

796

IxLoad Tcl API Programming Guide

HTTP
CustomPayloadObject
CustomPayloadObject --Defines a custom payload object. A custom payload can contain up to 4096 bytes of ASCII or hexadecimal data.
SYNOPSIS
set HTTP_server_server_network [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$HTTP_server_server_network activityList.appendItem options... $Activity_HTTPServer1 agent.customPayloadList.appendItem -object $AsciiCustomPayload...
DESCRIPTION
The CustomPayloadObject is used to configure a custom payload object. This object is declared in the payloadFile option of ixWebPageObject.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
repeat This field determines how often the custom payload appears in the payload space. If set to true, IxLoad divides the total payload space into 4096-byte blocks, and inserts the custom payload into the first block and into all subsequent 4096-byte blocks. If the custom payload is shorter than 4096 bytes, IxLoad pads the remaining space with zeroes (0). If set to false, IxLoad inserts the custom payload once, either at the beginning of the payload space or at offset value. If the custom payload is shorter than the total payload space, IxLoad pads the remaining space with generated data (the same type of data that would be generated if you set payloadType to Range). name This indicates the name of the customPayloadObject. asciiPayloadValue According to the option specified in payloadMode, this option accepts the custom payload value in ASCII. payloadMode Specifies 0 (ASCII) or 1 (hexadecimal) value. offset

IxLoad Tcl API Programming Guide

797

HTTP

Defines the number of bytes from the beginning of the payload field where the payload is inserted. hexPayloadValue According to the option specified in payloadMode, this option accepts the custom payload value in hexadecimal. payloadPosition This can be one of: startWith: inserts a payload at the beginning of the payload field of the response. endWith: inserts a payload at the end of the payload field. insertAtMiddle: inserts a payload at a location within the payload field.

EXAMPLE

set my_PageObject1 [::IxLoad new PageObject]$my_PageObject1 config \-payloadType

"customPayload" \-payloadFile

"AsciiCustomPayload" \-

page

"/4k.html" \-payloadSize

"4096-4096" \-customPayloadId

0 \-response

$200_OK1$Activity_HTTPServer1 agent.webPageList.appendItem -object $my_

PageObject1set AsciiCustomPayload [::IxLoad new CustomPayloadObject]$As-

ciiCustomPayload config \-repeat

false \-name

"AsciiCustomPayload" \-asciiPayloadValue

"Ixia-Ixload-Http-

Server-Custom-Payload" \-payloadmode

0 \-offset

1 \-hexPayloadValue

"" \-payloadPosition

"Start With" \-id

0$Activity_HTTPServer1 agent.-

customPayloadList.appendItem -object $AsciiCustomPayload

SEE ALSO

HTTP Server Agent PageObject

798

IxLoad Tcl API Programming Guide

HTTP

Supported Ciphers

The following ciphers are supported by IxLoad HTTPS clients and servers. SSL 2.0 Cipher Suites
Cipher Suite Description

RC4-MD5

RC4 data encryption using 128-bit keys and MD5 message digest.

EXP-RC4MD5

Export version of RC4-MD4 using 40-bit keys.

IDEA-CBCMD5

IDEA data encryption using 128-bit keys with Cipher Block Chaining and MD5 message digest.

DES-CBCMD5

DES data encryption using 64-bit keys with Cipher Block Chaining and MD5 message digest.

DES-CBC3MD5

Triple-DES data encryption using 192-bit keys with Cipher Block Chaining and MD5 message digest.

SSL 3.0 Cipher Suites

Cipher Suite

Description

NULL-MD5

No data encryption, MD5 message digest.

NULL-SHA

No data encryption, SHA-1 message digest.

EXP-RC4-MD5

Export version of RC4-MD5 using 40-bit keys.

RC4-MD5

RC4 data encryption using 128-bit keys and MD5 message digest.

RC4-SHA
EXP-RC2-CBCMD5

RC4 data encryption using 128-bit keys and SHA-1 message digest.
Exportable cipher using RC2 data encryption with 40-bit keys, Cipher Block Chaining, and MD5 message digest.

IDEA-CBC-SHA
EXP-DES-CBCSHA DES-CBC-SHA

IDEA encryption with Cipher Block Chaining, RSA authentication, and SHA-1 message digest. Export version of DES-CBC-SHA using 40-bit keys.
DES encryption using 168-bit keys, Cipher Block Chaining, RSA authentication, and SHA-1 message digest.

IxLoad Tcl API Programming Guide

799

HTTP

DES-CBC3-SHA
EXP-EDH-DSSDES-CBC-SHA EDH-DSS-DESCBC3-SHA

Triple-DES encryption using 168-bit keys, Cipher Block Chaining, and SHA-1 message digest. Export version of EDH-DSS-DES-CBC-SHA using 40-bit keys.
Ephemeral Diffie-Hellman key exchange with DSS authentication, Triple-DES encryption with Cipher Block Chaining, and SHA-1 message digest.

EXP-EDH-RSADES-CBC-SHA
EDH-RSA-DESCBC-SHA

Export version of EDH-RSA-DES-CBC-SHA using 40-bit keys.
DES encryption with Cipher Block Chaining, RSA authentication, Ephemeral Diffie-Hellman key exchange, and SHA-1 message digest.

EDH-RSA-DESCBC3-SHA
EXP-ADH-RC4MD5
EXP-ADH-DESCBC-SHA
ADH-DES-CBCSHA

Triple-DES encryption with Cipher Block Chaining, RSA authentication, Ephemeral Diffie-Hellman key exchange, and SHA-1 message digest.
Exportable cipher using RC4 encryption with 40-bit keys, Anonymous Diffie-Hellman key exchange, and MD5 message digest.
Export version of ADH-DES-CBC-SHA using 40-bit keys.
DES encryption with Cipher Block Chaining, Anonymous Diffie-Hellman key exchange, and SHA-1 message digest.

ADH-DES-CBC3- Triple-DES encryption with Cipher Block Chaining, Anonymous Diffie-Hellman

SHA

key exchange, and SHA-1 message digest.

EXP1024-DESCBC-SHA

Exportable cipher with DES encryption and Cipher Block Chaining, RSA authentication, and SHA-1 message digest.

EXP1024-RC4SHA

Exportable cipher with RC4 encryption, RSA authentication, and SHA-1 message digest.

EXP1024-DHEDSS-DES-CBCSHA

Exportable cipher with DES encryption and Cipher Block Chaining, Ephemeral Diffie-Hellman key exchange, DSS authentication, and SHA-1 message digest.

EXP1024-DHEDSS-RC4-SHA

Exportable cipher with RC4 encryption, DSS authentication, Ephemeral DiffieHellman key exchange, and SHA-1 message digest.

DHE-DSS-RC4SHA

RC4 encryption using 128-bit keys, DSS authentication, Diffie-Hellman key exchange, and SHA-1 message digest.

TLS 1.0 Cipher Suites

800

IxLoad Tcl API Programming Guide

HTTP

Cipher Suite NULL-MD5
NULL-SHA EXP-RC4-MD5 RC4-MD5
RC4-SHA
EXP-RC2-CBCMD5
IDEA-CBC-SHA
EXP-DES-CBCSHA DES-CBC-SHA
DES-CBC3-SHA
EXP-EDH-DSSDES-CBC-SHA
EDH-DSS-DESCBC3-SHA EXP-EDH-RSADES-CBC-SHA EDH-RSA-DESCBC-SHA EDH-RSA-DESCBC3-SHA EXP-ADH-RC4MD5

Description
No encryption, RSA authentication and MD5 message digest.
No encryption, RSA authentication and SHA-1 message digest.
Export version of RC4-MD5.
RC4 encryption using 128-bit keys, RSA authentication, and MD5 message digest.
RC4 encryption using 128-bit keys, RSA authentication, and SHA-1 message digest.
Exportable cipher with RC2 encryption using 40-bit keys and Cipher Block Chaining, RSA authentication, and MD5 message digest.
IDEA encryption with Cipher Block Chaining, RSA authentication, and MD5 message digest.
Export version of DES-CBC-SHA using 40-bit keys.
DES encryption with Cipher Block Chaining, RSA authentication, and SHA-1 message digest.
Triple-DES encryption with Cipher Block Chaining, RSA authentication, and SHA-1 message digest.
Exportable cipher with DES encryption using 40-bit keys and Cipher Block Chaining, DSS authentication, and SHA-1 message digest.
Triple-DES encryption with Cipher Block Chaining, DSS authentication, Ephemeral Diffie-Hellman key exchange, and SHA-1 message digest.
Exportable cipher with DES encryption using 40-bit keys and Cipher Block Chaining, RSA authentication, and SHA-1 message digest.
DES encryption with Cipher Block Chaining, RSA authentication, Ephemeral Diffie-Hellman key exchange, and SHA-1 message digest.
Triple-DES encryption with Cipher Block Chaining, RSA authentication, Ephemeral Diffie-Hellman key exchange, and SHA-1 message digest.
Export version of ADH-RC4-MD5.

IxLoad Tcl API Programming Guide

801

HTTP

ADH-RC4-MD5
EXP-ADH-DESCBC-SHA ADH-DES-CBCSHA

RC4 encryption with 128-bit keys, Anonymous Diffie-Hellman key exchange, and MD5 message digest. Export version of ADH-DES-CBC-SHA using 40-bit keys.
DES encryption with Cipher Block Chaining, Anonymous Diffie-Hellman key exchange, and SHA-1 message digest.

ADH-DES-CBC3SHA

Triple-DES encryption with Cipher Block Chaining, Anonymous Diffie-Hellman key exchange, and SHA-1 message digest.

EXP1024-DESCBC-SHA

Exportable cipher with DES encryption and Cipher Block Chaining, RSA authentication, and SHA-1 message digest.

EXP1024-RC4SHA

Exportable cipher using RC4 encryption with 56-bit keys, RSA authentication, and SHA-1 message digest.

EXP1024-DHEDSS-DES-CBCSHA

Exportable cipher using DES encryption and Cipher Block Chaining, Diffie-Hellman key exchange, and SHA-1 message digest.

EXP1024-DHEDSS-RC4-SHA

Export version of DHE-DSS-RC4-SHA using 56-bit keys.

DHE-DSS-RC4SHA

RC4 encryption with 128-bit keys, DSS authentication, Diffie-Hellman key exchange, and SHA-1 message digest.

Ciphers Selected from the Generic Ciphers List

Cipher Attrib- Selected Cipher Suite ute

DEFAULT

Default list of cipher suites. Includes all cipher suites with the following attributes, listed in order of decreasing preference:
1. ALL cipher suites (see below). 2. Cipher suites without ADH key exchange (you cannot add ADH ciphers to the
list separately). 3. Cipher suites with RC4 encryption and RSA authentication.
SSL v2 cipher suites.

ALL

Includes all cipher suites except those in the eNULL suite.

HIGH MEDIUM

Cipher suites with keys larger than 128 bits. Cipher suites with 128-bit keys.

802

IxLoad Tcl API Programming Guide

HTTP

LOW

Cipher suites with 40- or 56-bit keys, but not including exportable cipher suites.

EXP,EXPORT Exportable cipher suites.

EXPORT40 Exportable cipher suites with 40-bit keys.

EXPORT56 Exportable cipher suites with 56-bit keys.

eNULL,NULL Cipher suites with no encryption.

aNULL

Cipher suites with anonymous key exchange (Anonymous Diffie-Hellman).

kRSA,RSA kEDH

Cipher suites with RSA key exchange. Cipher suites with Ephemeral Diffie-Hellman key exchange.

aRSA aDSS,DSS TLSv1 SSLv3 SSLv2 DH
ADH 3DES DES

Cipher suites with RSA authentication. Cipher suites with DSS authentication. TLS v.1 cipher suites. SSL v.3 cipher suites. SSL v.2 cipher suites. Cipher suites with Diffie-Hellman key exchange (including Anonymous Diffie-Hellman). Cipher suites with Anonymous Diffie-Hellman key exchange. Cipher suites with Triple-DES encryption. Cipher suites with DES encryption (not including those with Triple-DES).

RC4 RC2 IDEA MD5 SHA1,SHA

Cipher suites with RC4 encryption. Cipher suites with RC2 encryption. Cipher suites with IDEA encryption. Cipher suites with MD5 message digest. Cipher suites with SHA-1 message digest.

IxLoad Tcl API Programming Guide

803

HTTP
Using Sequence Generators in HTTP Client Commands and Server Header Name=Value Fields
Several HTTP fields allow you to include variables in order to generate large numbers of different objects such as page names or HTTP header values.
If the destination of an HTTP client command is an IxLoad HTTP server, you can insert variables into the Page/Object fields to cause the HTTP server to return dynamically-generated pages with unique names.
l You can use the following variables: l Numbers 0-9 l Letters A-Z and a-z
The letter variables are case-sensitive; IxLoad considers the variable strings "AA" and "aa" to be different.
You can combine the variables with fixed text to create the page names. For example, you can enter page[00-] to create a range of unique user names that begin with the characters "page" (page00, page01, and so on).
To insert the variables into a field, enclose them in square brackets ( [ ] ). To specify a range, separate the minimum and maximum values with a hyphen (-). For example, [00-10] specifies a range of 00 through 10.
The number of variables you insert determines the width of the generated strings. For example, the variable "00" can generate the strings 00 - 99. The variable string "000" can generate the strings 000 999.
Similarly, "AA" can generate strings that consist of all the two-letter combinafrom AA to zz. "AAA" can generate strings that consist of all the three-letcombinations from AAA to zzz.
You can use a single variable string and allow IxLoad to generate strings up the maximum value of the string or, you can use two variable strings together to restrict the generated strings to a certain range.
See the following example:
[0- ] will generate all the values 0 - 9 (0, 1, 2, 3 . . . 9). [0-5] will generate all the values 0 - 5.
[00- ] will generate all the values 00 - 99 (00, 01, 02, 03. . .97, 98, 99). [00-50] will generate all the values 0 - 50.
[A- ] will generate all the values A - z (A, B, C . . . z). [A-K] will generate all the values A - K.
[AA- ] will generate all the values AA - zz (AA, AB, AC. . zx, zy, zz). [AA-KK] will generate all the values AA - KK.

804

IxLoad Tcl API Programming Guide

HTTP

When IxLoad has generated the final string, if the test configuration requires additional strings, IxLoad returns to the starting value of the variable and continto generate strings until no more are required. In this case, the generated strings will not be unique.
If you include more than one variable, the number of unique pages IxLoad generis equivalent to the multiple of the maximum values of all the variables. For example, if you specify the page name as:
Page[01-10]_of_[01-99].
the IxLoad server can potentially generate 990 (10*99) unique pages with names "Page01_of_01" through "Page10_of_99." The server will only generate all the pages if it receives requests for all of them from clients.
Note: If you include multiple variables, the start and end fields must be the same width.

You can also configure the HTTP server to include wildcards in page names. For example, you can configure the server for a Web page named "Page*_of_*" where '*' is considered to be the wildcard. A client that used the variables in the previous example would receive all the pages requested.

Using System Variables

In addition to the letter and number variables, there are several system variables you can use. If you include the system variables in a page name, IxLoad replaces the system variable with the appropriate value from the current test configuraYou can use the letter, number, and system variables with HTTP name = value arguments.
You specify the system variables by enclosing them in parentheses (). Like the letter number variables, you must use the system variables in the page name in the URL, not in the path. Table 6-15 describes the system variables. System Variables for Use in Page Names

System Vari- Description able

($port-id)

ID of the Ixia port that the client is running on. When the IxLoad HTTP server returns the page, it expands ($port-id) into <ChassisCard-Port>.

($user-id)

Integer value representing the user that the client is simulating.

($sourceipint)

Integer representation of the source IP address of the simulated user. For 128-bit IPv6 addresses, this is in the format of four integers of the form int-int-int-int.

IxLoad Tcl API Programming Guide

805

HTTP

($sourceip) Source IP address, in dotted-decimal format, of the simulated user.

($sourceport)

TCP session Source port. Note: You must use ($sourceport) only in the page name portion of the URL, not in the path. See the following example: Correct: /dir/filename($sourceport).html Incorrect: /dir($sourceport)/filename.html

Example 1
http://ixiacom.com/page($sourceip)-($sourceport).html
If this page was retrieved by client 1 from source IP 192.168.1.1 and source port 3589, the page that would be returned would be: http://ixiacom.com/page192.168.1.1-3589.html
If the same command was used by a different client from source IP 192.168.2.10 and source port 46990, the page that would be returned would be: http://ixiacom.com/page192.168.2.10-46990.html
Example 2
Suppose that a command uses the POST/GET method with a name=value argument of: ?user=customer($user-id)&password=pwd&clientport=($sourceport)
Then the command list: POST/GET, servername, myfile.html, argument
could expand to: POST/GET, servername, myfile.html, ?user=customer1&pass
for the first simulated user, and to: POST/GET, servername, myfile.html, ?user=customer99&pass
for the 99th simulated user.
Example 3
Suppose that you needed to use a GET command to generate unique user names and passwords for a use on a login page. You could create a page URL of: http://server/login.html?user=user($port-id)_($user-id)&password=pwd

806

IxLoad Tcl API Programming Guide

HTTP
IxLoad expands ($port-id) to chassis-card-port and ($user-id) to the ID of the simulated user on the port. The pages retrieved might be: http://server/login.html?user=user0-1-1_11&password=pwdhttp://server/login.html?user=user0-1-2_47&password=pwd A command that uses ($port-id) and ($user-id) in this way ensures that the user names generated are unique throughout all the ports used in the test.
Statistics
The HTTP statistics are listed in this section.

HTTP Server Statistics
The table below describes the statistics that IxLoad records for the HTTP servers. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.
The test results are available from the location defined on the User Directories window. See User Directories.

Statistic

Description

HTTP Requests Received

Number of HTTP requests received by the servers. The statistics show the number of requests for each URL (page).

HTTP

Number of complete and positive HTTP responses (2xx- and 3xx-range responses)

Requests Suc- sent to the clients. The statistics show the number of requests for each URL (page).

cessful

HTTP Requests Failed

Number of HTTP requests from the clients that failed for any reason. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (404)

Number of HTTP requests that failed due to missing files (error 404). The statistics show the number of requests for each URL (page)

HTTP Requests Failed (50x)

Number of HTTP requests that failed due to lack of resources (500-series errors). The statistics show the number of requests for each URL (page).

IxLoad Tcl API Programming Guide

807

HTTP

HTTP Requests Failed (Write Error)

Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Aborted)

Number of HTTP requests that failed because the HTTP transaction was aborted. The statistics show the number of requests for each URL (page).

HTTP Sessions Rejected (503)

Service Unavailable. Number of HTTP sessions that could not be established due to lack of resources on the server.

HTTP Sessions Timeouts (408)

Number of HTTP 408 responses sent. This statistic includes all 408 responses sent regardless of whether they were received for a pending HTTP request or not.
IxLoad counts 408 responses differently depending on whether or not a client has a pending HTTP request:
If a client has an HTTP request pendand it receives a 408 response, IxLoad increments the HTTP Received 408, HTTP Requests Failed (4xx), and HTTP Requests Failed statistics.
If a client does not have an HTTP request pending and it receives a 408 response, IxLoad only increthe HTTP Received 408 statistic.

HTTP Transactions Active

Number of HTTP transactions transferring HTTP commands or data.

HTTP Responses Sent (1xx)

Number of 100-series responses sent. 100-series responses indicate a provisional response, consisting only of the StatusLine and optional headers, and is terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (2xx)

Number of 200-series responses sent. 200-series responses indicate that the client's request was successfully received, understood, and accepted. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (3xx)

Number of 300-series (Redirection) responses sent. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request. Refer to RFC 2616, Section 10, for a full description.

808

IxLoad Tcl API Programming Guide

HTTP

HTTP Responses Sent (4xx)

Number of 400-series (Bad Request) responses received. 400-series responses indicate that the request could not be understood by the server due to malformed syntax. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (5xx)

Number of 500-series (Server Error) responses sent. 500-series responses indicate that the server is aware that it has erred or is incapable of performing the request. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (Other)

Number of responses sent that were not 100-, 200-, 300-, 400-, or 500-series responses.

Throughput Statistics

HTTP Bytes Received

Number of HTTP bytes received by the servers.
If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic due to increases caused by retransmits.
SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not.

HTTP Bytes Sent

Number of HTTP bytes sent by the servers.
If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic (increased by retransmits) or less than this statistic (decreased by broken or reset connections).
SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not.

HTTP Content Number of bytes received that were HTTP content. Bytes Received

HTTP Content Number of bytes sent that were HTTP content. Bytes Sent

Cookie Statistics

HTTP Cook- Number of cookies received by the server. ies Received

HTTP Cookies Sent

Number of cookies sent by the server.

IxLoad Tcl API Programming Guide

809

HTTP

HTTP Cookies Received With Matching ServerID

Number of cookies received in which the server ID matched the server name.
Server IDs are unique per Ixia port, and can be sent in a cookie as a VALUE for a server NAME in a NAME=VALUE pair. The servers track these IDs, and when a server NAME received from a client matches one tracked by the server, the server tries to match the server ID that was sent as the VALUE.

HTTP Cookies Received With Nonmatching ServerID

Number of cookies received in which the server ID did not match the server name.

Transfer Encoding Statistics

HTTP Chunked Encoded Responses Sent

Number of HTTP responses sent that used chunked-transfer encoding.

HTTP Total

Total number of chunked-transfer chunks sent.

Chunks Sent

Content-MD5 Statistics

HTTP Content-MD5 Requests Received

Number of requests received that included Content-MD5 headers.

HTTP Content-MD5 Check Successful

Number of requests for which the MD5 checksum calculated by the server matched the checksum in the requests' Content-MD5 header.

HTTP Content-MD5 Check Failed

Number of requests for which the MD5 checksum calculated by the server did not match the checksum in the requests' Content-MD5 header.

810

IxLoad Tcl API Programming Guide

HTTP

HTTP Server Conditional View Statistics
The table below describes the conditional view statistics that IxLoad records for the HTTP servers. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.
The test results are available from the location defined on the User Directories window. See User Directories.
The QoE Detective column in the table indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

HTTP TCP Con- IP, VLAN nections Accepted

Number of requests to establish TCP connections accepted by the server. This statistic is only available in QoE Detective view.

HTTP TCP Con- IP, VLAN nections Closed

Number of TCP connections that ended normally. This statistic is only available in QoE Detective view.

HTTP TCP Con- IP, VLAN nections Failed

Number of TCP connections that did ended abnormally, for any reason. This statistic is only available in QoE Detective view.

HTTP TCP Connections Failed Due to Socket Error

IP, VLAN

Number of TCP connections that did ended abnormally due to a socket error. This statistic is only available in QoE Detective view.

IxLoad Tcl API Programming Guide

811

HTTP

HTTP Server Sessions Timeouts (408)

IP, VLAN

Number of HTTP 408 responses sent. This statistic includes all 408 responses sent regardless of whether they were received for a pending HTTP request or not.
IxLoad counts 408 responses differently depending on whether or not a client has a pending HTTP request:
If a client has an HTTP request pendand it receives a 408 response, IxLoad increments the HTTP Received 408, HTTP Requests Failed (4xx), and HTTP Requests Failed statistics.
If a client does not have an HTTP request pending and it receives a 408 response, IxLoad only increthe HTTP Received 408 statistic.

HTTP Server Sessions Rejected (503)

IP, VLAN Service Unavailable. Number of HTTP sessions that could not be established due to lack of resources on the server.

HTTP Server Requests Received

IP, VLAN Number of HTTP requests received by the servers. The statistics show the number of requests for each URL (page).

HTTP Server IP, VLAN Requests Successful

Number of complete and positive HTTP responses (2xx- and 3xx-range responses) sent to the clients. The statistics show the number of requests for each URL (page).

HTTP Server Responses Sent (1xx)

IP, VLAN

Number of 100-series responses sent. 100-series responses indicate a provisional response, consisting only of the Status-Line and optional headers, and is terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.

HTTP Server Responses Sent (2xx)

IP, VLAN

Number of 200-series responses sent. 200-series responses indicate that the client's request was successfully received, understood, and accepted. Refer to RFC 2616, Section 10, for a full description.

HTTP Server Responses Sent (3xx)

IP, VLAN

Number of 300-series (Redirection) responses sent. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request. Refer to RFC 2616, Section 10, for a full description.

HTTP Server Responses Sent (4xx)

IP, VLAN

Number of 400-series (Bad Request) responses received. 400-series responses indicate that the request could not be understood by the server due to malformed syntax. Refer to RFC 2616, Section 10, for a full description.

812

IxLoad Tcl API Programming Guide

HTTP

HTTP Server Responses Sent (5xx)
HTTP Server Responses Sent (Other)
HTTP Server Requests Failed
HTTP Server Requests Failed (404)
HTTP Server Requests Failed (50x)
HTTP Server Requests Failed (Write Error)
HTTP Server Bytes Received
HTTP Server Bytes Sent

IP, VLAN

Number of 500-series (Server Error) responses sent. 500-series responses indicate that the server is aware that it has erred or is incapable of performing the request. Refer to RFC 2616, Section 10, for a full description.

IP, VLAN Number of responses sent that were not 100-, 200-, 300-, 400-, or 500series responses.

IP, VLAN Number of HTTP requests from the clients that failed for any reason. The statistics show the number of requests for each URL (page).

IP, VLAN Number of HTTP requests that failed due to missing files (error 404). The statistics show the number of requests for each URL (page)

IP, VLAN

Number of HTTP requests that failed due to lack of resources (500series errors). The statistics show the number of requests for each URL (page).

IP, VLAN Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).

IP, VLAN

Number of HTTP bytes received by the servers.
If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic due to increases caused by retransmits.
SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not.

IP, VLAN

Number of HTTP bytes sent by the servers.
If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic (increased by retransmits) or less than this statistic (decreased by broken or reset connections).
SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not.

IxLoad Tcl API Programming Guide

813

HTTP

HTTP Server Transactions Active

IP, VLAN Number of HTTP transactions transferring HTTP commands or data.

HTTP Server IP, VLAN Number of cookies sent by the server. Cookies Sent

HTTP Server Cookies Received

IP, VLAN Number of cookies received by the server.

HTTP Server Cookies Received With Matching ServerID

IP, VLAN

Number of cookies received in which the server ID matched the server name.
Server IDs are unique per Ixia port, and can be sent in a cookie as a VALUE for a server NAME in a NAME=VALUE pair. The servers track these IDs, and when a server NAME received from a client matches one tracked by the server, the server tries to match the server ID that was sent as the VALUE.

HTTP Server Cookies Received With Non-matching ServerID

IP, VLAN

Number of cookies received in which the server ID did not match the server name.

HTTP Server Content Bytes Received

IP, VLAN

Number of bytes received that were HTTP content.

HTTP Server Content Bytes Sent

IP, VLAN

Number of bytes sent that were HTTP content.

HTTP Server per-URL Statistics
The table below describes the statistics that IxLoad records for the HTTP servers. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.
The test results are available from the location defined on the User Directories window. See User Directories.

814

IxLoad Tcl API Programming Guide

HTTP

Statistic

Description

The following statistics are available only for the first `N' distinct URLs configured in the list of HTTP Server Web Pages, where `N' is the value for `Max Number of URLs' in the `Per URL Stat Settings' on the HTTP Server's Advanced Options tab.

HTTP Requests Received

Number of HTTP requests received by the servers. The statistics show the number of requests for each URL (page).

HTTP Requests Successful

Number of complete and positive HTTP responses (2xxand 3xx-range responses) sent to the clients. The statistics show the number of requests for each URL (page).

HTTP Requests Failed

Number of HTTP requests from the clients that failed for any reason. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (404)

Number of HTTP requests that failed due to missing files (error 404). The statistics show the number of requests for each URL (page)

HTTP Requests Failed (50x)

Number of HTTP requests that failed due to lack of resources (500-series errors). The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Write Error)

Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).

HTTP Responses Sent

Total number of HTTP responses of all types sent.

HTTP Responses Sent (1xx)

Number of 100-series responses sent. 100-series responses indicate a provisional response, consisting only of the Status-Line and optional headers, and is terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (2xx)

Number of 200-series responses sent. 200-series responses indicate that the client's request was successfully received, understood, and accepted. Refer to RFC 2616, Section 10, for a full description.

IxLoad Tcl API Programming Guide

815

HTTP

HTTP Responses Sent (3xx)

Number of 300-series (Redirection) responses sent. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (4xx)

Number of 400-series (Bad Request) responses received. 400-series responses indicate that the request could not be understood by the server due to malformed syntax. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (5xx)

Number of 500-series (Server Error) responses sent. 500-series responses indicate that the server is aware that it has erred or is incapable of performing the request. Refer to RFC 2616, Section 10, for a full description.

HTTP Responses Sent (Other)

Number of responses sent that were not 100-, 200-, 300-, 400-, or 500-series responses.

HTTP Chunked Encoded Responses Sent Number of HTTP responses sent that used chunked-transfer encoding.

HTTP Total Chunks Sent

Total number of chunked-transfer chunks sent.

HTTP Average Chunk Size

Average size of the chunks sent.

HTTP Average Chunks per Response

Average number of chunks sent for each HTTP response.

Content-MD5 Statistics

HTTP Content-MD5 Requests Received

Number of requests received that included Content-MD5 headers.

HTTP Content-MD5 Check Successful

Number of requests for which the MD5 checksum calculated by the server matched the checksum in the requests' Content-MD5 header.

HTTP Content-MD5 Check Failed

Number of requests for which the MD5 checksum calculated by the server did not match the checksum in the requests' Content-MD5 header.

816

IxLoad Tcl API Programming Guide

HTTP

HTTP Client Statistics
The table below lists the statistics IxLoad reports for HTTP clients. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
Note: The HTTP client statistics do not include the bytes transmitted and received for the SSL handshake.

The test results are available from the location defined on the User Directories window. See User Directories.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

Description

Transaction Statistics

HTTP

Number of HTTP requests sent by the clients. The statistics show the number of

Requests Sent requests for each URL.

HTTP Requests Successful

Number of positive HTTP responses (2xx- and 3xx-range responses) received by the clients. The statistics show the number of requests for each URL.

HTTP Intermediate Responses Received (1xx)

Number of 100-series (Informational) responses received. 100-series responses indicate a provisional response, consisting only of the Status-Line and optional headers, and terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.

HTTP Requests Successful (2xx)

Number of 200-series (Successful) responses received. 200-series responses indicate that the client's request was successfully received, understood, and accepted.

HTTP Requests Successful (3xx)

Number of 300-series (Redirection) responses received. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request.

HTTP Requests Successful (301)

Number of 301 (Moved Permanently) responses received.
301 responses indicate that the requested resource has been assigned a new permanent URI and any future references to this resource should use one of the returned URIs.

IxLoad Tcl API Programming Guide

817

HTTP

HTTP Requests Successful (302)

Number of 302 (Found) responses received. 302 responses indicate that the requested resource resides temporarily under a different URI.

HTTP Requests Successful (303)

Number of 303 (See Other) responses received. 303 responses indicate that the response to the request can be found under a different URI and should be retrieved using a GET method on that resource.

HTTP Requests Successful (307)

Number of 307 (Temporary Redirect) responses received. 307 responses indicate that the requested resource resides temporarily under a different URI.

HTTP Requests Failed

Number of HTTP requests that failed for any reason. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Write)

Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Read)

Number of HTTP requests that failed due to a socket read error.The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Bad Header)

Number of HTTP requests that failed due to a defective HTTP header. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (4xx)

Number of 4xx-range responses received by the clients in response to an HTTP request. The statistics show the number of requests for each URL (page).
408 responses are counted separately by the HTTP Session Timeout (408) statistic and may or may not also be included in the HTTP Requests Failed (4xx) count. See the description of HTTP Session Timeout (408) for more information.

HTTP Requests Failed (400)

Bad Request. Number of requests that failed due to a syntax error in the URL. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (401)

Unauthorized. Number of requests that failed due to because the server did not receive the correct user name or password from the browser. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (403)

Forbidden. Number of requests that failed due to because the name or password supplied by the browser are incorrect. The statistics show the number of requests for each URL (page).

818

IxLoad Tcl API Programming Guide

HTTP

HTTP Requests Failed (404)

Not Found. Number of requests that failed because requested object is not stored on the server on the path supplied. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (407)

Proxy Authentication Required. Number of requests that failed because access to the URL requires authentication with a proxy server.

HTTP Requests Failed (408)

Timeout. Number of requests that failed due to communications between the client and server taking too long. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (4xx other)

Number of HTTP requests that failed for reasons other than a Bad Request (400), Unauthorized (401), Forbidden (403), Not Found (404), Proxy Authentication Required (407), or Timeout (408) error. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (5xx)

Number of HTTP requests that failed due to lack of resources on the server (HTTP 500-series errors). This statistic is only incremented if the client had issued a request to the server before receiving the 5xx response. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (505)

HTTP Version not Supported. Number of requests that failed because the server does not support the HTTP version used by the client. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (5xx other)

Number of requests that failed for reasons other than an HTTP version mis-match (505). The statistics show the number of requests for each URL (page).

HTTP Requests Failed (other)

Number of requests that failed that could not be classified.

HTTP Requests Failed (Timeout)

Number of HTTP requests that failed because the clients did not receive a response within 600 seconds. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Aborted)

Number of HTTP requests that ended prematurely due to events outside HTTP or TCP. For example, if any HTTP requests are pending when the Ramp-Down period ends, those requests are aborted by IxLoad. The statistics show the number of requests for each URL (page).

IxLoad Tcl API Programming Guide

819

HTTP

HTTP Session Timeouts (408)

Number of HTTP 408 responses received. This statistic includes all 408 responses received regardless of whether they were received for a pending HTTP request or not.
IxLoad counts 408 responses differently depending on whether or not a client has a pending HTTP request:
l If a client has an HTTP request pending and it receives a 408 response, IxLoad increments the HTTP Received 408, HTTP Requests Failed (4xx), and HTTP Requests Failed statistics.
If a client does not have an HTTP request pending and it receives a 408 response, IxLoad only increments the HTTP Received 408 statistic.

HTTP Sessions Service Unavailable. Number of HTTP sessions that could not be established due to

Rejected

lack of resources on the server.

(503)

HTTP Aborted Before Request

Number of HTTP requests aborted just before sending the request on an open TCP connection.

HTTP Aborted Number of HTTP requests aborted just after sending the request on an open TCP After Request connection.

HTTP Users Active

Number of HTTP users simulated.

Throughput Statistics

HTTP Bytes Sent

Number of HTTP bytes transmitted by the clients.
If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic (increased by retransmits) or less than this statistic (decreased by broken or reset connections).
SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not (HTTP only).

HTTP Bytes Received

Number of HTTP bytes received by the clients.
If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic due to increases caused by retransmits.
SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not (HTTP only).

HTTP Content Number of bytes of HTTP data sent. Bytes Sent

820

IxLoad Tcl API Programming Guide

HTTP

HTTP Content Bytes Received

Number of bytes of HTTP data received.

HTTP Decompressed Content Bytes Received

Number of bytes of HTTP data decompressed.

Latency Statistics

HTTP Connect Time (us)

Average time elapsed between the time the client sends a SYN packet and the time it receives the SYN/ACK. The units for this statistic are microseconds. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

HTTP Time To First Byte (us)

Average time elapsed before clients received the first byte of an HTTP response. The units for this statistic are microseconds. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

HTTP Time To Last Byte (us)

Average time elapsed before clients received the last byte of an HTTP response. The units for this statistic are microseconds. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Cookie Statistics

HTTP Cookies Number of cookies received by the clients. Received

HTTP Cookies Number of cookies sent by the clients. Sent

HTTP Cookies Rejected

Number of cookies rejected by the clients. Clients may reject cookies for the following reasons:
l Cookie jar is full l Path specified in the cookie is not a subset of the URI requested l Domain of the requesting host does not match the cookie domain Cookie Reject Probability was greater than 0 and cookie was randomly selected for rejection

IxLoad Tcl API Programming Guide

821

HTTP

HTTP Cookies Rejected (Path Match Failed)

Number of cookies rejected by the clients because the path specified in the cookie was not available on the server.

HTTP Cookies Rejected (Domain Match Failed)

Number of cookies rejected by the clients because the cookie was sent by a server outside the domain specified in the cookie.

HTTP Cookies Rejected (Cookiejar Overflow)

Number of cookies rejected by the clients because their cookie jars were full.

HTTP Cookies Rejected (Probabalistic Reject)

Number of cookies rejected because the clients were configured to reject a percentage of all cookies at random.

HTTP Cookie headers Rejected - (Memory Overflow)

Number of "Set-Cookie" or "Set-Cookie2" headers which were not processed fully due to insufficient memory.
If Large Header Support is enabled, IxLoad monitors the available memory while it processes a "Set-Cookie" or "Set-Cookie2" header.
If the amount of free memory declines to the point that IxLoad cannot continue processing the header, IxLoad drops the remainder of the header. If this occurs, IxLoad cannot determine the number of cookies that were in the un-processed portion of the header, so the Cookies Rejected total may be inaccurate; the Memory Overflow statistic is an indication of this.

Test Objective Statistics

HTTP Simulated Users

Number of users to be simulated during the test.

HTTP Concurrent Connections

Number of concurrent connections maintained during the test.

HTTP Connections

Total number of connections established by the clients.

HTTP Connection Attempts

Total number of connections attempted.

822

IxLoad Tcl API Programming Guide

HTTP

HTTP Transactions

Total number of transactions completed by the clients.

HTTP Bytes

Amount of HTTP data sent and received by the clients, in bytes.

Test Objective Rate Statistics

HTTP Connection Rate

Rate at which the client established HTTP connections.

HTTP Connection Attempt Rate

Rate at which the client attempted to establish HTTP connections.

HTTP Transaction Rate

Rate at which the client completed HTTP transactions.

HTTP Through- Rate at which the client sent and received HTTP traffic. put

Content Encoding Statistics Note: HTTP 1.0 does not support compression (content encoding). If you run a test using HTTP 1.0, the content encoding statistics are zero.

ContentEncoded Responses Received

Total number of encoded (compressed) pages received.

Gzip ContentEncoding Received

Number of gzip-encoded pages received.

Deflate Content-Encoding Received

Number of deflate-encoded pages received.

Unrecognized Number of pages received encoded with an unknown encoding method. Content-Encoding Received

ContentEncoded Responses Decode Successful

Total number of pages successfully decoded.

IxLoad Tcl API Programming Guide

823

HTTP

Gzip ContentEncoding Decode Successful

Number of gzip-encoded pages successfully decoded.

Deflate Content-Encoding Decode Successful

Number of deflate-encoded pages successfully decoded.

ContentEncoded Responses Decode Failed

Total number of pages that could not be decoded.

Gzip ContentEncoding Decode Failed

Number of gzip-encoded pages that could not be decoded for all reasons.

Deflate Content-Encoding Decode Failed

Number of deflate-encoded pages that could not be decoded for all reasons.

Gzip ContentEncoding Decode Failed - Data Error

Number of gzip-encoded pages that could not be decoded because the files were corrupted.

Gzip ContentEncoding Decode Failed - Decoding Error

Number of gzip-encoded pages that could not be decoded due to an internal error in IxLoad.

Deflate Content-Encoding Decode Failed - Data Error

Number of deflate-encoded pages that could not be decoded because the files were corrupted.

Deflate Content-Encoding Decode Failed - Decoding Error

Number of deflate-encoded pages that could not be decoded due to an internal error in IxLoad.

Transfer Encoding Statistics

824

IxLoad Tcl API Programming Guide

HTTP

Chunked TransferEncoded Responses Received

Number of pages received with chunked transfer encoding.

Chunked TransferEncoding Decode Successful

Number of chunked transfer-encoded pages successfully decoded.

Chunked TransferEncoding Decode Failed

Number of chunked transfer-encoded pages that could not be decoded.

Integrity Check Statistics

Content-MD5 Responses Received

Number of page checksums received in Content-MD5 headers.

Content-MD5 Check Successful

Number of checksums calculated by the client that matched the Content-MD5 checksums in the response headers.
Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.

Content-MD5 Check Failed

Number of checksums calculated by the client that did not match the Content-MD5 checksums in the response headers.

Custom-MD5 Responses Received

Number of page checksums received in Custom-MD5 (IxLoad-specific) headers.

Custom-MD5 Check Successful

Number of checksums calculated by the client that matched the Custom-MD5 checksums in the response headers.
Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.

Custom-MD5 Check Failed

Number of checksums calculated by the client that did not match the Content-MD5 checksums in the response headers.

IxLoad Tcl API Programming Guide

825

HTTP

HTTP Client QoE Detective Statistics
The table below lists the QoE Detective statistics IxLoad reports for HTTP clients. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
Note: The HTTP client statistics do not include the bytes transmitted and received for the SSL handshake.

The test results are available from the location defined on the User Directories window. See User Directories.
The QoE Detective column in the table indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

QoE

Description

Detective

Test Objective Statistics

HTTP Client

All

Concurrent

Connections

Number of concurrent connections maintained during the test.

HTTP Client

All

Connections

Total number of connections established by the clients.

HTTP Client

All

Connection

Attempts

Total number of connections attempted.

HTTP Client

All

Transactions

Total number of transactions completed by the clients.

HTTP Client

All

Bytes

Received and

Transmitted

Amount of HTTP data sent and received by the clients, in bytes.

826

IxLoad Tcl API Programming Guide

HTTP

Transaction Statistics

HTTP Client

All

Requests Sent

HTTP Client

All

Requests Suc-

cessful

HTTP Client

All

Intermediate

Responses

Received

(1xx)

HTTP Client

All

Requests Suc-

cessful (2xx)

HTTP Client

All

Requests Suc-

cessful (3xx)

HTTP Client

All

Requests Suc-

cessful (301)

HTTP Client

All

Requests Suc-

cessful (302)

HTTP Client

All

Requests Suc-

cessful (303)

HTTP Client

All

Requests Suc-

cessful (307)

HTTP Client

All

Requests

Failed

Number of HTTP requests sent by the clients. The statistics show the number of requests for each URL.
Number of positive HTTP responses (2xx- and 3xx-range responses) received by the clients. The statistics show the number of requests for each URL.
Number of 100-series (Informational) responses received. 100-series responses indicate a provisional response, consisting only of the Status-Line and optional headers, and terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.
Number of 200-series (Successful) responses received. 200-series responses indicate that the client's request was successfully received, understood, and accepted.
Number of 300-series (Redirection) responses received. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request.
Number of 301 (Moved Permanently) responses received. 301 responses indicate that the requested resource has been assigned a new permanent URI and any future references to this resource should use one of the returned URIs.
Number of 302 (Found) responses received. 302 responses indicate that the requested resource resides temporarily under a different URI.
Number of 303 (See Other) responses received. 303 responses indicate that the response to the request can be found under a different URI and should be retrieved using a GET method on that resource.
Number of 307 (Temporary Redirect) responses received. 307 responses indicate that the requested resource resides temporarily under a different URI.
Number of HTTP requests that failed for any reason. The statistics show the number of requests for each URL (page).

IxLoad Tcl API Programming Guide

827

HTTP

HTTP Client

All

Requests

Failed (Write)

HTTP Client

All

Requests

Failed (Read)

HTTP Client

All

Requests

Failed (Bad

Header)

HTTP Client

All

Requests

Failed (4xx)

HTTP Client

All

Requests

Failed (400)

HTTP Client

All

Requests

Failed (401)

HTTP Client

All

Requests

Failed (403)

HTTP Client

All

Requests

Failed (404)

HTTP Client

All

Requests

Failed (407)

HTTP Client

All

Requests

Failed (408)

Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).
Number of HTTP requests that failed due to a socket read error.The statistics show the number of requests for each URL (page).
Number of HTTP requests that failed due to a defective HTTP header. The statistics show the number of requests for each URL (page).
Number of 4xx-range responses received by the clients in response to an HTTP request. The statistics show the number of requests for each URL (page). 408 responses are counted separately by the HTTP Session Timeout (408) statistic and may or may not also be included in the HTTP Requests Failed (4xx) count. See the description of HTTP Session Timeout (408) for more information.
Bad Request. Number of requests that failed due to a syntax error in the URL. The statistics show the number of requests for each URL (page).
Unauthorized. Number of requests that failed due to because the server did not receive the correct user name or password from the browser. The statistics show the number of requests for each URL (page).
Forbidden. Number of requests that failed due to because the name or password supplied by the browser are incorrect. The statistics show the number of requests for each URL (page).
Not Found. Number of requests that failed because requested object is not stored on the server on the path supplied. The statistics show the number of requests for each URL (page).
Proxy Authentication Required. Number of requests that failed because access to the URL requires authentication with a proxy server.
Timeout. Number of requests that failed due to communications between the client and server taking too long. The statistics show the number of requests for each URL (page).

828

IxLoad Tcl API Programming Guide

HTTP

HTTP Client

All

Requests

Failed (4xx

other)

HTTP Client

All

Requests

Failed (5xx)

HTTP Client

All

Requests

Failed (505)

HTTP Client

All

Requests

Failed (5xx

other)

HTTP

All

Requests

Failed (other)

HTTP Client

All

Requests

Failed

(Timeout)

HTTP Client

All

Requests

Failed (Abor-

ted)

HTTP Client

All

Session

Timeouts

(408)

HTTP Client

All

Sessions

Rejected (503)

HTTP Client

All

Aborted Before

Request

Number of HTTP requests that failed for reasons other than a Bad Request (400), Unauthorized (401), Forbidden (403), Not Found (404), Proxy Authentication Required (407), or Timeout (408) error. The statistics show the number of requests for each URL (page).
Number of HTTP requests that failed due to lack of resources on the server (HTTP 500-series errors). This statistic is only incremented if the client had issued a request to the server before receiving the 5xx response. The statistics show the number of requests for each URL (page).
HTTP Version not Supported. Number of requests that failed because the server does not support the HTTP version used by the client. The statistics show the number of requests for each URL (page).
Number of requests that failed for reasons other than an HTTP version mis-match (505). The statistics show the number of requests for each URL (page).
Number of requests that failed that could not be classified.
Number of HTTP requests that failed because the clients did not receive a response within 600 seconds. The statistics show the number of requests for each URL (page).
Number of HTTP requests that ended prematurely due to events outside HTTP or TCP. For example, if any HTTP requests are pending when the Ramp-Down period ends, those requests are aborted by IxLoad. The statistics show the number of requests for each URL (page).
Timeout. Number of requests that failed due to communications between the client and server taking too long. The statistics show the number of requests for each URL (page).
Service Unavailable. Number of HTTP sessions that could not be established due to lack of resources on the server.
Number of HTTP requests aborted just before sending the request on an open TCP connection.

IxLoad Tcl API Programming Guide

829

HTTP

HTTP Client

All

Aborted After

Request

Throughput Statistics

HTTP Client

All

Bytes Sent

HTTP Client

All

Bytes

Received

HTTP Client

All

Content Bytes

Sent

HTTP Client

All

Content Bytes

Received

Cookie Statistics

HTTP Client

All

Cookies

Received

HTTP Client

All

Cookies Sent

Number of HTTP requests aborted just after sending the request on an open TCP connection.
Number of HTTP bytes transmitted by the clients. If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic (increased by retransmits) or less than this statistic (decreased by broken or reset connections). SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not (HTTP only). Number of HTTP bytes received by the clients. If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic due to increases caused by retransmits. SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not (HTTP only). Number of bytes of HTTP data sent.
Number of bytes of HTTP data received.
Number of cookies received by the clients.
Number of cookies sent by the clients.

830

IxLoad Tcl API Programming Guide

HTTP

HTTP Client

All

Cookies Rejec-

ted

Number of cookies rejected by the clients. Clients may reject cookies for the following reasons:
l Cookie jar is full l Path specified in the cookie is not a subset of the URI requested l Domain of the requesting host does not match the cookie domain Cookie Reject Probability was greater than 0 and cookie was randomly selected for rejection

HTTP Client

All

Cookies Rejec-

ted - (Path

Match Failed)

Number of cookies rejected by the clients because the path specified in the cookie was not available on the server.

HTTP Client

All

Cookies Rejec-

ted - (Domain

Match Failed)

Number of cookies rejected by the clients because the cookie was sent by a server outside the domain specified in the cookie.

HTTP Client

All

Cookies Rejec-

ted - (Cook-

iejar Overflow)

Number of cookies rejected by the clients because their cookie jars were full.

HTTP Client

All

Cookies Rejec-

ted -

(Probabalistic

Reject)

Number of cookies rejected because the clients were configured to reject a percentage of all cookies at random.

Content Encoding Statistics

HTTP Client

All

Transfer-

Encoding

Received

Number of pages received with chunked transfer encoding.

HTTP Client

All

Transfer-

Encoding

Decode Suc-

cessful

Number of chunked transfer-encoded pages successfully decoded.

HTTP Client

All

Transfer-

Encoding

Decode Failed

Number of chunked transfer-encoded pages that could not be decoded.

IxLoad Tcl API Programming Guide

831

HTTP

Latency Statistics

HTTP Client

All

Connect Time

(us)

Average time elapsed between the time the client sends a SYN packet and the time it receives the SYN/ACK.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

HTTP Client

All

Time To First

Byte (us)

Average time elapsed before clients received the first byte of an HTTP response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

HTTP Client

All

Time To Last

Byte (us)

Average time elapsed before clients received the last byte of an HTTP response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Test Objective Statistics

HTTP Client

All

Connection

Rate

Rate at which the client established HTTP connections.

HTTP Client

All

Connection

Attempt Rate

Rate at which the client attempted to establish HTTP connections.

HTTP Client

All

Transaction

Rate

Rate at which the client completed HTTP transactions.

HTTP Client

All

Throughput

(Kbps)

Rate at which the client sent and received HTTP traffic.

Chunk-Transfer Encoding Statistics Note: HTTP 1.0 does not support chunked-transfer encoding. If you run a test using HTTP 1.0, the chunked-transfer encoding statistics are zero.

HTTP Client

All

Chunk Trans-

fer-Encoding

Headers

Received

Number of pages received with chunked transfer encoding.

832

IxLoad Tcl API Programming Guide

HTTP

HTTP Client

All

Chunk Trans-

fer-Encoding

Decode Suc-

cessful

Number of chunked transfer-encoded pages successfully decoded.

HTTP Client

All

Chunk Trans-

fer-Encoding

Decode Failed

Total number of pages that could not be decoded.

HTTP Client

All

Total Chunks

Total number of chunks recieved by the client.

Received

HTTP Client

All

Average

Chunk Size

Average size of the chunks received.

HTTP Client

All

Average

Chunks per

Response

Average number of chunks received for each HTTP response.

Content Encoding Statistics Note: HTTP 1.0 does not support compression (content encoding). If you run a test using HTTP 1.0, the content encoding statistics are zero.

HTTP Client

All

Decoded Con-

tent bytes

Number of bytes decoded.

HTTP Client

All

Compression

Ratio

HTTP Client

All

Content-

Encoded

Responses

Received

HTTP Client

All

Gzip Content-

Encoding

Received

Average ratio of uncompressed content bytes to compressed content bytes (uncomp/comp) in compressed pages. Total number of encoded (compressed) pages received.
Number of gzip-encoded pages received.

IxLoad Tcl API Programming Guide

833

HTTP

HTTP Client

All

Deflate Con-

tent-Encoding

Received

HTTP Client

All

Unrecognized

Content-Encod-

ing Received

Content-

All

Encoded

Responses

Decode Suc-

cessful

HTTP Client

All

Gzip Content-

Encoding

Decode Suc-

cessful

HTTP Client

All

Deflate Con-

tent-Encoding

Decode Suc-

cessful

Content-

All

Encoded

Responses

Decode Failed

HTTP Client

All

Gzip Content-

Encoding

Decode Failed

HTTP Client

All

Deflate Con-

tent-Encoding

Decode Failed

Number of deflate-encoded pages received.
Number of pages received encoded with an unknown encoding method.
Total number of pages successfully decoded.
Number of gzip-encoded pages successfully decoded.
Number of deflate-encoded pages successfully decoded.
Number of deflate-encoded pages that could not be decoded for all reasons. Number of gzip-encoded pages that could not be decoded for all reasons. Number of deflate-encoded pages that could not be decoded for all reasons.

834

IxLoad Tcl API Programming Guide

HTTP

HTTP Client

All

Gzip Content-

Encoding

Decode Failed

Data Error

Number of gzip-encoded pages that could not be decoded because the files were corrupted.

HTTP Client

All

Gzip Content-

Encoding

Decode Failed

Decoding Error

Number of gzip-encoded pages that could not be decoded due to an internal error in IxLoad.

HTTP Client

All

Deflate Con-

tent-Encoding

Decode Failed

Data Error

Number of deflate-encoded pages that could not be decoded because the files were corrupted.

HTTP Client

All

Deflate Con-

tent-Encoding

Decode Failed

Decoding Error

Number of deflate-encoded pages that could not be decoded due to an internal error in IxLoad.

Integrity Check Statistics

HTTP Client

All

Content-MD5

Responses

Received

Number of page checksums received in Content-MD5 headers.

HTTP Client

All

Content-MD5

Check Suc-

cessful

Number of checksums calculated by the client that matched the Content-MD5 checksums in the response headers.
Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.

HTTP Client

All

Content-MD5

Check Failed

Number of checksums calculated by the client that did not match the Content-MD5 checksums in the response headers.

HTTP Client

All

Custom-MD5

Responses

Received

Number of page checksums received in Custom-MD5 (IxLoad-specific) headers.

IxLoad Tcl API Programming Guide

835

HTTP

HTTP Client

All

Custom-MD5

Check Suc-

cessful

HTTP Client

All

Custom-MD5

Check Failed

Number of checksums calculated by the client that matched the Custom-MD5 checksums in the response headers. Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.
Number of checksums calculated by the client that did not match the Content-MD5 checksums in the response headers.

HTTP Client per-URL Statistics
The table below lists the per-URL statistics IxLoad reports for HTTP clients. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
Note: The HTTP client statistics do not include the bytes transmitted and received for the SSL handshake.

The test results are available from the location defined on the User Directories window. See User Directories.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

Description

Transaction Statistics

HTTP Requests Sent

Number of HTTP requests sent by the clients. The statistics show the number of requests for each URL.

HTTP Requests Successful

Number of positive HTTP responses (2xx- and 3xx-range responses) received by the clients. The statistics show the number of requests for each URL.

HTTP Requests Failed

Number of HTTP requests that failed for any reason. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Write)

Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).

836

IxLoad Tcl API Programming Guide

HTTP

HTTP Requests Failed (Read)

Number of HTTP requests that failed due to a socket read error.The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Bad Header)

Number of HTTP requests that failed due to a defective HTTP header. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (4xx)

Number of 4xx-range responses received by the clients in response to an HTTP request. The statistics show the number of requests for each URL (page).
408 responses are counted separately by the HTTP Session Timeout (408) statistic and may or may not also be included in the HTTP Requests Failed (4xx) count. See the description of HTTP Session Timeout (408) for more information.

HTTP Requests Failed (400)

Bad Request. Number of requests that failed due to a syntax error in the URL. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (401)

Unauthorized. Number of requests that failed due to because the server did not receive the correct user name or password from the browser. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (403)

Forbidden. Number of requests that failed due to because the name or password supplied by the browser are incorrect. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (404)

Not Found. Number of requests that failed because requested object is not stored on the server on the path supplied. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (407)

Proxy Authentication Required. Number of requests that failed because access to the URL requires authentication with a proxy server.

HTTP Requests Failed (408)

Timeout. Number of requests that failed due to communications between the client and server taking too long. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (4xx other)

Number of HTTP requests that failed for reasons other than a Bad Request (400), Unauthorized (401), Forbidden (403), Not Found (404), Proxy Authentication Required (407), or Timeout (408) error. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (5xx)

Number of HTTP requests that failed due to lack of resources on the server (HTTP 500-series errors). This statistic is only incremented if the client had issued a request to the server before receiving the 5xx response. The statistics show the number of requests for each URL (page).

IxLoad Tcl API Programming Guide

837

HTTP

HTTP Requests Failed (505)

HTTP Version not Supported. Number of requests that failed because the server does not support the HTTP version used by the client. The statistics show the number of requests for each URL (page).

HTTP Requests

Number of requests that failed for reasons other than an HTTP version mis-

Failed (5xx other) match (505). The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Timeout)

Number of HTTP requests that failed because the clients did not receive a response within 600 seconds. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Aborted)

Number of HTTP requests that ended prematurely due to events outside HTTP or TCP. For example, if any HTTP requests are pending when the Ramp-Down period ends, those requests are aborted by IxLoad. The statistics show the number of requests for each URL (page).

HTTP Aborted Before Request

Number of HTTP requests aborted just before sending the request on an open TCP connection.

HTTP Aborted After Request

Number of HTTP requests aborted just after sending the request on an open TCP connection.

HTTP Responses Received With Match

Number of responses received that matched the Profile search string.

HTTP Responses Received Without Match

Number of responses received that did not match the Profile search string.

HTTP Intermediate Responses Received (1xx)

Number of 100-series (Informational) responses received. 100-series responses indicate a provisional response, consisting only of the Status-Line and optional headers, and terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.

HTTP Requests Successful (2xx)

Number of 200-series (Successful) responses received. 200-series responses indicate that the client's request was successfully received, understood, and accepted.

HTTP Requests Successful (3xx)

Number of 300-series (Redirection) responses received. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request.

838

IxLoad Tcl API Programming Guide

HTTP

HTTP Requests Successful (301)

Number of 301 (Moved Permanently) responses received.
301 responses indicate that the requested resource has been assigned a new permanent URI and any future references to this resource should use one of the returned URIs.

HTTP Requests Successful (302)

Number of 302 (Found) responses received. 302 responses indicate that the requested resource resides temporarily under a different URI.

HTTP Requests Successful (303)

Number of 303 (See Other) responses received. 303 responses indicate that the response to the request can be found under a different URI and should be retrieved using a GET method on that resource.

HTTP Requests Successful (307)

Number of 307 (Temporary Redirect) responses received. 307 responses indicate that the requested resource resides temporarily under a different URI.

HTTP ContentMD5 Requests Sent

Number of requests that included Content-MD5 headers.

HTTP Requests Failed (other)

Number of requests that failed that could not be classified.

Chunked-Transfer Encoding Statistics

HTTP Chunk Encoded Responses Received

Number of pages received with chunked transfer encoding.

HTTP Chunk Encoded Responses Successful

Number of chunked transfer-encoded pages successfully decoded.

HTTP Chunk Encoded Responses Failed

Number of chunked transfer-encoded pages that could not be decoded.

HTTP Total

Total number of chunks recieved by the client.

Chunks Received

HTTP Average Chunk Size

Average size of the chunks received.

IxLoad Tcl API Programming Guide

839

HTTP

HTTP Average Chunks per Response

Average number of chunks received for each HTTP response.

Decompression and Integrity Statistics Note: HTTP 1.0 does not support compression (content encoding). If you run a test using HTTP 1.0, the content encoding statistics are zero.

HTTP GzipEncoded Responses Received

Number of gzip-encoded pages received.

HTTP GzipEncoded Responses Successful

Number of gzip-encoded pages successfully decoded.

HTTP GzipEncoded Responses Failed

Number of gzip-encoded pages that could not be decoded for all reasons.

HTTP DeflateEncoded Responses Received

Number of deflate-encoded pages received.

HTTP DeflateEncoded Responses Successful

Number of deflate-encoded pages successfully decoded.

HTTP DeflateEncoded Responses Failed

Number of deflate-encoded pages that could not be decoded for all reasons.

HTTP ContentMD5 Responses Received

Number of page checksums received in Content-MD5 headers.

HTTP ContentMD5 Responses Successful

Number of checksums calculated by the client that matched the Content-MD5 checksums in the response headers.
Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.

840

IxLoad Tcl API Programming Guide

HTTP

HTTP ContentMD5 Responses Failed

Number of checksums calculated by the client that did not match the ContentMD5 checksums in the response headers.

HTTP Custom MD5 Number of page checksums received in Custom-MD5 (IxLoad-specific) head-

Responses

ers.

Received

HTTP Custom MD5 Responses Successful

Number of checksums calculated by the client that matched the Custom-MD5 checksums in the response headers.
Note: Zero-byte reads do not contain any data for comparison, so they are always considered successful. Therefore, every time the client performs a read of zero bytes, this statistic is incremented.

HTTP Custom MD5 Number of checksums calculated by the client that did not match the ContentResponses Failed MD5 checksums in the response headers.

Average Compression Ratio

Average ratio of uncompressed content bytes to compressed content bytes (uncomp/comp) in compressed pages.

TCP Reset Statistics
Under some scenarios, the number of RSTs may not match between the client and server.
For example, an Abort following a request generates two RSTs. On the client side, when the first RST is sent, the socket context is destroyed and hence only one RST is included in the client's TCP stats. However, on the server, receiving the first RST doesn't destroy the socket context immediately and so the second RST received is the one that is updated.
IxLoad Statistics Interpolation
IxLoad statistics are interpolated. Because statistics collection points may not fall on run state-change boundaries, when the last statistics collected from the previous state and the first statistics collected from the current state are interpolated, they may not show the true condition of the current state (RU = Ramp Up, SU = Sustain, RD = Ramp Down).
For example, when the statistics from the last connection point in the SU state and the first collection point in the RD state are interpolated, they may show transactions continuing to increase, when in fact they have stopped.

IxLoad Tcl API Programming Guide

841

HTTP
The interpolated statistics for the first and second collection points within a state will show the true condition of that state. For example, when the first and second sets of statistics collected from the RD state were interpolated, they would show that transactions had stopped. See the figure below. Figure 1: Statistics Collection and Interpolation in IxLoad
! 17

842

IxLoad Tcl API Programming Guide

IMAP
This section describes the IMAP Tcl API objects.
API Overview
IMAP protocol commands are organized as shown in the figure below An additional section, Using Auto-Generated Strings, pertains to several commands.

Objectives
The objectives (userObjective) you can set for IMAP are listed below. Test objectives are set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections l throughputMbps

IxLoad Tcl API Programming Guide

843

IMAP
l throughputKbps l throughputGbps

844

IxLoad Tcl API Programming Guide

IMAP

IMAP Client Agent
IMAP Client Agent - create an IMAP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IMAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_IMAPClient1 agent.config
DESCRIPTION
An HTTP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable
Enables the use of this client agent. (Default = true). name
The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity IMAPClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_IMAPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"IMAP Client" ]################################################## Timeline1 for

activities IMAPClient1#################################################set Timeline1

[::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_IMAPClient1 config

IxLoad Tcl API Programming Guide

845

IMAP

\-enable

true \-name

"IMAPClient1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1$Activity_

IMAPClient1 agent.config \-enable

true \-name

"IMAPClient1"$Activity_IMAPClient1 agent.pm.advOptions.config \-commandTimeout

120 \-vlan_priority

0 \-ipPreference

2 \-implicitLoopCheck

true \-enableEsm

false \-esm

1460 \-enableVlanPriority

false$Activity_IMAPClient1 agent.pm.ipHistory.clear$Activity_IMAPClient1 agent.p-

m.imapCommands.clear$Activity_IMAPClient1 agent.pm.imapCommands.appendItem \-id

"GETMAILS" \-Username

"user\[00-\]" \-Message_data_

items

"(BODY.PEEK\[\])" \-Password

"password\[00-\]" \-Mailbox_name

"INBOX" \-imapServerIp

"Traffic2_IMAPServer1:143"

SEE ALSO

ixNetTraffic

846

IxLoad Tcl API Programming Guide

IMAP

IMAP Commands
IMAP Commands--Adds an IMAP client command.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IMAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_IMAPClient1 agent.pm.imapCommands.appendItem
DESCRIPTION
An imapCommands object is added to the commandList option of the IMAP Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id IMAP command to be executed. One of the following:

Command CAPABILITY NOOP LOGOUT CLOSE

Description
Requests a list of capabilities that the IMAP server supports. This command is sent to the server that the client has logged in to using a preceding OPEN command.
Does not perform any function other than to contact the server. NOOP can be used as a periodic poll for new messages or message status updates during a period of inactivity or to reset an inactivity timer on the server.
Informs the server that the client is finished using the connection. The server will send a BYE untagged response before the (tagged) OK response, and then close the network connection.
Permanently removes all messages that have the Deleted flag set from the currently selected mailbox, and returns to the authenticated state from the selected state. No untagged EXPUNGE responses are sent.

IxLoad Tcl API Programming Guide

847

IMAP EXPUNGE
GETMAILS
DELMAILS
OPEN LOGIN SELECT FETCH LIST STORE CREATE THINK

Permanently removes all messages that have the Deleted flag set from the currently selected mailbox. The server for each message that it removes, the server sends an untagged EXPUNGE response to the client. After it has removed all the Deleted-flagged messages, it returns an OK response.
Retrieves mail messages from a server. {GetMails} is an IxLoad command the combines the functionality of multiple IMAP combined into a single command. {GetMails} performs the following IMAP commands: LOGIN SELECT UID FETCH LOGOUT
Deletes all mail messages from a selected mailbox. {Delete} is an IxLoad command that combines the functionality of multiple IMAP commands into a single command. {DeleteMails} performs the following IMAP commands: UID STORE EXPUNGE
Establishes a TCP connection to an IMAP server. OPEN is not an IMAP command.
Identifies the client to the server and carries the plaintext password authenticating the user.
Selects a mailbox so that messages in it can be accessed. The IxLoad IMAP server returns a simple OK response if the mailbox name is valid.
Retrieves data associated with a message in the mailbox. The data items to be fetched can be either a single atom or a parenthesized list.
Returns a subset of names from the complete set of all names available to the client.
Alters data associated with a message in the mailbox.
Creates a mailbox with the given name.
The {Think} command causes the client to become inactive. {Think} is an internal IxLoad command intended to assist your testing; it is not a command defined in the IMAP protocol. If you specify identical values for the minimum and maximum times, the client will be inactive for a fixed length of time. If you specify different values for the minimum and maximum times, IxLoad will select a value within the range and cause the client to be inactive for that length of time.

848

IxLoad Tcl API Programming Guide

IMAP

DELETE

Permanently removes a mailbox with the given name. The server returns a simple OK response mail box name is RFC-compliant and the command syntax is correct. Attempting to delete the INBOX or a mailbox name that does not exist is an error.

LoopBeginCommand An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

LoopEndCommand

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

Arguments for id = CAPABILITY
None.
Arguments for id = NOOP
None.
Arguments for id = LOGOUT
None.
Arguments for id = CLOSE
None.
Arguments for id = EXPUNGE
None.
Arguments for id = GETMAILS
imapServerIp The IP address of the IMAP server, or the name of the Ixia IMAP server activity. (Default = "None"). Username User name used to log in to the IMAP server. You can include variables (as the default value does) to generate multiple unique usernames. See Using Auto-Generated Strings on page 16-39. (Default = "user[00-]"). Password

IxLoad Tcl API Programming Guide

849

IMAP
Password used to log in to the IMAP server. You can include variables (as the default value does) to generate multiple unique passwords. See Using Auto-Generated Strings on page 16-39. (Default = "password[00-]"). Mailbox_name Mailbox to retrieve mail from. (Default = "INBOX"). Message_data_items Message data item names to be retrieved such as ["FLAGS,""ENVELOPE"]. (Default = "BODY.PEEK []").
Arguments for id = DELMAILS
Mailbox_name Mailbox to delete mail from. (Default = "INBOX").
Arguments for id = OPEN
IMAP_Server_IP The IP address of the IMAP server, or the name of the Ixia IMAP server activity. (Default = "0.0.0.0").
Arguments for id = LOGIN
Username User name used to log in to the IMAP server. You can include variables (as the default value does) to generate multiple unique user names. See Using Auto-Generated Strings on page 16-39. (Default = "user[00-]"). Password Password used to log in to the IMAP server. You can include variables (as the default value does) to generate multiple unique passwords. See Using Auto-Generated Strings on page 16-39. (Default = "password[00-]").
Arguments for id = SELECT
Mailbox_name Mailbox selected by command. (Default = "INBOX").
Arguments for id = FETCH
Message_sequence_set Sequence number set specifying the messages to be retrieved. (Default = "1-1"). Message_data_items

850

IxLoad Tcl API Programming Guide

IMAP
Message data item names to be retrieved. (Default = "FULL").
Arguments for id = LIST
Reference_name
Name of a mailbox or a level of mailbox hierarchy. (Default = "~"). Mail_box_name_with_wildcards
Name of the mailbox to be accessed, and wildcard characters. The wildcard character "*" matches zero or more characters at this position. The wildcard character "%" is similar to "*", but it does not match a hierarchy delimiter. If the "%" wildcard is the last character of a mailbox name argument, matching levels of hierarchy are also returned. (Default = "*").
Arguments for id = STORE
Message_sequence_set
Sequence number set specifying the messages to be retrieved. (Default = "1-1"). Data_items
Action to be performed on message flags for the affected messages. (Default = "+FLAGS"). l FLAGS: Replace the flags for the message (other than \Recent) with the flag selected in the Flags parameter. The new value of the flags is returned as if a FETCH of those flags was done. l FLAGS.SILENT: Equivalent to FLAGS, but without returning a new value. l +FLAGS: Adds the flag selected in the Flags parameter to the message. The new value of the flags is returned as if a FETCH of those flags was done. l +FLAGS.SILENT: Equivalent to +FLAGS, but without returning a new value. l -FLAGS: Removes the flag selected in the Flags parameter from the message. The new value of the flags is returned as if a FETCH of those flags was done. l -FLAGS.SILENT: Equivalent to -FLAGS, but without returning a new value.
Flags
Flag to be added or removed (action depends on setting of Data Items parameter) on the messages specified by Message Sequence Set parameter. (Default = "Answered").
l Answered: Message has been answered. l Flagged: Message is marked for urgent or special attention. l Deleted: Message is marked for deletion, to be removed by an EXPUNGE command at a later
time. l Draft: Message has not been completely composed (marked as a draft). l Seen: Message has been read.

IxLoad Tcl API Programming Guide

851

IMAP

Arguments for id = CREATE

Mailbox_name
Creates a mailbox with the given name. Name of the mailbox to be created. You can include the server's file system hierarchy separator in the name to cause the server to create the mailbox on a directory path other than the current level. For example, if the server's hierarchy separator character is "/" and you specify "foo/bar/zap", the server should create "foo/" and "foo/bar/" if they do not already exist. (Default = "custom").

Arguments for id = THINK
minimumInterval
Minimum length of time to sleep. Minimum = "1,000," Maximum = "2,147,483,647," (Default = "1,000"). maximumInterval

Maximum length of time to sleep. Minimum = "1,000," Maximum = "2,147,483,647," (Default = "1,000").

Arguments for id = DELETE
Mailbox_name Deletes the mailbox with the given name. (Default = "custom").

Arguments for id = LoopBeginCommand
LoopCount
Number of times to iterate. Value 0 = infinity. Minimum = "0," Maximum = "2147483647," (Default = "5").

Arguments for id = LoopEndCommand
None.

EXAMPLE

$Activity_IMAPClient1 agent.pm.imapCommands.appendItem \-id

"GETMAILS" \-Username

"user\[00-\]" \-Message_data_

items

"(BODY.PEEK\[\])" \-Password

"password\[00-\]" \-Mailbox_name

"INBOX" \-imapServerIp

"Traffic2_IMAPServer1:143"

SEE ALSO

IMAP Client Agent

Using Auto-Generated Strings

852

IxLoad Tcl API Programming Guide

IMAP

IxLoad Tcl API Programming Guide

853

IMAP
IMAP Client Advanced Options
IMAP Client Advanced Options - configure an IMAP client's advanced options
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IMAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_IMAPClient1 agent.pm.advOptions.config
DESCRIPTION
IMAP client advanced options are set through the pm.advOptions option of the IMAP Client Agent object (see the fexample below).
SUBCOMMANDS
None.
OPTIONS
commandTimeout Time, in seconds, to wait for a response to an IMAP command. Minimum = 1, Maximum = 2,147,483. (Default = 12). enableEsm If true, the use of the esm option is enabled. (Default = false). esm If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size as 1,460 bytes. (Default = 1,460). enableVlanPriority VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority When enableVlanPriority is true, this option accepts the vlan priority value. ipPreference This option indicates the order by which the IMAP client will use the subnets, if there is a mixture of IPv4 and IPv6 subnets in the network. The values are: IpPreferenceV4, IpPreferenceV6, IpPreferenceV4Any, IpPreferenceV6Any. loopValue

854

IxLoad Tcl API Programming Guide

IMAP

If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0).

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity IMAPClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_IMAPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"IMAP Client" ]$Activity_IMAPClient1 agent.pm.advOptions.config \-commandTimeout

120 \-vlan_priority

0 \-ipPreference

2 \-implicitLoopCheck

true \-enableEsm

false \-esm

1460 \-enableVlanPriority

false

SEE ALSO

IMAP Client Agent

IxLoad Tcl API Programming Guide

855

IMAP

IMAP Server Agent
IMAP Server Agent - configure an IMAP server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IMAPServer1 agent.config
DESCRIPTION
An IMAP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this action. (Default = true). mailConfig This is a list of type IMAP Server Config. The elements in this list are the messages that a IMAP user will receive when he queries the mailbox. (Default = {}). name The name of this server agent, which must be set at agent creation time.
STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity IMAPServer1

of NetTraffic Traffic2@Network2#################################################set

Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"IMAP Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

IMAPServer1 config \-enable

true \-name

"IMAPServer1" \-timeline

$_Match_Longest_$Activity_

856

IxLoad Tcl API Programming Guide

IMAP

IMAPServer1 agent.config \-enable

true \-name

"IMAPServer1"$Activity_IMAPServer1 agent.pm.advOptions.config \-vlan_priority

0 \-esm

1460 \-enableEsm

true \-enableVlanPriority

true \-listening_port

"143"$Activity_IMAPServer1 agent.pm.imapServerConfig.mails.clear$Activity_

IMAPServer1 agent.pm.imapServerConfig.mails.appendItem \-id

"mailMessageList" \-mail_name

"Simple" \-mail_mesg_

count

10$Activity_IMAPServer1 agent.p-

m.allMailMessages.mailMessageInstList.clear$Activity_IMAPServer1 agent.p-

m.allMailMessages.mailMessageInstList.appendItem \-id

"mailMessage" \-mail_message_name

"Simple" \-mail_format

1 \-description

"100 bytes plain text body" \-custom_

mail_body_use_real_file

0 \-Answered

1 \-

Deleted

1 \-custom_mail_body_filename

"" \-mail_size

1 \-custom_mail_body_content

"" \-Flagged

1 \-cpyfrom

"Simple" \-custom_mail_body_encode

0 \-mail_size_fixed_len

100 \-Draft

1 \-Seen

1 \-mail_size_random_min_len

1 \-mail_size_random_max_len

4096 \-mail_body_type

0 \-Recent

1$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(0).-

headerList.clear$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList

(0).headerList.appendItem \-id

"mailHeader" \-

field_body

"fromName@company.com" \-field_name

"From"$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(0).-

headerList.appendItem \-id

"mailHeader" \-

field_body

"fromName@company.com" \-field_name

"To"$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(0).at-

tachmentList.clear$Activity_IMAPServer1 agent.p-

m.allMailMessages.mailMessageInstList.appendItem \-id

"mailMessage" \-mail_message_name

"SimpleLarge" \-mail_format

1 \-description

"4k bytes plain text body" \-custom_

mail_body_use_real_file

0 \-Answered

1 \-

Deleted

1 \-custom_mail_body_filename

"" \-mail_size

1 \-custom_mail_body_content

"" \-Flagged

1 \-copyfrom

"Simple" \-custom_mail_body_encode

0 \-mail_size_fixed_len

4096 \-Draft

1 \-Seen

1 \-mail_size_random_min_len

1 \-mail_size_random_max_len

4096 \-mail_body_type

0 \-Recent

1$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(1).-

headerList.clear$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList

(1).headerList.appendItem \-id

"mailHeader" \-

field_body

"fromName@company.com" \-field_name

"From"$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(1).-

headerList.appendItem \-id

"mailHeader" \-

field_body

"fromName@company.com" \-field_name

IxLoad Tcl API Programming Guide

857

IMAP

"To"$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(1).at-

tachmentList.clear$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList

(4).attachmentList.appendItem \-id

"mailAt-

tachment" \-attachment_data_type

1 \-number_of_attachment

"1-1" \-attach_filename

"" \-attachStr

"" \-attachment_size_range

"100-100" \-attachment_type

"Generated data"

SEE ALSO

ixNetTraffic

IMAP Server Config

858

IxLoad Tcl API Programming Guide

IMAP

IMAP Server Advanced Options
IMAP Server Advanced Options - configure an IMAP server's advanced options

SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IMAPServer1 agent.pm.advOptions.config

DESCRIPTION
IMAP client advanced options are set through the pm.advOptions option of the IMAP Client Agent object.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
enableEsm
If set to 1 (true), the use of the esm option is enabled. (Default = 0). esm
If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size as 1,460 bytes. Minimum = 64, Maximum = 1,460. (Default = 1,460).
enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value. listening_port
Port that the IMAP server listens on. To specify multiple ports, separate the port numbers with commas (,). You can specify up to 50 listening ports. (Default = 143).

EXAMPLE

$Activity_IMAPServer1 agent.pm.advOptions.config \-vlan_priority

0 \-esm

1460 \-enableEsm

true \-enableVlanPriority

true \-listening_port

IxLoad Tcl API Programming Guide

859

IMAP
"143"
SEE ALSO
IMAP Server Agent

860

IxLoad Tcl API Programming Guide

IMAP

IMAP Server Config
IMAP Server Config--Specifies the list of mail messages available on an IMAP server.

SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IMAPServer1 agent.pm.imapServerConfig.mails.appendItem

DESCRIPTION
IMAP Server Config defines the list of mail messages available on an IMAP server.

SUBCOMMANDS
None.

OPTIONS
mails List of mail messages available on the server. This is a list of objects of type Mails. (Default = "").

EXAMPLE

$Activity_IMAPServer1 agent.pm.imapServerConfig.mails.appendItem \-id

"mailMessageList" \-mail_name

"Simple" \-mail_mesg_

count

10

SEE ALSO

IMAP Server Agent

Mails

IxLoad Tcl API Programming Guide

861

IMAP

Mails
Mails--Number and type of mail messages available on an IMAP server.
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IMAPServer1 agent.pm.imapServerConfig.mails.appendItem
DESCRIPTION
Mail Message List defines a list of mail messages.
SUBCOMMANDS
None.
OPTIONS
mail_name Name of mail message type in list. See the table below for a list of the preconfigured mail messages supplied with IxLoad. (Default = "").

Message Name Simple SimpleLarge HTMLSmall HTMLRandom

Description Plain text message, 100 bytes in size. Plain text message, 4,096 bytes in size. HTML-format message, 1,024 bytes in size. HTML-format message, size varies randomly between 1,024 and 32,768 bytes.

AttachmentSmall Plain text message 100 bytes in size, with one plain text attachof 1,024 bytes.

AttachmentLarge HTML-format message 1,024 bytes in size, with one HTML-format attachment of 65,536 bytes.

RandomSmall

Message body that varies randomly between plain text and HTML format, varying in size between 100 and 1,024 bytes, and with from one to four plain text or HTML-format attachments. The plain text attachments range from 100 to 1,024 bytes in size, and the HTML attachments range from 512 to 4,096 bytes in size.

862

IxLoad Tcl API Programming Guide

IMAP

RandomLarge

Message body that varies randomly between plain text and HTML format, varying in size between 1,024 and 16,384 bytes, and with from one to eight plain texts or HTML-format attachments. The plain text attachments range from 1,024 to 16,384 bytes in size, and the HTML attachments range from 4,096 to 262,144 bytes in size.

mail_mesg_count

Number of mail messages of the type specified by the mail_name option. (Default = "10").

EXAMPLE

$Activity_IMAPServer1 agent.pm.imapServerConfig.mails.appendItem \-id

"mailMessageList" \-mail_name

"Simple" \-mail_mesg_

count

10

SEE ALSO

IMAP Server Agent AllMailMessages

IxLoad Tcl API Programming Guide

863

IMAP

Mail Message Instance List
Mail Message Instance List--Configures one or more mail messages.
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(0).headerList.appendItem
DESCRIPTION
Mail Message Instance List defines a list of Mail Message Instance Lists.
SUBCOMMANDS
None.
OPTIONS
mail_message_name Name of mail message. (Default = "Simple"). description Description of mail message. (Default = "100 byte plain text body"). cpyfrom Existing message to be copied to create the new message. (Default = "Simple"). mail_format Format of the mail message. (Default = "1"). The formats available are:

Format Description

1

Plain: The message body contains only ASCII characters and no formatting or dis-

information. RFC 2822 describes this format.

2

HTML: The message body contains HTML tags for formatting and display. An HTML mes-

sage is identified by the MIME type text/html.

3

Random: Message bodies are a random mixture of plain and HTML formats.

mail_size

864

IxLoad Tcl API Programming Guide

IMAP

Size of the mail message in bytes. (Default = "1"). Specify the size as follows:

Size Description

1

Fixed: The size of the message body is fixed at a single size. Use the mail_size_fixed_len

option to specify the size.

2

Random: The size of the message body varies randomly between a minimum and a maximum

size. Use the mail_size_random_min_len and mail_size_random_max_len.

mail_size_fixed_len
If the mail_size option is set to Fixed (1), this option specifies the length of the mail message, in bytes. Minimum = "1" Maximum = "2,147,483" (Default = "100").
mail_size_random_min_len
If the mail_size option is set to Random (2), this option specifies the lower bound of the range of the mail message length, in bytes. Minimum = "1" Maximum = "2,147,483" (Default = "1").
mail_size_random_ max_len
If the mail_size option is set to Random (2), this option specifies the upper bound of the range of the mail message length, in bytes. Minimum = "1" Maximum = "2,147,483" (Default = "4,096").
mail_body_type
The mail body type can be default, imported data, or custom. You cannot import files through Tcl so you can work only with default or custom data. The value for default is 1 and custom is 2. Custom data are composed of data that you provide. If 2 is specified, then you need to specify the applicable custom mail body options. (Default = 1).
Recent
Flag indicating that message is new. The choices for setting this flag are:

Flag Description

1

Always Set: Flag is always set.

2

Not Set: Flag is never set.

3

Random: Flag is randomly set.

4

Toggle: Reverses flag setting; if flag is not set, sets it; if flag is set, un-sets it.

Seen

IxLoad Tcl API Programming Guide

865

IMAP

Flag indicating that message has been read. See the description of the Recent flag for a description of the choices for setting this flag.
Answered

Flag indicating that message has been answered. See the description of the Recent flag for a description of the choices for setting this flag.
Deleted

Flag indicating that message has been deleted. See the description of the Recent flag for a description of the choices for setting this flag.
Draft

Flag indicating that message has not been completed. See the description of the Recent flag for a description of the choices for setting this flag.
custom_mail_body_use_real_file

This option accepts boolean value of 0 or 1. If zero is given, there is no need to specify a file name. You have to enter the mail message text in custom_mail_body_content. If 1 is given, a file name is specified in the custom_mail_body_filename.
custom_mail_body_encode

This option specifies the encoding option for the real file. For boolean value 0, IxLoad encodes the file using the default encoding. For already encoded files, you choose boolean value 1.
custom_mail_body_filename

This option specifies the absolute path for the real file. See the following exam"c:\temp.txt" \ custom_mail_body_content

This option accepts the mail message text. Example: "abcd123." headerList

List of Header List objects included with message. attachmentList

List of Attachment List objects included with message.

EXAMPLE

$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList.appendItem \-id

"mailMessage" \-mail_message_name

"Simple" \-mail_format

1 \-description

"100 bytes plain text body" \-custom_

mail_body_use_real_file

0 \-Answered

1 \-

Deleted

1 \-custom_mail_body_filename

"" \-mail_size

1 \-custom_mail_body_content

"" \-Flagged

1 \-cpyfrom

"Simple" \-custom_mail_body_encode

0 \-mail_size_fixed_len

866

IxLoad Tcl API Programming Guide

100 \-Draft 1 \-mail_size_random_min_len 4096 \-mail_body_type 1
SEE ALSO
IMAP Server Agent

1 \-Seen 1 \-mail_size_random_max_len
0 \-Recent

IMAP

IxLoad Tcl API Programming Guide

867

IMAP

All Mail Messages
All Mail Messages--A list of Mail Message Instance Lists.

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IMAPServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList(0).headerList.appendItem

DESCRIPTION
All Mail Messages defines a list of Mail Message Instance Lists.

SUBCOMMANDS
None.

OPTIONS
mailMessageInstList Mail Message Instance List. (Default = "").

EXAMPLE

$Activity_IMAPServer1 agent.pm.allMailMessages.mailMessageInstList.appendItem \-id

"mailMessage" \-mail_message_name

"Simple" \-mail_format

1 \-description

"100 bytes plain text body" \-custom_

mail_body_use_real_file

0 \-Answered

1 \-

Deleted

1 \-custom_mail_body_filename

"" \-mail_size

1 \-custom_mail_body_content

"" \-Flagged

1 \-cpyfrom

"Simple" \-custom_mail_body_encode

0 \-mail_size_fixed_len

100 \-Draft

1 \-Seen

1 \-mail_size_random_min_len

1 \-mail_size_random_max_len

4096 \-mail_body_type

0 \-Recent

1

SEE ALSO

IMAP Server Agent

Mail Message Instance List

868

IxLoad Tcl API Programming Guide

IMAP
Using Auto-Generated Strings
In some of the fields in the IMAP client and server Activities, you can include variables that will cause IxLoad to automatically generate multiple values for the field. For example, the IMAP Username and Password fields both support the inclusion of variables. See Using Automatic Sequence Generators.

IxLoad Tcl API Programming Guide

869

IMAP
IMAP Statistics
The test results are available from the location defined on the User Directories window. See User Directories. For IMAP client statistics, see IMAP Client statistics . For IMAP server statistics, see IMAP Server Statistics. For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

870

IxLoad Tcl API Programming Guide

IMAP

IMAP Client Statistics
The table below lists the statistics that IxLoad reports for IMAP clients.

Statistic

Description

IMAP Sessions Requested

Number IMAP sessions requested by the client. This statistic is the total of: IMAP Sessions Established + IMAP Sessions Failed. An IxLoad IMAP "session" is the sequence of client/server interactions that take place from the time that a TCP connection is established until it is terminated.

IMAP Sessions Number of IMAP sessions successfully established by the client (the client

Established

received an `OK' response from the server).

IMAP Sessions Number of IMAP sessions that the client was unable to establish (the client did not

Failed

receive an `OK' response from the server).

IMAP Total Bytes Sent

Total number of bytes sent by the client in IMAP commands, responses, and messages. This statistic counts all the bytes in the IMAP packet including the terminating CRLF.

IMAP Total Bytes Received

Total number of bytes received by the client in IMAP commands, responses, and messages. This statistic counts all the bytes in the IMAP packet including the terminating CRLF.

IMAP Mail

Total number of bytes contained in the mail messages retrieved by the client.

Bytes Received

IMAP Total

Total number of mail messages retrieved by the client.

Mails Received

IMAP Com-

Total number of IMAP commands for which the client did not receive a response

mands Timeout within the timeout period.

IMAP capability Total number of CAPABILITY commands sent by the client. Command Sent

IMAP noop Com- Total number of NOOP commands sent by the client. mand Sent

IMAP login Com- Total number of LOGIN commands sent by the client. mand Sent

IMAP logout

Total number of LOGOUT commands sent by the client.

Command Sent

IxLoad Tcl API Programming Guide

871

IMAP

IMAP list Com- Total number of LIST commands sent by the client. mand Sent

IMAP select

Total number of SELECT commands sent by the client.

Command Sent

IMAP fetch Com- Total number of FETCH commands sent by the client. mand Sent

IMAP store Com- Total number of STORE commands sent by the client. mand Sent

MAP create

Total number of CREATE commands sent by the client.

Command Sent

IMAP delete

Total number of DELETE commands sent by the client.

Command Sent

IMAP close Com- Total number of CLOSE commands sent by the client. mand Sent

IMAP expunge Total number of EXPUNGE commands sent by the client. Command Sent

MAP uid fetch Total number of UID FETCH commands sent by the client. Command Sent

IMAP uid store Total number of UID STORE commands sent by the client. Command Sent

IMAP capability Command Failed

Total number of CAPABILITY commands sent by the client that failed for any reason.

IMAP noop Com- Total number of NOOP commands sent by the client that failed for any reason. mand Failed

IMAP login Com- Total number of LOGIN commands sent by the client that failed for any reason. mand Failed

IMAP logout Command Failed

Total number of LOGOUT commands sent by the client that failed for any reason.

IMAP list Com- Total number of LIST commands sent by the client that failed for any reason. mand Failed

872

IxLoad Tcl API Programming Guide

IMAP

IMAP select Command Failed

Total number of SELECT commands sent by the client that failed for any reason.

IMAP fetch Com- Total number of FETCH commands sent by the client that failed for any reason. mand Failed

IMAP store Com- Total number of STORE commands sent by the client that failed for any reason. mand Failed

IMAP create Command Failed

Total number of CREATE commands sent by the client that failed for any reason.

IMAP delete Command Failed

Total number of DELETE commands sent by the client that failed for any reason.

IMAP close Com- Total number of CLOSE commands sent by the client that failed for any reason. mand Failed

IMAP expunge Command Failed

Total number of EXPUNGE commands sent by the client that failed for any reason.

IMAP uid fetch Command Failed

Total number of UID FETCH commands sent by the client that failed for any reason.

IMAP uid store Command Failed

Total number of UID STORE commands sent by the client that failed for any reason.

IMAP capability Total number of CAPABILITY commands for which the client received an OK Command OK response.

IMAP noop Com- Total number of NOOP commands for which the client received an OK response. mand OK

IMAP login Com- Total number of LOGIN commands for which the client received an OK response. mand OK

IMAP logout Command OK

Total number of LOGOUT commands for which the client received an OK response.

IMAP list Com- Total number of LIST commands for which the client received an OK response. mand OK

IxLoad Tcl API Programming Guide

873

IMAP

IMAP select Command OK

Total number of SELECT commands for which the client received an OK response.

IMAP fetch Com- Total number of FETCH commands for which the client received an OK response. mand OK

IMAP store Com- Total number of STORE commands for which the client received an OK response. mand OK

IMAP create Command OK

Total number of CREATE commands for which the client received an OK response.

IMAP delete Command OK

Total number of DELETE commands for which the client received an OK response.

IMAP close Com- Total number of CLOSE commands for which the client received an OK response. mand OK

IMAP expunge Command OK

Total number of EXPUNGE commands for which the client received an OK response.

IMAP uid fetch Command OK

Total number of UID FETCH commands for which the client received an OK response.

IMAP uid store Command OK

Total number of UID STORE commands for which the client received an OK response.

IMAP Total Bytes Sent and Received

Combined total of all bytes transmitted and received by the client in IMAP commands, responses, mail messages, and attachments

IMAP Transaction Rate

Rate at which the client completed IMAP transactions.

IMAP Transactions

Total number of IMAP transactions of all types.

IMAP Connection Rate

Rate at which the client established IMAP connections.

IMAP Connections

Total number of IMAP connections established.

IMAP Total Con- Total number of IMAP connections of established.

nections

"Connection" refers to the entire sequence of client/server interactions from the

initial establishment of the connection to the server until its termination.

874

IxLoad Tcl API Programming Guide

IMAP Concurrent Connection

Number of concurrent IMAP connections active.

IMAP Simulated Number of IMAP users simulated by the client. Users

IMAP

IxLoad Tcl API Programming Guide

875

IMAP

IMAP Server Statistics
The table below lists the statistics that IxLoad reports for IMAP servers.

Statistic

Description

IMAP Session Requests Received

Number of requests to establish IMAP sessions received by the server. "Session" refers to the sequence of client/server interactions from the time that a TCP connection is established until the time that TCP connection terminates.

IMAP Session Requests Completed

Number of requested IMAP sessions successfully established by the server.

IMAP Session Requests Failed

Number of requested IMAP sessions that the server failed to establish.

IMAP Total Mail Bytes Sent

Total number of bytes sent by the server in IMAP responses and messages. This statistic counts all the bytes in the IMAP packet including the terminating CRLF.

IMAP Total Mails Sent

Total number of mail messages sent over IMAP connections.

IMAP Total Attach- Total number of attachments sent over IMAP connections. ments Sent

IMAP Total Mails with Attachments Sent

Total number of mail messages sent that included one or more attachments.

IMAP Total Bytes Sent

Total number of bytes sent by the server in IMAP commands, responses, and messages.

IMAP Total Bytes Received

Total number of bytes received by the server in IMAP commands, responses, and messages.

IMAP Total Bytes Combined total of all bytes transmitted and received by the server in IMAP comSent and Received mands, responses, and mail messages.

IMAP capability Command Received

Total number of CAPABILITY commands received by the server.

IMAP noop Command Received

Total number of NOOP commands received by the server.

876

IxLoad Tcl API Programming Guide

IMAP login Command Received

Total number of LOGIN commands received by the server.

IMAP logout Com- Total number of LOGOUT commands received by the server. mand Received

IMAP list Command Received

Total number of LIST commands received by the server.

IMAP select Com- Total number of SELECT commands received by the server. mand Received

IMAP fetch Command Received

Total number of FETCH commands received by the server.

IMAP store Command Received

Total number of STORE commands received by the server.

IMAP create Com- Total number of CREATE commands received by the server. mand Received

IMAP delete Com- Total number of DELETE commands received by the server. mand Received

IMAP close Command Received

Total number of CLOSE commands received by the server.

IMAP expunge Command Received

Total number of EXPUNGE commands received by the server.

IMAP uid_fetch Command Received

Total number of UID FETCH commands received by the server.

IMAP uid_store Command Received

Total number of UID STORE commands received by the server.

IMAP capability Response Sent

Total number of CAPABILITY responses sent by the server.

IMAP noop Response Sent

Total number of NOOP responses sent by the server.

IMAP login Response Sent

Total number of LOGIN responses sent by the server.

IMAP

IxLoad Tcl API Programming Guide

877

IMAP

IMAP logout Response Sent
IMAP list Response Sent
IMAP select Response Sent
IMAP fetch Response Sent
IMAP store Response Sent
IMAP create Response Sent
IMAP delete Response Sent
IMAP close Response Sent
IMAP expunge Response Sent
IMAP uid_fetch Response Sent
IMAP uid_store Response Sent
IMAP capability Sent Failed
IMAP noop Sent Failed
IMAP login Sent Failed
IMAP logout Sent Failed
IMAP list Sent Failed

Total number of LOGOUT responses sent by the server. Total number of LIST responses sent by the server. Total number of SELECT responses sent by the server. Total number of FETCH responses sent by the server. Total number of STORE responses sent by the server. Total number of CREATE responses sent by the server. Total number of DELETE responses sent by the server. Total number of CLOSE responses sent by the server. Total number of EXPUNGE responses sent by the server. Total number of UID FETCH responses sent by the server. Total number of UID STORE responses sent by the server. Total number of CAPABILITY responses that the server failed to send. Total number of NOOP responses that the server failed to send. Total number of LOGIN responses that the server failed to send. Total number of LOGOUT responses that the server failed to send. Total number of LIST responses that the server failed to send.

878

IxLoad Tcl API Programming Guide

IMAP

IMAP select Sent Failed
IMAP fetch Sent Failed
IMAP store Sent Failed
IMAP create Sent Failed
IMAP delete Sent Failed
IMAP close Sent Failed
IMAP expunge Sent Failed
IMAP uid_fetch Sent Failed
IMAP uid_store Sent Failed

Total number of SELECT responses that the server failed to send. Total number of FETCH responses that the server failed to send. Total number of STORE responses that the server failed to send. Total number of CREATE responses that the server failed to send. Total number of DELETE responses that the server failed to send. Total number of CLOSE responses that the server failed to send. Total number of EXPUNGE responses that the server failed to send. Total number of UID FETCH responses that the server failed to send. Total number of UID STORE responses that the server failed to send.

! 18

IxLoad Tcl API Programming Guide

879

This page intentionally left blank.

880

IxLoad Tcl API Programming Guide

IPTV/ Video
This section describes the IPTV/Video Tcl API objects.

Overview
This section describes the IPTV / Video commands.
Video
The IxLoad video API consists of a client agent, a server agent, and their com Note: Do not run video tests from the ../3rdParty/Tcl8.4.7/bin directory. During Download-on-Demand (DOD), a .tgz file is created which uses a python tarfile which in turn uses zlib.dll. The ../3rdParty/Tcl8.4.7/bin directory contains a local zlib.dll inside which confuses the DOD process.
IPTV
The IPTV client and server API structure is similar to the video API structure with some additions.
IPTV Mode Server and Client
The IxLoad Video client and server can operate in either of two modes: Video to emulate a standard multicast/unicast video client and server. The option for Video is 0. IPTV to emulate an IPTV client and server. The option for IPTV is 1. For exam $Activity_IPTV_VideoServer1 agent.pm.videoConfig.config \-serverMode 1

IxLoad Tcl API Programming Guide

881

IPTV/ Video
Video Server
In the IPTV mode, the IxLoad video server can be configured to emulate two types of IPTV servers: a combination A/D Server or a V server.
l In an actual IPTV implementation an A (Acquisition) server packages RTP streams into multicast UDP packets and streams them onto the distribution network.
l A D (Distribution) server caches a certain amount of the multicast video data being streamed over the network. When a user changes a channel, the D server sends a short unicast burst of the new channel's video traffic for the user to view while the system switches the user from the previous channel's multicast group to the new channel's group.
l A V server provides Video-on-Demand service to an IPTV client. This is explained in the type option in Video Properties and Stream.
Video Client
In IPTV mode, the IxLoad video client emulates an IPTV client. In IPTV mode, all the same commands are available as in Video mode, except that the Join command is replaced with the ICCCommand for testing multicast performance. This is explained in the Commands section.
IPTV Options
The IPTV Options configure the options specific to the video client in IPTV mode. Refer IPTV Options for detailed information.
Objectives
The objectives (userObjective) you can set for Video are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers l streams l connectionRate l transactionRate
Video Client API Structure
The figure below shows the structure of the video client API.

882

IxLoad Tcl API Programming Guide

IPTV/ Video

IxLoad Tcl API Programming Guide

883

IPTV/ Video
Video Client Agent
Video Client Agent - configure an IPTV or video client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem option...] $Activity_IPTV_VideoClient1 agent.config
DESCRIPTION
The Video Client Agent command defines a simulated user viewing video clips from a video-on-demand (VOD) server or real-time streaming video from a broadcast-type video source. A video client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appen subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). loopValue If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0). name The name associated with this object, which must be set at object creation time.

884

IxLoad Tcl API Programming Guide

IPTV/ Video

STATISTICS
Note: For some of the per-stream and Video Quality monitoring statistics disin the GUI, various scaling factors are applied to make the values easier to read. When you retrieve these statistics from the Tcl API, the values returned may be different from those shown in the GUI. The following statistics are affected:
l MDI-DF, MDI-DF-AVG, MDI-DF-MIN, and MDI-DF-MAX are in nanosec(ns) when retrieved from the Tcl API. In the GUI, they are displayed in milliseconds (ms).
l Stream Bit Rate is returned in bits per second (bps) when retrieved from the Tcl API. In the GUI, it is displayed in kilobits per second (kbps).
l When retrieved from the Tcl API, MOS_V, Degradation (Loss), Degradation (Discard), and Degradation (Video Codec) are scaled up by 256 compared to GUI. For example, the MOS score is displayed on a 0 - 5 scale in the GUI but is returned as a value in the range 0 - 1280 when retrieved from the Tcl API. The Degradation statistics are displayed in the GUI as a percentage. When retrieving them from the Tcl API, divide the returned value by 256 to get the percentage.
l When retrieved from the Tcl API, VSTQ is scaled by 2 compared to the value in the GUI. Divide the returned value by 2 to get the actual value.

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity IPTV_

VideoClient1 of NetTraffic

Traffic1@Network1#################################################set Activity_IPTV_

VideoClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"Video Client" ]################################################## Timeline1 for

activities IPTV_VideoClient1#################################################set

Timeline1 [::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_IPTV_VideoClient1

config \-enable

true \-name

"IPTV_VideoClient1" \-enableConstraint

false \-

userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1$Activity_IPTV_VideoClient1 agent.config \-enable

true \-name

"IPTV_VideoClient1"$Activity_IPTV_

VideoClient1 agent.pm.signalling.config \-general_query_response_mode

true \-unsolicited_response_mode

false \-report_frequency

60 \-igmp_version

"IGMP v3" \-mld_version

"MLD v2" \-router_alert

true \-group_specific_query_

response_mode

true \-enable_custom

false \-suppress_

IxLoad Tcl API Programming Guide

885

IPTV/ Video

reports

true \-ip_version

"IPv4"

\-immediate_response

false \-client_mode

0$Activity_IPTV_VideoClient1 agent.pm.signalling.profile_table.clear$Activity_IPTV_

VideoClient1 agent.pm.signalling.profile_table.appendItem \-id

"ProfileTable" \-name

"Fast Switching" \-num_

profiles

1 \-channel_switch_delay_max

0 \-

duration_max

30 \-duration_min

10 \-percentage

50.0 \-channel_switch_delay_min

0$Activity_IPTV_VideoClient1 agent.pm.signalling.profile_table.appendItem \-id

"ProfileTable" \-name

"Slow Switching" \-num_

profiles

1 \-channel_switch_delay_max

0 \-

duration_max

300 \-duration_min

100 \-percentage

50.0 \-channel_switch_delay_min

0$Activity_IPTV_VideoClient1 agent.pm.stats.config \-MinDelay

20 \-MaxDelay

80 \-enableFrameStats

false \-qualityLimit

0 \-IgnoreLoss

false \-frameLimit

0 \-JBEMode

0 \-enableVQmonStats

false \-totalLimit

0 \-updateInterval

2000 \-NomDelay

20 \-bitrateLimit

0$Activity_IPTV_VideoClient1 agent.p-

m.iptv_options.config \-iptv_switch_delay

1 \-iptv_switch_mode

0$Activity_IPTV_VideoClient1 agent.pm.advanced.config \-vlan_priority

0 \-type_of_service_for_rtsp

"Best Effort (0x0)" \-rtsp_header

"Real Player" \-enableTosRTSP

false \-implicitLoopCheck

true \-enableEsm

false \-users_allowed

1 \-esm

1460 \-enableVlanPriority

false \-transport

1$Activity_IPTV_VideoClient1 agent.p-

m.advanced.header_values.clear$Activity_IPTV_VideoClient1 agent.pm.advanced.header_

values.appendItem \-id

"Header" \-name

"User-Agent" \-value

"RealMedia Player

(HelixDNAClient)"$Activity_IPTV_VideoClient1 agent.pm.ipHistory.clear$Activity_IPTV_

VideoClient1 agent.pm.channelSrcHistory.clear$Activity_IPTV_VideoClient1 agent.p-

m.channelSrcHistory.appendItem \-id

"chan-

nelSrc" \-name

"ANY"$Activity_IPTV_VideoClient1

agent.pm.UrlHistory.clear$Activity_IPTV_VideoClient1 agent.pm.predefined_

tos.clear$Activity_IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Best Effort (0x0)"$Activ-

ity_IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Class 1 (0x20)"$Activity_

IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Class 2 (0x40)"$Activity_

IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Class 3 (0x60)"$Activity_

IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Class 4 (0x80)"$Activity_

IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Express Forwarding

886

IxLoad Tcl API Programming Guide

IPTV/ Video

(0xA0)"$Activity_IPTV_VideoClient1 agent.pm.predefined_tos.appendItem \-id

"TypeOfService" \-tos_val

"Control (0xC0)"$Activity_

IPTV_VideoClient1 agent.pm.commands.clear$Activity_IPTV_VideoClient1 agent.p-

m.commands.appendItem \-id

"JoinCommand" \-des-

tination_server_activity

"Traffic2_IPTV_VideoServer1:0" \-group_address_

step

"0.0.0.1" \-channel_switch_mode

"Con-

current" \-start_group_address_sym

"" \-sigma

1 \-start_group_address

"" \-channel_switch_delay_max

0 \-mu

1 \-varLambda

1 \-duration_max

10 \-duration_min

10 \-watch_count

1 \-group_address_count

1 \-source_address

"ANY" \-concurrent_channels

1 \-channel_switch_delay_min

0

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

887

IPTV/ Video

Commands
Commands--Creates the list of Video commands that the client will send to a Video server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem option...] $Activity_IPTV_VideoClient1 agent.pm.commands.appendItem
DESCRIPTION
A command is added to the Commands object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id Video command to be executed. One of the following:

Command

Description

ICCCommand JoinCommand
PlayCommand

The Instant Channel Change (ICCCommand) plays IPTV streams for a fixed duration and then switches to new streams.
The JOIN command sends an IGMP JOIN message to one or more IGMP servers in order to play their broadcast channels. The client can join multiple multicast groups in sequence or at random intervals. After joining a multicast group, the client plays each channel for a specific duration. After the duration has expired, the client sends the IGMP LEAVE command for that channel. The client plays all the channels specified in the JOIN command, then it moves on to the next command in the command list. Once the test enters the rampdown phase, the client does not join any new channels.
The PLAY command plays the VoD video stream from a video server. The PLAY command performs the following RTSP commands in order: DESCRIBE SETUP PLAY

888

IxLoad Tcl API Programming Guide

IPTV/ Video

PlayMediaCommand
PlayStaticCommand KeepAliveCommand
PauseCommand SeekCommand ResumeCommand StopCommand ThinkCommand

The PLAYMEDIA command supports symbolic destination for Video Server in Video Client. The Media / URL in PLAY command and start_group_ address for JOIN command are resources that get populated when the server activity is selected. The server activity can be None, when IxLoad video client is run against an external video server. The PLAYMEDIA command performs the following RTSP commands, in order: DESCRIBE SETUP PLAY
PlayStatic command plays a video stream whose description is sourced from the PlayStatic command itself. PlayStatic is intended for use with RTSP servers that do not implement the RTSP Describe command, which is normally the source of a video stream's description.
KeepAliveCommand periodically sends an empty RTSP GET_PARAMETER command to the server so that the server does not assume that the client is inactive and then tears down the connection. Although you can add a KeepAliveCommand to any position in a command list, IxLoad will only send a KeepAliveCommand if a stream has been setup and is active. Typically, KeepAliveCommnds should only be added after PLAY, PAUSE and similar commands. KeepAliveCommand can only be used for VoD (unicast) streams.
The PAUSE command sends an RTSP PAUSE command to pause playback of the current VoD video stream. To resume playback, use the RESUME command.
The SEEK command jumps to a location in the media stream and plays from that location. The SEEK command must be preceded by a PAUSE command. The IxLoad video server only supports the SEEK command for transport streams (MPEG-2 TS files). It does not support the SEEK command for MPEG-4, H.264, or VC1 streams.
The RESUME command sends an RTSP PLAY command to resume playback of a paused VoD video stream.
The STOP command sends an RTSP STOP command to stop playback of the current VoD video stream.
The {THINK} command causes the client to become inactive.

IxLoad Tcl API Programming Guide

889

IPTV/ Video

PassiveCommand

The PassiveCommand passively monitors unicast or multicast audio and video streams and records statistics for them.
When used in conjunction with an AFM module, this command enables you to use the AFM module as a tap, and gather statistics such as MDI or video quality metrics at various points within a network. Statistics are recorded both globally and on a per-stream basis. Quality metrics are recorded for both video and audio streams.

LoopBeginCommand

The {Loop Begin} command is an IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

LoopEndCommand

{Loop End} ends the list of commands that will be executed by the preceding {Loop Begin} command.

RTSP Commands

In addition to the high-level commands that simplify testing video, the IxLoad IPTV/Video client also allows you to configure and send individual RTSP commands. This enables you to test video using low-level RTSP commands, and take advantage of the quality metrics other statistics that are available in the IxLoad IPTV/Video client.

DescribeCommand

Retrieves the description of a presentation or media object identified by the URL in the media option. The server responds with a description of the requested resource.

RTSPSetupCommand

Specifies the transport mechanism to be used for the streamed media. A client can issue a SETUP request for a stream that is already playing to change transport parameters, if the server allows it. Specify the transport mechanism in the arguments option.

RTSPPlayCommand

Tells the server to start playback using the mechanism specified by a previous SETUP command. Specify the stream in the media option, and the playback duration in the arguments option.

RTSPPauseCommand

Causes the stream playback to be temporarily halted. If you specify a stream in the media option, only playback of that stream is halted. If you do not specify a stream, all streams are paused.

RTSPSetParamCommand This method requests to set the value of a parameter for a stream specified by the URL. Specify the name of this parameter in the arg option. IxLoad Video Server does not support RTSP SET_PARAMETER command.

890

IxLoad Tcl API Programming Guide

IPTV/ Video

RTSPGetParamCommand

Retrieves the current value of a parameter from the server. If you issue the GET_PARAMETER with no arguments, it functions as a keep-alive to prevent the server from closing the connection when long presentations are playing. IxLoad Video Server does not support RTSP GET_ PARAMETER command.

RTSPTeardownCommand Stops the stream delivery for the URL listed in the media option, freeing the resources associated with it. After issuing the TEARDOWN command, the RTSP session identifier associated with the session is no longer valid.

Arguments for id = ICCCommand (IPTV mode only)
The Instant Channel Change (ICC) command plays IPTV streams for a fixed duration and then switches to new streams. You can only use the ICC command in Activities running over IPv4 networks.
destination_server_activity
Video server hosting the media that the client will play.
l IxLoad server: If you are using an IxLoad video server, specify the server address. l External server: If you are using an external video server, specify None.
Default = None.
group_address_step
Specifies the amount of increase in the channel number (A server address). See the description of the group_address_count for more information.
channel_switch_mode
Specifies the order in which the client joins the multicast groups in the Channel List to view the channels.
sequential: The client plays the channels in the Channel List one after the other, in order based on their address, starting with the start_group_address. After the Channel Watch Duration expires, the client sends an IGMP LEAVE for the channel being viewed. The client waits for the duration specified by Channel Switch Delay duration before joining the next group to view the next channel.
poisson: The client plays the channel in an order that follows a Poisson distribution. Configure the watch_count, then set the varLambda value for the Poisson distribution.
normal: The client plays the channel in an order that follows a Normal distribution. Configure the watch_count, then set the mu and sigma values for the Normal distribution.
unique: Each user starts from a different channel, and plays each channel in numerical order. There are no configuration options for a Unique sequence. The number of channels played is automatically set to the same value as the Count parameter.
custom: The client plays the channels following an existing profile, but in a sequence that you specify.
Default = "sequential".

IxLoad Tcl API Programming Guide

891

IPTV/ Video
start_group_address_sym
The address of the video server hosting the media that the client will play. sigma
In a Normal distribution, m (mu) is the location parameter and s (sigma) is the scale parameter. In IxLoad, mu is the mean average channel number that the distribution will be clustered around. As channel numbers increase or decrease away from the mu value, they are less likely to be watched. Sigma determines the width of the distribution, the number of channels that may be watched. start_group_address
Specifies the first group address. channel_switch_delay_max
If you want the client to pause before switching to the next channel, specify the maximum length of the delay here. da_switchover_delay
If you want the client to pause before switching to the next channel, specify the length of the delay here. You can specify a fixed-length delay (same delay before playing every channel) or a randomlength delay (different delay before playing every channel). serverIP
IP address of the D server. mu
In a Normal distribution, m (mu) is the location parameter and s (sigma) is the scale parameter. In IxLoad, mu is the mean average channel number that the distribution will be clustered around. As channel numbers increase or decrease away from the mu value, they are less likely to be watched. Sigma determines the width of the distribution, the number of channels that may be watched. varLambda
A Poisson distribution models the number of events that occur within a given time interval. In a Poisson distribution, l (lambda) is the shape parameter, which indicates the average number of events in the given time interval. When used for IxLoad, the lambda value is the mean average channel number that the distribution will be clustered around. The bell-curved shape of the distribution ensures that the most-watched channels will be those closest to the mean (the lambda), with channels less likely to be watched as channel numbers move away from the lambda value. urls
IPTV (multicast) streams to play from the D server. You can enter sequence generators in this field to generate URLs for more than one stream. The number of D server URLs must match the A server Channel Count. duration_max

892

IxLoad Tcl API Programming Guide

IPTV/ Video
Maximum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10"). duration_min Minimum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10"). watch_count Number of channels that will be viewed as a part of this Join command. If you set the channel_switch_mode to Normal or Poisson, you can configure the value here. For the other distribution options, this option is read-only and automatically set to the same value as the Channel Count parameter. group_address_count Specifies the number of additional channels, if you want the client to play more than one channel (stream). source_address Configures the source address (the IP address of the A server), if the client uses IGMP v3 and you want to send a source-specific JOIN to a multicast group. If you specify ANY, the client does not specify a particular source address. Default = "ANY". concurrent_channels Specifies the number of channels that each client plays at one time. You can specify up to four channels to play at one time. Default = 1. channel_switch_delay_min If you want the client to pause before switching to the next channel, specify the minimum length of the delay here.
Arguments for id = JoinCommand
start_group_address IP address of the first multicast group that the client will join. group_address_count Number of multicast groups that the client will join. Minimum = "1," Maximum = "1,000." (Default = "1"). group_address_step

IxLoad Tcl API Programming Guide

893

IPTV/ Video

If the client will join more than one multicast group, enter the amount of increase in the multicast group address. Minimum = "1." (Default = "1").
source_address
If the client uses IGMP v3 and you want the JOIN request to specify a source for the video stream, configure the source address in this field. If you specify ANY, the client does not specify a particular source address. (Default = "ANY")
duration_max
Maximum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").
duration_min
Minimum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").
concurrent_channels
If channel_switch_mode is set to Concurrent, this parameter specifies the number of channels that the client plays at one time. Minimum = "1," Maximum = "5." (Default = "1").
channel_switch_mode
Order in which the client joins the multicast groups in the Channel List to play the channels. The choices are:

Mode

Description

sequential

The client plays the channels in the Channel List one after the other, in order based on their address, starting with the Starting Group Address. After the Channel Watch Duration expires, the client sends an IGMP LEAVE for the channel being watched. The client waits for the duration specified by Channel Switch Delay duration before joining the next group to play the next channel.

random

The client plays the channels in the Channel List randomly.

concurrent (default) The client plays the channels in the Channel List in order, based on their address. Specify the number of channels that it can play at any one time in the Concurrent Channels field.

poisson

The client plays the channel in an order that follows a Poisson distribution. For Poisson distribution, the channel_switch_mode is set to "Poisson". New attributes used are: watch_count and varLambda.

normal

The client plays the channel in an order that follows a Normal distribution. For Normal distribution, the channel_switch_mode is set to "Normal" New attributes used are: mu, sigma and watch_count.

894

IxLoad Tcl API Programming Guide

IPTV/ Video

unique custom

Each user starts from a different channel, and plays each channel in numerical order. There are no configuration options for a Unique sequence. The number of channels played is automatically set to the same value as the Count parameter.
The client plays the channels following an existing profile, but in a sequence that you specify.

channel_switch_delay_min
Minimum length of the time, in milliseconds, that the client will pause before playing the next channel on the server. Minimum = "0," Maximum = "2,147,483,647." (Default = "0").
channel_switch_delay_max
Maximum length of the time, in milliseconds, that the client will pause before playing the next channel on the server. Minimum = "0," Maximum = "2,147,483,647." (Default = "0").

Arguments for id = PlayCommand

serverIP

Video server that hosts the video stream to be played.

media

Video stream to be played. You can include sequence generators in this field to automatically generate

unique requests from simulated users. For information on how to use sequence generators, see the sec-

tion on Using Automatic Sequence Generators. For example:

-media

"Stream\[1-\]"

duration_max

Maximum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").

duration_min

Minimum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").

Arguments for id = PlayMediaCommand

symServerIP

Video server that hosts the video stream to be played.

media

Video stream to be played. You can include sequence generators in this field to automatically generate

unique requests from simulated users. For information on how to use sequence generators, see the sec-

tion on Using Automatic Sequence Generators. For example:

-media

"Stream\[1-\]"

IxLoad Tcl API Programming Guide

895

IPTV/ Video
duration Length of time (in seconds) to play the video stream. Minimum = "1," Maximum = "2,147,483." (Default = "1").
Arguments for id = PlayStaticCommand
symServerIP Video server that hosts the video stream to be played. media Video stream to be played. You can include sequence generators in this field to automatically generate unique requests from simulated users. For information on how to use sequence generators, see the section on Using Automatic Sequence Generators. duration Length of time (in seconds) to play the video stream. Minimum = "1," Maximum = "2,147,483." (Default = "1"). destination_server_activity Represents the symbolic destination of the server. serverIP Video server that hosts the video stream to be played.
Arguments for id = PlayMediaStaticCommand
cmdName Name of the command added to the command list. Default = "PlayMediaStaticCommand n" where n is the command's position in the command list. commandType Command type. Default = "PlayMediaStaticCommand" symServerIP Video server that hosts the video stream to be played. Default = "None". media Video stream to be played. You can include sequence generators in this field to automatically generate unique requests from simulated users. For information on how to use sequence generators, see the section on Using Automatic Sequence Generators. duration_max Maximum length of time (in seconds) to play the video stream. Minimum = "1," Maximum = "2,147,483." (Default = "1").

896

IxLoad Tcl API Programming Guide

IPTV/ Video
duration_min Minimum length of time (in seconds) to play the video stream. Minimum = "1," Maximum = "2,147,483." (Default = "1"). seekTo Reserved. Default = -1 serverIP Video server that hosts the video stream to be played. This can be an IP address or a symbolic destination (IxLoad server). Default = ""(none)
Arguments for id = KeepAliveCommand
count Number of {KeepAlive} messages to be sent. min_freq The minimum time, in milliseconds, that can elapse before the client sends the next {KeepAlive} message. max_freq The maximum time, in milliseconds, that can elapse before the client sends the next {KeepAlive} message.
Arguments for id = PauseCommand
None.
Arguments for id = SeekCommand
duration_max Maximum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10"). duration_min Minimum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").
Arguments for id = ResumeCommand
seekTo Number of seconds, measured from the start of the stream, to jump to and start playing from. Minimum = "1," Maximum = "2,147,483." (Default = "1").

IxLoad Tcl API Programming Guide

897

IPTV/ Video

duration_max
Maximum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").
duration_min
Minimum length of time, in seconds, that users of this profile will view a channel. Minimum = "1," Maximum = "2,147,483." (Default = "10").

Arguments for id = StopCommand

None.

Arguments for id = ThinkCommand
minimumInterval
Minimum length of the time, in milliseconds, that the client will pause before playing the next channel on the server. Minimum = "1,000," Maximum = "2,147,483,647." (Default = "1,000"). maximumInterval
Maximum length of the time, in milliseconds, that the client will pause before playing the next channel on the server. Minimum = "1000," Maximum = "2,147,483,647." (Default = "1,000").

Arguments for id = PassiveCommand
enableUnicast
Enables an Unicast or Multicast stream that can be monitored. (Default = "0"). If you enter 1 that is Unicast, then a new rule needs to be configured. The rule is explained below. Configuring Rule for Stream

$Activity_IPTV_VideoClient1 agent.pm.commands(0).rule.appendItem\

-id

"Rule" \

-clock_rate

90000 \

-codec

"H264" \

-value

"10000-65535" \

-rtp_pt

96

id

The name of the rule.

clock_rate

Specifies the stream's bit rate. (Default = "90000"). codec Indicates the codec used on the stream. (Default = "H264").

898

IxLoad Tcl API Programming Guide

IPTV/ Video

value Indicates the port range used by the stream. (Default = "10000-65535"). rtp_pt Sets the RTP Payload type to a default value based on the codec value. The values are:

Codec

Default RTP Payload Type value

MPEG-TS

33

H264

96 (Default)

MPEG4 Part 2 97

VC1

98

Arguments for id = LoopBeginCommand
LoopCount
Number of times to iterate. Value '0' treated as infinity. Minimum = "0," Maxi= "2,147,483,647." (Default = "5").

Arguments for id = LoopEndCommand
None.
Arguments for id = DescribeCommand
destination_server_activity
The Video server that the client will send the media URL described in media. The media URL identifies the set of stream to be controlled. Specify the destination as follows:
l If the destination is a real RTSP server, enter the server's host name or IP address. By default, the request will be sent to port 554. If the server is listening on a different port, specify the port number after the host name or IP address as follows: server:port.
l If the destination is an IxLoad RTSP server Activity, select the Activity. (Default = "None").
serverIP
The IP address of the server.
media
The presentation URL sent to the server. The presentation URL identifies the stream to be controlled. Media names may only contain letters, numbers, and the special symbols `.', `,', `_', `/' and `-'. (Default = "None").

IxLoad Tcl API Programming Guide

899

IPTV/ Video

Arguments for id = RTSPPlayCommand

duration_max Maximum length of time, in seconds, that users of this profile will view a channel. duration_min Minimum length of time, in seconds, that users of this profile will view a channel.

Arguments for id = RTSPSetParamCommand
content Specifies the value of the content. contentType Specifies the parameter of the content.

Arguments for id = RTSPGetParamCommand
content Specifies the value of the content. contentType Specifies the parameter of the content.

EXAMPLE

$Activity_IPTV_VideoClient1 agent.pm.commands.appendItem \-id

"JoinCommand" \-destination_server_activity

"Traffic2_IPTV_VideoServer-

1:0" \-group_address_step

"0.0.0.1" \-channel_switch_mode

"Concurrent" \-start_group_address_sym

"" \-sigma

1 \-start_group_address

"" \-channel_switch_delay_max

0 \-mu

1 \-varLambda

1 \-duration_max

10 \-duration_min

10 \-watch_count

1 \-group_address_count

1 \-source_address

"ANY" \-concurrent_channels

1 \-channel_switch_delay_min

0$Activity_IPTV_VideoClient1 agent.p-

m.commands.appendItem \-id

"PassiveCommand" \-

enableUnicast

0$Activity_IPTV_VideoClient1 agent.p-

m.commands.appendItem \-id

"DescribeCommand" \-

destination_server_activity

"Traffic2_IPTV_VideoServer1:554" \-serverIP

"198.18.0.101" \-media

"Stream0"$Activity_IPTV_

VideoClient1 agent.pm.commands.appendItem \-id

"RTSPSetupCommand"$Activity_IPTV_VideoClient1 agent.pm.commands.appendItem \-id

"RTSPPlayCommand" \-duration

20 \-seekTo

-1$Activity_IPTV_VideoClient1 agent.pm.commands.appendItem \-id

"RTSPTeardownCommand"

900

IxLoad Tcl API Programming Guide

SEE ALSO
Video Client Agent

IPTV/ Video

IxLoad Tcl API Programming Guide

901

IPTV/ Video

Advanced
Advanced--Sets the Video client agent's global configuration options for unicast traffic.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem option...] $Activity_IPTV_VideoClient1 agent.pm.advanced.config

DESCRIPTION
A Video client's advanced configuration options are set by modifying the options of the pm.advanced option of the Video Client Agent object using its appendItem.
SUBCOMMANDS
None.
OPTIONS
enableEsm If true, the use of the esm option is enabled. (Default = false). esm If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (TX) field. Otherwise, the TCP Maximum Segment Size is 1,460 bytes. (Default = 1,460). transport Transport protocol used to send the video stream. It applies only to VoD.

Value Description

0

RTP over UDP

1

(default) UDP

enableTosRTSP Enables the setting of the TOS (Type of Service) bits in the IP header of the RTSP packets.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

902

IxLoad Tcl API Programming Guide

IPTV/ Video

type_of_service_for_rtsp
If enableTosRTSP is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

Value

Description

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

rtsp_header Type of header used to identify the video player simulated by the Video client agent. The choices are:

Value Windows Media Player Real Player Quick Time Custom

Description Windows Media Player 9.0
(default) Real Networks RealPlayer Apple Quick Time 6.5 Custom player. Use the options to configure the headers that will identify this client.

header_values
List of headers included with RTSP requests that the client sends to the server. sent to the If rtsp_ header is set to Custom, use this option to define the capabilities of the custom video client. This list is of type Header; items are added to the list via the appendItem subcommand. Each element of the list must be of the form "name: value" without any spaces in the key. (Default = None).
disableStreamStats
Disables collection of stream-related statistics to reduce memory usage. Values = 1 (True), 0 = False (Default). max_tracks_per_stream

IxLoad Tcl API Programming Guide

903

IPTV/ Video
Maximum number of tracks (RTP streams) that the client should expect in each RTSP stream. Values = Min="1", Max="500", Default="2".
enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value. enableCustomSetup
This enables or disables the entry of parameters specified in the Transport: line of the RTSP SETUP message. You can use these parameters to set or enable additional RTSP transport options on the server. Default = false. customSetup
If enableCustomSETUPtransportParam is false, then the Transport: line contains the following data, which is mandatory for RTSP: Transport protocol, connection type (unicast or multicast), and client IP port range used for the transport protocol. For example: RTP/AVP;unicast;client_port=35246-35247
If enableCustomSETUPtransportParam is true, then IxLoad appends a semi-colon (;) to the mandatory data on Transport: line, and then appends the custom data in the field. For example, if you specify the string mode=PLAY, the Transport: line will contain the following string: RTP/AVP;unicast;client_port=35246-35247;mode=PLAYenable_custom_protocol
If true, a user-defined name is used to identify a protocol instead of the default. Specify the name using the custom_protocol_name option. Default = false. custom_protocol_name
If enable_custom_protocol is true, this option is the name used to identify a protocol instead of the standard name. Default = "MP2T". enable_custom_profile
If true, a user-defined name is used to identify a profile instead of the default. Specify the name using the custom_profile_name option. Default = false . custom_profile_name
If enable_custom_profile is true, this option is the name used to identify an A/V sync profile instead of the standard name. Default = "H2221". rtspProxyEnable

904

IxLoad Tcl API Programming Guide

IPTV/ Video

Enables use of an RTSP proxy. rtspProxyIp
If enableRtspProxy is true, specify the RTSP proxy IP address. rtspProxyPort
If enableRtspProxy is true, specify the RTSP proxy port number. followRtspRedirects
If enabled, the client follows RTSP redirect responses from the server. Default = false. rtcp_enable
If True, the RTCP port number is included in the SDP description. Values = 1 (True), 0 (False (default)). enable_async_teardown
If True, playback is stopped when the client receives a request header that contains a specific text sub-string. Values = 1 (True), 0 (False (default)). async_teardown_hdr_val
If enable_async_teardown is True, this option specifies the header sub-string that will stop playback. Default = "". enable_graceful_rampdown
If True, the test is stopped by moving to the Ramp-down phase and sessions are torn down gracefully. If False, traffic is stopped as soon as possible, which may leave sessions up on the DUT. Default = "false". enable_hwacc
If True, hardware acceleration is used. Default = "false".

EXAMPLE

$Activity_IPTV_VideoClient1 agent.pm.advanced.config \-followRtspRedirect

true \-vlan_priority

0 \-type_of_service_for_rtsp

"Best Effort (0x0)" \-rtsp_header

"Real Player" \-

enableTosRTSP

false \-implicitLoopCheck

true \-rtspProxyEnable

true \-CustomSetup

"mode=PLAY" \-enableCustomSetup

true \-enableEsm

false \-users_allowed

1 \-rtspProxyIp

"0.0.0.0" \-rtspProxyPort

"554" \-esm

1460 \-enableVlanPriority

false \-transport

1

IxLoad Tcl API Programming Guide

905

IPTV/ Video
SEE ALSO
Video Client Agent Header

906

IxLoad Tcl API Programming Guide

IPTV/ Video
Header
Header--Creates a list of RTSP headers to define a Video client as a custom video player.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem option...] $Activity_IPTV_VideoClient1 agent.pm.advanced.header_values.appendItem
DESCRIPTION
If the Advanced option rtsp_header is set to Custom, use Header to create the name = value pairs that will form the header that the Video client agent sends to the server.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
name Name of the header. RFC 2326 defines the RTSP headers. (Default = ""). value Value for header. (Default = "").
EXAMPLE
$Activity_IPTV_VideoClient1 agent.pm.advanced.header_values.appendItem -name "Cache-Control" \ -value "no-cache"
SEE ALSO
Advanced

IxLoad Tcl API Programming Guide

907

IPTV/ Video

Signaling
Signaling--Configures the multicast signaling options.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem option...] $Activity_IPTV_VideoClient1 agent.pm.signalling.config

DESCRIPTION
A Video client's Signaling options are set by modifying the options of the pm.Signalling.config option of the Video Client Agent object.
SUBCOMMANDS
None.
OPTIONS
enable_custom If enabled, the custom client profiles that have been configured will be used in a test. The duration and channel_switch_mode configured for individual JOIN commands (Arguments for id = JoinCommand on page 18-35) will not apply. (Default = "0"). igmp_version Sets the version of IGMP used by the client. The choices are:

Value

Description

"IGMPv1" IGMP version 1. Note: IGMP v1 requires IPv4 (see the ip_version option)
"IGMPv2" IGMP version 2. "IGMPv3" (default) IGMP version 3.

ip_version
Sets the IP version used for multicast addresses. If multicast addresses are in IPv4 format, and you can select the igmp_version. If multicast addresses are in IPv6 format, and you can select the mld_ version.
general_query_response_mode
If true, the video client responds to General Query messages.

908

IxLoad Tcl API Programming Guide

IPTV/ Video

Value Description

0

Client does not respond to General Query messages.

1

(default) Client responds to General Query messages.

unsolicited_response_mode
If true, the video client automatically sends full IGMP membership messages at regular intervals without waiting for a query message. In the Report Interval Field, specify the frequency, in seconds, at which unsolicited messages are generated.

Value Description

0

(default) Client does not send unsolicited IGMP membership messages.

1

Client sends unsolicited IGMP membership messages.

immediate_response
If true, the video client will ignore the value specified in the Maximum Response Delay in the Membership Query message, assume that the Delay is always zero (0) seconds, and immediately respond to the Query by sending a Report.

Value Description

(default) Client does not immediately respond to a query with a report. 0

1

Client immediately responds to a query with a report.

group_specific_query_ response_mode
If enabled, the client responds to group-specific Query messages. A group-speQuery message is sent by a multicast router so it can learn about the multireception state of one multicast address, for each of the neighboring interfaces, for example, when a member leaves a group.

Value Description

0

(default) Client does not respond to group-specific queries.

1

Client responds to group-specific queries.

mld_version
Version of the Multicast Listener Discovery (MLD) protocol used to listen for IPv6 multicast addresses. You can select MLDv1 or MLDv2.

IxLoad Tcl API Programming Guide

909

IPTV/ Video

The ip_version has to be "IPv6" for MLD. suppress_reports
(IGMPv3 only) If true, the client allows its IGMPv3 Membership Record to be "suppressed" by a membership report for version 2. The suppression will only be for group reports received from another port.

Value Description

0

Client does not allow its membership record to be suppressed.

1

(default) Client allows its membership record to be suppressed.

report_frequency

If unsolicited_response_mode is true, this option specifies the frequency (in seconds) at which unsolicited messages are generated. (Default = "30").
parallel_multicast_vod

If true, simulated users can watch a VoD stream and one or more multicast streams simultaneously. Values = 1 (True), 0 (False, default)
client_mode

Specifies whether the client is a video client (0) or IPTV client (1). Default = 0.

EXAMPLE

$Activity_IPTV_VideoClient1 agent.pm.signalling.config \-general_query_response_mode

true \-unsolicited_response_mode

false \-report_frequency

60 \-igmp_version

"IGMP v3" \-mld_version

"MLD v2" \-router_alert

true \-group_specific_query_

response_mode

true \-enable_custom

false \-suppress_

reports

true \-ip_version

"IPv4"

\-immediate_response

false \-client_mode

0

SEE ALSO

Video Client Agent

910

IxLoad Tcl API Programming Guide

IPTV/ Video
Profiles
Profiles--Determines the channel switching behavior of the video client.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem option...] $Activity_IPTV_VideoClient1 agent.pm.signalling.profile_table.appendItem
DESCRIPTION
If custom profiles is enabled, the channel watch duration (the length of time a channel is viewed) and the channel_switch_mode (how quickly the simulated user switches from to a different channel) for all the users' JOIN commands are controlled by the profiles. A Video client's Profile table is set by modifying the options of the pm.Signaling option of the Video Client Agent object using the appendItem command.
OPTIONS
name
This is the name of the profile table. If enabled, the custom client profiles that have been configured will be used in a test. The duration and channel_switch_mode configured for individual JOIN commands (Arguments for id = JoinCommand on page 18-35) will not apply. (Default = "0"). num_profiles
This indicates the number of profiles to be added with the same parameters. percentage
Percentage of video clients that the profile will be applied to. The percentages of all profiles must add up to 100. The profile table is populated by default with a couple of profiles. If you want to declare a custom profile, you need to clear the table with the following command: $clnt_traffic agentList(0).pm.signalling.profile_table.clear
If you do not clear the table before you start adding profiles, you will get an exception saying you have too many profiles which add up to over 100%. duration_min
Minimum length of time, in seconds, that users of this profile will view a channel (play a file). Minimum = "1," Maximum = "2,147,483." (Default = "1"). duration_max

IxLoad Tcl API Programming Guide

911

IPTV/ Video

Maximum length of time, in seconds, that users of this profile will view a chan(play a file). Minimum = "1," Maximum = "2,147,483." (Default = "1").
channel_switch_delay_min

Minimum length of time, in milliseconds, that users of this profile will pause before viewing a new channel (requesting a new file). Minimum = "0," Maximum = "2,147,483,647." (Default = "0").
channel_switch_delay_max
Maximum length of time, in milliseconds, that users of this profile will pause before viewing a new channel (requesting a new file). Minimum = "0," Maximum = "2,147,483,647." (Default = "0").

EXAMPLE

$Activity_IPTV_VideoClient1 agent.pm.signalling.profile_table.appendItem \-id

"ProfileTable" \-name

"Fast Switching" \-num_

profiles

1 \-channel_switch_delay_max

0 \-

duration_max

30 \-duration_min

10 \-percentage

50.0 \-channel_switch_delay_min

0$Activity_IPTV_VideoClient1 agent.pm.signalling.profile_table.appendItem \-id

"ProfileTable" \-name

"Slow Switching" \-num_

profiles

1 \-channel_switch_delay_max

0 \-

duration_max

300 \-duration_min

100 \-percentage

50.0 \-channel_switch_delay_min

0

SEE ALSO

Video Client Agent

Signaling

912

IxLoad Tcl API Programming Guide

IPTV/ Video

Channel View

Channel View Table--Describes the channel view configuration options.

DESCRIPTION
Describes the options that are specific to the channel view table in custom option for channel_switch_ mode for IPTV and multicast.

SYNOPSIS

set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem] $Activity_IPTV_VideoClient1 agent.pm.commands(0).channelviewTable.appendItem

Options
view_sequence Mentions the sequence in which the channel is viewed. view_sequence Indicates the name of the channel view table.

EXAMPLE

$Activity_IPTV_VideoClient1 agent.pm.commands(0).channelviewTable.appendItem \-id

"ChannelViewTable" \-view_sequence

"0-8,9" \-name

"Fast Switching"$Activity_IPTV_VideoClient1 agent.pm.commands(0).chan-

nelviewTable.appendItem \-id

"ChannelViewTable"

\-view_sequence

"0-8,9" \-name

"Slow Switching"

IxLoad Tcl API Programming Guide

913

IPTV/ Video

IPTV Options
IPTV Options--Describes the options that are specific to the video client in IPTV mode.
SYNOPSIS
set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem $Activity_IPTV_VideoClient1 agent.pm.iptv_options.config
DESCRIPTION
Describes the options that are specific to the video client in IPTV mode. IPTV Options are configured with the agent.pm.iptv_options.config option of activity list of the Video Client Agent.
Options
iptv_switch_delay If iptv_switch_mode is "2" then specify the fixed length of time here. minimum = "1", maximum = "60", default = "1". iptv_switch_mode Selects how the IPTV client switches from the D server stream to the A server stream. The choices are:

Value

Description

"0" (Default) Stop receiving D server stream when first A server packet is received

"1"

Receive D server stream for its entire duration

"2"

Stop receiving D server streams after receiving A server stream for certain duration

EXAMPLE

set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem$Activity_

IPTV_VideoClient1 agent.pm.iptv_options.config \-iptv_switch_delay

1 \-iptv_switch_mode

2

914

IxLoad Tcl API Programming Guide

IPTV/ Video
Stats
Stats--Configures the statistics that IxLoad gathers for the client's video streams.
DESCRIPTION
Stats are configured with the agent.pm.stats.config option of activity list of the Video Client Agent.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_IPTV_VideoClient1 agent.pm.stats.config
Options
PerStreamEntriesPerUser Number of streams displayed for each user in the per-Stream view of the statistics. Default = "4", Min = "1", Max =" 4". updateInterval Frequency, in milliseconds, at which IxLoad gathers the Quality Metrics statistics. Default="2000", Min = "2000", Max = "100000". nominalDelay Length of time that packets are held in playout buffer before being played. Default="2", Min = "1", Max = "100000". bufferSize Maximum number of packets that can be stored in the playout buffer at any instance in time. Defaultt="65535", Min = "1", Max = "65535". enableVuserMonitor Enables monitoring of a virtual user. Default = false. vuserId ID of the virtual user that you want to monitor. Min="1" Max="2147483647" Default="1". enableVQmonStats If enabled, IxLoad applies the values in the Quality Metrics fields to the video streams received by the client and computes the Quality Metrics statistics. updateInterval

IxLoad Tcl API Programming Guide

915

IPTV/ Video

Frequency, in milliseconds, at which IxLoad gathers the statistics related to the quality metrics. Default="2000", Min = "2000", Max = "100000". MinDelay This parameter is no longer used in IxLoad 4.20 and subsequent releases. MaxDelay This parameter is no longer used in IxLoad 4.20 and subsequent releases. enableFrameStats This parameter is no longer used in IxLoad 4.20 and subsequent releases. NomDelay This parameter is no longer used in IxLoad 4.20 and subsequent releases. IgnoreLoss This parameter is no longer used in IxLoad 4.20 and subsequent releases. JBEMode This parameter is no longer used in IxLoad 4.20 and subsequent releases. NomDelay This parameter is no longer used in IxLoad 4.20 and subsequent releases. totalLimit This parameter is no longer used in IxLoad 4.20 and subsequent releases. frameLimit This parameter is no longer used in IxLoad 4.20 and subsequent releases.

EXAMPLE

$Activity_IPTV_VideoClient1 agent.pm.stats.config \

-MinDelay

5\

-PerStreamEntriesPerUser

4\

-MaxDelay

80 \

-enableFrameStats

false \

-NomDelay

20 \

-qualityLimit

0\

-IgnoreLoss

false \

-frameLimit

0\

916

IxLoad Tcl API Programming Guide

-JBEMode -enableVQmonStats -vuserId -enableVuserMonitor -totalLimit -updateInterval -bufferSize -bitrateLimit -nominalDelay

0\ false \
1\ false \
0\ 2000 \
65535 \ 0\
2

IPTV/ Video

IxLoad Tcl API Programming Guide

917

IPTV/ Video

Video Server Agent
Video Server Agent - create a video server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IPTV_VideoServer1 agent.config
DESCRIPTION
A video server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity IPTV_

VideoServer1 of NetTraffic

Traffic2@Network2#################################################set Activity_IPTV_

VideoServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"Video Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

IPTV_VideoServer1 config \-enable

true \-name

"IPTV_VideoServer1" \-timeline

$_Match_Longest_$Activ-

ity_IPTV_VideoServer1 agent.config \-enable

true \-

name

"IPTV_VideoServer1"$Activity_IPTV_

VideoServer1 agent.pm.videoConfig.config \-serverMode

0$Activity_IPTV_VideoServer1 agent.pm.videoConfig.videoList.clear$Activity_IPTV_

VideoServer1 agent.pm.videoConfig.videoList.appendItem \-id

918

IxLoad Tcl API Programming Guide

IPTV/ Video

"Video" \-dest_port_incr

0 \-addr_incr

"0.0.0.1" \-name

"Stream0" \-stream_count

10 \-

"" \-duration

10 \-IP_type

"" \-type

"VoD" \-starting_dest_port

1234$Activity_IPTV_VideoServer1 agent.pm.advancedOptions.config \-enableEsm

false \-type_of_service_for_rtsp

"Best Effort (0x0)" \-enableVlanPri-

ority_for_rtsp

true \-listen_port

554 \-

enableTosRTSP

false \-enableTosData

false \-link_speed

1000 \-type_of_service_for_data

"Best Effort (0x0)" \-esm

1460 \-vlan_priority_

rtsp

2$Activity_IPTV_VideoServer1 agent.p-

m.videoProp.stream.clear$Activity_IPTV_VideoServer1 agent.p-

m.videoProp.stream.appendItem \-id

"Stream" \-

mpeg4_contains_hint_track

"" \-mpeg4_profile

"" \-num_frames

0 \-fileButton

false \-struct_c

"" \-mpeg4_trackID

0 \-ip_bit_rate

3.75 \-cbr

0 \-tsperudp

7 \-h264_contains_hint_track

"" \-duration

10 \-transport

1 \-dest_port_incr

0 \-addr_incr

"0.0.0.1" \-d_server_tos_or_dscp

"Best Effort (0x0)" \-h264_

trackID

0 \-tos_or_dscp

"Best

Effort (0x0)" \-hor_size

0 \-filename

"" \-content

"Synthetic Payload" \-same_source_ip

false \-hrd_buffer

0 \-h264_packetization_mode

1 \-hrd_rate

0 \-type

"VoD" \-enable_d_server_tos

false \-profile

0 \-starting_dest_port

1234 \-duration_in_packets

0 \-file_duration

0.0 \-min_frame_size

0 \-

"" \-frame_rate

0.0 \-max_ip_bit_rate

0.0 \-file_duration_in_rtp_clock

0.0 \-h264_ignore_hint_track

false \-h264_requires_fragmentation

"" \-mpeg4_level

"" \-enable_tos

false \-mpeg_type

"MPEG2 Transport Stream" \-name

"Stream0" \-vert_

size

0 \-level

0 \-

stream_count

10 \-max_packet_rate

0.0 \-max_frame_size

0 \-mpeg4_ignore_hint_track

false \-max_allowed_requests_d_server

1 \-h264_level

"" \-h264_profile

""$Activity_IPTV_VideoServer1 agent.p-

m.predefined_tos_for_rtsp.clear$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_

for_rtsp.appendItem \-id

"TypeOfServiceForRtsp"

\-tos_val_for_rtsp

"Best Effort (0x0)"$Activity_IPTV_

VideoServer1 agent.pm.predefined_tos_for_rtsp.appendItem \-id

"TypeOfServiceForRtsp" \-tos_val_for_rtsp

"Class 1

(0x20)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_rtsp.appendItem \-id

"TypeOfServiceForRtsp" \-tos_val_for_rtsp

"Class 2

(0x40)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_rtsp.appendItem \-id

IxLoad Tcl API Programming Guide

919

IPTV/ Video

"TypeOfServiceForRtsp" \-tos_val_for_rtsp

"Class 3

(0x60)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_rtsp.appendItem \-id

"TypeOfServiceForRtsp" \-tos_val_for_rtsp

"Class 4

(0x80)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_rtsp.appendItem \-id

"TypeOfServiceForRtsp" \-tos_val_for_rtsp

"Express Forwarding

(0xA0)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_rtsp.appendItem \-id

"TypeOfServiceForRtsp" \-tos_val_for_rtsp

"Control

(0xC0)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.clear$Activity_

IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Best Effort

(0x0)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Class 1

(0x20)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Class 2

(0x40)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Class 3

(0x60)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Class 4

(0x80)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Express Forwarding

(0xA0)"$Activity_IPTV_VideoServer1 agent.pm.predefined_tos_for_data.appendItem \-id

"TypeOfServiceForData" \-tos_val_for_data

"Control (0xC0)"

SEE ALSO

ixNetTraffic

920

IxLoad Tcl API Programming Guide

IPTV/ Video

Video Properties
Video Properties--Adds a video stream.

SYNOPSIS
set serverTraffic [::IxLoad new ixServerTraffic options] $serverTraffic agentList.appendItem options... $serverTraffic agentList(0).videoProp.appendItem options... set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoServer1 [$Traffic2_Network2 activityList.appendItem options...]

DESCRIPTION
A videoProp object is added to the Video Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
name Name of the video stream. (Default = "Stream0"). type Type of the video stream. The choices for video mode are:

Value

Description

Multicast Broadcast-type real-time video stream.

VoD

Video-on-Demand stream.

Note:If a stream uses a payload file containing MPEG-4 Part-2 video or H264 video, the type must be VoD; it cannot be Multicast.

The choices for IPTV mode are:

IxLoad Tcl API Programming Guide

921

IPTV/ Video

Value Description

AD

An A (Acquisition) server packages RTP streams into multicast UDP packets and streams

Server them onto the distribution network.

A D (Distribution) server caches a certain amount of the multicast video data being streamed over the network. When a user changes a channel, the D server sends a short unicast burst of the new channel's video traffic for the user to view while the system switches the user from the previous channel's multicast group to the new chan's group.

V

A V server provides Video-on-Demand service to an IPTV client.

Server

stream
This is a list of type Stream. The elements in this list comprise the list of streams available on the Video server. (Default = {}).
stream_count
If the video or IPTV A Server type is Multicast, this parameter specifies the numof instances of this stream that will be streamed out. specifies the first Multicast Group Address.
If the video or D Server type is VoD, this parameter specifies how many instances of the stream that the server hosts. Minimum = "1," Maximum = "1,000." (Default = "1").
set payloadfile
This option specifies the name of the video file that will be streamed by the IxLoad Video Server or IPTV Server. IxLoad Video Server can stream H264 and MPEG4 encoded video track, in a video file, provided the file is in MPEG-4 file format.
starting_multicast_group_addr
For a Multicast channel, this field specifies the address of the first multicast group that the channel will be available on.
addr_incr
If more than one instance of the Broadcast channel will be streamed out (stream_count is greater than 1), this parameter specifies the amount of increase in each multicast group address for the streams. Minimum = "1," Maximum = "2,147,483,647." (Default = "1").
starting_dest_port
For a Multicast channel, this field specifies the first port number that the channel will be available on. Minimum = "0," Maximum = "65,535." (Default = "0").
dest_port_incr

922

IxLoad Tcl API Programming Guide

IPTV/ Video

If more than one instance of the Multicast channel will be streamed out (stream_count is greater than 1), this parameter specifies the amount of increase in each port number for the streams. Minimum = "0," Maximum = "2,147,483,647." (Default = "0").
duration
If the stream type is VoD or D Server, this parameter specifies the duration of the video stream. Minimum = "0," Maximum = "2,147,483." (Default = "0").

EXAMPLE

set payloadfile "D:/MPEG4/Cloud-vs11-withaudio(3.75Mbps).ts.MP4"puts

$payloadfileputs "Before adding Stream1."$svr_traffic agentList(0).p-

m.videoProp.stream.appendItem \ -name

"Stream1" \ -content

"Real Payload" \ -filename

$payloadfile \ -ip_bit_rate

"3.5000" \ -type

"VoD" \ -stream_count

"2" \ -

duration

"100"puts "After adding Stream1."#---------------------------

-------------------------------#ipv6 example#---------------------------------------

-------------------$svr_traffic agentList(0).pm.videoConfig.videoList(0).config \

-name

"Stream0" \ -type

"Multicast"

\

- "FF04::13" \ -stream_count

1

\ -addr_incr

"0::1"

SEE ALSO

Video Server Agent

IxLoad Tcl API Programming Guide

923

IPTV/ Video

Advanced Options
Advanced Options--Sets the Video server agent's global configuration options.
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_IPTV_VideoServer1 agent.pm.advancedOptions.config

DESCRIPTION
A Video server's advanced configuration options are set by modifying the options of the pm.advancedOptions.confog option of the Video Server Agent object.
SUBCOMMANDS
None.
OPTIONS
listen_port Port that RTSP server listens on for new connections. Minimum = "1," Maximum = "65,535." (Default = "554"). enableEsm If true, the use of the ESM option is enabled. (Default = false). enableTosRTSP Enables the setting of the TOS (Type of Service) bits in the header of the RTSP control packets.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

enableTosData Enables the setting of the TOS (Type of Service) bits in the header of the RTSP data packets.

Value Description

0

(default) TOS bits not enabled.

1

TOS bits enabled.

924

IxLoad Tcl API Programming Guide

IPTV/ Video

esm
If enableEsm is true, the ESM value to negotiate with. (Default = 1,460).
type_of_service_for_rtsp
If enableTosRTSP is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "Best Effort 0x0"). If you want to specify the standard choices that are in the GUI, you can use a string representation. To specify any of the other 255 TOS values, specify the decimal value. The default choices are:

Value

Description

"Best Effort (0x0)"

(Default) routine priority

"Class 1 (0x20)"

Priority service, Assured Forwarding class 1

"Class 2 (0x40)"

Immediate service, Assured Forwarding class 2

"Class 3 (0x60)"

Flash, Assured Forwarding class 3

"Class 4 (0x80)"

Flash-override, Assured Forwarding class 4

"Express Forwarding (0xA0)" Critical-ecp

"Control (0xC0)"

Internet-control

type_of_service_for_data
If enableTosData is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes for RTSP data packets. See type_of_service_for_rtsp for the list of choices (Default = "Best Effort (0x0)").
enableVlanPriority_for_rtsp
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false).
vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value.
enable_d_server_tos
This enables (1) the Type of Service (ToS) bits. Default = 0.
d_server_tos_or_dscp

IxLoad Tcl API Programming Guide

925

IPTV/ Video

If enable_d_server_tos is set to 1, you can set the Type of Service (ToS) bits that will be set in this stream from the A server, D Server and V Server. The value set here can be over-ridden by the value that is set for d_server_tos_or_dscp in Stream configuration. The available choices are:

Value

Description

Best Effort (0x0) (Default) Routine service.

Class 1 (0x20)

Priority service, Assured Forwarding class 1

Class 2 (0x40)

Immediate service, Assured Forwarding class 2

Class 3 (0x60)

Flash, Assured Forwarding class 3

Class 4 (0x80)

Flash-override, Assured Forwarding class 4

Express Forwarding (0xA0) Critical-ecp

Control (0xC0)

Internet-control

Note: This field only sets the ToS type for the multicast (data plane) traffic; the ToS type for IGMP packets (the control plane traffic) will remain set to 0xC0.

enable_hwacc If True, hardware acceleration is used. Default = "false".

EXAMPLE

$Activity_IPTV_VideoServer1 agent.pm.advancedOptions.config \-enableEsm

false \-type_of_service_for_rtsp

"Best Effort (0x0)" \-enableVlanPri-

ority_for_rtsp

true \-listen_port

554 \-

enableTosRTSP

false \-enableTosData

false \-link_speed

1000 \-type_of_service_for_data

"Best Effort (0x0)" \-esm

1460 \-vlan_priority_

rtsp

2

SEE ALSO

Video Server Agent

926

IxLoad Tcl API Programming Guide

IPTV/ Video

Video Config

Video Config--Contains the list of video streams hosted by the IxLoad IPTV AD and V Servers.

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_IPTV_VideoServer1 [$Traffic2_Network2 activityList.appendItem
options...] $Activity_IPTV_VideoServer1 agent.pm.videoConfig.config

DESCRIPTION
A Video server's configuration options are set by modifying the options of the pm.videoConfig.config option of the Video Server Agent object.

SUBCOMMANDS
None.

OPTIONS
a_port_ip IP address of the A server port. (Default = "") iptv_multiport_enable Indicates whether traffic from A and D server originates from the same ixia port or multiple ports. (Default = "0"). serverMode Sets the server mode to Video or IPTV. (Default = "0").

EXAMPLE

$Activity_IPTV_VideoServer1 agent.pm.videoConfig.config \-a_server_ip

"10.0.2.6" \-iptv_multiport_enable

1 \-serverMode

1

SEE ALSO

Advanced Options

IxLoad Tcl API Programming Guide

927

IPTV/ Video
IPTV / Video Statistics
The test results are available from the location defined on the User Directories window. See User Directories. For the IPTV / Video client statistics,see .IPTV / Video Client Statistics For the IPTV / Video server statistics, see IPTV / Video Server Statistics For TCP statistics, see TCP, Run State, and Curve Segment Statistics.
Note: If the client is receiving a large number of streams (for example, about 820 1Mbps streams on an ALM1G client port), keep the page size (the number of rows) of the per-stream statistics view small. Having large page sizes (large numbers of rows per page) causes the statistics to not refresh correctly and causes paging (moving from one page to another) to take a long time.

928

IxLoad Tcl API Programming Guide

IPTV / Video Client Statistics
This section describes the statistics for IPTV and Video clients .

IPTV/ Video

IxLoad Tcl API Programming Guide

929

IPTV/ Video

Global Stream Statistics
The table below lists the IxLoad IPTV / Video client global stream statistics.

Statistic

Description

VoD Streams Play- Number of RTP streams played in which at least one packet was received. back Successful

VoD Streams With Number of RTP streams played in which one or more packets were lost. Errors

Frame Stats Disabled

Deprecated

Quality Metrics Disabled

Initially, this statistic displays no value.
If the received data rate exceeds the cut-off threshold, IxLoad stops computing the Quality Metrics, and this statistic will display "YES".
The value will remain YES until the end of the iteration. Once the Quality Metrics computation is disabled during a run, it remains disabled throughout the remainder of the run.
Prior to starting the next run (or the next iteration of the same test), this statistic will be cleared and IxLoad will again begin computing the Quality Metrics. It will continue to compute the metrics as long as the bit rate remains below the cut-off threshold.
Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Total Bytes Rcvd Total number of bytes received by the client.

Total packets Rcvd

Total number of packets received by the client.

Total Loss

Total number MPEG2-TS packets lost.

Unexpected UDP Number of UDP packets received packets during a time when no channels are Packets Received active.

Overload Packets Number of RTP packets dropped because a port did not have enough computing

Dropped

power to process them.

Total RTP Packets Total number of RTP packets lost while using RTP over UDP transport. Lost

Total Out Of Order Total number of RTP packets received in the wrong order while using RTP over RTP Packets Rcvd UDP transport.

930

IxLoad Tcl API Programming Guide

IPTV/ Video

Total Duplicate RTP Packets

Total number of duplicate RTP packets received.

Global Jitter

Average variation in arrival times of packets on all streams. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

RTCP Avg Packet Size

Average outbound RTCP packet size.

RTCP Avg Packet Amount of time between the most recent two consecutive RTCP packets sent. Transmission Time

RTCP Packets Sent

Number of RTCP packets sent.

RTP Lost Sequence: One Packet

Number of instances in which 1 packet was lost.

RTP Lost Sequence: Two or Three Packets

Number of instances in which 2 or 3 consecutive packets were lost.

RTP Lost Sequence: Four or Five Packets

Number of instances in which 4 or 5 consecutive packets were lost.

RTP Lost Sequence: Six to Ten Packets

Number of instances in which 6-10 consecutive packets were lost.

RTP Lost Sequence: Eleven or More Packets

Number of instances in which 11 or more consecutive packets were lost.

RTP Maximum Lost Sequence

Maximum gap between the sequence numbers of RTP packets received on a stream. This statistic represents the maximum burst loss that has occurred in the network.

Jitter less than 50 Number of packets received with 0 to 50 microseconds of jitter. us

Jitter between 50 - Number of packets received with 50 to 100 microseconds of jitter. 100 us

IxLoad Tcl API Programming Guide

931

IPTV/ Video

Jitter between 100 Number of packets received with 100 -500 microseconds of jitter. - 500 us

Jitter between 500 Number of packets received with 500 microseconds to 2 milliseconds of jitter. us - 2 ms

Jitter between 2 - Number of packets received with 2 to 5 milliseconds of jitter. 5 ms

Jitter between 5 - Number of packets received with 5 to 10 milliseconds of jitter. 10 ms

Jitter greater than Number of packets received with more than 10 milliseconds of jitter. 10 ms

Packet Size between 0 - 100 bytes

Number of packets received that were between 100 and 200 bytes in size.

Packet Size

Number of packets received that were between 100 and 200 bytes in size.

between 100 - 200

bytes

Packet Size

Number of packets received that were between 200 and 400 bytes in size.

between 200 - 400

bytes

Packet Size

Number of packets received that were between 400 and 600 bytes in size.

between 400 - 600

bytes

Packet Size between 600 1000 bytes

Number of packets received that were between 600 and 1000 bytes in size.

Packet Size greater than 1000 bytes

Number of packets received that were larger than 1000 bytes.

Inter Packet Arrival Time between 0 - 2 ms

Number of packets that arrived less than 2 milliseconds after the preceding packet was received.

Inter Packet Arrival Time between 2 - 5 ms

Number of packets that arrived between 2 and 5 milliseconds after the preceding packet was received.

932

IxLoad Tcl API Programming Guide

IPTV/ Video

Inter Packet Arrival Time between 5 - 10 ms

Number of packets that arrived between 5 and 10 milliseconds after the preceding packet was received.

Inter Packet Arrival Time between 10 - 25 ms

Number of packets that arrived between 10 and 25 milliseconds after the preceding packet was received.

Inter Packet Arrival Time between 25 - 50 ms

Number of packets that arrived between 25 and 50 milliseconds after the preceding packet was received.

Inter Packet Arrival Time between 50 - 100 ms

Number of packets that arrived between 50 and 100 milliseconds after the preceding packet was received.

Inter Packet Arrival Time between 100 - 200 ms

Number of packets that arrived between 100 and 200 milliseconds after the preceding packet was received.

Inter Packet Arrival Time between 200 - 500 ms

Number of packets that arrived between 200 and 500 milliseconds after the preceding packet was received.

Inter Packet Arrival Time greater than 500 ms

Number of packets that arrived more than 500 milliseconds after the preceding packet was received.

Note: The following packet latency statistics are only available for streams from an IxLoad Video server with synthetic payloads.

Packet Latency between 0 - 2 ms

Number of UDP packets that required between 0 and 2 milliseconds to travel from the server to the client.

Packet Latency between 2 - 5 ms

Number of UDP packets that required between 2 and 5 milliseconds to travel from the server to the client.

Packet Latency

Number of UDP packets that required between 5 and 10 milliseconds to travel

between 5 - 10 ms from the server to the client.

IxLoad Tcl API Programming Guide

933

IPTV/ Video

Packet Latency between 10 - 25 ms

Number of UDP packets that required between 10 and 25 milliseconds to travel from the server to the client.

Packet Latency between 25 - 50 ms

Number of UDP packets that required between 25 and 50 milliseconds to travel from the server to the client.

Packet Latency between 50 - 100 ms

Number of UDP packets that required between 50 and 100 milliseconds to travel from the server to the client.

Packet Latency

Number of UDP packets that required between 100 and 200 milliseconds to

between 100 - 200 travel from the server to the client.

ms

Packet Latency

Number of UDP packets that required between 200 and 500 milliseconds to

between 200 - 500 travel from the server to the client.

ms

Packet Latency greater than 500 ms

Number of UDP packets that more than 500 milliseconds to travel from the server to the client.

Avg Packet Latency

Average amount of time required for a packet to travel from the server to the client.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Max Packet Latency

Maximum amount of time required for a packet to travel from the server to the client.
For Dummy payloads, this statistic is updated only if the packets are sent over RTP transport.
For Synthetic payloads, this statistic is updated for packets sent over UDP or RTP transport, but only if Hardware Acceleration is disabled.

934

IxLoad Tcl API Programming Guide

IPTV/ Video

Per-Stream Statistics
The table below lists the IxLoad IPTV / Video client statistics that are available on a per-stream basis.
The per-stream view displays statistics on the active stream for each user. To display meaningful values for the Leave Latency, Channel Overlap Duration, and Channel Gap Duration statistics, you should set the Entries per User in Per Stream Stats (on the Statistics Options tab) as follows:
l If Concurrent Channel View Sequence is set to 1, set Entries per User in Per Stream Stats to 2. l If Concurrent Channel View Sequence is set to 2, set Entries per User in Per Stream Stats to 4
(the maximum value).
These values will ensure that the statistics values for a previous stream are retained, and that values for the Leave Latency, Channel Overlap Duration, and Channel Gap Duration statistics will be displayed. Otherwise, these statistics may display as 0.

Note: In Video mode, the per-stream statistics view displays as: Video Client Per Stream.
In IPTV mode, the per-stream statistics view displays as : Video Client IPTV Per Stream.

Statistic

Description

Active

Indicates whether the stream is active or not: 0 = inactive 1 = active Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Stream Name

Name of stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Flow ID

Number identifying the flow used by the stream. A flow consists of the packets flowing between a source IP:port and a destination IP:port. Note for Tcl API users: For this statistic, use the Aggregation Type kString.

Transport

Type of transport used on the stream. Note for Tcl API users: 0 = UDP 1 = RTP/UDP For this statistic, use the Aggregation Type kString.

IxLoad Tcl API Programming Guide

935

IPTV/ Video

Video Codec
Stream Bit Rate Bytes Packets Loss Maximum Lost Sequence
MDI-DF MIN MDI-DF
MAX MDI-DF
AVG-MDI-DF
MDI-MLR Jitter Inter Pkt Arrival Time Min Inter Pkt Arrival Time Max Inter Pkt Arrival Time Packet Latency (ns) Min Packet Latency (ns)

Video codec used on the stream. Note for Tcl API users: For this statistic, use the Aggregation Type kString. Bit rate used on stream. Number of bytes received on the stream. Number of packets received on the stream. Number of packets lost on the stream. Maximum gap between the sequence numbers of RTP packets received on the stream. This statistic represents the maximum burst loss that has occurred on the stream. Media Delivery Index - Delay Factor (MDI-DF) experienced on stream. Smallest MDI Delay Factor experienced on stream. Note: When retrieved from the Tcl API, this statistic is returned in units of nanoseconds (ns). Largest MDI Delay Factor experienced on stream. Note: When retrieved from the Tcl API, this statistic is returned in units of nanoseconds (ns). Average MDI Delay Factor experienced on stream. Note: When retrieved from the Tcl API, this statistic is returned in units of nanoseconds (ns). Media Delivery Index - Media Loss Rate experienced on stream. Current instantaneous jitter. Amount of time between received packets.
Smallest amount of time between received packets, in milliseconds.
Largest amount of time between received packets, in milliseconds.
Average packet latency on the stream.
Smallest packet latency on the stream.

936

IxLoad Tcl API Programming Guide

IPTV/ Video

Max Packet Latency (ns)

Longest packet latency on the stream.

Play Latency (ms)

Amount of time, in milliseconds, elapsed between the time the IPTV client sent an IGMP JOIN (to play a multicast channel on an AD server) or RTSP PLAY (to play a VoD channel on a V server) and the time it received the first byte of data.

Join Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first byte of data.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl API script, use the kWeightedAverage aggregation type.

Leave Latency (ms)

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) and the time it received the last byte of data.
Leave latency has a maximum timeout of 10 seconds; if the client continues to receive data 10 seconds after it has sent the Leave command, the latency is measured as 10 seconds.
This statistic is valid only for IGMPv2. For IGMPv3, Leaves for multicast groups are sent by sending an IGMP report with the modified group list.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl API script, use the kWeightedAverage aggregation type.

Channel Switch Latency

Amount of time elapsed between the time the client sent an IGMP LEAVE to change to a new channel, and the time it received the first byte of the new stream.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Channel Gap Dur- When changing channels, this statistic measures the amount of time elapsed

ation

between the time the client received the last byte of the old stream and the time

it received the first byte of the new stream.

Channel Overlap When changing channels, this statistic measures the amount of time that the cli-

Duration

ent was simultaneously receiving both the old and new streams.

Control Sent

Indicates the type of control command that has most recently been sent: 0 = LEAVE or PAUSE/TEARDOWN sent 1 = JOIN or PLAY sent

Data Rcvd

Indicates whether or not data is being received: 0 = no data received 1 = data received

IxLoad Tcl API Programming Guide

937

IPTV/ Video

RTP Packets Lost Number of RTP packets lost.

RTP Packets Out Number of RTP packets received out of order. of Order

RTP Packets Duplicated

Number of duplicate RTP packets received.

ICC Unicast Bytes (IPTV mode only)

Number of unicast bytes received by the client.

ICC Unicast Pack- Number of unicast packets received by the client. ets
(IPTV mode only)

ICC Multicast Bytes
(IPTV mode only)

Number of multicast bytes received by the client.

ICC Multicast Packets
(IPTV mode only)

Number of multicast packets received by the client.

ICC Packets Lost or Dup Due To Switch
(IPTV mode only)

Number of packets lost or duplicated due to switching from a unicast (D server) stream to a multicast (A server) stream.
If packets were lost, this statistic is displayed with a minus-sign (-). For example, -100 indicates that 100 packets were lost.
If packets were duplicated, this statistic is displayed with a plus-sign (+). For example, +100 indicates that 100 packets were duplicated.

Unicast-Multicast Switch Latency (ms)

Time elapsed switching from a VOD (unicast) stream to a broadcast (multicast) stream. This statistic is only returned for the ICC command for MSIPTV emulation.

RTCP Packets Sent

Number of RTCP packets sent. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

938

IxLoad Tcl API Programming Guide

IPTV/ Video

Video Client Data Conditional Statistics
The table below lists the IxLoad IPTV / Video client data QoE Detective statistics.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

UDP Bytes All Received

Number of UDP bytes received.

UDP Pack- All ets Received

Number of UDP packets received.

MPEG2 TS All Loss

Number of MPEG-2 Transport Stream packets lost.
This statistic differs from the Total TS Loss statistic in that Total TS Loss measures the total MPEG2 TS packet lost, while this statistic measures only the loss on for the IP address, VLAN, or user.

MDI-DF (ms)

User

Media Delivery Index - Delay Factor (MDI-DF) experienced on stream.

MDI-MLR User

Media Delivery Index - Media Loss Rate experienced on stream.

Avg MDI- All DF (ms)

Average MDI Delay Factor experienced on stream. Note: When retrieved from the Tcl API, this statistic is returned in units of nanoseconds (ns).

Min MDI- All DF (ms)

Smallest MDI Delay Factor experienced on stream. Note: When retrieved from the Tcl API, this statistic is returned in units of nanoseconds (ns).

Max MDI- All DF (ms)

Largest MDI Delay Factor experienced on stream. Note: When retrieved from the Tcl API, this statistic is returned in units of nanoseconds (ns).

Stream Bit Rate (Kbps)

User

Bit rate used on stream.

IxLoad Tcl API Programming Guide

939

IPTV/ Video

Avg

All

Stream Bit

Rate

(Kbps)

Received All Bit Rate (Kbps)

RTP Clock User Rate

RTP SSRC User

Video PID User

Audio PID User

RTP Pack- All ets Lost

RTP Pack- All ets Out of Order

RTP Pack- All ets Duplicate

Join Latency (ms)

User

Leave Latency (ms)

User

Average bit rate calculated for the stream.
Actual bit rate of received stream.
Clock rate used for RTP connection.
Value of the SSRC field in RTP packets in the stream. Package Identifier used on video stream Package Identifier used on audeo stream. Total number of RTP packets lost while using RTP over UDP transport.
Total number of RTP packets received in the wrong order while using RTP over UDP transport.
Number of duplicate RTP packets received.
Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first byte of data. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl API script, use the kWeightedAverage aggregation type. Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) and the time it received the last byte of data. Leave latency has a maximum timeout of 10 seconds; if the client continues to receive data 10 seconds after it has sent the Leave command, the latency is measured as 10 seconds. This statistic is valid only for IGMPv2. For IGMPv3, Leaves for multicast groups are sent by sending an IGMP report with the modified group list. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl API script, use the kWeightedAverage aggregation type.

940

IxLoad Tcl API Programming Guide

IPTV/ Video

Channel Switch Latency (ms)

User

Channel Overlap Duration (ms)

User

Channel Gap Duration (ms)

User

Avg Inter All Pkt Arrival Time (us)

Min Inter All Pkt Arrival Time (us)

Max Inter All Pkt Arrival Time (us)

Avg One

All

Way Delay

(us)

Min One

All

Way Delay

(us)

Max One All Way Delay (us)

Avg Packet All Latency (us)

Avg Jitter All (us)

Average time elapsed between the time the client changed to a new channel and the time it received the first byte of the new stream.
When changing channels, this statistic measures the amount of time that the client was simultaneously receiving both the old and new streams.
When changing channels, this statistic measures the amount of time elapsed between the time the client received the last byte of the old stream and the time it received the first byte of the new stream. Amount of time between received packets. This statistic differs from the Inter-Packet Arrival Time statistic in that this statistic is an average, while Inter-Packet Arrival Time is an instantaneous measure. Smallest amount of time between received packets, in milliseconds.
Largest amount of time between received packets, in milliseconds.
Average latency on the stream measured in one direction.
Shortest latency on the stream measured in one direction.
Longest latency on the stream measured in one direction.
Average packet latency on the stream.
Current instantaneous jitter.

IxLoad Tcl API Programming Guide

941

IPTV/ Video

Min Jitter (us)
Max Jitter (us)
Transport

All All User

Smallest jitter encountered on the stream.
Largest jitter encountered on the stream.
Type of transport used on the stream. Note for Tcl API users: 0 = UDP 1 = RTP/UDP For this statistic, use the Aggregation Type kString.

942

IxLoad Tcl API Programming Guide

IPTV/ Video

Multicast and VoD Global Statistics
The table below lists the global IxLoad IPTV / Video client multicast and VoD statistics.

Statistic

Description

Active Multicast Channels

Number of multicast channels joined across all users.

Multicast Channels Reques- Number of multicast channels that the client requested. ted

Multicast Requests Successful

Number of multicast requests for which the client received a successful response.

Multicast Requests Failed

Number of multicast requests for which the client received a failure response.

VoD Streams Played

Total number of VoD streams played by the client.

VoD Streams Playback Suc- Number of VoD streams played to completion by the client. cessful

VoD Streams Played Failed Number of VoD streams that could not be played.

Multicast and VoD QoE Detective Statistics
The table below lists the IxLoad IPTV / Video client multicast and VoD statistics that are available in QoE Detective.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic
Active Multicast Channels

QoE

Description

Detective

All

Number of multicast channels joined across all users.

IxLoad Tcl API Programming Guide

943

IPTV/ Video

Multicast Channels

All

Requested

Multicast Requests Suc- All cessful

Multicast Requests

All

Failed

VoD Streams Played

All

VoD Streams Playback All Successful

VoD Streams Played

All

Failed

Number of multicast channels that the client requested.
Number of multicast requests for which the client received a successful response. Number of multicast requests for which the client received a failure response. Total number of VoD streams played by the client. Number of VoD streams played to completion by the client.
Number of VoD streams that could not be played.

944

IxLoad Tcl API Programming Guide

IPTV/ Video

IGMP and MLD QoE Detective Statistics
The table below lists the IxLoad IPTV / Video client IGMP and MLD that are available in QoE Detective view.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE Detective

IGMP Statistics

IGMPv1 Reports Sent

All

IGMPv2 Reports Sent

All

IGMPv2 Leaves Sent

All

IGMPv3 Reports Sent

All

IGMP General Query Received All

IGMP Group Query Received All

IGMPv3 Group Source Query All Received

IGMPv1 Reports Received

All

IGMPv2 Reports Received

All

IGMPv3 Reports Received

All

MLD Statistics

MLDv1 General Query

All

Received

MLDv2 General Query

All

Received

MLDv1 Group Query Received All

Description
Number of IGMP version 1 Report messages sent. Number of IGMP version 2 Report messages sent. Number of IGMP version 2 Leave messages sent. Number of IGMP version 3 Report messages sent. Number of IGMP General Query messages received. Number of IGMP Group Query messages received. Number of IGMP version 3 Group Source Query messages received. Number of IGMP version 1 Report messages received. Number of IGMP version 2 Report messages received. Number of IGMP version 3 Report messages received.
Number of MLD version 1 General Query messages received. Number of MLD version 2 General Query messages received. Number of MLD version 1 Group Query messages received.

IxLoad Tcl API Programming Guide

945

IPTV/ Video

MLDv2 Group Query Received All

MLDv2 Group Source Query

All

Received

MLDv1 Reports Sent

All

MLDv2 Reports Sent

All

MLDv1 Leave Sent

All

MLDv1 Reports Received

All

MLDv2 Reports Received

All

Number of MLD version 2 Group Query messages received. Number of MLD version 2 Group Source Query messages received. Number of MLD version 1 Report messages received. Number of MLD version 2 Report messages sent. Number of MLD version 1 Leave messages sent. Number of MLD version 1 Report messages received. Number of MLD version 2 Report messages received.

946

IxLoad Tcl API Programming Guide

IPTV/ Video

IPTV Global Statistics
The table below lists the IxLoad IPTV / Video client statistics for IPTV clients.

Note: IGMP and MLD are not applicable to VoD, so in a VoD test, no IGMP or MLD statistics are displayed.

Statistic

Description

Active D Server Chan- Number of streams currently playing on the D server. nels

Active V Server Chan- Number of streams currently playing on the V server. nels

D Server Channels Requested

Number of streams requested from the D server.

D Server Requests Successful

Number of requests to the D server that were successful.

D Server Requests Failed

Combined total of control and data requests to the D server that failed.

D Server Requests Failed (Control)

Number of control plane requests to the D server that failed.

D Server Requests Failed (Data)

Number of data plane requests to the D server that failed.

V Server Channels Requested

Number of streams requested from the V server.

V Server Requests Successful

Number of requests to the V server that were successful.

V Server Requests Failed

Combined total of control and data requests to the V server that failed.

V Server Requests Failed (Control)

Number of control plane requests to the V server that failed.

V Server Requests Failed (Data)

Number of data plane requests to the V server that failed.

IGMP Queries Rcvd Number of IGMP Query messages received by the client.

IxLoad Tcl API Programming Guide

947

IPTV/ Video

IGMP Reports Sent Number of IGMP Report messages sent by the client for all users.

IGMP Leaves Sent

Number of IGMP Leave messages sent by the client.

MLD Queries Rcvd

Number of MLD Report messages received.

MLD Reports Sent

Number of MLD Report messages sent.

MLD Leaves Sent

Number of MLD Leave messages sent.

Join Latency

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP JOIN (broadcast channel) or RTSP PLAY (VoD channel) and the time it received the first byte of data.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl API script, use the kWeightedAverage aggregation type.

Leave Latency

Amount of time, in milliseconds, elapsed between the time the client sent an IGMP LEAVE (broadcast channel) or RTSP PAUSE (VoD channel) and the time it received the last byte of data.
Leave latency has a maximum timeout of 10 seconds; if the client continues to receive data 10 seconds after it has sent the Leave command, the latency is measured as 10 seconds.
This statistic is valid only for IGMPv2. For IGMPv3, Leaves for multicast groups are sent by sending an IGMP report with the modified group list.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl API script, use the kWeightedAverage aggregation type.

Channel Switch Latency

Amount of time elapsed between the time the client sent an IGMP LEAVE to change to a new channel, and the time it received the first byte of the new stream.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

RTSP Bytes Sent

Number of bytes sent by the RTSP client, including the payload and all headers.

RTSP Bytes Received Number of bytes received in RTSP messages.

RTSP Packets Sent Number of RTSP packets sent by the client.

RTSP Packets Received

Number of RTSP packets received by the client.

RTSP Concurrent Ses- Number of concurrent RTSP sessions maintained. sions

948

IxLoad Tcl API Programming Guide

IPTV/ Video

RTSP Connection Rate

Rate at which the client established RTSP connections.

RTSP Transactions

Number of RTSP transactions completed.

RTSP Transaction Rate

Rate at which the client completed RTSP transactions.

RTSP Connections

Number of RTSP connections established by the client.

RTSP Setup Latency (ms)

Amount of time elapsed, in milliseconds, between a client sending a request to establish an RTSP connection and receiving the first byte of the response.Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

RTSP Teardown Latency (ms)

Amount of time elapsed, in milliseconds, between a client sending a request to end an RTSP connection and receiving the first byte of the response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

RTSP Play Latency (0 Number of instances in which 0 to 10 milliseconds elapsed between the time

ms - 10 ms)

a client sent a PLAY command and the time it received the first byte of the

media stream.

RTSP Play Latency (10 ms - 50 ms)

Number of instances in which 10 to 50 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.

RTSP Play Latency (50 ms - 100 ms)

Number of instances in which 50 to 100 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.

RTSP Play Latency (100 ms - 300 ms)

Number of instances in which 100 to 300 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.

RTSP Play Latency (300 ms - 1 s)

Number of instances in which 300 to 1000 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.

RTSP Play Latency (Greater Than 1s)

Number of instances in which more than one second elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.

RTSP Presentations Active

Number of RTSP presentations available.

IxLoad Tcl API Programming Guide

949

IPTV/ Video

RTSP Presentations Playing

Number of RTSP presentations playing.

RTSP Presentations Paused

Number of RTSP presentations paused.

RTSP Presentations Requested

Number of RTSP presentations requested by the client.

RTSP Presentation

Number of presentation requests sent by the client for which it received a

Requests Successful successful response.

RTSP Presentation Requests Failed

Number of presentation requests sent by the client that failed.

RTSP SET PARAMETER Sent

Number of RTSP SET PARAMETER messages sent.

RTSP GET PARAMETER Sent

Number of RTSP GET PARAMETER messages sent.

RTSP DESCRIBE Sent Number of RTSP DESCRIBE messages sent.

RTSP SETUP Sent

Number of RTSP SETUP messages sent.

RTSP PLAY Sent

Number of RTSP PAUSE commands sent.

RTSP PAUSE Sent

Number of RTSP PAUSE commands sent.

RTSP TEARDOWN Sent

Number of RTSP TEARDOWN commands sent.

RTSP DESCRIBE Suc- Number of RTSP DESCRIBE commands for which a successful response was

cessful

received.

RTSP SETUP Successful

Number of RTSP SETUP commands for which a successful response was received.

RTSP SET PARAMETER Successful

Number of RTSP SET PARAMETER commands for which a successful response was received.

RTSP GET PARAMETER Successful

Number of RTSP GET PARAMETER commands for which a successful response was received.

RTSP PLAY Successful

Number of RTSP PLAY commands for which a successful response was received.

950

IxLoad Tcl API Programming Guide

IPTV/ Video

RTSP PAUSE Successful

Number of RTSP PAUSE commands for which a successful response was received.

RTSP TEARDOWN Successful

Number of RTSP TEARDOWN commands for which a successful response was received.

RTSP DESCRIBE Failed

Number of RTSP DESCRIBE commands that failed.

RTSP SETUP Failed Number of RTSP SETUP commands that failed.

RTSP SET PARAMETER Failed

Number of SET_PARAMETER replies received with a code other than OK (200).

RTSP GET PARAMETER Failed

Number of RTSP GET PARAMETER commands that failed.

RTSP PLAY Failed

Number of RTSP PLAY commands that failed.

RTSP PAUSE Failed Number of RTSP PAUSE commands that failed.

RTSP TEARDOWN Failed

Number of RTSP TEARDOWN commands that failed.

Average Play latency

Average amount of time elapsed between the time the client sent a Play command and them time it received the first byte of the video stream.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Average Pause latency

Average amount of time elapsed between the time the client sent a Pause command and the time it stopped receiving data from the video stream.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Video Simulated Users

Number of users simulated by the client.

IPTV QoE Detective Statistics
The table below lists the IxLoad IPTV / Video client statistics for IPTV clients in QoE Detective.
Note: IGMP and MLD are not applicable to VoD, so in a VoD test, no IGMP or MLD statistics are displayed.

IxLoad Tcl API Programming Guide

951

IPTV/ Video

The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE Detect- Description ive

Active D Server Channels All

Number of streams currently playing on the D server.

Active V Server Channels All

Number of streams currently playing on the V server.

D Server Channels Reques- All ted

Number of streams requested from the D server.

D Server Requests Suc-

All

cessful

Number of requests to the D server that were successful.

D Server Requests Failed All

Combined total of control and data requests to the D server that failed.

D Server Requests Failed All (Control)

Number of control plane requests to the D server that failed.

D Server Requests Failed All (Data)

Number of data plane requests to the D server that failed.

V Server Channels Reques- All ted

Number of streams requested from the V server.

V Server Requests Suc-

All

cessful

Number of requests to the V server that were successful.

V Server Requests Failed

All

Combined total of control and data requests to the V server that failed.

V Server Requests Failed

All

(Control)

Number of control plane requests to the V server that failed.

V Server Requests Failed

All

(Data)

Number of data plane requests to the V server that failed.

952

IxLoad Tcl API Programming Guide

IPTV/ Video

RTSP QoE Detective Statistics
The table below lists QoE Detective the IxLoad IPTV / Video client statistics for IPTV clients.
Note: IGMP and MLD are not applicable to VoD, so in a VoD test, no IGMP or MLD statistics are displayed.

The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

RTSP Bytes Sent All

Number of bytes sent by the RTSP client, including the payload and all headers.

RTSP Bytes

All

Received

Number of bytes received in RTSP messages.

RTSP Packets

All

Sent

Number of RTSP packets sent by the client.

RTSP Packets

All

Received

Number of RTSP packets received by the client.

RTSP Concurrent All Sessions

Number of concurrent RTSP sessions maintained.

RTSP Connection All Rate

Rate at which the client established RTSP connections.

RTSP Trans-

All

actions

Number of RTSP transactions completed.

RTSP Transaction All Rate

Rate at which the client completed RTSP transactions.

RTSP Con-

All

Number of RTSP connections established by the client.

nections

RTSP Setup

All

Latency (ms)

Amount of time elapsed, in milliseconds, between a client sending a request to establish an RTSP connection and receiving the first byte of the response.

IxLoad Tcl API Programming Guide

953

IPTV/ Video

RTSP Teardown All Latency (ms)

RTSP Present-

All

ations Active

RTSP Present-

All

ations Playing

RTSP Present-

All

ations Paused

RTSP Present-

All

ations Requested

RTSP Present-

All

ation Requests

Successful

RTSP Present-

All

ation Requests

Failed

RTSP DESCRIBE All Sent

RTSP SETUP Sent All

RTSP SET

All

PARAMETER Sent

RTSP GET

All

PARAMETER Sent

RTSP OPTIONS All Sent

RTSP PLAY Sent All

RTSP PAUSE Sent All

RTSP TEARDOWN All Sent

Amount of time elapsed, in milliseconds, between a client sending a request to end an RTSP connection and receiving the first byte of the response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type. Number of RTSP presentations available.
Number of RTSP presentations playing.
Number of RTSP presentations paused.
Number of RTSP presentations requested by the client.
Number of presentation requests sent by the client for which it received a successful response.
Number of presentation requests sent by the client that failed.
Number of RTSP DESCRIBE messages sent.
Number of RTSP SETUP messages sent. Number of RTSP SET PARAMETER messages sent.
Number of RTSP GET PARAMETER messages sent.
Number of RTSP OPTIONS messages sent.
Number of RTSP PLAY messages sent. Number of RTSP PAUSE commands sent. Number of RTSP TEARDOWN commands sent.

954

IxLoad Tcl API Programming Guide

IPTV/ Video

RTSP DESCRIBE All Successful

RTSP SETUP Suc- All cessful

RTSP SET

All

PARAMETER Suc-

cessful

RTSP GET

All

PARAMETER Suc-

cessful

RTSP OPTIONS All Successful

RTSP PLAY Suc- All cessful

RTSP PAUSE Suc- All cessful

RTSP TEARDOWN All Successful

RTSP DESCRIBE All Failed

RTSP SETUP

All

Failed

RTSP SET

All

PARAMETER

Failed

RTSP GET

All

PARAMETER

Failed

RTSP OPTIONS All Failed

RTSP PLAY Failed All

RTSP PAUSE

All

Failed

Number of RTSP DESCRIBE commands for which a successful response was received. Number of RTSP SETUP commands for which a successful response was received. Number of RTSP SET PARAMETER commands for which a successful response was received.
Number of RTSP GET PARAMETER commands for which a successful response was received.
Number of RTSP OPTIONS commands for which a successful response was received. Number of RTSP PLAY commands for which a successful response was received. Number of RTSP PAUSE commands for which a successful response was received. Number of RTSP TEARDOWN commands for which a successful response was received. Number of RTSP DESCRIBE commands that failed.
Number of RTSP SETUP commands that failed.
Number of SET_PARAMETER replies received with a code other than OK (200).
Number of RTSP GET PARAMETER commands that failed.
Number of RTSP OPTIONS commands that failed.
Number of RTSP PLAY commands that failed. Number of RTSP PAUSE commands that failed.

IxLoad Tcl API Programming Guide

955

IPTV/ Video

RTSP TEARDOWN All Failed

Average Play

All

latency (ms)

Average Pause

All

latency (ms)

Number of RTSP TEARDOWN commands that failed.
Average amount of time elapsed between the time the client sent a Play command and them time it received the first byte of the video stream.
Average amount of time elapsed between the time the client sent a Pause command and the time it stopped receiving data from the video stream.

956

IxLoad Tcl API Programming Guide

IPTV/ Video

Video Quality Statistics
This section describes the video quality (TVQM VQmon/HD) statistics.

Global Video Quality Statistics
The table below lists the IxLoad IPTV / Video global video quality statistics. These statistics measure the overall video and audio quality of all the currently active streams.
Note: Relative and Absolute MOS scores are described in Mean Opinion Score (MOS).

Statistic I Frames Rcvd P Frames Rcvd B Frames Rcvd I Frames Impaired P Frames Impaired
B Frames Impaired
Avg Curr Abs MOS V Avg Curr Rel MOS V Avg Curr MOS AV Avg Curr MOS A Avg Comp Abs MOS V Avg Comp Rel MOS V

Description
The number of video I-frames received.
The number of video P-frames received.
The number of video B-frames received.
Number of I-frames impaired due to packet loss or discards.
Number of P-frames impaired due to packet loss and/or discards. This does not include frames impaired due to error propagation through temporal reference.
Number of B-frames impaired due to packet loss and/or discards. This does not include frames impaired due to error propagation through temporal reference.
Absolute MOS for all the currently active video streams, averaged from stream start to the current time.
Relative MOS for all the currently active video streams, averaged from stream start to the current time.
Audio/video (multimedia) MOS for all the currently active streams, averaged from stream start to the current time.
Absolute audio MOS, averaged from stream start to the current time.
Absolute MOS for all completed video streams, averaged across all streams.
Relative MOS for all completed video streams, averaged across all streams.

IxLoad Tcl API Programming Guide

957

IPTV/ Video

Avg Comp MOS AV

Audio/video (multimedia) MOS for all completed streams, averaged across all streams.

Avg Comp MOS A

Audio MOS for all completed streams, averaged across all streams.

Avg Interval Abs MOS V

Absolute MOS, averaged over the most recent statistics Update Interval (you can configure the Update Interval is on the video client Statistics Options tab).

Avg Interval Rel MOS V

Relative MOS averaged over the most recent statistics Update Interval (you can configure the Update Interval on the video client Statistics Options tab).

Avg Video Bw

The average video bandwidth, in bits/second, excluding transport packet header overhead and error correction/retransmission.

I Frame Avg Video Bw

The average bandwidth of I-frame video content transmitted, in bits/second, for all currently active streams.

P Frame Avg Video Bw

The average bandwidth of P-frame video content transmitted, in bits/second, for all currently active streams.

B Frame Avg Video Bw

The average bandwidth of B-frame video content transmitted, in bits/second, for all currently active streams.

Scene Avg Detail Level

The average amount of detail in the currently active streams, expressed on a scale of 0 (little detail) to 100 (maximum detail).

Scene Avg Panning Level The average amount of panning in the currently active streams, expressed on a scale of 0 (no panning) to 100 (continuous panning).

Scene Avg Motion Level

The average amount of motion in the currently active streams, expressed on a scale of 0 (no motion) to 100 (continuous motion).

Per-stream Video Quality Statistics
The table below lists the IxLoad IPTV / Video client per-stream video quality statistics. These statistics measure the video and audio quality of a single stream.

958

IxLoad Tcl API Programming Guide

IPTV/ Video Note: Relative and Absolute MOS scores are described in Mean Opinion Score (MOS).

Statistic

Description

TVQM Avg Video Bw

The average video bandwidth, in bits/second, excluding transport packet header overhead and error correction/retransmission.

TVQM Peak The peak video bandwidth, in bits/second, measured during a one second window,

Video Bw

excluding transport packet header overhead and error correction/retransmission.

TVQM Pack- Number of stream video transport packets received properly for playout. ets Received

TVQM Pack- Number of stream video transport packets discarded. ets Discarded

TVQM

The video frame rate, in frames per one thousand seconds ­ e.g. 29,970 equals 29.97

Frame Rate frames per second.

TVQM Avg Abs MOSV

The average absolute video stream MOS over the stream duration.

TVQM Avg Rel MOSV

The average relative video stream MOS over the stream duration.

TVQM Avg MOSA

Absolute audio MOS, averaged from stream start to the current time.

TVQM Avg MOSAV

The average audio/video stream MOS over the stream duration.

TVQM Int Avg Abs MOSV

Absolute MOS, averaged over the most recent statistics Update Interval (you can configure the Update Interval is on the video client Statistics Options tab).

TVQM Int Avg Rel MOSV

Relative MOS averaged over the most recent statistics Update Interval (you can configure the Update Interval on the video client Statistics Options tab).

TVQM I Frames Rcvd

The number of video I-frames received.

IxLoad Tcl API Programming Guide

959

IPTV/ Video

TVQM P Frames Rcvd

The number of video P-frames received.

TVQM B Frames Rcvd

The number of video B-frames received.

TVQM I Frames Impaired

Number of I-frames impaired due to packet loss or discards.

TVQM P Frames Impaired

Number of P-frames impaired due to packet loss and/or discards. This does not include frames impaired due to error propagation through temporal reference.

TVQM B Frames Impaired

Number of B-frames impaired due to packet loss and/or discards. This does not include frames impaired due to error propagation through temporal reference.

TVQM

The instantaneous amount of detail, expressed on a scale of 0 (little detail) to 100

Detail Level (maximum detail).

TVQM Pan- The instantaneous amount of panning, expressed on a scale of 0 (no panning) to 100 ning Level (continuous panning).

TVQM Motion Level

The instantaneous amount of motion, expressed on a scale of 0 (no motion) to 100 (continuous motion).

TVQM Inter The average gap, in frames, between I frames (excluding the I-frames) I Frame Gap

TVQM PPDV The stream transport Packet-to-Packet Delay Variation (RFC3550), in milliseconds.

Packet Transport Conditional Statistics
The table below lists the IxLoad IPTV / Video client video quality packet transport QoE Detective statistics.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view

960

IxLoad Tcl API Programming Guide

IPTV/ Video

VLAN: per-VLAN view All: all views

Statistic

QoE Detective

JB Packets Rcvd User

JB Packets Lost User

JB Packets Dis- User carded

Description
The number of stream transport packets received. The number of stream transport packets lost in the network. The number of stream transport packets discarded by the endpoint due to late arrival.

Video Description Conditional Statistics
The table below lists the IxLoad IPTV / Video client video quality video description QoE Detective statistics.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic
Codec Type GOP Structure
Avg GOP Length Avg Inter I Frame Gap (Frames) Frame Rate

QoE

Description

Detective

User

The video CODEC type for the video stream.

User

The GOP structure expressed as a series of `I', `B', `P' characters describing the frame type series in the structure.

User

The average GOP length, in frames.

User

The average gap, in frames, between I frames (excluding the Iframes)

User

The video frame rate, in frames per one thousand seconds ­ e.g. 29,970 equals 29.97 frames per second.

IxLoad Tcl API Programming Guide

961

IPTV/ Video

Video Perceptual Quality Conditional Statistics
The table below lists the IxLoad IPTV / Video client video perceptual quality statistics.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

Avg Absolute MOS V

User

The average absolute video stream MOS over the stream duration.

Avg Relative User MOS V

The average relative video stream MOS over the stream duration.

Avg MOS A User

The average audio stream MOS over the stream duration.

Avg MOS AV User

The average audio/video stream MOS over the stream duration.

Interval Absolute MOS V

User

The absolute stream instantaneous video MOS sampled at the end of the interval configured on the video client Statistics Options tab.

Interval Rel- User ative MOS V

The relative stream instantaneous video MOS sampled at the end of the interval configured on the video client Statistics Options tab.

EPSNR (ATIS)

User

The Estimated Peak Signal to Noise Ratio (PSNR) calculated according to ATIS specifications.

Video Frame Conditional Statistics
The table below lists the IxLoad IPTV / Video client video quality video frame QoE Detective statistics. The QoE Detective column indicates the views in which a statistic is available:

962

IxLoad Tcl API Programming Guide

IPTV/ Video

IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

I Frames Rcvd

User

The number of video I-frames received.

I Frames Impaired

User

Number of I-frames impaired due to packet loss or discards.

P Frames Rcvd

User

The number of video P-frames received.

P Frames Impaired

User

Number of P-frames impaired due to packet loss and/or discards. This does not include frames impaired due to error propagation through temporal reference.

B Frames Rcvd

User

The number of video B-frames received.

B Frames Impaired

User

Number of B-frames impaired due to packet loss and/or discards. This does not include frames impaired due to error propagation through temporal reference.

SI Frames User Rcvd

The number of video SI-frames received.

SI Frames User Impaired

The number of video SI-frames impaired by packet loss or discard.

SP Frames User Rcvd

The number of video SP-frames received.

SP Frames User Impaired

The number of video SP-frames impaired by packet loss or discard.

I Frame

User

Pkts Rcvd

The number of transport packets received containing video I-frame information.

I Frame Pkts Lost

User

The number of transport packets lost containing video I-frame information.

IxLoad Tcl API Programming Guide

963

IPTV/ Video

I Frame Pkts Discarded

User

P Frame

User

Pkts Rcvd

P Frame Pkts Lost

User

P Frame Pkts Discarded

User

B Frame

User

Pkts Rcvd

B Frame Pkts Lost

User

B Frame Pkts Discarded

User

The number of transport packets discarded due to late arrival containing video I-frame information.
The number of transport packets received containing video P-frame information. The number of transport packets lost containing video P-frame information.
The number of transport packets discarded due to late arrival containing video P-frame information.
The number of transport packets received containing video B-frame information. The number of transport packets lost containing video B-frame information.
The number of transport packets discarded due to late arrival containing video B-frame information.

Bandwidth Conditional Statistics
The table below lists the IxLoad IPTV / Video client video quality bandwidth QoE Detective statistics. These statistics pertain to the distribution of I, B, P, SI and SP video frame and audio frame bandwidth consumption.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

964

IxLoad Tcl API Programming Guide

IPTV/ Video

Avg Video Bw (Kbps)

User

Peak Video All Bw (Kbps)

Avg Audio Bw (Kbps)

User

Peak Audio All Bw (Kbps)

I Frame Avg Video Bw (Kbps)

User

I Frame

All

Peak Video

Bw (Kbps)

P Frame Avg Video Bw (Kbps)

User

P Frame

All

Peak Video

Bw (Kbps)

B Frame Avg Video Bw (Kbps)

User

B Frame

All

Peak Video

Bw (Kbps)

The average video bandwidth, in bits/ second, measured during a one second window, excluding transport packet header overhead and error correction/retransmission.
The peak video bandwidth, in bits/second, measured during a one second window, excluding transport packet header overhead and error correction/retransmission.
The average audio bandwidth, in bits/ second, measured during a one second window, excluding transport packet header overhead and error correction/retransmission.
The peak audio bandwidth, in bits/second, measured during a one second window, excluding transport packet header overhead and error correction/retransmission.
The average bandwidth of I-frame transport packets received, in bits/second.
The maximum bandwidth of I-frame transport packets received, in bits/second.
The average bandwidth of P-frame transport packets received, in bits/second.
The maximum bandwidth of P-frame transport packets received, in bits/second.
The average bandwidth of B-frame transport packets received, in bits/second.
The maximum bandwidth of B-frame transport packets received, in bits/second.

IxLoad Tcl API Programming Guide

965

IPTV/ Video

Frame Jitter Conditional Statistics
The table below lists the IxLoad IPTV / Video client video quality video jitter QoE Detective statistics. These statistics contain the video frame jitter and transmission delay statistics.
The QoE Detective column indicates the QoE Detective views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic
Frame Inter Arrival Jitter (ms)
I Frame Inter Arrival Jitter (ms)

QoE

Description

Detective

User

The average frame inter-arrival jitter, in milliseconds. The inter-arrival jitter is computed relative to the expected arrival time based on the frame rate.

User

The average I-frame inter-arrival jitter, in milliseconds. The interarrival jitter is computed relative to the expected arrival time based on the frame rate.

Packet Jitter Conditional Statistics
The table below lists the IxLoad IPTV / Video client video quality packet jitter QoE Detective statistics. These statistics provide a variety of statistics about the transport packet jitter experienced throughout the duration of the stream.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

966

IxLoad Tcl API Programming Guide

IPTV/ Video

PPDV (ms) User
Max PPDV All (ms)

The stream transport Packet-to-Packet Delay Variation (RFC3550), in milliseconds.
The maximum stream transport Packet-to-Packet Delay Variation (RFC3550), in milliseconds.

Scene Analysis Conditional Statistics
The table below lists the IxLoad IPTV / Video client TVQM Scene Analysis QoE Detective statistics. These statistics describe the scene types and content detected within the video stream.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

Scene Detail User Level

The instantaneous amount of detail, expressed on a scale of 0 (little detail) to 100 (maximum detail).

Scene Motion User Level

The instantaneous amount of motion, expressed on a scale of 0 (no motion) to 100 (continuous motion).

Scene Panning Level

User

The instantaneous amount of panning, expressed on a scale of 0 (no panning) to 100 (continuous panning).

IxLoad Tcl API Programming Guide

967

IPTV/ Video

IPTV / Video Server Statistics

Note: The video servers do not have a Ramp Down period; they stream for the duration of the test and then stop as quickly as possible at the end of the test. Therefore, the statistics may show the server bit rates still above 0 (zero) shortly after the end of the test.

The table below lists the IxLoad Video server statistics.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

Total Streams Playing

Total number of video streams playing on the video server.

No of Multicast Streams Playing

Number of multicast (broadcast-type) streams playing.

No of Unicast Streams Playing

Number of unicast streams playing.

No of VoD Streams Active

IP, VLAN Number of video-on-demand streams active.

No of VoD Streams Playing

IP, VLAN Number of video-on-demand streams playing.

No of VoD Streams Paused

IP, VLAN Number of video-on-demand streams currently paused.

No of Multicast Streams Played

IP, VLAN Number of multicast (broadcast-type) streams played.

No of VoD Streams Played

IP, VLAN Number of video-on-demand streams played.

Total Streaming Bit Rate

Aggregate bit rate of all video streams playing on the server.

Multicast Streams Bit Rate

Bit rate of multicast (broadcast-type) video streams playing on the server.

968

IxLoad Tcl API Programming Guide

IPTV/ Video

Unicast Streams Bit Rate

Bit rate of unicast video streams playing on the server.

VoD Streams Bit Rate IP, VLAN Bit rate of video-on-demand video streams playing on the server.

No of IPTV D Server Requests Received

IP, VLAN Number of requests received by the D server.

No of IPTV V Server Requests Received

IP, VLAN Number of requests received by the V server.

No of IPTV D Server IP, VLAN Number of requests received by the D server that were suc-

Requests Successful

cessful.

No of IPTV V Server IP, VLAN Number of requests received by the V server that were suc-

Requests Successful

cessful.

No of IPTV D Server Requests Failed

IP, VLAN Total number of requests received by the D server that failed for all reasons.

No of IPTV V Server Requests Failed

IP, VLAN Total number of requests received by the V server that failed for all reasons.

No of IPTV D Server Requests Failed for Bandwidth

IP, VLAN Number of requests received by the D server that failed because not enough bandwidth was available on the server.

No of IPTV V Server Requests Failed for Bandwidth

IP, VLAN Number of requests received by the V server that failed because not enough bandwidth was available on the server.

No of IPTV D Server Requests Failed for Port Overload

IP, VLAN Number of requests received by the D server that failed because the Ixia port that the server was running on was oversubscribed.

No of IPTV V Server Requests Failed for Port Overload

IP, VLAN Number of requests received by the V server that failed because the Ixia port that the server was running on was oversubscribed.

No of IPTV D Server Requests Failed for Other Reasons

IP, VLAN Number of requests received by the D server that failed for reasons other than lack of bandwidth or port overload.

No of IPTV V Server Requests Failed for Other Reasons

IP, VLAN Number of requests received by the V server that failed for reasons other than lack of bandwidth or port overload.

IxLoad Tcl API Programming Guide

969

IPTV/ Video

No of IPTV Active A - Server Streams Playing

Number of streams available on the A server that are currently playing.

No of IPTV Active D Server Streams Playing

IP, VLAN

Number of streams available on the D server that are currently playing.

No of IPTV Active V Server Streams

IP, VLAN Number of streams available on the V server.

No of IPTV Active V Server Streams Playing

IP, VLAN

Number of streams on the V server that are currently playing.

No of IPTV Active V Server Streams Paused

IP, VLAN Number of streams on the V server that are currently paused.

A Server Streams Bit - Rate

Combined bit rate of all streams currently playing on the A server.

D Server Streams Bit IP, VLAN Combined bit rate of all streams currently playing on the D

Rate

server.

V Server Streams Bit IP, VLAN Combined bit rate of all streams currently playing on the V

Rate

server.

IPTV Total Streaming - Bit Rate

Combined bit rate of all streams currently playing on the A, D, and V servers.

RTSP Presentations Received

IP, VLAN Number of RTSP Presentation requests received by the servers.

RTSP Presentations Successful

IP, VLAN Number of RTSP Presentation requests that succeeded.

RTSP Presentations Failed

IP, VLAN Number of RTSP Presentation requests that failed.

RTSP Bytes Sent

IP, VLAN Number of RTSP-related bytes (commands and responses) sent by the server.

RTSP Bytes Received IP, VLAN Number of RTSP-related bytes (commands and responses) received by the server.

RTSP Packets Sent

IP, VLAN Number of RTSP packets sent by the server.

970

IxLoad Tcl API Programming Guide

IPTV/ Video

RTSP Packets Received

IP, VLAN Number of RTSP packets received the server.

RTSP Play Latency

All

(ms)

Average amount of time elapsed, in milliseconds, between the time the server received a PLAY request and the time it transmitted the first byte of the video stream.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

RTSP Commands Received

IP, VLAN Total number of RTSP commands of all types received by the server.

RTSP DESCRIBE Received

IP, VLAN Total number of RTSP DESCRIBE commands received by the server.

RTSP SETUP Received

IP, VLAN Total number of RTSP SETUP commands received by the server.

RTSP PLAY Received IP, VLAN Total number of RTSP PLAY commands received by the server.

RTSP PAUSE Received

IP, VLAN Total number of RTSP PAUSE commands received by the server.

RTSP TEARDOWN Received

IP, VLAN Total number of RTSP TEARDOWN commands received by the server.

RTSP Response Codes Sent (2xx)

IP, VLAN

Number of 200-range (Success) responses sent. A 200-range response indicates that the action was successfully received, understood, and accepted.

RTSP Response Codes Sent (3xx)

IP, VLAN

Number of 300-range (Redirection) responses sent. A 300-range response indicates that further action must be taken in order to complete the request.

RTSP Response Codes Sent (4xx)

IP, VLAN

Number of 400-range (Client Error) responses sent. A 400-range response indicates that the request contains bad syntax or cannot be fulfilled.

RTSP Response Codes Sent (5xx)

IP, VLAN

Number of 500-range (Server Error) responses sent. A 500-range response indicates that the server failed to fulfill an apparently valid request.

RTSP Response Codes Sent (6xx1xxx)

IP, VLAN Number of 600- to 1000-range responses sent.

IxLoad Tcl API Programming Guide

971

IPTV/ Video

Total Bytes Sent

--

Total Packets Sent

--

Tx Jitter (ns)

--

Tx Packets Dropped - -

Total bytes sent by the server. Total packets sent by the server. Variation in packet transmission times, in nanoseconds. Number of packets dropped before transmission.

! 19

972

IxLoad Tcl API Programming Guide

iSCSI
This section describes the iSCSI Tcl API objects.
API Overview
The IxLoad iSCSI API consists of the iSCSI Client Agent, its commands, and a iSCSI Server Agent.

IxLoad Tcl API Programming Guide

973

iSCSI

974

IxLoad Tcl API Programming Guide

iSCSI

iSCSI Client Agent

<protocol> client agent - create a <protocol> client agent

SYNOPSIS

set Activity_<protocol>Client1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"<protocol> Client" ]

DESCRIPTION
A <protocol> client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_<protocol>Client1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"<protocol> Client" ]

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

975

iSCSI
iSCSI Client Commands
This section lists the iSCSI client agent's commands.

976

IxLoad Tcl API Programming Guide

iSCSI
iscsi
iscsi - configure the basic properties of an iSCSI client agent
SYNOPSIS
$Activity_iSCSIClient1 agent.pm.iscsi.config
DESCRIPTION
This object configures the basic properties of an iSCSI client agent.
SUBCOMMANDS
None.
OPTIONS
enableAlias Enable use of an alias during a session. Default = true. immediateData Indicate if ImmediateData is supported by Initiator. 0 = No, 1 = Yes, Default = "0". initialR2T Indicate if R2T is supported by Initiator. 0 = No, 1 = Yes, Default = "0". initiatorAlias Initiator alias to be used during a session. Min length = 0, Max length = 50, Default = "ixiacom-iscsi". firstBurstLength Maximum payload bytes of Unsolicited Data within an iSCSI sequence. Min = "512", Max = "16777215", Default = "65535". maxRecvDataSegmentLength Maximum Data Segment Length the Initiator can receive in an iSCSI PDU. Min = "512", Max = "16777215", Default="8192". headerDigest Enable Header Digest support. Min = "0", Max = "1", Default = "0". initiatorName initiator Name to be used during a session. Min Length = "10", Max Length = "255", Default = "iqn.2010-11.com.ixia.ixload:initiator-iscsi". dataDigest

IxLoad Tcl API Programming Guide

977

iSCSI

Enable Data Digest support. Min = "0", Max = "1", Default = "0". maxBurstLength
Maximum payload bytes of Solicited Data within an iSCSI sequence. Min = "512", Max = "16777215", Default = "262144".

EXAMPLE

$Activity_iSCSIClient1 agent.pm.iscsi.config \

-enableAlias

true \

-immediateData

0\

-initialR2T

1\

-initiatorAlias

"ixiacom-iscsi" \

-firstBurstLength

65535 \

-maxRecvDataSegmentLength

8192 \

-headerDigest

0\

-initiatorName

"iqn.2010-11.com.ixia.ixload:initiator-iscsi" \

-dataDigest

0\

-maxBurstLength

262144

SEE ALSO

978

IxLoad Tcl API Programming Guide

iSCSI

iscsiTarget
iscsiTarget - configure the number of targets for an iSCSI client or server.
SYNOPSIS
$Activity_iSCSIClient1 agent.pm.iscsiTarget.config

$Activity_iSCSIServer1 agent.pm.iscsiTarget.config

DESCRIPTION
This object configures the number of targets for an iSCSI client or server. These data structures enable tree traversal, insertion and deletion operations.

SUBCOMMANDS
None.

OPTIONS
numberOfLuns Number of LUNs in an activity. maxSelfId Assigns a unique label to each node under the tree. numberOfTargets Number of targets in an activity. numberOfPortals Number of portals in an activity. maxPortalLabelId Assigns a unique label to each portal (for example, TP1...TPn). maxTargetLabelId Assigns a unique label to each target (for example, TG1...TGn) under a portal.

EXAMPLE (client)

$Activity_iSCSIClient1 agent.pm.iscsiTarget.config \

-numberOfLuns

1\

-maxSelfId

4\

IxLoad Tcl API Programming Guide

979

iSCSI

-numberOfTargets

1\

-numberOfPortals

1\

-maxPortalLabelId

2\

-maxTargetLabelId

1

SEE ALSO

980

IxLoad Tcl API Programming Guide

iSCSI

advOptions
advOptions - configure the advanced options of an iSCSI client agent
SYNOPSIS
$Activity_iSCSIClient1 agent.pm.advOptions.config
DESCRIPTION
This object configures the advanced properties of an iSCSI client agent.
SUBCOMMANDS
None.
OPTIONS
enableTOS Enables use of TOS bits in packets from the initiator. Default = 0. commandCompletionTimeout Time to wait for a command to be completed. Min = "1", Max = "2147483", Default = "120". enableEsm Enable use of ESM. Default = 0. ipPreference IP version (IPv4/IPv6) preference.

Choice Description

0

IPv4

1

IPv6

2

Both, IPv4 first

3

Both, IPv6 first

vlan_priority VLAN priority. Min = "0", Max = "7", Default="0". typeOfService Type of service string, from availableTosList. esm

IxLoad Tcl API Programming Guide

981

iSCSI

MSS size. Min = "64", Max = "1460", Default = "1460". enableVlanPriority Enables setting of the VLAN priority. Default = "0".

EXAMPLE

$Activity_iSCSIClient1 agent.pm.advOptions.config \

-enableTOS

false \

-commandCompletionTimeout

120 \

-enableEsm

false \

-ipPreference

2\

-vlan_priority

0\

-typeOfService

"Best Effort (0x0)" \

-esm

1460 \

-enableVlanPriority

false

SEE ALSO
ixNetTraffic

982

IxLoad Tcl API Programming Guide

iSCSI

iSCSI Server Agent

iSCSI server agent - create an iSCSI server agent

SYNOPSIS

set Activity_iSCSIServer1 [$Traffic2_Network2 activityList.appendItem \

-protocolAndType

"iscsi Server" ]

DESCRIPTION
An iSCSI server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_iSCSIServer1 [$Traffic2_Network2 activityList.appendItem \

-protocolAndType

"iscsi Server" ]

SEE ALSO

IxLoad Tcl API Programming Guide

983

iSCSI

iscsi
iscsi - configure the basic properties of an iSCSI client agent
SYNOPSIS
$Activity_iSCSIClient1 agent.pm.iscsi.config
DESCRIPTION
This object configures the basic properties of an iSCSI client agent.
SUBCOMMANDS
None.
OPTIONS
userName User name. minLength ="1" maxLength="256" default="someuser". enableDataInegrity Enable Data Integrity support. Default = false. password Password for user name. minLength ="1" maxLength="128" default="secret". payloadType Payload type. One of the following:

Choice

Description

0 (default) Dummy

1

Synthetic Pattern Generator

enableAlias Enable use of an alias during a session. Default = true. immediateData Indicate if ImmediateData is supported by Initiator. 0 = No, 1 = Yes, Default = "0". initialR2T Indicate if R2T is supported by Initiator. 0 = No, 1 = Yes, Default = "0". initiatorAlias

984

IxLoad Tcl API Programming Guide

iSCSI

Initiator alias to be used during a session. Min length = 0, Max length = 50, Default = "ixiacom-iscsi". firstBurstLength
Maximum payload bytes of Unsolicited Data within an iSCSI sequence. Min = "512", Max = "16777215", Default = "65535". maxRecvDataSegmentLength
Maximum Data Segment Length the Initiator can receive in an iSCSI PDU. Min = "512", Max = "16777215", Default="8192". headerDigest
Enable Header Digest support. Min = "0", Max = "1", Default = "0". initiatorName
initiator Name to be used during a session. Min Length = "10", Max Length = "255", Default = "iqn.2010-11.com.ixia.ixload:initiator-iscsi". authenticationMethod Authentication method. One of the following:

Choice

Description

0 (default) None

1

CHAP

2

CHAP, None

dataDigest
Enable Data Digest support. Min = "0", Max = "1", Default = "0". maxBurstLength
Maximum payload bytes of Solicited Data within an iSCSI sequence. Min = "512", Max = "16777215", Default = "262144".

EXAMPLE

$Activity_iSCSIClient1 agent.pm.iscsi.config \

-enableAlias

true \

-immediateData

0\

-initialR2T

1\

-initiatorAlias

"ixiacom-iscsi" \

-firstBurstLength

65535 \

IxLoad Tcl API Programming Guide

985

iSCSI

-maxRecvDataSegmentLength

8192 \

-headerDigest

0\

-initiatorName

"iqn.2010-11.com.ixia.ixload:initiator-iscsi" \

-dataDigest

0\

-maxBurstLength

262144

SEE ALSO

986

IxLoad Tcl API Programming Guide

iSCSI

iscsiTarget
iscsiTarget - configure the number of targets for an iSCSI client or server.
SYNOPSIS
$Activity_iSCSIClient1 agent.pm.iscsiTarget.config

$Activity_iSCSIServer1 agent.pm.iscsiTarget.config

DESCRIPTION
This object configures the number of targets for an iSCSI client or server. These data structures enable tree traversal, insertion and deletion operations.

SUBCOMMANDS
None.

OPTIONS
numberOfLuns Number of LUNs in an activity. maxSelfId Assigns a unique label to each node under the tree. numberOfTargets Number of targets in an activity. numberOfPortals Number of portals in an activity. maxPortalLabelId Assigns a unique label to each portal (for example, TP1...TPn). maxTargetLabelId Assigns a unique label to each target (for example, TG1...TGn) under a portal.

EXAMPLE (client)

$Activity_iSCSIClient1 agent.pm.iscsiTarget.config \

-numberOfLuns

1\

-maxSelfId

4\

IxLoad Tcl API Programming Guide

987

iSCSI

-numberOfTargets

1\

-numberOfPortals

1\

-maxPortalLabelId

2\

-maxTargetLabelId

1

SEE ALSO

988

IxLoad Tcl API Programming Guide

iSCSI

advOptions

advOptions - configure the advanced options of an iSCSI client agent

SYNOPSIS
$Activity_iSCSIClient1 agent.pm.advOptions.config

DESCRIPTION

This object configures the advanced properties of an iSCSI server agent.

SUBCOMMANDS
None.

OPTIONS
enableTOS Enables use of TOS bits in packets from the initiator. Default = 0. enableEsm Enable use of ESM. Default = 0. listeningPort Port that the server listens on for new iSCSI connections. Min="1", Max="65535", Default="3260". vlan_priority VLAN priority. Min = "0", Max = "7", Default="0". typeOfService Type of service string, from availableTosList. esm MSS size. Min = "64", Max = "1460", Default = "1460". enableVlanPriority Enables setting of the VLAN priority. Default = "0".

EXAMPLE

$Activity_iSCSIServer1 agent.pm.advOptions.config \

-enableTOS

false \

-enableEsm

false \

-listeningPort

3260 \

IxLoad Tcl API Programming Guide

989

iSCSI

-vlan_priority -typeOfService -esm -enableVlanPriority
SEE ALSO

0\ "Best Effort (0x0)" \
1460 \ false

990

IxLoad Tcl API Programming Guide

IxIO
This section describes the IxIO Tcl API objects.
API Overview
The IxLoad IxIO API consists of the IxIO Client Agent and its commands

IxLoad Tcl API Programming Guide

991

IxIO

IxIO Client Agent

IxIO client agent - create an IxIO client agent

SYNOPSIS

set Activity_IxIOClient1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"IxIO Client" ]

DESCRIPTION
An IxIO client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_IxIOClient1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"IxIO Client" ]

SEE ALSO

ixNetTraffic

992

IxLoad Tcl API Programming Guide

IxIO

client file list

client file list - configure the list of files for an IxIO client agent

SYNOPSIS
$Activity_IxIOClient1 agent.pm.clientFiles.clientFileList.appendItem

DESCRIPTION

This object configures the list of files used by an IxIO client agent.
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. Unless otherwise described, no values are returned and an exception is raised for any error found.

SUBCOMMANDS
None.

OPTIONS
id Name of the file list. Default = "ClientFile". offsetStart Start of the location to read or write. Default = 0. offsetEnd End of the location to read or write. Default = 8096. fileType File type. Default = "logical". mntPath Path for drive. "E:" \ fileName

File name. Default = "file0".

EXAMPLE

$Activity_IxIOClient1 agent.pm.clientFiles.clientFileList.appendItem \

-id

"ClientFile" \

-offsetStart

0\

-offsetEnd

8096 \

IxLoad Tcl API Programming Guide

993

IxIO
-fileType -mntPath -fileName
SEE ALSO
ixNetTraffic

"logical" \ "E:" \ "file0"

994

IxLoad Tcl API Programming Guide

advanced configuration

Advanced config - configure the advanced properties of an IxIO client agent

SYNOPSIS
$Activity_IxIOClient1 agent.pm.advancedConfiguration.config

DESCRIPTION

This object configures the advanced properties of an IxIO client agent.

SUBCOMMANDS
None.

OPTIONS
ioQueueDepth Number of IO commands to queue per user. Default = 1. ioQueueLimitGlobal Global limit on the number of IO commands to be queued. Default = 0. enableDataBufferValidation Enable confirmation of the data read or writtern. Default = false.

EXAMPLE

$Activity_IxIOClient1 agent.pm.advancedConfiguration.config \

-ioQueueDepth

1\

-ioQueueLimitGlobal

0\

-enableDataBufferValidation

false

SEE ALSO
ixNetTraffic

IxIO

IxLoad Tcl API Programming Guide

995

IxIO

drive list

driveList - configure the list of drives for an IxIO client agent

SYNOPSIS
$Activity_IxIOClient1 agent.pm.basicConfiguration.driveList.appendItem

DESCRIPTION
This object configures the list of drives for an IxIO client agent.

SUBCOMMANDS
None.

OPTIONS
id Name of the drive to mount. Default = "TargetDrive". mntCommand Command to mount drive. Default = (none). mntPath Path of mounted drive. Default = (none).

EXAMPLE

$Activity_IxIOClient1 agent.pm.basicConfiguration.driveList.appendItem \

-id

"TargetDrive" \

-mntCommand

"mount //host/folder /mnt/remote" \

-mntPath

"E:"

SEE ALSO
ixNetTraffic

996

IxLoad Tcl API Programming Guide

IxIO Client Commands
This section lists the IxIO client agent's commands.
io
io command
SYNOPSIS
$Activity_IxIOClient1 agent.pm.scenarios.appendItem \ -commandType "IO"
DESCRIPTION
The io command reads or writes data on the server.
SUBCOMMANDS
None.
OPTIONS
commandType Type of IxIO command. Default = "IO" \ fileHandle Handle to be used to read or write. Default = "ih_<drive><file>" cmdName Name of the IxIO command. Default = "I/O 1"
STATISTICS EXAMPLE
$Activity_IxIOClient1 agent.pm.scenarios.appendItem \ -commandType "IO" \ -fileHandle "ih_E:/file0" \ -cmdName "I/O 1" $Activity_IxIOClient1 agent.pm.scenarios(0).ioParameterSetList.clear $Activity_IxIOClient1 agent.pm.scenarios(0).ioParameterSetList.appendItem \
IxLoad Tcl API Programming Guide

IxIO 997

IxIO
-id "IoParameterSet" \ -weight 100 \ -burst 1 \ -buffer 1 \ -align 0 \ -delay 0 \ -readPercentage 50 \ -reply 0 \ -position 0
SEE ALSO
ioParameterSetList
ioParameterSetList - list of parameters for an io command.
SYNOPSIS
$Activity_IxIOClient1 agent.pm.scenarios(0).ioParameterSetList.appendItem \ -id "IoParameterSet"
DESCRIPTION
ioParameterSetList configures the list of parameters for an io command.
SUBCOMMANDS
None.
OPTIONS
id Name of this parameter set list. Default = "IoParameterSet". weight Percentage of times this profile will be used when the IO command is executed during the test. Default = 100. burst Number of operations to issue at the same time. Default = 1.

998

IxLoad Tcl API Programming Guide

IxIO
buffer Amount of data to read or write at one time. Default = 1. align Aligns the buffer size with the sector size used on the target device. Default = 0. delay Amount of data to read or write at one time. Default = 0. readPercentage Percent of executions of the IO command that will be reads. Default = 50. reply Performs the reverse of the operation performed by the profile. Default = 0 \ position Frequency with which the command selects a random location to perform the read or write operation. Default = 0.
EXAMPLE
$Activity_IxIOClient1 agent.pm.scenarios(0).ioParameterSetList.clear $Activity_IxIOClient1 agent.pm.scenarios(0).ioParameterSetList.appendItem \ -id "IoParameterSet" \ -weight 100 \ -burst 1 \ -buffer 1 \ -align 0 \ -delay 0 \ -readPercentage 50 \ -reply 0 \ -position 0
SEE ALSO
open
open command

IxLoad Tcl API Programming Guide

999

IxIO
SYNOPSIS $Activity_IxIOClient1 agent.pm.scenarios.appendItem \ -commandType "OPEN"
DESCRIPTION
The open command opens a file.
SUBCOMMANDS
None.
OPTIONS
commandType Type of IxIO command. Default = "OPEN". fileHandle Handle to be used to open file with. Default = "handle<n>". file Path of file to be opened. Default = (none). cmdName Name of the IxIO command. Default = "OPEN <n>".
EXAMPLE
$Activity_IxIOClient1 agent.pm.scenarios.appendItem \ -commandType "OPEN" \ -fileHandle "handle2" \ -file "E:/file0" \ -cmdName "OPEN 2"
SEE ALSO
close
close command
SYNOPSIS
$Activity_IxIOClient1 agent.pm.scenarios.appendItem \

1000

IxLoad Tcl API Programming Guide

-commandType "CLOSE"
DESCRIPTION
The close command closes a file.
SUBCOMMANDS
None.
OPTIONS
commandType Type of IxIO command. Default = "CLOSE". fileHandle Handle to be used to close file with. Default = "handle<n>". cmdName Name of the IxIO command. Default = "CLOSE <n>".
EXAMPLE
$Activity_IxIOClient1 agent.pm.scenarios.appendItem \ -commandType "CLOSE" \ -fileHandle "handle2" \ -cmdName "CLOSE 3"
SEE ALSO

IxIO

IxLoad Tcl API Programming Guide

1001

This page intentionally left blank.

1002

IxLoad Tcl API Programming Guide

LDAP
This section describes the LDAP Tcl API objects.
Overview
LDAP protocol commands are organized as shown in the figure below.

Objectives
The objectives (userObjective) you can set for LDAP are listed below. Test objectives are set in the ixTimeline object.
l connectionRate

IxLoad Tcl API Programming Guide

1003

LDAP
l transactionRate l simulatedUsers l concurrentConnections l throughputMbps l throughputKbps l throughputGbps
LDAP Client Commands
This section lists the LDAP client commands.

LDAP Client Agent
The LDAP Client Agent command defines a simulated user performing LDAP requests against one or more LDAP servers. Refer to LDAP Client Agent for a full description of this command. The most significant options of this command are listed below.

Option enable name

Description Enables the use of this client agent. The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

Command List
This command defines the list of commands that the client sends to the server. Refer to Command List for a full description of this command. The most significant options of this command are listed below.

Option Description

id

LDAP command to be executed.

1004

IxLoad Tcl API Programming Guide

LDAP

Global Options
The LDAP client Global Options control network level operation of the client. Refer to Global Options for a full description of this command. The most significant options of this command are listed below.

Option version persistentConnection

Description Version of the LDAP protocol used for all client sessions. If true, the client opens a new TCP connection for each command sent.

maxRequestsPerConn

Maximum number of requests sent on each connection.

maxConcurrentConnPerUser Maximum number of concurrent connections per user.

followReferral

If true ("On"), and the client receives a response that is a referral to another server, it redirects the request to the referred server.

commandTimeout

Time (in ms) to wait for a response before aborting.

mustBind

If true, the client sends an implicit BIND on every new connection that it establishes.

Control
Configures a control to be included in a list associated with a command. Refer to Control for a full description of this command. The most significant options of this command are listed below.

Option

Description

controlType LDAP OID of the control associated with the command.

criticality

If true, the control is critical.

controlValue Value for control.

Modification
A modification to be included in the modificationList of the MODIFY command. Refer to Modification for a full description of this command. The most significant options of this command are listed below.

IxLoad Tcl API Programming Guide

1005

LDAP

Option

Description

operation Type of modification to be performed.

type

Attribute to be modified.

valueList List of values for the operation.

Attribute
An attribute to be included in the searchAttributeList of the SEARCH command. Refer to Attribute for a full description of this command. The most significant options of this command are listed below.
Option Description attrib Attribute

Attribute Type and Values
An attribute and one or more values to be included in the attribDescValueList of the ADD command. Refer to Attribute Type and Values for a full description of this command. The most significant options of this command are listed below.

Option Description

type

Attribute.

valueList List of values for the attribute.

1006

IxLoad Tcl API Programming Guide

LDAP
LDAP Client Agent
LDAP Client Agent - create an LDAP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.config
DESCRIPTION
An LDAP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). loopValue If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0). name The name associated with this object, which must be set at object creation time.
STATISTICS
EXAMPLE
set Traffic1_Network1 [::IxLoad new ixNetTraffic]################################################## Activity LDAPClient1 of NetTraffic Traffic1@Network1#################################################set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "ldap Client" ]################################################## Timeline1 for activities LDAPClient1#################################################set Timeline1

IxLoad Tcl API Programming Guide

1007

LDAP

[::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_LDAPClient1 config

\-enable

true \-name

"LDAPClient1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1$Activity_

LDAPClient1 agent.config \-enable

true \-name

"LDAPClient1"$Activity_LDAPClient1 agent.pm.DistinguishedName.DN.clear$Activity_

LDAPClient1 agent.pm.DistinguishedName.DNList.clear$Activity_LDAPClient1 agent.p-

m.globalOptions.config \-initiateCloseFromClient

true \-

commandTimeout

10000 \-mustBind

1 \-persistentConnection

1 \-maxRequestsPerConn

10000 \-authType

"CLEARTEXT Password" \-version

3 \-maxConcurrentConnPerUser

10 \-followReferral

1 \-password

"ixia" \-implicitLoopCheck

true \-name

"c=US,o=IXIA"$Activity_LDAPClient1

agent.pm.AddressHistory.clear$Activity_LDAPClient1 agent.pm.cmdList.clear$Activity_

LDAPClient1 agent.pm.cmdList.appendItem \-id

"BIND" \-authType

"CLEARTEXT Password" \-password

"ixia" \-name

"c=US,o=IXIA" \-serverAddr

"1.2.3.4"$Activity_LDAPClient1 agent.pm.cmdList(0).bindControls.clear$Activity_

LDAPClient1 agent.pm.cmdList(0).bindControls.appendItem \-id

"Control" \-controlValue

"2" \-controlType

"1" \-criticality

1

SEE ALSO

ixNetTraffic

1008

IxLoad Tcl API Programming Guide

LDAP

Command List
Command List--Creates the list of LDAP commands that the client will send to an LDAP server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.pm.cmdList.appendItem
DESCRIPTION
A command is added to the Command List object using the appendItem subcomfrom the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id LDAP command to be executed. One of the following:

Command Description

BIND UNBIND
SEARCH

Exchanges authentication information between the client and server.
Terminates an LDAP session. After transmitting an UNBIND command, the client assumes that the session is terminated. There is no response for an UNBIND command. When the server receives an UNBIND, it assumes that the client has terthe session and all outstanding requests may be discarded.
Requests that the server search its directory for information requested by the client. A SEARCH command can be used to read attributes from a single entry, from entries immediately below a particular entry in the directory tree, or a whole subtree of entries. The SEARCH option includes an Attribute List. You can use this list to add attributes to an LDAPv3 SEARCH command. For a list of the attributes, refer to RFC 2256.

IxLoad Tcl API Programming Guide

1009

LDAP

COMPARE

Allows a client to ask the server whether the named entry has an attribute/value pair.
The COMPARE command allows the server to keep certain attribute/value pairs secret (that is, not exposed for general search access) while still allowing the client limited use of them. For example, some servers might use this feature for passalthough it is insecure for the client to pass clear-text passwords in the COMPARE operation itself.

MODIFY

Requests that the server edit an entry on behalf of the client.

ADD

Requests that the server add an entry to the directory.

DELETE

Requests that the server delete a leaf entry from the directory.

MODIFYDN Allows a client to change a distinguished name (DN) entry or to move a subtree of entries to a new location.

THINK

Causes the client to become inactive. THINK is an internal IxLoad command intended to assist your testing; it is not a comdefined in the LDAP protocol.
If you specify identical values for the minimum and maximum intervals, the client will be inactive for a fixed length of time. If you specify different values for the minimum and maximum intervals, IxLoad will select a value within the range and cause the client to be inactive for that length of time.

LOOPBEGIN

An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be exea specified number of times. For example, in a Command List that contains the following commands: {Loop Begin} BIND SEARCH UNBIND {Loop End} The BIND, SEARCH, and UNBIND commands would be exefor the Number of Iterations specified for the {Loop Begin} command.

LOOPEND Ends the list of commands that will be executed by the preced{Loop Begin} command.

Arguments for id = BIND
serverAddr
IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). name
Name of directory object that the client will bind as. (Default = "c = US,o = IXIA").

1010

IxLoad Tcl API Programming Guide

LDAP

authType Authentication method. The choices for authType are:

authType

Description

"ANONYMOUS" No authentication. Anonymous authentication is most often used for public readonly directories.

"CLEARTEXT Password"

(Default) Authentication is by user name and password, transmitted unencrypted.

"DIGEST-MD5" Authentication is by user name and password, transmitted as a SASL MD5 digest. This method provides client authentication with protection against passive eavesdropattacks, but does not provide protection against active intermediary attacks.

password
Password of the user who wishes to bind. (Default = "ixia"). bindControls
List of optional controls to extend the functionality of the BIND command. See Control for a description of how to define a control.
Arguments for id = UNBIND
serverAddr
IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). unbindControls
List of optional controls to extend the functionality of the UNBIND command. See Control for a description of how to define a control.
Arguments for id = SEARCH
serverAddr
IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). baseObject
LDAP DN is the root of the subtree to be searched. (Default = "c = US,o = IXIA"). scope

IxLoad Tcl API Programming Guide

1011

LDAP

Restricts the search to specific portions of the LDAP directory. The choices are:

Value Description

0

Base object: Only the DN specified in the Base Object field is searched.

1

Single Level: All fields at the level specified in the Base Object field are searched.

2

(default) Whole subtree: All fields at the level specified in the Base Object field and

below it are searched.

derefAliases
Indicates how aliases are to be handled. In LDAP, one entry may point to another object in the namespace. This is called an alias entry, and it contains the DN of the object that it points to. If you look up an object using the alias, the alias is de-referenced so that what is returned is the object pointed to by the alias's DN. The choices are:

Value Description

(default) Never dereference aliases. 0

1

Dereference aliases after performing name resolution.

2

Dereference during name resolution.

3

Always dereference aliases.

sizeLimit
Maximum number of entries to be returned. Minimum = "0," Maximum = "2,147,483,647." (Default = "10").
timeLimit
Maximum time allowed for search, in seconds. Minimum = "0," Maximum = "2,147,483,647." (Default = "5").
typesOnly
Determines whether the contents of the search results contain attributes and valor only attributes: The choices are:

Value Description

0

Both type and value.

1

(default) Only attribute type.

1012

IxLoad Tcl API Programming Guide

LDAP
filter Search filter. RFC 2254 defines the filter representation. minLength = "5" Default = " (objectClass=*)." searchAttributeList List of attributes for the search. searchAttributeList is of type ixConfigSequenceContainer; items are added to the list via the appendItem sub-command. See the following example: $attribList searchAttribList.appendItem \ -attribcn See Attribute for a description of how to configure an attribute. searchControls List of optional controls to extend the functionality of the SEARCH command. See Control for a description of how to define a control.
Arguments for id = COMPARE
serverAddr IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). entry Name of the entry to be compared. (Default = "c = US,o = IXIA"). attributeDesc Attribute that is the object of the comparison. assertionValue Attribute value that is the object of the comparison. compareControls List of optional controls to extend the functionality of the COMPARE command. See Control for a description of how to define a control.
Arguments for id = MODIFY
serverAddr IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). directoryObject

IxLoad Tcl API Programming Guide

1013

LDAP
Directory Object to be modified. (Default = "c = US,o = IXIA"). modificationList The list of modifications to be performed. See Modification for the description of a modification. modifyControls List of optional controls to extend the functionality of the MODIFY command. See Control for a description of how to define a control.
Arguments for id = ADD
serverAddr IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). entry Name of the entry to be compared. (Default = "c = US,o = IXIA"). attribDescValueList List of attributes and values to be added. See Attribute Type and Values for the description of adding an attribute type and values. addControls List of optional controls to extend the functionality of the ADD command. See Control for a description of how to define a control.
Arguments for id = DELETE
serverAddr IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Default = "1.2.3.4"). entry Name of the entry to be compared. (Default = "c = US,o = IXIA"). deleteControls List of optional controls to extend the functionality of the DELETE command. See Control for a description of how to define a control.
Arguments for id = MODIFYDN
serverAddr

1014

IxLoad Tcl API Programming Guide

LDAP

IP address or host name of the LDAP server that the client will bind to. To specthe port number, add the suffix ":< port number>" to the address or host name. If you do not specify a port number, IxLoad sends the request to the default LDAP port, 389. (Defaul = "1.2.3.4"). entry
Name of the entry to be compared. (Default = "c = US,o = IXIA"). newRDN
Relative Distinguished Name (RDN) that will form the leftmost component of the new name of the entry. (Default = "c = US,o = IXIA"). deleteoldrdn
Indicates whether the old RDN attribute values are to be deleted. The choices are:

Value Description

0

(default) False

1

True

newSuperiorPresent Indicates whether a new superior DN is to be added. Specify the DN in the newS parameter.

Value Description

0

(default) False

1

True

newSuperior
If newSuperiorPresent is true, this is the DN of the entry that becomes the immediate superior of the new entry. If newSuperiorPresent is false, this parameter has no effect. (Default = "c = US,o = IXIA"). modifydnControls
List optional of controls to extend the functionality of the MODIFYDN comSee Control for a description of how to define a control.
Arguments for id = THINK
minimumInterval
Minimum length of time to pause. Minimum = "1,000," Maximum = "2,147,483,647." (Default = "1,000"). maximumInterval

IxLoad Tcl API Programming Guide

1015

LDAP

Maximum length of time to pause. Minimum = "1000," Maximum = "2,147,483,647." (Default = "1,000").

Arguments for id = LOOPBEGIN
iterations
Number of times to iterate. Value 0 (zero) is treated as infinity. Minimum = "0" Maximum = "2,147,483,647." (Default = "5").

Arguments for id = LOOPEND
None.

EXAMPLE

$Activity_LDAPClient1 agent.pm.cmdList.appendItem \-id

"BIND" \-authType

"CLEARTEXT Password" \-password

"ixia" \-name

"c=US,o=IXIA" \-serverAddr

"1.2.3.4"$Activity_LDAPClient1 agent.pm.cmdList(0).bindControls.clear

SEE ALSO

LDAP Client Agent

1016

IxLoad Tcl API Programming Guide

LDAP

Global Options
Global Options - confiure an LDAP client's global options
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.pm.globalOptions.config

DESCRIPTION
An LDAP client's global options are set by modifying the options of the pm.Glooption of the LDAP Client Agent object using its appendItem.
SUBCOMMANDS
None.
OPTIONS
version Version of the LDAP protocol used for all client sessions. IxLoad supports ver2 and 3. (Default = 3). persistentConnection If true, the client opens a new TCP connection for each command sent. The choices are:

Value Description

0

False. If "0" is specified, then the client will not reuse the TCP connection to send a request.

It will close the existing connection and open a new connection for sendeach request.

1

(default) True

If "1" is specified, then the client will use the existing TCP connection, if one exists. If the

TCP connection does not exist, then a new TCP connection will be estab

maxRequestsPerConn
Maximum number of requests that can be sent on each connection. On exceeding this limit, the existing connection will be closed and a new one will be opened to send the next request. This parameter is effective only when persistentConnec is "1." Minimum = 1, Maximum = 2,147,483,647. (Default = 100).
maxConcurrentConnPerUser
Maximum number of concurrent connections per user. Minimum = 1, Maximum = 2,147,483,647. (Default = 10").
followReferral

IxLoad Tcl API Programming Guide

1017

LDAP

If true ("On"), and the client receives a response that is a referral to another server, it redirects the request to the referred server. The choices are:

Value Description

0

Off

1

(default) On

commandTimeout Time (in ms) to wait for a response before aborting. Minimum = 1, Maximum = 2,147,483,647. (Default = 10,000). mustBind If true, the client sends an implicit BIND on every new connection that it establishes. The choices are:

Value Description

0

False.

1

(default) True. If set to "1," the client sends an implicit BIND as the first Protocol Data

Unit on every new connection that it establishes, provided that a user-configBIND is not the

next command to be sent.

Arguments for id = mustBind
name Name of directory object that the client will bind as. (Default = "c = US,o = IXIA"). authType Authentication method. The choices for authType are:

Value

Description

"ANONYMOUS" No authentication. Anonymous authentication is most often used for public readonly directories.

"CLEARTEXT Password"

(Default) Authentication is by user name and password, transmitted unencrypted.

"DIGEST-MD5" Authentication is by user name and password, transmitted as a SASL MD5 digest. This method provides client authentication with protection against passive eavesdrop attacks, but does not provide protection against active intermediary attacks.

password

1018

IxLoad Tcl API Programming Guide

LDAP

Password of the user who wishes to bind. (Default = "ixia").

EXAMPLE

$Activity_LDAPClient1 agent.pm.globalOptions.config \-initiateCloseFromClient

true \-commandTimeout

10000 \-mustBind

1 \-persistentConnection

1 \-maxRequestsPerConn

10000 \-authType

"CLEARTEXT Password" \-version

3 \-maxConcurrentConnPerUser

10 \-followReferral

1 \-password

"ixia" \-implicitLoopCheck

true \-name

"c=US,o=IXIA"

SEE ALSO

LDAP Client Agent

IxLoad Tcl API Programming Guide

1019

LDAP

Control
Control--An optional control to be included with a command.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.pm.cmdList(0).bindControls.appendItem

DESCRIPTION
Configures a control to be included in a list associated with a command. A conlist is of type ixConfigSequenceContainer; items are added to the list via the appendItem subcommand.
SUBCOMMANDS
None.
OPTIONS
controlType LDAP OID of the control associated with the command. criticality If true, the control is critical. The choices are:

Value Description

0

False.

1

(default) True.

controlValue Value for control.

EXAMPLE

$Activity_LDAPClient1 agent.pm.cmdList(0).bindControls.appendItem \-id

"Control" \-controlValue

"2" \-controlType

"1" \-criticality

1

SEE ALSO

Command List

1020

IxLoad Tcl API Programming Guide

LDAP

Modification
Modification--Configures a modification by the MODIFY command.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.pm.cmdList(1).modificationList.appendItem

DESCRIPTION
A modification to be included in the modificationList of the MODIFY command. The modificationList is of type ixConfigSequenceContainer; items are added to the list via the appendItem subcommand.
SUBCOMMANDS
None.
OPTIONS
operation Type of modification to be performed. The choices are:

Value Description

0

Add.

1

Delete.

2

Replace.

type
Attribute to be modified. RFC 2256 describes the LDAP attributes. valueList
List of values for the operation. Use semicolons (;) to separate multiple values. See the following example: "value1; value." (Default = {}).

EXAMPLE

$Activity_LDAPClient1 agent.pm.cmdList.appendItem \-id

"MODIFY" \-serverAddr

"1.2.3.4" \-directoryObject

"c=US,o=IXIA"$Activity_LDAPClient1 agent.pm.cmdList(1).modificationList.clear$Activ-

ity_LDAPClient1 agent.pm.cmdList(1).modificationList.appendItem \-id

"Modification" \-operation

0 \-type

"1" \-valueList

"1;2;3"$Activity_LDAPClient1

IxLoad Tcl API Programming Guide

1021

LDAP

agent.pm.cmdList(1).modifyControls.clear$Activity_LDAPClient1 agent.pm.cmdList(1).-

modifyControls.appendItem \-id

"Control" \-

controlValue

"2" \-controlType

"1" \-criticality

1

SEE ALSO

Command List

1022

IxLoad Tcl API Programming Guide

LDAP

Attribute
Attribute--Configures an attribute for the SEARCH command.

SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.pm.cmdList(2).searchAttributeList.appendItem

DESCRIPTION
An attribute to be included in the searchAttributeList of the SEARCH command. The searchAttributeList is of type ixConfigSequenceContainer; items are added to the list via the appendItem subcommand.

SUBCOMMANDS
None.

OPTIONS
attrib Attribute. RFC 2256 describes the LDAP attributes.

EXAMPLE

$Activity_LDAPClient1 agent.pm.cmdList.appendItem \-id

"SEARCH" \-typesOnly

1 \-filter

"(objectClass=*)" \-baseObject

"c=US,o=IXIA" \-

derefAliases

0 \-timeLimit

5 \-serverAddr

"1.2.3.4" \-sizeLimit

10 \-scope

2$Activity_LDAPClient1 agent.pm.cmdList

(2).searchControls.clear$Activity_LDAPClient1 agent.pm.cmdList(2).searchCon-

trols.appendItem \-id

"Control" \-controlValue

"2" \-controlType

"1" \-criticality

1$Activity_LDAPClient1 agent.pm.cmdList(2).searchAttributeList.clear$Activity_

LDAPClient1 agent.pm.cmdList(2).searchAttributeList.appendItem \-id

"Attribute" \-attrib

"authorityRevocationList"

SEE ALSO

Command List

IxLoad Tcl API Programming Guide

1023

LDAP

Attribute Type and Values
Attribute Type and Values--Configures an attribute and values for the ADD command.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_LDAPClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_LDAPClient1 agent.pm.cmdList(3).attribDescValueList.appendItem

DESCRIPTION
An attribute and one or more values to be included in the attribDescValueList of the ADD command. The attribDescValueList is of type ixConfigSequenceContainer; items are added to the list via the appendItem sub-command.

SUBCOMMANDS
None.

OPTIONS
type Type of attribute. RFC 2256 describes the LDAP attributes. valueList List of values for the attribute. Use semi-colons (;) to separate multiple values. See the following example: "value1; value2". (Default = {}).

EXAMPLE

$Activity_LDAPClient1 agent.pm.cmdList.appendItem \-id

"ADD" \-entry

"c=US,o=IXIA" \-serverAddr

"1.2.3.4"$Activity_LDAPClient1 agent.pm.cmdList(3).attribDescValueList.clear$Activ-

ity_LDAPClient1 agent.pm.cmdList(3).attribDescValueList.appendItem \-id

"AttributeTypeAndValues" \-type

"1" \-valueList

"1;2;3"

SEE ALSO
Command List

1024

IxLoad Tcl API Programming Guide

LDAP

LDAP Statistics
The table below describes the LDAP statistics.

Statistic

Description

LDAP Total Requests Sent

Total number of requests of all types sent. This statistic is the total of Total number of responses received + Total number of requests aborted.

LDAP Total

Rate at which client sent LDAP requests.

Requests Sent per

sec

LDAP Total Responses Received

Total number of LDAP responses of all types received.

LDAP Total Responses Received per sec

Rate at which client received LDAP responses.

LDAP Total

Total number of requests of all types for which no response was received within

Requests Aborted the time limit.

LDAP BIND Requests Sent

Total number of BIND requests sent. This statistic is the total of Total number of BIND responses received + Total number of BIND requests aborted.

LDAP BIND Responses Received

Total number of BIND responses of all types received.

LDAP BIND

Total number of BIND requests for which no response was received within the

Requests Aborted time limit.

LDAP BIND Success Responses

Total number of successful responses to BIND commands received by the client.

LDAP BIND Failure Total number of failure responses to BIND commands received by the client. Responses

LDAP BIND Responses With Referrals

Total number of responses to BIND commands that contained referrals.

IxLoad Tcl API Programming Guide

1025

LDAP

LDAP UNBIND Requests

Total number of UNBIND requests sent by the client.

LDAP SEARCH Requests Sent

Total number of SEARCH requests sent by the client.

LDAP SearchResultDone Responses Received

Total number of responses received indicating that the search was completed.
This statistic is a total of = Total number of SearchResultDone with success + Total number of SearchResultDone with failure + Total number of SearchResultDone with sizelimit exceeded error + Total number of SearchResultDone with timelimit exceeded error + Total number of SearchResultDone with referral.

LDAP Search

Total number of Search requests for which no response was received within the

Requests Aborted time limit specified on the Global tab.

LDAP SearchResultDone Responses With Success

Total number of successful searches completed.

LDAP SearchResultDone Responses With Failure

Total number of failed searches completed.

LDAP SearchResultDone Responses With Sizelimit Exceeded Error

Total number of searches completed whose results exceeded the size limit.

LDAP SearchResultDone Responses With Timelimit Exceeded Error

Total number of searches completed that exceeded the time limit specified on the SEARCH form.

LDAP SearchResultDone Responses With Referrals

Total number of searches completed that contained referrals.

LDAP SearchResult Entries Received

Total number of entries received in response to searches. One search may return zero, one, or more than one entries.

1026

IxLoad Tcl API Programming Guide

LDAP

LDAP SearchResult Entries Received per sec

Total number of referrals received in response to searches. One search may return zero, one, or more than one referrals.

LDAP ADD Requests Sent

Total number of Add requests sent by the client. This statistic is a total of Total number of Add responses received + Total number of Add requests aborted.

LDAP ADD Responses Received

Total number of Add responses received by the client.

LDAP ADD

Total number of Add requests for which no response was received within the

Requests Aborted time limit.

LDAP ADD Success Responses

Total number of responses received indicating that an Add request succeeded.

LDAP ADD Failure Total number of responses received indicating that an Add request failed. Responses

LDAP ADD Responses With Referrals

Total number of responses to Add requests that contained a referral.

LDAP MODIFY Requests Sent

Total number of Modify requests sent by the client. This statistic is the total of: Total number of Modify responses received + Total number of Modify requests aborted.

LDAP MODIFY Responses Received

Total number of responses to Modify requests received by the client.

LDAP MODIFY

Total number of Modify requests for which no response was received within the

Requests Aborted time limit.

LDAP MODIFY Suc- Total number of responses received indicating that a Modify request succeeded. cess Responses

LDAP MODIFY Fail- Total number of responses received indicating that a Modify request failed. ure Responses

LDAP MODIFY Responses With Referrals

Total number of responses to Modify requests that contained a referral.

IxLoad Tcl API Programming Guide

1027

LDAP

LDAP DELETE Requests Sent

Total number of Delete requests sent by the client. This statistic is the total of: Total number of Delete responses received + Total number of Delete requests aborted.

LDAP DELETE Responses Received

Total number of Delete responses received by the client.

LDAP DELETE

Total number of Delete requests for which no response was received within the

Requests Aborted time limit.

LDAP DELETE Suc- Total number of responses received indicating that a Delete request succeeded. cess Responses

LDAP DELETE Fail- Total number of responses received indicating that a Delete request failed. ure Responses

LDAP DELETE Responses With Referrals

Total number of responses to Delete requests that contained a referral.

LDAP MODIFYDN Requests Sent

Total number of ModifyDN requests sent by the client. This statistic is the total of: Total number of ModifyDN responses received + Total number of ModifyDN requests aborted.

LDAP MODIFYDN Responses Received

Total number of ModifyDN responses received by the client.

LDAP MODIFYDN Total number of ModifyDN requests for which no response was received within Requests Aborted the time limit.

LDAP MODIFYDN Success Responses

Total number of responses received indicating that a ModifyDN request succeeded.

LDAP MODIFYDN Total number of responses received indicating that a ModifyDN request failed. Failure Responses

LDAP MODIFYDN Responses With Referrals

Total number of responses to ModifyDN requests that contained a referral.

LDAP COMPARE Requests Sent

Total number of Compare requests sent by the client. This statistic is the total of: Total number of Compare responses received + Total number of Compare requests aborted.

1028

IxLoad Tcl API Programming Guide

LDAP

LDAP COMPARE Responses Received

Total number of Compare responses received by the client.

LDAP COMPARE Total number of Compare requests for which no response was received within Requests Aborted the time limit.

LDAP COMPARE Responses With Result TRUE

Total number of responses indicating that the string in the Compare request existed in the directory.

LDAP COMPARE Responses With Result FALSE

Total number of responses indicating that the string in the Compare request did not exist in the directory.

LDAP COMPARE Total number of responses received indicating that a Compare request failed. Failure Responses

LDAP COMPARE Responses With Referrals

Total number of responses to Compare requests that contained a referral.

LDAP Notice Of Disconnection Received

Total number of Notices of Disconnection received by the client.

LDAP BIND Response Time

Average time elapsed between sending a Bind request and receiving a complete response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP SEARCH Response Time

Average time elapsed between sending a Search request and receiving a SearchResultDone response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP ADD Response Time

Average time elapsed between sending an Add request and receiving a complete response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP MODIFY Response Time

Average time elapsed between sending a Modify request and receiving a complete response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

IxLoad Tcl API Programming Guide

1029

LDAP

LDAP DELETE Response Time

Average time elapsed between sending a Delete request and receiving a complete response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP MODIFYDN Response Time

Average time elapsed between sending a ModifyDN request and receiving a complete response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP COMPARE Response Time

Average time elapsed between sending a Compare request and receiving a complete response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP Avg Time To Receive First Byte Of Response

Average time required to receive the first byte of a SEARCH response. The time is averaged because a SEARCH command may return multiple responses.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP Avg Time To Receive Last Byte Of Response

Average time required to receive the last byte of a SEARCH response. The time is averaged because a SEARCH command may return multiple responses.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

LDAP Simulated Users

Number of users simulated during the test.

LDAP Connections Established

Total number of LDAP connections established. An LDAP connection occurs when an LDAP client successfully connects to an LDAP server.

LDAP Connections Established per sec

Rate at which the client established LDAP connections

LDAP Active Con- Number of simultaneous LDAP connections established. nections

LDAP Total Transactions

Total number of LDAP transactions completed by the client. An LDAP transaction occurs when an LDAP client sends a request to an LDAP server and receives a reponse, either of success or failure.

LDAP Transactions per sec

Rate at which the client completed LDAP transactions.

1030

IxLoad Tcl API Programming Guide

LDAP

LDAP Concurrent Sessions

Number of simultaneous LDAP sessions in progress. An LDAP session occurs when an LDAP client successfully connects to an LDAP server.

LDAP Total Bytes Total number of bytes sent by the client in LDAP requests. This statistic counts

Transmitted

only the bytes in the payload portion of the LDAP packets.

LDAP Total Bytes Total number of bytes received by the client in LDAP responses. Received

LDAP Total Bytes Transmitted per sec

Rate at which the client transmitted bytes in LDAP requests.

LDAP Total Bytes Rate at which the client received bytes in LDAP responses. Received per sec

LDAP Total Bytes Sent and Received

Combined total of bytes sent and received in LDAP requests and responses.

LDAP Throughput Total throughput over the LDAP connections, in bytes per second.

! 22

IxLoad Tcl API Programming Guide

1031

This page intentionally left blank.

1032

IxLoad Tcl API Programming Guide

Peer-to-Peer Application
This section describes the Peer-to-Peer Application Tcl API objects.
Objectives
The objectives (userObjective) you can set for Peer-to-Peer are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers l peerCount (displays as "Initiator Peer Count" in the GUI) l connectionRate l concurrentConnections l throughputMbps l throughputKbps l throughputGbps l transactionRate

IxLoad Tcl API Programming Guide

1033

Peer-to-Peer Application
Peer-to-Peer Application Agent
Peer-to-Peer Application Agent - create a peer-to-peer agent
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_P2PApplicationPeer1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_P2PApplicationPeer1 agent.config
DESCRIPTION
An Activity_P2PApplicationPeer1 agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subfrom the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS
EXAMPLE
set Traffic1_Network1 [::IxLoad new ixNetTraffic]################################################## Activity Activity_ P2PApplicationPeer1 of NetTraffic Traffic1@Network1#################################################set Activity_P2PApplicationPeer1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "p2papp Peer" ]$Activity_P2PApplicationPeer1 agent.config \-enable true \ -name "P2PApplicationPeer1"
SEE ALSO
ixNetTraffic

1034

IxLoad Tcl API Programming Guide

Peer-to-Peer Application

IxLoad Tcl API Programming Guide

1035

Peer-to-Peer Application
FlowDefinition
FlowDefinition--Defines a list of of P2P flows.
SYNOPSIS
set ServerTraffic1_ServerNetwork1 [::IxLoad new ixNetTraffic] set Activity_P2PApplicationPeer1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_P2PApplicationPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the list of protocol flows using the appendItem subcomfrom the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
remotePeer P2P activity that is the destination of traffic sent by this peer, and the origin of traffic received by it. responderPort Port number that responding peer listens on (Default=10000).
EXAMPLE
Activity_P2PApplicationPeer1 agent.pm.protocolFlows.clear$Activity_P2PApplicationPeer1 agent.pm.protocolFlows.appendItem \ -id "InbuiltFlow" \ -remotePeer "Traffic2_P2PApplicationPeer2" \ -subType "Bittorrent" \ -flowType "Simple Bidrectional" \ -responderPort 10000
SEE ALSO
InbuiltFlow

1036

IxLoad Tcl API Programming Guide

Peer-to-Peer Application
InbuiltFlow
InbuiltFlow --Defines the parameters of an inbuilt P2P flow.
SYNOPSIS
$Activity_P2PApplicationPeer1 agent.pm.protocolFlows.appendItem
DESCRIPTION
An option is added to the ProtocolFlows list of using the appendItem subcomfrom the ixConfigSequenceContainer command.
SUBCOMMANDS
None
OPTIONS
subType The peer-to-peer protocol type:
l Bittorrent l e-donkey flowType A peer-to-peer flow type defined as one of the following:
Simple Download (Bittorent) Simple Upload (Bittorent) Simple Bidirectional (Bittorent) Bidirectional to Download (Bittorent) Bidirectional to Long Download (Bittorent) Bidirectional to Upload (Bittorent) Bidirectional to Long Upload (Bittorent) Download to Upload (Bittorent) Download to Long Upload (Bittorent) Download to Bidirectional (Bittorent) Download to Long Bidirectional (Bittorent) SimpleControlFlow-1 (e-donkey) SimpleControlFlow-2 (e-donkey) Simple Download (e-donkey) Download to Upload (e-donkey) Download to Long Upload (e-donkey) Dowload to Bidirectional (e-donkey) Download to Long Bidirectional (e-donkey)

IxLoad Tcl API Programming Guide

1037

Peer-to-Peer Application
Simple Upload (e-donkey) Simple Upload to Download (e-donkey) Upload to Bidirectional (e-donkey) Simple Bidirectional (e-donkey) Unknown Direction-1, Unknown Direction-2, Unknown Direction-3 (e-donkey) Queued (e-donkey) Queued Callback (e-donkey) Queued Callback to Download (e-donkey) Queued Callback to Bidirectional (e-donkey) dataSegments A list of DataSegment objects.
EXAMPLE
Activity_AppReplayPeer1 agent.pm.protocolFlows.clear$Activity_P2PApplicationPeer1 agent.pm.protocolFlows.appendItem \ -id "InbuiltFlow" \ -remotePeer "Traffic2_P2PApplicationPeer2" \ -subType "Bittorrent" \ -flowType "Simple Bidrectional" \ -responderPort 10000
SEE ALSO
FlowDefinition

1038

IxLoad Tcl API Programming Guide

Peer-to-Peer Application

Peer-to-peer Global Statistics
The following table describes the Peer-to-peer statistics.

Statistic

Description

Test Objective Statistics

P2P Application Initiator Peer Count

Number of P2P initiators created.

P2P Application Responder Peer Count

Number of P2P responders created.

P2P Application Con- Number of concurrent sessions established between peers. current Sessions

P2P Application Con- Rate (in connections per second) at which P2P peers connected to each

nection Rate

other.

P2P Application Trans- Rate (in transactions per second) at which P2P peers completed trans-

action Rate

actions.

For P2P peers, transactions consist of exchanges of request-response control byte codes.

A transaction begins when an initiator sends the first control byte code, and ends when the responder sends a control byte code in response.

If a response requires multiple control byte codes, the transaction ends when the responder sends the final byte code.

P2P Application Initiator Total Bytes Sent/sec

Rate at which the initiators sent data.

P2P Application Initiator Total Bytes Received/sec

Rate at which the initiators received data.

P2P Application Initiator Total Throughput

Combined rate at which the initiators sent and received data.

P2P Application Responder Total Bytes Sent/sec

Rate at which the responders sent data.

IxLoad Tcl API Programming Guide

1039

Peer-to-Peer Application

P2P Application Responder Total Bytes Received/sec

Rate at which the responders received data.

P2P Application Responder Total Throughput

Combined rate at which the responders sent and received data.

Total Connection Statistics

P2P Application Connection Requests Sent

Number of connection requests sent by the initiators to the responders.

P2P Application Con- Number of connection attempts that succeeded. nection Requests Successful

P2P Application Connection Requests Failed

Number of connection attempts that failed.

P2P Application Act- Number of connections currently active. ive Connections

P2P Application Connection Requests Received

Number of connection requests received by the responders.

P2P Application Connections Accepted

Number of connections accepted by the responders. This statistic measures the number of successful connections from the point of view of the responder.

P2P Application Connections Failed

Number of connections that were established but then closed because they would have exceeded the maximum number of connections that the responder could support.
The maximum number of connections that the responder can accept is calculated based on the test configuration and depends on the resources available on the load module, such as memory.

Total Transaction Statistics

P2P Application Total Transactions Initiated

Total number of P2P transactions initiated.

1040

IxLoad Tcl API Programming Guide

Peer-to-Peer Application

P2P Application Total Transactions Successful

Total number of P2P transactions that succeeded.

Total Flow Statistics

P2P Application Total Total number of control and data flows initiated. Flow Initiated

P2P Application Total Total number of control and data flows active. Active Flow

P2P Application Total Total number of flows of control and data that completed successfully. Flow Succeeded

P2P Application Total Total number of control and data flows that failed for any reason. Flow Failed

P2P Application Total Total number of control and data flows that failed due to a network error. Flow Failed Error

P2P Application Total Total number of control and data flows that failed due to a timeout. Flow Failed Timeout

P2P Application Total Total number of control and data flows that failed because the data sent did Flow Failed Mismatch not match the data that was expected.

P2P Application Total Number of P2P sessions that ended abnormally. Flow Aborted

Initiator Total Bytes Statistics

P2P Application Initiator Total Bytes Sent

Total number of bytes sent by the initiators.

P2P Application Initiator Total Bytes Received

Total number of bytes received by the initiators.

P2P Application Initiator Total Bytes Sent and Received

Combined total of bytes sent and received by the initiators.

Responder Total Bytes Statistics

IxLoad Tcl API Programming Guide

1041

Peer-to-Peer Application

P2P Application Responder Total Bytes Sent

Total number of bytes sent by the responders.

P2P Application Responder Total Bytes Received

Total number of bytes received by the responders.

P2P Application Responder Total Bytes Sent and Received

Combined total number of bytes sent and received by the responders.

Control Tx/Rx Statistics

P2P Application Control Segment Transmission Initiated

Number of control flows established.
A control flow is the series of messages exchanged between peers before beginning the data flow. Control flows can also sometimes occur between data flows.

P2P Application Control Segment Transmission Succeeded

Number of control flows that succeeded (Initiator side).

P2P Application Control Segment Transmission Failed

Total number of control flows that failed for any reason (Initiator side).

P2P Application Con- Number of control flows that failed due to a network error (Initiator side). trol Segment Transmission Failed (Error)

P2P Application Control Segment Transmission Failed (Timeout)

Number of control flows that failed due to a timeout (Initiator side).

P2P Application Control Segment Reception Initiated

Number of control flows that the responders are receiving.

P2P Application Control Segment Reception Succeeded

Number of control flows that completed successfully (Responder side).

1042

IxLoad Tcl API Programming Guide

Peer-to-Peer Application

P2P Application Control Segment Reception Failed

Number of control flows that failed to complete for any reason (Responder side).

P2P Application Control Segment Reception Failed (Error)

Number of control flows that failed to complete due to a network error (Responder side).

P2P Application Control Segment Reception Failed (Timeout)

Number of control flows that failed to complete due to a timeout (Responder side).

P2P Application Control Segment Reception Failed (Mismatch)

Number of control flows that failed to complete because the data sent did not match the data that was expected (Responder side).

Data Tx/Rx Statistics

P2P Application Data Segment Transmission Initiated

Number of data flows currently active.
A data flow is the stream of related payload data sent from an initiator or a responder.
For example, if, in the Data Definition table, a Simple Upload flow is selected and the Upload Data Size is 4096 bytes, then the transmission of 4096 bytes of data from initiator to responder constitutes one successful data flow.

P2P Application Data Segment Transmission Succeeded

Number of data flows that completed successfully (Initiator side).

P2P Application Data Segment Transmission Failed

Number of data flows that failed (Initiator side).

P2P Application Data Number of data flows that failed due to a network error (Initiator side). Segment Transmission Failed (Error)

P2P Application Total Data Segment Transmission Failed (Timeout)

Number data flows that failed due to a timeout (Initiator side).

IxLoad Tcl API Programming Guide

1043

Peer-to-Peer Application

P2P Application Data Segment Reception Initiated

Number of data flows that the responders are receiving.

P2P Application Data Segment Reception Succeeded

Number of data flows that completed successfully (Responder side).

P2P Application Data Segment Reception Failed

Number of data flows that failed for any reason (Responder side).

P2P Application Data Number of data flows that failed due to a network error (Responder side). Flow Reception Failed (Error)

P2P Application Data Segment Reception Failed (Timeout)

Number of data flows that failed due to a timeout (Responder side).

! 23

1044

IxLoad Tcl API Programming Guide

POP3
This section describes the POP3 Tcl API objects.

Overview
POP3 protocol commands are organized as: l POP3 Client Agent l Pop3Command l POP3 Server Agent l MailBoxItem
An additional discussion item is included: l Using Auto-Generated Strings--which pertains to several commands.
Objectives
The objectives (userObjective) you can set for POP3 are listed below. Test objecare set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections l throughputMbps l throughputKbps l throughputGbps
POP3 Client Agent
The POP3 Client Agent defines a simulated user performing POP3 requests against one or more POP3 servers. Refer to POP3 Client Agent for a full descripof this command. The important options of this command are listed below.

IxLoad Tcl API Programming Guide

1045

POP3

Option

Usage

enable

Enables the use of the POP3 client agent.

name

The name associated with the client agent.

commandList

A list of commands to be sent to the server. Each list member is of type Pop3Command.

commandTimeout Client timeout value.

Pop3Command
Each client command is a single step in the interaction. Refer to Pop3Command for a full description of this command. The important options of this command are listed below.
Subcommand Usage checkConfig Checks the configuration of the action.

Option

Usage

command The POP3 command, with optional arguments, to be executed. arguments

POP3 Server Agent
The POP3 Server Agent defines the operation of the POP3 server. Refer to POP3 Server Agent for a full description of this command. The important options of this command are listed below.

Option

Usage

enable

Enables the use of this server agent.

name

The name associated with the server agent.

concurrentSessionLimit The maximum number of concurrent sessions that the server will allow.

1046

IxLoad Tcl API Programming Guide

POP3

Server_Listening_Port Port that the POP3 server listens on for new connections.

mailbox

The contents of a user's mailbox, to be returned to the POP3 user upon request. A list, each of whose elements are of type MailBoxItem.

MailBoxItem
Each MailBoxItem is a mail item that a POP3 user will retrieve from a server. Refer to MailBoxItem for a full description of this command. The important options of this command are listed below.

Option

Usage

count

The number of messages in mailMessage to be returned.

mailMessage A reference to a mail message, of type MailMessage. MailMessage is a command shared by the SMTP and POP3 protocols.

IxLoad Tcl API Programming Guide

1047

POP3
POP3 Client Agent
POP3 Client Agent - configure a POP3 client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_POP3Client1 [$Traffic1_Network1 activityList.appendItem $Activity_POP3Client1 agent.config options...
DESCRIPTION
A POP3 client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
commandList This is a list of type ixConfigSequenceContainer used to hold objects of type Pop3Command. The elements in this list describe the operations to be performed by the server. (Default = {}). commandTimeout Amount of time allowed to an POP3 command to complete. If the command does not complete within the allowed time, IxLoad closes the POP3 client's connecto the POP3 server. (Default = 120). enable Enables the use of this client agent. (Default = true). ipPreference This option indicates the order by which the POP3 client will use the subnets, if there is a mixture of IPv4 and IPv6 subnets in the network. The values are: IpPreferenceV4, IpPreferenceV6, IpPreferenceV4Any, IpPreferenceV6Any. loopValue If this option is enabled (1) then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0).

1048

IxLoad Tcl API Programming Guide

POP3

name
The name associated with this object, which must be set at object creation time. enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity POP3Client1

of NetTraffic Traffic1@Network1#################################################set

Activity_POP3Client1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"POP3 Client" ]################################################## Timeline1 for

activities POP3Client1#################################################set Timeline1

[::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_POP3Client1 config

\-enable

true \-name

"POP3Client1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1$Activity_

POP3Client1 agent.config \-commandTimeout

120 \-enable

true \-ipPreference

0 \-name

"POP3Client1" \-vlanPriority

0 \-enableVlanPriority

false \-loopValue

true$Activity_POP3Client1 agent.-

commandList.clearset my_Pop3Command [::IxLoad new Pop3Command]$my_Pop3Command config

\-command

"USER" \-arguments

"username"$Activity_POP3Client1 agent.commandList.appendItem -object $my_

Pop3Commandset my_Pop3Command1 [::IxLoad new Pop3Command]$my_Pop3Command1 config \-

command

"PASSWORD" \-arguments

"password"$Activity_POP3Client1 agent.commandList.appendItem -object $my_Pop3Com-

mand1set my_Pop3Command2 [::IxLoad new Pop3Command]$my_Pop3Command2 config \-command

"{Get}" \-arguments

"None"$Activity_POP3Client1 agent.-

commandList.appendItem -object $my_Pop3Command2

IxLoad Tcl API Programming Guide

1049

POP3
SEE ALSO
ixNetTraffic Pop3Command

1050

IxLoad Tcl API Programming Guide

POP3

Pop3Command
Pop3Command--Specifies the contents of an POP3 client command.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_POP3Client1 [$Traffic1_Network1 activityList.appendItem set my_Pop3Command [::IxLoad new Pop3Command] $Activity_POP3Client1 agent.commandList.appendItem -object $my_Pop3Command

DESCRIPTION
An POP3Command object is added to the commandList option of the POP3 Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
arguments
Optional arguments related to the POP3 command to be executed. One of:

Command

Usage

"USER"

The user name that this client will use to login to the POP3 server. You can include variables in the user name; see Using Auto-Generated Strings.

"PASSWORD" The password used to login to the POP3 server. You can use variin this field to generate multiple passwords. See Using Auto-Generated Strings.

"APOP"

The shared secret to be used to connect to a POP3 server that uses the APOP command to authenticate clients.

"OPEN" "STAT" "DELE" "NOOP"

The name and port of the server, of the form: "<IP address>:<TCP Port Number>" N/A The ID number of the message to be deleted. N/A

IxLoad Tcl API Programming Guide

1051

POP3

"RSET" "LIST" "UIDL" "RETR" "TOP" "QUIT" "{Get}"
"{Think}"

N/A A single message ID or an empty string ("") for all IDs. A single message ID or an empty string ("") for all IDs. A message ID. This can be either: "<Message ID>" or "<Message ID>:<Number of Lines>." N/A (Default) The name and port of the server, of the form: "<symbolic/IP address>:<TCP Port Number>" The number of seconds to wait. Default is 1 second.

command The POP3 command to be executed. One of:

Command

Usage

"USER"

The user name that this client will use to login to the POP3 server is specified in the argument option. You can include variables in the user name; see Using AutoGenerated Strings.

"PASSWORD"

The password used to login to the POP3 server is specified in the argument option. You can use variables in this field to generate mulpasswords. See Using Auto-Generated Strings.

"APOP"

The shared secret to be used to connect to a POP3 server that uses the APOP command to authenticate clients.
APOP (Authenticated POP) is a method of authenticating a POP3 session that does not require a cleartext password to be sent. The shared secret is a string known only to the POP3 client and server, and is part of the authentication process.
You can use variables in this field to generate multiple shared secrets. See Using Auto-Generated Strings.

"OPEN"

Opens the TCP connection.

"STAT"

Similar to the LIST command in that it causes the server to return the number of messages in the mail drop along with the total space occupied (in octets) by those messages. Unlike the RETR or LIST commands, STAT cannot be used to display messages.

1052

IxLoad Tcl API Programming Guide

POP3

"DELE"

Identifies a message to be deleted by passing its ID numbers in the argument option. The LIST command returns message IDs.

"NOOP"

A null or NO OPeration. A POP3 server's response to a NOOP comis to do nothing.

"RSET"

Resets the state of messages marked for deletion.

"LIST"

Lists the number of stored messages and their combined size, in octets. You can also use the result of this command to obtain the size of a single message; include the message's number as the conof the argument option.

"UIDL"

Returns the Unique ID Listing for a message. If the contents of argument is empty, a numerical listing of all messages and their associated UIDLs is returned. If the arguments option contains a specific UIDL, then the contents of the message is returned.

"RETR"

Returns the full text of the specified message, and marks that mesas read. Passes the message number returned by the LIST command in the argument option to identify the message to be retrieved.

"TOP"

Displays a message's header and the specified number of lines, counted from the top. This command takes two arguments: the mesnumber and the number of lines to display.
The server returns the message headers followed by a blank line and then the specified number of lines from the message.

"QUIT"

Ends the POP3 session and deletes any messages marked for dele

"{Get}"

(Default) An IxLoad command that retrieves all waiting messages for the user, then logs out. {Get} is a single command that performs the same function as multiple POP3 commands. However, {Get} is not a standard POP3 command. It is included in IxLoad for your conveto make configuring POP3 clients easier.

"{Think}"

An amount of time to wait before issuing the next command.

"{LoopBegin}" An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

"{LoopEnd}"

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

EXAMPLE

set my_Pop3Command [::IxLoad new Pop3Command]$my_Pop3Command config \-command

"USER" \-arguments

"username"$Activity_POP3Client1

agent.commandList.appendItem -object $my_Pop3Commandset my_Pop3Command1 [::IxLoad

new Pop3Command]$my_Pop3Command1 config \-command

IxLoad Tcl API Programming Guide

1053

POP3

"PASSWORD" \-arguments

"password"$Activity_POP3Client1

agent.commandList.appendItem -object $my_Pop3Command1set my_Pop3Command2 [::IxLoad

new Pop3Command]$my_Pop3Command2 config \-command

"

{Get}" \-arguments

"None"$Activity_POP3Client1 agent.-

commandList.appendItem -object $my_Pop3Command2

SEE ALSO

POP3 Client Agent

Using Auto-Generated Strings

1054

IxLoad Tcl API Programming Guide

POP3
POP3 Server Agent
POP3 Server Agent - create a POP3 server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_POP3Server1 [$Traffic2_Network2 activityList.appendItem $Activity_POP3Server1 agent.config options...
DESCRIPTION
A POP3 server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
concurrentSessionLimit The maximum number of concurrent sessions to be supported by the agent. (Default = 1,000). enable Enables the use of this action. (Default = true). mailBox This is a list of type MailBoxItem. The elements in this list are the messages that a POP3 user will receive when he queries the mailbox. (Default = {}). mailMessageList This is a list of type MailMessage. The elements in this list contain the messages to be returned to a POP3 client. (Default = {}). name The name associated with this object, which must be set at object creation time. serverlisteningport Port that the POP3 server listens on. To specify multiple ports, separate the port numbers with commas (,). You can specify up to 50 listening ports. (Default = 110).

IxLoad Tcl API Programming Guide

1055

POP3

enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false).
vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value.
STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity POP3Server1

of NetTraffic Traffic2@Network2#################################################set

Activity_POP3Server1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"POP3 Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

POP3Server1 config \-enable

true \-name

"POP3Server1" \-timeline

$_Match_Longest_$Activity_

POP3Server1 agent.config \-Server_Listening_Port

110 \-enable

true \-name

"POP3Server1" \-vlanPriority

0 \-concurrentSessionLimit

1000 \-enableVlanPriority

true$Activity_POP3Server1 agent.mailMessageList.clearset Simple [::IxLoad new

MailMessage]$Simple config \-bodySizeType

0 \-name

"Simple" \-fileNameAsBody

"" \-description

"100 bytes plain text body" \-textContentAsBody

"" \-

bodySizeRandomMax

4096 \-bodySizeFixed

100 \-mimeTypeAndEncode

0 \-bodySizeRandomMin

1 \-bodyDataType

0 \-useFileAsBody

true \-bodyFormat

0$Simple headerList.clearset From

[::IxLoad new MailHeader]$From config \-name

"From" \-value

"fromName@company.com"$Simple head-

erList.appendItem -object $Fromset To [::IxLoad new MailHeader]$To config \-name

"To" \-value

"toName@company.com"$Simple head-

erList.appendItem -object $Toset Subject [::IxLoad new MailHeader]$Subject config \-

name

"Subject" \-value

"sample subject"$Simple headerList.appendItem -object $Subject$Simple attach-

mentList.clear$Activity_POP3Server1 agent.mailMessageList.appendItem -object $Simple

SEE ALSO

ixNetTraffic

MailBoxItem

1056

IxLoad Tcl API Programming Guide

POP3

MailBoxItem

MailBoxItem--Specifies the contents of a mail box.

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_POP3Server1 [$Traffic2_Network2 activityList.appendItem $Activity_POP3Server1 agent.mailBox.appendItem -object $my_MailBoxItem set my_MailBoxItem [::IxLoad new MailBoxItem]

DESCRIPTION
A MailBoxItem object is added to the mailBox option of the POP3 Server Agent object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
count The number of copies of the mail message detained in mailMessage to be returned. (Default = 10).

SUB-OBJECTS
mailMessage
An object of type MailMessage which contains the message to be returned to the POP3 user. (Default = {}).

EXAMPLE

set my_MailBoxItem [::IxLoad new MailBoxItem]$my_MailBoxItem config \-count

10 \-mailMessage

$Simple1$Activity_POP3Server1 agent.-

mailBox.appendItem -object $my_MailBoxItem

SEE ALSO

POP3 Server Agent

IxLoad Tcl API Programming Guide

1057

POP3
Using Auto-Generated Strings
In some of the fields in the POP3 and SMTP client and server Activities, you can use sequence generators to automatically generate multiple values for the field. For example, the POP3 Username and Password fields both support the inclusion of variables. See Using Automatic Sequence Generators.

1058

IxLoad Tcl API Programming Guide

POP3
POP3 Statistics
The test results are available from the location defined on the User Directories window. See User Directories. If you review your statistics and find many instances of POP3 Client statistics and server statistics that should match but do not, that may be an indication that the Ramp Down Time is too short. When the Ramp Down Time expires, IxLoad terminates any users that are still running. If those users still have work in progress (such as transferring data) when IxLoad terminates them, the work will not be completed and the effect will be that statistics that should match may not. For TCP statistics, see TCP, Run State, and Curve Segment Statistics. For the POP3 statistics, see the following: POP3 Client Statistics POP3 Server Statistics

IxLoad Tcl API Programming Guide

1059

POP3

POP3 Client Statistics
The table below lists the statistics that IxLoad reports for POP3 clients. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

Description

POP3 Simulated Users

Number of simulated POP3 users.

POP3 Concurrent Connections

Maximum number of concurrent POP3 connections maintained during the test.

POP3 Connections

Number of POP3 sessions established by the clients.

POP3 Transactions

Number of POP3 transactions completed by the clients.

POP3 Bytes

Number of POP3 bytes transmitted and received by the clients.

POP3 Sessions Requested

Number of POP3 sessions attempted by the clients.

POP3 Sessions Established

Number of POP3 sessions established by the clients.

POP3 Sessions Failed

Number of attempts to establish POP3 sessions that failed.

POP3 Mails Received

Number of mail messages retrieved by the clients using POP3.

POP3

Number of POP3 authentication messages sent by the clients.

Authentication

Sent

POP3

Number of authentication messages which resulted in the servers allowing access.

Authentication

Ok

1060

IxLoad Tcl API Programming Guide

POP3

POP3

Number of authentication messages which resulted in the servers denying access.

Authentication

Failed

POP3 LIST Sent

Number of POP3 LIST commands sent.

POP3 LIST Ok

Number of POP3 LIST commands that received a positive response. If an argument was given with the command, the POP3 server issues a response with a line containing information for the message specified by the argument. If no argument was given, the POP3 server issues a multi-line response.

POP3 LIST Failed

Number of POP3 LIST commands that did not receive a positive response.

POP3 STAT Sent

Number of POP3 STAT messages sent.

POP3 STAT Ok

Number of POP3 STAT commands that received a positive response.
A positive response to this command consists of +OK followed by a single space, the number of messages in the maildrop, a single space, and the size of the maildrop in octets.

POP3 STAT Failed

Number of POP3 STAT commands that did not receive a positive response.

POP3 RETR Sent

Number of POP3 RETR messages sent.

POP3 RETR Ok

Number of POP3 RETR messages that received a positive response. A positive response to this command consists of an initial +OK followed by the message corresponding to the given message-number.

POP3 RETR Failed

Number of POP3 RETR commands that did not receive a positive response.

POP3 DELE Sent

Number of POP3 DELE commands sent.

POP3 DELE Ok

Number of POP3 DELE messages that received a positive response. In a positive response to this message, the POP3 server marks the message as deleted.

POP3 DELE Failed

Number of POP3 DELE commands that did not receive a positive response.

IxLoad Tcl API Programming Guide

1061

POP3

POP3 UIDL Sent

Number of POP3 UIDL commands sent.

POP3 UIDL Ok

Number of POP3 UIDL messages that received a positive response. If an argument was given, a positive response to this command consists of a line containing information for the message passed as the argument. If no argument was given, a positive response consists of an initial +OK followed by multiple lines, each line containing information for one message in the maildrop.

POP3 UIDL Failed

Number of POP3 UIDL commands that did not receive a positive response.

POP3 RSET Sent

Number of POP3 RSET messages sent.

POP3 RSET Ok Number of POP3 RSET messages that received a positive response.

POP3 RSET Failed

Number of POP3 RSET commands that did not receive a positive response.

POP3 NOOP Sent

Number of POP3 NOOP messages sent.

POP3 NOOP Ok

Number of POP3 NOOP messages that received a positive response.

POP3 NOOP Failed

Number of POP3 NOOP commands that did not receive a positive response.

POP3 TOP Sent

Number of POP3 TOP messages sent.

POP3 TOP Ok

Number of POP3 TOP messages that received a positive response.
A positive response consists of the initial +OK followed by the headers of the message, the blank line separating the headers from the body, and then the number of lines indicated message's body.

POP3 TOP Failed

Number of POP3 TOP messages that did not receive a positive response.

POP3 QUIT Sent

Number of POP3 QUIT messages sent.

POP3 QUIT Ok Number of POP3 QUIT messages that received a positive response.

POP3 QUIT Failed

Number of POP3 QUIT messages that did not receive a positive response.

1062

IxLoad Tcl API Programming Guide

POP3

POP3 Total Bytes Sent

Total number of POP3-related bytes (commands, responses, and messages) sent by the clients.

POP3 Total Bytes Received

Total number of POP3-related bytes (commands, responses, and messages) received by the clients.

POP3 Mail Bytes Received

Total number of bytes contained in the mail messages retrieved using POP3.

POP3 Sessions Active

Total number of POP3 sessions in progress.

POP3 Connection Rate

Rate at which the POP3 client established connections to the server.

POP3 Transaction Rate

Rate at which the POP3 client completed transactions.

POP3 Concurrent Connections

Number of POP3 connections active at the same time.

POP3 Simulated Users

Number of simulated POP3 users.

POP3 Through- Rate at which the client sent and received POP3 data. put

Note: If the average table and bar graphs do not contain any data for the clients, that is an indication that they did not reach the Sustained (SU) run state. This can be caused by the following:
1. Stopping a test during the Ramp-Up phase.
2. Configuring a large number of page requests for the client agent so that not all the users configured for the client can attain the SU state within the allotted time.
3. Configuring a value for the statistics interval (Statistics tab) which is much larger than the SU time.

IxLoad Tcl API Programming Guide

1063

POP3

POP3 Server Statistics
The table below lists the statistics that IxLoad reports for POP3 servers. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

Description

POP3 Session Requests Received

Number of requests to establish POP3 sessions received by the servers.

POP3 Session Requests Suc- Number of POP3 sessions established by the servers. cessful

POP3 Session Requests Failed

Number of POP3 sessions requested by the clients that the servers failed to establish.

POP3 Total Mails Sent

Total number of mail messages sent by the servers.

POP3 Total Attachments Sent

Total number of attachments sent by the servers.

POP3 Total Mails With Attachments Sent

Total number of messages sent that included one or more attachments.

POP3 USER Cmds Received Number of POP3 USER commands received.

POP3 PASS Cmds Received Number of POP3 PASS commands received.

POP3 APOP Cmds Received Number of POP3 APOP commands received.

POP3 LIST Cmds Received Number of POP3 LIST commands received.

POP3 STAT Cmds Received Number of POP3 STAT commands received.

POP3 RETR Cmds Received Number of POP3 RETR commands received.

POP3 DELE Cmds Received Number of POP3 DELE commands received.

POP3 UIDL Cmds Received Number of POP3 UIDL commands received.

POP3 RSET Cmds Received Number of POP3 RSET commands received.

POP3 NOOP Cmds Received Number of POP3 NOOP commands received.

POP3 TOP Cmds Received Number of POP3 TOP commands received.

1064

IxLoad Tcl API Programming Guide

POP3

POP3 QUIT Cmds Received Number of POP3 QUIT commands received.

POP3 Total Bytes Sent

Total number of POP3-related bytes (commands, responses, and messages) sent by the servers.

POP3 Total Bytes Received Total number of POP3-related bytes (commands, responses, and messages) received by the servers.

! 24

IxLoad Tcl API Programming Guide

1065

This page intentionally left blank.

1066

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware

This section describes the Tcl API for the Published Vulnerabilities and Malware plugin.

The protocol type for this plugin is "Vulnerability Peer":

set Activity_PublishedVulnerabil1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"Vulnerability Peer" ]

The valid objective types for this plugin are are:

l peerCount l throughputMBps l throughputKBps

IxLoad Tcl API Programming Guide

1067

Published Vulnerabilities and Malware

config

Published Vulnerability Peer - create a Published Vulnerability peer

SYNOPSIS

set Activity_PublishedVulnerabil1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"Vulnerability Peer" ]

$Activity_PublishedVulnerabil1 playlists.clear

$Activity_PublishedVulnerabil1 config \

-enable

true \

-name

"PublishedVulnerabil1" \

DESCRIPTION
A Published Vulnerability and Malware peer agent is added to the activityList option of the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. It is customary to set all the options of the client agent during the appendItem call. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this peer agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS
EXAMPLE
set Activity_PublishedVulnerabil1 [$Traffic1_Network1 activityList.appendItem \

1068

IxLoad Tcl API Programming Guide

-protocolAndType

"Vulnerability Peer" ]

$Activity_PublishedVulnerabil1 playlists.clear

$Activity_PublishedVulnerabil1 config \

-enable

true \

-name

"PublishedVulnerabil1" \

-userIpMapping

"1:1" \

-enableConstraint

false \

-userObjectiveValue

100 \

-constraintValue

100 \

-userObjectiveType

"peerCount" \

-timeline

$Timeline1

$Activity_PublishedVulnerabil1 agent.config \

-cmdListLoops

0

SEE ALSO
ixNetTraffic

Published Vulnerabilities and Malware

IxLoad Tcl API Programming Guide

1069

Published Vulnerabilities and Malware

advOptions

advOptions - configure the advanced options of a Published Vulnerabilities and Malware peer

SYNOPSIS

$Activity_PublishedVulnerabil1 agent.pm.advOptions.config \

-sessionTimeOut

10 \

-enableAdvanceStats

false

DESCRIPTION
This command configures the advanced options of a Published Vulnerabilities and Malware peer.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
sessionTimeOut Configures the session timeout value. (Default="10", min="1", max="3600"). enableAdvanceStats Enables or disables advanced statistics. (Default="0 (false)).
STATISTICS

EXAMPLE

$Activity_PublishedVulnerabil1 agent.pm.advOptions.config \

-sessionTimeOut

10 \

-enableAdvanceStats

false

SEE ALSO
ixNetTraffic

1070

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware

attacksCmdList

attacksCmdList - configure a Published Vulnerability peer command list

SYNOPSIS

$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList.appendItem \

-commandType

"PlayAttacks" \

DESCRIPTION
This command configures the list of commands that Published Vulnerability and Malware peer initiator agent will execute during a test. You should clear the command list before you begin adding commands to it. Add commands to the list using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the list. It is customary to set all the options for the command during the appendItem call. Each member of the list can be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
commandType Type of command to be added to list. Commands can be one of the following:
PlayAttacks
Plays list of attacks. Options for PlayAttacks are: destination Responder peer that is the destination of this PlayAttacks command. attackList Name of attack list to be executed. This must be the name string as displayed in the GUI. cmdName Name of this command.

IxLoad Tcl API Programming Guide

1071

Published Vulnerabilities and Malware

LoopBeginCommand
Marks the beginning of a subset of commands that will be looped through in command list. Options for LoopBeginCommand are: LoopCount Number of times to loop the subset of commands. (Default="5," min="0", max="2147483647")
LoopEndCommand
Marks the end of a subset of commands that will be looped through in command list. There are no options for LoopEndCommand.
THINK
Pauses execution of command list. Options for THINK are: minimumInterval Minimum length of time to pause execution. (Min="1", max="2147483647", default="1000") maximumInterval Maximum length of time to pause execution. (Min="1", max="2147483647", default="1000")

EXAMPLE
$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList.clear

$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList.appendItem \

-commandType

"PlayAttacks" \

-destination

"Traffic2_PublishedVulnerabil2" \

-attackList

"All attacks" \

-cmdName

"Play Attacks 1"

SEE ALSO

1072

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware

attacksCmdList nodeList

attacksCmdList nodeList - configure the list of evasion methods associated with a command list.

SYNOPSIS

$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList(0).nodeList.appendItem \

-id

"NodeIpFragmentReorder" \

DESCRIPTION
This command configures the list of evasion techniques associated with a specific command list. You should clear the command list before you begin adding commands to it. Add methods to the list using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the list. It is customary to set all the options for the method during the appendItem call. Each member of the list can be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id Evasion method. id can be one of the following
NodeIpFragmentGlobal
Global options for the IP fragmentation evasion technique. Options for NodeIpFragmentGlobal are: checkBoxState Enables or disables IP fragmentation for packets with specific flags set. (Default = false) ack If True, packets with the ACK flag set are not fragmented. (Default = false) synAck If True, packets with the SYN/ACK flag set are not fragmented. (Default = false) syn

IxLoad Tcl API Programming Guide

1073

Published Vulnerabilities and Malware
If True, packets with the SYN flag set are not fragmented. (Default = false) ackPsh If True, packets with the ACK/PSH flag set are not fragmented. (Default = false) rst If True, packets with the RST flag set are not fragmented. (Default = false) size Size of the fragments. Must be a multiple of 8. (Default="8", min="8", max="9000")
NodeIpFragmentReorder
Fragment reorder evasion technique. Options for NodeIpFragmentReorder are: checkBoxState If True, IP fragments are reordered. (Default = false) reorder Reorder method. (Random = 1, Reverse = 2, Default = 1)
NodeIpFragmentOverlap
Fragment overlap evasion technique. Options for NodeIpFragmentOverlap are: checkBoxState If True, IP fragments are overlapped. (Default = false) overlap Area of fragments that overlap. (Last X bytes = 1, First X bytes = 2, Default = 2) overlapLength Length, in bytes, of overlapping area. Must be a multiple of 8 and less than the IP Fragment size. (Default="8" min="8" max="9000")
NodeIpFragmentInsertNull
Null fragment insertion evasion technique. Options for NodeIpFragmentInsertNull are: checkBoxState If True, null fragments are inserted. (Default = false)

1074

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware

hopCount Number of hops on the network to reach the DUT. (Min="1", max="256", default="1") insertNull Location where null fragments are inserted. (Before each fragment = "1", After each fragment = "2", default = "2")
NodeIpFragmentDuplicate
Duplicate fragment evasion technique. Options for NodeIpFragmentDuplicate are: checkBoxState If True, fragments are duplicated. (Default = false) duplicate Enables or disables fragment duplication. (Enable = "1", Disable = "2", default = 2)

EXAMPLE
$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList(0).nodeList.clear

$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList(0).nodeList.appendItem \

-id

"NodeIpFragmentGlobal" \

-checkBoxState

false \

-ack

false \

-synAck

false \

-syn

false \

-ackPsh

false \

-rst

false \

-size

8

$Activity_PublishedVulnerabil1 agent.pm.attacksCmdList(0).nodeList.appendItem \

-id

"NodeIpFragmentReorder" \

-checkBoxState

false \

IxLoad Tcl API Programming Guide

1075

Published Vulnerabilities and Malware

-reorder

1

SEE ALSO

1076

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
AddAttacks
AddAttacks - add attacks to an attack list
SYNOPSIS
agent.CallServiceEx "AddAttacks" [list"AttackListName", "attackName1", "attackName2", "attackName3"...]
DESCRIPTION
AddAttacks adds one or more attacks to an existing attack list. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
Attack list name Name of the list to which attacks are to be added. Default="" (none). attack names Comma-separated list of the attacks to be added to the list. Default="" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "AddAttacks" / [list "3623-all" "Backdoor_Win32_Redsip_A_runtime1"]
SEE ALSO

IxLoad Tcl API Programming Guide

1077

Published Vulnerabilities and Malware
AttackListCount
AttackListCount - find the number of attacks in an attack list
SYNOPSIS
agent.CallServiceEx "AttackListCount" [list "attackListName"]
DESCRIPTION
AttackListCount returns the number of attacks in a list. This command returns a list in which the first element is the number of attacks in the list.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
AttackListName Name of the attack list. Default = "" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "AttackListCount" [list "All attacks"]
SEE ALSO

1078

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
CreateAttackList
CreateAttackList - create a new list of attacks
SYNOPSIS
agent.CallServiceEx "CreateAttackList" [list "AttackListName","attackName1", "attackName2"...]
DESCRIPTION
CreateAttackList creates a new list of attacks. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
Attack list name Name of the list to be created. Default="" (none). attack names Comma-separated list of the attacks to be included in the list. Default="none".
EXAMPLE
$VulnActivity agent.callServiceEx "CreateAttackList" / [list "list new2" "Backdoor_Win32_Redsip_A_runtime1" / "Adobe Acrobat and Reader 'AcroForm.api' / Memory Corruption Vulnerability"]
SEE ALSO

IxLoad Tcl API Programming Guide

1079

Published Vulnerabilities and Malware
CreatePlaylist
CreatePlaylist - create a playlist
SYNOPSIS
agent.CallServiceEx "CreatePlaylist" [list "attackListName", "filter", "filePath" "type"]
DESCRIPTION
CreatePlaylist creates a playlist of attack lists. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
attackListName Name of the new attack. Default = "" (none). filter Filter criteria used to add attacks to the list. Default = "" (none). filePath Name and full directory path of the playlist file. type Type of match to the filter criteria. If True, the filter criteria must be an exact match. If False (the default), the filter criteria can be a partial match.
EXAMPLE
$VulnActivity agent.callServiceEx "CreatePlaylist" [list cve2010 "cveid" C:/cve_playlist.txt False]
SEE ALSO

1080

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
DatabaseVersion
DatabaseVersion - return the version number of the attacks database
SYNOPSIS
agent.DatabaseVersion "DatabaseVersion" []
DESCRIPTION
DatabaseVersion returns the version number of the attacks database. This command returns a list in which the first element is the database version number.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
None.
EXAMPLE
agent.DatabaseVersion "DatabaseVersion" []
SEE ALSO

IxLoad Tcl API Programming Guide

1081

Published Vulnerabilities and Malware
DeleteAttackList
DeleteAttackList - delete an attack list
SYNOPSIS
agent.CallServiceEx "DeleteAttackList" [list "AttackListName"]
DESCRIPTION
DeleteAttackList deletes a list of attacks. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
AttackListName Name of the list to be deleted. Default="" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "DeleteAttackList"[list "list new2"]
SEE ALSO

1082

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
DeleteAttacks
DeleteAttacks - delete attacks from an attack list
SYNOPSIS
agent.CallServiceEx "DeleteAttacks" [list "AttackListName, "attackName1,attackName2"..."]
DESCRIPTION
DeleteAttacks removes attacks from an attack list. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
Attack list name Name of the list from which attacks are to be removed. Default="" (none). attack names Comma-separated list of the attacks to be removed from the list. Default="" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "DeleteAttacks" [list "3623-all" "Youngzsoft_CCProxy_CONNECT_ Request_Buffer_Overflow_attack" ]
SEE ALSO

IxLoad Tcl API Programming Guide

1083

Published Vulnerabilities and Malware
ExportAttacks
ExportAttacks - export attack list
SYNOPSIS
agent.CallServiceEx "ExportAttacks" ["attackListName","filepath"]
DESCRIPTION
ExportAttacks exports an attack list to a .zatk format file. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
attackListName Name of the attack list to be exported. Default = "" (none). filepath Full path where the file of exported attacks will be stored. Default = "" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "ExportAttacks" [list "one" "C:/attack_list.zatk"]
SEE ALSO

1084

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
GetCapture
GetCapture - return the name of the capture file associated an attack
SYNOPSIS
$VulnActivity agent.callServiceEx "GetCapture" "Backdoor_Win32_Redsip_A_runtime1"
DESCRIPTION
GetCapture returns the name of the capture file associated an attack. This command returns a list in which the first element is the name of the capture file.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
AttackName Name of the attack for which the capture is to be returned. Default = "" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "GetCapture" "Backdoor_Win32_Redsip_A_runtime1"
SEE ALSO

IxLoad Tcl API Programming Guide

1085

Published Vulnerabilities and Malware
ImportAttacks (.zatk format)
ImportAttacks - import attacks in .zatk format
SYNOPSIS
agent.CallServiceEx "ImportAttacks" ["file_path_of_the_zatk_file"]
DESCRIPTION
ImportAttacks imports user-defined attacks stored in .zatk files into the database. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
file_path_of_the_zatk_file Full file path where the .zatk file is stored. Default = "" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "ImportAttacks" [list "C:/AttacksToImport"]
SEE ALSO

1086

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
ImportUserDefinedAttacks
ImportUserDefinedAttacks - import attacks
SYNOPSIS
agent.CallServiceEx "ImportUserDefinedAttacks" ["folder_path", "importType"]
DESCRIPTION
ImportUserDefinedAttacks imports user-defined attacks into the database. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
folder_path Full directory path where the capture files and XML metadata files are stored. Default = "" (none). importType Determines what happens if the imported attacks already exist in the database. If True, the imported attacks overwrite the existing attacks. If False (the default), the imported attacks are added as new attacks.
EXAMPLE
$VulnActivity agent.callServiceEx "ImportUserDefinedAttacks" [list "C:/Vijay" "False"]
SEE ALSO

IxLoad Tcl API Programming Guide

1087

Published Vulnerabilities and Malware
RenameAttackList
RenameAttackList - rename an attack list
SYNOPSIS
agent.CallServiceEx "RenameAttackList" [list "AttackListName","NewAttackListName"]
DESCRIPTION
RenameAttackList renames an attack list. This command returns no values.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
AttackListName Current name of the attack list. Default = "" (none). NewAttackListName New name of the attack list. Default = "" (none).
EXAMPLE
agent.CallServiceEx "RenameAttackList" [list "AttackListName","NewAttackListName"]
SEE ALSO

1088

IxLoad Tcl API Programming Guide

Published Vulnerabilities and Malware
RetrieveAttacks
RetrieveAttacks - retrieve the list of attacks in an attack list
SYNOPSIS
Agent.CallServiceEx "RetrieveAttacks" [list "attackListName"]
DESCRIPTION
RetrieveAttacks retrieves the list of attacks in an attack list This command returns a list which consists of the names of the attacks in the list.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
attackListName Name of the new attack. Default = "" (none).
EXAMPLE
$VulnActivity agent.callServiceEx "RetrieveAttacks" [list "2"]
SEE ALSO

IxLoad Tcl API Programming Guide

1089

Published Vulnerabilities and Malware
SearchAttacks
SearchAttacks - search for attacks
SYNOPSIS
agent.CallServiceEx "SearchAttacks" {"valueToBeSearched", "metadataToBeSearched", "isCaseSensitive", "isExactMatch",}
DESCRIPTION
SearchAttacks searches for attacks in the database, based on criteria you supply in the command. This command returns a list of attacks that match the criteria you entered. Note that the parameters for this command are bounded by braces ({ }) instead of square brackets ([ ]) as for the other PVM commands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
valueToBeSearched Value to search for. Default = "" (none). metadataToBeSearched Metadata to search. Default = "" (none). isCaseSensitive Determines whether the match should be case-sensitive or not. Values = "True", "False" (default). isExactMatch Determines whether the match should be a sub-string or an exact match. isExactMatch is a filter that will return the attack only if the metadataToBeSearched value is equal with valueToBeSearched. Values = "True", "False" (default).
EXAMPLE
$VulnActivity agent.callServiceEx "SearchAttacks" {"HIGH" "Severity" True True}
SEE ALSO

1090

IxLoad Tcl API Programming Guide

! 25

Published Vulnerabilities and Malware

IxLoad Tcl API Programming Guide

1091

This page intentionally left blank.

1092

IxLoad Tcl API Programming Guide

QT
This section describes the QT Tcl API commands.

IxLoad Tcl API Programming Guide

1093

QT

Running a QuickTest from Tcl
To run a Quick Test from a Tcl script, you use the IxLoad GUI to configure a Quick Test in an RXF, then you use a TCL script to load the RXF and start the test.
For an example of a Tcl script, see Quick Test Sample Script.
Also, a sample Quick Test Tcl script is included in the <install path>TclScripts\Samples\Application Features directory. To run this script, set the Windows environment variable IXLOAD_ TCLAPI_REV to the value of installation folder of the IxLoad version you intend to use. For example: C:\Program Files (x86)\Ixia\IxLoad\<version>\.
After setting the environment variable, use the following procedure to run the script:
1. Open a Windows command prompt. 2. Set the path to the Application Features directory of the version of IxLoad you want to use. 3. For example: C:\Program Files (x86)\Ixi-
a\IxLoad\version\TclScripts\Samples\Application Features 4. Type the full path to the Ixia Tcl shell (tclsh.exe), specify the the tcl file (file name only), and the
full path to the RXF containing the QuickTest, the press Enter to start the script.

For example:

"<path>\Tcl\8.5.12.0\bin\tclsh.exe" RunQT.tcl "D:\TCL\Demo\demo.rxf"

[ full path to the TCL shell]

[script] [full path to rxf file]

1094

IxLoad Tcl API Programming Guide

QT
startQuickTest
startQuickTest - start a Quick Test
SYNOPSIS
startQuickTest "TestName"
DESCRIPTION
This command starts a Quick Test. Run the command against the QuickTest Config object ($qtConfig), and specify the test to be started.
SUBCOMMANDS
None.
OPTIONS
TestName Name of the Quick Test to run. If you do not specify a test, the command runs the first QuickTest configured in the RXF. Default = "" (none)
EXAMPLE
$qtConfig startQuickTest "QuickTest1"
SEE ALSO

IxLoad Tcl API Programming Guide

1095

QT
checkTestRunning
checkTestRunning - confirm test is running
SYNOPSIS
checkTestRunning
DESCRIPTION
This command checks to see if a Quick Test is running. Run the command against the QuickTest Config object ($qtConfig).
SUBCOMMANDS
None.
OPTIONS
None
EXAMPLE
$qtConfig checkTestRunning
SEE ALSO

1096

IxLoad Tcl API Programming Guide

QT
stopQuickTest
stopQuickTest - stop a running Quick Test
SYNOPSIS
stopQuickTest
DESCRIPTION
This command forcefully stops a running Quick Test. Run the command against the QuickTest Config object ($qtConfig).
SUBCOMMANDS
None.
OPTIONS
None
EXAMPLE
$qtConfig stopQuickTest
SEE ALSO

IxLoad Tcl API Programming Guide

1097

QT
QuickTest Sample Script
Below is a sample Quick Test Tcl script you can use as a basis for your own script. To use this script:
1. Create a new Quick TestT test using the IxLoad GUI, assign ports to it, and then save the RXF in the same folder as the script. For example, D:\TCL\Demo).
2. In the folder where you saved the RXF and script, create a sub-folder to store the results in (for example: D:\TCL\Demo\Results).
3. Change the paths in the script to match the paths where you saved the RXF and script, and created the results folder.
4. To run the script, open a Wish console and source the file. For example: source {D:\TCL\Demo\run_qt.tcl}
#package require IxLoad package require IxLoadCsv
# ####################################
# Connect ::IxLoad connect localhost
# Incarcare rxf set testController [::IxLoad new ixTestController -outputDir 1] $testController setResultDir {D:\TCL\Demo\Results} set repository [::IxLoad new ixRepository -name {D:\TCL\Demo\demo.rxf}]
# Start QT set qtConfig [$repository getQuickTestConfig] after 12000 $qtConfig startQuickTest "QuickTest1"
# Check test is running set timeIni [clock seconds] while { [$qtConfig checkTestRunning] } {
after 1 set elapsed [expr [clock seconds] -$timeIni] #puts "Elapsed $elapsed seconds" }
# Disconnect $testController releaseConfigWaitFinish

1098

IxLoad Tcl API Programming Guide

QT

IxLoad Tcl API Programming Guide

1099

This page intentionally left blank.

1100

IxLoad Tcl API Programming Guide

Radius
This section describes the Radius Tcl API objects.
Overview
The IxLoad Radius API consists of a client agent and its commands, structured as shown below.

IxLoad Tcl API Programming Guide

1101

Radius
Objectives
The objectives (userObjective) you can set for Radius are listed below. Test objectives are set in the ixTimeline object.
l transactionRate l simulatedUsers l concurrentSessions

Radius Client Agent
The Radius Client Agent simulates user requests for access by sending user names and passwords to a RADIUS server, and recording the responses returned by the server. Refer to Radius Client Agent on page 25-5 for a full description of this command. The most significant options of this command are listed below.

Option

Description

protocolAndType Protocol used by the client agent. Defines the agent as either a client or server.

Radius Command List
The Radius Command List creates the list of Radius commands that the client will send to a Radius server. Refer to Radius Command List on page 25-11 for a full description of this command. The most significant options of this command are listed below.

Option Description

id

Command that client will send.

Global Config
The Global Config contains the parameters that define the way the IxLoad RADIUS client performs overall. Refer to Global Config on page 25-16 for a full description of this command. The most significant options of this command are listed below.

1102

IxLoad Tcl API Programming Guide

Radius

Option

Description

defaultAuthentica

The UDP port on the RADIUS server to which the IxLoad client sends Access-Requests.

defaultAccounting

The UDP port on the RADIUS server to which the IxLoad client sends Accounting-Requests.

authenticationRe

Number of times the IxLoad RADIUS client will re-send an unacAccess-Request.
If the RADIUS server does not respond to an Access-Request within the Response Timeout period, the client resends the Access-Request.

responseTimeouot

Elapsed time, in seconds, allowed for the server to respond to a clirequest.

defaultSharedSe

Secret used if no server-specific secret is configured. To configure server-specific secrets, see Creating and Editing Server-Specific Shared Secrets on page 23-13.

send_ACCOUNTING_REQUESTS_ when_ACCESS_REQUEST_are_ pending

Enabled: If enabled, the IxLoad client requests accounting data even if requests for authentication (Access-Requests) are still pend
Disabled: If disabled, the IxLoad client does not send Accounting-data if any Access-Requests are pending.

maxPendingRe

Maximum number of pending requests per client that the IxLoad climaintains with the RADIUS server.

Specific Secrets
To configure secrets to be used with specific servers. Refer to Specific Secrets on page 25-18 for a full description of this command. The options supported are listed below.

Option

Description

sharedSecretList The list of shared secrets to be used with specific servers.

IxLoad Tcl API Programming Guide

1103

Radius

Vendor List
The Vendors tab contains the predefined vendors and their vendor-codes that the IxLoad client uses. You cannot modify or delete the predefined vendors and codes, but you can add additional vendors and codes. Refer to Vendor List on page 25-19 for a full description of this command. Attribute List
The Attributes list contains the predefined Attributes, their values, and the venthat originally specified them. All the predefined Attributes are standard RADIUS Attributes; there are no vendor-specific Attributes in the list. Refer to Attribute List on page 25-20 for a full description of this command.

Access Attribute Set List
Access Attribute sets are groups of Access Attributes that are included in RADIUS messages. Refer to AccessAttribSetList on page 25-22 for a full description of this command. The most significant options of this command are listed below.

Option Description

id

This represents the name of the ACCESS attribute set.

Accounting Attribute Set List
Accounting Attribute sets are groups of Accounting Attributes that are included in RADIUS messages. Refer to AcctngAttribSetList on page 25-23 for a full description of this command. The most significant options of this command are listed below.

Option

Description

acctngAttribVal This represents the name of the ACCOUNTING attribute set.

1104

IxLoad Tcl API Programming Guide

Radius

Radius Client Agent
Radius Client Agent - create a Radius client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.config
DESCRIPTION
The Radius Client Agent simulates user requests for access by sending user names and passwords to a RADIUS server, and recording the responses returned by the server. A Radius client agent is added to the activityList option of the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer submay be used to modify the activityList.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable
Enables the use of this client agent. (Default = true). name
The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new ixNetTraffic]#----------------------------------

------------------------# Activity RADIUSClient1 of NetTraffic Traffic1@Network1#---

-------------------------------------------------------set Activity_RADIUSClient1

[$Traffic1_Network1 activityList.appendItem \-protocolAndType

"radius Client" ]$Activity_RADIUSClient1 agent.config \-enable

true \-name

"RADIUSClient1"

SEE ALSO

ixNetTraffic

IxLoad Tcl API Programming Guide

1105

Radius

Radius Command List
Radius Command List--Creates the list of Radius commands that the client will send to a Radius server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.pm.cmdList.appendItem options...

DESCRIPTION
A command is added to the Radius Command List object using the appendItem subcommand from the ixConfigSequenceContainer command (see the example).
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id Radius command to be executed. One of the following:

Command

Description

ACCESS

Sends an ACCESS request to a RADIUS server. An ACCESS request is a query to determine whether a user should be allowed access to a specific NAS. The ACCESS request also can include a request for special services that the user may require.

ACCOUNTING

Sends an ACCOUNTING request to a RADIUS server. An ACCOUNTING request is a query for obtaining information that is used to provide accounting for a service provided to a user.

LoginWithAccountin

This is a combination of an ACCESS and ACCOUNTING comThis command simulates a scenario in which a user logs in to a NAS port and the NAS has accounting enabled for that user.

1106

IxLoad Tcl API Programming Guide

Radius

THINK

Causes the client to become idle. {Think} is an internal IxLoad command intended to assist your testing; it is not a command defined in the RADIUS protocol.
If you specify identical values for the minimum and maximum times, the client will be idle for a fixed length of time. If you specify different values for the minimum and maximum times, IxLoad will select a value within the range and cause the client to be idle for that length of time.

LoopBeginCommand An IxLoad command that you can add to the Command List to cause the commands between it and the {LoopEndCommand} to be executed a specified number of times.

LoopEndCommand

Ends the list of commands that will be executed by the preced{Loop Begin} command.

Arguments for id = ACCESS
serverAddr
The IP address or symbolic destination (DUT configuration) of the RADIUS server to which the IxLoad client sends the ACCESS request packet. To specify a port, enter colon (:) then the port number after the IP address. For example: 192.168.100.1:1813. (Default = "198.18.0.100").
authenticationMethod
Method used to establish (and in the case of EAP-MD5, encrypt) the authenticacredentials of the simulated supplicants. Depending on the method you select, IxLoad enables and disables various Credentials fields.
The choices are:

Value Description

PAP

(minimum) Password Authentication Protocol.

CHAP

Challenge Handshake Authentication Protocol. For CHAP the challenge that is normally generated by the authenticator/RAS is internally generated by IxLoad.

EAPMD5

(default) Extensible Authentication Protocol, with MD5 encryption.

MSCHAP

Microsoft CHAP, version 1

MS-

(maximum) Microsoft CHAP, version 2

CHAPv2

IxLoad Tcl API Programming Guide

1107

Radius

userName User name of the supplicant included in ACCESS request. maximum = 256. password Password for the supplicant. maximum = 128. eapMD5Identity If the authenticationMethod is EAP-MD5, this is the identity of the supplicant. maximum = 256. attributeSetName Attributes sent with the ACCESS request. See AccessAttribSetList on page 25-22. maximum = 256.
Arguments for id = ACCOUNTING
serverAddr The IP address or symbolic destination (DUT configuration) of the RADIUS server to which the IxLoad client sends the ACCOUNTING request packet. To specify a port, enter colon (:) then the port number after the IP address. For example: 192.168.100.1:1813. (Default = "198.18.0.100") userName User name included in ACCOUNTING request. maximum = 256 You can use sequence generators in this field to create a range of unique user names. See Appendix W, Using Automatic Sequence Generators. acctSessionId Numeric identifier of the call for which the ACCOUNTING request is being sent. maximum = 256. acctStatusType Type of information that the ACCOUNTING request obtains. The values are:

Value Description

1

Start (start time of call)

2

Stop (end time of call)

3

Interim-Update

7

Accounting-On

8

Accounting-Off

9-14 Reserved for Tunnel Accounting

15

Reserved for Failed

1108

IxLoad Tcl API Programming Guide

Radius

attributeSetName
Attributes sent with the ACCOUNTING request. See AcctngAttribSetList on page 25-23. maximum = 256.
Arguments for id = LoginWithAccountingEnabled
serverAddr
The IP address or symbolic destination (DUT configuration) of the RADIUS server to which the IxLoad client sends the Accounting-Request packet. To speca port, enter colon (:) then the port number after the IP address. For example: 192.168.100.1:1813. (Default = "198.18.0.100")
authenticationPort
The UDP port on the RADIUS server to which the IxLoad client sends ACCESSminimum = "1", maximum = "65535", default = "1812"
accountingPort
The UDP port on the RADIUS server to which the IxLoad client sends ACCOUNTING requests. minimum = "1" maximum = "65535" default= "1813"
authenticationMethod
Method used to establish (and in the case of EAP-MD5, encrypt) the authenticacredentials of the simulated supplicants. Depending on the method you select, IxLoad enables and disables various Credentials fields.
The choices are:

Value Description

PAP

(minimum) Password Authentication Protocol.

CHAP

Challenge Handshake Authentication Protocol. For CHAP the challenge that is normally generated by the authenticator/RAS is internally generated by IxLoad.

EAPMD5

(default) Extensible Authentication Protocol, with MD5 encryption.

MSCHAP

Microsoft CHAP, version 1

MS-

(maximum) Microsoft CHAP, version 2

CHAPv2

userName User name of the supplicant included in ACCESS request. maximum = 256.

IxLoad Tcl API Programming Guide

1109

Radius
You can insert sequence generators into this field to create unique entries autoFor information on how to use sequence generators, see Using Automatic Sequence Generators on page A-1. password Password for the supplicant. maximum = 128. You can insert sequence generators into this field to create unique entries autoFor information on how to use sequence generators, see Using Automatic Sequence Generators on page A-1. eapMD5Identity If the authenticationMethod is EAP-MD5, this is the identity of the supplicant. maximum = 256 attributeSetName Attributes sent with the ACCESS request. See AccessAttribSetList on page 25-22. learnFramedIp After the client receives an ACCESS-ACCEPT, the first ACCOUNTING-START request that it sends may include the attribute Framed-IP, and a value for it. This parameter determines the source of the value for the Framed-IP attribute. If this option is enabled:
l If the ACCESS-ACCEPT contains a Framed-IP attribute and a value, the cliuses the value from the ACCESS-ACCEPT.
l If the attribute set includes a Framed-IP attribute and value, the client ignores the value in the attribute set and uses the value from the ACCESS-ACCEPT.·If the ACCESS-ACCEPT does not contain a Framed-IP attribute but the attribute set does, the client uses the value from the attribute set.
l If neither the ACCESS-ACCEPT nor the attribute set con-tains a Framed-IP attribute, then this option is ignored and the ACCOUNTING-START does not contain a Framed-IP attribute.
Default = false.
Arguments for id = THINK
minimumInterval Minimum length of time that the user will remain inactive for. Minimum = "1," maximum = "2,147,483,647." (Default = "1"). maximumInterval Maximum length of time that the user will remain inactive for. Minimum = "1," maximum = "2,147,483,647." (Default = "1").
Arguments for id = LoopBeginCommand
loopCount

1110

IxLoad Tcl API Programming Guide

Radius
Number of times to repeat the enclosed commands. '0' treated as infinity. Mini= "0," maximum = "2,147,483,647." (Default = "5").
Arguments for id = LoopEndCommand
None.
EXAMPLE
$Activity_RADIUSClient1 agent.pm.cmdList.appendItem \ -id "ACCESS" \ -userName "ixia" \ -authenticationMethod 0 \ -attributeSetName "ACCESS-REQUEST-Attribute-Set-1" \ -eapMD5Identity "" \ -serverAddr "198.18.0.100" \ -password "ixia"
SEE ALSO
Radius Client Agent

IxLoad Tcl API Programming Guide

1111

Radius
Global Config
Global Config--Configures the parameters that define the way the IxLoad RADIUS client performs overall.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.pm.globalConfig.config options...
DESCRIPTION
To configure the Global Config options, use the appendItem command on the pm.optionSetManager component of the Radius Client Agent. Note the use of the `pm.' component. See the following example: $Activity_RADIUSClient1 agent.pm.globalConfig.config
SUBCOMMANDS
None.
OPTIONS
defaultAuthenticationPort The UDP port on the RADIUS server to which the IxLoad client sends Access-Requests. minimum = "1", maximum = "65535", default= "1812". defaultAccountingPort The UDP port on the RADIUS server to which the IxLoad client sends Accountminimum = "1", maximum = "65535", default = "1813". authenticationRetryCount Number of times the IxLoad RADIUS client will re-send an unacknowledged Access-Request. If the RADIUS server does not respond to an Access-Request within the Response Timeout period, the client resends the Access-Request. minimum = "0", maximum = "65535", default = "3". responseTimeouot Elapsed time, in seconds, allowed for the server to respond to a client request. minimum = "1", maximum = "65535", default = "5". defaultSharedSecret Secret used if no server-specific secret is configured. See Specific Secrets on page 25-18. minimum = "1", maximum = "256", default = "ixia". send_ACCOUNTING_REQUESTS_when_ACCESS_REQUEST_are_pending

1112

IxLoad Tcl API Programming Guide

Radius

If enabled (1), the IxLoad client requests accountdata even if requests for authentication (AccessRequests) are still pending. If disabled (0), the IxLoad client does not send accounting data if any Access-Requests are pending. Default = "1".
maxPendingRequestPerClient
Maximum number of pending requests per client that the IxLoad client maintains with the RADIUS server. minimum = "1", maximum = "64000", default = "100".

EXAMPLE

$Activity_RADIUSClient1 agent.pm.globalConfig.config \-defaultAccountingPort

1813 \-defaultAuthenticationPort

1812 \-defaultSharedSecret

"ixia" \-authenticationRetryCount

3 \-accountingRetryCount

3 \-responseTimeout

5 \-send_ACCOUNTING_REQUESTS_when_

ACCESS_REQUESTS_are_pending true \-maxConcurrentSessions

100 \-

implicitLoopCheck

true

SEE ALSO

Radius Client Agent

IxLoad Tcl API Programming Guide

1113

Radius

Specific Secrets
Specific Secrets--Configures secrets to be used with specific servers.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.pm.specificSecrets.config options...

DESCRIPTION
To configure Specific Secrets, use the appendItem command on the pm.option component of the Radius Client Agent. Note the use of the `pm.' component.

SUBCOMMANDS
None.

OPTIONS
sharedSecretList The list of shared secrets to be used with specific servers. clientIdRange This corresponds to the IP addresses configured in the network portion of the RADIUS client's NetTraffic. maximum = 256. serverIp IP address of the server to which the secret applies. minimum = "7" maximum = "19" default = "198.18.0.100". sharedSecret The shared secret is entered in this field. minimum = "1" maximum = "256" default = "ixia".

EXAMPLE
$Activity_RADIUSClient1 agent.pm.specificSecrets.sharedSecretList.appendItem \

-id "ClientServerSecrets" \

-clientIdRange "1-5" \

-secretListString "(\"198.18.0.101\", \"ixia\"), (\"198.18.0.102\", \"ixia\")"

$Activity_RADIUSClient1 agent.pm.specificSecrets.sharedSecretList(0).server-

SecretList.appendItem \-id

"ServerSecrets" \-

serverIP

"198.18.0.101" \-sharedSecret

"ixia"

1114

IxLoad Tcl API Programming Guide

SEE ALSO
Radius Client Agent

Radius

IxLoad Tcl API Programming Guide

1115

Radius

Vendor List
Vendor List--contains the predefined vendors and their vendor-codes that the IxLoad client uses.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.pm.vendorList.v_list.appendItem \ options...

DESCRIPTION
To configure a Vendor List, use the appendItem command on the pm.optionSetcomponent of the Radius Client Agent. Note the use of the `pm.' com

SUBCOMMANDS
None.

OPTIONS
vendorName Name of the vendor. maximum = 256 vendorId This is the vendor code. maximum = 8

EXAMPLE

$Activity_RADIUSClient1 agent.pm.vendorList.v_list.appendItem \-id

"Vendor" \-vendorId

"NA" \

-vendorName "IETF RADIUS STANDARD" \ -isPredefined

true

SEE ALSO

Radius Client Agent

1116

IxLoad Tcl API Programming Guide

Radius

Attribute List
Attribute List--contains the predefined Attributes, their values, and the vendors that originally specified them.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.pm.attributeList.a_list.appendItem \ options...

DESCRIPTION
To configure an Attribute List, use the appendItem command on the agent.pm component of the Radius Client Agent. Note the use of the `pm.' component.
SUBCOMMANDS
None.
OPTIONS
attributeName Name of the attribute. maximum = "256" attributeCode The attribute code. minimum = "0" maximum ="255" vendorName Name of the vendor. maximum = "256" vendorId This represents the vendor id. maximum = "8" valueType This represents the data type of the attribute value. minimum = "0", maximum = "7" The choices are:

Value Description

0

Integer (1 octet)

1

Integer (2 octets)

2

Integer (3 octets)

IxLoad Tcl API Programming Guide

1117

Radius

3

Integer (4 octets)

4

String

5

IPv4 Address

6

MTU

7

Hexadecimal

relevance This represents the request type with which the attribute can be used. minimum = "0" maximum = "2" The choices are:

Value Description

0

Both Authentication And Accounting

1

Authentication Only

2

Accounting Only

EXAMPLE

$Activity_RADIUSClient1 agent.pm.attributeList.a_list.appendItem \-id

"Attribute" \-attributeCode

40 \-attributeName

"Acct-Status-Type" \-valueType

3 \-relevance

2 \-vendorName

"IETF RADIUS STANDARD" \-isPredefined

true

SEE ALSO

Radius Client Agent

1118

IxLoad Tcl API Programming Guide

Radius
AccessAttribSetList
AccessAttribSetList--Configures the list of Access Attribute Sets.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] Activity_RADIUSClient1 agent.pm.accessAttribSetList.accessAttribVal\ options...
DESCRIPTION
To configure an AccessAttribSetList, use the appendItem command on the agent.pm component of the Radius Client Agent. Note the use of the `pm.' com
SUBCOMMANDS
None.
OPTIONS
attributeValueSetName This represents the name of the ACCESS attribute set. refCount The numerical order of the attribute set.
EXAMPLE
$Activity_RADIUSClient1 agent.pm.accessAttribSetList.accessAttribValueSetList.appendItem \ -id "AttributeValueSet" \ -attributeValueSetName "ACCESS-REQUEST-Attribute-Set-1" \ -refCount 1
SEE ALSO
Radius Client Agent

IxLoad Tcl API Programming Guide

1119

Radius
AcctngAttribSetList
Accounting Attribute Set List--Configures the list of Accounting Attribute Sets.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RADIUSClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_RADIUSClient1 agent.pm.acctngAttribSetList.acctngAttribValueSetList.appendItem \ options...
DESCRIPTION
To configure an Accounting Attribute Set List, use the appendItem command on the agent.pm component of the Radius Client Agent. Note the use of the `pm.' component.
SUBCOMMANDS
None.
OPTIONS
attributeValueSetName This represents the name of the ACCOUNTING attribute set. refCount The numerical order of the attribute set.
EXAMPLE
$Activity_RADIUSClient1 agent.pm.acctngAttribSetList.acctngAttribValueSetList.appendItem \ -id "AttributeValueSet" \ -attributeValueSetName "ACCOUNTING-REQUEST-Attribute-Set-1" \ -refCount 1
SEE ALSO
Radius Client Agent

1120

IxLoad Tcl API Programming Guide

Radius

RADIUS Client Statistics
The table below describes the RADIUS client statistics.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

Test Objective Related Statistics

RADIUS Simulated Users

--

Number of RADIUS clients (NAS, RAS, or other

RADIUS-enabled devices) simulated by the IxLoad

RADIUS client.

RADIUS Transaction Rate

All

Average rate at which the client completed RADIUS

transactions.

RADIUS Total Transactions

All

Total number of RADIUS transactions completed.

RADIUS Sessions Alive

All

Total number of RADIUS sessions online.

RADIUS Logged In Supplicants All

Total number of simulated supplicants authenticated by the IxLoad RADIUS client.

Authentication Statistics

RADIUS Authentications Attemp- All ted

Number of authentications attempted using RADIUS.

RADIUS Authentications Suc-

All

ceeded

Number of authentications that succeeded.

RADIUS Authentications Failed All

Number of authentications that failed.

Access-Request and -Response Statistics

RADIUS Total Access Requests All Sent

Number of Access-Request packets sent by the client.

RADIUS Total Access Accept

All

Received

Number of Access-Accept packets received by the client.

IxLoad Tcl API Programming Guide

1121

Radius

RADIUS Total Access Reject

All

Received

RADIUS Total Access Challenge All Received

RADIUS Total Access Request

All

Timeouts

RADIUS Total Invalid Replies To All Access Requests

RADIUS Total Access Request

All

Errors

RADIUS Total Access Request

All

Aborted

Successful Authentications Statistics

RADIUS Total Authentications

All

Succeeded Using PAP

RADIUS Total Authentications

All

Succeeded Using CHAP-MD5

RADIUS Total Authentications

All

Succeeded Using EAP-MD5

RADIUS Total Authentications

All

Succeeded Using MS-CHAPv1

RADIUS Total Authentications

All

Succeeded Using MS-CHAPv2

Failed Authentications Statistics

RADIUS Total Authentications

All

Failed Using PAP

RADIUS Total Authentications

All

Failed Using CHAPMD5

Number of Access-Reject packets received by the client. Number of Access-Challenge packets received by the client. Number of Access-Request packets sent for which no response was received within the timeout period. Number of invalid responses to Access-Request packets received by the client. Total number of errors that occurred either while sending an Access Request or afterwards. This statistic mainly counts socket-level errors and does not include timeouts and invalid responses, which are counted by other statistics. Number of Access-Requests that were aborted.
Number of successful PAP authentications.
Number of successful CHAP-MD5 authentications.
Number of successful EAP-MD5 authentications.
Number of successful MS-CHAPv1 authentications.
Number of successful MS-CHAPv2 authentications.
Number of failed PAP authentications.
Number of failed CHAP-MD5 authentications.

1122

IxLoad Tcl API Programming Guide

Radius

RADIUS Total Authentications

All

Failed Using EAPMD5

RADIUS Total Authentications

All

Failed Using MSCHAPv1

RADIUS Total Authentications

All

Failed Using MSCHAPv2

Accounting Requests Statistics

RADIUS Total Accounting

All

Requests Sent

RADIUS Total Accounting Start All Requests Sent

RADIUS Total Accounting Stop All Requests Sent

RADIUS Total Accounting

All

Responses Received

RADIUS Total Timeouts for

All

Accounting Requests

RADIUS Total Timeouts for

All

Accounting Start Requests

RADIUS Total Timeouts for

All

Accounting Stop Requests

RADIUS Total Invalid Replies To All Accounting Requests

RADIUS Total Accounting

All

Request Errors

RADIUS Total Accounting

All

Request Aborted

Request / Response Statistics

Number of failed EAP-MD5 authentications.
Number of failed MS-CHAPv1 authentications.
Number of failed MS-CHAPv2 authentications.
Total number of Accounting-Request packets sent by the client.
Number of Accounting-Request-Start packets sent by the client.
Number of Accounting-Request-Stop packets sent by the client.
Number of Accounting-Response packets received by the client.
Total number of Accounting-Request packets for which no response was received within the timeout period.
Number of Accounting-Request-Start packets for which no response was received within the timeout period.
Number of Accounting-Request-Stop packets for which no response was received within the timeout period.
Total number of invalid replies to Accounting-Request packets received by the client.
Total number of timeouts and invalid responses to Accounting-Request packets.
Total number of Accounting-Requests that were aborted.

IxLoad Tcl API Programming Guide

1123

Radius

RADIUS Total Requests Sent

All

RADIUS Total Responses

All

Received

RADIUS Total Responses To

All

Accounting Stop

Request / Response Rate Statistics

RADIUS Requests Sent Per

All

Second

RADIUS Responses Received

All

Per Second

RADIUS Access Requests Sent All Per Second

RADIUS Total Accounting

All

Requests Sent Per Second

RADIUS Total Accounting Start All Requests Sent Per Second

RADIUS Total Accounting Stop All Requests Sent Per Second

RADIUS Total Session Tear-

All

downs

RADIUS Session Teardown Rate All

Throughput Statistics

RADIUS Total Bytes Sent

All

RADIUS Total Bytes Received

All

RADIUS Total Bytes Sent and

All

Received

RADIUS UDP Packets Sent

All

Total number of Access-Requests and AccountingRequests sent by the client. Total number of responses to Access-Requests and Accounting-Requests received by the client. Total number of responses to Accounting-RequestStop packets received by the client.
Rate at which the client sent Access-Request or Accounting-Request packets. Rate at which the client received responses to Access-Request or Accounting-Request packets. Rate at which the client sent Access-Request packets. Rate at which the client sent Accounting-Request packets. Rate at which the client sent Accounting-RequestStart packets. Rate at which the client sent Accounting-RequestStop packets. Number of RADIUS sessions torn down.
Rate at which the client tore down RADIUS sessions.
Total number of RADIUS bytes (headers+payload) sent. Total number of RADIUS bytes (headers+payload) received. Combined total of RADIUS bytes (headers+payload) sent and received. Number of UDP packets sent with RADIUS payloads.

1124

IxLoad Tcl API Programming Guide

Radius

RADIUS UDP Packets Received All

RADIUS Bytes Sent per sec

All

RADIUS Bytes Received per sec All

RADIUS UDP Packets Sent per All sec

RADIUS UDP Packets Received All per sec

Retransmission Statistics

RADIUS Total Retransmissions All For Access Requests

RADIUS Total Retransmissions All For Accounting Requests

RADIUS Total Retransmissions All For Accounting Start Requests

RADIUS Total Retransmissions All For Accounting Stop Requests

Response Time Statistics

RADIUS Average Time To

All

Receive Access Response

RADIUS Average Time To

All

Receive Access Accept

Response

Number of UDP packets received with RADIUS payloads.
Rate at which the client sent RADIUS data, in bytes per second.
Rate at which the client received RADIUS data, in bytes per second.
Rate at which the client sent UDP packets with RADIUS payloads, in bytes per second.
Rate at which the client received UDP packets with RADIUS payloads, in bytes per second.
Total number of Access-Requests that had to be retransmitted.
Total number of Accounting-Requests that had to be retransmitted.
Total number of Accounting-Request-Start packets that had to be retransmitted.
Total number of Accounting-Request-Stop packets that had to be retransmitted.
Average time elapsed between the time the client sent an Access-Request and the time it received any type of response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Average time elapsed between the time the client sent an Access-Request and the time it received an Access-Accept in response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

IxLoad Tcl API Programming Guide

1125

Radius

RADIUS Average Time To

All

Receive Access Reject Response

RADIUS Average Time To

All

Receive Accounting Response

Access Accept Latency statistics

RADIUS Total Access Accept

--

Responses With Latency

Between 0 to 2 millisec

RADIUS Total Access Accept

--

Responses With Latency

Between 2 to 5 millisec

RADIUS Total Access Accept

--

Responses With Latency

Between 5 to 10 millisec

RADIUS Total Access Accept

--

Responses With Latency

Between 10 to 50 millisec

RADIUS Total Access Accept

--

Responses With Latency

Between 50 to 100 millisec

RADIUS Total Access Accept

--

Responses With Latency

Between 100 to 500 millisec

RADIUS Total Access Accept

--

Response With Latency Greater

Than 500 millisec

Access Reject Latency statistics

Average time elapsed between the time the client sent an Access-Request and the time it received an Access-Reject in response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Average time elapsed between the time the client sent an Accounting-Request and the time it received an Accounting-Response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Number of Access Accept responses received with latencies between 0 and 2 milliseconds.
Number of Access Accept responses received with latencies between 2 and 5 milliseconds.
Number of Access Accept responses received with latencies between 5 and 10 milliseconds.
Number of Access Accept responses received with latencies between 10 and 50 milliseconds.
Number of Access Accept responses received with latencies between 50 and 100 milliseconds.
Number of Access Accept responses received with latencies between 100 and 500 milliseconds.
Number of Access Accept responses received with latencies over 500 milliseconds.

1126

IxLoad Tcl API Programming Guide

Radius

RADIUS Total Access Reject

--

Responses With Latency

Between 0 to 2 millisec

RADIUS Total Access Reject

--

Responses With Latency

Between 2 to 5 millisec

RADIUS Total Access Reject

--

Responses With Latency

Between 5 to 10 millisec

RADIUS Total Access Reject

--

Responses With Latency

Between 10 to 50 millisec

RADIUS Total Access Reject

--

Responses With Latency

Between 50 to 100 millisec

RADIUS Total Access Reject

--

Responses With Latency

Between 100 to 500 millisec

RADIUS Total Access Reject

--

Response With Latency Greater

Than 500 millisec

Accounting Response Latency statistics

RADIUS Total Accounting

--

Responses With Latency

Between 0 to 2 millisec

RADIUS Total Accounting

--

Responses With Latency

Between 2 to 5 millisec

RADIUS Total Accounting

--

Responses With Latency

Between 5 to 10 millisec

RADIUS Total Accounting

--

Responses With Latency

Between 10 to 50 millisec

Number of Access Reject responses received with latencies between 0 and 2 milliseconds.
Number of Access Reject responses received with latencies between 2 and 5 milliseconds.
Number of Access Reject responses received with latencies between 5 and 10 milliseconds.
Number of Access Reject responses received with latencies between 10 and 50 milliseconds.
Number of Access Reject responses received with latencies between 50 and 100 milliseconds.
Number of Access Reject responses received with latencies between 100 and 500 milliseconds.
Number of Access Reject responses received with latencies over 500 milliseconds.
Number of Access Response responses received with latencies between 0 and 2 milliseconds.
Number of Access Response responses received with latencies between 2 and 5 milliseconds.
Number of Access Response responses received with latencies between 5 and 10 milliseconds.
Number of Access Response responses received with latencies between 10 and 50 milliseconds.

IxLoad Tcl API Programming Guide

1127

Radius

RADIUS Total Accounting

--

Responses With Latency

Between 50 to 100 millisec

RADIUS Total Accounting

--

Responses With Latency

Between 100 to 500 millisec

RADIUS Total Accounting

--

Response With Latency Greater

Than 500 millisec

Number of Access Response responses received with latencies between 50 and 100 milliseconds.
Number of Access Response responses received with latencies between 100 and 500 milliseconds.
Number of Access Response responses received with latencies over 500 milliseconds.

! 27

1128

IxLoad Tcl API Programming Guide

RTSP
This section describes the RTSP Tcl API objects.

Overview
RTSP protocol commands are organized as: RTSP Client Agent RtspCommand RtspHeaders RtspHeader RTSP Server Agent PresentationItem Content Stream
Objectives
The objectives (userObjective) you can set for RTSP are listed below. Test objecare set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections
RTSP Client Agent
The RTSP Client Agent defines a simulated user performing RTSP requests against one or more RTSP servers. Refer to RTSP Client Agent for a full descripof this command. The important options of this command are listed below.

IxLoad Tcl API Programming Guide

1129

RTSP

Option

Usage

enable

Enables the use of the RTSP client agent.

name

The name associated with the client agent.

rtspTransport

The RTSP transport mechanism that the client will request.

commandList

A list of RTSP commands that the client will transmit, with arguments. Each list element is of type RtspCommand.

rtspHeaders

A list of RTSP headers that the client will transmit with each command. Each list element is of type RtspHeaders.

commandTimeout The client command timeout.

RtspCommand
Each client command is a single step in the interaction. Refer to RtspCommand for a full description of this command. The important options of this command are listed below.

Option

Usage

command The RTSP command, with optional arguments, to be executed. arguments

destination The name/address of the RTSP server.

media

The URL of the media object to be controlled.

RtspHeaders
The RtspHeaders command specifies a client emulation and includes a list of name=value header pairs. Refer to RtspHeaders for a full description of this command. The important options of this command are listed below.

1130

IxLoad Tcl API Programming Guide

RTSP

Option

Usage

clientEmulation Indicates the type of RTSP client to emulate.

list

A list of individual RTSP headers. Each list item is of type RtspHeader.

RtspHeader
Each RtspHeader item represents a single name=value header pair. Refer to RtspHeader for a full description of this command. The important options of this command are listed below.
Option Usage name The name part of the pair. value The value part of the pair.

RTSP Server Agent
The RTSP Server Agent defines the operation of the RTSP server. Refer to RTSP Server Agent for a full description of this command. The important options of this command are listed below.

Option enable name port serverEmulation

Usage Enables the use of the server agent. The name associated with the server agent. The port number that the server will respond on. The type of RTSP server that the server agent will emulate.

presentationList

The set of media presentations that the server will respond for. Each item is of type PresentationItem.

IxLoad Tcl API Programming Guide

1131

RTSP

contentList

A list of contents that are used in the presentationList. Each item is of type Content.

commandTimeout Response timeout value.

PresentationItem
The PresentationItem is a specification of a media presentation offered by the server. Refer to PresentationItem for a full description of this command. The important options of this command are listed below.

Option Usage

path

The URL of the media file.

content The name of an item in the RTSP Server Agent's contentList.

duration The length of the media presentation.

Content
The Content object is a named set of media streams. Refer to Content for a full description of this command. The important options of this command are listed below.

Option

Usage

name

The name of the content.

streamList A list of streams that compose the content. Each list item is of type Stream.

Stream
The Stream object is a single media stream object. Refer to Stream for a full description of this command. The important options of this command are listed below.

1132

IxLoad Tcl API Programming Guide

Option

Usage

name

The name of the stream.

clockRate

The sampling rate.

dataRate

The data transmission rate.

packetization The time between packets.

RTSP

IxLoad Tcl API Programming Guide

1133

RTSP
RTSP Client Agent
RTSP Client Agent - create an RTSP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem $Activity_RTSPClient1 agent.config options...
DESCRIPTION
An RTSP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
commandList This is a list of type RtspCommand used to hold RTSP commands. The elements in this list describe the commands to be executed by the client. (Default = {}). commandTimeout The amount of time allowed for each command to complete, in seconds. (Default = 60). enable If true, this agent will be used. (Default = true). enableEsm If true, the use of the esm option is enabled. (Default = false). enableTos Enables the setting of the TOS (Type of Service) bits in the header of the RTSP packets. Use the tos option to specify the TOS bit setting.
0 (default) TOS bits not enabled. 1 TOS bits enabled.

1134

IxLoad Tcl API Programming Guide

RTSP

esm
If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size as 1,460 bytes. (Default = 1,460). enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value. name
The name associated with this object, which must be set at object creation time. rtpTransport
The RTSP mechanism to be requested by the client. One of:

Option

Usage

$::RTSP_Client(kRtpTransportTcp) TCP.

$::RTSP_Client(kRtpTransportUdp) (Default) UDP.

tos
If enableTos is true, this option specifies the IP Precedence / TOS (Type of Serbit setting and Assured Forwarding classes. (Default="0"). The choices are:

0 (Default) (0x000) routine 32 (0x0020) priority service, Assured Forwarding class 1 64 (0x0040) immediate service, Assured Forwarding class 2 96 (0x0060) flash, Assured Forwarding class 3 128 (0x0080) flash-override, Assured Forwarding class 4 160 (0x00A0) critical-ecp 192 (0x00C0) internet-control

enableCustomSETUPtransportParam

IxLoad Tcl API Programming Guide

1135

RTSP
This enables or disables the entry of parameters specified in the Transport: line of the RTSP SETUP message. You can use these parameters to set or enable addiRTSP transport options on the server. Default = false. customSETUPtransportParam If enableCustomSETUPtransportParam is false, then the Transport: line contains the following data, which is mandatory for RTSP: Transport protocol, connection type (unicast or multicast), and client IP port range used for the transport protocol. For example: RTP/AVP;unicast;client_port=35246-35247 If enableCustomSETUPtransportParam is true, then IxLoad appends a semi-colon (;) to the mandatory data on Transport: line, and then appends the custom data in the field. For example, if you specify the string mode=PLAY, the Transport: line will conthe following string: RTP/AVP;unicast;client_port=35246-35247;mode=PLAY enableSETUPargs If enabled, you can specify the IP address, Media and arguments (which compoof the presentation to setup (such as "audio" or "audio, video") for the SETUP command. Normally, these parameters are specified in the DESCRIBE command. However, some servers do not support the DESCRIBE command. If no arguments are specified, IxLoad sets up the URL. followRtspRedirects If enabled, the client follows RTSP redirect responses from the server. useSameRtpPort If enabled, all RTP streams for one presentation use the same UDP port number. RTP audio and video streams are usually sent over different UDP ports. Howsome Windows RTP servers send both streams over the same port. If this is the case with your server, enable this option. enableRtspProxy If enabled, you can enter the Rtsp proxy server address. rtspProxy If enableRtspProxy is true, then you can enter the Rtspp proxy ip and port address.
SUB-OBJECTS
rtspHeaders

1136

IxLoad Tcl API Programming Guide

RTSP

This is an object of type RtspHeaders, which holds information about the type of client emulation desired as well as a list of RTSP headers to be supplied by the client for each request. (Default = default object of type RtspHeaders).
STATISTICS

EXAMPLE
set Traffic1_Network1 [::IxLoad new ixNetTraffic]

################################################## Activity RTSPClient1 of NetTraffic Traffic1@Network1#################################################set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "RTSP Client" ]

################################################## Timeline1 for activities RTSPCli-

ent1#################################################set Timeline1 [::IxLoad new

ixTimeline]$Timeline1 config \-rampUpValue

1 \-

rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_RTSPClient1 config

\-enable

1 \-name

"RTSPClient1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1set my_RtspHead-

ers [::IxLoad new RtspHeaders]$my_RtspHeaders config \-clientEmulation

1$my_RtspHeaders list.clearset User_Agent [::IxLoad new RtspHeader]$User_Agent con-

fig \-name

"User-Agent" \-value

"QTS (qtver=6.5)"$my_RtspHeaders list.appendItem -object $User_Agent$Activity_

RTSPClient1 agent.config \-enableTos

0 \-loopValue

true \-commandTimeout

60 \-enable

1 \-name

"RTSPClient1" \-

setEnableCustomSETUPtransportParam

true \-tos

0 \-vlanPriority

0 \-customSETUPtransportParam

"mode=PLAY" \-followRtspRedirects

0 \-enableRtspProxy

0 \-enableSETUPargs

true \-rtpTransport

3 \-enableEsm

0 \-rtspProxy

"0.0.0.0:554" \-useSameRtpPort

0 \-esm

1460 \-enableVlanPriority

0 \-enableCustomSETUPtransportParam

true \-rtspHeaders

$my_RtspHeaders$Activity_RTSPClient1

agent.urlList.clear$Activity_RTSPClient1 agent.setParamOptionList.clear$Activity_

RTSPClient1 agent.commandList.clearset my_RtspCommand [::IxLoad new RtspCommand]$my_

RtspCommand config \-media

"/test1.mp3" \-

IxLoad Tcl API Programming Guide

1137

RTSP

destination

"Traffic2_RTSPServer1" \-command

"{PlayMedia}" \-arguments

"PLAY_TILL_END"$Activity_

RTSPClient1 agent.commandList.appendItem -object $my_RtspCommand$Activity_RTSPCli-

ent1 agent.getParamOptionList.clear

SEE ALSO

ixNetTraffic

RtspCommand

RtspHeaders

1138

IxLoad Tcl API Programming Guide

RTSP

RtspCommand
RTSP Command -- Specifies an RSTP command to be executed.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem set my_RtspCommand [::IxLoad new RtspCommand] $Activity_RTSPClient1 agent.commandList.appendItem -object $my_RtspCommand

DESCRIPTION
An RTSP command is added to the commandList option of the RTSP Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
arguments
This option contains an argument that is used by the various commands defined in command. The type of the value depends on the command:

command option

Usage

"{PlayMedia}" N/A.

"DESCRIBE" N/A.

"SETUP"

The transport mechanism to be used. One of: "TCP" or "UDP."

"SET_ PARAMETER"

Takes only one string value. This string argument appear as name in one of the entries of setParamOptionList.

"GET_ PARAMETER"

"PLAY"

The playback duration, in seconds.

"{KeepAlive}" Keeps the client and server connection alive

IxLoad Tcl API Programming Guide

1139

RTSP

"PAUSE"

N/A.

"{Think}"

The length of time to pause, in seconds.

"TEARDOWN" N/A.

command Selects the RTSP command to be used. One of:

Option

Usage

"{PlayMedia}" (Default) An IxLoad command that plays the file listed in the media option. This command sets up the RTSP control connection, requests the URL from the server, then tears down the RTSP connection.

"DESCRIBE"

Retrieves the description of a presentation or media object identified by the URL in the media option. The server responds with a descripof the requested resource.

"{KeepAlive}"

Periodically sends a short message (and empty GET_PARAMETER command) to the server so that the server does not assume that the client is inactive and then tears down the connection.
Although you can add a {KeepAlive} to any position in a command list, it should typically be placed after a PLAY command.

"SETUP"

Specifies the transport mechanism to be used for the streamed media. A client can issue a SETUP request for a stream that is already playing to change transport parameters, if the server allows it. Specify the transport mechanism in the arguments option.

"SET_ PARAMETER"

This method requests to set the value of a parameter for a presentaor stream specified by the URL. Specify the name of this parameter in the arguments option.

"PLAY"

Tells the server to start playback using the mechanism specified by a previous SETUP command. Specify the stream in the media option, and the playback duration in the arguments option.

"PAUSE"

Causes the stream playback to be temporarily halted. If you specify a stream in the media option, only playback of that stream is halted. If you do not specify a stream, all streams are paused.

"GET_ PARAMETER"

Retrieves the current value of a parameter from the server. If you issue the GET_ PARAMETER with no arguments, it functions as a keep-alive to prevent the server from closing the connection when long presentations are playing. The IxLoad RTSP client does not process responses to GET_PARAMETER commands.

1140

IxLoad Tcl API Programming Guide

RTSP

"{Think}"

An IxLoad command that pauses execution of the command list. Specify the length of time to pause, in seconds, in the arguments option.

"TEARDOWN"

Stops the stream delivery for the URL listed in the media option, freeing the resources associated with it. After issuing the TEARcommand, the RTSP session identifier associated with the session is no longer valid.

"{LoopBegin}" An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

"{LoopEnd}"

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

destination

The RTSP server that the client will send the media URL described in media to. The media URL identifies the set of stream to be controlled. Specify the destination as follows:

l If the destination is a real RTSP server, specify the server's host name or IP address.
l If the destination is an IxLoad RTSP Server Agent, specify the name of the RTSP Server Agent.
l If the destination is the DUT, specify DUT:n--where DUT is the name of the DUT and n is the port number on that DUT.
(Default = "None").

media

The presentation URL sent to the server. The presentation URL identifies the stream to be controlled. Media names may only contain letters, numbers, and the special symbols `.', `,', `_', `/' and `-'. (Default = "None").

In an RTSP test, you can use sequence generators in the media field of the following RTSP client commands: DESCRIBE{Playmedia}

EXAMPLE

set my_RtspCommand [::IxLoad new RtspCommand]$my_RtspCommand config \-media

"/test1.mp3" \-destination

"Traffic2_RTSPServer1" \-

command

"{PlayMedia}" \-arguments

"PLAY_TILL_END"$Activity_RTSPClient1 agent.commandList.appendItem -object $my_

RtspCommand

SEE ALSO

RTSP Client Agent

IxLoad Tcl API Programming Guide

1141

RTSP

RtspHeaders
RtspHeaders--Specifies RTSP headers.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem $Activity_RTSPClient1 agent.config set my_RtspHeaders [::IxLoad new RtspHeaders]

DESCRIPTION
RtspHeaders is an option of the RTSP Client Agent object and is used to specify the client emulation and hold a list of individual RTSP headers. See the following example below.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
clientEmulation The RTSP client application that the client emulates. One of::

Option
$::RtspHeaders (kClientEmulationTypeCustom)

Usage
If this option is selected, the conof the list option should be used to specify the client and its options.

$::RtspHeaders (kClientEmulationTypeQuicktime)

(Default) Apple QuickTime version 6.5.

$::RtspHeaders

Microsoft Windows Media Player.

(kClientEmulationTypeWindowsMediaPlayer)

$::RtspHeaders (kClientEmulationTypeRealOne)

Real Networks RealMedia Player.

list This is a list of type RtspHeader. The elements in this list describe RTSP headers. (Default = {}).
EXAMPLE
See the example for RtspHeader.

1142

IxLoad Tcl API Programming Guide

SEE ALSO
RTSP Client Agent RtspHeaders

RTSP

IxLoad Tcl API Programming Guide

1143

RTSP

RtspsetParamOptionList
Specifies the properties of the SET_PARAMETER command.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem set Option1 [::IxLoad new SetParamOption] $Activity_RTSPClient1 agent.setParamOptionList.appendItem -object $Option1

DESCRIPTION
The SET_PARAMETER command is added to the commandList option of the RTSP Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. The string specified in the arguments field of the SET_PARAMETER command appears as name in one of the entries of setParamOptionList.

SUBCOMMANDS
None

OPTIONS
name
Each user-specified content and contentType pair, has a name associated with it. This is by default Option1, Option2, and so on. content
This is a user-specified string value specifying the content of the parameter. It is dependent on the server that the client is running on. contentType
This is a user-specified string value specifying the content type of the parameter. It is dependent on the server that the client is running on.

EXAMPLE

set my_RtspCommand1 [::IxLoad new RtspCommand]$my_RtspCommand1 config \-media

"None" \-destination

"None" \-command

"SET_PARAMETER" \-arguments

"Option1"$Activity_RTSPCli-

ent1 agent.commandList.appendItem -object $my_RtspCommand1$Activity_RTSPClient1

agent.setParamOptionList.clearset Option1 [::IxLoad new SetParamOption]$Option1 con-

fig \-content

"12345" \-contentType

"12" \-name

"Option1"$Activity_RTSPClient1 agent.-

setParamOptionList.appendItem -object $Option1

1144

IxLoad Tcl API Programming Guide

SEE ALSO
RtspCommand RTSP Client Agent

RTSP

IxLoad Tcl API Programming Guide

1145

RTSP

RtspgetParamOptionList
Specifies the properties of the GET_PARAMETER command.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem set Option1 [::IxLoad new GetParamOption] $Activity_RTSPClient1 agent.getParamOptionList.appendItem -object $Option1

DESCRIPTION
The GET_PARAMETER command is added to the commandList option of the RTSP Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. The string specified in the arguments field of the GET_PARAMETER command appears as name in one of the entries of getParamOptionList

SUBCOMMANDS
None

OPTIONS
name
Each user-specified content and contentType pair, has a name associated with it. This is by default Option1, Option2, and so on. content
This is a user-specified string value specifying the content of the parameter. It is dependent on the server that the client is running on. contentType
This is a user-specified string value specifying the content type of the parameter. It is dependent on the server that the client is running on.

EXAMPLE

set my_RtspCommand1 [::IxLoad new RtspCommand]$my_RtspCommand1 config \-media

"None" \-destination

"None" \-command

"GET_PARAMETER" \-arguments

"Option1"$Activity_RTSPCli-

ent1 agent.commandList.appendItem -object $my_RtspCommand1$Activity_RTSPClient1

agent.getParamOptionList.clearset Option1 [::IxLoad new GetParamOption]$Option1 con-

fig \-content

"12345" \-contentType

"12" \-name

"Option1"$Activity_RTSPClient1 agent.-

getParamOptionList.appendItem -object $Option1

1146

IxLoad Tcl API Programming Guide

SEE ALSO
RtspCommand RTSP Client Agent

RTSP

IxLoad Tcl API Programming Guide

1147

RTSP
RTSP Server Agent
RTSP Server Agent
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_RTSPServer1 [$Traffic2_Network2 activityList.appendItem $Activity_RTSPServer1 agent.config options...
DESCRIPTION
An RTSP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
commandTimeout The amount of time, expressed in seconds, allowed for the RTSP client to respond to a message. If no response is received within this time, IxLoad closes the RTSP client's connection. (Default = 60). contentList This is a list of type Content. The elements in this list are the media types used in the presentationList. (Default = {}). enable Enables the use of this agent. (Default = true). enableEsm If true, the use of the esm option is enabled. (Default = false). enableTos Enables the setting of the TOS (Type of Service) bits in the header of the RTSP packets. Use the tos option to specify the TOS bit setting.
0 (default) TOS bits not enabled.

1148

IxLoad Tcl API Programming Guide

RTSP

1 TOS bits enabled.

esm
If enableEsm is true, this option specifies the TCP Maximum Segment Size in the MSS (RX) field. Otherwise, the TCP Maximum Segment Size as 1,460 bytes. (Default = 1,460). enableVlanPriority
VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority
When enableVlanPriority is true, this option accepts the vlan priority value. name
The name associated with this object, which must be set at object creation time. port
The port number to which the RTSP server will respond. To specify multiple ports, separate the port numbers with commas (,). You can specify up to 50 listenports.(Default = 554). presentationList
This is a list of type PresentationItem. The elements in this list are the presentaavailable from the RTSP Server Agent. (Default = {}). serverEmulation
The RTSP server application that the server emulates. One of:

Option
$::RTSP_Server (kServerEmulationCustom)

Usage
If this option is selected, the conof the list option should be used to specify the client and its options.

$::RTSP_Server (kServerEmulationQuicktime)

(Default) Apple QuickTime version 6.5.

$::RTSP_Server

Microsoft Windows Media Player.

(kServerEmulationWindowsMediaPlayer)

$::RTSP_Server (kServerEmulationRealOne)

Real Networks RealMedia Player.

tos

IxLoad Tcl API Programming Guide

1149

RTSP

If enableTos is true, this option specifies the IP Precedence / TOS (Type of Service) bit setting and Assured Forwarding classes. (Default = "0"). The choices are:
0 (Default) (0x0000) routine 32 (0x0020) priority service, Assured Forwarding class 1 64 (0x0040) immediate service, Assured Forwarding class 2 96 (0x0060) flash, Assured Forwarding class 3 128 (0x0080) flash-override, Assured Forwarding class 4 160 (0x00A0) critical-ecp 192 (0x00C0) Internet-control
STATISTICS

EXAMPLE
set Traffic2_Network2 [::IxLoad new ixNetTraffic]

################################################## Activity RTSPServer1 of

NetTraffic Traffic2@Network2#################################################set

Activity_RTSPServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"RTSP Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

RTSPServer1 config \-enable

true \-name

"RTSPServer1" \-timeline

$_Match_Longest_$Activity_

RTSPServer1 agent.config \-enableTos

0 \-

commandTimeout

60 \-enable

true \-serverEmulation

0 \-name

"RTSPServer1" \-tos

0 \-rtpVlanPriority

0 \-enableEsm

0 \-rtspVlanPriority

0 \-esm

1460 \-enableRTSPVlanPriority

0 \-port

554 \-enableRTPVlanPriority

0$Activity_RTSPServer1 agent.presentationList.clearset MP3_128kbit [::IxLoad new Con-

tent]$MP3_128kbit config \-name

"MP3/128kbit"$MP3_128kbit streamList.clearset my_Stream [::IxLoad new Stream]$my_

Stream config \-clockRate

"Audio MP3 (90000 Hz)" \-

dataRate

128.0 \-packetization

20$MP3_128kbit streamList.appendItem -object $my_Streamset my_PresentationItem

[::IxLoad new PresentationItem]$my_PresentationItem config \-duration

30 \-path

"/test1.mp3" \-content

$MP3_128kbit$Activity_RTSPServer1 agent.presentationList.appendItem -object $my_

PresentationItem$Activity_RTSPServer1 agent.contentList.clearset Voice__1016_

[::IxLoad new Content]$Voice__1016_ config \-name

1150

IxLoad Tcl API Programming Guide

RTSP

"Voice (1016)"$Voice__1016_ streamList.clearset my_Stream1 [::IxLoad new Stream]$my_

Stream1 config \-clockRate

"Audio 8 bit (8000 Hz)" \-

dataRate

0.48 \-packetization

200$Voice__1016_ streamList.appendItem -object $my_Stream1$Activity_RTSPServer1

agent.contentList.appendItem -object $Voice__1016_

SEE ALSO

ixNetTraffic

Content

PresentationItem

IxLoad Tcl API Programming Guide

1151

RTSP

PresentationItem
PresentationItem--Specifies a presentation available from a server agent.

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_RTSPServer1 [$Traffic2_Network2 activityList.appendItem set my_PresentationItem [::IxLoad new PresentationItem] $Activity_RTSPServer1 agent.presentationList.appendItem -object $my_PresentationItem

DESCRIPTION
A PresentationItem is added to the presentationList option of the RTSP Server Agent object using the appendItem subcommand from the ixConfigSequenceContainer command.
Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
content A reference to an item in the contentList option of the RTSP Server Agent. This must match the name of a Content object in the contentList. (Default = ""). duration The maximum length of time that a stream will play, in seconds. (Default = 30). path The URL of the media file. (Default = "/test1.mp3").

EXAMPLE

set my_PresentationItem [::IxLoad new PresentationItem]$my_PresentationItem config

\-duration

30 \-path

"/test1.mp3" \-content

$MP3_128kbit$Activity_

RTSPServer1 agent.presentationList.appendItem -object $my_PresentationItem

SEE ALSO

RTSP Server Agent

Content

1152

IxLoad Tcl API Programming Guide

RTSP

Stream
Stream--Specifies a stream used in a presentation item.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_RTSPClient1 [$Traffic1_Network1 activityList.appendItem set my_Stream [::IxLoad new Stream] set MP3_128kbit [::IxLoad new Content] $MP3_128kbit streamList.appendItem -object $my_Stream $Activity_RTSPServer1 agent.presentationList.appendItem -object $my_PresentationItem

DESCRIPTION
A Stream object is a part of a Content object that is part of a PresentationItem object, which is a member of a RTSP Server Agent object. Its options are configas per the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
clockRate
The rate at which a sound or moving image is sampled in order to represent it digitally, expressed in hertz. Note: An integer value must be used. (Default = 90,000). Some typical values are::

Usage

Rate

Audio MP3 90000 Hz

Audio 8 bit 8000 Hz

Audio 16 bit 16000 Hz

Video

90000 Hz

dataRate The rate at which data is sent, expressed in kbps. (Default = 128). packetization The amount of time elapsed between packets, in milliseconds. (Default = 20).
EXAMPLE
set my_Stream [::IxLoad new Stream]$my_Stream config \-clockRate

IxLoad Tcl API Programming Guide

1153

RTSP

"Audio MP3 (90000 Hz)" \-dataRate packetization $my_Stream
SEE ALSO
Content
RTSP Server Agent

128.0 \20$MP3_128kbit streamList.appendItem -object

1154

IxLoad Tcl API Programming Guide

RTSP

Content

Content -- Specifies the streams that compose a presentation item.

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_RTSPServer1 [$Traffic2_Network2 activityList.appendItem set MP3_128kbit [::IxLoad new Content] $MP3_128kbit streamList.appendItem -object $my_Stream $Activity_RTSPServer1 agent.presentationList.appendItem -object $my_PresentationItem

DESCRIPTION
A Content object is a part of a PresentationItem object, which is a member of a RTSP Server Agent object. Its options are configured as per the ixConfig sub-commands.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
name The name associated with the streams. (Default = "MP3/128kbit"). streamList This is a list of type Stream. The elements in this list are the streams that coma presentation. (Default = {}).

EXAMPLE

set MP3_128kbit [::IxLoad new Content]$MP3_128kbit config \-name

"MP3/128kbit"$MP3_128kbit streamList.clearset my_Stream [::IxLoad new Stream]$my_

Stream config \-clockRate

"Audio MP3 (90000 Hz)" \-

dataRate

128.0 \-packetization

20$MP3_128kbit streamList.appendItem -object $my_Streamset my_PresentationItem

[::IxLoad new PresentationItem]$my_PresentationItem config \-duration

30 \-path

"/test1.mp3" \-content

$MP3_128kbit$Activity_RTSPServer1 agent.presentationList.appendItem -object $my_

PresentationItem

SEE ALSO

PresentationItem

RTSP Server Agent

Stream

IxLoad Tcl API Programming Guide

1155

RTSP

1156

IxLoad Tcl API Programming Guide

RTSP
RTSP Statistics
For the RTSP statistics, see the following: RTSP Client Statistics RTSP Server Statistics For TCP statistics, see TCP, Run State, and Curve Segment Statistics. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it. The test results are available from the location defined on the User Directories window. See User Directories. If you review your statistics and find many instances of RTSP client statistics and server statistics that should match but do not, that may be an indication that the Ramp Down Time is too short. When the Ramp Down Time expires, IxLoad terminates any users that are still running. If those users still have work in progress (such as transferring data) when IxLoad terminates them, the work will not be completed and the effect will be that statistics that should match (such as Bytes Sent) may not.

IxLoad Tcl API Programming Guide

1157

RTSP

RTSP Client Statistics
The table below describes the statistics available for RTSP clients.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

RTSP Sim-

--

ulated Users

Number of simulated RTSP users.

RTSP Con-

--

current Ses-

sions

Number of concurrent RTSP sessions maintained.

RTSP Con-

All

nections

Number of RTSP connections established.

RTSP Con-

All

nection Rate

Rate at which the client established RTSP connections.

RTSP Trans- All actions

Number of RTSP transactions completed.

RTSP Trans- All action Rate

Rate at which the client completed RTSP transactions.

RTP Lost Pack- All ets

Number of RTP packets lost during transmission.

RTP Out Of

All

Order Packets

Number of RTP packets received out of order.

RTP Con-

--

current Ses-

sions

Number of concurrent RTP sessions established.

RTSP Present- - ations Active

Number of RTSP presentations playing or paused.

RTSP Present- - ations Playing

Number of presentations playing.

1158

IxLoad Tcl API Programming Guide

RTSP

RTSP Present- - ations Paused
RTSP Present- - ation Requests Successful
RTSP Present- - ation Requests Failed
RTSP Present- - ations Playback Successful

RTSP

All

DESCRIBE

Sent

RTSP SETUP All Sent

RTSP SET

All

PARAMETER

Sent

RTSP GET

All

PARAMETER

Sent

RTSP PLAY

All

Sent

RTSP PAUSE All Sent

RTSP

All

TEARDOWN

Sent

RTSP

All

DESCRIBE Suc-

cessful

Number of presentations paused. Number of presentations requests that succeeded.
Number of presentations requests that failed.
Number of RTSP presentation requests that resulted in actual RTP data being received by the client. This statistic is incremented only once for each successful RTSP PLAY command, even if a PLAY results in multiple RTP streams being received (for example, a video and an audio stream). Number of RTSP DESCRIBE messages sent.
Number of RTSP SETUP messages sent. Number of RTSP SET PARAMETER messages sent.
Number of RTSP GET PARAMETER messages sent.
Number of RTSP PLAY commands sent. Number of RTSP PAUSE commands sent. Number of RTSP TEARDOWN commands sent.
Number of RTSP DESCRIBE commands for which a successful response was received.

IxLoad Tcl API Programming Guide

1159

RTSP

RTSP SETUP All Successful

RTSP SET

All

PARAMETER

Successful

RTSP GET

All

PARAMETER

Successful

RTSP PLAY

All

Successful

RTSP PAUSE All Successful

RTSP

All

TEARDOWN

Successful

RTSP

All

DESCRIBE

Failed

RTSP SETUP All Failed

RTSP SET

All

PARAMETER

Failed

RTSP GET

All

PARAMETER

Failed

RTSP PLAY

All

Failed

RTSP PAUSE All Failed

RTSP

All

TEARDOWN

Failed

Number of RTSP SETUP commands for which a successful response was received. Number of SET_PARAMETER replies received with code OK (200).
Number of RTSP GET PARAMETER commands for which a successful response was received.
Number of RTSP PLAY commands for which a successful response was received. Number of RTSP PAUSE commands for which a successful response was received. Number of RTSP TEARDOWN commands for which a successful response was received.
Number of RTSP DESCRIBE commands that failed.
Number of RTSP SETUP commands that failed.
Number of SET_PARAMETER replies received with a code other than OK (200).
Number of RTSP GET PARAMETER commands that failed.
Number of RTSP PLAY commands that failed.
Number of RTSP PAUSE commands that failed.
Number of RTSP TEARDOWN commands that failed.

1160

IxLoad Tcl API Programming Guide

RTSP

RTSP Present- All ations Requested

RTSP Present- All ations Successful

RTSP Present- All ations Failed

RTSP Present- All ations Active

RTSP Present- All ations Playing

RTSP Present- All ations Paused

RTP Packets All Received

RTP Bytes

All

Received

RTSP Packets All Sent

RTSP Packets All Received

RTSP Bytes

All

Sent

RTSP Bytes

All

Received

Number of presentation requests sent.
Number of presentations received.
Number of presentations requested but not received.
Number of presentations active.
Number of presentations playing.
Number of presentations paused.
Number of RTP packets received.
Number of RTP bytes received.
Number of RTSP packets received.
Number of RTSP packets received.
Number of RTSP bytes transmitted. If you run RTP over TCP, the media uses the same channel opened by the RTSP connection, so RTSP Bytes Sent also counts the bytes sent in the RTP stream. Number of RTSP bytes received. If you run RTP over TCP, the media uses the same channel opened by the RTSP connection, so RTSP Bytes Received also counts the bytes received in the RTP stream.

IxLoad Tcl API Programming Guide

1161

RTSP

RTSP Setup

All

Latency (ms)

RTSP Tear-

All

down Latency

(ms)

RTSP Play

All

Latency (ms)

RTSP Play

All

Latency (0 ms

- 10 ms)

RTSP Play

All

Latency (10

ms - 50 ms)

RTSP Play

All

Latency (50

ms - 100 ms)

RTSP Play

All

Latency (100

ms - 300 ms)

RTSP Play

All

Latency (300

ms - 1s)

RTSP Play

All

Latency

(Greater Than

1s)

Amount of time elapsed, in milliseconds, between a client sending a request to establish an RTSP connection and receiving the first byte of the response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed, in milliseconds, between a client sending a request to end an RTSP connection and receiving the first byte of the response. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Amount of time elapsed, in milliseconds, between a client sending a PLAY command and receiving the first byte of the media stream. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.
Number of instances in which 0 to 10 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.
Number of instances in which 10 to 50 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.
Number of instances in which 50 to 100 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.
Number of instances in which 100 to 300 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.
Number of instances in which 300 to 1000 milliseconds elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.
Number of instances in which more than one second elapsed between the time a client sent a PLAY command and the time it received the first byte of the media stream.

1162

IxLoad Tcl API Programming Guide

RTSP

RTP Jitter (0 All ms - 50 ms)

RTP Jitter (50 All ms - 100 ms)

RTP Jitter (100 All ms - 150 ms)

RTP Jitter (150 All ms - 200 ms)

RTP Jitter (200 All ms - 250 ms)

RTP Jitter (250 All ms - 300 ms)

RTP Jitter (300 All ms - 400 ms)

RTP Jitter (400 All ms - 500 ms)

RTP Jitter (500 All ms - 700 ms)

RTP Jitter (700 All ms - 1000 ms)

RTP Jitter (1 s All - 3 s)

RTP Jitter

All

(Greater Than

3s)

RTP Band-

All

width Usage

(0 - 30 KB/s)

Number of RTP packets received 0 to 50 milliseconds after the previous packet. Note: The ideal value for the `delta' in packet arrival times is equal to the duration of the media transported in the packets. For example, if a packet contains 250ms of media, it should ideally arrive 250ms after the preceding packet.
Number of RTP packets received 50 to 100 milliseconds after the previous packet in the stream.
Number of RTP packets received 100 to 150 milliseconds after the previous packet in the stream.
Number of RTP packets received 150 to 200 milliseconds after the previous packet in the stream.
Number of RTP packets received 200 to 250 milliseconds after the previous packet in the stream.
Number of RTP packets received 250 to 300 milliseconds after the previous packet in the stream.
Number of RTP packets received 300 to 400 milliseconds after the previous packet in the stream.
Number of RTP packets received 400 to 500 milliseconds after the previous packet in the stream.
Number of RTP packets received 500 to 700 milliseconds after the previous packet in the stream.
Number of RTP packets received 700 to 1000 milliseconds after the previous packet in the stream.
Number of RTP packets received 1 to 3 seconds after the previous packet in the stream.
Number of RTP packets received more than 3 seconds after the previous packet in the stream.
Amount of time during which RTP bandwidth usage was between 0 and 30 kilobits per second.

IxLoad Tcl API Programming Guide

1163

RTSP

RTP Band-

All

width Usage

(30 KB/s - 100

KB/s)

RTP Band-

All

width Usage

(100 KB/s -

300 KB/s)

RTP Band-

All

width Usage

(300 KB/s - 1

MB/s)

RTP Band-

All

width Usage

(Greater Than

1 MB/s)

RTP Packet

All

Loss Dis-

tribution (0

Percent)

RTP Packet

All

Loss Dis-

tribution (0 -

0.1 Percent)

RTP Packet

All

Loss Dis-

tribution (0.1 -

0.5 Percent)

RTP Packet

All

Loss Dis-

tribution (0.5 -

2 Percent)

RTP Packet

All

Loss Dis-

tribution (2 - 5

Percent)

Amount of time during which RTP bandwidth usage was between 30 and 100 kilobits per second. Amount of time during which RTP bandwidth usage was between 100 and 300 kilobits per second. Amount of time during which RTP bandwidth usage was between 300 kilobits and 1 megabit per second. Amount of time during which RTP bandwidth usage exceeded 1 megabit per second. Amount of time during which 0 percent of packets were lost.
Amount of time during which 0 to 0.1 percent of packets were lost.
Amount of time during which 0.1 to 0.5 percent of packets were lost.
Amount of time during which 0.5 to 2 percent of packets were lost.
Amount of time during which 2 to 5 percent of packets were lost.

1164

IxLoad Tcl API Programming Guide

RTSP

RTP Packet

All

Loss Dis-

tribution (5 -

100 Percent)

OK Responses All Received

Error

All

Responses

Received

Amount of time during which 5 to 100 percent of packets were lost.
Number of RTSP OK messages received. This statistic is only available in Conditional View. Number of RTSP error messages received. This statistic is only available in Conditional View.

Note: If the average table and bar graphs do not contain any data for the clients, that is an indication that they did not reach the Sustained (SU) run state. This can be caused by the following:
1. Stopping a test during the Ramp-Up phase.
2. Configuring a large number of page requests for the client agent so that not all the users configured for the client can attain the SU state within the allotted time.
3. Configuring a value for the statistics interval (Statistics tab) which is much larger than the SU time.

Matching the TEARDOWN Statistics to Other Statistics
When you review the statistics from an RTSP test, you may find that the number of TEARDOWN commands does not match the numbers of other commands. The cause may be that the test entered the ramp down phase sooner than expected. For example:
Describe command: If an IxLoad RTSP client receives a response to a DESCRIBE command and then the test enters the ramp down phase, the test does not send a TEARDOWN command, because no session has been set up. In this case, the number of DESCRIBE and TEARDOWN commands will not match.
PLAY command: For the PLAY command, sending of TEARDOWN commands depend on whether the requested media stream plays to its end or not:
l If an IxLoad RTSP client receives a response to a PLAY command (the response being the requested media stream), the media stream plays to its end and then the test enters the Ramp Down phase. The test sends its own implicit TEARDOWN command immediately afterwards to allow the test to complete gracefully. In this case, the number PLAY commands should match the number of TEARDOWN commands.

IxLoad Tcl API Programming Guide

1165

RTSP
l If the test enters the ramp down phase while the media stream is still playing, the test will not send a TEARDOWN command. In this case, the number of PLAY and TEARDOWN commands will not match, and the session will not be torn down gracefully. IxLoad will display a warning message.
All other commands: If an IxLoad RTSP client receives a response to a command other than DESCRIBE or PLAY and then the test enters the Ramp Down phase, the test sends its own implicit TEARDOWN command to allow the test to complete gracefully. In this case, the number of each command sent should match the number of TEARDOWN commands. To cause the statistics for TEARDOWN to match those of other commands, you can either increase the test duration or select shorter media streams.

1166

IxLoad Tcl API Programming Guide

RTSP

RTSP Server Statistics
The table below describes the statistics available for RTSP servers.
The QoE Detective column indicates the views in which a statistic is available:
IP: per-IP view User: per-User view VLAN: per-VLAN view All: all views

Statistic

QoE

Description

Detective

RTSP Present- IP, VLAN Number of presentation requests received by the servers. ations Received

RTSP Presentations Successful

IP, VLAN Number of presentation requests that succeeded.

RTSP Presentations Failed

IP, VLAN Number of presentation requests that failed.

RTSP Com-

IP, VLAN Number of RTSP commands received.

mands Received

RTSP DESCRIBE IP, VLAN Number of RTSP DESCRIBE commands received. Received

RTSP SETUP Received

IP, VLAN Number of RTSP SETUP commands received.

RTSP PLAY Received

IP, VLAN Number of RTSP PLAY commands received.

RTSP PAUSE Received

IP, VLAN Number of RTSP PAUSE commands received.

RTSP TEARDOWN Received

IP, VLAN Number of RTSP TEARDOWN commands received.

RTSP Response Codes Sent (2xx)

IP, VLAN

Number of 200-range (Success) responses sent. A 200-range response indicates that the action was successfully received, understood, and accepted.

IxLoad Tcl API Programming Guide

1167

RTSP

RTSP Response Codes Sent (3xx)

IP, VLAN

Number of 300-range (Redirection) responses sent. A 300-range response indicates that further action must be taken in order to complete the request.

RTSP Response Codes Sent (4xx)

IP, VLAN

Number of 400-range (Client Error) responses sent. A 400-range response indicates that the request contains bad syntax or cannot be fulfilled.

RTSP Response Codes Sent (5xx)

IP, VLAN

Number of 500-range (Server Error) responses sent. A 500-range response indicates that the server failed to fulfill an apparently valid request.

RTSP Response Codes Sent (6xx- 1xxx)

IP, VLAN

Number of 600- to 1000-range responses sent.

RTSP Packets Sent

IP, VLAN Number of RTSP packets transmitted by the servers.

RTSP Packets Received

IP, VLAN Number of RTSP packets received by the servers.

RTSP Bytes Sent IP, VLAN

Number of RTSP-related bytes (commands and responses) transmitted by the servers.
If you run RTP over TCP, the media uses the same channel opened by the RTSP connection, so RTSP Bytes Sent also counts the bytes sent in the RTP stream.

RTSP Bytes Received

IP, VLAN

Number of RTSP-related bytes (commands and responses) received by the servers.
If you run RTP over TCP, the media uses the same channel opened by the RTSP connection, so RTSP Bytes Received also counts the bytes received in the RTP stream.

Total RTP Bytes IP, VLAN Number of RTP bytes transmitted by the servers. Sent

Total RTP Pack- IP, VLAN Number of RTP packets transmitted by the servers. ets Sent

Total UDP Pack- IP, VLAN Number of UDP packets transmitted by the servers. ets Sent

1168

IxLoad Tcl API Programming Guide

RTSP

RTSP Play Latency (ms)

IP, VLAN

Average amount of time elapsed, in milliseconds, between the time a server received a PLAY request and the time it transmitted the first byte of the media stream.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

IxLoad Tcl API Programming Guide

1169

This page intentionally left blank.

1170

IxLoad Tcl API Programming Guide

SMTP
This section describes the SMTP Tcl API objects.

Overview
SMTP protocol commands are organized as: SMTP Client Agent
l SmtpCommand l MailMessage l Header l Attachment SMTP Server Agent
Objectives
The objectives (userObjective) you can set for SMTP are listed below. Test objectives are set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections l throughputMbps l throughputKbps l throughputGbps
SMTP Client Agent
The SMTP Client Agent defines a simulated user performing SMTP requests against one or more SMTP servers. Refer to SMTP Client Agent for a full description of this command. The important options of this command are listed below.

IxLoad Tcl API Programming Guide

1171

SMTP

Option

Usage

enable

Enables the use of the SMTP client agent.

name

The name associated with the client agent.

helloType

The type of hello (HELO or EHLO) used.

commandList

A list of commands to be sent to the server. Each list member is of type SmtpCommand.

mailMessageList A list of mail messages used in various commands contained in the commandList. Each list member is of type MailMessage.

commandTimeout Client timeout value.

SmtpCommand
Each client command is a single step in the interaction. Refer to SmtpCommand for a full description of this command. The important subcommands and options of this command are listed below.
Subcommand Usage checkConfig Checks the configuration of the action.

Option

Usage

command arguments

The SMTP command, with optional arguments, to be executed.

destination The name/address of the SMTP server.

mailMessage A reference to a mail message in the SMTP Client Agent's mailMessageList.

1172

IxLoad Tcl API Programming Guide

SMTP

MailMessage
The MailMessage object embodies a set of mail messages, complete with headers and attachments. Refer to MailMessage for a full description of this command. The important options of this command are listed below.

Option

Usage

name

The name associated with the mail message.

bodyFormat

The type of contents for the body of the message: text or HTML.

bodySizeType bodySizeFixed bodySizeRandomMin bodySizeRandomMax

Controls the size of the body of the message.

headerList

A set of headers to accompany the mail message. Each member is of type Header.

attachmentList

A set of attachments to accompany the mail message. Each member is of type Attachment.

Header
The Header object embodies a single mail header for use with a mail message. Refer to Header for a full description of this command. The important options of this command are:

Option

Usage

name

An e-mail header item. For example, From or To.

value / data The text for the e-mail header item. For example, "john@smith.org".

Attachment
The Attachment object embodies a set of mail attachments, which may be included with a mail message. Refer to Attachment for a full description of this command. The important options of this command are listed below.

IxLoad Tcl API Programming Guide

1173

SMTP

Option

Usage

dataType The type of contents for the body of the attachment: text or HTML.

type fileName sizeMin sizeMax

Controls whether the attachment is taken from a file or generated within a size range.

countMin Controls how many attachments of this type are attached to a mail message. countMax

SMTP Server Agent
The SMTP Server Agent defines the operation of the SMTP server. The emulated SMTP Server Agent accepts all mail messages sent to it, so it has few options. Refer to SMTP Server Agent for a full description of this command. The imporoptions of this command are listed below.

Option

Usage

enable

Enables the use of this server agent.

name

The name associated with the server agent.

concurrentSessionLimit The maximum number of concurrent sessions that the server will allow.

Server_Listening_Port Port that the SMTP server listens on for new connections.

1174

IxLoad Tcl API Programming Guide

SMTP

SMTP Client Agent
SMTP Client Agent - create an SMTP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic]set Activity_SMTPClient1 [$Traffic1_Network1 activityList.appendItem$Activity_SMTPClient1 agent.config options...
DESCRIPTION
An SMTP client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
commandList
This is a list of type ixConfigSequenceContainer used to hold objects of type SmtpCommand. The elements in this list describe the commands to be executed by the agent. (Default = {}). commandTimeout
Amount of time allowed for an SMTP command to complete. If the command does not complete within the allowed time, IxLoad closes the SMTP client's conto the SMTP server. (Default = 120). enable
Enables the use of this agent. (Default = true). helloType
Type of HELLO command used by this SMTP client. One of::

Option

Usage

$::SMTP_Client (Default) EHLO. The Enhanced SMTP (ESMTP) version of HELO. The server's (kHelloTypeEhlo) response includes a list of the options that the server supports.

$::SMTP_Client HELO. The sender-SMTP sends a HELO to the receiver-SMTP to identify itself (kHelloTypeHelo) and open a conAn argument sent with the command conthe host name of the
sender-SMTP.

IxLoad Tcl API Programming Guide

1175

SMTP
ipPreference This option indicates the order by which the POP3 client will use the subnets, if there is a mixture of IPv4 and IPv6 subnets in the network. The values are: IpPreferenceV4, IpPreferenceV6, IpPreferenceV4Any, IpPreferenceV6Any. loopValue If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0). mailMessageList This is a list of type ixConfigSequenceContainer used to hold objects of type MailMessage. The elements in this list are used as the contents of messages transmitted by the client. (Default = {}). name The name associated with this object, which must be set at object creation time. enableVlanPriority VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority When enableVlanPriority is true, this option accepts the vlan priority value.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity SMTPClient1

of NetTraffic Traffic1@Network1#################################################set

Activity_SMTPClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"SMTP Client" ]################################################## Timeline1 for

activities SMTPClient1#################################################set Timeline1

[::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_SMTPClient1 config

1176

IxLoad Tcl API Programming Guide

SMTP

\-enable

1 \-name

"SMTPClient1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1$Activity_

SMTPClient1 agent.config \-loopValue

true \-

commandTimeout

120 \-enable

1 \-ipPreference

2 \-name

"SMTPClient1" \-vlanPriority

0 \-helloType

0 \-enableVlanPriority

true$Activity_SMTPClient1 agent.-

mailMessageList.clearset Simple [::IxLoad new MailMessage]$Simple config \-

bodySizeType

0 \-name

"Simple" \-fileNameAsBody

"" \-description

"100 bytes plain text body" \-textContentAsBody

"" \-

bodySizeRandomMax

4096 \-bodySizeFixed

100 \-mimeTypeAndEncode

0 \-bodySizeRandomMin

1 \-bodyDataType

0 \-useFileAsBody

true \-bodyFormat

0$Simple headerList.clearset From

[::IxLoad new MailHeader]$From config \-name

"From" \-value

"fromName@company.com"$Simple head-

erList.appendItem -object $Fromset To [::IxLoad new MailHeader]$To config \-name

"To" \-value

"toName@company.com"$Simple head-

erList.appendItem -object $Toset Subject [::IxLoad new MailHeader]$Subject config \-

name

"Subject" \-value

"sample subject"$Simple headerList.appendItem -object $Subject$Simple attach-

mentList.clear$Activity_SMTPClient1 agent.mailMessageList.appendItem -object $Simple

SEE ALSO

ixNetTraffic

SmtpCommand

MailMessage

Attachment

Header

IxLoad Tcl API Programming Guide

1177

SMTP

SmtpCommand
SmtpCommand--Specifies the contents of an SMTP command.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic]set Activity_SMTPClient1 [$Traffic1_Network1 activityList.appendItemset my_SmtpCommand [::IxLoad new SmtpCommand]$Activity_SMTPClient1 agent.commandList.appendItem -object $my_SmtpCommand
DESCRIPTION
An SmtpCommand object is added to the commandList option of the SMTP Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
arguments
Optional arguments related to the SMTP command to be executed. One of:

Option

Usage

"{Send} " N/A.

"OPEN" N/A.

"MAIL"

The number of copies of the selected mail message to transfer. (Default = 10).

"NOOP " N/A.

"RSET"

N/A.

"{Think}" The length of the pause, in seconds, in the arguments option. (Default = 1).

"QUIT"

N/A.

command The SMTP command to be executed. One of:

1178

IxLoad Tcl API Programming Guide

SMTP

Option

Usage

"{Send} "

(Default) An IxLoad command that opens a connection to the SMTP server, transfers all configured messages to it, then logs out. {Send} is a single command that performs the same function as multiple SMTP commands. However, {Send} is not a standard SMTP comIt is included in IxLoad for your convenience to make configSMTP clients easier.

"OPEN"

Opens a connection to the SMTP server.

"MAIL"

Initiates a transaction that transfers mail messages to an SMTP server. In the arguments option, specify the number of copies of the selected mail message to transfer.

"NOOP "

(NO OPeration) specifies no action other than that the receiver send an OK reply.

"RSET"

Aborts the current mail transaction. Any stored sender, recipients, and mail data are discarded. A client can issue a RSET command at any time.

"{Think}"

Pauses the mail transaction. Specify the length of the pause, in secin the arguments option.

"QUIT"

Closes the transmission channel.

"{LoopBegin}" An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

"{LoopEnd}"

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

destination
The SMTP server that the client will send the command to. Specify the destination as follows:
l If the destination is a real SMTP server, specify the server's host name or IP address. l If the destination is an IxLoad SMTP Server Agent, specify the name of the SMTP Server Agent. l If the destination is the DUT, specify DUT:n ­ where DUT is the name of the DUT and n is the port
number on that DUT. (Default = "198.18.1.1").
mailMessage
A reference to an instance of the MailMessage object.(Default = "").

EXAMPLE

set my_SmtpCommand [::IxLoad new SmtpCommand]$my_SmtpCommand config \-destination

"Traffic2_SMTPServer1" \-command

"{Send}" \-

arguments

"10" \-mailMessage

$Simple1$Activity_SMTPClient1 agent.commandList.appendItem -object $my_SmtpCommand

IxLoad Tcl API Programming Guide

1179

SMTP
SEE ALSO
SMTP Client Agent MailMessage

1180

IxLoad Tcl API Programming Guide

SMTP

Header
Header--Specifies the contents of a mail message header.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SMTPClient1 [$Traffic1_Network1 activityList.appendItem $AttachmentSmall attachmentList.appendItem -object $my_MailAttachment $Activity_SMTPClient1 agent.mailMessageList.appendItem -object $Attach set From4 [::IxLoad new MailHeader] $AttachmentSmall headerList.appendItem -object $From4

DESCRIPTION
A Header object is added to the headerList option of a MailMessage object, which is list item in of the mailMessageList option of the SMTP Client Agent object. Three required header items are included by default:
l From l To l Subject
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
name
The e-mail header item. Example: From, To, Subject. (Default = From, To). The standard headers that IxLoad supports are:

Option Usage

From From

To

To

Subject Subject

Cc

Carbon copy.

Bcc

Blind carbon copy.

IxLoad Tcl API Programming Guide

1181

SMTP

In addition you can include your own custom headers by editing the header fields. You can enter any printable US ASCII characters into the fields, except the space ( ) and the colon (:). The custom headers accepts MIME type headers also. MIME type headers start with "Content-."
value / data
The text which forms the header. (Default = "fromName@company.com).

EXAMPLE

set From [::IxLoad new MailHeader]$From config \-name

"From" \-value

"fromName@company.com"$Simple head-

erList.appendItem -object $From

SEE ALSO

MailMessage

SMTP Client Agent

1182

IxLoad Tcl API Programming Guide

SMTP

Attachment
Attachment--Specifies the contents of a mail attachment.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SMTPClient1 [$Traffic1_Network1 activityList.appendItem set my_MailAttachment [::IxLoad new MailAttachment] $AttachmentSmall attachmentList.appendItem -object $my_MailAttachment $Activity_SMTPClient1 agent.mailMessageList.appendItem -object $Attach

DESCRIPTION
An Attachment object is added to the attachmentList option of a MailMessage object, which is list item in of the mailMessageList option of the SMTP Client Agent object.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
countMax
The upper limit on the number of attachments attached to each message. IxLoad attaches a varying number of attachments of this type. (Default = 3). countMin
The lower limit on the number of attachments attached to each message. IxLoad attaches a varying number of attachments of this type. (Default = 1). dataType
If type is set to $::Attachment(kGeneratedData), this field specifies the format of the generated data. You can select from the following formats:

Option
$::Attachment (kPlainText) or "Plain Text"
$::Attachment (kHtml) or "HTML"

Usage (Default) IxLoad generates ASCII text for the attachment.
IxLoad generates text for the attachment that includes HTML tags.

IxLoad Tcl API Programming Guide

1183

SMTP

$::Attachment (kRandom) or "Random"

IxLoad randomly generates plain text for some instances of this attachment, and HTML for other instances.

fileName
If type is set to $::Attachment(kExistingFile), this field specifies the file to be attached. You can specify any file on the local IxLoad client PC or accessible over your network. (Default = "<specify file>").
sizeMax
If type is set to $::Attachment(kGeneratedData), this specifies the upper limit of the size of the attachment. IxLoad generates attachments that vary randomly between the minimum and maximum sizes. (Default = 4,096).
sizeMin
If type is set to $::Attachment(kGeneratedData), this specifies the lower limit of the size of the attachment. IxLoad generates attachments that vary randomly between the minimum and maximum sizes. (Default = 1,024).
type
The type of data contained in the attachment. One of:

Option

Usage

$::Attachment (kGeneratedData) or "Generated Data"

(Default) IxLoad automatically creates random data in the attachment. Use the dataType option to specthe format of the generated data.

$::Attachment (kExistingFile) or "Existing File"

IxLoad attaches the file specified in the fileName option to the message.

EXAMPLE

set my_MailAttachment [::IxLoad new MailAttachment]$my_MailAttachment config \-

sizeMax

100 \-countMax

1 \-dataType

0 \-countMin

1 \-fileName

"<specify file>" \-attchStr

"" \-type

0 \-sizeMin

100$AttachmentSmall attachmentList.appendItem -object $my_MailAttachment$Activity_

SMTPClient1 agent.mailMessageList.appendItem -object $AttachmentSmal

1184

IxLoad Tcl API Programming Guide

SEE ALSO
MailMessage SMTP Client Agent

SMTP

IxLoad Tcl API Programming Guide

1185

SMTP

MailMessage
MailMessage--Specifies the contents of a mail message.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic]set Activity_SMTPClient1 [$Traffic1_Network1 activityList.appendItemset Simple [::IxLoad new MailMessage]$Activity_ SMTPClient1 agent.mailMessageList.appendItem -object $Simple
DESCRIPTION
A MailMessage object is added to the mailMessageList option of the SMTP Client Agent object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
attachmentList
This is a list of type Attachment. The elements in this list are the attachments associated with the mail message. (Default = {}). bodyFormat
The format of the body of the mail message. One of:

Option

Usage

$::MailMessage

(Default) The message body contains only ASCII characters and no

(kBodyFormatPlainText) formatting or disinformation.

$::MailMessage (kBodyFormatHtml)

The message body contains HTML tags for formatting and display. An HTML message is identified by the MIME type text/html.

$::MailMessage

Message bodies are a random mixture of plain and HTML format.

(kBodyFormatRandom)

bodySizeFixed
If bodySizeType is set to $::MailMessage(kBodySizeTypeFixed), then this is the fixed size of the message body. (Default = 100). bodySizeRandomMax

1186

IxLoad Tcl API Programming Guide

SMTP

If bodySizeType is set to $::MailMessage(kBodySizeTypeRandom), then this is the maximum size of the message body. (Default = 4,096). bodySizeRandomMin
If bodySizeType is set to $::MailMessage(kBodySizeTypeRandom), then this is the minimum size of the message body. (Default = 1). bodySizeType
The manner in which the body size is specified. One of::

Option

Usage

$::MailMessage (kBodyS- (Default) The size of the message body is fixed at a single size. Enter

izeTypeFixed)

the size in the bodySizeoption.

$::MailMessagev

The size of the message body varies ranbetween a minimum and a max-

(kBodySizeTypeRandom) isize. Enter the minimum and maximum sizes in the boand booptions.

custom_mail_body_use_real_file
This option accepts boolean value of 0 or 1. If zero is given, there is no need to specify a file name. You have to enter the mail message text in custom_mail_body_content. If 1 is given, a file name is specified in the custom_mail_body_filename. custom_mail_body_encode
This option specifies the encoding option for the real file. For boolean value 0, IxLoads encodes the file using the default encoding. For already encoded files, you choose boolean value 1. custom_mail_body_filename
This option specifies the absolute path for the real file. For example: "c:\temp.txt" \ custom_mail_body_content
This option accepts the mail message text.For example: "abcd123." description
A short textual description for the mail message. (Default = "100 bytes plain text body"). headerList
This is a list of type Header. The elements in this list are the headers associated with the mail message. (Default = an object with three items in the list: "From:fromName@company.com," "To:toName@company.com,""Subject:sample subject"). name

IxLoad Tcl API Programming Guide

1187

SMTP

The name associated with this object. (Default = "Simple"). mail_body_type
The mail body type can be generated or custom data. You cannot import files through Tcl so you can work only with default or custom data. (Default = 1).

EXAMPLE

set Simple [::IxLoad new MailMessage]$Simple config \-bodySizeType

0 \-name

"Simple" \-fileNameAsBody

"" \-description

"100 bytes plain text body" \-

textContentAsBody

"" \-bodySizeRandomMax

4096 \-bodySizeFixed

100 \-mimeTypeAndEncode

0 \-bodySizeRandomMin

1 \-bodyDataType

0 \-useFileAsBody

true \-bodyFormat

0$Simple headerList.clearset From [::IxLoad new MailHeader]$From config \-name

"From" \-value

"fromName@company.com"$Simple head-

erList.appendItem -object $Fromset To [::IxLoad new MailHeader]$To config \-name

"To" \-value

"toName@company.com"$Simple head-

erList.appendItem -object $Toset Subject [::IxLoad new MailHeader]$Subject config \-

name

"Subject" \-value

"sample subject"$Simple headerList.appendItem -object $Subject$Simple attach-

mentList.clear$Activity_SMTPClient1 agent.mailMessageList.appendItem -object $Simple

SEE ALSO

SMTP Client Agent Attachment Header

1188

IxLoad Tcl API Programming Guide

SMTP
SMTP Server Agent
SMTP Server Agent - configure an SMTP server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_SMTPServer1 [$Traffic2_Network2 activityList.appendItem $Activity_SMTPServer1 agent.config options...
DESCRIPTION
An SMTP server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
concurrentSessionLimit The maximum number of concurrent sessions to be supported by the agent. (Default = 1,000). enable Enables the use of this action. (Default = true). name The name associated with this object, which must be set at object creation time. Server_Listening_Port Port that the SMTP server listens on. To specify multiple ports, separate the port numbers with commas (,). You can specify up to 50 listening ports. (Default = 25). enableVlanPriority VLAN Priority can be set on a per-activity basis or on a per-network (NetTraffic) basis. This parameter sets the VLAN priority for the activity. An activity's VLAN Priority bit setting takes precedence over a network's Priority bit setting. If true, IxLoad sets the VLAN Priority bit in traffic from this activity. Configure the VLAN priority value in vlanPriority. (Default = false). vlanPriority

IxLoad Tcl API Programming Guide

1189

SMTP
When enableVlanPriority is true, this option accepts the vlan priority value.
STATISTICS

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity SMTPServer1

of NetTraffic Traffic2@Network2#################################################set

Activity_SMTPServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"SMTP Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

SMTPServer1 config \-enable

true \-name

"SMTPServer1" \-timeline

$_Match_Longest_$Activity_

SMTPServer1 agent.config \-Server_Listening_Port

"25" \-enable

true \-name

"SMTPServer1" \-vlanPriority

0 \-concurrentSessionLimit

1000 \-enableVlanPriority

false

SEE ALSO

ixNetTraffic

1190

IxLoad Tcl API Programming Guide

SMTP
SMTP Statistics
Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it. For TCP statistics, see TCP, Run State, and Curve Segment Statistics. The test results are available from the location defined on the User Directories window. See User Directories. If you review your statistics and find many instances of SMTP Client statistics and server statistics that should match but do not, that may be an indication that the Ramp Down Time is too short. When the Ramp Down Time expires, IxLoad terminates any users that are still running. If those users still have work in progress (such as transferring data) when IxLoad terminates them, the work will not be completed and the effect will be that statistics that should match may not. For the SMTP statistics, see the following: SMTP Client Statistics SMTP Server Statistics

IxLoad Tcl API Programming Guide

1191

SMTP

SMTP Client Statistics
The table below lists the statistics that IxLoad reports for SMTP clients.

Statistic

Description

SMTP Ses- Number of requests to establish SMTP sessions sent by the clients. sions Requested

SMTP Sessions Established

Number of SMTP sessions established by the clients.

SMTP Sessions Failed

Number of attempts to establish SMTP sessions that failed.

SMTP Mails Sent

Number of mail messages sent by the clients using SMTP.

SMTP Mes- Number of messages attempted to be sent using SMTP that failed. sages Failed

SMTP Message Timeouts

Number of messages that could not be sent due to timeouts.

SMTP HELO Sent

Number of SMTP HELO commands sent.

SMTP HELO Ok

Number of SMTP HELO commands that received a positive response.

SMTP HELO Failed

Number of SMTP HELO commands that did not receive a positive response.

SMTP EHLO Sent

Number of SMTP EHLO commands sent.

SMTP EHLO Ok

Number of SMTP EHLO commands that received a positive response.

SMTP EHLO Failed

Number of SMTP EHLO commands that did not receive a positive response.

SMTP MAIL Sent

Number of SMTP MAIL commands sent.

1192

IxLoad Tcl API Programming Guide

SMTP

SMTP MAIL Ok
SMTP MAIL Failed
SMTP RCPT Sent
SMTP RCPT Ok
SMTP RCPT Failed
SMTP DATA Sent
SMTP DATA Ok
SMTP DATA Failed
SMTP NOOP Sent
SMTP NOOP Ok
SMTP NOOP Failed
SMTP RSET Sent
SMTP RSET Ok
SMTP RSET Failed
SMTP QUIT Sent
SMTP QUIT Ok

Number of SMTP MAIL commands that received a positive response. Number of SMTP MAIL commands that did not receive a positive response. Number of SMTP RCPT commands sent. Number of SMTP RCPT commands that received a positive response. Number of SMTP RCPT commands that did not receive a positive response. Number of SMTP DATA commands sent. Number of SMTP DATA commands that received a positive response. Number of SMTP DATA commands that did not receive a positive response. Number of SMTP NOOP commands sent. Number of SMTP NOOP commands that received a positive response. Number of SMTP NOOP commands that did not receive a positive response. Number of SMTP RSET commands sent. Number of SMTP RSET commands that received a positive response. Number of SMTP RSET commands that did not receive a positive response. Number of SMTP QUIT commands sent. Number of SMTP QUIT commands that received a positive response.

IxLoad Tcl API Programming Guide

1193

SMTP

SMTP QUIT Failed

Number of SMTP QUIT commands that did not receive a positive response.

SMTP Total Bytes Sent

Total number of SMTP-related (commands, responses, and mail messages) bytes sent by the clients.

SMTP Total Bytes Received

Total number of SMTP-related (commands, responses, and mail messages) bytes received by the clients.

SMTP Total Attachments Sent

Total number of attachments sent by the clients.

SMTP Total Mails with Attachments Sent

Total number of messages sent that included one or more attachments.

SMTP Sim- Number of simulated SMTP users. ulated Users

SMTP Concurrent Connections

Number of concurrent SMTP connections maintained.

SMTP Connections

Number of SMTP connections established by the clients.

SMTP Transactions

Number of SMTP transactions completed by the clients.
The SMTP client counts each SMTP command as one transaction. A successful transaction is an SMTP command for which an ACK is received. An unsuccessful transaction is one for which no ACK is received, or an error is received.

SMTP Bytes Number of SMTP-related bytes sent and received by the clients.

SMTP Con- Rate at which the SMTP clients established connections to servers. nection Rate

SMTP Trans- Rate at which the SMTP clients completed SMTP transactions. action Rate

SMTP Throughput

Rate at which the SMTP clients sent and received SMTP data.

1194

IxLoad Tcl API Programming Guide

SMTP
Note: If the average table and bar graphs do not contain any data for the clients, that is an indication that they did not reach the Sustained (SU) run state. This can be caused by the following: 1. Stopping a test during the Ramp-Up phase. 2. Configuring a large number of page requests for the client agent so that not all the users configured for the client can attain the SU state within the allotted time. 3. Configuring a value for the statistics interval (Statistics tab) which is much larger than the SU time.

IxLoad Tcl API Programming Guide

1195

SMTP

SMTP Server Statistics
The table below lists the statistics that IxLoad reports for SMTP servers. For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

Statistic

Description

SMTP Session Requests Number of requests to establish SMTP sessions received by the servers. Received

SMTP Session Requests Number of SMTP sessions established by the servers. Successful

SMTP Session Requests Number of requests to establish SMTP sessions that failed. Failed

SMTP HELO Received

Number of SMTP HELO commands received.

SMTP EHLO Received

Number of SMTP EHLO commands received.

SMTP MAIL Received

Number of SMTP MAIL commands received.

SMTP RCPT Received

Number of SMTP RCPT commands received.

SMTP DATA Received

Number of SMTP DATA commands received.

SMTP NOOP Received

Number of SMTP NOOP commands received.

SMTP RSET Received

Number of SMTP RSET commands received.

SMTP QUIT Received

Number of SMTP QUIT commands received.

SMTP Mail Bytes Received

Number of bytes contained in SMTP mail messages received by the servers.

SMTP Mails Received

Number of mail messages received using SMTP. NOTE for API Users: There is a trailing space after the word `Received' in the name of this statistic.

SMTP Total Bytes Sent

Number of SMTP-related bytes (commands, responses, and messages) sent.

SMTP Total Bytes Received

Number of SMTP-related bytes (commands, responses, and messages) received.

1196

IxLoad Tcl API Programming Guide

! 29

SMTP

IxLoad Tcl API Programming Guide

1197

This page intentionally left blank.

1198

IxLoad Tcl API Programming Guide

SSH
This section describes the SSH Tcl API objects.
API Overview
The IxLoad SSH API consists of a client agent and its commands. The structure of the API is shown below.

IxLoad Tcl API Programming Guide

1199

SSH

Objectives
The objectives (userObjective) you can set for SSH are listed below. Test objecare set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections

SSH Client Agent
Secure Shell (SSH) is a protocol for securely logging into a remote host over an insecure network. Refer to SSH Client Agent on page 24-4 for a full description of this command. The most significant options of this command are listed below.

Option

Description

protocolAndType Protocol used by the client agent. Defines the agent as either a client or server.

SSH Command List
The SSH Command List creates the list of SSH commands that the client will send to a SSH server. Refer to SSH Command List on page 24-10 for a full description of this command. The most significant options of this command are listed below.

Option Description

id

Command that client will send.

Option Set
The Option Set object configures the list of SSH options that the SSH commands will use. Refer to Option Set on page 24-15 for a full description of this com

1200

IxLoad Tcl API Programming Guide

SSH
Option Set Manager
The Option Set Manager object configures the list of Option Sets. Refer to Option Set Manager on page 24-16 for a full description of this command.
Global Config
Configures the parameters that define the way the IxLoad SSH client performs overall. Refer to Global Config on page 24-18 for a full description of this com

IxLoad Tcl API Programming Guide

1201

SSH

SSH Client Agent
SSH Client Agent - create an SSH client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_SSHClient1 [$Traffic1_Network1 activityList.appendItem \ options... $Activity_SSHClient1 agent.config
DESCRIPTION
A SSH client agent is added to the activityList option of the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer comOther ixConfigSequenceContainer subcommands may be used to modify the agentList. It is customary to set all the options of the client agent during the appendItem call. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable
Enables the use of this client agent. (Default = true). name
The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new ixNetTraffic]#----------------------------------

-------------------------# Activity SSHClient1 of NetTraffic Traffic1@Network1#-----

------------------------------------------------------set Activity_SSHClient1 [$Traf-

fic1_Network1 activityList.appendItem \-protocolAndType

"ssh

Client" ]$Activity_SSHClient1 agent.config \-enable

true \-name

"SSHClient1"

SEE ALSO

ixNetTraffic

1202

IxLoad Tcl API Programming Guide

SSH

IxLoad Tcl API Programming Guide

1203

SSH

SSH Command List
SSH Command List--Creates the list of SSH commands that the client will send to a SSH server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] $Activity_SSHClient1 agent.pm.commands.appendItem \ options...
DESCRIPTION
A command is added to the SSH Command List object using the appendItem subcommand from the ixConfigSequenceContainer command (see the example below).

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id DHCP command to be executed. One of the following:

Command

Description

AuthenticateUserCom

AuthenticateUserCommand simulates a key-based SSH user authentication session establishment and termination. It sends the following messages or commands: Key-Exchange-Init (SSH_MSG_KEXINIT) New-Keys (SSH_MSG_NEWKEYS) Service-Request (SSH_MSG_SERVICE_REQUEST) User-Authentication-Request (SSH_MSG_USERAUTH_REQUEST) {Close}

1204

IxLoad Tcl API Programming Guide

SSH

OpenChannelCom

OpenChannelCommand performs a key-based SSH user authentication, establishes an SSH session, opens a new channel, and then terminates the session. It is a combination of an AuthenticateUserCommand, plus an OpenChannelComIt sends the following messages or commands: Key-Exchange-Init (SSH_MSG_KEXINIT) New-Keys (SSH_MSG_NEWKEYS) Service-Request (SSH_MSG_SERVICE_REQUEST) User-Authentication-Request (SSH_MSG_USERAUTH_REQUEST) Channel-Open (SSH_MSG_CHANNEL_OPEN)

OpenShellCommand

An OpenShellCommand requests that the server open a new channel and establish a new shell process. It is a combination of an OpenChannelCommand, plus a ChannelRequestComwith requestType set to "shell". It sends the following messages or commands:
{OpenChannel}
ChannelRequestCommand (SSH_MSG_CHANNEL_REQUEST) with requestType = shell

ExecCommand

An ExecCommand executes a command on the SSH server. It is a combination of an OpenChannelCommand, plus a Chanwith requestType set to "exec". It sends the following messages or commands:
{OpenChannel}
Channel-Request (SSH_MSG_CHANNEL_REQUEST) with Request Type = exec

SendDataCommand

A SendDataCommand sends data over the channel estabby a previous OpenChannelCommand. The maximum amount of data that can be sent, depends on the channel's maximum packet size or its current window size, whichever is smaller. Sending data decreases the remaining window size by the amount of data sent. {SendData} can send either of the following messages: Channel-Data (SSH_MSG_CHANNEL_DATA ) Channel-Extended-Data (SSH_MSG_CHANNEL_EXTENDED_DATA)

CloseCommand

A CloseCommand terminates an SSH session. It sends the folmessages or commands: Channel-Close (if needed) (SSH_MSG_CHANNEL_CLOSE ) Disconnect (SSH_MSG_DISCONNECT)

IxLoad Tcl API Programming Guide

1205

SSH

ThinkCommand

The THINKCommand causes the client to become idle for a specified length of time, to simulate real-world usage scenarios in which a user may spend time absorbing or processing inforreceived from the server before sending the next com
If you specify identical values for the minimum and maximum intervals, the client will be inactive for a fixed length of time. If you specify different values for the minimum and maximum intervals, IxLoad will select a value within the range and cause the client to be inactive for that length of time.

LoopBeginCommand

The Loop BeginCommand is an IxLoad command that you can add to the Command List to cause the commands between it and the LoopEndCommand to be executed a specified number of times.

LoopEndCommand

LoopEndCommand ends the list of commands that will be exeby the preceding LoopBeginCommand.

Arguments for id = AuthenticateUserCommand
optionSet Name of option set. A value for this argument must be one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set"). userName Name of simulated user to be authenticated. password The password required for the authentication. authMethod Method used to authenticate the user. You can select from the following method: password: Password-based authentication serverIPAddr Address of the SSH server. (Default = "198.18.0.101").
Arguments for id = OpenChannelCommand
serverIPAddr Address of the SSH server. (Default = "198.18.0.101"). optionSet

1206

IxLoad Tcl API Programming Guide

SSH
Name of option set. A value for this argument must be one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set"). userName Name of simulated user to be authenticated. password The password required for the authentication. authMethod Method used to authenticate the user. You can select from the following method: password: Password-based authentication initialWindowSize Initial size of the channel window, in bytes. maximumpacketSize Maximum size of the packets sent over the channel, in bytes.
Arguments for id = OpenShellCommand
serverIPAddr Address of the SSH server. (Default = "198.18.0.101"). optionSet Name of option set. A value for this argument must be one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set"). userName Name of simulated user to be authenticated. password The password required for the authentication. authMethod Method used to authenticate the user. You can select from the following method: password: Password-based authentication initialWindowSize Initial size of the channel window, in bytes. maximumpacketSize Maximum size of the packets sent over the channel, in bytes.

IxLoad Tcl API Programming Guide

1207

SSH
wantReply If enabled, the server returns a message indicating the success or failure of the Channel-Request. The IxLoad client does not display the actual text of the response.
Arguments for id = ExecCommand
serverIPAddr Address of the SSH server. (Default = "198.18.0.101"). optionSet Name of option set. A value for this argument must be one of the name objects from the optionSet object. Minimum length = 1. (Default = "Default Option Set"). userName Name of simulated user to be authenticated. password The password required for the authentication. authMethod Method used to authenticate the user. You can select from the following methods: password: Password-based authentication initialWindowSize Initial size of the channel window, in bytes. maximumpacketSize Maximum size of the packets sent over the channel, in bytes. wantReply If enabled, the server returns a message indicating the success or failure of the Channel-Request. The IxLoad client does not display the actual text of the response. commandName Name of the command to be executed on the server.
Arguments for id = SendDataCommand
dataType Type of data to be sent to the SSH server.
l normalData: Sends normal channel data.

1208

IxLoad Tcl API Programming Guide

SSH

l extendedData: Sends extended channel data. The only type of extended data available is stderr (SSH_EXTENDED_DATA-STDERR).
fileName If data is imported from a file, then the path is mentioned here.
Arguments for id = CloseCommand
reasonCode Reason for ending the session. The values are:

Code Description

1

protocolError

Disconnecting because a protocol error occurred on the client or the server.

2

keyExchangeFailed

Disconnecting because the key exchange failed on the client or server.

3

macError

Disconnecting because the Message Authentication Code (MAC) failed on the client or

server.

4

compressionError

Disconnecting because a compression error occurred on the client or server.

5

versionNotSuppoprted

Disconnecting because the client or server does not support the protocol version indicated in the message.

6

hostKeyNotVerifiable

Disconnecting because the host key could not be verified.

7

connectionLost

Disconnecting because the connection was lost.

8

disconnectByApplication

Disconnection caused by an application.

9

tooManyConnections

Disconnected because the internal connection limit has been exceeded.

IxLoad Tcl API Programming Guide

1209

SSH

10 noMoreAuthenticationMethodsAvailable Disconnecting because there are no more authentication to try. This generally means that the client has failed in all the authenmethods available on the server.

description Description of the reason for ending the session. The text must be in ISO-10646 UTF-8 encoding.
Arguments for id = ThinkCommand
minimumInterval Minimum length of time that the client is idle. Minimum = "1," maximum = "2,147,483,647." (Default = "1"). maximumInterval Maximum length of time that the client is idle. Minimum = "1," maximum = "2,147,483,647." (Default = "1").

Arguments for id = LoopBeginCommand
loopCount
Number of times to repeat the enclosed commands. '0' treated as infinity. Mini= "0," maximum = "2,147,483,647." (Default = "5").

Arguments for id = LoopEndCommand
None.

EXAMPLE
$Activity_SSHClient1 agent.pm.commands.appendItem \

-id

"AuthenticateUserCommand" \

-userName "ixia-user" \

-password "password" \

-optionSet "Default Option Set" \

-authMethod "password" \

-serverIPAddr "198.18.0.101"

SEE ALSO
SSH Client Agent

1210

IxLoad Tcl API Programming Guide

SSH

Option Set
Options Set--Configures the algorithm and language preferences that the IxLoad SSH client sends with some commands that require or allow those preferences to be specified.

SYNOPSIS
set Activity_SSHClient1 [$Traffic1_Network1 activityList.appendItem \ $Activity_SSHClient1 agent.pm.optionSet.config \ options...

DESCRIPTION
An Options Set is a list of options, their arguments, and the commands for which those options are used. Configure the list using the same subcommands as for ixConfig (see the example below).

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
name Name of option set list. Minimum length = 1. (Default = "No Name") optionsList List of options and their arguments. See Option Set Manager. (Default = "{}). predefined If true, then the options in this option set are predefined for the SSH server to expose as available options. (Default = "0"). inUse The option set that is configured through the Option Set Manager. . (Default = 0).

EXAMPLE

$Activity_SSHClient1 agent.pm.optionSet.config \-predefined

false \-name

"No Name" \-inUse

0

SEE ALSO

SSH Client Agent

Option Set Manager

IxLoad Tcl API Programming Guide

1211

SSH

Option Set Manager
Options Set Manager--Configures the list of Option Sets.
SYNOPSIS
set Activity_SSHClient1 [$Traffic1_Network1 activityList.appendItem \ $Activity_SSHClient1 agent.pm.optionSetManager.optionSetList.appendItem \ options...
DESCRIPTION
To configure an Option Set Manager, use the appendItem command on the pm.optionSetManager component of the SSH Client Agent.
SUBCOMMANDS
None.
OPTIONS
id Key exchange algorithm to be used. Select an algorithms from the table below. Each algorithm takes arguments, which are also listed in the table.

Option/Arguments

Description

0 kexAlgoName

kexAlgoElements Algorithms that the IxLoad SSH client proposes to protect the exchange of public keys between itself and the SSH server.

1

serverHostKeyAlgoElements

serverHostKeyAlgoName Algorithms that the client offers to accept for generthe server's host key.

2 encC2SAlgoName

encC2SAlgoElements Algorithms that the client proposes to encrypt traffic it sends to the server.

3 encS2CAlgoName

encS2CAlgoElements Algorithms that the client offers to accept for encrypttraffic it receives from the server.

4 macC2SAlgoName

macC2SAlgoElements Algorithms that the client proposes for ensuring the integrity of data it sends to the server.

1212

IxLoad Tcl API Programming Guide

SSH

5 macS2CAlgoName
6 compC2SAlgoName
7 compS2CAlgoName
8 languageC2SName 9 languageS2CName

macS2CAlgoElements Algorithms that the client offers to accept for ensurthe integrity of data it receives from the server.
compC2SAlgoElements Algorithms that the client proposes for compressing the data it sends to the server.
compS2CAlgoElements Algorithms that the client offers to accept for comthe data it receives from the server.
C2SLanguageElements Languages that the client proposes for messages it sends to the server.
S2CLanguageElements Languages that the client offers to accept for mesit receives from the server.

EXAMPLE
$Activity_SSHClient1 agent.pm.optionSetManager.optionSetList.appendItem \
-id "OptionSet" \
-predefined true \
-name "Default Option Set" \
-inUse 0 $Activity_SSHClient1 agent.pm.optionSetManager.optionSetList (0).optionsList.clear$Activity_SSHClient1 agent.pm.optionSetManager.optionSetList (0).optionsList.appendItem \
-id "KexAlgos" $Activity_SSHClient1 agent.pm.optionSetManager.optionSetList(0).optionsList(0).kexAlgoElements.clear$Activity_SSHClient1 agent.pm.optionSetManager.optionSetList(0).optionsList(0).kexAlgoElements.appendItem \
-id "KexAlgoElement" \
-kexAlgoName "diffie-hellman-group1-sha1" $Activity_SSHClient1 agent.pm.optionSetManager.optionSetList.appendItem \
-id "OptionSet" \ -predefined 0 \
-name "Option Set - 0" \

IxLoad Tcl API Programming Guide

1213

SSH
-inUse 0
SEE ALSO
Option Set

1214

IxLoad Tcl API Programming Guide

SSH

Global Config
Options Set Manager--Configures the parameters that define the way the IxLoad SSH client performs overall.

SYNOPSIS
set Activity_SSHClient1 [$Traffic1_Network1 activityList.appendItem \ $Activity_SSHClient1 agent.pm.globalConfig.config \ options...

DESCRIPTION
To configure the parameters that define the way the IxLoad SSH client performs overall. Use the appendItem command on the pm.optionSetManager component of the SSH Client Agent.

SUBCOMMANDS
None.

OPTIONS
defaultSshPort
The default Listening Port of an SSH Server. minimum = "1" maximum = "65535" default = "22". timeout
Amount of time an SSH Client will wait for getting a response from the Server. minimum = "1" maximum = "2000" default = "600". defaultUserName
The default user name used to login if no other user name is specified in authentication method configuration. minimum = "1" maximum = "255" default = "ixia-user". password
The password to be sent to the server for password authentication. minimum = "1" maximum = "255" default = "password".

EXAMPLE

$Activity_SSHClient1 agent.pm.globalConfig.config \-defaultSshPort

22 \-implicitLoopCheck

true \-password

"password" \-defaultUserName

"ixia-user" \-timeout

600

SEE ALSO

SSH Client Agent

IxLoad Tcl API Programming Guide

1215

SSH

SSH Client Statistics
The table below describes the SSH client statistics.

Statistic

Description

Objective Statistics

Simulated Users objective

User Count

If the objective is Simulated Users, this is the number of users created.

Concurrent Sessions objective

SSH Concurrent Sessions

If the objective is Concurrent Sessions, this is the number of concurrent SSH sessions established.

Transaction Rate objective

SSH Total Trans- If the objective is Transaction Rate, this is the number of SSH transactions com-

actions

pleted.

SSH Transaction Rate

If the objective is Transaction Rate, this is the rate at which the client completed SSH transactions.

Connection Rate objective

SSH Connections If the objective is Connection Rate, this is the number of SSH connections estab-

Established

lished.

SSH Connection Rate

If the objective is Connection Rate, this is the rate at which the client completed SSH transactions.

Authentication Statistics

User Authentication statistics

Total User Authentication Attempted

Total number of user authentication attempts of all types.

Total User Authentication Succeeded

Total number of user authentications of all types that succeeded.

1216

IxLoad Tcl API Programming Guide

SSH

Total User Authentication Failed

Total number of user authentications of all types that failed.

NEWKEYS statistics

Total NEWKEYS Sent

Number of NEWKEYS messages sent by the client.

Total NEWKEYS Received

Number of NEWKEYS messages received by the client.

KEXINIT statistics

Total KEXINIT Sent

Number of KEXINIT messages sent by the client.

Total KEXINIT Received

Number of KEXINIT messages received by the client.

Service Request statistics

Total Service Request Sent

Total number of Service-Request messages sent by the client for all SSH protocols.

Total Service Accept Received

Number of Service-Accept messages received by the client.

Total Service Request Sent SSH-Userauth

Number of Service-Request messages sent by the client for the SSH user authentication protocol (SSH-USERAUTH).

Total Service Request Sent SSH-Connection

Number of Service-Request messages sent by the client for the SSH connection protocol (SSH-CONNECTION).

Total Service Accept Received SSH-Userauth

Number of Service-Accept messages received for the SSH user authentication protocol (SSH-USERAUTH).

Total Service Accept Received SSH-Connection

Number of Service-Accept messages received for the SSH connection protocol (SSH-CONNECTION).

Total Disconnect Received

Total number of Disconnect messages received for all SSH protocols.

IxLoad Tcl API Programming Guide

1217

SSH

Total Disconnect Received - SSHUserauth

Number of Disconnect messages received for the SSH user authentication protocol (SSH-USERAUTH).

Total Disconnect Received - SSHConnection

Number of Disconnect messages received for the SSH connection protocol (SSH-CONNECTION).

Channel Request statistics

Total Channel Open Sent

Number of Channel Open messages sent by the client.

Total Channel Open Confirmation Received

Number of Channel Open confirmation messages received by the client.

Total Channel Open Failure Received

Number of Channel Open failure messages received by the client.

Total Channel Data Sent

Number of Channel Data messages sent by the client.

Total Channel Extended Data Sent

Number of Channel Data messages received by the client.

Total Channel Request Sent

Number of Channel-Request messages sent.

Total Channel Suc- Number of Channel-Success messages sent. cess Received

Total Channel Fail- Number of Channel-Failure messages sent. ure Received

Total Channel EOF Number of Channel-EOF (End of File) messages sent. Sent

Total Channel Close Sent

Number of Channel-Close messages sent.

Total Channel Request Sent Shell

Number of shell-related Channel-Request messages sent.

1218

IxLoad Tcl API Programming Guide

SSH

Total Channel Request Sent Exec

Number of exec-related Channel-Request messages sent.

Total Channel Suc- Number of shell-related Channel-Success messages received. cess Received Shell

Total Channel Suc- Number of exec-related Channel-Success messages received. cess Received Exec

Total Channel Fail- Number of shell-related Channel-Failure messages received. ure Received Shell

Total Channel Fail- Number of exec-related Channel-Failure messages received. ure Received Exec

Total Channel EOF Total number of Channel-EOF messages received for all channels. Received

Total Channel Close Received

Total number of Channel-Close messages received for all channels.

Request / Response statistics

Total Request Sent

Total number of requests of all kinds sent.

Total Response Received

Total number of responses of all kinds received.

Total Failure

Total number of failures of kinds that occurred.

Throughput statistics

Total Bytes Sent Total number of bytes sent in SSH messages.

Total Bytes Received

Total number of bytes received in SSH messages.

Server Response Time statistics

IxLoad Tcl API Programming Guide

1219

SSH

Service Request Response Time

Average time elapsed, in ms, between the time the client sent a ServiceRequest message and the time it received a Service-Accept or Disconnect message in response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Userauth Request Response Time

Average time elapsed, in ms, between the time the client sent a UserAuthRequest message and the time it received a UserAuth-Success or UserAuth-Failure message in response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Channel Open Request Response Time

Average time elapsed, in ms, between the time the client sent a Channel-OpenRequest message and the time it received a Channel-Open-Confirmation or Channel-Open-Failure message in response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Channel Request Response Time

Average time elapsed, in ms, between the time the client sent a ChannelRequest message and the time it received a Channel-Success or Channel-Failure message in response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

NewKeys Response Time

Average time elapsed, in ms, between the time the client sent a KEXINIT message and the time it received a NEWKEYS message in response.
Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

! 30

1220

IxLoad Tcl API Programming Guide

Stateless Peer
This section describes the Stateless Peer Tcl API objects.
Stateless Peer Overview
The Stateless Peer API consists of the Stateless Peer Agent and its commands.

Objectives
The objectives (userObjective) you can set for the Stateless Peer are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers l peerCount (displays as Initiator Peer Count in the GUI) l connectionRate l concurrentConnections l throughputMbps l throughputKbps l throughputGbps l transactionRate

IxLoad Tcl API Programming Guide

1221

Stateless Peer
Stateless Peer Commands
This section lists the Application Replay Peer's commands.

1222

IxLoad Tcl API Programming Guide

Stateless Peer
Stateless Peer Agent
Stateless Peer Agent - create a Stateless Peer agent
SYNOPSIS
DESCRIPTION
A Stateless Peer agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time. userIpMapping Mapping between IP address usage and simulated users. Default = "1:1" enableConstraint If true, the constraintValue is applied. Default = false userObjectiveValue User objective value. Default = 100 constraintValue If enableConstraint is true, this option specifies the constraint that is applied. Default = 100 userObjectiveType Objective of the activity. Default = "peerCount" timeline Name of the timeline used for this activity. Default = $Timeline1

IxLoad Tcl API Programming Guide

1223

Stateless Peer

STATISTICS

EXAMPLE

set Activity_StatelessPeer1 [$myNetTraffic activityList.appendItem \

-protocolAndType

"stateless Peer" ]

set Timeline1 [::IxLoad new ixTimeline]

$Timeline1 config \

-rampUpValue

1\

-offlineTime

0\

-rampDownTime

20 \

-name

"Timeline1" \

-rampUpInterval

1\

-sustainTime

20 \

-standbyTime

0\

-timelineType

0\

-rampUpType

0

$Activity_StatelessPeer1 config \

-enable

true \

-name

"StatelessPeer1" \

-userIpMapping

"1:1" \

-enableConstraint

false \

-userObjectiveValue

100 \

-constraintValue

100 \

-userObjectiveType

"peerCount" \

-timeline

$Timeline1

SEE ALSO
ixNetTraffic

1224

IxLoad Tcl API Programming Guide

Stateless Peer

IxLoad Tcl API Programming Guide

1225

Stateless Peer
Stateless Peer Advanced Options
Advanced Options - configure the Stateless Peer's global options
SYNOPSIS DESCRIPTION
The Advanced Options object configures the Stateless Peer's global options.
SUBCOMMANDS
None.
OPTIONS
enableTOS If true, TOS bits are included in packets from this activity. Default = false. typeOfService If enableTOS is true, this option configure the TOS bit used. Default = "Best Effort (0x0)" parallelCmdCnt Number of commands to execute simultaneously. Default = 1.
STATISTICS
EXAMPLE
$Activity_StatelessPeer1 agent.pm.advOptions.config \ -enableTOSfalse \ -typeOfService"Best Effort (0x0)" \ -parallelCmdCnt1
SEE ALSO

1226

IxLoad Tcl API Programming Guide

Stateless Peer
Stateless Peer Protocol Flows
Protocol Flows - configure the Stateless Peer's commands
SYNOPSIS
$Activity_StatelessPeer1 agent.pm.protocolFlows.appendItem \ -id"LoopBeginCommand" \ -LoopCount5
DESCRIPTION
An option is added to the list of protocol flows using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None.
OPTIONS Options for LoopBeginCommand
id Name of the command to be executed. Default = "LoopBeginCommand". LoopCount Number of times to execute the loop. Default = 5.
Options for GenerateStream
id Name of the command to be executed . Default = "GenerateStream" remotePeer Name of the Stateless Peer that is the destination of the traffic. Default = "". destination Destination of traffic from this initiator. Default = "None".
l If the destination is a DUT, specify its IP address. l If the destination is another Stateless Peer activity, specify its name. minPacketFreq Minimum rate at which packets will be sent. Default = 100.

IxLoad Tcl API Programming Guide

1227

Stateless Peer
maxpacketFreq Maximum rate at which packets will be sent. Default = 100. streamDur Length of time, in seconds, to transmit the stream. Default = 20. destinationPort Port number on destination Stateless Peer to which traffic is sent. This can be a single port or a range (for example: 1024-2048). Default = 0. sourcePort Port number on the source Stateless Peer to which traffic is sent. Default = 0. minContentSize Minimum size of the IP payload. Default = 1024. maxContentSize Maximum size of the IP payload. Default = 1024.
Options for GenerateIPStream
id Name of the command to be executed . Default = "GenerateIPStream". remotePeer Name of the Stateless Peer that is the destination of the traffic. Default = "None". proto Protocol ID contained in traffic from the peer. The list of protocol IDs is at http://www.iana.org/assignments/protocol-numbers/. Default = 0. streamDur Length of time, in seconds, to transmit the stream. Default = 20. minPacketFreq Minimum rate at which packets will be sent. Default = 100. maxpacketFreq Maximum rate at which packets will be sent. Default = 100. minContentSize Minimum size of the IP payload. Default = 1024. maxContentSize

1228

IxLoad Tcl API Programming Guide

Maximum size of the IP payload. Default = 1024.
Options for LoopEndCommand
id Name of the command to be executed . Default = "LoopEndCommand".
Options for Think
id Name of the command to be executed . Default = "Think". minimumInterval Minimum length of time to think for. Default = 1000. minimumInterval Maximum length of time to think for. Default = 1000.
STATISTICS
EXAMPLE
$Activity_StatelessPeer1 agent.pm.protocolFlows.clear
$Activity_StatelessPeer1 agent.pm.protocolFlows.appendItem \ -id"LoopBeginCommand" \ -LoopCount5
$Activity_StatelessPeer1 agent.pm.protocolFlows.appendItem \ -id"GenerateStream" \ -remotePeer"None" \ -packetFreq100 \ -streamDur20 \ -destinationPort23 \ -sourcePort22 \ -contentSize1024

Stateless Peer

IxLoad Tcl API Programming Guide

1229

Stateless Peer
$Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.clear
$Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.appendItem \ -id"payloadHeaderRow" \ -streamIdentifierfalse \ -length1 \ -type1 \ -value"255"
$Activity_StatelessPeer1 agent.pm.protocolFlows.appendItem \ -id"LoopEndCommand"
$Activity_StatelessPeer1 agent.pm.protocolFlows.appendItem \ -id"Think" \ -minimumInterval1000 \ -maximumInterval1000
SEE ALSO
Stateless Peer Payload Header List
Protocol Header List - list of headers in the UDP packets.
SYNOPSIS
$Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.appendItem \ -id"payloadHeaderRow" \ -streamIdentifierfalse \ -length1 \ -type1 \ -value"255"

1230

IxLoad Tcl API Programming Guide

Stateless Peer

DESCRIPTION
payloadHeaderList defines the list of headers in the UDP packet. This list is of type ixConfigSequenceContainer; items are added to the list via the appendItem sub-command. (Default = {}). $Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.appendItem Before you add items to the list, you should clear it. For example: $Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.clear
SUBCOMMANDS
None.
OPTIONS
id Name of the header. Deafult = "payloadHeaderRow". streamIdentifier A boolean that indicates whether or not this header is used to identify the stream. At least one header row must have this flag set. Default = false. length length of the data in the value field. Min = 1, Max = 65535, Default = 1. type Type of the data in the value field. Default = 1. The choices are:

Choice Description

1

1 byte

2

2 bytes

3

3 bytes

4

4 bytes

5

Fixed binary

6

Fixed ascii

value Value of the header field. Default = "".

IxLoad Tcl API Programming Guide

1231

Stateless Peer
STATISTICS
EXAMPLE
$Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.clear
$Activity_StatelessPeer1 agent.pm.protocolFlows(1).payloadHeaderList.appendItem \ -id"payloadHeaderRow" \ -streamIdentifierfalse \ -length1 \ -type1 \ -value"255"
SEE ALSO
Stateless Peer Available TOS List
Available TOS List - list of TOS values in the UDP packets.
SYNOPSIS
$Activity_StatelessPeer1 agent.pm.availableTosList.appendItem \ -id"AvailableTypeOfService" \ -tos_value"Best Effort (0x0)"
DESCRIPTION
availableTosList defines the list of TOS values in the UDP packet. This list is of type ixConfigSequenceContainer; items are added to the list via the appendItem sub-command. (Default = {}). $Activity_StatelessPeer1 agent.pm.availableTosList.appendItem Before you add items to the list, you should clear it. For example: $Activity_StatelessPeer1 agent.pm.availableTosList.clear
SUBCOMMANDS
None.

1232

IxLoad Tcl API Programming Guide

OPTIONS
id Name of the TOS value. Default = "AvailableTypeOfService". tos_value TOS value. The possible TOS values are listed below. Default = "". "Best Effort (0x0)" "Class 1 (0x20)" "Class 2 (0x40)" "Class 3 (0x60)" "Class 4 (0x80)" "Express Forwarding (0xA0)" "Control (0xC0)"
STATISTICS
EXAMPLE
$Activity_StatelessPeer1 agent.pm.availableTosList.clear
$Activity_StatelessPeer1 agent.pm.availableTosList.appendItem \ -id"AvailableTypeOfService" \ -tos_value"Best Effort (0x0)"
SEE ALSO
! 31

Stateless Peer

IxLoad Tcl API Programming Guide

1233

This page intentionally left blank.

1234

IxLoad Tcl API Programming Guide

HTTP Streaming
This section describes the Streaming Client Tcl API objects.
API Overview
The IxLoad Streaming Client API consists of the Streaming Client Agent, and its commands.

Objectives
The objectives (userObjective) you can set for Streaming Clients are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers

IxLoad Tcl API Programming Guide

1235

HTTP Streaming

HTTP Streaming Client Agent

Streaming client agent - create a Streaming client agent

SYNOPSIS

set Activity_StreamingClient1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"Streaming Client" ]

DESCRIPTION

A Streaming client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcomfrom the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_StreamingClient1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"Streaming Client" ]

SEE ALSO
ixNetTraffic

1236

IxLoad Tcl API Programming Guide

HTTP Streaming

cmdList
cmdList - configure the list of commands that the Streaming client executes.
SYNOPSIS
$Activity_StreamingClient1 agent.pm.cmdList.appendItem \
DESCRIPTION
The cmdList object configures the list of commands that the Streaming client executes. To add a command to the list, you use the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the command list. It is customary to set all the options of the command list during the appendItem call. Each member of the list can be separately addressed and modified using the ixConfig subcommands. Before you add items to the command list, you should initialize the list by using the clear subcommand of the ixConfigSequenceContainer command.
SUBCOMMANDS

OPTIONS
See individual commands.
EXAMPLE
$Activity_StreamingClient1 agent.pm.cmdList.clear

$Activity_StreamingClient1 agent.pm.cmdList.appendItem \

-minimumInterval

10 \

-durationType

0\

-maximumInterval

10 \

-mediaUrl

"" \

-cmdName

"PLAY 4" \

-commandType

"Play" \

-serverAddr

""

IxLoad Tcl API Programming Guide

1237

HTTP Streaming
SEE ALSO

1238

IxLoad Tcl API Programming Guide

HTTP Streaming

Global options
Streaming client global config - configure the global properties of a streaming client agent
SYNOPSIS
$Activity_StreamingClient1 agent.pm.globalOptions.config
DESCRIPTION
This object configures the global properties of a Streaming client agent.
SUBCOMMANDS
None.
OPTIONS
protocol Streaming protocol.

Values

Description

0 (default) HTTP Live Streaming (HLS)"

1

Silverlight Streaming

enableTos Enables setting of TOS bits. Default = 0 tosValue Enables setting of TOS bits. Must be one of the settings defined in the availableTosList. Default = ''Best Effort (0x0)" enableEsm Enable sending of the MSS size. Default = 0 esm MSS size. Min = 64, max = 1460, default = 1460 enableVlanPriority

IxLoad Tcl API Programming Guide

1239

HTTP Streaming

Enables setting of the VLAN priority. Default = 0 vlanPriority VLAN priority. Min = 0, max = 7, default = 0 enableUserMonitoring Enables monitoring of a specific user. Default = 0 monitorUserId ID of the user to monitor. Default = 0 bufferingType Buffering scheme used.

Values

Description

0 (default) Infinite

1

Finite

bufferValue Size (in seconds) of the buffer for finite buffers. Min = 1, Default = 30

EXAMPLE

$Activity_StreamingClient1 agent.pm.globalOptions.config \

-enableTos

false \

-enableEsm

false \

-protocol

0\

-vlanPriority

0\

-monitorUserId

0\

-bufferValue

30 \

-tosValue

"Best Effort (0x0)" \

1240

IxLoad Tcl API Programming Guide

-enableUserMonitoring -bufferingType -esm -enableVlanPriority
SEE ALSO
ixNetTraffic

false \ 0\ 1460 \
false

HTTP Streaming

IxLoad Tcl API Programming Guide

1241

HTTP Streaming

HTTP settings
Streaming client HTTP settings - configure the HTTP properties of a streaming client agent
SYNOPSIS
$Activity_StreamingClient1 agent.pm.httpSettings.config
DESCRIPTION
This object configures the HTTP properties of a Streaming client agent.
SUBCOMMANDS
None.
OPTIONS
httpVersion HTTP version.

Value

Description

0

HTTP 1.0

1 (default) HTTP 1.1

httpKeepalive Enables HTTP keep alive. Default = 0 enableTransactionsPerConnection Enables multiple transactions per HTTP connection.

Value

Description

0 (default) Maximum possible

1

Up to number specified in httpTransactionsPerConnection

httpTransactionsPerConnection Number of transactions per HTTP connection. Min = 1, default = 1 enableProxy

1242

IxLoad Tcl API Programming Guide

Enables use of an HTTP proxy. Default = 0 proxyIP HTTP proxy host name or IP address. Maximum length = 255. Default = 0.0.0.0 proxyTCPPort HTTP proxy listening port. Default = 80 playerEmulation Type of player emulated by Streaming client.

Value

Description

0 (default) Safari

EXAMPLE

$Activity_StreamingClient1 agent.pm.httpSettings.config \

-enableProxy

false \

-enableTransactionsPerConnection

0\

-proxyTCPPort

"80" \

-httpTransactionsPerConnection

1\

-playerEmulation

0\

-httpKeepalive

false \

-proxyIP

"0.0.0.0" \

-httpVersion

1

SEE ALSO
ixNetTraffic

HTTP Streaming

IxLoad Tcl API Programming Guide

1243

HTTP Streaming

availableTosList

availableTosList - configure the list of ToS levels for a Streaming client.

SYNOPSIS

$Activity_StreamingClient1 agent.pm.availableTosList.appendItem \

-id

"AvailableTypeOfService" \

-tos_value

"Best Effort (0x0)"

DESCRIPTION
The availableTosList object configures the list of available ToS levels.
To add a ToS level to the list, you use the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the availableTosList. It is customary to set all the options of the availableTosList during the appendItem call.
Each member of the list can be separately addressed and modified using the ixConfig subcommands.
Before you add items to the availableTosList, you should initialize the list by using the clear subcommand of the ixConfigSequenceContainer command.

SUBCOMMANDS

OPTIONS
id ToS list name. (Default = "AvailableTypeOfService"). tos_value ToS level to be added to the list. Default = "" (null). Choices: "Best Effort (0x0)" "Class 1 (0x20)" "Class 2 (0x40)" "Class 3 (0x60)" "Class 4 (0x80)" "Express Forwarding (0xA0)"

1244

IxLoad Tcl API Programming Guide

"Control (0xC0)"

STATISTICS

EXAMPLE

$Activity_StreamingClient1 agent.pm.availableTosList.appendItem \

-id

"AvailableTypeOfService" \

-tos_value

"Best Effort (0x0)"

SEE ALSO

HTTP Streaming

IxLoad Tcl API Programming Guide

1245

HTTP Streaming

Streaming Client Statistics
This section lists the statistics for HTTP Streaming Clients. The test results are available from the location defined on the User Directories window. See User Directories. For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

HTTP Statistics
The table below lists the HTTP statistics for clients.

Statistic HTTP Bytes HTTP Bytes Received
HTTP Bytes Sent
HTTP Connect Time (us) HTTP Connection Attempt Rate HTTP Connection Attempts

Description
Amount of HTTP data sent and received by the clients, in bytes.
Number of HTTP bytes received by the clients. If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic due to increases caused by retransmits. SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not (HTTP only).
Number of HTTP bytes transmitted by the clients. If you probe the network link with a sniffer, this statistic is not the same as the total amount of TCP payload that appears on the link. The total amount of TCP payload can be greater than this statistic (increased by retransmits) or less than this statistic (decreased by broken or reset connections). SSL-encrypted payload data is included in this statistic but SSL handshake overhead is not (HTTP only).
Average time elapsed between the time the client sends a SYN packet and the time it receives the SYN/ACK.
Rate at which the client attempted to establish HTTP connections.
Total number of connections attempted.

1246

IxLoad Tcl API Programming Guide

HTTP Streaming

HTTP Con- Rate at which the client established HTTP connections. nection Rate

HTTP Connections

Total number of connections established by the clients.

HTTP Content Bytes Received

Number of bytes of HTTP data received.

HTTP Content Bytes Sent

Number of bytes of HTTP data sent.

HTTP Intermediate Responses Received (1xx)

Number of 100-series (Informational) responses received. 100-series responses indicate a provisional response, consisting only of the StatusLine and optional headers, and terminated by an empty line. Refer to RFC 2616, Section 10, for a full description.

HTTP Requests Failed

Number of HTTP requests that failed for any reason. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (400)

Bad Request. Number of requests that failed due to a syntax error in the URL. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (401)

Unauthorized. Number of requests that failed due to because the server did not receive the correct user name or password from the browser. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (403)

Forbidden. Number of requests that failed due to because the name or password supplied by the browser are incorrect. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (404)

Not Found. Number of requests that failed because requested object is not stored on the server on the path supplied. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (407)

Proxy Authentication Required. Number of requests that failed because access to the URL requires authentication with a proxy server.

HTTP Requests Failed (408)

Timeout. Number of requests that failed due to communications between the client and server taking too long. The statistics show the number of requests for each URL (page).

IxLoad Tcl API Programming Guide

1247

HTTP Streaming

HTTP Request Precondition Failed (412)

The precondition given in one or more of the request-header fields evaluated to false when it was tested on the server. This response code allows the client to place preconditions on the current resource metainformation (header field data) and thus prevent the requested method from being applied to a resource other than the one intended.

HTTP Requests Failed (4xx other)

Number of HTTP requests that failed for reasons other than a Bad Request (400), Unauthorized (401), Forbidden (403), Not Found (404), Proxy Authentication Required (407), or Timeout (408) error. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (4xx)

Number of 4xx-range responses received by the clients in response to an HTTP request. The statistics show the number of requests for each URL (page).
408 responses are counted separately by the HTTP Session Timeout (408) statistic and may or may not also be included in the HTTP Requests Failed (4xx) count. See the description of HTTP Session Timeout (408) for more information.

HTTP Requests Failed (505)

HTTP Version not Supported. Number of requests that failed because the server does not support the HTTP version used by the client. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (5xx other)

Number of requests that failed for reasons other than an HTTP version mis-match (505). The statistics show the number of requests for each URL (page).

HTTP Requests Failed (5xx)

Number of HTTP requests that failed due to lack of resources on the server (HTTP 500-series errors). This statistic is only incremented if the client had issued a request to the server before receiving the 5xx response. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Aborted)

Number of HTTP requests that ended prematurely due to events outside HTTP or TCP. For example, if any HTTP requests are pending when the Ramp-Down period ends, those requests are aborted by IxLoad. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (Bad Header)

Number of HTTP requests that failed due to a defective HTTP header. The statistics show the number of requests for each URL (page).

HTTP Requests Failed (other)

Number of requests that failed that could not be classified.

1248

IxLoad Tcl API Programming Guide

HTTP Streaming

HTTP Requests Failed (Read)
HTTP Requests Failed (Timeout)
HTTP Requests Failed (Write)
HTTP Requests Sent
HTTP Requests Successful
HTTP Requests Successful (2xx)
HTTP Requests Successful (301)
HTTP Requests Successful (302)
HTTP Requests Successful (303)

Number of HTTP requests that failed due to a socket read error.The statistics show the number of requests for each URL (page).
Number of HTTP requests that failed because the clients did not receive a response within 600 seconds. The statistics show the number of requests for each URL (page).
Number of HTTP requests that failed due to a socket write error. The statistics show the number of requests for each URL (page).
Number of HTTP requests sent by the clients. The statistics show the number of requests for each URL.
Number of positive HTTP responses (2xx- and 3xx-range responses) received by the clients. The statistics show the number of requests for each URL.
Number of 200-series (Successful) responses received. 200-series responses indicate that the client's request was successfully received, understood, and accepted.
Number of 301 (Moved Permanently) responses received. 301 responses indicate that the requested resource has been assigned a new permanent URI and any future references to this resource should use one of the returned URIs. Number of 302 (Found) responses received. 302 responses indicate that the requested resource resides temporarily under a different URI.
Number of 303 (See Other) responses received. 303 responses indicate that the response to the request can be found under a different URI and should be retrieved using a GET method on that resource.

IxLoad Tcl API Programming Guide

1249

HTTP Streaming

HTTP Requests Successful (307)

Number of 307 (Temporary Redirect) responses received. 307 responses indicate that the requested resource resides temporarily under a different URI.

HTTP Requests Successful (3xx)

Number of 300-series (Redirection) responses received. 300-series responses indicate that further action needs to be taken by the user agent in order to fulfill the request.

HTTP Session Timeouts (408)

Number of HTTP 408 responses received. This statistic includes all 408 responses received regardless of whether they were received for a pending HTTP request or not.
IxLoad counts 408 responses differently depending on whether or not a client has a pending HTTP request:
l If a client has an HTTP request pending and it receives a 408 response, IxLoad increments the HTTP Received 408, HTTP Requests Failed (4xx), and HTTP Requests Failed statistics.
If a client does not have an HTTP request pending and it receives a 408 response, IxLoad only increments the HTTP Received 408 statistic.

HTTP Sessions Rejected (503)

Service Unavailable. Number of HTTP sessions that could not be established due to lack of resources on the server.

HTTP Throughput

Rate at which the client sent and received HTTP traffic.

HTTP Time To First Byte (us)

Average time elapsed before clients received the first byte of an HTTP response.

HTTP Time To Last Byte (us)

Average time elapsed before clients received the last byte of an HTTP response.

HTTP Trans- Rate at which the client completed HTTP transactions. action Rate

HTTP Trans- Total number of transactions completed by the clients. actions

HTTP Transactions Active

Number of HTTP transactions transferring HTTP commands or data.

1250

IxLoad Tcl API Programming Guide

! 32

HTTP Streaming

IxLoad Tcl API Programming Guide

1251

This page intentionally left blank.

1252

IxLoad Tcl API Programming Guide

Telnet
This section describes the Telnet Tcl API objects.

API Overview
Telnet protocol commands are organized as a simple structure. l Telnet Client Agent l Telnet Client Basic Options l Telnet Client Advanced Options l Telnet Client Command l Telnet Server Agent l Telnet Server Agent l Telnet Server Basic Options l Telnet Server Advanced Options
Objectives
The objectives (userObjective) you can set for Telnet are listed below. Test objectives are set in the ixTimeline object.
l connectionRate l transactionRate l simulatedUsers l concurrentConnections
Telnet Client Agent
The Telnet Client Agent defines a client performing Telnet commands. Refer to Telnet Client Agent for a full description of this command. The important options and subobjects of this command are listed below.

IxLoad Tcl API Programming Guide

1253

Telnet

Option Usage enable Enables the use of the Telnet client agent. name The name associated with the client agent.

Option basic

Usage Basic Telnet client options, as described in - Telnet Client Basic Options.

advanced Advanced Telnet client options, as described in - Telnet Client Advanced Options
commands A list of Telnet commands to be executed, as described in - Telnet Client Command.

Telnet Client Basic Options
This object holds the basic options associated with a Telnet client. Refer to Telnet Client Basic Options for a full description of this command. The important options of this command are listed below.

Option

Usage

expectTimeout Time to wait for any command to complete.

comandPrompt The default value of the command prompt.

enableOptions Enables option negotiation.

Telnet Client Advanced Options
The Telnet client advanced options control network level operation of the client. Refer to Telnet Client Advanced Options for a full description of this command. The important options of this command are listed below.

1254

IxLoad Tcl API Programming Guide

Option

Usage

enableEsm Enable the use of ESM.

esm

The ESM value.

Telnet

Telnet Client Command
The Telnet command object specifies a single Telnet command to be executed by the client. Refer to Telnet Client Command for a full description of this comThe important options of this command are listed below.

Command Option id = OpenCommand
id = LoginCommand id = PasswordCommand id = SendCommand id = ThinkCommand id = Exit

Related Option serverIP
expect send expect send

Usage The IP name or address of the Telnet server to login to. The string to wait for after sending the command(s). The user name to send. The string to wait for after sending the command. The password to send.

expect

The string to wait for after sending the command.

send

A string to be sent.

expect

The string to wait for after sending the command.

minimumInterval The sleep min value.

maximumInterval The sleep max value.

send

The string to be sent to end the session.

IxLoad Tcl API Programming Guide

1255

Telnet

Telnet Server Agent
The Telnet Server Agent defines a server performing Telnet commands. Refer to Telnet Server Agent for a full description of this command. The important options and subobjects of this command are listed below.
Option Usage enable Enables the use of the Telnet server agent. name The name associated with the server agent.

Option basic

Usage Basic Telnet server options, as described in - Telnet Server Basic Options.

advanced Advanced Telnet server options, as described in - Telnet Server Advanced Options

Telnet Server Basic Options
This object holds the basic options associated with a Telnet server. Refer to Telnet Server Basic Options for a full description of this command. The imporoptions of this command are listed below.

Option

Usage

commandPrompt The command prompt to send to clients.

listenPort

The port that the Telnet server listens on.

closeCommand The value of the exit command expected from the client.

supressGoAhead Suppress the `go ahead' command.

echo

Causes the server to echo received characters.

linemode

Causes the line-mode option to be negotiated with the client.

1256

IxLoad Tcl API Programming Guide

Telnet

Telnet Server Advanced Options
The Telnet server advanced options control network level operation of the server. Refer to Telnet Client Advanced Options for a full description of this command. The important options of this command are:

Option

Usage

enableEsm Enable the use of ESM.

esm

The ESM value.

IxLoad Tcl API Programming Guide

1257

Telnet
Telnet Client Agent
Telnet Client Agent - create a Telnet client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TelnetClient1 [$Traffic1_Network1 activityList.appendItem $Activity_TelnetClient1 agent.config
DESCRIPTION
A Telnet client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None.
OPTIONS
enable Enables the use of this agent. (Default = true). implicitLoopCheck If this option is enabled (1), then the client progresses through the command list repeatedly until the test's sustain time. If the option is disabled (0), then the client will progress through the command list only once, and then go idle. (Default = 0). name The name associated with this object, which must be set at object creation time.
STATISTICS
EXAMPLE
set Traffic1_Network1 [::IxLoad new ixNetTraffic]################################################## Activity TelnetClient1 of NetTraffic Traffic1@Network1#################################################set Activity_TelnetClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "Telnet Client" ]################################################## Timeline1 for activities TelnetClient1#################################################set Timeline1 [::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1258

IxLoad Tcl API Programming Guide

Telnet

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"$Activity_TelnetClient1 con-

fig \-enable

true \-name

"TelnetClient1" \-enableConstraint

false \-userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"simulatedUsers" \-timeline

$Timeline1$Activity_Tel-

netClient1 agent.config \-enable

true \-name

"TelnetClient1"$Activity_TelnetClient1 agent.pm.advanced.config \-enableTOS

true \-esm

1460 \-enableEsm

true \-implicitLoopCheck

true \-typeOfService

"Best Effort (0x0)"$Activity_TelnetClient1 agent.pm.basic.config \-commandPrompt

"#" \-expectTimeout

120 \-enableOptions

true$Activity_TelnetClient1 agent.pm.ipHistory.clear$Activity_TelnetClient1 agent.p-

m.ipHistory.appendItem \-id

"Ip" \-name

""$Activity_TelnetClient1 agent.pm.commands.clear$Activity_TelnetClient1 agent.p-

m.commands.appendItem \-id

"Tel-

netSessionCommand" \-userName

"root\[00-\]" \-

exitCommand

"exit" \-loginPrompt

"login:" \-send

"ls" \-commandPrompt

"{Default Command Prompt}" \-passwordPrompt

"Password:" \-

symServerIP

"Traffic2_TelnetServer1:23" \-expect

"{Default Command Prompt}" \-password

"password\[00-

\]"$Activity_TelnetClient1 agent.pm.availableTosList.clear$Activity_TelnetClient1

agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Best Effort

(0x0)"$Activity_TelnetClient1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 1

(0x20)"$Activity_TelnetClient1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 2

(0x40)"$Activity_TelnetClient1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 3

(0x60)"$Activity_TelnetClient1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 4

(0x80)"$Activity_TelnetClient1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Express For-

warding (0xA0)"$Activity_TelnetClient1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Control (0xC0)"

SEE ALSO

Telnet Client Basic Options

Telnet Client Advanced Options

Telnet Client Command

IxLoad Tcl API Programming Guide

1259

Telnet ixNetTraffic

1260

IxLoad Tcl API Programming Guide

Telnet

Telnet Client Basic Options
Telnet Client Basic Options - configure a Telnet client's basic options

SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TelnetClient1 [$Traffic1_Network1 activityList.appendItem $Activity_TelnetClient1 agent.pm.basic.config

DESCRIPTION
Telnet basic options are set through the pm.basic option of the Telnet Client Agent object.

SUBCOMMANDS
None.

OPTIONS
commandPrompt The default value of the command prompt. This is referenced in - Telnet Client Command expect option as {Default Command Prompt}. (Default = "#"). enableOptions If true, enables option negotiation with the Telnet server. (Default = 3). expectTimeout The time, in seconds, to wait for receipt of the expected response. (Default = 120).

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity Tel-

netClient1 of NetTraffic

Traffic1@Network1#################################################set Activity_Tel-

netClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"Telnet Client" ]$Activity_TelnetClient1 agent.pm.basic.config \-commandPrompt

"#" \-expectTimeout

120 \-enableOptions

true

SEE ALSO

Telnet Client Agent

IxLoad Tcl API Programming Guide

1261

Telnet

Telnet Client Advanced Options
Telnet Client Advanced Options - configure a Telnet client's advanced options

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TelnetClient1 [$Traffic1_Network1 activityList.appendItem $Activity_TelnetClient1 agent.pm.advanced.config options...

DESCRIPTION
Telnet advanced options are set through the pm.advanced option of the Telnet Client Agent object.

SUBCOMMANDS
None.

OPTIONS
enableEsm If true, enables the use of ESM. (Default = false). esm If enableEsm is true, the ESM value to negotiate with. (Default = 1,460).

EXAMPLE

$Activity_TelnetClient1 agent.pm.advanced.config \-enableTOS

true \-esm

1460 \-enableEsm

true \-implicitLoopCheck

true \-typeOfService

"Best Effort (0x0)"

SEE ALSO

Telnet Client Agent

1262

IxLoad Tcl API Programming Guide

Telnet

Telnet Client Command
Telnet Client Command - configure a command that the Telnet client will execute
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TelnetClient1 [$Traffic1_Network1 activityList.appendItem $Activity_TelnetClient1 agent.pm.commands.appendItem
DESCRIPTION
A Telnet command is added to the pm.commands option of the Telnet Client Agent object using its appendItem.
SUBCOMMANDS
None.
OPTIONS
id Specifies the type of command defined. The remaining options in this command are dependent on this setting. One of:

Option

Usage

OpenCommand

Open a connection to a Telnet server.

LoginCommand

Login to the Telnet server, sending the user name.

PasswordCommand Send a password.

SendCommand

Send an arbitrary string.

ThinkCommand

Wait for a random period of time within a specirange.

ExitCommand

Close the session with the Telnet server.

"{LoopBegin}"

An IxLoad command that you can add to the Command List to cause the commands between it and the {Loop End} to be executed a specified number of times.

"{LoopEnd}"

Ends the list of commands that will be executed by the preceding {Loop Begin} command.

IxLoad Tcl API Programming Guide

1263

Telnet

Options for id = OpenCommand

expect The expected response from the command. (Default = "login:"). serverIP The name or IP address of the Telnet server or Telnet server activity. (Default = "").

Options for id = LoginCommand

expect

The expected response from the command. (Default = "Password::").

send

The login name to send to the Telnet server. (Default = "root").

You can insert sequence generators into this field to create unique entries autoFor example:

$clnt_traffic agentList(0).pm.commands.appendItem \

-id

"LoginCommand" \

-send

"kaushik\[00-\]"

\

-expect

"Password:"

For information on how to use sequence generators, see the AutoSequence Generators appendix.

Options for id = PasswordCommand

expect

The expected response from the command. The default value of this option may be referenced by using the text {Default Command Prompt}.

send

The password to send to the Telnet server. (Default = "root").

You can insert sequence generators into this field to create unique entries automatically.

$clnt_traffic agentList(0).pm.commands.appendItem \

-id

wordCommand" \

-send

"124444\[a-\]"

\

expect

"$"

"Pass-

For information on how to use sequence generators, see the AutoSequence Generators appendix.

Options for id = SendCommand
expect The expected response from the command. The default value of this option may be referenced by using the text {Default Command Prompt}. send The string to send to the Telnet server. (Default = "root").

1264

IxLoad Tcl API Programming Guide

Telnet

Options for id = ThinkCommand
maxInterval The upper limit of a randomly chosen sleep, expressed in microseconds. (Default = 1,000) minInterval The lower limit of a randomly chosen sleep, expressed in microseconds. (Default = 1,000).

Options for id = ExitCommand
send The string to send to the Telnet server to exit the Telnet session. (Default = "exit").

EXAMPLE

$Activity_TelnetClient1 agent.pm.commands.appendItem \-id

"TelnetSessionCommand" \-userName

"root\[00-\]" \-exitCommand

"exit" \-loginPrompt

"login:" \-send

"ls"

\-commandPrompt

"{Default Command Prompt}" \-passwordPrompt

"Password:" \-symServerIP

"Traffic2_TelnetServer1:23" \-expect

"{Default Command Prompt}" \-password

"password\[00-\]"

SEE ALSO

Telnet Client Agent

IxLoad Tcl API Programming Guide

1265

Telnet

Telnet Server Agent
Telnet Server Agent - create a Telnet server
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_TelnetServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_TelnetServer1 agent.config
DESCRIPTION
A Telnet server agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable
Enables the use of this action. (Default = true). name
The name associated with this object, which must be set at object creation time.
STATISTICS
Note that a number of login failures may be visible in the statistics. These are caused by aborted logins at the time of test ramp-down.

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity Tel-

netServer1 of NetTraffic

Traffic2@Network2#################################################set Activity_Tel-

netServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"Telnet Server" ]set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]$Activity_

TelnetServer1 config \-enable

true \-name

"TelnetServer1" \-timeline

$_Match_Longest_$Activity_

1266

IxLoad Tcl API Programming Guide

Telnet

TelnetServer1 agent.config \-enable

true \-name

"TelnetServer1"$Activity_TelnetServer1 agent.pm.advanced.config \-enableTOS

true \-esm

1460 \-enableEsm

true \-typeOfService

"Best Effort (0x0)"$Activity_Tel-

netServer1 agent.pm.basic.config \-linemode

false \-

listenPort

"23" \-echo

true \-commandPrompt

"#" \-suppressGoAhead

true \-closeCommand

"exit"$Activity_TelnetServer1 agent.p-

m.availableTosList.clear$Activity_TelnetServer1 agent.pm.availableTosList.appendItem

\-id

"AvailableTypeOfService" \-tos_value

"Best Effort (0x0)"$Activity_TelnetServer1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 1

(0x20)"$Activity_TelnetServer1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 2 (0x40)"

$Activity_TelnetServer1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 3

(0x60)"$Activity_TelnetServer1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Class 4

(0x80)"$Activity_TelnetServer1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Express For-

warding (0xA0)"$Activity_TelnetServer1 agent.pm.availableTosList.appendItem \-id

"AvailableTypeOfService" \-tos_value

"Control (0xC0)"

SEE ALSO

Telnet Server Basic Options

Telnet Server Advanced Options

IxLoad Tcl API Programming Guide

1267

Telnet
Telnet Server Basic Options
Telnet Server Basic Options - configure a Telnet server' basic options
SYNOPSIS
set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_TelnetServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_TelnetServer1 agent.pm.basic.config
DESCRIPTION
Telnet basic options are set through the pm.basic option of the Telnet Server Agent object (see the example below).
SUBCOMMANDS
None.
OPTIONS
closeCommand The value of the close command expected from the client. (Default = "exit"). commandPrompt The command prompt to send to clients. (Default = "#"). echo Causes the server to echo received characters. (Default = true). linemode Causes the line-mode option to be negotiated with the client. (Default = false). listenPort Port that the Telnet server listens on. To specify multiple ports, separate the port numbers with commas (,). You can specify up to 50 listening ports. (Default = 23). suppressGoAhead If true, suppress the `go ahead' command. (Default = true).
EXAMPLE
set Traffic2_Network2 [::IxLoad new ixNetTraffic]################################################## Activity TelnetServer1 of NetTraffic Traffic2@Network2#################################################set Activity_TelnetServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

1268

IxLoad Tcl API Programming Guide

Telnet

"Telnet Server" ]$Activity_TelnetServer1 agent.pm.basic.config \-linemode

false \-listenPort

"23" \-echo

true \-commandPrompt

"#" \-suppressGoAhead

true \-closeCommand

"exit"

SEE ALSO

Telnet Server Agent

IxLoad Tcl API Programming Guide

1269

Telnet

Telnet Server Advanced Options
Telnet Server Advanced Options - configure a Telnet server's advanced options

SYNOPSIS

set Traffic2_Network2 [::IxLoad new ixNetTraffic] set Activity_TelnetServer1 [$Traffic2_Network2 activityList.appendItem options...] $Activity_TelnetServer1 agent.pm.advanced.config

DESCRIPTION
Telnet advanced options are set through the pm.advanced option of the Telnet Server Agent object (see the example below).

SUBCOMMANDS
None.

OPTIONS
enableEsm If true, enables the use of ESM. (Default = false). esm If enableEsm is true, the ESM value to negotiate with. (Default = 1,460).

EXAMPLE

set Traffic2_Network2 [::IxLoad new

ixNetTraffic]################################################## Activity Tel-

netServer1 of NetTraffic

Traffic2@Network2#################################################set Activity_Tel-

netServer1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"Telnet Server" ]$Activity_TelnetServer1 agent.pm.advanced.config \-enableTOS

true \-esm

1460 \-enableEsm

true \-typeOfService

"Best Effort (0x0)"

SEE ALSO
Telnet Server Agent

1270

IxLoad Tcl API Programming Guide

Telnet
Telnet Statistics
For the Telnet statistics, see the following sections. Telnet Client Statistics Telnet Server Statistics For TCP statistics, see TCP, Run State, and Curve Segment Statistics. Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it. The test results are available from the location defined on the User Directories window. See User Directories.

IxLoad Tcl API Programming Guide

1271

Telnet

Telnet Client Statistics
The table below describes the Telnet client statistics.

Statistic

Description

Connection Statistics

Telnet Active Connections

Number of active Telnet connections. A connection refers to the TCP connection established to start a Telnet session.

Telnet Total Con- Number Telnet connections requested by the client. nections Requested

Telnet Total Connections Succeeded

Number of Telnet connections established by the client.

Telnet Total Connections Failed

Number of failed attempts to establish Telnet connections.

Telnet Total Connections Latency

Average amount of time required to establish a Telnet connection. Note for Tcl API users: This is a weighted statistic. If you are using this statistic in a Tcl script, use the kWeightedAverage aggregation type.

Telnet Total Sessions Completed

Total number of Telnet sessions in which all the Telnet commands in the session completed successfully.
A session refers to a sequence of Telnet commands that that begins with a Telnet OPEN command, may be followed by one or more Telnet commands, and ends by being terminated with a Telnet EXIT command.
If the each command in the sequence is completed successfully, the session is counted as being completed successfully.

Telnet Total Sessions Not Completed

Total number of Telnet sessions that were established but in which one or more commands did not complete successfully.

Telnet Average Ses- Average Telnet session duration.

sion Length

Note for Tcl API users: This is a weighted statistic. If you are using this stat-

istic in a Tcl script, use the kWeightedAverage aggregation type.

Login Statistics

Telnet Total Login Prompts Received

Total number of login prompts received.

1272

IxLoad Tcl API Programming Guide

Telnet

Telnet Total Login Prompts Not Received

Total number instances in which the client connected to the server but did not receive a login prompt in return.

Telnet Total Password Prompts Received

Total number of password prompts received.

Telnet Total Password Prompts Not Received

Total number of instances in which the client sent a user name to the server but did not receive a password prompt in return.

Telnet Total Logins Total number of logins sent by the clients. Sent

Telnet Total Logins Total number of successful logins by the clients. Succeeded

Telnet Total Logins Total number of login attempts that failed. Failed

Telnet Total Logins Total number of login attempts that failed because a response was not Failed (Timed Out) received within the timeout period.

Telnet Total Logins Total number of login attempts that failed for reasons other than a timeout. Failed (Other)

Telnet Total Passwords Sent

Total number of passwords sent by the client.

Telnet Total Passwords Succeeded

Total number of passwords that succeeded.

Telnet Total Passwords Failed

Total number of passwords that failed.

Telnet Total Passwords Failed (Timed Out)

Total number of passwords that failed because no response was received within the timeout period.

Telnet Total Passwords Failed (Other)

Total number of passwords that failed for reasons other than a timeout.

Transaction Statistics

IxLoad Tcl API Programming Guide

1273

Telnet

Telnet Total Transactions

Total number of Telnet transactions completed. One transaction consists of a LOGIN, PASSWORD, SEND, or EXIT command and the response to it.

Telnet Total Commands Sent

Total number of SEND commands sent by the client.

Telnet Total Commands Succeeded

Number of SEND commands during a Telnet session that succeeded. IxLoad considers a command to be successful if the client sent a SEND command to the server and the server returned the expected string.

Telnet Total Commands Failed

Number of SEND commands that failed. IxLoad considers a command to have failed if the client sent a SEND command to the server and the server did not return the expected string.

Telnet Total Commands Failed (Timed Out)

Total number of SEND commands that failed because no response was received within the timeout period.

Telnet Total Commands Failed (Other)

Total number of SEND commands that failed for reasons other than a timeout.

Bytes Statistics

Telnet Total Bytes Sent

Total number of bytes sent over Telnet connections.

Telnet Total Bytes Received

Total number of bytes received by the client over Telnet.

Telnet Total Bytes Total number of bytes sent and received by the client over Telnet. Sent And Received

Telnet Total Throughput

Total throughput over Telnet.

Echo Options Statistics

Telnet Total Echo Options Do Received

Number of requests received from the server to begin using the Echo option.

Telnet Total Echo Options Dont Received

Number of requests received from the server to stop using the Echo option.

1274

IxLoad Tcl API Programming Guide

Telnet

Telnet Total Echo Options Will Received

Number of responses received from the server agreeing to use the Echo option.

Telnet Total Echo Options Wont Received

Number of responses received from the server rejecting use of the Echo option.

Telnet Total Echo Options Do Sent

Number of requests sent to the server to begin using the Echo option.

Telnet Total Echo Options Dont Sent

Number of requests sent to the server to stop using the Echo option.

Telnet Total Echo Options Will Sent

Number of responses sent by the client agreeing to use the Echo option.

Telnet Total Echo Number of responses sent by the client rejecting use of the Echo option. Options Wont Sent

Suppress Go Ahead Options

Telnet Total Suppress Go Ahead Options Do Received

Number of requests received from the server to begin using the Go Ahead option.

Telnet Total Suppress Go Ahead Options Dont Received

Number of requests received from the server to stop using the Go Ahead option.

Telnet Total Suppress Go Ahead Options Will Received

Number of responses received from the server agreeing to use the Go Ahead option.

Telnet Total Suppress Go Ahead Options Wont Received

Number of responses received from the server rejecting use of the Go Ahead option.

Telnet Total Suppress Go Ahead Options Do Sent

Number of requests sent to the server to begin using the Go Ahead option.

IxLoad Tcl API Programming Guide

1275

Telnet

Telnet Total Suppress Go Ahead Options Don't Sent

Number of requests sent to the server to stop using the Go Ahead option.

Telnet Total Suppress Go Ahead Options Will Sent

Number of responses sent by the client agreeing to use the Go Ahead option.

Telnet Total Suppress Go Ahead Options Wont Sent

Number of responses sent by the client rejecting use of the Go Ahead option.

Line Mode Options Statistics

Telnet Total Line Mode Options Do Received

Number of requests received from the server to begin using the Line Mode option.

Telnet Total Line Mode Options Dont Received

Number of requests received from the server to stop using the Line Mode option.

Telnet Total Line Mode Options Will Received

Number of responses received from the server agreeing to use the Line Mode option.

Telnet Total Line Mode Options Wont Received

Number of responses received from the server rejecting use of the Line Mode option.

Telnet Total Line Mode Options Do Sent

Number of requests sent to the server to begin using the Line Mode option.

Telnet Total Line Mode Options Dont Sent

Number of requests sent to the server to stop using the Line Mode option.

Telnet Total Line Mode Options Will Sent

Number of responses sent by the client agreeing to use the Line Mode option.

Telnet Total Line Mode Options Wont Sent

Number of responses sent by the client rejecting use of the Line Mode option.

Sub-Options Statistics

1276

IxLoad Tcl API Programming Guide

Telnet

Telnet Total Suboptions Received

Total number of Telnet sub-options received by the client.

Telnet Total Suboptions Sent

Total number of Telnet sub-options sent by the client.

Line Mode Sub-Options Edit Mask Statistics

Telnet Total Line Mode Suboptions Edit Mask Received

Total number of Telnet sub-option edit masks received by the client.

Telnet Total Line Mode Suboptions Edit Mask Sent

Total number of Telnet sub-option edit masks sent by the client.

IxLoad Tcl API Programming Guide

1277

Telnet

Telnet Server Statistics
The table below describes the Telnet server statistics.

Statistic

Description

Connection Statistics

Telnet Active Connections

Number of Telnet connections up. A connection refers to the TCP connection established to start a Telnet session.

Telnet Total Accepted Connections

Total number of requests for Telnet connections accepted by the server.

Username Statistics

Telnet Login Prompts Sent

Number of login prompts sent by the server to the clients.

Telnet UserNames Succeeded

Number of user names accepted by the server.

Telnet UserNames Failed Number of instances in which the server did not receive a user name for any reason.

Telnet UserNames Failed Number of instances in which the server did not receive a user name

(Timed Out)

within the timeout period.

Telnet UserNames Failed Number of instances in which the server did not receive user names for

(Other)

reasons other than a timeout.

Password Statistics

Telnet Password Prompts Number of password prompts sent by the server to the clients. Sent

Telnet Passwords Succeeded

Number of passwords accepted by the server.

Telnet Passwords Failed Number of passwords rejected for any reason by the server.

Telnet Passwords Failed (Timed Out)

Number of passwords rejected by the server because they were not received within the specified time.

Telnet Passwords Failed (Other)

Number of passwords rejected by the server for reasons other than a timeout.

1278

IxLoad Tcl API Programming Guide

Telnet

Login Statistics

Telnet Logins Succeeded

Number of successful logins to the server. A successful login occurs when the server received a user name and password from the client and then returned a command prompt.

Telnet Logins Failed

Number of attempts to login to the server that failed.

Transaction Statistics

Telnet Commands Processed

Total number of SEND commands received over Telnet connections and executed on the server.

Byte Statistics

Telnet Total Bytes Sent Total number of bytes sent over Telnet connections by the server.

Telnet Total Bytes Received

Total number of bytes received over Telnet connections by the server.

Telnet Total Bytes Sent And Received

Total number of bytes sent and received over Telnet by the server.

Telnet Total Throughput Total Telnet throughput.

Generic Option Statistics

Telnet Option Negotiation Total number of attempts to negotiate Telnet options that failed for any

Failed

reason.

Telnet Option Negotiation Total number of attempts to negotiate Telnet options that failed because

Failed (Timed Out)

no response was received within the timeout period.

Telnet Option Negotiation Total number of attempts to negotiate Telnet options that failed for reas-

Failed (Other)

ons other than a timeout.

Generic Sub-Option Statistics

Telnet Suboption Negotiation Failed

Total number of attempts to negotiate Telnet sub-options that failed for any reason.

Telnet Suboption Nego- Total number of attempts to negotiate Telnet sub-options that failed tiation Failed (Timed Out) because no response was received within the timeout period.

Telnet Suboption Negotiation Failed (Other)

Total number of attempts to negotiate Telnet sub-options that failed for reasons other than a timeout.

Echo Option Statistics

IxLoad Tcl API Programming Guide

1279

Telnet

Telnet Echo Options DO Sent

Number of requests sent by the server to the client to begin using the Echo option.

Telnet Echo Options WILL Number of responses sent by the server agreeing to begin using the

Sent

Echo option.

Telnet Echo Options DONT Sent

Number of requests sent by the server to the client to stop using the Echo option.

Telnet Echo Options WONT Sent

Number of responses sent by the server rejecting use of the Echo option.

Telnet Echo Options DO Received

Number of requests received by the server to begin using the Echo option.

Telnet Echo Options WILL Number of responses received by the server agreeing to begin using the

Received

Echo option.

Telnet Echo Options DONT Received

Number of responses received by the server rejecting use of the Echo option.

Telnet Echo Options WONT Received

Number of responses received by the server agreeing to stop using the Echo option.

GA Suppress Option Statistics

Telnet GA Suppress Options DO Sent

Number of requests sent by the server to suppress Go Ahead messages. Effectively, the server requests the clients not to send Go Ahead messages.

Telnet GA Suppress Options WILL Sent

Number of the responses sent by the server agreeing to suppress Go Ahead messages.

Telnet GA Suppress Options DONT Sent

Number of requests sent by the server asking the clients not to supress Go Ahead messages.
Effectively, the server requests that the clients send Go Ahead messages.

Telnet GA Suppress Options WONT Sent

Number of responses sent by the server rejecting suppression of Go Ahead messages. Effectively, the server signals that it will send Go Ahead messages.

Telnet GA Suppress Options DO Received

Number of requests received by the server to suppress Go Ahead messages.
Effectively, the server is being requested to not send Go Ahead messages.

1280

IxLoad Tcl API Programming Guide

Telnet

Telnet GA Suppress Options WILL Received

Number of responses received by the server indicating that the client will suppress Go Ahead messages. Effectively, the clients agree to not send Go Ahead messages.

Telnet GA Suppress Options DONT Received

Number of requests received by the server to not suppress Go Ahead messages. Effectively, the server is being requested to send Go Ahead messages.

Telnet GA Suppress Options WONT Received

Number of responses received by the server indicating that the client will not suppress Go Ahead messages. Effectively, the clients agree to send Go Ahead messages.

Line-Mode Option Statistics

Telnet Line-mode Options Number of requests sent by the server to the clients to begin using the

DO Sent

Line Mode option.

Telnet Line-mode Options Number of responses sent by the server agreeing to begin using the Line

WILL Sent

mode option.

Telnet Line-mode Options Number of requests sent by the server to the clients to stop using the

DONT Sent

Line Mode option.

Telnet Line-mode Options Number of responses sent by the server agreeing to stop using the Line

WONT Sent

mode option.

Telnet Line-mode Options Number of requests received by the server to begin using the Line Mode

DO Received

option.

Telnet Line-mode Options Number of responses received by the server agreeing to begin using the

WILL Received

Line Mode option.

Telnet Line-mode Options Number of requests received by the server to stop using the Line Mode

DONT Received

option.

Telnet Line-mode Options Number of responses received by the server rejecting use of the Line

WONT Received

Mode option.

Line-Mode Sub-Option Statistics

Telnet Line-mode Suboptions Sent

Number of messages setting the Line Mode sub-options sent by the server.

Telnet Line-mode Suboptions Received

Number of messages setting the Line Mode sub-options received by the server.

Special Statistics

IxLoad Tcl API Programming Guide

1281

Telnet

Telnet Line-mode Edit Mask Sent
Telnet Line-mode Edit Mask Received

Number of Line Mode Edit Mask messages sent by the server. Number of Line Mode Edit Mask messages received by the server.

1282

IxLoad Tcl API Programming Guide

TFTP
This section describes the TFTP Tcl API objects.
Overview
The IxLoad TFTP API consists of a client agent and its commands, structured as shown below.

Objectives
The objectives (userObjective) you can set for TFTP are listed below. Test objectives are set in the ixTimeline object.
l transactionRate l simulatedUsers

IxLoad Tcl API Programming Guide

1283

TFTP
TFTP Client Agent
Trivial File Transfer Protocol (TFTP) is a very simple file transfer protocol that functions essentially like a stripped-down version of FTP. Refer to TFTP Client Agent on page 26-3 for a full description of this command. The most significant options of this command are listed below.
Option Description enable Enables the use of the TFTP client agent. name Name associated with the client agent.

TFTP Command List
The TFTP Command List creates the list of TFTP commands that the client will send to a TFTP server. Refer to TFTP Command List on page 26-8 for a full description of this command. The most significant options of this command are listed below.

Option Description

id

Command that client will send.

TFTP Client Advanced Options
The TFTP client advanced options define additional connection options. Refer to TFTP Client Advanced for a full description of this command. The important options of this command are listed below.

Option

Usage

responseTimeout Time, in seconds, that the client waits for a response from the server.

ipPreference

If you have a mixture of IPv4 and IPv6 subnets configured on the client network, these fields select the order that the TFTP client will use the subnets.

numberOfRetries Number of times that the TFTP client will re-send an un-acknowledged GET (RRQ packet) or PUT (WRQ packet) command.

1284

IxLoad Tcl API Programming Guide

TFTP

IxLoad Tcl API Programming Guide

1285

TFTP

TFTP Client Agent
TFTP Client Agent - create a TFTP client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TFTPClient1 [$Traffic1_Network1 activityList.appendItem \ options...] $Activity_TFTPClient1 agent.config \
DESCRIPTION
A TFTP client agent is added to the activityList option of the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. It is customary to set all the options of the client agent during the appendItem call. Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable
Enables the use of this client agent. (Default = true). name
The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new ixNetTraffic]#----------------------------------

---------------------# Activity TFTPClient1 of NetTraffic Traffic1@Network1#--------

-----------------------------------------------set Activity_TFTPClient1 [$Traffic1_

Network1 activityList.appendItem \-protocolAndType

"tftp Cli-

ent" ]$Activity_TFTPClient1 agent.config \-enable

true \-name

"TFTPClient1"

SEE ALSO

ixNetTraffic

1286

IxLoad Tcl API Programming Guide

TFTP

IxLoad Tcl API Programming Guide

1287

TFTP

TFTP Command List
TFTP Command List--Creates the list of TFTP commands that the client will send to a TFTP server.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] $Activity_TFTPClient1 agent.pm.cmdList.appendItem \ options...

DESCRIPTION
A command is added to the TFTP Command List object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
id TFTP command to be executed. One of the following:

Command

Description

GETCommand

The GET command retrieves a file from a TFTP Server by sending an RRQ (Read request) packet.

PUTCommand

The PUT command stores a file on a server by sending a WRQ request. The file can be an actual file, or a dummy file that consists of generated data.

ThinkCommand

The THINK Command causes the client to become idle for a specified length of time, to simulate real-world usage scenarios in which a user may spend time absorbing or processing information received from the server before sending the next command.
If you specify identical values for the minimum and maxintervals, the client will be inactive for a fixed length of time. If you specify different values for the minand maximum intervals, IxLoad will select a value within the range and cause the client to be inactive for that length of time.

LoopBeginCommand The Loop BeginCommand is an IxLoad command that you can add to the Command List to cause the combetween it and the LoopEndCommand to be executed a specified number of times.

LoopEndCommand

LoopEndCommand ends the list of commands that will be executed by the preceding LoopBeginCommand.

1288

IxLoad Tcl API Programming Guide

TFTP

Arguments for id = GET Command
getFileName
Specifies the name and path of the file to be retrieved. The file path must be Unix-style. For example: /abcd/foo.txt You can include sequence generators in this field to generate requests for multiple files automatically. (Default = ""). enableFileSizeOption
If enabled, the client includes the Transfer Size (tsize) option in the RRQ packet, with the value set to 0. (Default = "0"). transportMode
Type of data contained in file to be transferred:

Value

Description

0 netascii (Default)

octet

1

enableBlkSizeOption If true, the client suggests the size of the Data field to be used in DATA packets from the server. (Default = "0"). enableTimeoutOption If enabled, the client includes the Timeout (tout) option in the RRQ packet, with the value configured on the Advanced Options. (Default = "0"). blksize Specifies the value of the block size, if it is enabled. (Default = "512"). serverAddr IP address and port number of the external TFTP server. If you do not specify a port number, the IxLoad client uses port 69. (Default = "198.18.0.100" ).
Arguments for id = PUT Command
fileType The file type can be of:

IxLoad Tcl API Programming Guide

1289

TFTP

Value

Description

0 real file (Default)

dummy file

1

transportMode Type of data contained in file to be transferred:

Value

Description

0 netascii (Default)

octet

1

enableBlkSizeOption If true, the client suggests the size of the Data field to be used in DATA packets from the server. (Default = "0"). remoteFileName Name and path that the file will be stored on the remote server. (Default = ""). dummyFileRange If selected as fileType, the IxLoad TFTP client transfers a file composed of generrandom data. (Default = "8-8"). blksize Specifies the value of the block size, if it is enabled. (Default = "512"). serverAddr IP address and port number of the external TFTP server. If you do not specify a port number, the IxLoad client uses port 69. (Default = "198.18.0.100" ). putFileName Specifies the name of the file. (Default = "").
Arguments for id = ThinkCommand
minimumInterval Minimum length of time that the client is idle. Minimum = "1000," maximum = "2,147,483,647." (Default = "1000").

1290

IxLoad Tcl API Programming Guide

TFTP

maximumInterval
Maximum length of time that the client is idle. Minimum = "1000," maximum = "2,147,483,647." (Default = "1000").

Arguments for id = LoopBeginCommand
loopCount
Number of times to repeat the enclosed commands. '0' treated as infinity. Mini= "0," maximum = "2,147,483,647." (Default = "5").

Arguments for id = LoopEndCommand
None.

EXAMPLE

$Activity_TFTPClient1 agent.pm.cmdList.appendItem \-id

"GET" \-getFileName

"" \-enableFileSizeOption

false \-transportMode

0 \-enableBlkSizeOption

false \-enableTimeoutOption

false \-blksize

"512" \-serverAddr

"198.18.0.100"

SEE ALSO

TFTP Client Agent

IxLoad Tcl API Programming Guide

1291

TFTP

TFTP Client Advanced
TFTP Client Advanced Options - configure a TFTP client's advanced options
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TFTPClient1 [$Traffic1_Network1 activityList.appendItem \.] $Activity_TFTPClient1 agent.pm.advOptions.config options...

DESCRIPTION
A TFTP client's advanced options are set by modifying the options of the pm.advanced option of the TFTP Client Agent object using its appendItem.
SUBCOMMANDS
None.
OPTIONS
responseTimeout
Time, in seconds, that the client waits for a response from the server. You can enter values from 1 to 255 seconds. This value is included as the value for the Tout option included with an RRQ (GET command) or WRQ (PUT command). Minimum = "1", Maximum = "2147483", Default = "20". ipPreference
If you have a mixture of IPv4 and IPv6 subnets configured on the client network, these fields select the order that the TFTP client will use the subnets. The values are:

Value 0

Description IPv4: The client will use addresses from the IPv4 subnets only.

1

IPv6: The client will use addresses from the IPv6 subnets only.

2

Both, IPv4 first: The client will use addresses from the IPv4 subnets first, then if it needs

(default) more addresses, it will use addresses from the IPv6 subnets.

3

Both, IPv6 first: The client will use addresses from the IPv6 subnets first, then if it needs

more addresses, it will use addresses from the IPv4 subnets.

numberOfRetries

1292

IxLoad Tcl API Programming Guide

TFTP

Number of times that the TFTP client will re-send an un-acknowledged GET (RRQ packet) or PUT (WRQ packet) command. (Default = "3").

EXAMPLE

$Activity_TFTPClient1 agent.pm.advOptions.config \-responseTimeout

120 \-implicitLoopCheck

true \-ipPreference

2 \-numberOfRetries

3

SEE ALSO

TFTP Client Agent TFTP Command List

IxLoad Tcl API Programming Guide

1293

TFTP

TFTP Server Agent

TFTP Server Agent - create a TFTP server

SYNOPSIS

set Activity_TFTPServer1 [$myNetTraffic activityList.appendItem \

-protocolAndType

"tftp Server" ]

DESCRIPTION
A TFTP server agent is added to the activityList option of the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. It is customary to set all the options of the client agent during the appendItem call.
Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
enable Enables the use of this server agent. (Default = true). name The name associated with this object, which must be set at object creation time. timeline The name of the timeline to be used with this object.

STATISTICS

EXAMPLE

set Activity_TFTPServer1 [$myNetTraffic activityList.appendItem \

-protocolAndType

"tftp Server" ]

set _Match_Longest_ [::IxLoad new ixMatchLongestTimeline]

1294

IxLoad Tcl API Programming Guide

$Activity_TFTPServer1 config \

-enable

true \

-name

"TFTPServer1" \

-timeline

$_Match_Longest_

SEE ALSO
ixNetTraffic

TFTP

IxLoad Tcl API Programming Guide

1295

TFTP

fileList

fileList - add files to a TFTP server

SYNOPSIS

$Activity_TFTPServer1 agent.pm.files.fileList.appendItem \-id

"File" \-filePath

"<Dummy File>" \-fileName

"/#1"

DESCRIPTION

The fileList object adds files to the list of files hosted by a TFTP server. Files can be real files or simulated ("dummy") files.

To add a file to the list, you use the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the fileList. It is customary to set all the options of the fileList during the appendItem call.

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands.

Before you add items to the fileList, you should initialize the list by using the clear subcommand of the ixConfigSequenceContainer command.

SUBCOMMANDS

OPTIONS
id
Server file list name. (Default = "File"). filePath
For an actual file, this is the name and full path of the file. For a simulated file, this is <Dummy File>. (Default = "<Dummy File>").
fileName
For an actual file, fileName is the label of the file, as advertised by the server. For a simulated file, fileName is the size of the file, in the format /#n, where n is the size in bytes. For example, for a 64byte simulated file, specify /#64. (Default = "/#1").

STATISTICS EXAMPLE

1296

IxLoad Tcl API Programming Guide

$Activity_TFTPServer1 agent.pm.files.fileList.clear

$Activity_TFTPServer1 agent.pm.files.fileList.appendItem \

-id

"File" \

-filePath

"<Dummy File>" \

-fileName

"/#1"

SEE ALSO

TFTP

IxLoad Tcl API Programming Guide

1297

TFTP
advanced
advanced - configure a TFTP server's global properties
SYNOPSIS
$Activity_TFTPServer1 agent.pm.advanced.config \-enableTOS false \
DESCRIPTION
The advanced object configures the TFTP server's global properties. .
SUBCOMMANDS
OPTIONS
enableTOS Enables use of Type of Service (TOS) bits in TFTP packets. Configure the selected ToS type in typeOfService. Default = "false". enableFileSizeOption If enabled and the server receives a GET or PUT request from client with the File Size Option set, the server responds by sending an OACK with containing the size of file size, in octets. Default = "false". enableBlkSizeOption Causes the server to negotiate a Block Size with the client. Configure the server's Block Size value in the blkSize option. Default = "false". enableTimeoutOption Causes the server to negotiate a timeout interval with the client. Configure the server's timeout value in the responseTimeOut field. Default = "false". typeOfService ToS bit set in traffic from the TFTP server. To configure the list of allowed ToS settings, create an availableTosList object. Default = "Best Effort (0x0)". blkSize Block size used when enableBlkSizeOption is true. Default = "512". retryCount Number of DATA or ACK/OACK packets to be re-sent to the client if no response is received. Default = "3". responseTimeOut

1298

IxLoad Tcl API Programming Guide

TFTP

Length of time, in seconds, that the server waits for a response from the client. Default = "120". tftpPort Port number that the TFTP server listens on. Default = "69".

STATISTICS

EXAMPLE

$Activity_TFTPServer1 agent.pm.advanced.config \

-enableTOS

false \

-enableFileSizeOption

false \

-enableBlkSizeOption

false \

-enableTimeoutOption

false \

-typeOfService

"Best Effort (0x0)" \

-blkSize

"512" \

-retryCount

3\

-responseTimeOut

120 \

-tftpPort

69

SEE ALSO

IxLoad Tcl API Programming Guide

1299

TFTP

TFTP Client Statistics
The table below describes the TFTP client statistics.

Statistic

Description

Test Objective Statistics

TFTP Simulated Users

Number of TFTP users simulated.

TFTP Transactions Number of TFTP transactions completed.

TFTP Transaction Rate at which TFTP transactions were completed. Rate

Upload / Download Statistics

TFTP Total File Download Requests Sent

Number of GET commands (RRQ requests) sent by the client.

TFTP Total File Download Requests Successful

Number of files that the client successfully downloaded.

TFTP Total File Download Requests Failed

Number of files that the client failed to download.

TFTP Total File Upload Requests Sent

Number of PUT commands (WRQ requests) sent by the client.

TFTP Total File Upload Requests Successful

Number of files that the client successfully uploaded.

TFTP Total File Upload Requests Failed

Number of files that the client failed to upload.

ACK / OACK Statistics

1300

IxLoad Tcl API Programming Guide

TFTP

TFTP Total

Number of ACK packets sent by the client.

Acknowledgement

(ACK) Sent

TFTP Total

Number of ACK packets received by the client.

Acknowledgement

(ACK) Received

TFTP Total Option Number of OACK packets received by the client. Acknowledgement (OACK) Received

Bytes Sent / Received Statistics

TFTP Total Bytes Sent

Total number of bytes sent in TFTP packets of all types.

TFTP Total Bytes Received

Total number of bytes received in TFTP packets of all types.

TFTP Total Bytes Sent And Received

Combined total of bytes sent and received in TFTP packets of all types.

Data Bytes Sent / Received Statistics

TFTP Total Data Bytes Sent

Number of bytes sent in DATA packets.

TFTP Total Data Bytes Received

Number of bytes received in DATA packets.

TFTP Total Data Bytes Sent per sec

Rate, in bytes per second, at which the client sent DATA packets.

TFTP Total Data Bytes Received per sec

Rate, in bytes per second, at which the client received DATA packets.

Bytes Sent / Received Rate Statistics

TFTP Total Bytes Sent per sec

Rate, in bytes per second, at which the client sent TFTP packets of all types.

TFTP Total Bytes Rate, in bytes per second, at which the client received TFTP packets of all Received per sec types.

IxLoad Tcl API Programming Guide

1301

TFTP

TFTP Total Bytes Sent And Received per sec

Combined rate, in bytes per second, at which the client sent and received TFTP packets of all types.

TFTP Total Out of Number of TFTP packets that were received out of order. Sequence Packets Received

Error Statistics

TFTP Total Timeouts Received

Number of timeouts received.

TFTP Total Errors Number of ERROR packets received by the client.

TFTP Total Errors Received In Response to Read Request

Number of ERROR packets that the client received in response to a GET command (RRQ request).

TFTP Total Errors Received In Response to Write Request

Number of ERROR packets that the client received in response to a PUT command (WRQ request).

TFTP ERROR

Number of ERROR packets received with error code 0 (Not defined, see error

Received (code 0) message (if any)).

TFTP ERROR

Number of ERROR packets received with error code 1 (File not found).

Received (code 1)

TFTP ERROR

Number of ERROR packets received with error code 2 (Access violation).

Received (code 2)

TFTP ERROR Sent (code 3)

Number of ERROR packets sent with error code 3 (Disk full or allocation exceeded).
In addition to sending error code 3 packets in case of disk full or allocation exceeded errors, the client will also send an error code 3 packet if the server responds to the client's RRQ with an OACK that contains a tsize that the client cannot handle.

1302

IxLoad Tcl API Programming Guide

TFTP

TFTP ERROR Received (code 3)

Number of ERROR packets received with error code 3 (Disk full or allocation exceeded).
In addition to receiving error code 3 packets in case of disk full or allocation exceeded errors on the server, if the client sends a WRQ with a tsize that the server cannot handle, the server returns an error code 3 packet.

TFTP ERROR

Number of ERROR packets received with error code 4 (Illegal TFTP operation).

Received (code 4)

TFTP ERROR

Number of ERROR packets received with error code 5 (Unknown transfer ID).

Received (code 5)

TFTP ERROR

Number of ERROR packets received with error code 6 (File already exists).

Received (code 6)

TFTP ERROR

Number of ERROR packets received with error code 7 (No such user).

Received (code 7)

TFTP ERROR Sent Number of ERROR packets sent with error code 8 (Block size rejected). (code 8)

TFTP ERROR

Number of ERROR packets received with error code 8 (Block size rejected).

Received (code 8)

TFTP Other error Number of ERROR packets received that were not error codes 1-8.

IxLoad Tcl API Programming Guide

1303

TFTP

TFTP Server Statistics
The table below describes the TFTP server statistics.

Statistic

Description

TFTP Request / Response Statistics

TFTP Total Download Request Received

Number of GET requests received.

TFTP Total Download Request Succeeded

Number of GET requests completed successfully.

TFTP Total Download Request Failed

Number of GET requests that failed.

TFTP Total Upload Request Received

Number of PUT requests received.

TFTP Total Upload Request Succeeded

Number of PUT requests completed successfully.

TFTP Total Upload Request Failed

Number of PUT requests that failed.

TFTP Total ACK Sent

Number of ACK responses sent.

TFTP Total ACK Received

Number of ACK responses received.

TFTP Total OACK Sent

Number of OACK responses sent.

Total Bytes Stats

TFTP Total Bytes Sent

Number of bytes sent in TFTP packets of all types.

TFTP Total Bytes Received Number of bytes received in TFTP packets of all types.

TFTP Total Bytes Sent And Received

Combined total of bytes sent and received in TFTP packets of all types.

TFTP Throughput

Combined rate, in bytes per second, at which the server sent and received TFTP packets of all types.

Data Bytes Statistics

TFTP Total Data Bytes Sent Number of bytes sent in DATA packets.

1304

IxLoad Tcl API Programming Guide

TFTP

TFTP Total Data Bytes Received

Number of bytes received in DATA packets.

TFTP Total Data Bytes Sent Combined total of bytes sent and received in DATA packets. And Received

TFTP Data Throughput

Combined rate, in bytes per second, at which the server sent and received DATA packets.

Error Statistics

TFTP Total Errors Received Total number of TFTP error messages received.

TFTP Total Timeout Errors

Number of times that the server did not receive a response within the timeout period.

TFTP ERROR Sent (code 0)

Number of error code 0 messages sent. Error code 0 is undefined; a description of the error may be in the string portion of the message.

TFTP ERROR Sent (code 1)

Number of error code 1 messages sent. Error code 1 is: File not found.

TFTP ERROR Sent (code 2)

Number of error code 2 messages sent. Error code 2 is: Access violation.

TFTP ERROR Received (code Number of error code 3 messages received.

3)

Error code 3 is: Disk full or allocation exceeded.

TFTP ERROR Sent (code 3)

Number of error code 3 messages sent. Error code 3 is: Disk full or allocation exceeded.

TFTP ERROR Sent (code 4)

Number of error code 4 messages received. Error code 4 is: Illegal TFTP operation.

TFTP ERROR Sent (code 5)

Number of error code 5 messages received. Error code 5 is: Unknown transfer ID.

TFTP ERROR Sent (code 6)

Number of error code 6 messages received. Error code 6 is: File already exists.

TFTP ERROR Sent (code 7)

Number of error code 7 messages received. Error code 7 is: No such user.

IxLoad Tcl API Programming Guide

1305

TFTP

TFTP ERROR Received (code 8)

Number of error code 8 messages received. Error code 8 is sent to terminate a transfer due to a failure in option negotiation.

TFTP ERROR Sent (code 8)

Number of error code 8 messages received. Error code 8 is sent to terminate a transfer due to a failure in option negotiation.

TFTP Other error

Number of TFTP errors that were not classified as error code 0-8.

! 34

1306

IxLoad Tcl API Programming Guide

Trace File Replay
This section describes the Trace File Replay Tcl API objects.
Overview
The IxLoad Trace File Replay API consists of client agent and server agents and their commands. Figure 22-1.Trace File Replay Client API Structure

Objectives
The objectives (userObjective) you can set for Trace File Replay are listed below. Test objectives are set in the ixTimeline object.
l simulatedUsers
Trace File Replay Client Commands
This section lists the Trace File Replay client commands.

IxLoad Tcl API Programming Guide

1307

Trace File Replay

Trace File Replay Client Agent
The Trace File Replay Client Agent command defines a client that will transmit a packet stream to a Trace File Replay Server Agent. Refer to Trace File Replay Client Agent on page 22-5 for a full description of this command. The most sigoptions of this command are listed below.

Option Description

enable Enables the use of this client agent.

name The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

Options
The Options command configures the Trace File Replay client's options. Refer to Options on page 22-7 for a full description of this command. The most signifioptions of this command are listed below.

Option

Description

destinationServerActivity Name of the IxLoad Trace File Replay server that the client will connect to.

traceFileName

Name and path of the pcap-format trace file that the client will use to generate the traffic stream.

replayBidirectional Traffic

If true, the client uses the same trace (pcap) file as selected for the server agent.

enableFilter

If true, the filters in the client's filterList are applied to the incoming packet stream from the server.

filterList

List of filters applied to incoming packet stream.

Filter List
The Filter List command configures a filter to be applied to the packet stream. Refer to Filter List on page 22-9 for a full description of this command. The most significant options of this command are

1308

IxLoad Tcl API Programming Guide

listed below.

Option

Description

protocol

Protocol to be filtered.

srcDest

Address type that ipSubnet applies to.

ipSubnet

IP address to be filtered.

prefixLength Subnet mask applied to address to be filtered.

srcDestPort Port type that portNumber applies to.

portNumber Port number to be filtered.

Trace File Replay Server Commands
The Trace File Replay Server API structure is shown below.

Trace File Replay

Trace File Replay Server Agent
The Trace File Replay Server Agent command defines a server that transmits a packet stream to a Trace File Replay client. Refer to Trace File Replay Client Agent on page 22-5 for a full description of this command. The most significant options of this command listed below.
Option Description

IxLoad Tcl API Programming Guide

1309

Trace File Replay

enable Enables the use of this client agent.

name The name associated with this object, which must be set at object creation time.

protocol Protocol used by the client agent.

type

Defines the agent as either a client or server.

Trace File Options
The Trace File Options command configures the list of parameters for a Trace File Replay server. Refer to Trace File Options on page 22-13 for a full descripof this command. The most significant options of this command are listed below.

Option

Description

sourceClientActivity Name of the IxLoad Trace File Replay client that the server will connect to.

traceFileName

Name and path of the pcap-format trace file that the client will use to generate the traffic stream.

useDefaultTraceFile If true, the client uses the same trace (pcap) file as selected for the server agent.

enableFilter

If true, the filters in the client's filterList are applied to the incoming packet stream from the server.

filterList

List of filters to be applied to the specified trace (pcap) file.

Advanced Options
The Trace File Server Advanced Options command configures the advanced options for a Trace File Replay server. Refer to Advanced Options on page 22-14 for a full description of this command. The most significant options of this comare listed below.

Option serverNetworkList

Description List of IP addresses in the trace (pcap) file identified as server addresses.

1310

IxLoad Tcl API Programming Guide

Trace File Replay
useSpecifiedServerAddr If true, the server scans the trace file and automatically deterwhich addresses are server addresses.

Server Network List
The Server Network List command configures the list of server IP addresses in the trace (pcap) file. Refer to Server Network List on page 22-15 for a full description of this command. The most significant options of this command are listed below.

Option

Description

ipSubnet

IP address identified as a server IP address.

prefixLength Width of subnet mask applied to subnetID.

IxLoad Tcl API Programming Guide

1311

Trace File Replay

Trace File Replay Client Agent
Trace File Replay Client Agent - create a Trace File Replay client
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TraceFileReplClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_TraceFileReplClient1 agent.config
DESCRIPTION
A Trace File Replay client agent is added to the activityList object. The activityL object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this client agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set Traffic1_Network1 [::IxLoad new

ixNetTraffic]################################################## Activity

TraceFileReplClient1 of NetTraffic

Traffic1@Network1#################################################set Activity_

TraceFileReplClient1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType

"capturereplay Client" ]$Activity_TraceFileReplClient1 agent.config \-enable

true \-name

"TraceFileReplClient1"

SEE ALSO

ixNetTraffic

1312

IxLoad Tcl API Programming Guide

Trace File Replay

Options

Options--Configures the list of parameters for a Trace File Replay client.

SYNOPSIS

set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TraceFileReplClient1 [$Traffic1_Network1 activityList.appendItem
options...] $Activity_TraceFileReplClient1 agent.pm.options.config

DESCRIPTION
An option is added to the list of Options using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
destinationServerActivity
Name of the IxLoad Trace File Replay server that the client will connect to. (Default = {}). traceFileName
Name and path of the pcap-format trace file that the client will use to generate the traffic stream. (Default = {}).
replayBidirectionalTraffic
If true, the client uses the same trace (pcap) file as selected for the server agent. (Default = true).
enableFilter
If true, the filters in the client's filterList are applied to the incoming packet stream from the server. filterList
List of filters to be applied to the specified trace (pcap) file. This is a list of Filter List objects. (Default = {}).

EXAMPLE

$Activity_TraceFileReplClient1 agent.pm.options.config \-traceFileName

"" \-destinationServerActivity

"" \-serverAddrString

"" \-enableFilter

false \-replayBidirectionalTraffic

true

IxLoad Tcl API Programming Guide

1313

Trace File Replay
SEE ALSO
Trace File Replay Client Agent

1314

IxLoad Tcl API Programming Guide

Trace File Replay
Filter List
Filter List--Configures a filter to be applied to the packet stream.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TraceFileReplClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_newClientActivity1 agent.pm.filterList.appendItem
DESCRIPTION
The Filter List command configures a filter that can be applied to the incoming packet stream. This command is added to the list of Trace File Replay client agent object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
protocol Protocol to be filtered. The choices are:
l (default) TCP l UDP l ICMP l Any srcDest Address type that ipSubnet applies to. The choices are: l (default) Source l Destination l Both l Any ipSubnet IP address to be filtered. This is one of the IP addresses contained within the trace file. prefixLength Subnet mask applied to address to be filtered. Packets matching the subnet mask will be accepted. The choices are "1" through "32." (Default = "24").

IxLoad Tcl API Programming Guide

1315

Trace File Replay

srcDestPort Port type that portNumber applies to. The choices are:
l Source l (default) Destination l Any portNumber Port number to be filtered.
EXAMPLE

$Activity_newClientActivity1 agent.pm.filterList2.appendItem \-id

"FilterElement" \-ipSubnet

"198.18.1.1" \-portNumber

"33729" \-srcDestPort

"Source" \-protocol

"TCP" \-prefixLength

"32" \-srcDest

"Any"

1316

IxLoad Tcl API Programming Guide

Trace File Replay
Enable Filter
Enable Filter--Enables the client's list of filters to be applied to the incoming packet stream.
SYNOPSIS
set Traffic1_Network1 [::IxLoad new ixNetTraffic] set Activity_TraceFileReplClient1 [$Traffic1_Network1 activityList.appendItem options...] $Activity_TraceFileReplClient1 agent.pm.options.config
DESCRIPTION
Enable Filter causes the Trace File Replay client to use the filters configured on the client to be applied to the trace (pcap) file configured for the Trace File Replay client. The Trace File Replay client can specify its filters only if the useDefaultTraceFile option is disabled. This command is added to the list of Trace File Replay client agent object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enableFilter If true, the client applies the client-side filters to the incoming packet stream. (Default = 0).
EXAMPLE
$Activity_TraceFileReplClient1 agent.pm.options.config \-enableFilter true \
SEE ALSO
Options

IxLoad Tcl API Programming Guide

1317

Trace File Replay

Trace File Replay Server Agent
Trace File Replay Server Agent
SYNOPSIS
set ServerTraffic1_ServerNetwork1 [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$ServerTraffic1_ServerNetwork1 activityLoption...] $Activity_newServerActivity1 agent.config
DESCRIPTION
A Trace File Replay server agent is added to the activityList object. The activi object is added to the ixNetTraffic object using the appendItem subcomfrom the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
enable Enables the use of this server agent. (Default = true). name The name associated with this object, which must be set at object creation time.
STATISTICS

EXAMPLE

set ServerTraffic1_ServerNetwork1 [::IxLoad new

ixNetTraffic]################################################## Activity newServer-

Activity1 of NetTraffic

ServerTraffic1@ServerNetwork1#################################################set

Activity_newServerActivity1 [$ServerTraffic1_ServerNetwork1 activityList.appendItem

\-protocolAndType

"capturereplay Server" ]$Activity_

newServerActivity1 agent.config \-enable

true \-

name

"newServerActivity1"

SEE ALSO

ixNetTraffic

1318

IxLoad Tcl API Programming Guide

Trace File Replay
Trace File Options
Trace File Options--Configures the list of parameters for a Trace File Replay server.
SYNOPSIS
set ServerTraffic1_ServerNetwork1 [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$ServerTraffic1_ServerNetwork1 activityLoption...] $Activity_newServerActivity1 agent.pm.traceFileOptions.config
DESCRIPTION
An option is added to the list of Options using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
OPTIONS
sourceClientActivity Name of the IxLoad Trace File Replay client that the server will connect to. traceFileName Name and path of the pcap-format trace file that the server will use to generate the traffic stream. (Default = {}). enableFilter If true, the filters in the client's filterList are applied to the incoming packet stream from the server. filterList List of filters applied to incoming packet stream. This is a list of Filter List objects. (Default = {}).
EXAMPLE
$Activity_newServerActivity1 agent.pm.traceFileOptions.config \ -enableFiltertrue \ -traceFileName"C:/Program Files/Ixia/IxLoad/ \ \Repository/Samples/TraceFileReplay/Captures/oracle1.cap" \ -clientAddrString"sym:newServerActivity1!ClientTraffic1_newClientActivity1" \ -sourceClientActivity"ClientTraffic1_newClientActivity1"

IxLoad Tcl API Programming Guide

1319

Trace File Replay
SEE ALSO
Trace File Replay Server Agent

1320

IxLoad Tcl API Programming Guide

Trace File Replay

Server Network List
Server Network List--Lists of server IP addresses contained in trace (pcap) file.

SYNOPSIS
set ServerTraffic1_ServerNetwork1 [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$ServerTraffic1_ServerNetwork1 activityLoption...] $Activity_newServerActivity1 agent.pm.advancedOptions.serverNet

DESCRIPTION
Server Network List is a list of IP addresses and subnet masks contained within the trace (pcap) file that are determined (either manually by the user/application or automatically by IxLoad) to be server addresses.
This command is added to the list of Trace File Replay server agent advancedOpusing the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
ipSubnet IP address identified as a server IP address. prefixLength Width of subnet mask applied to ipSubnet.

EXAMPLE

$Activity_newServerActivity1 agent.pm.advancedOptions.serverNetworkList.appendItem

\-id

"Network" \-prefixLength

"32" \-ipSubnet

"198.18.1.11"

SEE ALSO

Advanced Options

IxLoad Tcl API Programming Guide

1321

Trace File Replay

Advanced Options
Advanced Options--Configures the list of advanced options for a Trace File Replay server.

SYNOPSIS

set ServerTraffic1_ServerNetwork1 [::IxLoad new ixNetTraffic] set Activity_newServerActivity1 [$ServerTraffic1_ServerNetwork1 activityLoption...] $Activity_newServerActivity1 agent.pm.advancedOptions.config

DESCRIPTION
The Advanced Options command configures the global options of a Trace File Replay server. The command is configured using the config subcommand of the ixConfig command.

SUBCOMMANDS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

OPTIONS
serverNetworkList List of IP addresses in the trace (pcap) file identified as server addresses. See Server Network List. useSpecifiedServerAddr If true, the server scans the trace file and automatically determines which addresses are server addresses. IxLoad adds the IP addresses to the Server Network List.

EXAMPLE

$Activity_newServerActivity1 agent.pm.advancedOptions.config \-

useSpecifiedServerAddr

true

SEE ALSO

Trace File Replay Server Agent

Server Network List

1322

IxLoad Tcl API Programming Guide

Trace File Replay
Statistics
For Trace File Replay client statistics, see Trace File Replay Client Statistics. For Trace File Replay server statistics, see Trace File Replay Server Statistics. For TCP statistics, see TCP, Run State, and Curve Segment Statistics.

IxLoad Tcl API Programming Guide

1323

Trace File Replay

Trace File Replay Client Statistics
The following table describes the statistics for the Trace File Replay client.

Statistic

Description

Trace File Replay Client Initializing State

Number of users currently being initialized.

Trace File Replay Client Syn- Number of users currently awaiting synchronization. chronizing State

Trace File Replay Client Act- Number of users currently active. ive State

TraceFileReplay Client Pack- Number of packets sent by the Trace File Replay client. ets Sent

TraceFileReplay Client TCP Packets Sent

Number of TCP packets sent by the Trace File Replay client.

TraceFileReplay Client UDP Packets Sent

Number of UDP packets sent by the Trace File Replay client.

TraceFileReplay Client ARP Packets Sent

Number of ARP packets sent by the Trace File Replay client.

TraceFileReplay Client ICMP Number of ICMP packets sent by the Trace File Replay client. Packets Sent

TraceFileReplay Client Other Number of packets sent by the Trace File Replay client that were not

Packets Sent

TCP, UDP, ARP, or ICMP packets.

TraceFileReplay Client Discarded Packets

Number packets discarded by the Trace File Replay client.

TraceFileReplay Client Bytes Number of bytes sent by the Trace File Replay client. Sent

TraceFileReplay Client TCP Bytes Sent

Number of TCP bytes sent by the Trace File Replay client.

TraceFileReplay Client UDP Bytes Sent

Number of UDP bytes sent by the Trace File Replay client.

TraceFileReplay Client ARP Bytes Sent

Number of ARP bytes sent by the Trace File Replay client.

1324

IxLoad Tcl API Programming Guide

Trace File Replay

TraceFileReplay Client ICMP Number of ICMP bytes sent by the Trace File Replay client. Bytes Sent

TraceFileReplay Client Other Number of bytes sent by the Trace File Replay client that were not

Bytes Sent

TCP, UDP, ARP, or ICMP bytes.

TraceFileReplay Client Discarded Bytes

Number of bytes discarded by the Trace File Replay Client.

IxLoad Tcl API Programming Guide

1325

Trace File Replay

Trace File Replay Server Statistics
The following table describes the statistics for the Trace File Replay server.

Statistic

Description

Trace File Replay Server Ini- Number of users currently being initialized. tializing State

Trace File Replay Server Syn- Number of users currently awaiting synchronization. chronizing State

Trace File Replay Server Act- Number of users currently active. ive State

TraceFileReplay Server Pack- Number of packets sent by the Trace File Replay server. ets Sent

TraceFileReplay Server TCP Packets Sent

Number of TCP packets sent by the Trace File Replay server.

TraceFileReplay Server UDP Packets Sent

Number of UDP packets sent by the Trace File Replay server.

TraceFileReplay Server ARP Packets Sent

Number of ARP packets sent by the Trace File Replay server.

TraceFileReplay Server ICMP Number of ICMP packets sent by the Trace File Replay server. Packets Sent

TraceFileReplay Server Other Number of packets sent by the Trace File Replay server that were

Packets Sent

not TCP, UDP, ARP, or ICMP packets.

TraceFileReplay Server Discarded Packets

Number packets discarded by the Trace File Replay server.

TraceFileReplay Server Bytes Number of bytes sent by the Trace File Replay server. Sent

TraceFileReplay Server TCP Bytes Sent

Number of TCP bytes sent by the Trace File Replay server.

TraceFileReplay Server UDP Bytes Sent

Number of UDP bytes sent by the Trace File Replay server.

TraceFileReplay Server ARP Bytes Sent

Number of ARP bytes sent by the Trace File Replay server.

1326

IxLoad Tcl API Programming Guide

Trace File Replay

TraceFileReplay Server ICMP Number of ICMP bytes sent by the Trace File Replay server. Bytes Sent

TraceFileReplay Server Other Number of bytes sent by the Trace File Replay server that were not

Bytes Sent

TCP, UDP, ARP, or ICMP bytes.

TraceFileReplay Server Discarded Bytes

Number of bytes discarded by the Trace File Replay server.

IxLoad Tcl API Programming Guide

1327

This page intentionally left blank.

1328

IxLoad Tcl API Programming Guide

VDI
This section describes the VDI Tcl API objects.
API Overview
The IxLoad VDI API consists of the VDI Client Agent and its commands.

IxLoad Tcl API Programming Guide

1329

VDI

VDI Client Agent

VDI client agent - create a VDI/RDP client agent

SYNOPSIS

set Activity_VDIClient1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"rdp Client" ]

DESCRIPTION
A VDI client agent is added to the activityList object. The activityList object is added to the ixNetTraffic object using the appendItem subcommand from the ixConfigSequenceContainer command.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.

STATISTICS

EXAMPLE

set Activity_VDIClient1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"rdp Client" ]

SEE ALSO
ixNetTraffic

1330

IxLoad Tcl API Programming Guide

settings
settings - configure the settings of a VDI client agent
SYNOPSIS
$Activity_VDIClient1 agent.pm.settings.config
DESCRIPTION
This object configures the settings for a VDI client agent.
SUBCOMMANDS
None.
OPTIONS
resolutionH Horizontal resolution. Default = 600. encryption Type of encryption. One of the following:

Choice

Description

0 (default) Full encryption

1

Login encryption only

2

None

enableVDI Enables use of a connection server. Default = false. connectionServerPort Connection server listening port. Default = 443. connectionServer Hostname or IP address of connection server. Default = "" (none) depth Color depth (number of bits per pixel) of remote desktop. Default = 8. enableTunnel Use secure tunnel to establish connection to remote desktop. Default = true.

IxLoad Tcl API Programming Guide

VDI 1331

VDI

desktopPool Name of desktop pool. Default = "" (none). credentialsFullPath Path of credentials file. Default = "" (none). resolutionW Vertical resolution of remote desktop. Default = 800.

EXAMPLE

$Activity_VDIClient1 agent.pm.settings.config \

-resolutionH

600 \

-encryption

0\

-enableVDI

false \

-connectionServerPort

443 \

-connectionServer

"" \

-depth

8\

-enableTunnel

true \

-desktopPool

"" \

-credentialsFullPath

"" \

-resolutionW

800

SEE ALSO
ixNetTraffic

VDI Client Commands
This section lists the VDI client agent's commands.

1332

IxLoad Tcl API Programming Guide

VoIP H.248 Peer
The IxLoad VoIP H.248 Peer Tcl API consists of a VoIP MGW and VOIP MGC Peer agent, with separate APIs for configuring each major aspect of the agent's functionality. There is also a TermGroup Agent with separate configuration parameters.
l When defined on a MGW activity, a TermGroup refers to terminations present on that gateway. l When defined on a MGC activity, a TermGroup refers to terminations managed by that controller.
Limitations
The following restrictions and limitations of the VoIP H.248 Peer API exist: l Individual VoIP H248 script functions can not be added and edited from the Tcl API. Instead, you must add and configure the test scenario in the Scenario Editor, then save the test scenario file and pass it as an argument to the ScenarioSettings API class.

IxLoad Tcl API Programming Guide

1333

VoIP H.248 Peer
VoIP H248 Peer API Commands
The IxLoad VoIP H248 Peer API commands are organized as shown in the figures below.

VoIP H248 MGW Peer API Structure

VoIP H248 Term Group API Structure

1334

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

IxLoad Tcl API Programming Guide

1335

VoIP H.248 Peer

VoIP H248 MGC/MGW Peer API Objects
The following table summarizes the VoIP H248 MGC/MGW Peer API Objects

Object

Description

VoIP H248 Peer Agent

Top-level object defining the VoIP H248 Peer activity.

H248 Settings Configures the H.248 Settings separately for the Media Gateway or Media Controller.

Automatic

Sets the automatic functionality parameters for the MGC and MGW side.

SimulatedMGC Simulates the source address in H.248 messages, designates the simulation type,

/ MGW

and so on. Also contains the list of all termination groups associated with the gate-

way or controller.

TermGroups

Contains the list of all termination groups associated with the gateway or controller. Each termination groups has a name and two expressions to generate termination names. When a new TermGroup is added, a new activity is added in the same NetTraffic.

Profiles

A collection of packages where each package is a collection of events, signals, statistics, properties, and procedures. During registration, an MGW declares a supported profile and MGC sends audit commands to find the packages that are supported by a particular profile.
The profile selected in Profiles depends on the SimulatedMGW type declared in SimulatedMGW/MGC.

Packages

A collection of events, signals, statistics, properties, and procedures.

Properties
Signals Statistics Events

H.248 has two basic components: Terminations and Contexts. Terminations have properties, which can be inspected and modified by the MGC. Represents the signals of a transmission. Represents the statistics available for MGC and MGW. Represents the events of a transmission.

1336

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

VoIP H248 TermGroup Peer API Objects
The following table summarizes the VoIP H248 TermGroup API Objects

Object

Description

VoIP H248 MGC/MGW TermGroup Agent

Top-level object defining the VoIP H248 MGC/MGW TermGroup agent activity.

Scenario Settings Selects the Test Scenario file; corresponds to the Scenario Settings GUI tab.

Codec Settings

List of Data Codecs and Codecs objects.

Data Codecs

Data codec with parameters.

Codecs

Audio codec with parameters.

Other Settings

VoIP H323 Peer miscellaneous parameters; corresponds to the Other Settings GUI tab.

SDP Settings

H.248 uses SDP for specification and negotiation of media capabilities of GW terminations. SDP information is sent using a Stream descriptor that specifies as a single bi-directional media stream.

RTP Settings

RTP transport configuration; corresponds to the RTP Settings GUI tab.

Audio Settings

Audio settings; corresponds to the Audio GUI tab.

Custom Activity

BHCA objective configuration; corresponds to the Custom Parameters GUI tab.

Link Settings, Cus-

tomParameters

Execution Settings Run-time test configuration; corresponds to the Execution Settings GUI tab.

IxLoad Tcl API Programming Guide

1337

VoIP H.248 Peer

VoIP H248 Peer Agent
VoIP H248MGW or H248MGC Peer Agent
SYNOPSIS
set Activity_H248MGC1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "H248MGC Peer" ]
DESCRIPTION
A VoIP H.248 Peer agent is added to the agentList option of the ixConfig object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. See the following example: set Activity_H248MGC1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "H248MGC Peer" ]

$Activity_H248MGC1 config \-enable "H248MGC1"

1 \-name

$Activity_H248MGC1 agent.config \-enable

"H248MGC1" \-uniqueID

1

1 \-name

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by: $Activity_H248MGC1 agent(0).config -name "H248MGC Peer new"

SUBCOMMANDS

None.

OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time. uniqueID The unique ID of this object. (Default = 1)

STATISTICS
The available H248/MEGACO statistics are listed in below:

1338

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Statistic H.248 MGC Transport Bytes Sent Bytes Received Messages Sent Messages Received Avg Sent/Received Message Size H.248 MGC Transactions Transaction Requests Sent Transaction Requests Received Transaction Replies Sent Transaction Replies Received Transaction Pending Sent
Transaction Pending Received
Transaction Response Ack Sent
Transaction Response Ack Received H.248 MGC Retransmissions Retransmitted Transaction Requests Sent Retransmitted Transaction Requests Received Retransmitted Transaction Replies Sent

Description
The number of bytes sent by MGC. The number of bytes received by MGC. The number of messages sent by MGC. The number of messages received by MGC. The average sent/received messages size by MGC.
The number of transaction requests sent by MGC. The number of transaction requests received by MGC. The number of transaction replies sent by MGC. The number of transaction replies received by MGC. The number of 'Transaction pending' responses sent by MGC. The number of 'Transaction pending' responses received by MGC. The number of Ack transaction responses sent by MGC. The number of Ack transaction responses received by MGC.
The number of retransmitted transaction requests sent. The number of retransmitted transaction requests received. The number of retransmitted transaction replies sent.

IxLoad Tcl API Programming Guide

1339

VoIP H.248 Peer

Retransmitted Transaction Replies Received

The number of retransmitted transaction replies received.

H.248 MGC Commands

Add command requests sent

The number of Add command requests sent by MGC.

Add command replies received

The number of Add command replies received by MGC.

Modify command requests sent

The number of Modify command requests sent by MGC.

Modify command replies received

The number of Modify command replies received by MGC.

Move command requests sent

The number of Move command requests sent by MGC.

Move command replies received

The number of Move command replies received by MGC.

Subtract command requests sent

The number of Move command requests sent by MGC.

Subtract command replies received The number of Move command replies received by MGC.

AuditValue command requests sent The number of AuditValue command requests sent by MGC.

AuditValue command replies received

The number of AuditValue command replies received by MGC.

AuditCapability command requests The number of AuditCapability command requests

sent

sent by MGC.

AuditCapability command replies received

The number of AuditCapability command replies received by MGC.

ServiceChange command requests The number of ServiceChange command requests

sent

sent by MGC.

ServiceChange command requests The number of ServiceChange command requests

received

received by MGC.

ServiceChange command replies sent

The number of ServiceChange command replies sent by MGC.

1340

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

ServiceChange command replies received

The number of ServiceChange command replies received by MGC.

Notify command requests received The number of Notify command requests received by MGC.

Notify command replies sent

The number of Notify command replies sent by MGC.

H.248 MGC Protocol Errors

4xx Errors

The number of 4xx error messages sent and received by MGC.

5xx Errors

The number of 5xx error messages sent and received by MGC.

H.248 MGC Errors

Transport Errors

The number of transport protocol errors.

SDP Errors

The number of SDP errors.

Parser Errors

The number of parser errors.

H.248 MGC Received Requests/Replies

Transactions Not Matched

The number of transactions not matched.

Transactions Matched

The number of transactions matched.

Discarded Transactions

The number of discarded transactions.

Processed Transactions

The number of processed transactions.

Auto Processed Transactions

The number of automatically processed transactions.

H.248 MGW Transport

Bytes Sent

The number of bytes sent by MGW.

Bytes Received

The number of bytes received by MGW.

Messages Sent

The number of messages sent by MGW.

Messages Received

The number of messages received by MGW.

Avg Sent/Received Message Size The average sent/received messages size by MGW.

H.248 MGW Transactions

IxLoad Tcl API Programming Guide

1341

VoIP H.248 Peer

Transaction Requests Sent

The number of transaction requests sent by MGW.

Transaction Requests Received

The number of transaction requests received by MGW.

Transaction Replies Sent

The number of transaction replies sent by MGW.

Transaction Replies Received

The number of transaction replies received by MGW.

Transaction Pending Sent

The number of 'Transaction pending' responses sent by MGW.

Transaction Pending Received

The number of 'Transaction pending' responses received by MGW.

Transaction Response Ack Sent

The number of Ack transaction responses sent by MGW.

Transaction Response Ack Received

The number of Ack transaction responses received by MGW.

H.248 MGW Retransmissions

Retransmitted Transaction Requests Sent

The number of retransmitted transaction requests sent.

Retransmitted Transaction Requests Received

The number of retransmitted transaction requests received.

Retransmitted Transaction Replies Sent

The number of retransmitted transaction replies sent.

Retransmitted Transaction Replies Received

The number of retransmitted transaction replies received.

H.248 MGW Commands

Add command requests received

The number of Add command requests received by MGW.

Add command replies sent

The number of Add command replies sent by MGW.

Modify command requests received The number of Modify command requests received by MGW.

Modify command replies sent

The number of Modify command replies sent by MGW.

1342

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Move command requests received

The number of Move command requests received by MGW.

Move command replies sent

The number of Move command replies sent by MGW.

Subtract command requests received

The number of Move command requests received by MGW.

Subtract command replies sent

The number of Move command replies sent by MGW.

AuditValue command requests received

The number of AuditValue command requests received by MGW.

AuditValue command replies sent

The number of AuditValue command replies sent by MGW.

AuditCapability command requests The number of AuditCapability command requests

received

received by MGW.

AuditCapability command replies sent

The number of AuditCapability command replies sent by MGW.

ServiceChange command requests The number of ServiceChange command requests

sent

sent by MGW.

ServiceChange command requests The number of ServiceChange command requests

received

received by MGW.

ServiceChange command replies sent

The number of ServiceChange command replies sent by MGW.

ServiceChange command replies received

The number of ServiceChange command replies received by MGW.

Notify command requests sent

The number of Notify command requests received by MGW.

Notify command replies received

The number of Notify command replies sent by MGW.

H.248 MGW Protocol Errors

4xx Errors

The number of 4xx error messages sent and received by MGW.

5xx Errors

The number of 5xx error messages sent and received by MGW.

H.248 MGW Errors

IxLoad Tcl API Programming Guide

1343

VoIP H.248 Peer

Transport Errors

The number of transport protocol errors.

SDP Errors

The number of SDP errors.

Parser Errors

The number of parser errors.

H.248 MGW Received Requests/Replies

Transactions Not Matched

The number of transactions not matched.

Transactions Matched

The number of transactions matched.

Discarded Transactions

The number of discarded transactions.

Processed Transactions

The number of processed transactions.

Auto Processed Transactions

The number of automatically processed transactions.

H.248 Loop Rate

Loops-per-second

The per polling interval loops-per-second value.

Global

EXAMPLE
################################################## Activity H248MGC1 of NetTraffic Traffic1@Network1#################################################set Activity_ H248MGC1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "H248MGC Peer" ]

$Activity_H248MGC1 config \-enable "H248MGC1"

1 \-name

$Activity_H248MGC1 agent.config \-enable

"H248MGC1" \-uniqueID

1

SEE ALSO

ixConfig

1 \-name

1344

IxLoad Tcl API Programming Guide

VoIP H.248 Peer
Simulated MGC
VoIP H248 Simulated MGC settings
SYNOPSIS
set Activity_H248MGC1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "H248MGC Peer" ]$Activity_H248MGC1 agent.config$Activity_H248MGC1 agent.pm.simulatedMGC.config
DESCRIPTION
Simulates the source address in H.248 messages, designates the simulation type, and so on. Also contains the list of all termination groups associated with the gateway or controller.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. sourcePort Indicates the port number of the source address. Default = "2944" mgcName Indicates the device name or DNS name. It is not used when MID format is IP Address or IP Address:port. NOTE: Sequence generator expressions are also supported, for example, MEGACOCA|00-|. controlledGWType Indicates the gateway types. The types are:
l Border Gateway (IP2IP) l Trunking Gateway (PSTN2IP) l Residential Gateway (PSTN2IP) l Access Gateway (PSTN2IP) mid Indicates the format of the source address in H.248 messages. The options are: l IP Address l IP Address:port l Device Name l MGC DNS Name

IxLoad Tcl API Programming Guide

1345

VoIP H.248 Peer

l MGC DNS Name:port
EXAMPLE
set Activity_H248MGC1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "H248MGC Peer" ]

$Activity_H248MGC1 config \-enable "H248MGC1"

1 \-name

$Activity_H248MGC1 agent.config \-enable

"H248MGC1" \-uniqueID

1

1 \-name

$Activity_H248MGC1 agent.pm.simulatedMGC.config \-sourcePort

"2944" \-mgcName

"MEGACOCA\[00-\]" \-

controlledGWType

1 \-mid

1

$Activity_H248MGC1 agent.pm.simulatedMGC.termGroups.clear
SEE ALSO
VoIP H248 Peer Agent

1346

IxLoad Tcl API Programming Guide

VoIP H.248 Peer
Simulated MGW
VoIP H248 Simulated MGW settings
SYNOPSIS
set Activity_H248MGW1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "H248MGW Peer" ]$Activity_H248MGW1 agent.config$Activity_H248MGW1 agent.pm.simulatedMGW.config
DESCRIPTION
Simulates the source address in H.248 messages, designates the simulation type, and so on. Also contains the list of all termination groups associated with the gateway.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. sourcePort Indicates the port number of the source address. Default = "2944" gwName Indicates the device name or DNS name. It is not used when MID format is IP Address or IP Address:port. NOTE: Sequence generator expressions are also supported, for example, MEGACOCA|00-|. simulatedType Indicates the gateway types. The types are:
l Border Gateway (IP2IP) l Trunking Gateway (PSTN2IP) l Residential Gateway (PSTN2IP) l Access Gateway (PSTN2IP) dest The address of the controlling MGC, specified as an activity name or an IP address, followed by a port number. mid Indicates the format of the source address in H.248 messages. The format options are:

IxLoad Tcl API Programming Guide

1347

VoIP H.248 Peer

l IP Address l IP Address:port l Device Name l GW DNS Name l GW DNS Name:port
EXAMPLE
$Activity_H248MGW1 agent.pm.simulatedMGW.config \

-sourcePort

"2944" \

-gwName

"MEGACOGW|00-|" \

-simulatedType

1\

-dest

"Traffic1_H248MGC1:2944" \

-mid

1

$Activity_H248MGW1 agent.pm.simulatedMGW.termGroups.clear
SEE ALSO
VoIP H248 Peer Agent

1348

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

H248 TermGroups

VoIP H248 MGW/MGC TermGroup settings

SYNOPSIS

H248 MGW TermGroupset Activity_H248MGW1 [$Traffic2_Network2 activityList.appendItem

\-protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.-

config \$Activity_H248MGW1 agent.pm.simulatedMGW.termGroups.appendItem\

H248 MGC TermGroupset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem

\-protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.simulatedMGC.termGroups.appendItem\

DESCRIPTION

The list of all termination groups associated with the selected gateway or controller type.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. enabled If true, the term group is enabled. Default=false id Indicates the term group identification ID. Default=TermGroup name Indicates the name of the term group. For example: "H248TermGroupMGC1" \ physicalId The physical identification of the term group. If a message with termination name $ and without a physical name is received, the message can not be handled. mgw Indicates the media gateway. rootTermination Enables a request that is addressed to the ROOT termination. The request may be processed only by an user from a Termination Group marked as Root in the SimulatedMGC/MGW. Default = 0 rtpId1

IxLoad Tcl API Programming Guide

1349

VoIP H.248 Peer

The RTP termination ID. rtpId2 The second RTP termination ID.

EXAMPLE

$Activity_H248MGC1 agent.pm.simulatedMGC.termGroups.appendItem \-id

"TermGroup" \-name

"H248TermGroupMGC1" \-

physicalId

"tdm/s_0/e1_{000-}/{00-29}" \-enabled

true \-mgw

"Traffic2_H248MGW1:2944" \-

rootTermination

0 \-rtpId1

"Ephemeral/0/0/\[00000-\]" \-rtpId2

""

SEE ALSO

Simulated MGW

Simulated MGC

1350

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

MGW Automatic

VoIP H248 MGW Automatic settings

SYNOPSIS

H248 MGW Automaticset Activity_H248MGW1 [$Traffic2_Network2 activityList.appendItem

\-protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.-

config \$Activity_H248MGW1 agent.pm.automatic.config \

DESCRIPTION

Automatic Settings specifies the automatic functionality parameters for the MGW side.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. autoReplyServiceChange
If true, enables auto reply for Service Change. In this condition, Service Change requests are not dispatched to TermGroup users. Default=false. autoReplyAuditRequests
If true, auto reply for Audit requests are not dispatched to TermGroup users. Note: If a TermGroup associated with this MGW has WaitAuditVal or WaitAuditCap in scenario, the functions end with a Timeout status. sendTransAck
If true, enables sending of Transaction Ackowledgement. In the enabled state, Ack is sent after each reply is received, and a Transaction Ack is expected after each reply sent. Default=false. sendTransPend
If true, enables sending of TransactionPending reply. TransactionPending is sent when a TransactionRequest is received. The request is a retransmission. Default=false. autoReplyModifyOnRoot
If true, Modify requests with Termination ROOT are not dispatched to TermGroup users. Note: If a TermGroup associated with ROOT on this MGW has WaitModify in scenario, the function ends with a Timeout status. sendModifyOnRoot

IxLoad Tcl API Programming Guide

1351

VoIP H.248 Peer

If true, Modify requests with Termination ROOT are not dispatched to TermGroup users. Defaultt=false.

enableRetransmissions

If true, enables retransmissions of messages for which a response has not been received. Defaultt=false

maxRetransmissions

When enableRetransmissions is configured true, this is the maximum number of retransmissions. Default=1

retransmissionInterval

When enableRetransmissions is configured true, this is the time in milliseconds for the first retransmission. Default=10

commonDigitMap

If true, the Gateway uses a specified default digit map. Default=false.

digitMapName

When commonDigitMap is true, this specifies the name of the default digit map. Default="dgmap"

digitMapValue

When commonDigitMap is true, this specifies the value of the default digit map. Defaultt="1234567890"

startWithRestart

If true, the simulated MGW automatically registers with the MGC.

Note: Retransmissions for each transaction are not counted.

retryCount

Indicates the number of transactions with ServiceChange(Restart) generated.

Note: Retransmissions for each transactions are not counted.

timeoutBetweenRetries

Indicates the time between two transactions with ServiceChange(Restart) generated.

maxInactivityTime

The maximum inactivity time, after which an Inaqctivity event is generated.

EXAMPLE

$Activity_H248MGW1 agent.pm.automatic.config \-enableRetransmissions

false \-_gbCommonDigitMap

false \-maxInactivityTime

0 \-startWithRestart

true \-sendTransPend

false \-commonDigitMap

false \-retransmissionInterval

1352

IxLoad Tcl API Programming Guide

10 \-autoReplyToModifyOnRoot "" \-digitMapValue false \-sendTransAck false \-retryCount 5 \-maxRetransmissions
SEE ALSO
VoIP H248 Peer Agent

VoIP H.248 Peer
true \-digitMapName "" \-autoReplyServiceChange
false \-autoReplyAuditRequests 5 \-timeoutBetweenRetries 1

IxLoad Tcl API Programming Guide

1353

VoIP H.248 Peer

MGC Automatic

VoIP H248 MGC Automatic settings

SYNOPSIS

H248 MGC Automaticset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem

\-protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.automatic.config \

DESCRIPTION

Automatic Settings specifies the automatic functionality parameters for the MGC side.

SUBCOMMANDS
None.

OPTIONS

The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. autoReplyService Change
If true, enables auto reply for Service Change. In this condition, Service Change requests are not dispatched to TermGroup users. Default=false. autoReplyNotify
If true, enables auto reply for Notify. Default=false. sendModifyOnRoot
If true, Modify requests with Termination ROOT are not dispatched to TermGroup users. Defaultt=false
sendTransAck
If true, enables sending of Transaction Ackowledgement. In the enabled state, Ack is sent after each reply is received, and a Transaction Ack is expected after each reply sent. Default=false. sendTransPend
If true, enables sending of TransactionPending reply. TransactionPending is sent when a TransactionRequest is received. The request is a retransmission. Default=false. enableRetransmissions
If true, enables retransmissions of messages for which a response has not been received. Defaultt=false
retransmissionInterval

1354

IxLoad Tcl API Programming Guide

VoIP H.248 Peer
If enableRetransmissions is true, this specifies the time in milliseconds for the first retransmission. Default=10 maxRetransmissions If enableRetransmissions is true, this specifies the maximum number of retransmissions. Default=1 waitRestart If true, enables the restart procedure. Default=true. timeoutForRestart If waitRestart is true, this indicates the time before restart. Default=0 auditValue If true, sends an AuditValue request with the specified context, termination, and descriptors specified. Default=false. auditContextVal When auditValue is true, this specifies the context ID to which the AuditValue request is sent. Default="-". auditTerminationVal When auditValue is true, this specifies thetermination ID to which the AuditValue request is sent. Default="ROOT" digitMapVal If true, includes the descriptor in the request. Default=false eventsVal If true, includes the descriptor in the request. Default=false eventBufferVal If true, includes the descriptor in the request. Default=false mediaVal If true, includes the descriptor in the request. Default=false modemVal If true, includes the descriptor in the request. Default=false multiplexerVal If true, includes the descriptor in the request. Default=false observedEventsVal

IxLoad Tcl API Programming Guide

1355

VoIP H.248 Peer
If true, includes the descriptor in the request. Default=false packagesVal If true, includes the descriptor in the request. Default=true statisticsVal If true, includes the descriptor in the request. Default=false signalsVal If true, includes the descriptor in the request. Default=false auditCapabilities
If true, sends an AuditCapabilities request with context, termination, and descriptors as specified. Default=false
auditContextCap When auditCapabilities is true, this specifies the context ID to which the AuditCapabilities request is sent. Default="-" auditTerminationCap When auditCapabilities is true, this specifies the termination ID to which the AuditCapabilities request is sent. Default="ROOT" digitMapVal If true, includes the descriptor in the request. Default=false. eventsCap If true, includes the descriptor in the request. Default=false. eventBufferCap If true, includes the descriptor in the request. Default=false mediaCap If true, includes the descriptor in the request. Default=false modemCap If true, includes the descriptor in the request. Default=false multiplexerCap If true, includes the descriptor in the request. Default=false observedEventsCap If true, includes the descriptor in the request. Default=false

1356

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

statisticsCap

If true, includes the descriptor in the request. Default=false signalsCap

If true, includes the descriptor in the request. Default=false. digitMapPerMGW

If true, sets a default DigitMap for the gateway. Default=false. digitMapName

When digitMapPerGW is true, this specifies the name of the default Digit Map. Default="dgmap". digitMapValue

When digitMapPerGW is true, this specifies the value of the default digit map. Defaultt="1234567890".

enableKeepAlive

If true, activates the MGC keepalive mechanism by sending an inactivity timeout parameter to the GW. Default=false.
maxInactivityTime

If the Inactivity Timer Package is selected and the enableKeepAlive option is enabled, the configured timeout value value is sent to the GW. Default=10000.

EXAMPLE

$Activity_H248MGC1 agent.pm.automatic.config \-enableKeepAlive

false \-signalsCap

false \-eventBufferVal

false \-sendTransPend

false \-modemVal

false \-digitMapName

"dgmap" \-autoReplyNotify

false \-multiplexerVal

false \-eventsVal

false \-auditTerminationCap

"ROOT" \-timeoutForRestart

0 \-packagesVal

true \-mediaCap

false \-statisticsCap

false \-autoReplyServiceChange

false \-auditTerminationVal

"ROOT" \-auditCapabilities

false \-sendTransAck

false \-observedEventsCap

false \-maxRetransmissions

1 \-auditValue

false \-digitMapPerMGW

false \-maxInactivityTime

10000 \-signalsVal

false \-auditContextVal

"-" \-statisticsVal

false \-digitMapValue

"1234567890" \-eventsCap

false \-sendModifyOnRoot

false \-enableRetransmissions

false \-mediaVal

false \-retransmissionInterval

10 \-modemCap

false \-eventBufferCap

false \-observedEventsVal

false \-digitMapVal

false \-waitRestart

true \-auditContextCap

"-" \-multiplexerCap

IxLoad Tcl API Programming Guide

1357

VoIP H.248 Peer
false
SEE ALSO
VoIP H248 Peer Agent

1358

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Profiles

VoIP H248 MGC/MGW Profiles Settings

SYNOPSIS

MGC Profileset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.profiles.config \MGW Profileset Activity_

H248MGW1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.config \$Activity_H248MGW1 agent.p-

m.profiles.config \

DESCRIPTION

A collection of packages where each package is a collection of events, signals, statistics, properties, and procedures.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. profile
The name of the profile. Default="ETSI_TGW/1"

EXAMPLE
$Activity_H248MGC1 agent.pm.profiles.config \-profile "ETSI_TGW/1"
SEE ALSO
VoIP H248 Peer Agent

IxLoad Tcl API Programming Guide

1359

VoIP H.248 Peer

Packages

VoIP H248 MGC/MGW Packages

SYNOPSIS

MGC Packagesset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.profiles.config \$Activity_H248MGC1 agent.p-

m.profiles.packages.appendItemMGW Packagesset Activity_H248MGW1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGW Peer"

]$Activity_H248MGW1 agent.config \$Activity_H248MGW1 agent.pm.profiles.config

\$Activity_H248MGW1 agent.pm.profiles.packages.appendItem

DESCRIPTION

A collection of events, signals, statistics, properties, and procedures.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Shows the package type and package description of the supported packages for a particular profile type. Default="Package" supported Indicates the packages supported by the selected profile. NOTE: The is editable when a custom profile is selected. hexid Indicates the hexadecimal id. Default=1 version Indicates the protocol version. Allowed values are 1, 2, or 3. Default=2

EXAMPLE

$Activity_H248MGC1 agent.pm.profiles.packages.appendItem \-id

"Package" \-supported

0 \-hexid

1 \-version

2

1360

IxLoad Tcl API Programming Guide

SEE ALSO
Profiles

VoIP H.248 Peer

IxLoad Tcl API Programming Guide

1361

VoIP H.248 Peer

Events

VoIP H248 MGC/MGW Events

SYNOPSIS

MGC Packagesset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.profiles.config \$Activity_H248MGC1 agent.p-

m.profiles.packages.appendItem$Activity_H248MGC1 agent.pm.profiles.packages

(0).events.appendItem \MGW Packagesset Activity_H248MGW1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activ-

ity_H248MGW1 agent.config \$Activity_H248MGW1 agent.pm.profiles.config \$Activity_

H248MGW1 agent.pm.profiles.packages.appendItem$Activity_H248MGW1 agent.p-

m.profiles.packages(0).events.appendItem \

DESCRIPTION

Configures a collection of events.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the identification for events. Default="CID" hexid Indicates the hexadecimal id. Default=1

EXAMPLE

$Activity_H248MGC1 agent.pm.profiles.packages(1).events.appendItem \-id

"CID" \-hexid

1

SEE ALSO

Packages

1362

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Properties

VoIP H248 MGC/MGW Properties

SYNOPSIS

MGC Packagesset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.profiles.config \$Activity_H248MGC1 agent.p-

m.profiles.packages.appendItem$Activity_H248MGC1 agent.pm.profiles.packages

(2).properties.appendItem \MGW Packagesset Activity_H248MGW1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGW Peer"

]$Activity_H248MGW1 agent.config \$Activity_H248MGW1 agent.pm.profiles.config

\$Activity_H248MGW1 agent.pm.profiles.packages.appendItem$Activity_H248MGW1 agent.p-

m.profiles.packages(2).properties.appendItem \

DESCRIPTION

Configures a collection of properties.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the identification for properties. Default="CID" hexid Indicates the hexadecimal id. Default=1

EXAMPLE

$Activity_H248MGC1 agent.pm.profiles.packages(2).properties.appendItem \-id

"CID" \-hexid

1

SEE ALSO

Packages

IxLoad Tcl API Programming Guide

1363

VoIP H.248 Peer

Signals

VoIP H248 MGC/MGW Signals

SYNOPSIS

MGC Packagesset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.profiles.config \$Activity_H248MGC1 agent.p-

m.profiles.packages.appendItem$Activity_H248MGC1 agent.pm.profiles.packages

(5).signals.appendItem \MGW Packagesset Activity_H248MGW1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activ-

ity_H248MGW1 agent.config \$Activity_H248MGW1 agent.pm.profiles.config \$Activity_

H248MGW1 agent.pm.profiles.packages.appendItem$Activity_H248MGC1 agent.p-

m.profiles.packages(5).signals.appendItem \

DESCRIPTION

Configures a collection of signals.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the identification for signals. Default="CID" hexid Indicates the hexadecimal id. Default=1

EXAMPLE

$Activity_H248MGC1 agent.pm.profiles.packages(5).signals.appendItem \-id

"CID" \-hexid

1

SEE ALSO

Packages

1364

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Statistics

VoIP H248 MGC/MGW Statistics

SYNOPSIS

MGC Packagesset Activity_H248MGC1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGC Peer" ]$Activity_H248MGC1 agent.-

config \$Activity_H248MGC1 agent.pm.profiles.config \$Activity_H248MGC1 agent.p-

m.profiles.packages.appendItem$Activity_H248MGC1 agent.pm.profiles.packages

(16).statistics.appendItem \MGW Packagesset Activity_H248MGW1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGW Peer"

]$Activity_H248MGW1 agent.config \$Activity_H248MGW1 agent.pm.profiles.config

\$Activity_H248MGW1 agent.pm.profiles.packages.appendItem$Activity_H248MGW1 agent.p-

m.profiles.packages(16).statistics.appendItem \

DESCRIPTION

Configures a collection of statistics.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the identification for statistics. Default="CID" hexid Indicates the hexadecimal id. Default=1

EXAMPLE

$Activity_H248MGC1 agent.pm.profiles.packages(16).statistics.appendItem \-id

"CID" \-hexid

5

SEE ALSO

Packages

IxLoad Tcl API Programming Guide

1365

VoIP H.248 Peer

H248 Settings

VoIP H248 Settings for MGW or MGC

SYNOPSIS

H248 Settings for MGWset Activity_H248MGW1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activ-

ity_H248MGW1 agent.config$Activity_H248MGW1 agent.pm.h248Settings.config

H248 Settings for MGCset Activity_H248MGC1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGC Peer" ]$Activ-

ity_H248MGC1 agent.config$Activity_H248MGC1 agent.pm.h248Settings.config \

DESCRIPTION

H248 Settings specifies the H248 protocol settings for MGC and MGW.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. enableTos Enables the type of service for H248. transportType Indicates the transport type of type UDP. ipPreference Indicates the IP preference of IPv4 or IPv6. tos Indicates whether the TOS/DSCP byte setting is taken into consideration when sending SIP packets. textEncoding Indicates the type of text encoding:
l Compact l Normal l Pretty nUdpMaxSize

1366

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Indicates the maximum size of UDP. Default=1024 protocolVersion Indicates the versions of the protocol type. Allowed values of protocol versions are 1, 2, or 3. encodingType Indicates the encoding type of type text.

EXAMPLE

$Activity_H248MGW1 agent.pm.h248Settings.config \-enableTos

false \-transportType

0 \-ipPreference

0 \-tos

0 \-textEncoding

3 \-nUdpMaxSize

1024 \-protocolVersion

3 \-encodingType

0

$Activity_H248MGC1 agent.pm.h248Settings.config \-enableTos

false \-transportType

0 \-ipPreference

0 \-tos

0 \-textEncoding

3 \-nUdpMaxSize

1024 \-protocolVersion

3 \-encodingType

0

SEE ALSO

VoIP H248 Peer Agent

IxLoad Tcl API Programming Guide

1367

VoIP H.248 Peer

Codec Settings

VoIP H248 MGC/MGW Term Group Codec settings

SYNOPSIS

VoIP H248 MGC TermGroup Codec Settingsset Activity_H248MGC1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGC Peer"

]$Activity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.p-

m.codecSettings.config \VoIP H248 MGW TermGroup Codec Settingsset Activity_H248MGW1

[$Traffic2_Network2 activityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.config \$Activity_H248TermGroupMGW1 agent.p-

m.codecSettings.config \

DESCRIPTION

Codec Settings contains the list of codecs that is used by the VoIP H248 MGC/MGW Term Groups in the test. Codec Settings is a list of one or more codec (audio codec) objects. To add codec objects, use the appendItem command. To clear the codec settings, use the clear subcommand.

SUBCOMMANDS

None

OPTIONS
codecs_number Indicates the codec numbers. Default=2

EXAMPLE
$Activity_H248TermGroupMGC1 agent.pm.codecSettings.config \-codecs_number 2
SEE ALSO
VoIP H248 Peer Agent

1368

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Data Codecs

VoIP H248 MGC/MGW Term Group Data Codecs

SYNOPSIS

VoIP H248 MGC TermGroup Data Codec Settingsset Activity_H248MGC1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGC Peer"

]$Activity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.p-

m.codecSettings.config \$Activity_H248TermGroupMGC1 agent.p-

m.codecSettings.dataCodecs.appendItem \VoIP H248 MGW TermGroup Data Codec

Settingsset Activity_H248MGW1 [$Traffic2_Network2 activityList.appendItem \-

protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.-

config \$Activity_H248TermGroupMGW1 agent.pm.codecSettings.config \$Activity_H248Ter-

mGroupMGW1 agent.pm.codecSettings.dataCodecs.appendItem \

DESCRIPTION

Data Codecs configures a data codec object, which is added to the Codec Settings list of codecs.

SUBCOMMANDS
None.

OPTIONS
id Codec type. One of the following:

Codec

Description

Rtp2833Events Named Events Payload format used for carrying DTMF digits and other line and trunk signals as events.

Rtp2833Tones RTP Payload format that can represent tones consisting of one or more frequencies.

dPayloadType Payload type used for RTP data packets. Default=(see table) min="96" max="127"

Codec

Default value for dPayloadType

Rtp2833Events 100

Rtp2833Tones 101

EXAMPLE
$Activity_H248TermGroupMGC1 agent.pm.codecSettings.dataCodecs.clear

IxLoad Tcl API Programming Guide

1369

VoIP H.248 Peer

$Activity_H248TermGroupMGC1 agent.pm.codecSettings.dataCodecs.appendItem \-id

"Rtp2833Events" \-dPayloadType

100

$Activity_H248TermGroupMGC1 agent.pm.codecSettings.dataCodecs.appendItem \-id

"Rtp2833Tones" \-dPayloadType

101

SEE ALSO

Codec Settings

1370

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Codecs

VoIP H248 MGC/MGW Term Group Audio Codecs

SYNOPSIS

VoIP H248 MGC TermGroup Codecsset Activity_H248MGC1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGC Peer" ]$Activ-

ity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.pm.codecSettings.config

\$Activity_H248TermGroupMGC1 agent.pm.codecSettings.codecs.appendItem \VoIP H248 MGW

TermGroup Data Codecsset Activity_H248MGW1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activ-

ity_H248MGW1 agent.config \$Activity_H248TermGroupMGW1 agent.pm.codecSettings.config

\$Activity_H248TermGroupMGW1 agent.pm.codecSettings.codecs.appendItem \

DESCRIPTION

Codecs configures an audio codec object, which is added to the Codec Settings list of codecs. To add a codec object, use the appendItem command.

SUBCOMMANDS
None.

OPTIONS
id The codec type, which is one of the following:

Codec

Description

CodecAMR

Adaptive multi-rate codec

CodecG711u

G.711 mu-law codec

CodecG711a

G.711 A-law codec

CodecG723x153 G.723.1 codec @ 5.3 kbps

CodecG723x163 G.723.1 codec @ 6.3 kbps

CodecG726x16 G.726 codec @ 16 Kbps

CodecG726x24 G.726 codec @ 24 Kbps

CodecG726x32 G.726 codec @ 32 Kbps

CodecG726x40 G.726 codec @ 40 Kbps

IxLoad Tcl API Programming Guide

1371

VoIP H.248 Peer

CodecG729A CodeciLBC

G.729 Annex-A codec iLBC codec

Options for CodecAMR
dPayloadIn Incoming dynamic payload type. Default="98" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="98" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 14. Default=14. payloadFormat Payload format.

Value

Usage

0 (default) Bandwidth-efficient format

1

Octet-aligned format

mode Codec bit rate. One of the following:

Mode

Description

0 (default) 4.75 kbps

1

5.15 kbps

2

5.90 kbps

3

6.70 kbps

4

7.40 kbps

5

7.95 kbps

6

10.20 kbps

1372

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

7

12.20 kbps

Options for CodecG711u
dPayloadIn Incoming dynamic payload type. Default="0" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="0" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.

Options for CodecG711a
dPayloadIn Incoming dynamic payload type. Default="8" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="8" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.

Options for CodecG723x153
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 20. Default=20.

Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize

IxLoad Tcl API Programming Guide

1373

VoIP H.248 Peer

Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG726x16
dPayloadIn Incoming dynamic payload type. Default="102" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="102" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 20, 40, 60. Default=20.
Options for CodecG726x24
dPayloadIn Incoming dynamic payload type. Default="103" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="103" min="0" max="127". byteOrder Byte order.

1374

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 30, 60, 90. Default=30.
Options for CodecG726x32
dPayloadIn Incoming dynamic payload type. Default="104" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="104" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 40, 80, 120. Default=40.
Options for CodecG729
dPayloadIn Incoming dynamic payload type. Default="18" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="18" min="0" max="127". cbxFrameSize Bytes per frame. Must be one of the following: 10, 20, 30, 40, 50, Custom. Default=10. customFrameSize If cbxFrameSize is Custom, this option configures the custom frame size. Default="120" min="10" max="200".

IxLoad Tcl API Programming Guide

1375

VoIP H.248 Peer

EXAMPLE
$Activity_H248TermGroupMGC1 agent.pm.codecSettings.codecs.clear

$Activity_H248TermGroupMGC1 agent.pm.codecSettings.codecs.appendItem \-id

"CodecG711u" \-dPayloadOut

0 \-dPayloadIn

0 \-frameSize

160

$Activity_H248TermGroupMGC1 agent.pm.codecSettings.codecs.appendItem \-id

"CodecG711a" \-dPayloadOut

8 \-dPayloadIn

8 \-frameSize

160

SEE ALSO

Codec Settings

1376

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Other Settings

VoIPH248 MGC/MGW Term Group Peer Other Settings

SYNOPSIS

VoIP H248 MGC TermGroup Other Settingsset Activity_H248MGC1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGC Peer"

]$Activity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.p-

m.otherSettings.configVoIP H248 MGW TermGroup Other Settingsset Activity_H248MGW1

[$Traffic2_Network2 activityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.config \$Activity_H248TermGroupMGW1 agent.p-

m.otherSettings.config

DESCRIPTION

This object configures the VoIP H248 MGC/MGW Term Group Peer activity's miscellaneous options.

SUBCOMMANDS
None.

OPTIONS
VOIP_Var0 The VOIP_Var1...VOIP_Var5 and VOIP_IPAddr1...VOIP_IPAddr5 string-type variables supporting generator expressions enable you to generate 10 series of global variables whose values are used at runtime by the simulated H.248 Term Group phones/channels. Default="". Use the VOIP_Var1...VOIP_Var5 variables to represent phone numbers, and the VOIP_IPAddr1...VOIP_ IPAddr5 to represent IP addresses. VOIP_Var1 See VOIP_Var0. VOIP_Var2 See VOIP_Var0. VOIP_Var3 See VOIP_Var0. VOIP_Var4 See VOIP_Var0. VOIP_IPAddress0 See VOIP_Var0. VOIP_IPAddress1

IxLoad Tcl API Programming Guide

1377

VoIP H.248 Peer

See VOIP_Var0. VOIP_IPAddress2 See VOIP_Var0. VOIP_IPAddress3 See VOIP_Var0. VOIP_IPAddress4 See VOIP_Var0. ipPreference Type of addressing to be used on the subnet that the VOIP H248 Term Group runs on.

Value

Usage

0 (default) IPv4

1

IPv6

EXAMPLE

$Activity_H248TermGroupMGC1 agent.pm.otherSettings.config \-VOIP_Var1

"" \-VOIP_Var0

"" \-VOIP_Var3

"" \-VOIP_Var2

"" \-VOIP_Var4

"" \-VOIP_IPAddress4

"" \-VOIP_IPAddress1

"" \-VOIP_IPAddress0

"" \-VOIP_IPAddress3

"" \-VOIP_IPAddress2

""

SEE ALSO

VoIP H248 Peer Agent

1378

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

SDP Settings

VoIPH248 MGC/MGW Term Group SDP Settings

SYNOPSIS

VoIP H248 MGC TermGroup SDP Settingsset Activity_H248MGC1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGC Peer" ]$Activ-

ity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.pm.sdpSettings.config

\VoIP H248 MGW TermGroup SDP Settingsset Activity_H248MGW1 [$Traffic2_Network2 activ-

ityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activ-

ity_H248MGW1 agent.config \$Activity_H248TermGroupMGW1 agent.pm.sdpSettings.config \

DESCRIPTION

H.248 uses SDP for specification and negotiation of media capabilities of GW terminations. SDP information is sent using a Stream descriptor that specifies as a single bi-directional media stream.

SUBCOMMANDS
None.

OPTIONS
replaceAutoSdpTemplate If true, the auto SDP template constructed from the codec list can be overridden by editing the SDP template. Default=false encodeRtpMap If true, a static payload type is included in the auto SDP. Default=false replaceAutoSDP If true, the auto SDP description constructed from the codecs list is overridden by editing the SDP template. Default=false skipSdpProcessing If true, the MGC automatically processes and sends Local descriptors (the SDP template). Default=0 autoSdpTemplate The SDP string that is used when the Auto option is selected for an SDP descriptor. Default="v=0

EXAMPLE

$Activity_H248TermGroupMGC1 agent.pm.sdpSettings.config \-replaceAutoSdpTemplate

false \-encodeRtpMap

false \-replaceAutoSDP

false \-skipSdpProcessing

0\

-autoSdpTemplate"v=0 c=IN IP4 \$

IxLoad Tcl API Programming Guide

1379

VoIP H.248 Peer
m=audio \$ RTP/AVP 0" \ -autoSDP"v=0 o=- 0 0 IN IP4 \ [\$VOIP_MediaIP\] s=session c=IN IP4 \[\$VOIP_MediaIP\] b=CT:1000 t=0 0 m=audio \ [\$VOIP_MediaBasePort\] RTP/AVP 0 101 a=rtpmap:0 PCMU/8000\a=rtpmap:101 telephoneevent/8000\a=fmtp:101 0-16"
SEE ALSO
VoIP H248 Peer Agent

1380

IxLoad Tcl API Programming Guide

VoIP H.248 Peer
RTP Settings
VoIPH248 MGC/MGW TermGroup RTP settings
SYNOPSIS
VoIP H248 MGC TermGroup RTP Settings$Activity_H248TermGroupMGC1 agent.pm.rtpSettings.configVoIP H248 MGW TermGroup RTP Settings$Activity_H248TermGroupMGW1 agent.pm.rtpSettings.config
DESCRIPTION
The RTP Settings configure the VoIPH248 MGC/MGW TermGroup RTP transport settings.
SUBCOMMANDS
None.
OPTIONS
enableRTP If true, enables use of RTP to transport the media traffic. Default= False rtpPort The port used for RTP streaming. Default="10000". enableRTCP Enables the sending and receiving of RTCP packets. chEnableHwAcc If true, enables hardware acceleration for RTP traffic. Default=false. enableAdvStatCalc If true, enables the computation of advanced RTP statistics. enablePerStream Enables computation of per-stream statistics. enableMDI Enables computation of MDI DF and MDI MLR statistics. enableNBExec If true, all RTP functions from a scenario execute in a non-blocking mode, i.e the current function from a channel executes in the background, allowing the execution to continue on that channel with the next script function. Default= False.
EXAMPLE
$Activity_H248TermGroupMGC1 agent.pm.rtpSettings.config \-enableRTP

IxLoad Tcl API Programming Guide

1381

VoIP H.248 Peer
true \-enableRTCP false \-chEnableHwAcc false \-enableAdvStatCalc false \-rtpPort false
SEE ALSO
VoIP H248 Peer Agent

false \-enableMDI true \-chDisableHwAcc false \-enablePerStream "\[10000-65535,4\]" \-enableNBExec

1382

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Audio Settings
H.248 TermGroup audio settings
SYNOPSIS
$Activity_H248TermGroupMGC1 agent.pm.rtpSettings.config\$Activity_H248TermGroupMGW1 agent.pm.rtpSettings.config
DESCRIPTION
The Audio Settings configure the VoIPH248 TermGroup audio RTP settings.
SUBCOMMANDS
None.
OPTIONS
enableAudio If selected, audio script functions are executed, otherwise they are skipped. audioClip The played audio clip file. playTypeAudio The mode in which the clip is played.

Value

Usage

0

The clip is played for clip duration or for the duration of the Talk Time parameter in the

(default) case of BHCA/CPS/LPS objectives.

1

The clip is played for a user-defined duration.

audioDurationUnit The play duration unit, which can be miliseconds (0), seconds (1), minutes (2), or hours (3). outputLevel The output level of the played clip. enableTosRtp Enables use of TOS/DSCP. Use the rtpTos option to specify the TOS/DSCP value. Default= False rtpTosVal The Type of Service (TOS/DSCP) byte setting in the sent RTP packets has one of the following values:

IxLoad Tcl API Programming Guide

1383

VoIP H.248 Peer
l Best Effort (0x00): Routine service l Class 1 (0x20): Priority service, Assured Forwarding class 1 l Class 2 (0x40): Immediate service, Assured Forwarding class 2 l Class 3 (0x60): Flash, Assured Forwarding class 3 l Class 4 (0x80): Flash-override, Assured Forwarding class 4 l Express Forwarding (0xA0): Critical-ecp l Control (0xC0): Internet-control l Custom: A user-specified value. useMOS Enables the computation of MOS scores. Default= False. enableAudioOWD If true, IxLoad computes the One-way Delay metric, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default= False useJitter If true, enables use of a jitter buffer. Default= False. jitMs If useJitter is 1, this option configures the size of the jitter buffer, in milliseconds. Default="20" minn="1" max="3000". useJitComp If true, enables dynamic modification of the jitter buffer size. Default= False. jitCMs If useJitComp is 1, this option configures the maximum size in of the jitter buffer, in milliseconds. Default="1000" min="0" max="3000". jitCMaxDrop If useJitComp is 1, this option configures the condition - a maximum number of consecutive packets dropped - that determines the jitter buffer size to be increased. enableQoV If true, this enables QoV P.862 PESQ and P.56 QoV computation. Default= False. channelTypeQoV When enableQoV is true, this specifies the objective type as either of the following: l Number of channels (0) l Percentage (1)

1384

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

valueQoV
When enableQoV is true, this specifies the number of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 0). Alternatively this represents the percentage of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 1).
unitsQoV
The channels selection mode, which can be any of the following:
l First channels (0) l Last channels (1) l Evenly-spaced channels (2) l Random (3)
metricsQoV
When enableQoV is true, this specifies the metric that is calculated by the Zion card. Available options are:
l PESQ and P.56 (0) l PESQ (1) l P56 (2)
useSilence
If true, RTP packets containing artificial background noise are sent when no other media (DTMF, MF, real payload, and so on) is sent over the communication channel. Default= False.
silenceMode
If useSilence is 1, this option configures the silence mode.

Value

Usage

0

Null data encoded

1 (default) Comfort noise.

EXAMPLE

$Activity_H248TermGroupMGC1 agent.pm.audioSettings.config \-enableAudio

true \-audioClip

"US_042.wav" \-playTypeAudio

0 \-audioDurationUnit

1 \-audioDuration

10 \-outputLevel

-20-enableAudioOWD

false \-enableTosRtp

false \-rtpTosVal

32 \-useMos

false \-useJitter

false \-jitMs

20 \-useJitComp

false \-jitCMs

1000 \-jitCMaxDrop

7 \-enableQoV

false \-channelTypeQoV

IxLoad Tcl API Programming Guide

1385

VoIP H.248 Peer
0 \-valueQoV 0 \-metricsQoV false \-silenceMode
SEE ALSO

100 \-unitsQoV 0 \-useSilence
1\

1386

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Execution Settings

VoIP H248 MGC/MGW Term Group Execution Settings

SYNOPSIS

VoIP H248 MGC TermGroup Execution Settingsset Activity_H248MGC1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGC Peer"

]$Activity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.p-

m.executionSettings.config \VoIP H248 MGW TermGroup Execution Settingsset Activity_

H248MGW1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"H248MGW Peer" ]$Activity_H248MGW1 agent.config \$Activity_H248TermGroupMGW1 agent.p-

m.executionSettings.config \

DESCRIPTION

This object defines the execution settings for the VoIP H248 MGC/MGW Term Group.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. gracefulRampDown If enabled, allows the user to exit gracefully after a session. Default=1 loopCount If loopMode is 1, this option defines the number of loops that the test performs. Default="1". loopPreDelay Delay before first loop (ms). Default="0". loopMode Defines how many loops are executed for every voice channel corresponding to this activity.

Value

Description

0 (default) Loop for the entire test duration.

1

Execute a number of loops. Specify the number of loops in loopCount.

loopMidDelay Delay between loops (ms). Default="0".

IxLoad Tcl API Programming Guide

1387

VoIP H.248 Peer

EXAMPLE

$Activity_H248TermGroupMGC1 agent.pm.executionSettings.config \-gracefulRampDown

1 \-loopMidDelay

0 \-loopPreDelay

0 \-loopCount

2 \-loopMode

1

SEE ALSO

VoIP H248 Peer Agent

1388

IxLoad Tcl API Programming Guide

VoIP H.248 Peer

Scenario Settings

VoIP H248 MGC/MGW TermGroup Scenario Settings

SYNOPSIS

VoIP H248 MGC TermGroup Scenario Settingsset Activity_H248MGC1 [$Traffic2_Network2

activityList.appendItem \-protocolAndType

"H248MGC Peer"

]$Activity_H248MGC1 agent.config \$Activity_H248TermGroupMGC1 agent.p-

m.scenarioSettings.config \VoIP H248 MGW TermGroup Scenario Settingsset Activity_

H248MGW1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType

"H248MGW Peer" ]\$Activity_H248MGW1 agent.config \$Activity_H248TermGroupMGW1

agent.pm.scenarioSettings.config \

DESCRIPTION

Scenario Settings specifies the test scenario file that will be used by the Tcl script.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. scenarioFile The full path to the test scenario file for the activity. activeScenarioChannel Test scenario channel (0-based index) that is associated with the VoIP H248 Peer activity. Default=0

EXAMPLE
$Activity_H248TermGroupMGC1 agent.pm.scenarioSettings.config \
-scenarioFile "C:\\Documents and Settings\\bmoraru\\My \ Documents\\Load3.70\\test1.tst" \
-activeScenarioChannel0

SEE ALSO
VoIP H248 Peer Agent

IxLoad Tcl API Programming Guide

1389

VoIP H.248 Peer ! 37

1390

IxLoad Tcl API Programming Guide

VoIP H.323 Peer
The IxLoad VoIP H.323 Peer Tcl API consists of a VoIP H.323 Peer agent, with separate APIs for configuring each major aspect of the agent's functionality.
API Overview
Limitations
The following restrictions and limitations of the VoIPH.323 Peer API exist: l Individual VoIP H323 script functions can not be added and edited from the Tcl API. Instead, you must add and configure the commands in the Scenario Editor, save the test scenario file, then pass it as an argument to the ScenarioSettings API class. l Implementation of the BHCA objective features relies on two classes, CustomParameters and CustomActivityLinkSettings that have to be configured using the same parameters.

IxLoad Tcl API Programming Guide

1391

VoIP H.323 Peer
VoIP H323 Peer API Commands
The IxLoad VoIP H323 Peer API commands are organized as shown in the following figure.

1392

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

VoIP H323 Peer API Objects
The following table summarizes the VoIP H323 Peer API Objects

Object

Description

VoIP H323 Peer Agent Top-level object defining the VoIP H323 Peer activity.

Scenario Settings

Selects the Test Scenario file; corresponds to the Scenario Settings GUI tab.

Codec Settings

List of Codecs objects.

Codecs

Audio codec with parameters.

H323 Settings

VoIP H323 Peer parameters; corresponds to the H323 Settings GUI tab.

Execution Settings

Run-time test configuration; corresponds to the Execution Settings GUI tab.

Terminal Capability

Configures the terminal capability settings.

Dial Plan

Configures the registration names, phone numbers, and source, destination, and transfer addresses for the channels/phones; corresponds to the Dial Plan GUI tab.

RTP Settings

RTP transport configuration; corresponds to the RTP Settings GUI tab.

Audio Settings

Audio settings; corresponds to the Audio GUI tab.

Other Settings

VoIP H323 Peer miscellaneous parameters; corresponds to the Other Settings GUI tab.

Custom Activity Link Settings, CustomParameters

BHCA objective configuration; corresponds to the Custom Parameters GUI tab.

IxLoad Tcl API Programming Guide

1393

VoIP H.323 Peer

VoIP H323 Peer Agent

VoIP H323 Peer Agent

SYNOPSIS

set Activity_VoIPH323Peer1 \[$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]

DESCRIPTION

A VoIP H.323 Peer agent is added to the agentList option of the ixConfig object using the

appendItem subcommand from the ixConfigSequenceContainer command. Other ixCon-

figSequenceContainer subcommands may be used to modify the agentList. See the following

example:

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer2 con-

fig \-enable

true \-name

"VoIPH323Peer1" \-enableConstraint

false \-userObjectiveValue

1 \-constraintValue

100 \-userObjectiveType

"channels" \-timeline

$Timeline1 \

$Activity_VoIPH323Peer1 agent.config \-enable

\-name

"VoIPH323Peer1"

true

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by: $Activity_VoIPH323Peer1 agent(0).config -name "VoIPH323Peer new"

SUBCOMMANDS

None.

OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time. uniqueID The unique ID of this object. (Default = 1)

STATISTICS
The available H.323 statistics are listed below.

1394

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Statistic VoIPH323 Channels Total Channels Completed Channels Warning Channels
Failed Channels
Aborted Channels
Active Channels VoIPH323 Loops Completed Channel Loops
Warning Channel Loops

Description

Per Channel/Global

The per polling interval total number of channels, Global a sum of active and non-active channels.

The per polling interval number of COMPLETED

Global

channels. A channel is COMPLETED if all the chan-

nel loops were COMPLETED.

The per polling interval number of WARNING chan- Global nels. A channel is WARNING if all the channel loops were COMPLETED or WARNING and at least one loop had a WARNING result.

The per polling interval number of FAILED channels. A channel is FAILED if all the channel loops were COMPLETED or WARNING, and at least one loop was FAILED.

Global

The per polling interval number of ABORTED channels. A channel is ABORTED if all the channel loops were COMPLETED, WARNING, FAILED, or ABORTED and at least one loop was ABORTED.

Global

The per polling interval number of active channels. Active channels are the channels executing a scenario channel functions flow.

Global

The cumulative count of COMPLETED channel loops. A channel loop is COMPLETED if all executed script functions in the corresponding scenario channel produced SKIPPED or COMPLETED results.

Global

The cumulative count of WARNING channel loops. A channel loop has a WARNING result if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, or WARNING results and at least one script function had a WARNING result.

Global

IxLoad Tcl API Programming Guide

1395

VoIP H.323 Peer

Failed Channel Loops

The cumulative count of FAILED channel loops. A channel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, or FAILED results and at least one script function had a FAILED result.

Global

Aborted Channel Loops

The cumulative count of ABORTED channel loops. A channel loop is FAILED if all the executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, FAILED, or ABORTED results and at least one script function had an ABORTED result.

Global

Total Channel Loops

The cumulative count of executed loops.

Global

Interloop Duration (Avg) [ms] The time gap between loops.

Global

VoIPH323 Calls

Attempted Calls

The number of initiated calls.

Global

Connected Calls

The number of established calls.

Global

Received Calls

The number of received incoming calls.

Global

Answered Calls

The number of answered incoming calls.

Global

End Calls Initiated

The count of initiated end call procedures, incremented whenever an Initiate EndCall (EndCall with "Wait other party to disconnect" option is disabled) command execution is started.

Global

End Calls Received

The count of received end call procedures, incremented whenever an Await EndCall(EndCall with "Wait other party to disconnect" option is enabled) command execution is started.

Global

End Calls Completed

The count of completed end call procedures.

Global

Active Calls

The number of active calls at one time.

Global

For the initiator side a call is active after having sent a SETUP message and until receiving or sending a RELEASE COMPLETE message.

For the terminating side, a call is active after having received SETUP message and until sending or receiving RELEASE COMPLETE message.

1396

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Busy Calls

Updated when an incoming call is received for an alias/number on which an existing call is in progress.

Global

VoIPH323 Call Rates

Attempted calls/s, Connected Calls/s, Received Calls/s, Answered Calls/s, Rejected Calls/s, Busy Calls/s

The per polling interval rates for the above VoIPH323 Call statistics.

Global

VoIPH323 Busy Hour Call Measurements

BHCA

The per polling interval Busy Hour Call Attempts rate that represents the number of calls initiated in one hour.

Global

BHCC

The per polling interval Busy Hour Call Completions rate that represents the number of calls initiated and connected in one hour.

Global

VoIPH323 Call Times

Call Setup Time (Avg) [ms]

The average duration between the moment a call Global is initiated and call is connected.

Talk Time (Avg) [ms]

The average talk time (the duration between the Global moment the call is connected and the moment the call is disconnected by one of the parties).

End Call Time (Avg) [ms]

From the time the EndCall is executed to the time it takes to tear down the call and complete the EndCall execution.

Global

Total Call Duration (Avg) [ms] The average call duration. When referring to a

Global

single call: (Entire) Call Length = Call Setup-Time

+ Talk Time + Call Teardown Time.

VoIPH323 Registrations

Attempted Registrations

This statistic is updated when a RRQ is sent. Note: It is not updated when a light-weight RRQ is sent.

Global

IxLoad Tcl API Programming Guide

1397

VoIP H.323 Peer

Successful Registrations

This statistic is updated when a RFC is received for an RRQ which is not a light weight RRQ.

Global

Failed Registrations

This statistic is updated when a RRJ is received for an RRQ which is not a light weight RRQ.

Global

Attempted DeRegistrations

This statistic is updated when an URQ is sent.

Global

Successful De-Registrations

The cumulative count of successful de-registrations, incremented when the phone receives the reply UnregisterConfirm message from the gatekeeper.

Global

Failed De-Registrations

This statistic is updated when an URJ is received. Global

VoIPH323 Registration Rates

Attempted Registrations /sec The per polling interval rate of attempted registrations.

Global

Successful Registrations /sec The per polling interval rate of successful registrations.

Global

Attempted DeRegistrations /sec

The per-polling interval rate of attempted deregistrations.

Global

Successful DeRegistrations /sec

The per polling interval rate of successful registrations.

Global

VoIPH323 Registration Times

Registration Time (Avg) [ms]

The registration time from the time a RRQ is sent to the time a RCF is received.
Note: This statistic is not updated for lightweight RRQ transactions.

Global

DeRegistration Time (Avg) [ms]

The de-registration time from the time an URQ is sent to the time an UCF is received.

Global

VoIPH323 Gatekeeper Discovery Requests

VoIPH323 GK Request GRQ Transmitted

The number of Gatekeeper requests transmitted. Global

VoIPH323 GK Confirm GCF Received

The number of Gatekeeper confirmations received.

Global

1398

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

VoIPH323 GK Reject GRJ Received

The number of Gatekeeper Rejects received.

Global

VOIPH323 GRQ Timed Out

The number of sent Gatekeeper requests that timed out.

Global

VoIPH323 Gatekeeper Registration Requests

VoIPH323 Registration Request RRQ Transmitted

The number of sent Registration Requests messages transmitted.

Global

VoIPH323 Registration Confirm RCF Received

The number of received confirmation messages.

Global

VoIPH323 Registration Reject The number of received reject messages. RRJ Received

Global

VOIPH323 RRQ Timed Out

The number of sent request messages that timed Global out.

VoIPH323 Gatekeeper Admission Requests

VoIPH323 Admission Request The number of admission request messages trans- Global

ARQ Transmitted

mitted.

VoIPH323 Admission Confirm The number of admission confirmations received. Global ACF Received

VoIPH323 Admission Reject ARJ Received

The number of admission rejects received.

Global

VOIPH323 ARQ Timed Out

The number of sent admission request messages Global that timed out.

VoIPH323 Gatekeeper Disengage Requests

VoIPH323 Disengage Request The number of disengage requests transmitted. DRQ Transmitted

Global

VoIPH323 Disengage Confirm The number of disengage confirmation messages Global

DCF Received

received.

VoIPH323 Disengage Reject DRJ Received

The number of disengage reject messages received.

Global

VOIPH323 DRQ Timed Out

The number of sent request messages that timed Global out.

IxLoad Tcl API Programming Guide

1399

VoIP H.323 Peer

VoIPH323 Disengage Request The number of disengage requests received. DRQ Received

Global

VoIPH323 Disengage Confirm The number of disengage confirmations received. Global DCF Transmitted

VoIPH323 Gatekeeper Unregistration Requests

VoIPH323 Unregister Request The number of unregister requests transmitted. URQ Transmitted

Global

VoIPH323 Unregister Confirm The number of unregister confirmations received. Global UCF Received

VoIPH323 Unregister Reject URJ Received

The number of unregister reject messages received.

Global

VOIPH323 URQ Timed Out

The number of unregister messages that timed out.

Global

VoIPH323 URQ Received

The number of unregister request messages received.

VoIPH323 UCF Transmitted

The number of unregister confirmation messages transmitted.

VoIPH323 H225 Requests and Responses

VoIPH323 Setup Transmitted The number of Setup messages transmitted.

Global

VoIPH323 Setup Received

The number of Setup messages received.

Global

VoIPH323 CallProceeding Transmitted

The number of CallProceeding messages transmitted.

Global

VoIPH323 CallProceeding Received

The number of CallProceeding messages received.

Global

VoIPH323 Alerting Transmitted

The number of Alerting messages transmitted.

Global

VoIPH323 Alerting Received The number of Alerting messages received.

Global

VoIPH323 Connect Transmitted

The number of Connect messages transmitted.

Global

VoIPH323 Connect Received The number of Connect messages received.

Global

1400

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

VoIPH323 releaseComplete Transmitted

The number of releasecomplete messages transmitted.

VoIPH323 H245 Requests and Responses

VoIPH323 TCS Transmitted

The number of TerminalCapabilitySet messages transmitted.

VoIPH323 TCS Received

The number of TerminalCapabilitySet messages received.

VoIPH323 TCSAck Transmitted

The number of TerminalCapabilitySetAcknowledgement messages transmitted.

VoIPH323 TCSAck Received

The number of TerminalCapabilitySetAcknowledgement messages received.

VoIPH323 masterSlaveDetermination Transmitted

The number of MasterSlaveDetermination messages transmitted.

VoIPH323 masterSlaveDetermination Received

The number of MasterSlaveDetermination messages received.

VoIPH323 masterSlaveDeterminationAck Transmitted

The number of MasterSlaveDetermination Ackowledgement messages transmitted.

VoIPH323 masterSlaveDeterminationAck Received

The number of MasterSlaveDeterminationAckowledgement messages received.

VoIPH323 openLogicalChannel The number of OpenLogicalChannel messages

Transmitted

transmitted.

VoIPH323 openLogicalChannel The number of OpenLogicalChannel messages

Received

received.

VoIPH323 openLogicalChannelAck Transmitted

The number of OpenLogicalChannelAckowledgement messages transmitted.

Global
Global Global Global Global Global Global Global Global Global Global Global

IxLoad Tcl API Programming Guide

1401

VoIP H.323 Peer

VoIPH323 openLogicalChannelAck Received

The number of OpenLogicalChannelAckowledgement messages received.

Global

VoIPH323 closeLogicalChannel Transmitted

The number of CloseLogicalChannel messages transmitted.

Global

VoIPH323 closeLogicalChannel Received

The number of CloseLogicalChannel messages received.

Global

VoIPH323 closeLogicalChannelAck Transmitted

The number of CloseLogicalChannelAckowledgement messages transmitted.

Global

VoIPH323 closeLogicalChannelAck Received

The number of CloseLogicalChannelAckowledgement messages received.

Global

VoIPH323 H245 Reject Messages

VoIPH323 TCSReject Transmitted

The number of TerminalCapabilitySet reject mes- Global sages transmitted.

VoIPH323 TCSReject Received The number of TerminalCapabilitySet reject mes- Global sages received.

VoIPH323 masterSlaveDeterminationReject Transmitted

The number of MasterSlaveDetermination reject messages transmitted.

Global

VoIPH323 masterSlaveDeterminationReject Received

The number of MasterSlaveDetermination reject messages received.

Global

VoIPH323 openLogicalChannelReject Transmitted

The number of OpenLogicalChannel reject messages transmitted.

Global

VoIPH323 openLogicalChannelReject Received

The number of OpenLogicalChannel reject messages received.

Global

VoIPH323 Errors

Trigger Errors

The total number of trigger errors.

Global

1402

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

RTP Errors

The total number of RTP related errors, incremented when any RTP script function is failing or exiting on the Warning or Timeout outputs. Possible causes include media sessions that have been closed by the signaling engine, or Generate DTMF/MF/Tone or Detect DTMF/MF/Tone functions that failed.
This statistic is also incremented when the signaling engine cannot start a media session, such as when the negotiated codec or the negotiated ptime is unsupported.

Global

Internal Errors

The total number of internal errors.

Global

Timeout Errors

The total number of script functions that have timed out.

Global

Transport Errors

The total number of transport errors reported dur- Global ing I/O operation.

VoIPH323 Specific Errors

Parser Error

The total number of parser errors encountered dur- Global ing parsing.

Call Flow Errors

The total number of H323 call flow errors.

Global

VoIPH323 Throughput

VoIPH323 Bytes Transmitted/sec

The total number of bytes transmitted in H.323 call signaling and call control packets (excluding RTP packets).

Global

VoIPH323 Bytes Received/sec

The total number of bytes received in H.323 call signaling and call control packets (excluding RTP packets).

Global

VoIPH323 Bytes Transmitted And Received/sec

The total number of bytes transmitted and received in H.323 call signaling and call control packets (excluding RTP packets).

Global

VoIPH323 Other

IxLoad Tcl API Programming Guide

1403

VoIP H.323 Peer

ActiveCallers

The instantaneous value of H323 callers (on the scenario channel that the objective is applied to) that are active at a given time during the test execution. An emulated H323 caller is considered to be active if he has completed the execution of the Start script function and has not yet reached the Stop function.

Global

Note: Statistics from the Other category are only stored in application-generated CSV files and are not displayed in any of the predefined views, but can be assigned to custom statistics views of the StatViewer module.

EXAMPLE

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]

set Timeline1 [::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"

$Activity_VoIPH323Peer1 config \-enable "VoIPH323Peer1" \-enableConstraint 1 \-constraintValue "channels" \-timeline

true \-name false \-userObjectiveValue 100 \-userObjectiveType $Timeline1

$Activity_VoIPH323Peer1 agent.config \-enable

\-name

"VoIPH323Peer1" \

true

SEE ALSO
ixConfig

1404

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Codec Settings

VoIP H323 Peer Codec Settings

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.codecSettings.config \

DESCRIPTION

Codec Settings contains the list of codecs that will be used by the VoIP H323 Peers in the test. Codec Settings is a list of one or more codec (audio codec) objects. To add codec objects, use the appendItem command. To clear the codec settings, use the clear subcommand.

SUBCOMMANDS
clear Clears the list of codec settings. For example: $Activity_VoIPH323Peer1 agent.pm.codecSettings.codecs.clear
OPTIONS
codecs_number

Indicates the codec numbers. Default= 0

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.codecSettings.config \-codecs_number 0
SEE ALSO
VoIP H323 Peer Agent

IxLoad Tcl API Programming Guide

1405

VoIP H.323 Peer

Codecs

VoIP H323 Peer Audio Codec

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.codecSettings.config \$Activity_

VoIPH323Peer1 agent.pm.codecSettings.codecs.appendItem \

DESCRIPTION

Codecs configures an audio codec object, which is added to the Codec Settings list of codecs. To add a codec object, use the appendItem command.

SUBCOMMANDS
None.

OPTIONS
id Codec type. One of the following:

Codec

Description

CodecAMR

Adaptive multi-rate codec

CodecG711u

G.711 mu-law codec

CodecG711a

G.711 A-law codec

CodecG723x153 G.723.1 codec @ 5.3 kbps

CodecG723x163 G.723.1 codec @ 6.3 kbps

CodecG726x16 G.726 codec @ 16 Kbps

CodecG726x24 G.726 codec @ 24 Kbps

CodecG726x32 G.726 codec @ 32 Kbps

CodecG726x40 G.726 codec @ 40 Kbps

CodecG729A

G.729 Annex-A codec

CodecILBC

Internet low-bitrate codec

1406

IxLoad Tcl API Programming Guide

Options for CodecAMR
dPayloadIn Incoming dynamic payload type. Default="98" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="98" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 14. Default=14. payloadFormat Payload format.

Value

Usage

0 (default) Bandwidth-efficient format

1

Octet-aligned format

mode Codec bit rate. One of the following:

Mode

Description

0 (default) 4.75 kbps

1

5.15 kbps

2

5.90 kbps

3

6.70 kbps

4

7.40 kbps

5

7.95 kbps

6

10.20 kbps

7

12.20 kbps

Options for CodecG711u
dPayloadIn

VoIP H.323 Peer

IxLoad Tcl API Programming Guide

1407

VoIP H.323 Peer
Incoming dynamic payload type. Default="0" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="0" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG711a
dPayloadIn Incoming dynamic payload type. Default="8" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="8" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG723x153
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 20. Default=20.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG723x163
dPayloadIn

1408

IxLoad Tcl API Programming Guide

Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG726x16
dPayloadIn Incoming dynamic payload type. Default="102" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="102" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 20, 40, 60. Default=20. Options for CodecG726x24 dPayloadIn Incoming dynamic payload type. Default="103" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="103" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize

VoIP H.323 Peer

IxLoad Tcl API Programming Guide

1409

VoIP H.323 Peer

Bytes per frame. Must be one of the following: 30, 60, 90. Default=30.
Options for CodecG726x32
dPayloadIn Incoming dynamic payload type. Default="104" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="104" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 40, 80, 120. Default=40.
Options for CodecG729
dPayloadIn Incoming dynamic payload type. Default="18" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="18" min="0" max="127". cbxFrameSize Bytes per frame. Must be one of the following: 10, 20, 30, 40, 50, Custom. Default=10. customFrameSize If cbxFrameSize is Custom, this option configures the custom frame size. Default="120" min="10" max="200".
EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.codecSettings.codecs.clear

$Activity_VoIPH323Peer1 agent.pm.codecSettings.codecs.appendItem \-id

"CodecG711u" \-dPayloadOut

0 \-dPayloadIn

0 \-frameSize

160

$Activity_VoIPH323Peer1 agent.pm.codecSettings.codecs.appendItem \-id

1410

IxLoad Tcl API Programming Guide

"CodecG711a" \-dPayloadOut 8 \-frameSize
SEE ALSO
Codec Settings

VoIP H.323 Peer
8 \-dPayloadIn 160

IxLoad Tcl API Programming Guide

1411

VoIP H.323 Peer

Data Codecs

VoIP H248 MGC/MGW Term Group Data Codecs

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.codecSettings.config \$Activity_

VoIPH323Peer1 agent.pm.codecSettings.dataCodecs.appendItem \

DESCRIPTION

Data Codecs configures a data codec object, which is added to the Codec Settings list of codecs.

SUBCOMMANDS
None.

OPTIONS
id Codec type. One of the following:

Codec

Description

Rtp2833Events Named Events Payload format used for carrying DTMF digits and other line and trunk signals as events.

Rtp2833Tones RTP Payload format that can represent tones consisting of one or more frequencies.

dPayloadType Payload type used for RTP data packets. Default=(see table) min="96" max="127"

Codec

Default value for dPayloadType

Rtp2833Events 100

Rtp2833Tones 101

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.codecSettings.dataCodecs.clear

$Activity_VoIPH323Peer1 agent.pm.codecSettings.dataCodecs.appendItem \-id

"Rtp2833Events" \-dPayloadType

100

1412

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

$Activity_VoIPH323Peer1 agent.pm.codecSettings.dataCodecs.appendItem \-id

"Rtp2833Tones" \-dPayloadType

101

$Activity_VoIPH323Peer1 agent.pm.codecSettings.codecs.clear
SEE ALSO
Codec Settings

IxLoad Tcl API Programming Guide

1413

VoIP H.323 Peer

Other Settings

VoIPH323 Peer Other Settings

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.otherSettings.config \

DESCRIPTION

This object configures the VoIP H323 Peer activity's miscellaneous options.

SUBCOMMANDS
None.

OPTIONS
VOIP_Var0 The VOIP_Var1...VOIP_Var5 and VOIP_IPAddr1...VOIP_IPAddr5 string-type variables supporting generator expressions enable you to generate 10 series of global variables whose values are used at runtime by the simulated H.323 phones/channels. Default="". Use the VOIP_Var1...VOIP_Var5 variables to represent phone numbers, and the VOIP_IPAddr1...VOIP_ IPAddr5 to represent IP addresses. VOIP_Var1 See VOIP_Var0. VOIP_Var2 See VOIP_Var0. VOIP_Var3 See VOIP_Var0. VOIP_Var4 See VOIP_Var0. VOIP_IPAddress0 See VOIP_Var0. VOIP_IPAddress1 See VOIP_Var0. VOIP_IPAddress2

1414

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

See VOIP_Var0. VOIP_IPAddress3 See VOIP_Var0. VOIP_IPAddress4 See VOIP_Var0. ipPreference Type of addressing to be used on the subnet that the VOIP H323 Peer runs on.

Value

Usage

0 (default) IPv4

1

IPv6

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.otherSettings.config \-ipPreference

0 \-stackConfigFilename

"" \-VOIP_Var1

"" \-VOIP_Var0

"" \-VOIP_Var3

"" \-VOIP_Var2

"" \-VOIP_Var4

"" \-VOIP_IPAddress4

"" \-totalUserCount

0 \-VOIP_IPAddress1

"" \-VOIP_IPAddress0

"" \-VOIP_IPAddress3

"" \-VOIP_IPAddress2

""

SEE ALSO

VoIP H323 Peer Agent

IxLoad Tcl API Programming Guide

1415

VoIP H.323 Peer
RTP Settings
VoIPH323 Peer RTP Settings
SYNOPSIS
$Activity_VoIPH323Peer1 agent.pm.rtpSettings.config \ -optionvalue
DESCRIPTION
RTP Settings configures the VoIPH323Peer RTP transport settings.
SUBCOMMANDS
None.
OPTIONS
enableRTP Enables use of RTP to transport the media traffic. 0 = disabled (default) 1 = enabled rtpPort RTP port number. Default="10000". Note: Valid port numbers are between 1000 and 65534. enableRTCP Enables the sending and receiving of RTCP packets. chEnableHwAcc If true, enables hardware acceleration for RTP traffic. Default=false. enableAdvStatCalc Enables the computation of advanced RTP statistics. enablePerStream Enables computation of per-stream statistics. enableMDI Enables computation of MDI DF and MDI MLR statistics.
EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.rtpSettings.config \-enableRTP

1416

IxLoad Tcl API Programming Guide

true \-enableRTCP false \-chEnableHwAcc false \-enablePerStream "\[10000-65535,4\]" \
SEE ALSO

VoIP H.323 Peer
false \-enableMDI true \-enableAdvStatCalc false \-rtpPort

IxLoad Tcl API Programming Guide

1417

VoIP H.323 Peer

Audio Settings
VoIPH323 Peer audio settings
SYNOPSIS
$Activity_VoIPH323Peer1 agent.pm.audioSettings.config \
DESCRIPTION
The Audio Settings configure the VoIPH323 Peer audio RTP settings.
SUBCOMMANDS
None.
OPTIONS
enableAudio If selected, audio script functions are executed, otherwise they are skipped. audioClip The played audio clip file. playTypeAudio The mode in which the clip is played.

Value

Usage

0

The clip is played for clip duration or for the duration of the Talk Time parameter in the

(default) case of BHCA/CPS/LPS objectives.

1

The clip is played for a user-defined duration.

audioDurationUnit The play duration unit, which can be milliseconds (0), seconds (1), minutes (2), or hours (3). outputLevel The output level of the played clip. enableTosRtp Enables use of TOS/DSCP. Use the rtpTos option to specify the TOS/DSCP value. Default= False rtpTosVal
l The Type of Service (TOS/DSCP) byte setting in the sent RTP packets has one of the following values:

1418

IxLoad Tcl API Programming Guide

VoIP H.323 Peer
l Best Effort (0x00): Routine service l Class 1 (0x20): Priority service, Assured Forwarding class 1 l Class 2 (0x40): Immediate service, Assured Forwarding class 2 l Class 3 (0x60): Flash, Assured Forwarding class 3 l Class 4 (0x80): Flash-override, Assured Forwarding class 4 l Express Forwarding (0xA0): Critical-ecp l Control (0xC0): Internet-control l Custom: A user-specified value. useMOS Enables the computation of MOS scores. Default= False. enableAudioOWD If true, IxLoad computes the One-way Delay metric, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default= False useJitter If true, enables use of a jitter buffer. Default= False. jitMs If useJitter is 1, this option configures the size of the jitter buffer, in milliseconds. Default="20" minn="1" max="3000". useJitComp If true, enables dynamic modification of the jitter buffer size. Default= False. jitCMs If useJitComp is 1, this option configures the maximum size in of the jitter buffer, in milliseconds. Default="1000" min="0" max="3000". jitCMaxDrop If useJitComp is 1, this option configures the condition - a maximum number of consecutive packets dropped - that determines the jitter buffer size to be increased. enableQoV If true, this enables QoV P.862 PESQ and P.56 QoV computation. Default= False. channelTypeQoV When enableQoV is true, this specifies the objective type as either of the following: l Number of channels (0) l Percentage (1) valueQoV

IxLoad Tcl API Programming Guide

1419

VoIP H.323 Peer

When enableQoV is true, this specifies the number of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 0). Alternatively this represents the percentage of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 1).
unitsQoV
The channels selection mode, which can be any of the following:
l First channels (0) l Last channels (1) l Evenly-spaced channels (2) l Random (3)
metricsQoV
When enableQoV is true, this specifies the metric that is calculated by the Zion card. Available options are:
l PESQ and P.56 (0) l PESQ (1) l P56 (2)
useSilence
If true, RTP packets containing artificial background noise are sent when no other media (DTMF, MF, real payload, and so on) is sent over the communication channel. Default= False.
silenceMode
If useSilence is 1, this option configures the silence mode.

Value

Usage

0

Null data encoded

1 (default) Comfort noise.

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.audioSettings.config \-enableAudio

true \-audioClip

"US_042.wav" \-playTypeAudio

0 \-audioDurationUnit

1 \-audioDuration

10 \-outputLevel

-20-enableAudioOWD

false \-enableTosRtp

false \-rtpTosVal

32 \-useMos

false \-useJitter

false \-jitMs

20 \-useJitComp

false \-jitCMs

1000 \-jitCMaxDrop

7 \-enableQoV

false \-channelTypeQoV

0 \-valueQoV

100 \-unitsQoV

1420

IxLoad Tcl API Programming Guide

0 \-metricsQoV false \-silenceMode
SEE ALSO

0 \-useSilence 1\

VoIP H.323 Peer

IxLoad Tcl API Programming Guide

1421

VoIP H.323 Peer

Video Settings
VoIPH323 Peer Video Settings
SYNOPSIS
$Activity_VoIPH323Peer1 agent.pm.VideoSettings.config \ -optionvalue

DESCRIPTION
Video Settings configures the VoIPH323 Peer's video settings.
SUBCOMMANDS
None.
OPTIONS
enableVideo Enables use of video as media traffic. 0 = disabled (default) 1 = enabled videoClip Name of the video file. Default = "Fire_avc.mp4" playTypeVideo Determines parameters for running video. Following values are available:

Value

Usage

0 (default) Play for clip duration

1

Play for specified duration.

2

Conference mode

videoDuration If playTypeVideo = 1, determines duration of video. Maximum value = 259200000. videoDurationUnit Unit of duration. The following values are available:

1422

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

useConference If playTypeVideo = 2, enables use of conference mode. The following values are available:

Value Usage

0

All speak

1

Sequential

2

Random

confVideoDuration
If playTypeVideo = 2, enables selection of conference video duration. confVideoDurationUnit
If playTypeVideo = 2, enables selection unit of conference video duration. The following values are available:

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

confDuration
If playTypeVideo = 2, enables selection of conference audio duration. confDurationUnit
If playTypeVideo = 2, enables selection unit of conference audio duration. The following values are available:

IxLoad Tcl API Programming Guide

1423

VoIP H.323 Peer

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

enableTosVideo Enables use of TOS/DSCP. Use the tosVideo option to specify the TOS/DSCP value. tosVideo The following values are available:

Value Usage

0

Best Effort (0x00)"

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

7

Custom

useMosVideo
Enables computation of MOS. 0 = disabled (default) 1 = enabled Note: If MOS computation is enabled, the enableVideoOWD option also has to be enabled. enableVideoOWD
If enabled, the One-way Delay metric is computed, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default = disabled.

1424

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

ignoreHintTrack
If enabled, the hint track (if any) in the video clip is ignored. The video streaming uses a new hint track which is recreated using one of the packetization modes defined by hintTrackType. Default = disabled.
hintTrackType
Allows to select the packetization mode. The following values are available:

Value

Usage

0 (default) Single NAL Unit

1

STAP-A, with FU-A fragmentation

AdvancedVideoSettings If enabled, allows selecting the advanced settings. Valid only for H323 activities. enableCustomMaxMBPS If enabled, allows selecting the maximum number of macroblocks per second supported. Default = disabled. customMaxMBPS The maximum number of macroblocks per second supported. enableCustomMaxFS If enabled, allows selecting the maximum frame size supported. Default = disabled. customMaxFS The maximum frame size supported. enableCustomMaxDPB If enabled, allows selecting the maximum decoded picture buffer size supported. By default it is disabled. customMaxDPB The maximum decoded picture buffer size supported. enableCustomMaxBRandCPB If enabled, allows selecting the maximum supported video bitrate and coded picture buffer. customMaxBRandCPB The maximum number of static macroblocks per second. enableMaxStaticMBPS

IxLoad Tcl API Programming Guide

1425

VoIP H.323 Peer

If enabled, allows selecting the maximum number of static macroblocks per second. Default = disabled. maxStaticMBPS The maximum number of static macroblocks per second. enableMaxRcmdNalUnitSize If enabled, allows selecting the maximum recommended NALU size. Default = disabled. enableMaxNalUnitSize If enabled, allows selecting the maximum NALU size supported. Default = disabled. maxNalUnitSize The maximum NALU size supported.

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.videoSettings.config \-rotationScheme

0 \-confDuration

1 \-useMosVideo

false \-enableVideoOWD

false \-ignoreHintTrack

false \-enableTosVideo

true \-enableVideo

true \-videoClip

"Fire_avc.mp4" \-

useH323AdvancedSettings

false \-videoDuration

5 \-confVideoDurationUnit

1 \-useConference

false \-confDurationUnit

1 \-confVideoDuration

1 \-videoDurationUnit

1 \-hintTrackType

1 \-fmtp

"" \-rtpmap

"" \-playTypeVideo

0 \-tosValVideo

32

SEE ALSO

1426

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Alternative Capability Value Set List

VoIP H323 Alternative Capability Value Set List

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.p-

m.alternativeCapabilitySetList.alternativeCapabilityValueSetList.appendItem \

DESCRIPTION

Helps to configure the alternative capability value list.

SUBCOMMANDS
None.

OPTIONS
id
Indicates the id of the alternative capability name. Default= "AlternativeCapability" alternativeCapabilityName
The name of the alternative capability list. Default= "Default_Alternative_Capability" refCount
The reference count that is used to deallocate objects which are no longer referenced. Default= 0

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.alternativeCapabilitySetList.alternativeCapabilityValueSetList.appendItem \
-id "AlternativeCapability" \
-alternativeCapabilityName"Default_Alternative_Capability" \
-refCount 0

SEE ALSO
VoIP H323 Peer Agent

IxLoad Tcl API Programming Guide

1427

VoIP H.323 Peer

Capability List

VoIP H323 Alternative Capability Value Set List

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.p-

m.alternativeCapabilitySetList.alternativeCapabilityValueSetList.appendItem \$Activ-

ity_VoIPH323Peer1

agent.p-

m.al-

ternativeCapabilitySetList.alternativeCapabilityValueSetList.capabilityList.appendItem

\

DESCRIPTION

Helps to configure the capability list.

SUBCOMMANDS
None.

OPTIONS
id Indicates the id of the capability list. Default= "Capability". transportType The transport type used for the VoIP data for the various versions. Default= 3. capabilityTableEntryNumber The number that is entered in the capability table. This table is referred to take policy actions based on whether the system has a particular capability. Default= 1

EXAMPLE

$Activity_VoIPH323Peer1 agent.p-

m.al-

ternativeCapabilitySetList.alternativeCapabilityValueSetList.capabilityList.appendItem

\-id

"Capability" \-transportType

3 \-capabilityTableEntryNumber

1

SEE ALSO

VoIP H323 Peer Agent

1428

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Custom Activity Link Settings

VoIP H323 Peer CustomActivityLinkSettings

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.customActivityLinkSettings.config \

DESCRIPTION

CustomActivityLinkSettings configures the settings for the BHCA objective for VoIPH323 Peer activities. This options in this object correspond to the controls on the Custom Parameters tab for a NetTraffic/ActivityLink in the Timeline and Objective branch of the Test Configuration tree in the IxLoad GUI.

Note: The CustomActivityLinkSettings class must be configured alongside the CustomParameters class that implements the same functionality.

Note: CPS objective related settings are not available for VoIPH323 Peer activities.

SUBCOMMANDS
None.

OPTIONS
bhcaObjectiveValue The BHCA test objective value. Default="80000". bhcaType Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

talkTime
If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000".
channelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100".

IxLoad Tcl API Programming Guide

1429

VoIP H.323 Peer

callSetupTime Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500". interCallDuration Inter-call duration. Default="4000".

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.customActivityLinkSettings.config \-talkTime

40000 \-cpsObjectiveValue

100 \-cpsType

0 \-cpsInterCallDuration

150 \-channelsNo

1 \-cpsTalkTime

750 \-cpsOverheadTime

100 \-cpsChannelsNo

100 \-bhcaType

0 \-callTeardownTime

500 \-interCallDuration

4000 \-bhcaObjectiveValue

80000 \-callSetupTime

500

SEE ALSO

VoIP H323 Peer Agent

1430

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Execution Settings

VoIP H323 Peer Execution Settings

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.executionSettings.config \

DESCRIPTION

This object defines the execution settings for the VoIP H323 Peer.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. gracefulRampDown If enabled, the execution is stopped gracefully and the call is closed before the rampdown period ends. loopCount If loopMode is 1, this option defines the number of loops that the test performs. Default="1". loopPreDelay Delay before first loop (ms). Default="0". loopMode Defines how many loops are executed for every voice channel corresponding to this activity.

Value

Description

0 (default) Loop for the entire test duration.

1

Execute a number of loops. Specify the number of loops in loopCount.

loopMidDelay Delay between loops (ms). Default="0". phoneRule Defines how phone numbers are incremented for H323 activity.

IxLoad Tcl API Programming Guide

1431

VoIP H.323 Peer

EXAMPLE $Activity_VoIPH323Peer1 agent.pm.executionSettings.config \-gracefulRampDown

true \-loopCount

1 \-loopPreDelay

0 \-loopMode

0 \-loopMidDelay

0 \-phoneRule

1

SEE ALSO

VoIP H323 Peer Agent

1432

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Simultaneous Capability

VoIP H323 Simultaneous Capability

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.simultaneousCapability.config \

DESCRIPTION

Configures the simultaneous capability name.

SUBCOMMANDS
None.

OPTIONS
refCount The reference count that is used to deallocate objects which are no longer referenced. Default= 0 simultaneousCapabilityName The name of the simultaneous capability. Default= ""

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.simultaneousCapability.config \-refCount

0 \-simultaneousCapabilityName

""

SEE ALSO

VoIP H323 Peer Agent

IxLoad Tcl API Programming Guide

1433

VoIP H.323 Peer

H323 Settings

VoIP H323 Peer Signaling Settings

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.h323Settings.config \

DESCRIPTION

This object defines the VoIP H323 Peer settings.

SUBCOMMANDS
None.

OPTIONS
enableParallelH245
If true, H.323 initiates parallel H.245 channel establishment simultaneously with FastStart. Default= False

Note: This option is enabled only if enableFastStart is true. useGKforAdmission If true, MakeCall sends ARQ request to gatekeeper and waits for ACF request before establishing the call. Default= False H225Version The version specified in the protocol-identifier field of the Q.931 and RAS packet. Default= 5 rasRetryCount Sets the number of retries to be done for RAS requests. Default= 1 enableDisengage If true, EndCall request sends a Disengage message to the gatekeeper. Default= False textUserUser Specifies the user informaion to be sent in the Q.931 User-User IE. This can be either a character string or a byte stream encoded in hexadecimal digits. Default= False bandwidth The value of bandwidth requested by the endpoint and also advertised in RAS messages. Default= 64 Kbps textDisplay

1434

IxLoad Tcl API Programming Guide

VoIP H.323 Peer
Specifies the display information that is sent in the Q.931 Display IE. enableH245tunneling If true, H323 uses tunnel H.245 payloads within Q.931/H.225 packets. Default= True enableCallAlerting If true, sends out a call alerting message. Default= False GKAdresstext If enableAutoGKDiscovery is false, you can specify IP address or hostname for up to three gatekeepers. The plug-in, in this case, accepts redirection requests for the gatekeepers. Default= False enableTos If true, allows to configure Type of Service.TOS value is set for all UDP and TCP packets originating from the IxLoad H.323 stack. useRegistration Parameters If true, the values sent by the gatekeeper during registration overrides the corresponding values set by the user for various parameters. Default= False enableFastStart If true, H.323 call establishment tries to use the FastStart mechanism. Default= True ckHexUserUserData If true, the user information that is sent in the Q.391 UserUser IE can be sent as a byte stream encoded in hexadecimal digits. Default= False rasTimeout Sets the number of seconds after which a RAS request reaches time-out state if no response to that request is received in the specified period. After a timeout, retry happens if so configured. Default= 4 seconds enableCallProceeding If true, sends out a call proceeding message. Default= False enableRas If true, RAS message is sent and received. Default= False enableKeepAliveReg If true, sends keep alive ARQ to the gatekeeper. Default= False GKAddress

IxLoad Tcl API Programming Guide

1435

VoIP H.323 Peer

If enableAutoGKdiscovery is true, the IP address or hostname can be specified up to three gatekeepers. tosVal
If enableTos is true, this option sets the value of the TOS bits.

Value

Usage

0 (default) Best Effort (0x00)

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

displayData
Specifies the display information to be sent in the Q.931 Display IE. This is IA5 character string. This field supports sequence generators. Default= "Ixia\[00-\]" \ terminalType
Indicates the type of the endpoint. The terminal types are: l Terminal Entity Without MC l Gatekeeper Entity Without MC
H245Version
Specified version in the protocol-identifier field of the H.245 packet. Default= 9. autoRegisterToGk
If true, H.323 MakeCall option sends RAS signaling (including registration) to establish the call and EndCall unregisters with the gatekeeper. Default= False. userUserData
Specifies the user information to be sent in the Q.931 User-User IE. This can be either IA5 character string or a byte stream encoded in hexadecimal digits. This field supports sequence generators for IA5 characters. Default= "1234\[00-\]" \. enableAutoGKdiscovery

1436

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

If true, Automatic Gatekeeper Discovery is attempted by sending GRQ to the well-known Discovery Multicast Address. Default= False. callSignalingViaUDP
If true, call signaling is done over UDP and not over TCP as per Annex E specification. Default= False.
enableH323
If true, the H323 script functions are executed; otherwise they are skipped. Default= True.

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.h323Settings.config \-enableParallelH245

false \-useGKforAdmission

false \-H225Version

5 \-rasRetryCount

1 \-enableDisengage

false \-textUserUser

false \-bandwidth

64 \-textDisplay

false \-enableH245tunneling

true \-enableCallAlerting

false \-GKAddresstext

false \-enableTos

false \-useRegistrationParameters

false \-enableFastStart

true \-bandwidthtext

false \-ckHexUserUserData

false \-rasTimeout

4 \-enableCallProceeding

false \-enableRas

false \-enableKeepAliveReg

false \-GKAddress

"198.18.80.80" \-tosVal

0 \-displayData

"Ixia\[00-\]" \-terminalType

50 \-H245Version

9 \-autoRegisterToGk

false \-userUserData

"1234\[00-\]" \-enableH323

true

SEE ALSO

VoIP H323 Peer Agent

IxLoad Tcl API Programming Guide

1437

VoIP H.323 Peer

Simultaneous Capability Value Set List

VoIP H323 Simultaneous Capability Value Set List

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.terminalCapabilitySet.config \$Activ-

ity_VoIPH323Peer1 agent.p-

m.terminalCapabilitySet.simultaneousCapabilityList.appendItem

DESCRIPTION

Helps to configure the simultaneous capability list.

SUBCOMMANDS
None.

OPTIONS
id Indicates the id of the simultaneous capability name. Default= "SimultaneousCapabilityName" refCount The reference count that is used to deallocate objects which are no longer referenced. Default= 0 simultaneousCapabilityName The name of the simultaneous capability list. Default= "Default_Simultaneous_Capability"

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.simultaneousCapabilitySetList.simultaneousCapabilityValueSetList.appendItem \
-id "SimultaneousCapability" \
-refCount 0 \
-simultaneousCapabilityName "Default_Simultaneous_Capability"

SEE ALSO
Terminal Capability Set

1438

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Alternative Capability List

VoIP H323 Alternative Capability List

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.p-

m.sim-

ultaneousCapabilitySetList.simultaneousCapabilityValueSetList.alternativeCapabilityList.append

\

DESCRIPTION

Configures the alternative capability list.

SUBCOMMANDS
None.

OPTIONS
id Indicates the id of the alternative capability name. Default= "AlternativeCapabilityName" alternativeCapabilityName The name of the alternative capability list. Default= "Default_Alternative_Capability"

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.simultaneousCapabilitySetList.simultaneousCapabilityValueSetList.alternativeCapabilityList.append
\
-id "AlternativeCapabilityName" \ -alternativeCapabilityName "Default_Alternative_Capability"
SEE ALSO

Simultaneous Capability Value Set List

IxLoad Tcl API Programming Guide

1439

VoIP H.323 Peer

Alternative Capability

VoIP H323 Alternative Capability

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.alternativeCapability.config \

DESCRIPTION

Configures the alternative capability descriptors.

SUBCOMMANDS
None.

OPTIONS
alternativeCapabilityName The name of the alternative capability. Default= "". refCount The reference count that is used to deallocate objects which are no longer referenced. Default= 0.

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.alternativeCapability.config \-

alternativeCapabilityName

"" \-refCount

0

SEE ALSO

VoIP H323 Peer Agent

1440

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Dial Plan

VoIP H323 Peer Dial Plan

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.dialPlan.config \

DESCRIPTION

The Dial Plan object configures the registration names, phone numbers, and source, destination, and transfer addresses for the channels/phones emulated by the VoIP H323 Peer activity.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. _useSPB
Method used to select phone number.

Value Usage

0

Use the phone number specified by pattern.

1

Use the phone number specified by Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (_useSPb=1). The generated Tcl script will run only on the machine it has been generated on and only if the correspon-ding Phonebook entry has not yet been deleted since the generation of the Tcl code.
_symDestStr
String identifying the VoIP H323 Peer that is the destination for traffic from this VoIP H323 Peer activity. Default="None".
_sPhone
If _useSPb is 0, this option specifies the phone number. You can use sequence generators in this field to generate multiple phone numbers. See the sequence generator appendix. Default="160 [00000000-]".
_sBp

IxLoad Tcl API Programming Guide

1441

VoIP H.323 Peer

If _useSPb is 1, this option specifies the phone book entry name. Default="&lt;None&gt;". srcPhoneType
Indicates the type of source phone number.

Value Usage

0

Specified by sourcePhoneSpecified as digits (default).

1

Specified by sourcePhoneBook as a file name.

_dBp If _useDPb is 1, this option specifies the phone book file name. Default="&lt;None&gt;". ovrDestPhone Enables overriding of phone number from the destination VoIP H323 Peer. Default= False. _dPhone If _useDPb is 0, this option specifies the phone number. Default="170[00000000-]". _useDPb Method used to select the phone number used to override destination phone number.

Value

Usage

0 (default) Specify pattern.

1

Specify Phonebook entry.

Note: This option appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (useDestPhoneBook=1). The generated Tcl script will run only on the machine it has been generated on and only if the corresponding Phonebook entry has not yet been deleted since the generation of the Tcl code.
destPhoneType
Method used to select phone number.

Value

Usage

0 (default) Use the phone number specified by pattern.

1

Use the phone number specified by Phonebook entry.

1442

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (useSourcePhoneBook=1). The generated Tcl script will run only on the machine it has been generated on and only if the corresponding Phonebook entry has not yet been deleted since the generation of the Tcl code.

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.dialPlan.config \-_useSPb

0 \-symDestStr

"Traffic2_VoIPH323Peer2" \-_sPhone

"160\[00000000-\]" \-_sBp

"&lt;None&gt;" \-

srcPhoneType

0 \-_dBp

"&lt;None&gt;" \-ovrDestPhone

false \-_dPhone

"170\[00000000-\]" \-_useDPb

0 \-destPhoneType

0

SEE ALSO
VoIP H323 Peer Agent

IxLoad Tcl API Programming Guide

1443

VoIP H.323 Peer

Terminal Capability Set

VoIP H323 Terminal Capability Set

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ] \$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.terminalCapabilitySet.config \

DESCRIPTION

Configures the terminal capability descriptors.

SUBCOMMANDS
None.

OPTIONS

defaultCodecIndex

Helps to edit the default codex index. Default = 0.

defaultCodecName

Helps to edit the default codec name. Default = "".

EXAMPLE

$Activity_VoIPH323Peer1 agent.pm.terminalCapabilitySet.config \-defaultCodecIndex

0 \-defaultCodecName

""

SEE ALSO

VoIP H323 Peer Agent

1444

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Simultaneous Capability List

VoIP H323 Simultaneous Capability List

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ] \$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.terminalCapabilitySet.config \$Activ-

ity_VoIPH323Peer1 agent.p-

m.terminalCapabilitySet.simultaneousCapabilityList.appendItem

DESCRIPTION

Helps to configure the simultaneous capability list.

SUBCOMMANDS
None.

OPTIONS
id Indicates the id of the simultaneous capability name. Default= "SimultaneousCapabilityName". simultaneousCapabilityName The name of the simultaneous capability list. Default= "Default_Simultaneous_Capability".

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.terminalCapabilitySet.simultaneousCapabilityList.appendItem \
-id "SimultaneousCapabilityName" \
-simultaneousCapabilityName"Default_Simultaneous_Capability"

SEE ALSO
Terminal Capability Set

IxLoad Tcl API Programming Guide

1445

VoIP H.323 Peer

Scenario Settings

VoIP H323 Peer Scenario Settings

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 agent.pm.scenarioSettings.config \

DESCRIPTION

Scenario Settings specifies the test scenario file that will be used by the Tcl script.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. scenarioFile
The full path to the test scenario file for the activity. activeScenarioChannel
Test scenario channel (0-based index) that is associated with the VoIP H323 Peer activity. Default=0.

EXAMPLE
$Activity_VoIPH323Peer1 agent.pm.scenarioSettings.config \
-scenarioFile"C:\\Documents and Settings\\supanda\\Desktop \ \\H323-rxf\\Simple H323 calls with FirstConnect..tst" \
-activeScenarioChannel0

SEE ALSO
VoIP H323 Peer Agent

1446

IxLoad Tcl API Programming Guide

VoIP H.323 Peer

Custom Parameters

VoIPH323 Peer CustomParameters

SYNOPSIS

set Activity_VoIPH323Peer1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPH323 Peer" ]$Activity_VoIPH323Peer1

agent.config \$Activity_VoIPH323Peer1 customParameters.config \

DESCRIPTION

CustomParameters configures the settings for the BHCA objective for VoIPH323Peer activities. This options in this object correspond to the controls on the Custom Parameters tab for a NetTraffic/ActivityLink in the Timeline and Objective branch of the Test Configuration tree in the GUI.

Note: The CustomParameters class has to be configured alonside the CustomActivityLinkSettings class that implements the same functionality.

Note: CPS objective related settings are not available for VoIPH323 Peer activities.

SUBCOMMANDS
None.

OPTIONS
bhcaObjectiveValue The BHCA test objective value. Default="80000". bhcaType Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

talkTime
If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000".
channelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100".

IxLoad Tcl API Programming Guide

1447

VoIP H.323 Peer

interCallDuration Inter-call duration. Default="4000". callSetupTime Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500".

EXAMPLE

$Activity_VoIPH323Peer1 customParameters.config \-talkTime

40000 \-cpsObjectiveValue

100 \-cpsType

0 \-cpsInterCallDuration

150 \-channelsNo

1 \-cpsTalkTime

750 \-cpsOverheadTime

100 \-cpsChannelsNo

100 \-bhcaType

0 \-callTeardownTime

500 \-interCallDuration

4000 \-bhcaObjectiveValue

80000 \-callSetupTime

500

SEE ALSO

VoIP H323 Peer Agent

1448

IxLoad Tcl API Programming Guide

VoIP MGCP
The IxLoad VoIP MGCP Peer Tcl API consists of VoIP GW and VOIP MGC agents with separate APIs for configuring each major aspect of the agent's functionality. There is also an Endpoint Agent with separate configuration parameters.
l When defined on a GW activity, an Endpoint agent refers to endpoints present on that gateway. l When defined on a CA activity, an Endpoint agent refers to endpoints managed by that controller.
Limitations
The following restrictions and limitations of the VoIP MGCP Peer API exist: l Individual VoIP MGCP script functions can not be added and edited from the Tcl API. Instead, you must add and configure the test scenario in the Scenario Editor, then save the test scenario file and pass it as an argument to the ScenarioSettings API class.

IxLoad Tcl API Programming Guide

1449

VoIP MGCP
VoIP MGCP Peer API Commands
The IxLoad VoIP MGCP Peer API commands are organized as shown in the figure below.
Figure 30-2.VoIP MGCP GW Peer API Structure

1450

IxLoad Tcl API Programming Guide

VoIP MGCP

IxLoad Tcl API Programming Guide

1451

VoIP MGCP

VoIP MGCP CA/MGW Peer API Objects
The table below summarizes the VoIP MGCP CA/GW API objects.

Object

Description

VoIP MGCP CA Agent

Top-level object defining the VoIP CA activity.

VoIP

Top-level object defining the VoIP GW activity.

MGCP GW

Agent

MGCP Set- Configures the MGCP Settings separately for the Media Gateway or Media Controller.

tings

Also contains the list of all endpoint groups associated with the gateway or controller.

Automatic Sets the automatic functionality parameters for the MGC and GW side. Settings

Endpoints Contains the list of all endpoint groups associated with the gateway or controller. When a new Endpoint is added, a new activity is added in the same NetTraffic.

Gateways The list of CA-controlled Gateways.

1452

IxLoad Tcl API Programming Guide

VoIP MGCP

VoIP MGCP Endpoint Peer API Objects
The table below summarizes the MGCP Endpoint API objects.

Object

Description

VoIP MGCP Endpoint Agent

Top-level object defining the VoIP MGCP CA/GW Endpoint agent activity.

Scenario Settings

This object corresponds to the Scenario Settings GUI tab and enables the selection of the scenario channel.

Execution Settings

Run-time test configuration; corresponds to the Execution Settings GUI tab.

Endpoints

The list of simulated endpoint groups.

Codec Settings

List of Data Codecs and Codecs objects.

Data Codecs

Data codec with parameters.

Codecs

Audio codecs with parameters.

SDP Settings

The SDP settings for the simulated endpoints.

RTP Settings

RTP transport configuration corresponding to the RTP Settings GUI tab.

SRTP Settings

SRTP settings corresponding to the SRTP GUI tab.

Other Settings

VoIP MGCP Peer miscellaneous parameters which corresponds to the Other Settings GUI tab.

Custom Activity Link Settings, BHCA objective configuration which corresponds to the Custom

CustomParameters

Parameters GUI tab.

IxLoad Tcl API Programming Guide

1453

VoIP MGCP

MGCP GW Agent
VoIP MGCPGW Agent
SYNOPSIS
set Activity_MGCPGW1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "MgcpGw Peer" ]
DESCRIPTION
A VoIP MGCPGW agent is added to the agentList option of the ixConfig object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. See the following example: set Activity_MGCPGW1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "MgcpGw Peer" ]

$Activity_MGCPGW1 config \-enable "MGCPGW1"

1 \-name

$$Activity_MGCPGW1 agent.config \-cmdListLoops

0

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by: $Activity_MGCPGW1 agent(0).config -name "MgcpGw Peer new"

SUBCOMMANDS

None.

OPTIONS
enable Enables the use of this agent. (Default = 1). name The name associated with this object, which must be set at object creation time.

STATISTICS
The available MGCP statistics are listed in the table below.

Statistic

Description

MGCP Transactions

Applies To

1454

IxLoad Tcl API Programming Guide

VoIP MGCP

Transactions Sent

The number of transactions sent from test start.

MGW, CA

Transactions Received

The number of transactions received from test start.

MGW, CA

Transactions Failed

The number of transactions initiated and failed from test start.

MGW, CA

MGCP Transaction Rates

Transactions Sent/sec

The number of transactions sent per second from test start.

MGW, CA

Transactions Received/sec

The number of transactions received per second from test start.

MGW, CA

Transactions Failed/sec

The number of transactions failed per second from test start.

MGW, CA

MGCP Transaction Times

Transactions Sent Duration (ms) (min, avg, max)

The min/max/average duration of sent transactions.

MGW, CA

Transactions Received Duration (ms) (min, avg, max)

The min/max/average duration of sent transactions.

MGW, CA

MGCP Calls

Calls Attempted

The number of attempted calls since test start. This statistic is incremented when the phone number digits are dialed.

MGW, CA

Calls Received The number of received calls since test start. This statistic is incremented when a receiver connection becomes sendreceive.

MGW, CA

Calls Connected

The number of connected calls since test start. This statistic is incre- MGW, mented when a connection state becomes sendreceive following an ori- CA ginated call.

Calls Answered The number of calls since test start that were not answered. This stat- MGW, istic is incremented when a receiver endpoint sends an RQNT (S:L/rg). CA

IxLoad Tcl API Programming Guide

1455

VoIP MGCP

Calls Busy

The number of calls since test start that resulted in an endpoint busy condition. This statistic is incremented when an originating call is in hd state.

MGW, CA

Calls Rejected

The number of calls since test start that were rejected. This statistic is incremented when a delete call message is received before the call is connected.

MGW, CA

MGCP Call Times

MGCP Call Setup Time for MGW (ms) (min, avg, max)

The min/max/average call setup time from the MGW perspective. This is defined as the time duration between the first digit is sent and the moment when the MGCP connection becomes sendrecv.

MGW

MGCP Call

The min/max/average call setup time from the CA perspective.

CA

Setup Time for This is the time duration between the moment the RQNT with rg (or

CA (ms) (min, wt) is sent and the moment when the MGCP connection becomes

avg, max)

sendrecv.

MGCP End Call Time MGW (ms) (min, avg, max)

The min/max/average end call call time from the MGW perspective. This is the duration between the DLCX is received and the NTFY (hu) is sent, or inversed flow.

MGW

MGCP End Call The min/max/average end call call time from the CA perspective.

CA

Time CA (ms) (min, avg, max)

This is the time duration between the DLCX is sent and the NTFY (hu) is received.

MGCP Post Dial Delay (ms) (min, avg, max)

The min/max/average post dial delay. This is defined as the time between the last digit is sent and moment when the MGCP connection becomes sendrecv.

MGW

MGCP Post Pickup Delay (ms) (min, avg, max)

The min/max/average post pickup delay. This is defined as the time duration between the NTFY (hd) sent and the moment when the MGCP connection becomes sendrecv.

MGW

MGCP Media Delay Tx (ms)

The transmitting side media delay. This is the time duration between the moment the call setup is finished and the moment the first RTP packet is received.

MGW

1456

IxLoad Tcl API Programming Guide

VoIP MGCP

MGCP Media Delay Rx (ms)

The receiving side media delay. The time duration between the moment the call setup is finished and the moment the first RTP packet is received.

MGCP Total Call Time (min, avg, max)

The min/max/average total call time, which includes the call setup time, talk time, and end call time.
This is defined as the time duration between the NTFY (hd) sent/received and the moment when the End Call is finished (NTFY(hu) after DLCX, or DLCX after NTFY(hu)).

MGCP Call Rates

Calls Attempted/sec

The number of attempted calls per second since test start.

Calls Received/sec

The number of received calls per second since test start.

Calls Connected/sec

The number of connected calls per second since test start.

MGCP Commands

MGCP RSIP Sent

Number of MGCP RSIP commands sent by the MGW since test start, including retransmitted commands.

MGCP NTFY Sent

Number of MGCP NTFY commands sent by the MGW since test start, including retransmitted commands.

MGCP DLCX Sent

Number of MGCP DLCX commands sent by the CA since test start, including retransmitted commands.

MGCP RQNT Received

Number of MGCP RQNT commands received by the MGW since test start, including retransmitted commands.

MGCP CRCX Received

Number of MGCP CRCX commands received by the MGW since test start, including retransmitted commands.

MGCP MDCX Received

Number of MGCP MDCX commands received by the MGW since test start, including retransmitted commands.

MGCP DLCX Received

Number of MGCP DLCX commands received by the MGW since test start, including retransmitted commands.

MGCP AUCX Received

Number of MGCP AUCX commands received by the MGW since test start, including retransmitted commands.

CA
MGW, CA
MGW, CA MGW, CA MGW, CA
MGW MGW CA MGW MGW MGW MGW MGW

IxLoad Tcl API Programming Guide

1457

VoIP MGCP

MGCP AUEP Received

Number of MGCP AUEP commands received by the MGW since test start, including retransmitted commands.

MGW

MGCP EPCF Received

Number of MGCP EPCF commands received by the MGW since test start, including retransmitted commands.

MGW

MGCP RSIP Received

Number of MGCP RSIP commands received by the MGW since test start, including retransmitted commands.

MGW

MGCP NTFY Received

Number of MGCP NTFY commands received by the CA since test start, CA including retransmitted commands.

MGCP DLCX Received

Number of MGCP DLCX commands received by the MGW since test start, including retransmitted commands.

MGW

MGCP RQNT

Number of MGCP RQNT commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP CRCX

Number of MGCP CRCX commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP MDCX

Number of MGCP MDCX commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP DLCX

Number of MGCP DLCX commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP AUCX

Number of MGCP AUCX commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP AUEP

Number of MGCP AUEP commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP EPCF

Number of MGCP EPCF commands sent by the CA since test start,

CA

Sent

including retransmitted commands.

MGCP Responses

MGCP 1xx Received

The number of 1xx responses received since test start, including retransmissions.

MGW, CA

MGCP 1xx Sent The number of 1xx responses sent since test start, including retransmissions.

MGW, CA

MGCP 2xx Received

The number of 2xx responses received since test start, including retransmissions.

MGW, CA

1458

IxLoad Tcl API Programming Guide

VoIP MGCP

MGCP 2xx Sent The number of 2xx responses sent since test start, including retransmissions.

MGCP 4xx Received

The number of 4xx responses received since test start, including retransmissions.

MGCP 4xx Sent The number of 4xx responses sent since test start, including retransmissions.

MGCP 5xx Received

The number of 4xx responses received since test start, including retransmissions.

MGCP 5xx Sent The number of 5xx responses sent since test start, including retransmissions.

MGCP 5xx Received

The number of 5xx responses received since test start, including retransmissions.

MGCP Messages

MGCP msgs tx The number of sent MGCP messages since test start.

MGCP msgs rx The number of received MGCP messages since test start.

MGCP matched The number of matched MGCP messages since test start. msgs

MGCP commands tx

The number of sent MGCP commands since test start.

MGCP commands rx

The number of received MGCP commands since test start.

MGCP responses tx

The number of sent MGCP responses since test start.

MGCP responses rx

The number of received MGCP responses since test start.

MGCP Retransmissions TX

MGCP retransmitted messages sent

The percentage of retransmitted messages sent.

MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA
MGW, CA

IxLoad Tcl API Programming Guide

1459

VoIP MGCP

MGCP messages sent

The percentage of distinct messages sent, not including retransmissions sent.

MGW, CA

MGCP Retransmissions RX

MGCP retransmitted messages received

The percentage of retransmitted messages received.

MGW, CA

MGCP mes-

The percentage of distinct messages received, not including received

sages received retransmissions.

MGW, CA

MGCP Restart Duration

MGCP RSIPRestart Duration

The duration of MGW restarts with a restart reason. This is the time elapsed between the sending of an RSIP (reason=restart) command and the receiving of a 200 OK response.

MGW

MGCP RSIPForced Duration

The duration of MGW restarts with a forced reason. This is the time elapsed between the sending of an RSIP (reason=forced) command and the receiving of a 200 OK response.

MGW

MGCP Active Calls/Transactions

Number of act- The number of active calls. ive calls

MGW, CA

Number of active transactions

The number of active transactions.

MGW, CA

MGCP Errors

MGCP Call Flow Errors

The number of call flow errors. Such an error occurs when: l A gateway has no IP assigned; l A script function exits on the Error output

MGW, CA

MGCP Parser Errors

The number of MGCP parser errors. This statistic is incremented when a MGCP message is received with the first line malformed. When a parser error occurs, the message is not dispatched any more.

MGW, CA

MGCP Parser Warnings

The number of MGCP parser warning. This statistic is incremented when a MGCP message is received with a malformed line. When a parser warning occurs, the message is still dispatched.

1460

IxLoad Tcl API Programming Guide

VoIP MGCP

MGCP SDP Errors

The number of SDP errors. This statistic is incremented in any of the following situations:
l The SDP body cannot be constructed (invalid or empty custom SDP);
l The SDP parsing error occurred; l The SDP negotiation failed; l The SDP Glare;

MGW, CA

MGCP RTP Errors

The number of RTP errors.

MGW, CA

MGCP Transport Errors

The number of errors resulting in the incapability to send a message.

MGW, CA

MGCP Protocol Errors

The number of MGCP protocol errors. This statistic is incremented in any of the following situations:
l An RSIP with restart method is received for a gateway that is already restarted;
l An RSIP with force method is received for a gateway that is already force-restarted;
l An invalid message is intended to be sent; l A message with an incompatible version is received; l An RSIP message is received on a gateway; l An inappropriate parameters has been received for a certain end-
point state; l An invalid message is received (with not allowed parameters for
that message);

MGW, CA

MGCP Timeout Errors

The number of MGCP timeout errors. This statistic is incremented when a Wait-type script function timeout period has expired or when the transaction timeout period has expired.

MGW, CA

MGCP Unknown The number of errors having an unknown destination phone number as CA

Phone No

a cause. This statistic is incremented only on the Call Agent when the

dialed phone number received through a NTFY command is not defined

in the Call Agent.

MGCP Unknown Endpoint

The number of errors having a failed endpoint resolution as cause. This statistic is incremented when the GW/CA received a MGCP command for an endpoint that is not defined on the gateway/call agent.

MGW, CA

IxLoad Tcl API Programming Guide

1461

VoIP MGCP

MGCP Incorrect ConnectionId

The number of errors caused by an incorrect connection id parameter. This statistic is incremented on the Call Agent when it receives a ConnectionId (I) parameter in a MDCX or DLCX command and that connection has not been created.

MGCP Incorrect CallId

The number of errors caused by an incorrect call id parameter. This statistic is incremented on the Gateway/Call Agent when it receives a CallId (C) parameter in a MDCX, CRCX, or DLCX command and there is no connection created for that call id.

MGCP Unsupported Functionality

This statistic is incremented when the SDP information that is intended to be sent references a connection that has already been deleted.

MGCP Unknown This statistic is incremented whenever a RSIP message is received Restart Method with an unknown RM parameter value.

MGCP Unknown This statistic is incremented every time a Call Agent tries to send a

Gateway IP

message to a gateway whose IP cannot be determined.

EXAMPLE
################################################## Activity MGCPGW1 of NetTraffic Traffic1@Network1#################################################set Activity_ MGCPGW1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "MgcpGw Peer" ]

$Activity_MGCPGW1 config \-enable "MGCPGW1"

1 \-name

$Activity_MGCPGW1 agent.config \-cmdListLoops

0

SEE ALSO

ixConfig

1462

IxLoad Tcl API Programming Guide

VoIP MGCP

MGCP Settings (GW)
VoIP MGCP simulated GW settings
SYNOPSIS
set Activity_MGCPGW1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "MgcpGw Peer" ]$Activity_MGCPGW1 config \$Activity_MGCPGW1 agent.pm.mgcpSettings.config
DESCRIPTION
Simulates the source address in MGCP messages and contains the list of all endpoint groups provisioned on the GW.

SUBCOMMANDS
Endpoints.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. port The MGCP listening port. Default = "2427". callAgent The address of the controlling CA as a symbolic link or as an IP address. enableTos Enables use of TOS/DSCP settings. When enableTos is configured to 1, the tos option specifies the TOS/DSCP value. 0 = TOS disabled (default) 1= TOS enabled tosVal If enableTos is configured 1, this option sets the value of the TOS bits.

Value

Usage

0 (default) Best Effort (0x00)

1

Class 1 (0x20)

2

Class 2 (0x40)

IxLoad Tcl API Programming Guide

1463

VoIP MGCP

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

domainName The MGCP GW domain name. Sequence generator expressions are supported, for example, gw[001100].ixialab.com which defines a number of 100 hosts, gw001 through gw100. mgcpVersion The currently supported MGCP version. ncsTgcpVersion The currently supported NCS version. udpMaxSize The maximum UDP size for MGCP traffic. ipPreference The IP preference, IPv4 or IPv6.

EXAMPLE

$Activity_MGCPGW1 agent.pm.mgcpSettings.config \-enableTos

false \-tosVal

0 \-domainName

"gw[001-100].ixialab.com" \-ncsTgcpVersion

"NCS 1.0" \-

callAgent

"Traffic2_MGCPCA1" \-udpMaxSize

1470 \-mgcpActivitiesCount

0 \-ipPreference

0 \-mgcpVersion

"1.0" \-port

"2427"

$Activity_MGCPGW1 agent.pm.mgcpSettings.endpoints.clear
SEE ALSO
VoIP MGCPGW Agent

1464

IxLoad Tcl API Programming Guide

VoIP MGCP
Automatic Settings (GW)
VoIP MGCP GW automatic settings.
SYNOPSIS
s$Activity_MGCPGW1 agent.pm.automaticSettings.config \
DESCRIPTION
Defines automatic settings for the MGCP GW.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. rsipAtBegin If configured to true, an RSIP command is sent at the test start. restartDelay If rsipAtBegin is configured true, this specifes a restart delay value (Default=0). rsipAtEnd If configured to true, an RSIP command is sent at the test end. retransmit If configured to true, this option enables retransmissions of message for whom a reply has not been received. ignoreRecvRetransmit If configured true, retransmissions are ignored. retransmTimerType Specifies a timer type as either of the following:
l 0 = A timer value is specified l 1 = The timer value is calculated internally according to RFC 3435 retransmTimerDuration If retransmTimerType is configured 0, this specifies a retransmission timer value (default = 3000 ms). transactionTimeout

IxLoad Tcl API Programming Guide

1465

VoIP MGCP

Specifies a transaction timeout (default = 50000 ms). waitTimeout

Specifies a wait timeout (default = 50000 ms).

EXAMPLE

$Activity_MGCPGW1 agent.pm.automaticSettings.config \-restartDelay

"0" \-ignoreRecvRetransmit

true \-rsipAtBegin

true \-transactionTimeout

50000 \-retransmTimerType

0 \-rsipAtEnd

true \-waitTimeout

50000 \-retransmTimerDuration

3000 \-retransmit

true

SEE ALSO

MGCP Settings (GW)

1466

IxLoad Tcl API Programming Guide

VoIP MGCP

Endpoints

VoIP MGCP GW endpoint group settings.

SYNOPSIS
$Activity_MGCPGW1 agent.pm.mgcpSettings.endpoints.appendItem
DESCRIPTION

Defines the properties of an endpoint group provisioned on the GW.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the endpoint group id. endpoint Indicates the endpoint group name. NOTE: Sequence generator expressions are supported, such as for example, aaln[1-3]. enabled Indicates if the endpoint group is active (true) or not (disabled = false). activity The name of the corresponding Endpoint activity.

EXAMPLE

$Activity_MGCPGW1 agent.pm.mgcpSettings.endpoints.appendItem \-id

"Endpoint" \-endpoint

"aaln1" \-enabled

true \-activity

"Endpoint1"

SEE ALSO

IxLoad Tcl API Programming Guide

1467

VoIP MGCP

MGCP CA Agent
VoIP MGCPCA Agent
SYNOPSIS
set Activity_MGCPCA1 [$Traffic2_Network2 activityList.appendItem \-protocolAndType "MgcpCa Peer" ]

$Activity_MGCPCA1 config \-enable "MGCPCA1"

1 \-name

DESCRIPTION

A VoIP MGCPCA agent is added to the agentList option of the ixConfig object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. See the following example: set Activity_MGCPCA1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType
"MgcpCa Peer" ]

$Activity_MGCPCA1 config \-enable "MGCPCA1"

1 \-name

$$Activity_MGCPCA1 agent.config \-cmdListLoops

0

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by: $Activity_MGCPCA1 agent(0).config -name "MgcpCa Peer new"

SUBCOMMANDS

None.

OPTIONS
enable Enables the use of this agent. (Default = 1). name The name associated with this object, which must be set at object creation time.

EXAMPLE
################################################## Activity MGCPCA1 of NetTraffic Traffic1@Network1#################################################set Activity_ MGCPCA1 [$Traffic1_Network1 activityList.appendItem \-protocolAndType "MgcpCa Peer" ]

$Activity_MGCPCA1 config \-enable

1 \-name

1468

IxLoad Tcl API Programming Guide

"MGCPCA1"
SEE ALSO
ixConfig

VoIP MGCP

IxLoad Tcl API Programming Guide

1469

VoIP MGCP

MGCP Settings (CA)

VoIP MGCP Simulated CA settings
SYNOPSIS
$Activity_MGCPCA1 agent.pm.mgcpSettings.config \
DESCRIPTION
Simulates the source address in MGCP messages, designates the MGCP CA settings. Also contains the list of all gateways and endpoint groups controlled by the CA.

SUBCOMMANDS
Endpoints, Gateways.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. port The MGCP CA listening port (default 2727). mgcpVersion The currently supported MGCP version. ncsTgcpVersion The currently supported NCS version. enable Tos Enables use of TOS/DSCP settings. When enableTos is configured to 1, the tos option specifies the TOS/DSCP value. 0 = TOS disabled (default) 1= TOS enabled tosval If enableTos is configured 1, this option sets the value of the TOS bits.

Value

Usage

0 (default) Best Effort (0x00)

1

Class 1 (0x20)

1470

IxLoad Tcl API Programming Guide

VoIP MGCP

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

useDigitMap

If configured true, a digit map is specified. digitMap The digit map to be send to the GW. ipPreference The IP address preference, IPv4 or IPv6. udpMaxSize The maximum UDP size for MGCP traffic.

EXAMPLE

$Activity_MGCPCA1 agent.pm.mgcpSettings.config \-enableTos

false \-tosVal

0 \-digitMap

"160xxxxxx" \-ipPreference

0 \-ncsTgcpVersion

"NCS 1.0" \-useDigitMap

true \-mgcpActivitiesCount

0 \-udpMaxSize

1470 \-mgcpActivityId

0 \-mgcpVersion

"1.0" \-port

2727

SEE ALSO

Endpoints

Gateways

IxLoad Tcl API Programming Guide

1471

VoIP MGCP
Automatic Settings (CA)
VoIP MGCP CA automatic settings
SYNOPSIS
s$Activity_MGCPCA1 agent.pm.automaticSettings.config \
DESCRIPTION
The automated settings for the simulated CA.
SUBCOMMANDS
None
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. rsipAtBegin If configured to true, an RSIP command is awaited at test start. restartDelay If rsipAtBegin is configured true, this specifies a restart delay value (Default=0). rsipAtEnd If configured to true, an RSIP command is awaited at test end. retransmit If configured to true, retransmissions are enabled. ignoreRecvRetransmit If configured true, retransmissions are ignored. retransmTimerType Specifies a timer type as either of the following:
l 0 = A timer value is specified l 1 = The timer value is calculated internally according to RFC 3435 retransmTimerDuration If retransmTimerType is configured 0, this specifies a retransmission timer value (default = 3000 ms). transactionTimeout Specifies a transaction timeout (default = 50000 ms).

1472

IxLoad Tcl API Programming Guide

VoIP MGCP

waitTimeout Specifies a wait timeout (default = 50000 ms).

EXAMPLE

$Activity_MGCPCA1 agent.pm.automaticSettings.config \-restartDelay

"0" \-ignoreRecvRetransmit

true \-rsipAtBegin

true \-transactionTimeout

50000 \-retransmTimerType

0 \-rsipAtEnd

true \-waitTimeout

50000 \-retransmTimerDuration

3000 \-retransmit

true

SEE ALSO

IxLoad Tcl API Programming Guide

1473

VoIP MGCP

Endpoints
VoIP MGCPCA controlled Endpoint settings.
SYNOPSIS
$Activity_MGCPCA1 agent.pm.mgcpSettings.endpoints.clear$Activity_MGCPCA1 agent.pm.mgcpSettings.endpoints.appendItem \
DESCRIPTION
The properties of endpoint groups controlled by the CA.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the endpoind group id. set Indicates the endpoint set id. endpoint Indicates the endpoint group name. NOTE: Sequence generator expressions are supported, for example, aaln[1-3]. enabled Indicates if the endpoint group is active (true) or not (disabled = false). activity The name of the corresponding MGCP Endpoint activity.
EXAMPLE
$Activity_MGCPCA1 agent.pm.mgcpSettings.endpoints.clear

$Activity_MGCPCA1 agent.pm.mgcpSettings.endpoints.appendItem \-id

"Endpoint" \-set

"Set1" \-endpoint

"aaln1" \-enabled

true \-activity

"Endpoint2"

1474

IxLoad Tcl API Programming Guide

SEE ALSO
Gateways

VoIP MGCP

IxLoad Tcl API Programming Guide

1475

VoIP MGCP

Gateways
VoIP MGCP controlled GW settings
SYNOPSIS
$Activity_MGCPCA1 agent.pm.mgcpSettings.gateways.clear

$Activity_MGCPCA1 agent.pm.mgcpSettings.gateways.appendItem \
DESCRIPTION
The properties of gateways controlled by the CA.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. id Indicates the gateway id. set Indicates the name of the endpoint set. endpoint Indicates the endpoint group name. NOTE: Sequence generator expressions are supported, for example, aaln[1-3]. gateway A controlled gateway. NOTE: Sequence generator expressions are supported, for example gw[001-100].ixialab.com.
EXAMPLE
$Activity_MGCPCA1 agent.pm.mgcpSettings.gateways.clear

$Activity_MGCPCA1 agent.pm.mgcpSettings.gateways.appendItem \-id

"Gateway" \-set

"Set1" \-endpoint

"aaln1" \-gateway

"gw\[001-100\].ixialab.com"

1476

IxLoad Tcl API Programming Guide

SEE ALSO
Endpoints

VoIP MGCP

IxLoad Tcl API Programming Guide

1477

VoIP MGCP

Scenario Settings

VoIP MGCP Endpoint scenario settings.

SYNOPSIS
$Activity_Endpoint2 agent.pm.scenarioSettings.config \
DESCRIPTION
Specifies the test scenario file and channel executed by the Tcl script.

SUBCOMMANDS
None.

OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. scenarioFile
The full path to the test scenario file for the activity. activeScenarioChannel
Test scenario channel (0-based index) that is associated with the VoIP MGCP Endpoint activity. Default=0.

EXAMPLE

$Activity_Endpoint2 agent.pm.scenarioSettings.config \-scenarioFile

"C:\\Documents and Settings\\user11\\Desktop\\MGCP rxf\\MBCP_BC_GWvsCA.tst" \-

activeScenarioChannel

1

SEE ALSO

1478

IxLoad Tcl API Programming Guide

VoIP MGCP

Execution Settings
VoIP MGCP Endpoint execution settings.
SYNOPSIS
$Activity_Endpoint2 agent.pm.executionSettings.config \
DESCRIPTION
This object defines the execution settings for the VoIP MGCP Endpoint.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. gracefulRampDown If enabled, allows the user to exit gracefully after a session. Default=1 loopCount If loopMode is 1, this option defines the number of loops that the test performs. Default="1". loopPreDelay Delay before first loop (ms). Default="0". loopMode Defines how many loops are executed for every voice channel corresponding to this activity.

Value

Description

0 (default) Loop for the entire test duration.

1

Execute a number of loops. Specify the number of loops in loopCount.

loopMidDelay

Delay between loops (ms). Default="0".

EXAMPLE

$Activity_Endpoint2 agent.pm.executionSettings.config \-gracefulRampDown

true \-loopMidDelay

0 \-loopPreDelay

0 \-loopCount

1 \-loopMode

IxLoad Tcl API Programming Guide

1479

VoIP MGCP
1
SEE ALSO

1480

IxLoad Tcl API Programming Guide

VoIP MGCP

Custom Activity Link Settings
VoIP MGCP Endpoint link settings.
SYNOPSIS
$Activity_Endpoint1 agent.pm.customActivityLinkSettings.config \
DESCRIPTION
This object defines the link settings for the VoIP MGCP Endpoint.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. bhcaObjectiveValue The BHCA test objective value. Default="80000". bhcaType Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

talkTime If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000". channelsNo If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100". callSetupTime Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500".

IxLoad Tcl API Programming Guide

1481

VoIP MGCP

interCallDuration Inter-call duration. Default="4000". cpsObjectiveValue The Calls per Second test objective value. Default="100" cpsType Determines how the CPS objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

CPS objective will be met by specifying the talk time. Based on the the talk time value

(default) specified in cpstalkTime, the cpsChannelsNo value is computed.

1

CPS objective will be met by specifying the number of channels. Based on the the chan-

nels number value specified in cpsChannelsNo, the cpstalkTime value is computed.

cpsTalkTime
If cpsType is 0, this option specifies the Talk Time that will be used to attain the CPS test objective. Default="40000". cpsChannelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the CPS test objective. Default="100". cpsOverheadTime
Indicates the duration of all other actions on the channel except the talk time and minimum inter-call duration. cpsInterCallDuration
The minimum time interval between the end of a call on a Voice channel and the start of a new call on the same voice channel. lpsObjectiveValue
The Loops-per-Second test objective value. Default="100". lpsType
The mode in which the Loops-per-Second objective is met, either by specifying the talk time or the number of channels, as follows:

Value

Usage

1482

IxLoad Tcl API Programming Guide

VoIP MGCP

0

LPS will be met by specifying the talk time. Specify the talk time in lpstalkTime.

(default)

1

LPS will be met by specifying the number of channels. Specify the number of channels

in lpschannelsNo.

lpsTalkTime

If lpsType is configured 0, this is the estimated talk time value. Default="750". lpsChannelsNo

If lpsType is configured 1, this is the estimated talk time value. Default="100". lpsOverheadTime

The estimated overhead time. Default="1500". lpsInterloopDuration

The estimated interloop duration. Default="2000". lpsActiveChannel

The referenced test scenario channel. activeUsersNo

The total number of simulated VoIP users (for ActiveCallers test objective). Default="100". activeUsersObjectValue

The ActiveCallers test objective value. Active callers at any time represent a subset of the total number of users. Default="100".
activeUserChannel

The referenced test scenario channel. activeUsersTalkTime

The estimated talk time for the ActiveCallers test objective. Default="750".

EXAMPLE

$Activity_Endpoint1 agent.pm.customActivityLinkSettings.config \-lpsActiveChannel

0 \-talkTime

40000 \-lpsTalkTime

750 \-interCallDuration

4000 \-callSetupTime

500 \-lpsChannelsNo

100 \-activeUsersNo

100 \-cpsType

0 \-lpsObjectiveValue

100 \-lpsInterLoopDuration

2000 \-cpsOverheadTime

1500 \-activeUsersChannel

0 \-activeUsersObjectiveValue

100 \-cpsInterCallDuration

2000 \-lpsOverheadTime

1500 \-lpsType

0 \-callTeardownTime

IxLoad Tcl API Programming Guide

1483

VoIP MGCP
500 \-bhcaObjectiveValue 100 \-activeUsersTalkTime 750 \-bhcaType 100 \-cpsChannelsNo
SEE ALSO

80000 \-cpsObjectiveValue 750 \-cpsTalkTime 0 \-channelsNo 100

1484

IxLoad Tcl API Programming Guide

VoIP MGCP
Simulated Endpoints
Simulated endpoint settings.
SYNOPSIS
$Activity_Endpoint2 agent.pm.endpoints.config \
DESCRIPTION
This object configures the simulated endpoint settings of an Endpoint activity. This object can reside both under an MGCP GW and MGCP CA object.
SUBCOMMANDS
None.
OPTIONS
endpointName The endpoint name. Note: Sequence generator expressions are supported, for example, aaln[1-3]. gwIpAsName If configured true, the gwName parameter is specified as an IP address, otherwise it is specified as a fully qualified host name. gwName The GW(s) the endpoint is provisioned on. Note: Sequence generator expressions are supported, for example, gw[001-100].ixialab.com. destPhoneSource Defines the mode in which the destination phone number (for GW) or source phone number (for CA) is specified: 0 = The phone number is specified by the destPhoneUser parameter 1 = The phone number is specified by a phone book entry (destPhonePB parameter) 2 = The phone number is taken from the CA activity (available for an MGCP GW activity) destPhonePB If destPhoneSource is configured with a value of 2, this specifies a phone book entry. destPhoneUser If destPhoneSource is configured with a value of 0, this specifies the call destination phone (for GW) or source phone (for CA).

IxLoad Tcl API Programming Guide

1485

VoIP MGCP

Note: Sequence generator expressions are supported, for example, 170[000000-].

EXAMPLE

$Activity_Endpoint2 agent.pm.endpoints.config \-gwIpAsName

false \-destPhone

"170\[000000-\]" \-_labelDestPhone

false \-destPhonePreview

"" \-gwName

"gw\[01-10\].ixialab.com" \-endpointName

"aaln1" \-

destPhoneType

0 \-destPhoneSource

0 \-destPhonePB

"<None>" \-_phoneNoFromCA

false \-destPhoneUser

"170\[000000-\]"

SEE ALSO

MGCP Settings (GW) MGCP CA Agent

1486

IxLoad Tcl API Programming Guide

VoIP MGCP

Data Codecs
VoIP MGCP Endpoint Group Data Codecs
SYNOPSIS
$Activity_Endpoint1 agent.pm.codecSettings.dataCodecs.clear$Activity_Endpoint1 agent.pm.codecSettings.dataCodecs.appendItem \
DESCRIPTION
Data Codecs configures a data codec object, which is added to the Codec Settings list of codecs.
SUBCOMMANDS
None.
OPTIONS
id Codec type. One of the following:

Codec

Description

Rtp2833Events Named Events Payload format used for carrying DTMF digits and other line and trunk signals as events.

Rtp2833Tones RTP Payload format that can represent tones consisting of one or more frequencies.

dPayloadType Payload type used for RTP data packets. Default=(see table) min="96" max="127"

Codec

Default value for dPayloadType

Rtp2833Events 100

Rtp2833Tones 101

EXAMPLE
$Activity_Endpoint1 agent.pm.codecSettings.dataCodecs.clear

$Activity_Endpoint1 agent.pm.codecSettings.dataCodecs.appendItem \-id

"Rtp2833Events" \-dPayloadType

100

IxLoad Tcl API Programming Guide

1487

VoIP MGCP
SEE ALSO
Codec Settings

1488

IxLoad Tcl API Programming Guide

VoIP MGCP

Codecs
VoIP MGCP CA/GW Endpoint audio codecs
SYNOPSIS
$Activity_Endpoint1 agent.pm.codecSettings.codecs.clear$Activity_Endpoint1 agent.pm.codecSettings.codecs.appendItem \
DESCRIPTION
Codecs configures an audio codec object, which is added to the Codec Settings list of codecs. To add a codec object, use the appendItem command.
SUBCOMMANDS
None.
OPTIONS
id The codec type, which is one of the following:

Codec

Description

CodecG711u

G.711 mu-law codec

CodecG711a

G.711 A-law codec

CodecG723x153 G.723.1 codec @ 5.3 kbps

CodecG723x163 G.723.1 codec @ 6.3 kbps

CodecG726x16 G.726 codec @ 16 Kbps

CodecG726x24 G.726 codec @ 24 Kbps

CodecG726x32 G.726 codec @ 32 Kbps

CodecG726x40 G.726 codec @ 40 Kbps

CodecG729A

G.729 Annex-A codec

CodeciLBC

iLBC codec

Options for CodecG711u
dPayloadIn

IxLoad Tcl API Programming Guide

1489

VoIP MGCP
Incoming dynamic payload type. Default="0" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="0" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG711a
dPayloadIn Incoming dynamic payload type. Default="8" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="8" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG723x153
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 20. Default=20.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG723x163
dPayloadIn

1490

IxLoad Tcl API Programming Guide

Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG726x16
dPayloadIn Incoming dynamic payload type. Default="102" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="102" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 20, 40, 60. Default=20.
Options for CodecG726x24
dPayloadIn Incoming dynamic payload type. Default="103" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="103" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

IxLoad Tcl API Programming Guide

VoIP MGCP 1491

VoIP MGCP

frameSize Bytes per frame. Must be one of the following: 30, 60, 90. Default=30.
Options for CodecG726x32
dPayloadIn Incoming dynamic payload type. Default="104" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="104" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 40, 80, 120. Default=40.

Options for CodecG729
dPayloadIn Incoming dynamic payload type. Default="18" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="18" min="0" max="127". cbxFrameSize Bytes per frame. Must be one of the following: 10, 20, 30, 40, 50, Custom. Default=10. customFrameSize If cbxFrameSize is Custom, this option configures the custom frame size. Default="120" min="10" max="200".

EXAMPLE

$Activity_Endpoint1 agent.pm.codecSettings.codecs.clear$Activity_Endpoint1 agent.p-

m.codecSettings.codecs.appendItem \-id

"CodecG711u" \-dPayloadOut

0 \-dPayloadIn

0 \-frameSize

160

1492

IxLoad Tcl API Programming Guide

SEE ALSO
Codec Settings

VoIP MGCP

IxLoad Tcl API Programming Guide

1493

VoIP MGCP

SDP Settings

VoIP MGCP Endpoint SDP Settings

SYNOPSIS
$Activity_Endpoint1 agent.pm.sdpSettings.config \
DESCRIPTION
MGCP uses SDP for specification and negotiation of media capabilities of GW endpoints. SDP information is sent using a stream descriptor that specifies a single bi-directional media stream.

SUBCOMMANDS
None.

OPTIONS
useCustomSdp If true, the auto SDP template constructed from the codec list can be overridden by editing the SDP template. Default=false. customSPDP The SDP string that is used when the Auto option is selected for an SDP descriptor.

EXAMPLE

$Activity_Endpoint1 agent.pm.sdpSettings.config \-useCustomSDP

false \-customSDP

"v=0 \o=- 0 0 IN IP4 <\$VOIP_Sig-

nalingIP> \s=session \c=IN IP4 <\$VOIP_MediaIP> \t=0 0 \m=audio <\$VOIP_Medi-

aBasePort> RTP/AVP 0 8 100 101 \a=rtpmap:0 PCMU/8000 \a=rtpmap:8 PCMA/8000

\a=rtpmap:100 telephone-event/8000 \a=rtpmap:101 tone/8000 \a=ptime:20"

SEE ALSO

VoIP MGCPGW Agent

1494

IxLoad Tcl API Programming Guide

VoIP MGCP

RTP Settings

VoIP MGCP Endpoint RTP settings

SYNOPSIS
$Activity_Endpoint1 agent.pm.rtpSettings.config \
DESCRIPTION

The RTP Settings configure the VoIP MGCP MGC/GW Endpoint group RTP settings.

SUBCOMMANDS
None.

OPTIONS
enableRTP If true, enables use of RTP to transport the media traffic. Default= false. enableRTCP If true, enables use of RTCP for RTP traffic. Default= false. rtpPort The port used for audio/video RTP streaming. Default="10000". chEnableHwAcc If true, enables hardware acceleration for RTP traffic. Default=false. enableAdvStatCalc If true, enables the computation of advanced audio RTP statistics. enableMDI Enables computation of MDI DF and MDI MLR statistics. enableNBExec If true, all RTP functions from a scenario execute in a non-blocking mode, i.e the current function from a channel executes in the background, allowing the execution to continue on that channel with the next script function. Default= False.

EXAMPLE

$Activity_Endpoint1 agent.pm.rtpSettings.config \-enableRTP

false \-enableRTCP

false \-chEnableHwAcc

true \-chDisableHwAcc

false \-enableAdvStatCalc

false \-enablePerStream

false \

-enableMDI false \ -rtpPort

"\[10000-65535,4\]" \-enableNBExec

IxLoad Tcl API Programming Guide

1495

VoIP MGCP
false
SEE ALSO
VoIP MGCPGW Agent

1496

IxLoad Tcl API Programming Guide

VoIP MGCP

Audio Settings
VoIP MGCP MGC/GW Endpoint audio settings
SYNOPSIS
$Activity_Endpoint1 agent.pm.audioSettings.config \
DESCRIPTION
The Audio Settings configure the VoIP MGCP MGC/GW Endpoint audio RTP settings.
SUBCOMMANDS
None.
OPTIONS
enableAudio If selected, audio script functions are executed, otherwise they are skipped. audioClip The played audio clip file. playTypeAudio The mode in which the clip is played.

Value

Usage

0

The clip is played for clip duration or for the duration of the Talk Time parameter in the

(default) case of BHCA/CPS/LPS objectives.

1

The clip is played for a user-defined duration.

audioDurationUnit The play duration unit, which can be miliseconds (0), seconds (1), minutes (2), or hours (3). outputLevel The output level of the played clip. enableTosRtp Enables use of TOS/DSCP. Use the rtpTos option to specify the TOS/DSCP value. Default= False rtpTosVal The Type of Service (TOS/DSCP) byte setting in the sent RTP packets has one of the following values:
l Best Effort (0x00): Routine service

IxLoad Tcl API Programming Guide

1497

VoIP MGCP
l Class 1 (0x20): Priority service, Assured Forwarding class 1 l Class 2 (0x40): Immediate service, Assured Forwarding class 2 l Class 3 (0x60): Flash, Assured Forwarding class 3 l Class 4 (0x80): Flash-override, Assured Forwarding class 4 l Express Forwarding (0xA0): Critical-ecp l Control (0xC0): Internet-control l Custom: A user-specified value. useMOS Enables the computation of MOS scores. Default= False. enableAudioOWD If true, IxLoad computes the One-way Delay metric, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default= False useJitter If true, enables use of a jitter buffer. Default= False. jjitMs If useJitter is 1, this option configures the size of the jitter buffer, in milliseconds. Default="20" minn="1" max="3000". useJitComp If true, enables dynamic modification of the jitter buffer size. Default= False. jitCMs If useJitComp is 1, this option configures the maximum size in of the jitter buffer, in milliseconds. Default="1000" min="0" max="3000". jitCMaxDrop If useJitComp is 1, this option configures the condition - a maximum number of consecutive packets dropped - that determines the jitter buffer size to be increased. enableQoV If true, this enables QoV P.862 PESQ and P.56 QoV computation. Default= False. channelTypeQoV When enableQoV is true, this specifies the objective type as either of the following: l Number of channels (0) l Percentage (1) valueQoV

1498

IxLoad Tcl API Programming Guide

VoIP MGCP

When enableQoV is true, this specifies the number of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 0). Alternatively this represents the percentage of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 1).
unitsQoV
The channels selection mode, which can be any of the following:
l First channels (0) l Last channels (1) l Evenly-spaced channels (2) l Random (3)
metricsQoV
When enableQoV is true, this specifies the metric that is calculated by the Zion card. Available options are:
l PESQ and P.56 (0) l PESQ (1) l P56 (2)
useSilence
If true, RTP packets containing artificial background noise are sent when no other media (DTMF, MF, real payload, and so on) is sent over the communication channel. Default= False.
silenceMode
If useSilence is 1, this option configures the silence mode.

Value

Usage

0

Null data encoded

1 (default) Comfort noise.

EXAMPLE

$Activity_Endpoint1 agent.pm.audioSettings.config \-enableAudio

true \-audioClip

"US_042.wav" \-playTypeAudio

0 \-audioDurationUnit

1 \-audioDuration

10 \-outputLevel

-20-enableAudioOWD

false \-enableTosRtp

false \-rtpTosVal

32 \-useMos

false \-useJitter

false \-jitMs

20 \-useJitComp

false \-jitCMs

1000 \-jitCMaxDrop

7 \-enableQoV

false \-channelTypeQoV

0 \-valueQoV

100 \-unitsQoV

IxLoad Tcl API Programming Guide

1499

VoIP MGCP
0 \-metricsQoV false \-silenceMode
SEE ALSO
VoIP MGCPGW Agent

0 \-useSilence 1\

1500

IxLoad Tcl API Programming Guide

VoIP MGCP
Other Settings
VoIPMGCP MGC/GW EndpointGroup Other Settings
SYNOPSIS
$Activity_Endpoint1 agent.pm.otherSettings.config \
DESCRIPTION
This object configures the VoIP MGCP MGC/GW Endpoint Group activity's miscellaneous options.
SUBCOMMANDS
None.
OPTIONS
VOIP_Var0 The VOIP_Var1...VOIP_Var5 and VOIP_IPAddr1...VOIP_IPAddr5 string-type variables supporting generator expressions enable you to generate 10 series of global variables whose values are used at runtime by the simulated MGCP Endpoint Group phones/channels. Default="". Use the VOIP_Var1...VOIP_Var5 variables to represent phone numbers, and the VOIP_IPAddr1...VOIP_ IPAddr5 to represent IP addresses. VOIP_Var1 See VOIP_Var0. VOIP_Var2 See VOIP_Var0. VOIP_Var3 See VOIP_Var0. VOIP_Var4 See VOIP_Var0. VOIP_IPAddress0 See VOIP_Var0. VOIP_IPAddress1 See VOIP_Var0. VOIP_IPAddress2 See VOIP_Var0. VOIP_IPAddress3

IxLoad Tcl API Programming Guide

1501

VoIP MGCP

See VOIP_Var0. VOIP_IPAddress4

See VOIP_Var0.

EXAMPLE

$Activity_Endpoint1 agent.pm.otherSettings.config \-VOIP_Var1

"" \-VOIP_Var0

"" \-VOIP_Var3

"" \-VOIP_Var2

"" \-VOIP_Var4

"" \-VOIP_IPAddress4

"" \-VOIP_IPAddress1

"" \-VOIP_IPAddress0

"" \-VOIP_IPAddress3

"" \-VOIP_IPAddress2

""

SEE ALSO

VoIP MGCPGW Agent

1502

IxLoad Tcl API Programming Guide

VoIP SIP Cloud
The IxLoad VoIP SIP Cloud Peer Tcl API consists of a VoIP SIP Cloud Peer agent, with separate APIs for configuring each major aspect of the agent's functionality.
Limitations
The following restrictions and limitations of the VoIP SIP Cloud Peer API exist: l A VoIPSIP Cloud Peer activity and the VoIPSIP Peer activity it is associated to must reside on the same NetTraffic. l A network range assigned to a VoIPSIP Cloud necessarily has to be of the Round-Robin IP distribution type.

IxLoad Tcl API Programming Guide

1503

VoIP SIP Cloud
VoIP SIP Cloud API Commands
The IxLoad VoIP SIP Cloud API commands are organized as shown in the figure below.

1504

IxLoad Tcl API Programming Guide

VoIP SIP Cloud

API Objects
The following table lists the VoIP SIP Cloud Peer API objects

Object

Description

VoIP SIPCloud Peer Agent Top-level object defining the VoIP SIP Cloud Peer activity.

Settings

VoIPSIP Cloud IP addressing type settings.

SipServerList

List of SIP Proxy servers emulated by the activity.

IxLoad Tcl API Programming Guide

1505

VoIP SIP Cloud

VoIPSIP Cloud Agent

VoIPSIPCloud Peer Agent

SYNOPSIS

set Activity_VoIPSIPPeer1 [$Traffic1_Network1 activityList.appendItem \

-protocolAndType

"VoIPSIPCloud Peer" ]

DESCRIPTION

A VoIPSIPCloud Peer agent is added to the agentList option of the ixConfig object using the appendItem subcommand from the ixConfigSequenceContainer command, as shown in the following example:

set Activity_VoIPSipCloud1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPSipCloud Peer" ]

$Activity_VoIPSipCloud1 config \-enable "VoIPSipCloud1"

true \-name

$Activity_VoIPSipCloud1 agent.config \-enable

\-name

"VoIPSipCloud1"

true

Each member of the list may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by using the following command:
$Activity_VoIPSipCloud1 agent(0).config -name "VoIPSIP Cloud Peer2"
SUBCOMMANDS
None.
OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time.

1506

IxLoad Tcl API Programming Guide

VoIP SIP Cloud

STATISTICS
The following table lists the statistics published by this object.

Statistic

Description

Per Channel/Global

Dispatched messages

This statistic is incremented when a received message has been parsed and a matching dispatching rule was found for it.

Global

Undispatched This statistic is incremented when a received message has been

messages

parsed and a matching dispatching rule was not found for it.

Global

Sent Messages

This statistics is incremented when an message was sent from a server in the cloud.

Global

Parsed Mes- This statistic is incremented when a message was successfully

sages

parsed.

Global

Parser errors

This statistic is incremented on the cloud in the data process function, after parsing the received stream, if we receive parser errors when we try to process the stream.

Global

Bytes Transmitted

This statistic is incremented only on the cloud for sent messages. Messages sent by a SIP peer through the cloud will not be accounted to the SIP peer's bytes sent.

Global

Bytes Received

This statistic is incremented only on the cloud for received messages. Messages received by a SIP peer through the cloud will not be accounted to the SIP peer's bytes received.

Global

EXAMPLE

set Activity_VoIPSipCloud1 [$Traffic1_Network1 activityList.appendItem \-

protocolAndType

"VoIPSipCloud Peer" ]

$Activity_VoIPSipCloud1 config \-enable "VoIPSipCloud1"

true \-name

$Activity_VoIPSipCloud1 agent.config \-enable

\-name

"VoIPSipCloud1"

SEE ALSO

ixConfig

true

IxLoad Tcl API Programming Guide

1507

VoIP SIP Cloud

Settings

VoIPSIPCloud Peer Settings

SYNOPSIS

$Activity_VoIPSipCloud1 agent.pm.settings.config \

-ipPreference

0

$Activity_VoIPSipCloud1 agent.pm.settings.sipServerList.clear

DESCRIPTION
Contains the preferred IP addressing type used, IPv4- or IPv6-only.

SUBCOMMANDS
None.

OPTIONS
ipPreference

The preferred IP address type: 0 = Only IPv4 (default) 1 = Only IPv6

EXAMPLE
$Activity_VoIPSipCloud1 agent.pm.settings.config \-ipPreference 0
SEE ALSO

1508

IxLoad Tcl API Programming Guide

VoIP SIP Cloud
SIP Server List
SIP Proxy Servers List
SYNOPSIS
$Activity_VoIPSipCloud1 agent.pm.settings.sipServerList.appendItem \ -optionvalue
DESCRIPTION
A SipServerList contains the list of SIP Proxy Servers emulated by the VoIPSIP Cloud Peer. To add SipServer objects, use the appendItem subcommand from the ixConfigSequenceContainer command. Note: The SipServerList class has to be configured alonside the CloudServers class of a VoIP SIP Peer that implements the same functionality.
SUBCOMMANDS
None.
OPTIONS
id The SIP server list ID. firstIp The first IP address in the network range associated with the SIP Proxy server. This is the SIP Proxy server that is located at the cloud boundary. name The server name (default sip_server#1 and subsequent strings). rangeType The range type, which can be only IP for VoIP SIP Cloud peers. ipAddr The start IP address of the associated network range. netMask The network mask. ipStep The incrementation step of the start IP address (default "0.0.0.1).

IxLoad Tcl API Programming Guide

1509

VoIP SIP Cloud
attachedInfo An extra string associated with the proxy, such as for example a domain name (default = sip-test.mydomain.com). ipCount The number of hosts (default = 1). port The SIP port (default = 5060). ipType The IP addressing type, IPv4 or or IPv6.
EXAMPLE
$Activity_VoIPSipCloud1 agent.pm.settings.sipServerList.appendItem \ -id"SipServer" \ -firstIp"172.20.13.1" \ -name"sip_server#1" \ -rangeType"IP" \ -ipAddr"Network Range 2 in Network1 (172.20.13.1+1)" \ -ipStep"0.0.0.1" \ -attachedInfo"sip-test.my-domain.com" \ -netMask"255.254.0.0" \ -ipCount"1" \ -port5060 \ -ipType"IPv4"
SEE ALSO
! 40

1510

IxLoad Tcl API Programming Guide

VoIP SIP Peer
The IxLoad VoIP SIP Peer Tcl API consists of a VoIP SIP Peer agent, with separate APIs for configuring each major aspect of the agent's functionality.
Note: IxLoad supports two different approaches for SIP protocol testing: l Basic SIP protocol testing support, the simpler of the two supported approaches for SIP testing, is based on SIP Client and SIP Server activities having only limited call flow configuration capabilities. The Tcl API configuration commands corresponding to this approach are covered in SIP Protocol Support. l Advanced SIP testing support is based on VoIPSIPPeer activities capable of executing more complex, custom protocol message flows. The Tcl API configuration commands for this approach are covered in this chapter.
Limitations
The following restrictions and limitations of the VoIP SIP Peer API exist: l The PhoneBook and other related classes, such as PhoneBookEntry, cannot be edited from the Tcl API. l Individual VoIP SIP script functions cannot be added and edited from the Tcl API. Instead, you must add and configure the commands in the Scenario Editor, save the test scenario file, then pass it as an argument to the Scenario Settings API class. l Implementation of the BHCA and CPS objective features relies on two classes, CustomParameters and CustomActivityLinkSettings that have to be configured using the same parameters.

IxLoad Tcl API Programming Guide

1511

VoIP SIP Peer
VoIP SIP Peer API Commands
The IxLoad VoIP SIP Peer API commands are organized as shown in the figure below.

1512

IxLoad Tcl API Programming Guide

VoIP SIP Peer

VoIP SIP Peer API Objects
The table below summarizes the objects in the VoIP SIP Peer API.

Object

Description

VoIP SIP Peer Agent

Top-level object defining the VoIP SIP Peer activity.

Codec Settings

List of Data Codecs and Codecs objects.

Data Codecs

Data codec with parameters.

Codecs

Audio codec with parameters.

Other Settings

VoIP SIP Peer miscellaneous parameters; corresponds to the Other Settings tab in GUI.

Signaling Settings VoIP SIP Peer parameters corresponding to the SIP Settings GUI tab.

Edit Contact

Replacement contact information; corresponds to Override Contact control on the Contact Settings tab in GUI.

RTP Settings

RTP transport configuration; corresponds to the RTP Settings GUI tab.

Audio Settings

Audio settings; corresponds to the Audio GUI tab.

T.38 Settings

T.38 IP fax settings; corresponds to the T.38 GUI tab.

T.30 Settings

T.30 settings; corresponds to the T.30 GUI tab.

SRTP Settings

SRTP configuration corresponding to the SRTP Settings GUI tab.

MSRP Settings

MSRP configuration that corresponds to the MSRP GUI tab.

MSRP GUI files

The configuration of files sent over an established MSRP session.

MSRP Relays

The configuration of MSRP relays an endpoint authenticates against.

Custom Activity Link Settings

BHCA and CPS objective configuration; corresponds to the Custom Parameters GUI tab.

Execution Settings Run-time test configuration; corresponds to the Execution Settings GUI tab.

Transfer Address

Configures a SIP transfer address. corresponds to the Transfer Address window opened from the SIP Settings GUI tab.

Scenario Settings Selects the Test Scenario file; corresponds to the Scenario Settings GUI tab.

IxLoad Tcl API Programming Guide

1513

VoIP SIP Peer

Dial Plan

Configures the source, destination, and transfer addresses and phone numbers for the channels/endpoints; corresponds to the Dial Plan GUI tab.

Timer Settings

Configures session refresh and SIP message retransmission settings; corresponds to the Automatic GUI tab.

TLS Settings

TLS transport configuration corresponding to the TLS GUI tab.

TlsCyphers

Configures a list of cyphers supported by the VoIPSipPeer activity.

CustomParameters BHCA and CPS objective configuration; corresponds to the Custom Parameters GUI tab.

Advanced Settings Configures a VoIPSIP Cloud Peer activity associated with the VoIPSIP Peer. Corresponds to the SIP Cloud Settings GUI tab.

CloudServers

Configures the list of SIP Proxy servers emulated by a VoIPSIP Cloud Peer.

ServerRules

Configures a list of rules associated with each emulated SIP Proxy server in the cloud.

CloudRules

Configures a list of dispatching rules that override the default VoIP SIP Cloud rules.

RuleData

Configures the processing operations applied to incoming SIP messages for extracting an overriding dispatching rule. Corresponds to the Edit Cloud Rule GUI.

1514

IxLoad Tcl API Programming Guide

VoIP SIP Peer

VoIP SIP Peer Agent
VoIP SIP Peer Agent
SYNOPSIS
set Activity_VoIPSIPPeer1 [$SIP_Network1 activityList.appendItem \-protocolAndType "VoIPSIP Peer" ]
DESCRIPTION
A VoIP SIP Peer agent is added to the agentList option of the ixConfig object using the appendItem subcommand from the ixConfigSequenceContainer command. Other ixConfigSequenceContainer subcommands may be used to modify the agentList. See the following example: set Activity_VoIPSIPPeer1 [$SIP_Network1 activityList.appendItem \-protocolAndType "VoIPSIP Peer" ]

$Activity_VoIPSIPPeer1 config \-enable "VoIPSIPPeer1" \-enableConstraint 1 \-constraintValue "channels" \-timeline

true \-name false \-userObjectiveValue 100 \-userObjectiveType $Timeline1

$Activity_VoIPSIPPeer1 agent.config \-enable

\-name

"VoIPSIPPeer1"

true

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by:

$Activity_VoIPSIPPeer1 agent(0).config -name "VoIPSIP Peer new"

SUBCOMMANDS
None

OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time.

STATISTICS
The statistics published by this agent are listed below.

IxLoad Tcl API Programming Guide

1515

VoIP SIP Peer

Statistic

Description

Per Channel/Global

VoIPSIP Channels

Successful Channels Warning Channels Failed Channels Aborted Channels Active Channels

The instantaneous number of COMPLETED channels. A channel is COMPLETED if all the channel loops were COMPLETED.

Global

The instantaneous number of WARNING channels. A channel is WARNING if all the channel loops were COMPLETED or WARNING and at least one loop had a WARNING result.

Global

The instantaneous number of FAILED channels. A chan- Global nel is FAILED if all the channel loops were COMPLETED or WARNING, and at least one loop was FAILED.

The instantaneous number of ABORTED channels. A channel is ABORTED if all the channel loops were COMPLETED, WARNING, FAILED, or ABORTED and at least one loop was ABORTED.

Global

The instantaneous number of active channels. Active channels are the channels executing a scenario channel functions flow.

Global

Total Channels

The instantaneous total number of channels, a sum of Global active and non-active channels.

VoIPSIP Loops

Successful Channel Loops

The cumulative count of COMPLETED channel loops. A channel loop is COMPLETED if all executed script functions in the corresponding scenario channel produced SKIPPED or COMPLETED results.

Global

Warning Channel Loops

The cumulative count of WARNING channel loops. A channel loop has a WARNING result if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, or WARNING results and at least one script function had a WARNING result.

Global

1516

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Failed Channel Loops
Aborted Channel Loops
Total Channel Loops Interloop Duration (Avg) [ms] VoIPSIP Loop Rate Loops-per-second VoIPSIP Calls Attempted Calls Connected Calls
Received Calls Answered Calls Rejected Calls

The cumulative count of FAILED channel loops. A channel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, or FAILED results and at least one script function had a FAILED result.

Global

The cumulative count of ABORTED channel loops. A channel loop is FAILED if all the executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, FAILED, or ABORTED results and at least one script function had an ABORTED result.

Global

The cumulative count of executed loops.

Global

The time gap between loops.

Global

The instantaneous loops-per-second value, taking into account started loops.

Global

The cumulative count of initiated calls. This statistic is Global incremented when an INVITE for a new dialog is sent.

The cumulative count of established calls. This statistic is incremented when a 200 OK response is received and the SDP negotiation is successful for the call.

Global

The cumulative count of received incoming calls. This statistic is incremented when an INVITE for a new dialog is parsed and matched.

Global

The cumulative count of answered incoming calls. This Global statistic is incremented when a 200 OK message is sent and the SDP negotiation is successful for the call.

The cumulative count of rejected incoming calls.

Global

IxLoad Tcl API Programming Guide

1517

VoIP SIP Peer

Failed Calls

The cumulative count of failed calls.
This statistic is calculated at the end of the script loop as (Attempted Calls - Connected Calls) on originating endpoints and as (Received Calls - Answered Calls) on receiving endpoints.
NOTE: This statistic deals only with failed originated/received calls - problems with the initiation part of the call and not with the successful conclusion of the call.

Global

Transferred Calls

The cumulative count of originated or incoming calls that were transferred.

Global

Busy Calls

The cumulative count of originated or incoming calls that were rejected with busy cause.

Global

Redirected Calls

The cumulative count of originated or incoming calls that were redirected.

Global

Calls with Authentication The cumulative count of originated or incoming calls

Required

that required use of authentication.

Global

Calls Over UDP

The cumulative count of completed originated or incoming calls using UDP transport.

Global

Calls Over TCP

The cumulative count of completed originated or incoming calls using TCP transport.

Global

Calls Over TLS

The cumulative count of completed originated or incoming calls using TLS transport.

Global

Calls Over Mixed Transport

The cumulative count of completed originated or incoming calls using mixed UDP/TCP transport.

Global

Active Calls

The cumulative count of active calls at one time.
For the initiator side a call is active after having sent an ACK message and until receiving or sending a 200 OK for BYE message, depending on who is disconnecting the session.
For the terminating side, a call is active after having sent an 200 OK for INVITE message (with SDP negotiation having completed successfully) and until sending or receiving a 200 OK for BYE message, depending on the party disconnecting the session.

Global

1518

IxLoad Tcl API Programming Guide

VoIP SIP Peer

End Calls Initiated

The cumulative count of initiated end call procedures, Global incremented whenever a SIP BYE message is sent.

End Calls Received

The cumulative count of received end call procedures, incremented whenever a SIP BYE message is received.

Global

End Calls Completed

The cumulative count of completed end call procedures.

Global

VoIPSIP Call Rates

Attempted calls/s, Connected Calls/s, Received Calls/s, Answered Calls/s, Rejected Calls/s, Transferred Calls/s, Busy Calls/s, Redirected Calls/s, Calls with Authentication Required/s, Calls Over UDP /s, Calls Over TCP /s, Calls Over TLS /s,

The rates for the above VoIPSIP Call statistics.

Global

VoIPSIP Call Times

Call Setup Time (Avg) [ms]

The average duration between the moment a call is ini- Global tiated (e.g. a SIP INVITE request message is sent/received) and the moment the call is connected (e.g. SIP ACK for INVITE is sent/received).

Talk Time (Avg) [ms]

The average talk time (the duration between the moment the call is connected and the moment the call is disconnected by one of the parties).

Global

IxLoad Tcl API Programming Guide

1519

VoIP SIP Peer

Call End Time (Avg) [ms]

The average duration between the moment a call disconnect is initiated (e.g. a SIP BYE request message is sent) and the moment the call is cleared (e.g. a 200 OK response is received)

Global

Total Call Duration (Avg) [ms]

The average call duration. When referring to a single call: (Entire) Call Length = Call Setup-Time + Talk Time + Call Teardown Time.

Global

VoIPSIP Session Refreshes

Attempted Session Refreshes

The cumulative count of attempted session refreshes (re-registrations, re-invites, updates treated as refreshes).

Received Session Refreshes

The cumulative count of received session refreshes (re-invites, updates treated as refreshes).

Successful Session Refreshes

The cumulative count of successful session refreshes (ACK received for INVITE refresh, 200 Ok to UPDATE sent, or 200 Ok received for REGISTER)

Failed Session Refreshes The cumulative count of failed session refreshes (non 2xx responses and transaction failures).

VoIPSIP SSL Handshake

Client Hello Sent

The cumulative count of Client Hello messages sent. Global

Client Hello Received

The cumulative count of Client Hello messages received.

Global

Server Hello Sent

The cumulative count of Server Hello messages sent. Global

Server Hello Received

The cumulative count of Server Hello messages received.

Global

SSL Negotiations Finished The cumulative count of SSL sessions negotiations fin- Global

Successfully

ished successfully.

SSL Errors Sent

The cumulative count of errors sent.

Global

SSL Errors Received

The cumulative count of errors received.

Global

SSL Alerts Sent

The cumulative count of SSL alerts of all types sent. Global

SSL Alerts Received

The cumulative count of SSL alerts of all types received.

Global

1520

IxLoad Tcl API Programming Guide

VoIP SIP Peer

VoIPSIP SSL Throughput

SSL Throughput (Mbps)

The combined rate at which the peer sends and receives SSL data.

SSL Tx Rate (Mbps), SSL Rx Rate (Mbps)

The total bytes sent/received over the SSL connection, including control and data bytes.

Global Global

VoIPSIP SSL Warning Alerts

SSL Alerts Sent (user_can- The cumulative count of User Canceled alerts sent. celed)

Global

SSL Alerts Sent (unsupported_ certificate)

The cumulative count of Unsupported Certificate alerts sent.

Global

SSL Alerts Sent (record_ over-flow)

The cumulative count of Record Overflow alerts sent.

Global

SSL Alerts Sent (no_rene- The cumulative count of No Renegotiation alerts sent. Global gotia-tion)

SSL Alerts Sent (no_cer- The cumulative count of No Certificate alerts sent. tificate)

Global

VoIPSIP SSL Fatal Alerts

SSL Alerts Sent (unknown_ca)

The cumulative count of Unknown CA alerts sent.

Global

SSL Alerts Sent (unexpected_message)

The cumulative count of Unexpected Message alerts sent.

Global

SSL Alerts Sent (protocol_version)

The cumulative count of Protocol Version messages sent.

Global

SSL Alerts Sent (internal_ The cumulative count of Internal Error messages

error)

sent.

Global

SSL Alerts Sent (insufficient_security)

The cumulative count of Insufficient Security alerts sent.

Global

SSL Alerts Sent (illegal_ parameter)

The cumulative count of Illegal Parameter alerts sent. Global

IxLoad Tcl API Programming Guide

1521

VoIP SIP Peer

SSL Alerts Sent (handshake_failure)

The cumulative count of Handshake Failure alerts sent.

Global

SSL Alerts Sent (export_ The cumulative count of Export Restriction alerts

restriction)

sent.

Global

SSL Alerts Sent (decompression_failure)

The cumulative count of Decompression Failure alerts Global sent.

SSL Alerts Sent (decode_ The cumulative count of Decode Error alerts sent. error)

Global

SSL Alerts Sent (bad_ record_mac)

The cumulative count of Bad MAC Record alerts sent. Global

SSL Alerts Sent (access_ The cumulative count of Access Denied alerts sent. denied)

Global

SSL Alerts Received (unknown_ca)

The cumulative count of Unknown CA alerts received. An Unknown CA alert is sent if a valid certificate chain or partial chain was received, but the certificate was not accepted because the CA certificate could not be located or could not be matched with a known, trusted CA.

Global

SSL Alerts Received (unexpected_ message)

The cumulative count of Unexpected Message alerts received. An Unexpected Message alert is sent when an SSL peer receives a message that it was not expecting, for example if it received handshake data when it was expecting application data.

Global

SSL Alerts Received (protocol_ version)

The cumulative count of Protocol Version alerts received. A Protocol Version alert is sent if the protocol version the client has attempted to negotiate is recognized, but not supported. (For example, old protocol versions might be avoided for security reasons).

Global

SSL Alerts Received (internal_error)

The cumulative count of Internal Error alerts received. An Internal Error alert is sent if an internal error unrelated to the peer or the correctness of the protocol makes it impossible to continue, such as a memory allocation failure.

Global

1522

IxLoad Tcl API Programming Guide

VoIP SIP Peer

SSL Alerts Received (insufficient_ security)
SSL Alerts Received (illegal_ parameter)
SSL Alerts Received (handshake_ failure)
SSL Alerts Received (decompression_failure)
SSL Alerts Received (decode_error)
SSL Alerts Received (bad_record_ mac)
SSL Alerts Received (access_ denied)

The cumulative count of Insufficient Security messages received. An Insufficient Security alert is returned instead of a Handshake Failure when a negotiation has failed specifically because the peer requires ciphers more secure than those supported by the client.

Global

The cumulative count of Illegal Parameter alerts received. An Illegal Parameter alert is sent if a field in the handshake was out of range or inconsistent with other fields.

Global

The cumulative count of Handshake Failure alerts

Global

received. The reception of a Handshake Failure alert

message indicates that the sender was unable to nego-

tiate an acceptable set of security parameters from

the options available.

The cumulative count of Decompression Failure alerts received. A Decompression Failure alert is sent when the decompression function received improper input (data that expanded to an excessive length).

Global

The cumulative count of Decode Error alerts received. A Decode Error alert is sent when a message could not be decoded because a field was out of the specified range or the length of the message was incorrect.

Global

The cumulative count of Bad MAC Record alerts received. A Bad MAC Record alert is sent when a message is received with an incorrect MAC (Message Authentication Code).

Global

The cumulative count of Access Denied alerts received. An Access Denied alert is sent if a valid certificate was received, but when access control was applied, the sender decided not to proceed with negotiation.

Global

IxLoad Tcl API Programming Guide

1523

VoIP SIP Peer

SSL Alerts Received (export_ restriction)

The cumulative count of Export Restriction alerts received. An Export Restriction alert is sent when a negotiation not in compliance with export restrictions was detected; for example, attempting to transfer a 1024 bit ephemeral RSA key for the RSA_EXPORT handshake method.

Global

VoIPSIP SSLv2 Errors

SSL Errors Sent (unsupported certificate)

The cumulative count of Unsupported Certificate error Global messages sent.

SSL Errors Sent (undefined error)

The cumulative count of Undefined Error messages sent.

Global

SSL Errors Sent (no cipher)

The cumulative count of No Cipher messages sent.

Global

SSL Errors Sent (bad cer- The cumulative count of Bad Certificate error mes-

tificate)

sages. sent.

Global

SSL Errors Received (unsupported certificate)

The cumulative count of Unsupported Certificate error messages received. This error is returned when a peer receives a certificate type that it does not support.
An Unsupported Certificate error is recoverable for client authentication only.

Global

SSL Errors Received (undefined error)

The cumulative count of Undefined Error messages received. An Undefined Error is returned by the client to the peer when it cannot find a supported cipher or key size that is also supported by the peer.
An Undefined Error is not recoverable.

Global

SSL Errors Received (no cipher)

The cumulative count of No Cipher messages received. A No Cipher error is returned by the client to the peer when it cannot find a cipher or key size that it supports that is also supported by the peer.
A No Cipher error is not recoverable.

Global

SSL Errors Received (no certificate)

The cumulative count of No Certificate error messages received. When a REQUEST-CERTIFICATE message is sent, this error may be returned if the client has no certificate to reply with.
A No Certificate error is recoverable for client authentication only.

Global

1524

IxLoad Tcl API Programming Guide

VoIP SIP Peer

SSL Errors Received (bad certificate)

The cumulative count of Bad Certificate error mes-

Global

sages received. A Bad Certificate error is returned

when a certificate is deemed `bad' by the receiving

party, either because the signature of the certificate was bad, or the values in the certificate were inap-

propriate (for example, a name in the certificate did not match the expected name).

A Bad Certificate error is recoverable for client authen-

tication only.

VoIPSIP Delays

Post Dial Delay (Avg) [ms]

The per polling interval time elapsed between sending an INVITE message and receiving an answer from the peer endpoint. This statistic is relevant for the call originating endpoint.

Global

Media Delay TX (Avg) [ms],
Media Delay TX (Max) [ms],
Media Delay TX (Min) [ms]

The per polling interval average/min/max media delay computed as the time elapsed between the sending of the SIP INVITE and the receiving of the first RTP packet at the call initiating endpoint.
The media delay value includes the full call setup time and the time it takes to receive the first media packet at the call initiating endpoint.
This statistic is relevant for the call originating endpoint.

Global

Media Delay RX (Avg) [ms],
Media Delay RX (Max) [ms],
Media Delay RX (Min) [ms]

The per polling interval average/min/max time elapsed between receiving the initial SIP INVITE and receiving the first media packet.
The media delay includes the call setup delay and post-pickup delay.
This statistic is relevant for the call terminating endpoint.

Global

Post-Pickup Delay (Avg) [ms],
Post-Pickup Delay (Max) [ms],
Post-Pickup Delay (Min) [ms]

The per polling interval average/min/max time elapsed between answering the call and receiving the first media packet.
The post pickup delay is computed as time between the sending of the SIP 200 OK response (after receiving the SIP INVITE) and the receiving of the first RTP packet.
This statistic is relevant for the call terminating endpoint.

Global

IxLoad Tcl API Programming Guide

1525

VoIP SIP Peer

VoIPSIP Registrations

Attempted Registrations

The cumulative count of generated registrations, retransmissions of REGISTER and REGISTER w/ Auth messages not taken into account. This count includes automatic registration or registration refreshes.

Global

Successful Registrations

The cumulative count of registration messages that completed successfully. This count includes automatic registration or registration refreshes.

Global

Failed Registrations

The cumulative count of failed registrations, defined as an initial REGISTER request followed by a final response from the destination registrar or interim proxies indicating a failure. This count includes automatic registration or registration refreshes.

Global

A failure response is described as a 4XX (excepting the 401 and 407 responses), 5XX, or 6XX message.

Notes:

l An unsuccessful registration at loop end is considered a failed registration.

l Since registration attempts are often repeated, a failed scenario must identify a failure response associated with the final attempt.

Attempted DeRegistrations

The cumulative count of de-registration attempts com- Global puted as the number of sent registrations having a zero Expires header value.

Successful DeRegistrations

The cumulative count of de-registration attempts that Global completed successfully.

Failed De-Registrations

The cumulative count of failed de-registration attempts.

Global

Registration Time (Avg) [ms]

The time elapsed between sending a registration request and receiving a final successful response, in milliseconds.

Global

De-Registration Time (Avg) [ms]

The time elapsed between sending a de-registration request and receiving a final successful response, in milliseconds.

Global

VoIPSIP Registration Rates

1526

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Attempted Registrations /sec

The per polling interval rate of attempted registrations, including automatic registration or registration refreshes.

Global

Successful Registrations /sec

The per polling interval rate of successful registrations, including automatic registration or registration refreshes.

Global

Attempted De-Registrations /sec

The per-polling interval rate of attempted de-registrations, including automatic registration or registration refreshes.

Global

Successful De-Registrations /sec

The per polling interval rate of successful registrations.

Global

VoIPSIP SIP Messages

Requests Sent

The cumulative count of sent SIP requests.

Global

Requests Parsed

The cumulative count of received and parsed SIP requests.

Global

Requests Matched

The cumulative count of matched SIP requests.

Global

Responses Sent

The cumulative count of sent SIP responses.

Global

Responses Parsed

The cumulative count of received and parsed SIP responses.

Global

Responses Matched

The cumulative count of matched SIP responses.

Global

INVITE Requests Sent

The cumulative count of SIP INVITE messages sent by Global the client.

INVITE Requests Parsed

The cumulative count of received and parsed SIP INVITE requests.

Global

INVITE Requests Matched The cumulative count of received, parsed, and matched SIP INVITE requests.

Global

INVITE Requests Retrans- The cumulative count of received SIP INVITE requests Global

mitted

that were retransmissions.

ACK Requests Sent

The cumulative count of SIP ACK messages sent by the client.

Global

ACK Requests Parsed

The cumulative count of received and parsed SIP ACK Global requests.

IxLoad Tcl API Programming Guide

1527

VoIP SIP Peer

ACK Requests Matched

The cumulative count of received, parsed, and matched SIP ACK requests.

Global

ACK Requests Retransmitted

The cumulative count of received SIP ACK requests that were retransmissions.

Global

BYE Requests Sent

The cumulative count of SIP BYE messages sent by the client.

Global

BYE Requests Parsed

The cumulative count of received and parsed SIP BYE Global requests.

BYE Requests Matched

The cumulative count of received, parsed, and matched SIP BYE requests.

Global

BYE Requests Internally Matched

The cumulative count of SIP BYE requests that caused a "disconnect" during an RTP function execution, but were not explicitly expected in the test scenario.

Global

BYE Requests Retransmitted

The cumulative count of received SIP BYE requests that were retransmissions.

Global

CANCEL Requests Sent

The cumulative count of SIP CANCEL messages sent by the client.

Global

CANCEL Requests Parsed The cumulative count of received and parsed SIP CANCEL requests.

Global

CANCEL Requests Matched

The cumulative count of received, parsed, and matched SIP CANCEL requests.

Global

CANCEL Requests Retrans- The cumulative count of received SIP CANCEL

mitted

requests that were retransmissions.

Global

OPTIONS Requests Sent

The cumulative count of SIP OPTIONS messages sent Global by the client.

OPTIONS Requests Parsed

The cumulative count of received and parsed SIP OPTIONS requests.

Global

OPTIONS Requests Matched

The cumulative count of received, parsed, and matched SIP OPTIONS requests.

Global

OPTIONS Requests Retransmitted

The cumulative count of received SIP OPTIONS requests that were retransmissions.

Global

1528

IxLoad Tcl API Programming Guide

VoIP SIP Peer

REGISTER Requests Sent The cumulative count of sent SIP REGISTER messages.

Global

REGISTER Requests Parsed

The cumulative count of received and parsed SIP REGISTER requests.

Global

REGISTER Requests Matched

The cumulative count of received, parsed, and matched SIP REGISTER requests.

Global

REGISTER Requests Retransmitted

The cumulative count of received SIP REGISTER requests that were retransmissions.

Global

NOTIFY Requests Sent

The cumulative count of sent SIP NOTIFY requests.

Global

NOTIFY Requests Parsed

The cumulative count of received and parsed SIP NOTIFY requests.

Global

NOTIFY Requests Matched

The cumulative count of received, parsed, and matched SIP NOTIFY requests.

Global

NOTIFY Requests Retrans- The cumulative count of received SIP NOTIFY requests Global

mitted

that were retransmissions.

SUBSCRIBE Requests Sent

The cumulative count total number of sent SIP SUBSCRIBE requests.

Global

SUBSCRIBE Requests Parsed

The cumulative count of received and parsed SIP SUBSCRIBE requests.

Global

SUBSCRIBE Requests Matched

The cumulative count of received, parsed, and matched SIP SUBSCRIBE requests.

Global

SUBSCRIBE Requests Retransmitted

The cumulative count of received SIP SUBSCRIBE requests that were retransmissions.

Global

REFER Requests Sent

The cumulative count of sent SIP REFER requests.

Global

REFER Requests Parsed

The cumulative count of received and parsed SIP REFER requests.

Global

REFER Requests Matched The cumulative count of received, parsed, and matched SIP REFER requests.

Global

REFER Requests Retrans- The cumulative count of received SIP REFER requests Global

mitted

that were retransmissions.

MESSAGE Requests Sent The cumulative count of sent SIP MESSAGE requests. Global

IxLoad Tcl API Programming Guide

1529

VoIP SIP Peer

MESSAGE Requests Parsed

The cumulative count of received and parsed SIP MESSAGE requests.

Global

MESSAGE Requests Matched

The cumulative count cumulative count of received, parsed, and matched SIP MESSAGE requests.

Global

MESSAGE Requests Retransmitted

The cumulative count of received SIP MESSAGE requests that were retransmissions.

Global

INFO Requests Sent

The cumulative count of sent SIP INFO requests.

Global

INFO Requests Parsed

The cumulative count of received and parsed SIP INFO Global requests.

INFO Requests Matched

The cumulative count of received, parsed, and matched SIP INFO requests.

Global

INFO Requests Retransmitted

The cumulative count of received SIP INFO requests that were retransmissions.

Global

UPDATE Requests Sent

The cumulative count of sent SIP UPDATE requests.

Global

UPDATE Requests Parsed The cumulative count of received and parsed SIP UPDATE requests.

Global

UPDATE Requests Matched

The cumulative count of received, parsed, and matched SIP UPDATE requests.

Global

UPDATE Requests Retrans- The cumulative count of received SIP UPDATE

mitted

requests that were retransmissions.

Global

PRACK Requests Sent

The cumulative count of sent SIP PRACK requests.

Global

PRACK Requests Parsed

The cumulative count of received and parsed SIP PRACK requests.

Global

PRACK Requests Matched The cumulative count of received, parsed, and matched SIP PRACK requests.

Global

PRACK Requests Retrans- The cumulative count of received SIP PRACK requests Global

mitted

that were retransmissions.

UNKNOWN Requests Parsed

The cumulative count of received and parsed SIP UNKNOWN requests.

Global

1530

IxLoad Tcl API Programming Guide

VoIP SIP Peer

UNKNOWN Requests Matched
UNKNOWN Responses Parsed UNKNOWN Responses Matched
1xx responses sent 1xx responses parsed 1xx responses matched 2xx responses sent 2xx responses parsed 2xx responses matched 3xx responses sent 3xx responses parsed 3xx responses matched 4xx responses sent 4xx responses parsed

The cumulative count of unknown received, parsed and matched SIP request messages. A SIP request message is considered unknown if the method is none of the INVITE, ACK, OPTIONS, BYE, CANCEL, REGISTER, REFER, NOTIFY, SUBSCRIBE, MESSAGE, PRACK, INFO, UPDATE supported methods.

Global

The cumulative count of received and parsed SIP UNKNOWN responses.

Global

The cumulative count of unknown received, parsed, and matched SIP response messages. A SIP response message is considered unknown if the response code is other than 100-699.

Global

The cumulative count of sent SIP 1xx response messages.

Global

The cumulative count of received and parsed SIP 1xx Global response messages.

The cumulative count of received, parsed, and matched SIP 1xx response messages.

Global

The cumulative count of sent SIP 2xx response messages.

Global

The cumulative count of received and parsed SIP 2xx Global response messages.

The cumulative count of received, parsed, and matched SIP 2xx response messages.

Global

The cumulative count of sent SIP 3xx response messages.

Global

The cumulative count of received and parsed SIP 3xx Global response messages.

The cumulative count of received, parsed, and matched SIP 3xx response messages.

Global

The cumulative count of sent SIP 4xx response messages.

Global

The cumulative count of received and parsed SIP 4xx Global response messages.

IxLoad Tcl API Programming Guide

1531

VoIP SIP Peer

4xx responses matched

The cumulative count of received, parsed, and matched SIP 4xx response messages.

Global

5xx responses sent

The cumulative count of sent SIP 5xx response messages.

Global

5xx responses parsed

The cumulative count of received and parsed SIP 5xx Global response messages.

5xx responses matched

The cumulative count of received, parsed, and matched SIP 5xx response messages.

Global

6xx responses sent

The cumulative count of sent SIP 6xx response messages.

Global

6xx responses parsed

The cumulative count of received and parsed SIP 6xx Global response messages.

6xx responses matched

The cumulative count of received, parsed, and matched SIP 6xx response messages.

Global

Retransmitted Msgs

The cumulative count of retransmitted SIP messages. Global

Ignored Re-transmissions

The cumulative count of parsed and ignored retransmitted messages following the enabling of the Ignore Retransmissions option.

Global

Requests Orphans

The cumulative count of failures to identify a call recip- Global ient for SIP request messages when running in a multiple channels per IP:port configuration.

Responses Orphans

The cumulative count of failures to identify a call recip- Global ient for SIP response messages when running in a multiple channels per IP:port configuration.

VoIPSIP Errors

Transport Errors

The cumulative count of transport errors, occurring

Global

when a SIP message could not be sent due to a socket

error or a failed DNS server query.

SIP Call Flows Errors

The cumulative count of SIP call flow errors.

Global

1532

IxLoad Tcl API Programming Guide

VoIP SIP Peer

SIP Parser Errors

The cumulative count of SIP parser errors. A SIP parser error indicates a message with an invalid request/status line or invalid (malformed) message headers.
Note: In case the message has parser errors in the mandatory headers (To, From, CSeq, Call-ID, Via), the message is dropped without the statistic being incremented.
In case the message has parser errors in the non-mandatory headers, the parser error statistic is incremented and the execution continues with the malformed message, without the message being dropped.
At the same time, a new parser_errors.log log file comprising the most recent 100 entries is created on the port CPU in the /tmp/ folder.

Global

SIP SDP Errors

The cumulative count of SIP SDP errors. A SDP error occurs when an invalid SDP is parsed, when two offers or two answers are received in a row in the same session or when the SDP negotiation fails as described in RFC 3264.

Global

SIP Internal Errors

The cumulative count of SIP internal errors.

Global

Trigger Errors

The cumulative count of trigger errors.

Global

RTP Errors

The cumulative count of RTP related errors, incre-

Global

mented when any RTP script function is failing or exit-

ing on the Warning or Timeout outputs. Possible causes include media sessions that have been closed

by the signaling engine, or Generate

DTMF/MF/Tone or Detect DTMF/MF/Tone func-

tions that failed.

This statistic is also incremented when the signaling

engine cannot start a media session, such as when the negotiated codec or the negotiated ptime is unsupported.

Internal Errors

The cumulative count of internal errors.

Global

Timeout Errors

The cumulative count of script functions that have timed out.

Global

VoIPSIP Busy Hour Call Measurements

IxLoad Tcl API Programming Guide

1533

VoIP SIP Peer

BHCA
BHCC
VoIPSIP Other Extract Variables Errors
Requests Sent /s Requests Parsed /s

The per polling interval Busy Hour Call Attempts rate that represents the number of calls initiated in one hour.
The per polling interval Busy Hour Call Completions rate that represents the number of calls initiated and connected in one hour.

Global Global

The number of encountered ExtractVariable function errors, occurring when at least one variable could not be extracted.

Global

The number of sent SIP requests per second.

Global

The number of parsed SIP requests per second.

Global

Requests Matched /s

The number of matched SIP requests per second.

Responses Sent/s

The number of sent SIP responses per second.

Responses Parsed/s

The number of parsed SIP responses per second.

Responses Matched /s

The number of parsed SIP responses per second.

INVITE | ACK | CANCEL | OPTIONS | REGISTER | NOTIFY | SUBSCRIBE | REFER | MESSAGE | INFO | UPDATE | PRACK | UNKNOWN | BYE Requests Sent /s

The rate of SIP requests of the given message type sent.

INVITE | ACK | CANCEL | OPTIONS | REGISTER | NOTIFY | SUBSCRIBE | REFER | MESSAGE | INFO | UPDATE | PRACK | UNKNOWN | BYE Requests Parsed /s

The rate of SIP requests of the given message type parsed.

BYE Requests Internally Matched /s

The rate of BYE messages received when executing RTP functions.

Global Global Global Global Global
Global
Global

1534

IxLoad Tcl API Programming Guide

VoIP SIP Peer

1xx | 2xx | 3xx | 4xx |

The rate of SIP responses of the given type sent.

5xx | 6xx Responses Sent

/s

Global

1xx | 2xx | 3xx | 4xx | 5xx | 6xx Responses Parsed /s

The rate of SIP responses of the given type parsed.

Global

Retransmitted Msgs /s

The rate of retransmitted SIP messages.

Global

Requests Orphans /s

The rate of failures to identify a call recipient for SIP request messages when running in a multiple channels per IP:port configuration.

Global

Responses Orphans /s

The rate of failures to identify a call recipient for SIP response messages when running in a multiple channels per IP:port configuration.

Global

Bytes Received /s

The incoming SIP byte rate.

Global

TX Messages, TX Messages /s

The number of outbound SIP messages, rate of SIP outbound messages.

Global

TX SIP Msg Length (Avg), TX SIP Msg Length (Min), TX SIP Msg Length (Max)

The Avg/Min/Max outbound SIP message length.

Global

Bytes Transmitted, Bytes Received, Bytes Transmitted /s

The number of SIP bytes sent, received, rate of SIP bytes sent

Global

RX SIP Msg Length (Min), RX SIP Msg Length (Avg), RX SIP Msg Length (Max)

The Avg/Min/Max inbound SIP message length.

Global

RX Messages, RX Messages /sec

The number of inbound SIP messages, rate of inbound Global SIP messages

Triggers Sent, Triggers Sent /s

The number of triggers sent, rate of triggers sent

Global

Triggers Received, Triggers Received /s

The number of triggers received, rate of triggers received

Global

Triggers Bytes Sent, Triggers Bytes Sent /s

The number of trigger bytes sent, rate of trigger bytes Global sent.

IxLoad Tcl API Programming Guide

1535

VoIP SIP Peer

Triggers Bytes Received, Triggers Bytes Received /s

The number of trigger bytes received, rate of trigger bytes received.

ActiveCallers

The instantaneous value of SIP callers (on the scenario channel that the objective is applied to) that are active at a given time during the test execution. An emulated VoIPSIP caller is considered to be active if he has completed the execution of the Start script function and has not yet reached the Stop function.

Global Global

Note: Statistics from the Other category are only stored in application-generated CSV files and are not displayed in any of the predefined views, but can be assigned to custom statistics views of the StatViewer module.
EXAMPLE set my_network1 [::IxLoad new ixNetTraffic]

################################################## Activity VoIPSIPPeer2 of NetTraffic my_network1#################################################set Activity_ VoIPSIPPeer2 [$my_network1 activityList.appendItem \-protocolAndType "VoIPSIP Peer" ]###################################################### Timeline1 for activitiy VoIPSIPPeer2, VoIPSIPPeer3#####################################################set Timeline1 [::IxLoad new ixTimeline]

$Timeline1 config \-rampUpValue 0 \-offlineTime 60 \-standbyTime 1 \-rampUpInterval 80 \-timelineType "Timeline1"

1 \-rampUpType 0 \-rampDownTime
0 \-iterations 1 \-sustainTime
0 \-name

$Activity_VoIPSIPPeer2 config \-enable "VoIPSIPPeer2" \-enableConstraint 1 \-constraintValue "channels" \-timeline

true \-name false \-userObjectiveValue 100 \-userObjectiveType $Timeline1

$Activity_VoIPSIPPeer2 agent.config \-enable

\-name

"VoIPSIPPeer2"

true

1536

IxLoad Tcl API Programming Guide

SEE ALSO
ixConfig

VoIP SIP Peer

IxLoad Tcl API Programming Guide

1537

VoIP SIP Peer
Codec Settings
VoIP SIP Peer Codec Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.codecSettings.codecs.appendItem \ -optionvalue $Activity_VoIPSIPPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -optionvalue
DESCRIPTION
Codec Settings contains the list of codecs that will be used by the VoIP SIP peers in the test. Codec Settings is a list of one or more codec (audio codec) or dataCodec objects. To add codec or dataCodec objects, use the appendItem command.
SUBCOMMANDS
None
OPTIONS
None.
EXAMPLE
See the examples for Data Codecs and Codecs.
SEE ALSO
Data Codecs Codecs

1538

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Data Codecs
VoIP SIP Peer Data Codecs
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -optionvalue
DESCRIPTION
Data Codecs configures a data codec object, which is added to the Codec Settings list of codecs.
SUBCOMMANDS
None.
OPTIONS
id Codec type. One of the following:

Codec

Description

Rtp2833Events Named Events Payload format used for carrying DTMF digits and other line and trunk signals as events.

Rtp2833Tones RTP Payload format that can represent tones consisting of one or more frequencies.

dPayloadType Payload type used for RTP data packets. Default=(see table) min="96" max="127"

Codec

Default value for dPayloadType

Rtp2833Events 100

Rtp2833Tones 101

EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.codecSettings.dataCodecs.clear
$Activity_VoIPSIPPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -id"Rtp2833Events" \

IxLoad Tcl API Programming Guide

1539

VoIP SIP Peer
-dPayloadType100 $Activity_VoIPSIPPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -id"Rtp2833Tones" \ -dPayloadType101
SEE ALSO
Codec Settings

1540

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Codecs
VoIP SIP Peer Audio Codec
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.codecSettings.codecs.appendItem \ -optionvalue

DESCRIPTION
Codecs configures an audio codec object, which is added to the Codec Settings list of codecs.
SUBCOMMANDS
None.
OPTIONS
id Codec type. One of the following:

Codec

Description

CodecAMR

Adaptive multi-rate codec

CodecG711u

G.711 mu-law codec

CodecG711a

G.711 A-law codec

CodecG723x153 G.723.1 codec @ 5.3 kbps

CodecG723x163 G.723.1 codec @ 6.3 kbps

CodecG726x16 G.726 codec @ 16 Kbps

CodecG726x24 G.726 codec @ 24 Kbps

CodecG726x32 G.726 codec @ 32 Kbps

CodecG726x40 G.726 codec @ 40 Kbps

CodecG729A

G.729 Annex-A codec

CodecILBC

Internet Low Bit Rate Codec

IxLoad Tcl API Programming Guide

1541

VoIP SIP Peer

Options for CodecAMR
dPayloadIn Incoming dynamic payload type. Default="98" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="98" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 14. Default=14. payloadFormat Payload format.

Value

Usage

0 (default) Bandwidth-efficient format

1

Octet-aligned format

mode Codec bit rate. One of the following:

Mode

Description

0 (default) 4.75 kbps

1

5.15 kbps

2

5.90 kbps

3

6.70 kbps

4

7.40 kbps

5

7.95 kbps

6

10.20 kbps

7

12.20 kbps

Options for CodecG711u
dPayloadIn

1542

IxLoad Tcl API Programming Guide

Incoming dynamic payload type. Default="0" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="0" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG711a
dPayloadIn Incoming dynamic payload type. Default="8" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="8" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG723x153
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 20. Default=20.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127".

VoIP SIP Peer

IxLoad Tcl API Programming Guide

1543

VoIP SIP Peer

dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG726x16
dPayloadIn Incoming dynamic payload type. Default="102" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="102" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 20, 40, 60. Default=20.
Options for CodecG726x24
dPayloadIn Incoming dynamic payload type. Default="103" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="103" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

1544

IxLoad Tcl API Programming Guide

frameSize Bytes per frame. Must be one of the following: 30, 60, 90. Default=30.
Options for CodecG726x32
dPayloadIn Incoming dynamic payload type. Default="104" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="104" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 40, 80, 120. Default=40.
Options for CodecG726x40
dPayloadIn Incoming dynamic payload type. Default="105" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="105" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 50, 100, 150. Default=50.

VoIP SIP Peer

IxLoad Tcl API Programming Guide

1545

VoIP SIP Peer
Options for CodecG729
dPayloadIn Incoming dynamic payload type. Default="18" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="18" min="0" max="127". cbxFrameSize Bytes per frame. Must be one of the following: 10, 20, 30, 40, 50, Custom. Default=10. customFrameSize If cbxFrameSize is Custom, this option configures the custom frame size. Default="120" min="10" max="200".
Options for CodecILBC
dPayloadIn Incoming dynamic payload type. Default="97" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="97" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 38, 50, Custom. Default=38.
EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.codecSettings.codecs.clear
$Activity_VoIPPeer1 agent.pm.codecSettings.codecs.appendItem \ -id"CodecG711u" \ -dPayloadOut0 \ -dPayloadIn0 \ -frameSize160
$Activity_VoIPPeer1 agent.pm.codecSettings.codecs.appendItem \ -id"CodecG711a" \ -dPayloadOut8 \ -dPayloadIn8 \

1546

IxLoad Tcl API Programming Guide

-frameSize160
SEE ALSO
Codec Settings

VoIP SIP Peer

IxLoad Tcl API Programming Guide

1547

VoIP SIP Peer
Other Settings
VoIP SIP Peer Other Settings
SYNOPSIS
$Activity_VoIPSIP Peer1 agent.pm.otherSettings.config \ -optionvalue
DESCRIPTION
This object configures the VoIP SIP Peer activity's miscellaneous options.
SUBCOMMANDS
None.
OPTIONS
VOIP_Var0 The VOIP_Var1...VOIP_Var5 and VOIP_IPAddr1...VOIP_IPAddr5 string-type variables supporting generator expressions enable you to generate 10 series of global variables whose values are used at runtime by the simulated endpoints/channels. Default="". Use the VOIP_Var1...VOIP_Var5 variables to represent phone numbers, and the VOIP_IPAddr1...VOIP_ IPAddr5 to represent IP addresses. VOIP_Var1 See VOIP_Var0. VOIP_Var2 See VOIP_Var0. VOIP_Var3 See VOIP_Var0. VOIP_Var4 See VOIP_Var0. VOIP_IPAddress0 See VOIP_Var0. VOIP_IPAddress1 See VOIP_Var0. VOIP_IPAddress2

1548

IxLoad Tcl API Programming Guide

VoIP SIP Peer

See VOIP_Var0. VOIP_IPAddress3 See VOIP_Var0. VOIP_IPAddress4 See VOIP_Var0. ipPreference Type of addressing you want to use on the subnet that the VOIP SIP Peer runs on.

Value

Usage

0 (default) IPv4

1

IPv6

bUseStun Enables use of a STUN server.

Value

Usage

0

Disabled

(default)

1

Enabled. Configure the STUN server's address and port number in stunAddr and stun-

Port.

stunAddr
If bUseStun is 1, this option configures the STUN server's address. You can include sequence generators in this field to generate multiple addresses. The STUN server address must be an IPv4 address. Default="127.0.0.1".
stunPort
If bUseStun is 1, this option configures the STUN port number. You can include sequence generators in this field to generate multiple port numbers. Default="3478".
EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.otherSettings.config \
-ipPreference0 \
-stunAddr"127.0.0.1" \
-stunPort"3478" \
-bUseStunfalse \

IxLoad Tcl API Programming Guide

1549

VoIP SIP Peer
-VOIP_Var1"" \ -VOIP_Var0"" \ -VOIP_Var3"" \ -VOIP_Var2"" \ -VOIP_Var4"" \ -VOIP_IPAddress4"" \ -VOIP_IPAddress1"" \ -VOIP_IPAddress0"" \ -VOIP_IPAddress3"" \ -VOIP_IPAddress2""
SEE ALSO

1550

IxLoad Tcl API Programming Guide

VoIP SIP Peer
Signaling Settings
VoIP SIP Peer Signaling Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.signalingSettings.config \ -optionvalue
DESCRIPTION
This object defines the VoIP Peer SIP settings.
SUBCOMMANDS
None.
OPTIONS
enableSIP Enables use of SIP signaling for the VoIPSIP Peer activity. 0 = SIP disabled 1 = SIP enabled (default) port Port used for SIP. You can use Sequence Generators in this field to generate multiple port numbers. See the Sequence Generator appendix for more information. Default="[5060-]". Note: Valid port numbers are between 1000 and 65534. realm SIP registration realm (for User Agent Client (UAC) authentication with a registrar). Default="" (null). user User name of the emulated device (for User Agent Client (UAC) authentication with a registrar). Default="Anonymous". passwd SIP registration password (for User Agent Client (UAC) authentication with a registrar). Default="" (null). enableTos Enables use of TOS/DSCP. Use the tos option to specify the TOS/DSCP value. 0 = TOS disabled (default)

IxLoad Tcl API Programming Guide

1551

VoIP SIP Peer

1= TOS enabled tosVal If enableTos is 1, this option sets the value of the TOS bits.

Value

Usage

0 (default) Best Effort (0x00)

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

useServer
Enables use of a proxy server. 0 = disabled (default 1 = enabled srvAddr
If useServer is 1, this option configures the proxy server address. You can use Sequence Generators in this field to generate multiple addresses. See the Sequence Generator appendix for more information. (Default = ""). srvPort
If useServer is 1, this option configures the proxy server port number. You can use Sequence Generators in this field to generate multiple port numbers. See the Sequence Generator appendix for more information. (Default="5060") srvDomain
If useServer is 1, this option configures the proxy server domain or local IP address. Default="" (null). outboundProxy
Enables the use of an outbound Proxy that receives requests from a client, even though it may not be the server resolved by the Request-URI. 0 = disabled (default)

1552

IxLoad Tcl API Programming Guide

VoIP SIP Peer
1 = enabled registrarSrv Enables the use of a Registrar Proxy, a server that accepts register requests and places the information it receives in requests into the location service for the domain it handles. 0 = disabled (default) 1 = enabled ovrContact If set to 1, the default Contact message header (AUTO_CONTACT) is ignored and the settings specified by Edit Contact are used 0 = disabled (default) 1 = enabled ovrDest If set to 1, this parameter enables you to specify a new destination host setting overriding the default setting. 0 = disabled (default) 1 = enabled ovrDestHostPort If set to 1, this parameter enables you to specify a new destination port setting overriding the default setting. 0 = disabled (default) 1 = enabled nUdpMaxSize Specifies the maximum SIP message size, beyond which messages are truncated, when the used transport protocol is UDP. Min="1024" Max="4000" Default="1024". telURISource, telURIDest If configured true, a tel URI is used for source and destination. enableRetransmissions If configured true, enables the retransmission of certain SIP messages, both requests and responses, for script functions pertaining to the activity. Retransmission is a mechanism whereby messages are re-sent with a pattern, until either a response message is received or a maximum timeout value is reached. T1, T2 Specifies the retransmission timers.

IxLoad Tcl API Programming Guide

1553

VoIP SIP Peer

ignoreRetransmissions When selected, this option determines ignoring all the received retransmissions. ovrTrans If configured true, the preferred transport type for SIP messages can be selected as either of the following, overriding the scenario-level settings: ovrTransOption If ovrTrans is configured true, this parameter specifies the preferred transport as listed in the table below. 0 = UDP only 1 = TCP only 2 = UDP 3 = TCP tcpWriteImmediate If configured true, SIP messages are sent immediately instead of being queued. ovrTimeout If configured true, the timeout of the Wait Response (...) and the Wait ACK script functions is specified by the global 64*T1 value, instead of the function-level value.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.signalingSettings.config \-tcpWriteImmediate

false \-telURISource

false \-enableSIP

true \-srvPort

"5060" \-port

"\[5060-\]" \-realm

"" \-ovrDest

false \-nUdpMaxSize

1024 \-srvDomain

"" \-telURIDest

false \-ovrTimeout

false \-enableRetransmissions

false \-enableTos

false \-srvAddr

"" \-ovrDestHostPort

"" \-passwd

"" \-T2

4000 \-T1

500 \-outboundProxy

false \-user

"Anonymous" \-useServer

false \-registrarSrv

false \-tosVal

0 \-ovrContact

false \-ovrTrans

false \-useDnsSrv

false \-ovrTransOption

0 \-ignoreRetransmissions

true

SEE ALSO

1554

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Edit Contact
VoIP SIP Peer Edit Contact
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.editContact.config \ -optionvalue
DESCRIPTION
If the ovrContact option in Contact Settings is enabled, Edit Contact defines the replacement contact information.
SUBCOMMANDS
None.
OPTIONS
useDomainName Domain name to be used.

Value

Usage

0 (default) Use the domain associated with the source IP address

1

Use the domain specified in domainName.

domainName If useDomainName is 1, this option specifies the domain name. Defaultt="mysipdomain.ixiacom.com" _useEPb Source of phone number.

Value

Usage

0 (default) Use the phone number specified in _ePhone.

1

Use the phone number specified by a Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (_useEPb=1). The generated tcl script will run only on the machine it has been generated on and only if the corresponding Phonebook entry has not yet been deleted since the generation of the tcl code.

IxLoad Tcl API Programming Guide

1555

VoIP SIP Peer
_ePhone If _useEPb is 0, this identifies the phone number to be used. Default="160[00000000-]" _ckETelURI Enable usage of Tel URI parameters. 0 = disabled (default) 1 = enabled. Specify the Tel URI parameters in _eTelURIparams. _eTelURIparams If _ckETelURI =1, this option specifies the Tel URI parameters. Default="phone-context=example.com".
EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.editContact.config \ -_useEPb0 \ -domainName"mysipdomain.ixiacom.com" \ -_eBp"&lt;None&gt;" \ -_ePhone"160\[00000000-\]" \ -ePhoneType0 \ -_eTelURIparams"phone-context=example.com" \ -useDomainName0 \ -editTelPar"" \ -ePhone"160\[00000000-\]" \ -_ckETelURIfalse
SEE ALSO

1556

IxLoad Tcl API Programming Guide

RTP Settings
VoIP SIP Peer RTP Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.rtpSettings.config \ -optionvalue
DESCRIPTION
RTP Settings configures the VoIPSIPPeer RTP transport settings.
SUBCOMMANDS
None.
OPTIONS
enableRTP Enables use of RTP to transport the media traffic. 0 = disabled (default) 1 = enabled rtpPort RTP port number. Default="10000". Note: Valid port numbers are between 1000 and 65534. enableRTCP Enables the sending and receiving of RTCP packets. chEnableHwAcc If true, enables hardware acceleration for RTP traffic. Default=false. enableAdvStatCalc Enables the computation of advanced RTP statistics. enablePerStream Enables computation of per-stream statistics. enableMDI Enables computation of MDI DF and MDI MLR statistics. enableNBExec
IxLoad Tcl API Programming Guide

VoIP SIP Peer 1557

VoIP SIP Peer

If true, all RTP functions from a scenario execute in a non-blocking mode, i.e the current function from a channel executes in the background, allowing the execution to continue on that channel with the next script function. Default= False.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.rtpSettings.config \-enableRTP

true \-enableRTCP

false \-enableMDI

false \-chEnableHwAcc

true \-chDisableHwAcc

false \-enableAdvStatCalc

false \-enablePerStream

false \-rtpPort

"\[10000-65535,4\]" \-enableNBExec

false

SEE ALSO

1558

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Audio Settings
VoIPSIP Peer audio settings
SYNOPSIS
$Activity_VoIPSipPeer1 agent.pm.audioSettings.config \
DESCRIPTION
The Audio Settings configure the VoIPSIP Peer audio RTP settings.
SUBCOMMANDS
None.
OPTIONS
enableAudio If selected, audio script functions are executed, otherwise they are skipped. audioClip The played audio clip file. playTypeAudio The mode in which the clip is played.

Value

Usage

0

The clip is played for clip duration or for the duration of the Talk Time parameter in the

(default) case of BHCA/CPS/LPS objectives.

1

The clip is played for a user-defined duration.

audioDurationUnit The play duration unit, which can be miliseconds (0), seconds (1), minutes (2), or hours (3). outputLevel The output level of the played clip. enableTosRtp Enables use of TOS/DSCP. Use the rtpTos option to specify the TOS/DSCP value. Default= False rtpTosVal The Type of Service (TOS/DSCP) byte setting in the sent RTP packets has one of the following values:
l Best Effort (0x00): Routine service

IxLoad Tcl API Programming Guide

1559

VoIP SIP Peer
l Class 1 (0x20): Priority service, Assured Forwarding class 1 l Class 2 (0x40): Immediate service, Assured Forwarding class 2 l Class 3 (0x60): Flash, Assured Forwarding class 3 l Class 4 (0x80): Flash-override, Assured Forwarding class 4 l Express Forwarding (0xA0): Critical-ecp l Control (0xC0): Internet-control l Custom: A user-specified value. useMOS Enables the computation of MOS scores. Default= False. enableAudioOWD If true, IxLoad computes the One-way Delay metric, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default= False useJitter If true, enables use of a jitter buffer. Default= False. jitMs If useJitter is 1, this option configures the size of the jitter buffer, in milliseconds. Default="20" minn="1" max="3000". useJitComp If true, enables dynamic modification of the jitter buffer size. Default= False. jitCMs If useJitComp is 1, this option configures the maximum size in of the jitter buffer, in milliseconds. Default="1000" min="0" max="3000". jitCMaxDrop If useJitComp is 1, this option configures the condition - a maximum number of consecutive packets dropped - that determines the jitter buffer size to be increased. enableQoV If true, this enables QoV P.862 PESQ and P.56 QoV computation. Default= False. channelTypeQoV When enableQoV is true, this specifies the objective type as either of the following: l Number of channels (0) l Percentage (1) valueQoV

1560

IxLoad Tcl API Programming Guide

VoIP SIP Peer

When enableQoV is true, this specifies the number of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 0). Alternatively this represents the percentage of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 1).
unitsQoV
The channels selection mode, which can be any of the following:
l First channels (0) l Last channels (1) l Evenly-spaced channels (2) l Random (3)
metricsQoV
When enableQoV is true, this specifies the metric that is calculated by the Zion card. Available options are:
l PESQ and P.56 (0) l PESQ (1) l P56 (2)
useSilence
If true, RTP packets containing artificial background noise are sent when no other media (DTMF, MF, real payload, and so on) is sent over the communication channel. Default= False.
silenceMode
If useSilence is 1, this option configures the silence mode.

Value

Usage

0

Null data encoded

1 (default) Comfort noise.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.audioSettings.config \-enableAudio

true \-audioClip

"US_042.wav" \-playTypeAudio

0 \-audioDurationUnit

1 \-audioDuration

10 \-outputLevel

-20-enableAudioOWD

false \-enableTosRtp

false \-rtpTosVal

32 \-useMos

false \-useJitter

false \-jitMs

20 \-useJitComp

false \-jitCMs

1000 \-jitCMaxDrop

7 \-enableQoV

false \-channelTypeQoV

0 \-valueQoV

100 \-unitsQoV

IxLoad Tcl API Programming Guide

1561

VoIP SIP Peer
0 \-activityIdQoV 0 \-useSilence 1\
SEE ALSO

0 \-metricsQoV false \-silenceMode

1562

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Video Settings
VoIP SIP Peer Video Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.VideoSettings.config \ -optionvalue
DESCRIPTION
Video Settings configures the VoIPSIP Peer's video settings.
SUBCOMMANDS
None.
OPTIONS
enableVideo Enables use of video as media traffic. 0 = disabled (default) 1 = enabled videoClip Name of the video file. Default = "Fire_avc.mp4" playTypeVideo Determines parameters for running video. Following values are available:

Value

Usage

0 (default) Play for clip duration

1

Play for specified duration.

2

Conference mode

videoDuration If playTypeVideo = 1, determines duration of video. Maximum value = 259200000. videoDurationUnit Unit of duration. Following values are available:

IxLoad Tcl API Programming Guide

1563

VoIP SIP Peer

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

useConference If playTypeVideo = 2, enables use of conference mode. Following values are available:

Value Usage

0

All speak

1

Sequential

2

Random

confVideoDuration
If playTypeVideo = 2, enables selection of conference video duration. confVideoDurationUnit
If playTypeVideo = 2, enables selection unit of conference video duration. The following values are available:

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

confDuration
If playTypeVideo = 2, enables selection of conference audio duration. confDurationUnit
If playTypeVideo = 2, enables selection unit of conference audio duration. The following values are available:

1564

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

enableTosVideo Enables use of TOS/DSCP. Use the tosVideo option to specify the TOS/DSCP value. tosVideo The following values are available:

Value Usage

0

Best Effort (0x00)"

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

7

Custom

useMosVideo
Enables computation of MOS. 0 = disabled (default) 1 = enabled Note: If MOS computation is enabled, the enableVideoOWD option also has to be enabled. enableVideoOWD
If enabled, the One-way Delay metric is computed, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default = disabled.

IxLoad Tcl API Programming Guide

1565

VoIP SIP Peer

ignoreHintTrack
If enabled, the hint track present in the video clip is ignored. The video streaming uses a new hint track which is recreated using one of the packetization modes defined by hintTrackType. By default it is disabled.
hintTrackType
Allows to select the packetization mode. The following values are available:

Value

Usage

0 (default) Single NAL Unit

1

STAP-A, with FU-A fragmentation

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.videoSettings.config \-rotationScheme

0 \-confDuration

1 \-useMosVideo

false \-enableVideoOWD

false \-ignoreHintTrack

false \-enableTosVideo

true \-enableVideo

true \-videoClip

"Fire_avc.mp4" \-

useH323AdvancedSettings

false \-videoDuration

5 \-confVideoDurationUnit

1 \-useConference

false \-confDurationUnit

1 \-confVideoDuration

1 \-videoDurationUnit

1 \-hintTrackType

1 \-fmtp

"" \-rtpmap

"" \-playTypeVideo

0 \-tosValVideo

32

SEE ALSO

1566

IxLoad Tcl API Programming Guide

VoIP SIP Peer

T.38 Settings
VoIP SIP Peer T.38 Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.Fax(T.38)Settings.config \ -optionvalue

DESCRIPTION
T.38 Settings configures the VoIP SIPPeer's fax T.38 settings.
SUBCOMMANDS
None.
OPTIONS
enableT38 Enables use of 'T.38 Fax Session' script function. 0 = disabled (default) 1 = enabled t38Port The T.38 listening port. Default = "40000". This parameter specifies a valid port (1000-65535) or simple sequence generator expression (e.g. [1000-2000,2]) faxImage Fax image to be sent. Default = "Ixia2Pages.tif" t38TransportType The transport protocol used for carrying the T.38 traffic. Default = "1" The following values are available

Value Usage

0

TCP

1

UDP

t38UdpEncapsulation
If t38TransportType = 1, t38UdpEncapsulation defines the protocol used to encapsulate T.38 messages. The following values are available:

IxLoad Tcl API Programming Guide

1567

VoIP SIP Peer

Value Usage

0

UDPTL

1

RTP

t38PayloadType The payload type identifier. Minimum = 0, Maximum = 127, and Default = 102 useFaxVersion If enabled, allows selecting the T.38 protocol version. faxVersion If useFaxVersion is enabled, used to identify the T.38 protocol version, 0, 1, 2, or 3 (default = 0). useT38MaxBitrate If enabled, allows selecting the maximum fax transmission rate. t38MaxBitrate The maximum fax transmission rate supported by the endpoint (default = 5). The following values are allowed:

Value

Usage

0

2.4 kbps

1

4.8 kbps

2

7.2 kbps

3

9.6 kbps

4

12 kbps

5(default) 14.4 kbps

6

16.8 kbps

7

19.2 kbps

8

21.6 kbps

9

24 kbps

10

26.4 kbps

1568

IxLoad Tcl API Programming Guide

VoIP SIP Peer

11

28.8 kbps

12

31.2 kbps

13

33.6 kbps

useT38RateMgmt If enabled, allows selecting the fax rate management model. t38RateMgmt The fax rate management model as defined in T.38. Following values are allowed:

Value Usage

0

Transferred TCF

1

Local TCF

useErrorRecoverySchema If enabled, allows selecting the desired error correction scheme. errorRecoverySchema The desired error correction scheme. The following values are allowed:

Value

Usage

0 (default) Redundancy

1

FEC

useT38MaxDatagramSize
If enabled, allows selecting the maximum datagram size.
t38MaxDatagramSize
The maximum datagram size (default = 256), which represents the maximum number of bytes that can be stored on the remote device before an overflow condition occurs. Minimum = 0, Maximum = 256.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.t38Settings.config \-enableT38

true \-t38TranscodingMMR

false \-t38UdpEncapsulation

0 \-useT38MaxBitrate

true \-t38RateMgmt

0 \-t38TranscodingJBIG

false \-t38TransportType

1 \-t38Port

"40000" \-t38FillBitRemoval

0 \-faxVersion

0 \-useT38FillBitRemoval

IxLoad Tcl API Programming Guide

1569

VoIP SIP Peer

false \-useT38RateMgmt "Ixia2Pages.tif" \-useT38MaxBufferSize errorRecoverySchema 256 \-t38MaxBufferSize true \-useT38MaxDatagramSize 5 \-t38PayloadType true

true \-faxImage false \-
0 \-t38MaxDatagramSize 200 \-useFaxVersion true \-t38MaxBitrate
102 \-useErrorRecoverySchema

SEE ALSO

1570

IxLoad Tcl API Programming Guide

VoIP SIP Peer

T.30 Settings
VoIP SIP Peer T.30 Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.Fax(T.30)Settings.config \ -optionvalue

DESCRIPTION
T.30 Settings configures the VoIP SIPPeer's fax T.30 settings.
SUBCOMMANDS
None.
OPTIONS
t30StationId The fax station's identifier sent in CSI, TSI and CIG. Required valid station ID or sequence generator expression (e.g. '5551[000-]'). Default = "5551[000-]" t30SendCoding The highest coding scheme available to compress the page data when sending. The following values are available:

Value

Usage

0

MH

1

MR

2 (Default) MMR

t30SendDataRate The data rate for sending. The following values are available:

Value 0 1 2

Usage V.27 ter 2.4 V.27 ter 4.8 V.17 7.2

IxLoad Tcl API Programming Guide

1571

VoIP SIP Peer

3

V.17 9.6

4

V.17 12

5(default) V.17 14.4

6

V.29 7.2

7

V.29 9.6

8

V.34 16.8

9

V.34 19.2

10

V.34 21.6

11

V.34 24

12

V.34 26.4

13

V34 28.8

14

V.34 31.2

15

V34 33.6

t30SendPageSize The page size for sending. The following values are available:

Value Usage

0

A4 (210x297 mm)

1

B4 (255x364 mm)

2

A3 (297x420 mm)

t30SendMSLT The minimum transmission time of one coded scan line. Default = 0 The following values are available:

Value

Usage

0 (default) Auto (based on DIS)

1

5 ms T7.7 = T3.85

1572

IxLoad Tcl API Programming Guide

VoIP SIP Peer

2

10 ms T7.7 = 1/2 T3.85

3

10 ms T7.7 = T3.85

4

20 ms T7.7 = 1/2 T3.85

5

20 ms T7.7 = T3.85

6

40 ms T7.7 = 1/2 T3.85

7

40 ms T7.7 = T3.85

t30SendProtocol The protocol used for fax sending. The following values are available

Value

Usage

0

non-ECM

1 (default) ECM.

t30SendResolution The horizontal and vertical resolution of the page image. The following values are available

Value

Usage

0 (default) R8x3.85 lines/mm

1

R8x7.7 lines/mm

2

R8x15.4 lines/mm

3

200x200 dots/inch

sendCNG
If enabled, CNG message is sent. t30ReceiveCoding
The highest coding scheme available to compress the page data when receiving. The following values are available:

Value 0

Usage MH

IxLoad Tcl API Programming Guide

1573

VoIP SIP Peer

1

MR

2 (Default) MMR

t30ReceivePageSize The page size for receiving. The following values are available:

Value

Usage

0

A4 (210x297 mm)

1

B4 (255x364 mm)

2 (default) A3 (297x420 mm)

t30ReceiveMSLT The minimum transmission time of one coded scan line. Default = 0 The following values are available:

Value

Usage

0 (default) 0 ms T7.7 = T3.85

1

5 ms T7.7 = T3.85

2

10 ms T7.7 = 1/2 T3.85

3

10 ms T7.7 = T3.85

4

20 ms T7.7 = 1/2 T3.85

5

20 ms T7.7 = T3.85

6

40 ms T7.7 = 1/2 T3.85

7

40 ms T7.7 = T3.85

t30ReceiveProtocol The protocol used for fax receiving. The following values are available:

Value

Usage

0

non-ECM

1 (default) ECM.

1574

IxLoad Tcl API Programming Guide

sendCedBeforeDIS If enabled, allows the answering fax to send a CED (Called station Id) signal. t30ReceiveModulations Allows to select the receiving protocol. The following values are available:

Value

Usage

0

V.27

1 (default) V.27/V.29

2

V.27/V.29/V.17

3

V.27/V.29/V.17/V.34

t30ReceiveR8x3 If enabled, receive resolution is R8x3.85 lines/mm. t30ReceiveR8x7 If enabled, receive resolution is R8x7.7 lines/mm. t30ReceiveR8x15 If enabled, receive resolution is R8x15.4 lines/mm. t30Receive200x200 If enabled, receive resolution is 200x200 dots/inch.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.t30Parameters.config \

-t30SendResolution

0\

-sendCedBeforeDIS

1\

-t30ReceiveR8x7

true \

-t30SendPageSize

0\

-t30ReceiveR8x3

true \

-t30SendProtocol

1\

-t30ReceiveProtocol

1\

-sendCNG

1\

-t30SendCoding

0\

VoIP SIP Peer

IxLoad Tcl API Programming Guide

1575

VoIP SIP Peer

-t30ReceiveMSLT -t30SendMSLT -t30ReceiveCoding -t30ReceivePageSize -t30ReceiveModulations -t30ReceiveR8x15 -t30StationId -t30SendDataRate -t30Receive200x200
SEE ALSO

0\ 0\
2\ 2\ 3\
true \ "5551\[000-\]" \
5\ true

1576

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Timer Settings
VoIP SIP Peer Timer Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.TimerSettings.config \ -optionvalue

DESCRIPTION
Timer Settings configures the VoIP SIPPeer's timer settings.
SUBCOMMANDS
None.
OPTIONS
enableTimers If enabled, the session refresh mechanism according to RFC4028 (Session Timers in SIP) and the registration refresh mechanism according tor RFC3261 (Session Initiation Protocol) is allowed. expirationValList Defines the expiration value for each message. sessionRefreshType Allows you to select the session refresh time. The following values are available:

Value

Usage

0

After specified seconds.

1 (default) After specified % of negotiated value.

2

With specified seconds before expiration

refreshAfterSecs If sessionRefreshType = 0, minimum = 1, maximum = 9999, and default = 3000 refreshAfterPercent If sessionRefreshType = 1, minimum = 1, maximum = 100, and default = 50 refreshInSecs If sessionRefreshType = 2, minimum = 1, maximum = 9999, and default = 32

IxLoad Tcl API Programming Guide

1577

VoIP SIP Peer

enableRetransmissions If enabled, allows retransmission of certain SIP messages, both requests and responses, for script functions pertaining to the activity. ignoreRetransmissions If enabled, determines ignoring all the received retransmissions. retransmitACK If enabled, allows retransmission of the 200 Ok final response to an INVITE transaction causes the ACK message, in accordance with the provisions of RFC3261. autoEndCall If enabled, allows automatic deletion of active calls at the end of test loops

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.timerSettings.config \-enableRetransmissions

false \-retransmitACK

true \-refreshInSecs

32 \-refreshAfterSecs

3000 \-T2

4000 \-T1

500 \-refreshAfterPercent

50 \-ignoreRetransmissions

true \-ovrTimeout

false \-sessionRefreshType

1 \-autoEndCall2

true \-enableTimers

false

SEE ALSO

1578

IxLoad Tcl API Programming Guide

VoIP SIP Peer
SRTP Settings
VoIP SIP Peer SRTP Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.srtpSettings.config \ -optionvalue
DESCRIPTION
SRTP Settings configures the VoIP SIPPeer's SRTP settings.
SUBCOMMANDS
None.
OPTIONS
benableSRTP Enables use of SRTP to transport the media traffic.
l false = disabled (default) l true = enabled bDisableSRTPAuthentication If true, this option disables SRTP authentication. bDisableSRTPEncryption If true, this option disables SRTP stream encryption. bIncludeMKI If true, the generated SRTP packets include the MKI field. bDisableValidations If true, none of the validations below are performed on the received SRTP packets: - SRTP packet authentication tag is not verified - Master Key expiration is not verified - SRTP packet MKI field is ignored bDisableSRTCPEncryption If true, this option disables SRTCP stream encryption. bAllowOnlySecureStreams If true, the SDP offer comprises only secure streams and SDP negotiates only secure streams.

IxLoad Tcl API Programming Guide

1579

VoIP SIP Peer

bDisableMasterSalt If true, the Master Salt value is null instead of it being randomly generated. bStaticMasterKeySalt If true, this option determines the use of a static master key and salt. _masterKeySelection Specifies if a single key or multiple keys are used:
l 0 = A single key is used. The key is specified by the staticSingleKeySalt parameter. l 1 = Multiple static keys are used. Keys are obtained from a file specified by the staticKeyFile
parameter. staticSingleKeySalt If bStaticMasterKeySalt is true, this parameter defines a key value. staticKeyFile If bStaticMasterKeySalt is true, this parameter defines a file containing multiple key values.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.srtpSettings.config \-bDisableSRTPAuthentication

false \-bIncludeMKI

true \-bEnableSRTP

true \-bDisableValidations

false \-bDisableSRTCPEncryption

false \-bStaticMasterKeySalt

true \-bAllowOnlySecureStreams

false \-bDisableMasterSalt

false \-staticSingleKeySalt

"BjVFszwVXnYB2Rtr6BbFfbvDkuFtUjJWUCClq4gP" \-staticKeyFile

"" \-bDisableSRTPEncryption

false \-_masterKeySelection

0

SEE ALSO

1580

IxLoad Tcl API Programming Guide

VoIP SIP Peer
MSRP Settings
VoIPSIP Peer MSRP Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.msrpSettings.config \ -optionvalue
DESCRIPTION
Configures the settings for the MSRP endpoints emulated by a VoIPSIP Peer activity..
SUBCOMMANDS
None
OPTIONS
enableMSRP Enables or disable MSRP emulation.
l false = disabled (default) l true = enabled msrpPort Specifies the MSRP listening port (default 2855). domainType Defines the domain type, which can be specified using a domain name (for a '0' value) or using an IP address (for a '1' value). localDomain When the domainType parameter is configured to a value of '0', this specifies the name of the local domain, possibly using a sequence generator expression. relaysCount Specifies the number of configured MSRP relays. firstRelayIsIPv4 If true (and if firstRelayIpEnabled is configured true), it specifies that the fistRelayIp parameter contains an IPv4 address, otherwise it contains an IPv6 address. firstRelayIpEnabled If true, the first relay is specified using an IP address. firstRelayIp

IxLoad Tcl API Programming Guide

1581

VoIP SIP Peer

Specifies the IP address of the first relay. msrpRelayPort Specifies the first relay's listening port. automaticMSRPAuth If selected, the emulated MSRP endpoints are authenticated at the start of the execution against all defined relay servers. The used credentials are those used by the emulated UAs of the VoIPSIP activity. msrpReuseTCP If true, the MSRP endpoint re-uses an existing TCP connection when establishing a new MSRP session. msrpSessionTimeout Specifies the time after which the session is closed (ms).if no connection was established or no data was received. msrpTransactionTimeout Specifies how long (the time period is expressed in ms) an MSRP endpoint waits for a response to a sent MSRP request. msrpFirstChunkTimeout Specifies the period of time an MSRP endpoint waits for a message to arrive (ms). msrpInterChunkTimeout Specifies how long an MSRP endpoint waits for receiving subsequent chunks from a multipart ('chunked') message (ms). enableMSRPTos Enables use of TOS/DSCP. Use the tosMSRPVal option to specify the TOS/DSCP value. tosMSRPVal The following values are available:

Value Usage

0

Best Effort (0x00)"

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

1582

IxLoad Tcl API Programming Guide

5

Express Forwarding (0xA0)

6

Control (0xC0)

7

Custom

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.msrpSettings.config \

-tosMSRPVal

0\

-relaysCount

2\

-domainType

0\

-enableMSRPTos

false \

-firstRelayIpEnabled

true \

-msrpRelayPort

2855 \

-msrpFirstChunkTimeout

60000 \

-msrpReuseTCP

true \

-automaticMSRPAuth

true \

-firstRelayIp

"10.10.10.1" \

-msrpInterChunkTimeout

30000 \

-firstRelayIsIPv4

true \

-msrpTransactionTimeout

30000 \

-msrpSessionTimeout 10000 \

-msrpPort

"2855" \

-enableMSRP

true \

-localDomain

"alice\[00-99\].example.com"

SEE ALSO
MSRP Relays MSRP GUI Files

IxLoad Tcl API Programming Guide

VoIP SIP Peer 1583

VoIP SIP Peer

MSRP GUI Files

VoIP SIP Peer MSRP GUI Files

SYNOPSIS
$Activity_Make_Call agent.pm.msrpSettings.msrpGuiFiles.appendItem \ -optionvalue

DESCRIPTION
Configures the VoIP SIP Peer's files transmitted over established MSRP sessions.

SUBCOMMANDS
None

OPTIONS
synthetic
Defines the file type, synthetic (for a '0' value) or real (for a '1' value). name
The file name (for both synthetic and real files). type
Depending on the transmitted file type, this parameter needs configured to either values: l plain/text l application/octet-stream l binary/octet-stream l image/jpeg l video/mpeg l audio/basic
fileClientPath
The complete file path for real files to be transmitted. size
The file size in bytes.

EXAMPLE

$Activity_Make_Call agent.pm.msrpSettings.msrpGuiFiles.appendItem \

-id

"FileRecord" \

1584

IxLoad Tcl API Programming Guide

-synthetic -name -fileHash -nameSynthetic -type -fileClientPath -size
SEE ALSO
MSRP Settings MSRP Relays

0\ "synthetic_1.bin" \ "" \
"synthetic_1.bin" \ "application/octet-stream" \
"" \ 20971520

VoIP SIP Peer

IxLoad Tcl API Programming Guide

1585

VoIP SIP Peer

MSRP Relays
MSRP Relays
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.msrpSettings.relays.appendItem \ -optionvalue
DESCRIPTION
Configures a list of MSRP relays.
SUBCOMMANDS
None
OPTIONS
relayAddress Specifies an MSRP relay address. addressPort Specifies the relay MSRP port, or 0 if the default port is to be used.
EXAMPLE
$Activity_VoIPSipPeer1 agent.pm.msrpSettings.relays.clear

$Activity_VoIPSipPeer1 agent.pm.msrpSettings.relays.appendItem \

-id

"RelayServer" \

-RelayAddress

"relay1.example.com" \

-AddressPort

0

SEE ALSO
MSRP Settings

1586

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Custom Activity Link Settings
VoIP SIP Peer CustomActivityLinkSettings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.customActivityLinkSettings.config \ -option value

DESCRIPTION
CustomActivityLinkSettings configures the BHCA and CPS objective settings for VoIP SIP Peer activities. This options in this object correspond to the controls on the Custom Parameters tab for a NetTraffic/ActivityLink in the Timeline and Objective branch of the Test Configuration tree in the GUI. Note: The CustomActivityLinkSettings class has to be configured alongside the CustomParameters class that implements the same functionality.
SUBCOMMANDS
None.
OPTIONS
bhcaObjectiveValue The BHCA test objective value. Default="80000". bhcaType Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

talkTime
If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000". channelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100". callSetupTime

IxLoad Tcl API Programming Guide

1587

VoIP SIP Peer

Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500". interCallDuration Inter-call duration. Default="4000". cpsObjectiveValue The CPS test objective value. cpsType Determines how the CPS objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

CPS objective will be met by specifying the talk time. Based on the the talk time value

(default) specified in talkTime, the cpsChannelsNo value is computed.

1

CPS objective will be met by specifying the number of channels.

Based on the the channels number value specified in cpsChannelsNo, the talkTime value is computed.

cpsTalkTime
If cpsType is 0, this option specifies the Talk Time that will be used to attain the CPS test objective. Default="40000". cpsChannelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the CPS test objective. Default="100". cpsOverheadTime
Indicates the duration of all other actions on the channel except the talk time and minimum inter-call duration. cpsInterCallDuration
The minimum time interval between the end of a call on a Voice channel and the start of a new call on the same voice channel

EXAMPLE

$Activity_Make_Call agent.pm.customActivityLinkSettings.config \-talkTime

40000 \-cpsObjectiveValue

100 \-cpsType

0 \-cpsInterCallDuration

2000 \-channelsNo

100 \-cpsTalkTime

750 \-cpsOverheadTime

1500 \-cpsChannelsNo

425 \-bhcaType

1588

IxLoad Tcl API Programming Guide

0 \-callTeardownTime 4000 \-bhcaObjectiveValue 500
SEE ALSO

VoIP SIP Peer
500 \-interCallDuration 100 \-callSetupTime

IxLoad Tcl API Programming Guide

1589

VoIP SIP Peer

Execution Settings
VoIP SIP Peer Execution Settings
SYNOPSIS
$Activity_<VoIPSIPPeer activity name>agent.pm.executionSettings.config \ -optionvalue

DESCRIPTION
This object defines the execution settings for the VoIP SIP Peer activity.
SUBCOMMANDS
None.
OPTIONS
loopMode Defines how many loops are executed for every voice channel corresponding to this activity.

Value

Description

0 (default) Loop for the entire test duration.

1

Execute a number of loops. Specify the number of loops in loopCount.

loopCount If loopMode is 1, this option defines the number of loops that the test performs. Default="1". loopPreDelay Delay before first loop (ms). Default="0", min="0" max="3600000". loopMidDelay Delay between loops (ms). Default="0" min="0" max="3600000". aliases Number of aliases (phone numbers) per channel. Default="1", min="1" max="16000". multipleUsersPerIO Specifies if multiple VoIPSIP channels can share the same IP:port. ipRule

1590

IxLoad Tcl API Programming Guide

VoIP SIP Peer
A simulated VoIPSIP channel is uniquely identified by IP address, TCP/UDP/TLS port, and Phone number. This option selects the rule used for the IP address portion of the channel mapping rule.
l 0 = Use same value (per port) l 1 = Use consecutive values (per port) (default) l 2 = Use same value for every X channels. Specify the value for X in -ipRuleCh. ipRuleCh
If ipRule is Use same value every, this specifies the number of channels. (Default="1" min="1" max="100000") portRule
A simulated VoIPSIP channel is uniquely identified by IP address, TCP/UDP/TLS port, and Phone number. This option selects the rule used for the TCP/UDP portion of the channel mapping rule.
l 0 = Use same value (default) l 1 = Use consecutive values (per port) l 2 = Use consecutive values (per activity) l 3 = Use same value for every X channels. Specify the value for X in -portRuleCh. portRuleCh
If portRule is Use same value every, this specifies the number of channels. (Default="1" minn="1" max="100000"). phoneRule
A simulated VoIPSIP channel is uniquely identified by IP address, TCP/UDP/TLS port, and Phone number. This option selects the rule used for the Phone number portion of the channel mapping rule.
l 0 = Use consecutive values (per port) (default) l 1 = Use consecutive values (per activity) rtpIpRule
A simulated RTP channel is uniquely identified by the IP address and UDP port. This option selects the rule used for the IP address portion of the RTP channel allocation.
l 0 = Use same value (per port) (default) l 1 = Use consecutive values (per port) l 2 = Use same value for every X channels. Specify the value for X in the rtpIpRuleCh parameter. rtpIpRuleCh
If rtpIpRule is Use same value every, this parameter specifies the number of channels. rtpPortRule
This option selects the rule used for the port portion of the RTP channel allocation. l 0 = Use same value (default)

IxLoad Tcl API Programming Guide

1591

VoIP SIP Peer

l 1 = Use consecutive values (per port) l 2 = Use consecutive values (per activity) l 3 = Use same value for every X channels. Specify the value for X in rtpPortRuleCh.
rtpPortRuleCh

If rtpPortRule is Use same value every, this parameter specifies the number of channels.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.executionSettings.config \-portRuleCh

1 \-rtpPortRule

0 \-multipleUsersPerIO

false \-loopMidDelay

0 \-loopCount

1 \-rtpIpRule

1 \-rtpIpRuleCh

1 \-rtpPortRuleCh

1 \-loopPreDelay

0 \-loopMode

0 \-phoneRule

0 \-portRule

0 \-ipRule

1 \-ipRuleCh

1 \-aliases

1

SEE ALSO

1592

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Transfer Address
VoIP SIP Peer Transfer Address
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.transferAddress.config \ -option value

DESCRIPTION
Transfer Address configures a SIP transfer address (see RFC 3261).
SUBCOMMANDS
None.
OPTIONS
symTransferStr Name of the VoIP SIP Peer configured as transfer destination (Default="None"). overridePhoneNo Enables override of phone numbers from destination VoIP SIP Peer.

Value

Usage

0 (default) Disabled

1

Enabled

_useTPb If overridePhoneNo is 1, this option selects the source of the replacement phone numbers.

Value

Usage

0 (default) Use phone number specified by _tPhone.

1

Use phone number specified by Phonebook entry.

Note: This options appears in the generated Tcl code only if the test configuration contains a reference to a Phonebook entry (_useTPb=1). The generated tcl script will run only on the machine it has been generated on and only if the correspon-ding Phonebook entry has not yet been deleted since the generation of the Tcl code.
_tPhone

IxLoad Tcl API Programming Guide

1593

VoIP SIP Peer

If _useTPb is 0, this option specifies the replacement phone numbers. You can use sequence generators in this field. Default="150[00000000-]". _ckTTelURIParams
Enables insertion of Tel URI parameters.

Value

Usage

0 (default) Disabled

1

Enabled

_tTelURIparams If _ckTTelURIParams is 1, this option specifies the Tel URI parameters. Default="phone-context=example.com".
EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.transferAddress.config \ -overridePhoneNofalse \ -_useTPb0 \ -tPhone"150\[00000000-\]" \ -transTelPar"" \ -_tPhone"150\[00000000-\]" \ -_ckTTelURIParamsfalse \ -symTransferStr"None" \ -tPhoneType0 \ -_tTelURIparams"phone-context=example.com" \ -_tBp"&lt;None&gt;"

SEE ALSO

1594

IxLoad Tcl API Programming Guide

VoIP SIP Peer
Scenario Settings
VoIP SIP Peer Scenario Settings
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.scenarioSettings.config \ -option value
DESCRIPTION
Scenario Settings specifies the test scenario file used by the Tcl script.
SUBCOMMANDS
None.
OPTIONS
scenarioFile The full path to the test scenario file for the activity. activeScenarioChannel Test scenario channel (0-based index) that is associated with the VoIP SIP Peer activity (Default=0).
EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.scenarioSettings.config \ -scenarioFile"E:\\ScenarioTestFiles\\Basic_Call_TCP.tst" \ -activeScenarioChannel0
SEE ALSO

IxLoad Tcl API Programming Guide

1595

VoIP SIP Peer

Dial Plan
VoIP SIP Peer Dial Plan
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.dialPlan.config \ -option value

DESCRIPTION
The Dial Plan object configures the source, destination, and transfer addresses and phone numbers for the channels/endpoints simulated by the VoIPSIPPeer activity.
SUBCOMMANDS
None.
OPTIONS
sourceIPs List of IPs taken from the associated network (read-only). _useSPb Method used to select phone number.

Value Usage

0

Use the phone number specified by pattern.

1

Use the phone number specified by Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (_useSPb=1). The generated Tcl script will run only on the machine it has been generated on and only if the correspon-ding Phonebook entry has not yet been deleted since the generation of the Tcl code.
_sPhone
If _useSPb is 0, this option specifies the phone number. You can use sequence generators in this field to generate multiple phone numbers. See the sequence generator appendix. Default="160 [00000000-]".
_ckSTelURIParams
Enables insertion of Tel URI parameters.

1596

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Value

Usage

0 (default) Disabled

1

Enabled

_sTelURIparams
If _ckSTelURIParams is 1, this option specifies the Tel URI parameters. Default="phone-context=example.com". symDestStr
String identifying the VoIP SIP Peer or VoIP Skinny Peer that is the destination for traffic from this VoIP SIP Peer activity. Default="None". ovrDestPhone
Enables overriding of phone number from the destination VoIP Peer.

Value

Usage

0 (default) Disabled

1

Enabled

_useDPb Method used to select the phone number used to override destination phone number.

Value

Usage

0 (default) Specify pattern.

1

Specify Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (_useDPb=1). The generated Tcl script will run only on the machine it has been generated on and only if the correspon-ding Phonebook entry has not yet been deleted since the generation of the Tcl code.
_dPhone
If _useDPb is 0, this option specifies the phone number. Default="170[00000000-]".
_ckDTelURIParams
Enables insertion of Tel URI parameter.

Value

Usage

IxLoad Tcl API Programming Guide

1597

VoIP SIP Peer

0 (default) Disabled

1

Enabled

_dTelURIparams If _ckDTelURIParams is 1, this option configures the Tel URI parameters. Default="phone-context=example.com".
EXAMPLE
$Activity_VoIPSIPPeer1 agent.pm.dialPlan.config \ -_useSPb0 \ -symDestStr"sip server_VoIPSIPPeer2:5060" \ -_sTelURIparams"phone-context=example.com" \ -destPhoneType0 \ -_sPhone"160\[00000000-\]" \ -_dTelURIparams"phone-context=example.com" \ -_sBp"&lt;None&gt;" \ -srcPhoneType0 \ -_dBp"&lt;None&gt;" \ -ovrDestPhonefalse \ -destTelPar"" \ -_ckSTelURIParamsfalse \ -_dPhone"170\[00000000-\]" \ -srcPhone"160\[00000000-\]" \ -destPhone"160\[00000000-\]" \ -_useDPb0 \ -_ckDTelURIParamsfalse \ -srcTelPar""

SEE ALSO

1598

IxLoad Tcl API Programming Guide

VoIP SIP Peer
TLS Settings
Configures VoIP SIP Peer TLS settings.
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.tlsSettings.config \ -optionvalue
DESCRIPTION
Specifies TLS settings for SIP traffic.
SUBCOMMANDS
None.
OPTIONS
enableTLS Enables use of TLS to transport the SIP traffic. false = disabled (default) true = enabled tlsProtocol Specifies the TLS protocol version used:
l 0 = TLS 1.0 Only (Default) l 1 = SSL 3.0 Only l 2 = TLS + SSL tlsPort Specifies the TLS listening port (default=5061). tlsEnableTcpKeepAlive If configured true, enables the TCP keep alive mechanism on the VoIPSIPPeer-emulated endpoints. tlsReuseConnection If configured true, an `alias' parameter is added in the Via header of SIP requests sent by the VoIPSipPeer activity, such as to enable the TLS connection reuse mechanism. When this option is set to the true value, the Mutual Authentication option is automatically selected. tlsMutual

IxLoad Tcl API Programming Guide

1599

VoIP SIP Peer
If configured true, mutual authentication is performed. When this parameter is configured true, the tlsAuthClient option also has to be configured true. tlsAuthClient If configured true, client authentication at the TLS connection establishment stage is also performed. By default, only the server authenticates itself by presenting a certificate. tlsSessionRefresh If configured true, TLS renegotiation is enabled at the interval of time specified by the tlsRefreshInterval parameter. tlsRefreshInterval When the tlsSessionRefresh option is configured true, this parameter specifies the refresh interval. ignoreSubjectAltName If configured true, the verification of the Subject Alternative Name certificate parameter is not performed and the connection is re-used for which the `alias' parameter of the Via header was received. sipScheme Specifies the scheme, sip or sips, used for the construction of the Request-URI for the following SIP message headers: Contact, From, To, Reply-To, Via, Record-Route. 0 = sip 1 = sips tlsTransportType Specifies the transport protocol ­ TCP or TLS ­ used in the construction of SIP Request-URIs, the Contact message header and the `sent-protocol' parameter of Via message headers 0 = TCP 1 = TLS tlsDisableUdpAndTcp If true, the VoIPSIP peer only accepts TLS connections, rejecting any UDP or TCP connections. tlsCertificatesPath Specifies the certificates location, a folder containing the certificates files. Default = "". tlsPublicKeyCertificate Specifies the name of the certificate file containing the public key, or a sequence specifying a set of certificate file names. tlsPrivateKeyCertificate

1600

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Specifies the name of the certificate file containing the private key, or a sequence specifying a set of certificate file names.
tlsPassword
Specifies an optional parameter, defined as a string or a sequence, representing the password used to encrypt the private key. Default = "".

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.tlsSettings.config \-tlsProtocol

2 \-tlsPublicKeyCertificate

"" \-tlsEnableTcpKeepAlive

false \-tlsReuseConnection

false \-tlsPort

"5061" \-tlsSessionRefresh

false \-enableTLS

false \-ignoreSubjectAltName

false \-tlsAuthClient

0 \-tlsPrivateKeyCertificate

"" \-tlsPassword

"" \-tlsMutual

false \-tlsRefreshInterval

3600 \-sipScheme

0 \-tlsTransportType

0 \-tlsDisableUdpAndTcp

true \-tlsCertificatesPath

""

SEE ALSO

IxLoad Tcl API Programming Guide

1601

VoIP SIP Peer

TLS Cyphers
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.tlsSettings.tlsCyphers.appendItem \ -option value
DESCRIPTION
The tlsCyphers object configures a list of cyphers supported by the VoIPSipPeer activity. Cyphers are added to the list using the appendItem command.
SUBCOMMANDS
None.
OPTIONS
id The TLS cypher list Id. enabled If configured true, the use of the given cipher is advertised (default = false). name The cypher name.
EXAMPLE
$Activity_VoIPSipPeer1 agent.pm.tlsSettings.tlsCyphers.clear

$Activity_VoIPSipPeer1 agent.pm.tlsSettings.tlsCyphers.appendItem \-id

"TlsCyphers" \-enabled

true \-name

"AES128-SHA"

SEE ALSO

1602

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Custom Parameters
VoIP SIP Peer CustomParameters.
SYNOPSIS
$Activity_VoIPSIPPeer1 customParameters.config \ -option value

DESCRIPTION
CustomParameters configures the settings for the BHCA objective for VoIP SIP Peer activities. This options in this object correspond to the controls on the Custom Parameters tab for a NetTraffic/ActivityLink in the Timeline and Objective branch of the Test Configuration tree in the GUI. Note: The CustomParameters class has to be configured alongside the CustomActivityLinkSettings class that implements the same functionality.
SUBCOMMANDS
None.
OPTIONS
bhcaObjectiveValue The BHCA test objective value. Default="80000". bhcaType Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

talkTime
If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000". channelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100". callSetupTime

IxLoad Tcl API Programming Guide

1603

VoIP SIP Peer

Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500". interCallDuration Inter-call duration. Default="4000". cpsObjectiveValue The CPS test objective value. cpsType Determines how the CPS objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

CPS objective will be met by specifying the talk time. Based on the the talk time value

(default) specified in talkTime, the cpsChannelsNo value is computed.

1

CPS objective will be met by specifying the number of channels.

Based on the the channels number value specified in cpsChannelsNo, the talkTime value is computed.

cpsTalkTime
If cpsType is 0, this option specifies the Talk Time that will be used to attain the CPS test objective. Default="40000". cpsChannelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the CPS test objective. Default="100". cpsOverheadTime
Indicates the duration of all other actions on the channel except the talk time and minimum inter-call duration. cpsInterCallDuration
The minimum time interval between the end of a call on a Voice channel and the start of a new call on the same voice channel.

EXAMPLE

$Activity_Make_Call customParameters.config \-talkTime

40000 \-cpsObjectiveValue

100 \-cpsType

0 \-cpsInterCallDuration

2000 \-channelsNo

100 \-cpsTalkTime

750 \-cpsOverheadTime

1500 \-cpsChannelsNo

425 \-bhcaType

1604

IxLoad Tcl API Programming Guide

0 \-callTeardownTime 4000 \-bhcaObjectiveValue 500
SEE ALSO

VoIP SIP Peer
500 \-interCallDuration 100 \-callSetupTime

IxLoad Tcl API Programming Guide

1605

VoIP SIP Peer

Advanced Settings

Configures a VoIPSIP Cloud Peer activity that is associated with the VoIPSIP Peer.

SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.advancedSettings.config \ -option value

DESCRIPTION
Advanced Settings configure the use of a specified VoIPSIP Cloud Peer conjointly with the SIP Peer.
The SIP Proxy servers emulated by the VoIPSIP Cloud Peer can be configured to add Via and RecordRoute message headers to SIP messages traversing them.

SUBCOMMANDS
None.

OPTIONS
useCloud If true, this option enables use of a VoIPSIP cloud with the VoIPSIP Peer. false = disabled (default) true = enabled ovrCloudRules If configured true, default dispatching rules are being overridden. cloud Specifies the SIP cloud to use.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.advancedSettings.config \-useCloud

true \-ovrCloudRules

false \-cloud

"VoIPSipCloud1"

SEE ALSO

Cloud Servers

1606

IxLoad Tcl API Programming Guide

VoIP SIP Peer
Cloud Servers
Configures a list of SIP Proxy Servers emulated by a VoIPSIP Loud Peer.
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.cloudServers.appendItem \ -option value
DESCRIPTION
This object configures a list of SIP Proxy Servers emulated by a VoIPSIP Cloud Peer activity. SIP proxies are added to the list using the appendItem command. Note: The CloudServers class has to be configured alongside the SipServerList class of a VoIP SIP Cloud Peer that implements the same functionality.
SUBCOMMANDS
None.
OPTIONS
id The cloud server's list ID. firstIp The first IP address in the network range associated with the SIP Proxy server. This is the SIP Proxy server that is located at the cloud boundary. name The server name (default sip_server#1 and subsequent strings). rangeType The range type, which can be Virtual IP and IP. ipAddr The starting IP address of the associated network range. netMask The network mask. ipStep The increment step of the starting IP address (default "0.0.0.1"). attachedInfo

IxLoad Tcl API Programming Guide

1607

VoIP SIP Peer
An extra string associated with the proxy, such as a domain name (default = sip-test.my-domain.com). ipCount The number of hosts (default = 1). port The SIP port (default = 5060). ipType The IP addressing type, IPv4 or IPv6.
EXAMPLE
$Activity_VoIPSipPeer1 agent.pm.cloudServers.clear
$Activity_VoIPSipPeer1 agent.pm.cloudServers.appendItem \ -id"CloudServer" \ -firstIp"172.20.13.1" \ -name"sip_server#1" \ -rangeType"IP" \ -ipAddr"Network Range 2 in Network1 (172.20.13.1+1)" \ -ipStep"0.0.0.1" \ -attachedInfo"sip-test.my-domain.com" \ -netMask"255.254.0.0" \ -ipCount"1" \ -port5060 \ -ipType"IPv4"
SEE ALSO

1608

IxLoad Tcl API Programming Guide

VoIP SIP Peer

Server Rules
Configures a list of rules associated with each emulated SIP Proxy server in the VoIPSIP Cloud Peer.
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.advancedSettings.serverRules.appendItem \ -option value
DESCRIPTION
This object configures a rules list. For each SIP server in the cloud, its associated rule specifies if a Via or a Record-Route header are added to SIP messages traversing the server. Rules are added to the list using the appendItem command.
SUBCOMMANDS
None.
OPTIONS
id The server rules list ID. recordRoute If true, a SIP Record-Route message header is added to SIP messages (default = true). via If true, a SIP Record-Route message header is added to SIP messages (default = true). name The name of the SIP Proxy server (default = sip_server#<n>).
EXAMPLE
$Activity_VoIPSipPeer1 agent.pm.advancedSettings.serverRules.clear

$Activity_VoIPSipPeer1 agent.pm.advancedSettings.serverRules. \

appendItem \-id

"ServerRule" \-recordRoute

true \-via

true \-name

"sip_server#1"

SEE ALSO

IxLoad Tcl API Programming Guide

1609

VoIP SIP Peer
Cloud Rules
Configures a list of dispatching rules that override the default VoIP SIP Cloud rules.
SYNOPSIS
$Activity_VoIPSIPPeer1 agent.pm.cloudRules.rulesList.appendItem \ -option value
DESCRIPTION
A new dispatching rule is added to the rulesList of the cloudRules object using the appendItem subcommand from the ixConfigSequenceContainer command.
SUBCOMMANDS
None.
OPTIONS
id The cloud rules list Id. when Specifies the SIP message that is processed for extracting a rule. where
l Extracts the variable from the request line, or from parts of it, as follows: l Entire First Line l Request Line - Method l Request Line - Request-URI l Request Line - Request-URI - Phone l Request Line - SIP Version refine Specifies if further processing is applied or not: l N/A: No further processing is applied l Refined: Further processing is applied, as defined by a RuleData object. formula A formula that is defined using the same syntax as a sequence generator expression. Form the extracted string matched against the dispatching formula, the message is dispatched to a specific SIP channel.
EXAMPLE
$Activity_VoIPSipPeer1 agent.pm.cloudRules.rulesList.clear

1610

IxLoad Tcl API Programming Guide

VoIP SIP Peer

$Activity_VoIPSipPeer1 agent.pm.cloudRules.rulesList.appendItem \-id

"CloudRule" \-where

"Request Line - Request-URI -

Phone" \-when

"INVITE" \-refine

"N/A" \-formula

"160\[00000000-\]"

SEE ALSO

RuleData

IxLoad Tcl API Programming Guide

1611

VoIP SIP Peer
RuleData
Configures the processing operations applied to incoming message for extracting a dispatching rule.
SYNOPSIS
$Activity_VoIPSipPeer agent.pm.cloudRules.rulesList(0).ruleData.config \ -option value
DESCRIPTION
A RuleData object defining further processing that is applied to a string after it is extracted from a SIP message. This object corresponds to the Edit Cloud Rule GUI in the application.
SUBCOMMANDS
None.
OPTIONS
what Defines the extraction scope as one of the following:
l 0 = Entire SIP request l 1 = Request line l 2 = Header l 3 = SIP message body reqLine If what is configured to the value `1', this parameter specifies which part of the request line the string is extracted from: l 0 = Entire First Line l 1 = Request Line - Request-URI - Phone l 2 = Request Line - Method l 3 = Request Line - Request-URI l 4 = Request Line - SIP Version headerType If what is configured to the value `2', this parameter specifies a header type that is being extracted (default = To). compactForm If what is configured to the value `2', this parameter defines the compact form of the SIP message header specified by the headerType parameter.

1612

IxLoad Tcl API Programming Guide

VoIP SIP Peer
occurFrom, endOccur If what is configured to the value `2', this parameter specifies between which occurrences extraction is done. whatExtract If what is configured to the value `2', this parameter specifies which part of the header is extracted:
l 0 = Whole header value l 1 = Header value without parameters l 2 = The parameter specified by paramName l 3 = Phone value from URI extractHeaderName When the whatExtract parameter is configured to the value `0', if this option is configured true, the header name is also extracted. paramName When the whatExtract parameter is configured to the value `2', this option extracts the value of the named parameter. revHeaderOrder When configured true, this option to true processes the occurrences in reverse order, starting from the last up to the first. keepHeaderCrlf When configured true, the last Carriage Return/Line Feed character extracted into the variable is kept. Note: The parameters above correspond to Step 2 in the dispatching rules definition window of the IxLoad GUI. usePosition Specifies the mode in which an extracted substring is delimited: l 0 = The substring is marked by delimiters. l 1 = The substring is marked by position. beginAfter If this parameter is configured true, a substring is delimited by the afterStr and afterOccur parameters. This parameter is relevant when usePosition is configured to the value `0'. afterStr, afterOccur The substring start is indicated by these parameters. endBefore

IxLoad Tcl API Programming Guide

1613

VoIP SIP Peer

If this parameter is configured true, a substring is delimited by the endStr and endOccur parameters.
endStr, endOccur
The substring end is indicated by these parameters.
positionFrom, positionTo
If usePosition is configured to the value `1', these parameters specify the delimiting positions for position-based substring extraction.
formula
Specifies a formula that is defined using the same syntax as a sequence generator expression. The extracted string matched against the dispatching formula and the message is dispatched to a specific SIP channel.
Note: The parameters above correspond to Step 3 in the dispatching rules definition window of the IxLoad GUI.

EXAMPLE

$Activity_VoIPSipPeer1 agent.pm.cloudRules.rulesList.appendItem \-id

"CloudRule" \-where

"Request Line - Request-URI -

Phone" \-when

"INVITE" \-refine

"Refined" \-formula

"160\[00000000-\]"

$Activity_VoIPSipPeer1 agent.pm.cloudRules.rulesList(0).ruleData. \ config \

-positionFrom

"1" \-what

1 \-endBefore

true \-extractHeaderName

false \-headerType

"To" \-whatExtract

3 \-occurFrom

"1" \-formula

"160\[00000000-\]" \-endStr

">" \-usePosition

0 \-endOccur

"last" \-positionTo

"last" \-reqLine

1 \-keepHeaderCrlf

false \-compactForm

"t" \-paramName

"" \-afterOccur

"1" \-beginAfter

true \-afterStr

"<" \-occurTo

"1" \-revHeaderOrder

false

SEE ALSO

1614

IxLoad Tcl API Programming Guide

VoIP Skinny Peer
The IxLoad VoIP Skinny Peer Tcl API consists of a VoIP Skinny Peer agent, with separate APIs for configuring each major aspect of the agent's functionality.
Limitations
The following restrictions and limitations of the VoIPSkinny Peer API exist: l The PhoneBook and other related classes, such as PhoneBookEntry, can not be edited from the Tcl API. l Individual VoIP Skinny script functions can not be added and edited from the Tcl API. Instead, you must add and configure the commands in the Scenario Editor, save the test scenario file, then pass it as an argument to the ScenarioSettings API class. l Implementation of the BHCA objective features relies on two classes, CustomParameters and CustomActivityLinkSettings that have to be configured using the same parameters.

IxLoad Tcl API Programming Guide

1615

VoIP Skinny Peer
VoIP Skinny Peer API Commands
The IxLoad VoIP Skinny Peer API commands are organized as shown in the figure below.

1616

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

VoIP Skinny API Objects
The table below lists the VoIP Skinny Peer API objects.

Object VoIP Skinny Peer Agent Scenario Settings
Codec Settings Data Codecs Codecs Skinny Settings
CallManager Execution Settings
Dial Plan
RTP Settings Audio Settings Other Settings
Custom Activity Link Settings, CustomParameters

Description
Top-level object defining the VoIP Skinny Peer activity.
Selects the Test Scenario file; corresponds to the Scenario Settings GUI tab.
List of Data Codecs and Codecs objects.
Data codec with parameters.
Audio codec with parameters.
VoIP Skinny Peer Skinny parameters; corresponds to the Skinny Settings GUI tab.
CallManager object with parameters.
Run-time test configuration; corresponds to the Execution Settings GUI tab.
Configures the registration names, phone numbers, and source, destination, and transfer addresses for the channels/phones; corresponds to the Dial Plan GUI tab.
RTP transport configuration; corresponds to the RTP Settings GUI tab.
Audio settings; corresponds to the Audio GUI tab.
VoIP Skinny Peer miscellaneous parameters; corresponds to the Other Settings GUI tab.
BHCA objective configuration; corresponds to the Custom Parameters GUI tab.

IxLoad Tcl API Programming Guide

1617

VoIP Skinny Peer

VoIP Skinny Peer Agent

VoIP Skinny Peer Agent

SYNOPSIS
set Activity_VoIPSkinnyPeer1 \ [$ClientNetwork1 activityList.appendItem \ -protocolAndType"VoIP Skinny Peer" ]

DESCRIPTION

A VoIP Skinny Peer agent is added to the agentList option of the config object using the

appendItem subcommand from the ixConfigSequenceContainer command. Other ixCon-

figSequenceContainer subcommands may be used to modify the agentList. See the following

example: set Activity_VoIPSkinnyPeer2 [$skinny_client_ClientNetwork1 \ activ-

ityList.appendItem \-protocolAndType

"VoIP Skinny Peer"

]$Activity_VoIPSkinnyPeer2 config \-enable

true \-

name

"VoIPSkinnyPeer2" \-enableConstraint

false \-userObjectiveValue

1 \-constraintValue

100 \-userObjectiveType

"channels" \-timeline

$Timeline3 \

$Activity_VoIPSkinnyPeer2 agent.config \-enable

true \-name

"VoIPSkinnyPeer2"

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by: $Activity_VoIPSkinnyPeer1 agent(0).config -name "VoIP Skinny Peer new"

SUBCOMMANDS

None.

OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time.

STATISTICS
The table below lists the statistics published by this object.

1618

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Note: Statistics from this category are not displayed in any of the pre-defined views, but can be assigned to custom statistics views.

Statistic

Description

Per Channel/Global

VoIPSkinny Channels

Successful Channels

The per polling interval number of COMPLETED channels. A channel is COMPLETED if all the channel loops were COMPLETED.

Global

Warning Channels

The per polling interval number of WARNING channels. A channel is WARNING if all the channel loops were COMPLETED or WARNING and at least one loop had a WARNING result.

Global

Failed Channels

The per polling interval number of FAILED channels. A channel is FAILED if all the loops of the channel were COMPLETED, WARNING, or FAILED and at least one loop was FAILED.

Global

Aborted Channels

The per polling interval number of ABORTED channels. A channel is ABORTED if all the channel loops of the channel were COMPLETED, WARNING, FAILED, or ABORTED and at least one loop was ABORTED.

Global

Active Channels

The per polling interval number of active channels. Active channels are the channels executing a scenario channel functions flow.

Global

Total Channels

The per polling interval total number of channels, a sum of active and non-active channels.

Global

VoIPSkinny Loops

Successful Channel Loops

The cumulative count of COMPLETED channel loops. A channel loop is COMPLETED if all executed script functions in the corresponding scenario channel produced SKIPPED or COMPLETED function results.

Global

Warning Channel Loops

The cumulative count of WARNING channel loops. A channel loop has a WARNING result if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, or WARNING function results and at least one script function had a WARNING result.

Global

IxLoad Tcl API Programming Guide

1619

VoIP Skinny Peer

Failed Channel Loops

The cumulative count of FAILED channel loops. A channel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, or FAILED function results and at least one script function had a FAILED result.

Global

Aborted Channel Loops

The cumulative count of ABORTED channel loops. A channel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, FAILED, or ABORTED function results and at least one script function had an ABORTED result.

Global

Total Channel Loops

The cumulative count of total executed loops.

Global

Inter Loop Dur- The average time gap between loops. ation (Avg) (ms)

Global

VoIPSkinny Calls

Attempted Calls

The number of originated calls - not necessarily answered or connected. This statistic is updated whenever the skNewCall, SkRedial, or SkMeetMeConfrn softkey is sent. It is also incremented when a transfer or a conference is initiated, i.e. a SkTrnsfer or a SkConfrn softkey is sent for the first time.

Global

Connected Calls

The number of calls successfully connected from the ori-

Global

ginator point of view. This statistic is incremented whenever

the originating side receives a StartMediaTransmission mes-

sage.

Received Calls

The number of received calls, not necessarily answered. This statistic is incremented whenever the CallState TsRingIn or the CallState TsWaitCalling message is received by the call terminating side.

Global

Answered Calls

The number of calls received, successfully answered and connected. This statistic is incremented whenever the receiving side receives a StartMediaTransmission message.

Global

Transferred Calls

The number of transferred calls. This statistic is updated whenever the CallState TsOnHook message is received, after the second SkTransfer softkey was sent, to complete the transfer.

Global

1620

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Active Calls

Number of active calls at one time. This statistic is incremented when the StartMediaTransmission message is received, and is decremented when the CallState TsOnHook message is received or at the end of the loop.

Global

Busy Calls

The number of calls that were rejected with the party being busy as a cause. This statistic is incremented when the CallState TsBusy message is received.

Global

End Call Initiated The number of initiated end call operations. This statistic is Global updated whenever the skEndCall softkey is sent.

End Call Received

This statistic is updated whenever the CallState TsOnHook message is received, without the skEndCall softkey being previously sent.

Global

End Calls Completed

This statistic is updated whenever the CallState TsOnHook Global message is received after having sent a SkEndCall softkey.

Answered Calls TX

The number of acknowledged calls (answered), but not necessarily connected. This statistic is incremented when the CallState TsConnected message is received by originating side.

Global

Attempted Answered Calls RX

The number of calls received and answered, but not neces- Global sarily completed. This statistic is incremented whenever the SkAnswer softkey event is sent by the receiving side.

VoIPSkinny Call Rates

IxLoad Tcl API Programming Guide

1621

VoIP Skinny Peer

Attempted Calls /s, Connected Calls /s, Received Calls /sec, Answered Calls /s, Rejected Calls /s, Calls with Authentication Required /s, Transferred Calls /s, Busy Calls /s, Redirected Calls /s

The per polling interval rates corresponding to some of the previous VoIPSkinny Calls statistics.

Global

VoIPSkinny Call Times

Call Setup Time TX Avg (ms)

The time it takes to setup a call and receive a call acceptance acknowledgement from the remote endpoint, including the post-dial delay and computed as the time between the SkNewCall and the StartMediaTransmission events.

Global

Call Setup Time RX Avg (ms)

The time from receiving the request for the call until receiving the final caller acknowledgment that the call setup has been successfully completed, computed as time between the CallState TsRingIn and the StartMedia Transmission events.

Global

Talk Time (Avg)

The active conversational between the StartMediaTransmission message until the CloseReceiveChannel message.

Global

End Call Time (Avg)

The time between the sending the SkEndCall softkey and receiving the CallState TsOnHook message.

Global

Total Call Duration (Avg)

The total call duration comprising the call setup, talk, and end call times.

Global

VoIpSkinny Delays

1622

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Post Dial Delay (Avg) [ms]
Media Delay TX (Avg) [ms], Media Delay TX (Max) [ms], Media Delay TX (Min) [ms]
Media Delay RX (Avg) [ms], Media Delay RX (Max) [ms], Media Delay RX (Min) [ms]

The per polling interval time elapsed between sending of the last dialed number digit and receiving of a CallStateMessage TsRingOut, TsCongestion, TsBusy, or TsInvalidNumber message.

Global

The per polling interval average/min/max media delay, including both the call setup delay and the post dial delay, is delimited in time by the sending of the last dialed digit and the receiving of the first RTP packet at the call initiating endpoint.

Global

The per polling interval average/min/max time elapsed between receiving the CallState TsRingIn message and receiving the first media packet.
The media delay includes both the call setup delay and post-pickup delay.

Global

Post-Pickup Delay (Avg) [ms],
Post-Pickup Delay (Max) [ms],
Post-Pickup Delay (Min) [ms]

The per polling interval average/min/max time elapsed between sending the SoftKeyEventMessage (SoftKeyEvent = Answer) and receiving the first media packet.

Global

Dial Tone Delay (Avg) [ms]

The per polling interval time elapsed between sending the OffHook message or the NewCall softkey and receiving the StationStartToneMessage (DtDialTone).

Global

Busy Tone Delay (Avg) [ms]

The per polling interval time elapsed between sending the NewCall softkey included in the OffHook message and receiving the StationStartToneMessage (DtLineBusyTone).

Global

VoIPSkinny Registrations

IxLoad Tcl API Programming Guide

1623

VoIP Skinny Peer

Attempted Registrations

The cumulative count of attempted registrations, incremented when a phone is starting registration with the primary CCM. If the phone is already registered, the statistic is not incremented.
Note: If a problem occurs with the primary CCM, the phone tries to re-register with the second CCM and the statistic is incremented.

Global

Successful Registrations

The cumulative count of successful registrations, incremented when a registration completes, that is all the registration sequence messages have been sent and replies for them have been received from the primary CCM.

Global

Failed Registrations

The cumulative count of failed registrations, incremented whenever the CCM replies with the RegisterReject message, the timeout for the registration function expires, or in case of connection failure.

Global

Attempted DeRegistrations

The cumulative count of attempted de-registrations, incremented when a phone is starting de-registration with the primary CCM by sending the Unregister message.

Global

Successful DeRegistrations

The cumulative count of successful de-registrations, incremented when the phone receives the reply UnregisterAck message from the primary CCM.

Global

Failed De-Registrations

The cumulative count of failed de-registrations, incremented when the timeout for the Skinny Unregister Client script function expires.

Global

Registration Time (Avg) [ms]

The time it takes for the registration function to complete, including the time for the establishment of the primary and secondary CCM connections, the time spent to send all the registration sequence messages and to receive the replies from the primary CCM.

Global

DeRegistration Time (Avg) [ms]

The time is takes the phone to send the Unregister message and to wait for the reply UnregisterAck message from the primary CCM.

Global

VoIPSkinny Registration Rates

Attempted Regis- The per polling interval attempted registration rate. trations /s

Global

1624

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Successful Regis- The per polling interval successful registration rate. trations /s

Attempted DeRegistrations /s

The per polling interval attempted de-registration rate.

Successful DeRegistrations /s

The per polling interval successful de-registration rate.

VoIPSkinny Errors

Transport Errors

The number of Skinny transport errors, occurring when a Skinny message cannot be sent due to a socket error.

Trigger Errors

The number of trigger errors.

RTP Errors

The total number of RTP related errors, incremented when any RTP script function is failing or exiting on the Warning or Timeout outputs.

Timeout Errors

The number of script functions timeout errors.

Internal Errors

The total number of internal errors.

VoIPSkinny Busy Hour Call Measurements

BHCA

The Busy Hour Call Attempts rate that represents the number of calls initiated in one hour.

BHCC

The Busy Hour Call Completions rate that represents the number of calls initiated and connected in one hour.

VoIPSkinny Other

Payload Bytes Received, Payload Bytes Received/s

The inbound RTP payload bytes number, inbound RTP payload bytes rate.

Triggers Sent, Triggers Sent /s

The number of triggers sent, the rate of triggers sent.

Triggers Received, Triggers Received /s

The number of triggers received, the rate of triggers received

Global Global Global
Global Global Global Global Global Global Global
Both
Global Global

IxLoad Tcl API Programming Guide

1625

VoIP Skinny Peer

Triggers Bytes Sent, Triggers Bytes Sent /s
Triggers Bytes Received, Triggers Bytes Received /s

The number of trigger bytes sent, the rate of trigger bytes sent.
The number of trigger bytes received, the rate of trigger bytes received.

Table 29-1.VoIPSkinnyPeer Statistics

Global Global

Statistic

Description

Per Channel/Global

VoIPSkinny Channels

Successful Channels

The per polling interval number of COMPLETED channels. A chan- Global nel is COMPLETED if all the channel loops were COMPLETED.

Warning Chan- The per polling interval number of WARNING channels. A channel

nels

is WARNING if all the channel loops were COMPLETED or

WARNING and at least one loop had a WARNING result.

Global

Failed Channels

The per polling interval number of FAILED channels. A channel is FAILED if all the loops of the channel were COMPLETED, WARNING, or FAILED and at least one loop was FAILED.

Global

Aborted Channels

The per polling interval number of ABORTED channels. A channel is ABORTED if all the channel loops of the channel were COMPLETED, WARNING, FAILED, or ABORTED and at least one loop was ABORTED.

Global

Active Channels

The per polling interval number of active channels. Active channels are the channels executing a scenario channel functions flow.

Global

Total Channels The per polling interval total number of channels, a sum of active Global and non-active channels.

VoIPSkinny Loops

1626

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Successful Channel Loops

The cumulative count of COMPLETED channel loops. A channel loop is COMPLETED if all executed script functions in the corresponding scenario channel produced SKIPPED or COM-PLETED function results.

Global

Warning Channel Loops

The cumulative count of WARNING channel loops. A channel loop has a WARNING result if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, or WARNING function results and at least one script function had a WARNING result.

Global

Failed Channel Loops

The cumulative count of FAILED channel loops. A channel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, or FAILED function results and at least one script function had a FAILED result.

Global

Aborted Channel Loops

The cumulative count of ABORTED channel loops. A channel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, FAILED, or ABORTED function results and at least one script function had an ABORTED result.

Global

Total Channel The cumulative count of total executed loops. Loops

Global

Inter Loop Dur- The average time gap between loops. ation (Avg) (ms)

Global

VoIPSkinny Calls

Attempted Calls

The number of originated calls - not necessarily answered or connected. This statistic is updated whenever the skNewCall, SkRedial, or SkMeetMeConfrn softkey is sent. It is also incremented when a transfer or a conference is initiated, i.e. a SkTrnsfer or a SkConfrn softkey is sent for the first time.

Global

Connected Calls

The number of calls successfully connected from the originator point of view. This statistic is incremented whenever the originating side receives a StartMediaTransmission message.

Global

IxLoad Tcl API Programming Guide

1627

VoIP Skinny Peer

Received Calls

The number of received calls, not necessarily answered. This statistic is incremented whenever the CallState TsRingIn or the CallState TsWaitCalling message is received by the call terminating side.

Global

Answered Calls

The number of calls received, successfully answered and connected. This statistic is incremented whenever the receiving side receives a StartMediaTransmission message.

Global

Transferred Calls
Active Calls

The number of transferred calls. This statistic is updated whenever the CallState TsOnHook message is received, after the second SkTransfer softkey was sent, to complete the transfer.

Global

Number of active calls at one time. This statistic is incremented when the StartMediaTransmission message is received, and is decremented when the CallState TsOnHook message is received or at the end of the loop.

Global

Busy Calls

The number of calls that were rejected with the party being busy as a cause. This statistic is incremenented when the CallState TsBusy message is received.

Global

End Call Initiated

The number of initiated end call operations. This statistic is updated whenever the skEndCall softkey is sent.

Global

End Call Received

This statistic is updated whenever the CallState TsOnHook mes- Global sage is received, without the skEndCall softkey being previously sent.

End Calls Com- This statistic is updated whenever the CallState TsOnHook mes- Global

pleted

sage is received after having sent a SkEndCall softkey.

Answered Calls TX

The number of acknowledged calls (answered), but not necessarily connected. This statistic is incremented when the CallState TsConnected message is received by originating side.

Global

Attempted Answered Calls RX

The number of calls received and answered, but not necessarily completed. This statistic is incremented whenever the SkAnswer softkey event is sent by the receiving side.

Global

VoIPSkinny Call Rates

1628

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Attempted Calls /s, Connected Calls /s, Received Calls /sec, Answered Calls /s, Rejected Calls /s, Calls with Authentication Required /s, Transferred Calls /s, Busy Calls /s, Redirected Calls /s

The per polling interval rates corresponding to some of the previous VoIPSkinny Calls statistics.

Global

VoIPSkinny Call Times

Call Setup Time TX Avg (ms)

The time it takes to setup a call and receive a call acceptance acknowledgement from the remote endpoint, including the postdial delay and computed as the time between the SkNewCall and the StartMediaTransmission events.

Global

Call Setup Time RX Avg (ms)

The time from receiving the request for the call until receiving the final caller acknowledgment that the call setup has been successfully completed, computed as time between the CallState TsRingIn and the StartMedia Transmission events.

Global

Talk Time (Avg )

The active conversational between the StartMe-

Global

diaTransmission message until the CloseReceiveChannel mes-

sage.

End Call Time The time between the sending the SkEndCall softkey and receiv- Global

(Avg)

ing the CallState TsOnHook message.

Total Call Dur- The total call duration comprising the call setup, talk, and end

ation (Avg)

call times.

Global

VoIpSkinny Delays

IxLoad Tcl API Programming Guide

1629

VoIP Skinny Peer

Post Dial Delay (Avg) [ms]

The per polling interval time elapsed between sending of the last dialed number digit and receiving of a CallStateMessage TsRingOut, TsCongestion, TsBusy, or TsInvalidNumber message.

Global

Media Delay TX (Avg) [ms],
Media Delay TX (Max) [ms],
Media Delay TX (Min) [ms]

The per polling interval average/min/max media delay, including both the call setup delay and the post dial delay, is delimited in time by the sending of the last dialed digit and the receiving of the first RTP packet at the call initiating endpoint.

Global

Media Delay RX (Avg) [ms],
Media Delay RX (Max) [ms],
Media Delay RX (Min) [ms]

The per polling interval average/min/max time elapsed between receiving the CallState TsRingIn message and receiving the first media packet.
The media delay includes both the call setup delay and postpickup delay.

Global

Post-Pickup Delay (Avg) [ms],
Post-Pickup Delay (Max) [ms],
Post-Pickup Delay (Min) [ms]

The per polling interval average/min/max time elapsed between sending the SoftKeyEventMessage (SoftKeyEvent = Answer) and receiving the first media packet.

Global

Dial Tone Delay (Avg) [ms]

The per polling interval time elapsed between sending the OffHook message or the NewCall softkey and receiving the StationStartToneMessage (DtDialTone).

Global

Busy Tone Delay (Avg) [ms]

The per polling interval time elapsed between sending the NewCall softkey included in the OffHook message and receiving the StationStartToneMessage (DtLineBusyTone).

Global

VoIPSkinny Registrations

1630

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Attempted Registrations
Successful Registrations

The cumulative count of attempted registrations, incremented when a phone is starting registration with the primary CCM. If the phone is already registered, the statistic is not incremented.
Note: If a problem occurs with the primary CCM, the phone tries to re-register with the second CCM and the statistic is incremented.

Global

The cumulative count of successful registrations, incremented when a registration completes, that is all the registration sequence messages have been sent and replies for them have been received from the primary CCM.

Global

Failed Registrations

The cumulative count of failed registrations, incremented whenever the CCM replies with the RegisterReject message, the timeout for the registration function expires, or in case of connection failure.

Global

Attempted DeRegistrations

The cumulative count of attempted de-registrations, incremented when a phone is starting de-registration with the primary CCM by sending the Unregister message.

Global

Successful De- The cumulative count of successful deregistrations, incremented Global Registrations when the phone receives the reply UnregisterAck message from
the primary CCM.

Failed DeRegistrations

The cumulative count of failed deregistrations, incremented when the timeout for the Skinny Unregister Client script function expires.

Global

Registration Time (Avg) [ms]

The time it takes for the registration function to complete, including the time for the establishment of the primary and secondary CCM connections, the time spent to send all the registration sequence messages and to receive the replies from the primary CCM.

Global

DeRegistration The time is takes the phone to send the Unregister message and

Time (Avg)

to wait for the reply UnregisterAck message from the primary

[ms]

CCM.

Global

VoIPSkinny Registration Rates

Attempted Registrations /s

The per polling interval attempted registration rate.

Global

IxLoad Tcl API Programming Guide

1631

VoIP Skinny Peer

Successful Registrations /s

The per polling interval successful registration rate.

Attempted DeRegistrations /s

The per polling interval attempted de-registration rate.

Successful De- The per polling interval successful de-registration rate. Registrations /s

VoIPSkinny Errors

Transport Errors

The number of Skinny transport errors, occuring when a Skinny message cannot be sent due to a socket error.

Global Global Global
Global

Trigger Errors RTP Errors

The number of trigger errors.

Global

The total number of RTP related errors, incremented when any RTP script function is failing or exiting on the Warning or Timeout outputs.

Global

Timeout Errors The number of script functions timeout errors.

Global

Internal Errors The total number of internal errors.

Global

VoIPSkinny Busy Hour Call Measurements

BHCA

The Busy Hour Call Attempts rate that represents the number of calls initiated in one hour.

Global

BHCC

The Busy Hour Call Completions rate that represents the number Global of calls initiated and connected in one hour.

VoIPSkinny Other

Payload Bytes Received, Payload Bytes Received/s

The inbound RTP payload bytes number, inbound RTP payload bytes rate.

Triggers Sent, Triggers Sent /s

The number of triggers sent, the rate of triggers sent.

Both Global

1632

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Triggers Received, Triggers Received /s

The number of triggers received, the rate of triggers received

Triggers Bytes Sent, Triggers Bytes Sent /s

The number of trigger bytes sent, the rate of trigger bytes sent.

Triggers Bytes Received, Triggers Bytes Received /s

The number of trigger bytes received, the rate of trigger bytes received.

Global Global Global

Note: Statistics from this category are not displayed in any of the pre-defined views, but can be assigned to custom statistics views.

EXAMPLE

set Activity_VoIPSkinnyPeer1 [$myNetTraffic activityList.appendItem \-

protocolAndType

"VoIPSkinny Peer" ]

set Timeline1 [::IxLoad new ixTimeline]$Timeline1 config \-rampUpValue

1 \-rampUpType

0 \-offlineTime

0 \-rampDownTime

20 \-standbyTime

0 \-iterations

1 \-rampUpInterval

1 \-sustainTime

20 \-timelineType

0 \-name

"Timeline1"

$Activity_VoIPSkinnyPeer1 config \-enable

"VoIPSkinnyPeer1" \-enableConstraint

false \-

userObjectiveValue

100 \-constraintValue

100 \-userObjectiveType

"channels" \-timeline

$Timeline1

$Activity_VoIPSkinnyPeer1 agent.config \-enable

\-name

"VoIPSkinnyPeer1"

SEE ALSO

ixConfig

1 \-name 1

IxLoad Tcl API Programming Guide

1633

VoIP Skinny Peer

1634

IxLoad Tcl API Programming Guide

VoIP Skinny Peer
Scenario Settings
VoIP Skinny Peer Scenario Settings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.scenarioSettings.config \ -option value
DESCRIPTION
Scenario Settings specifies the test scenario file that will be used by the Tcl script.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. scenarioFile The full path to the test scenario file for the activity. activeScenarioChannel Test scenario channel (0-based index) that is associated with the VoIP Skinny Peer activity. Default = 0.
EXAMPLE
$Activity_VoIPSkinnyPeer1 agent.pm.scenarioSettings.config \ -scenarioFile"E:\\ScenarioTestFiles\\Skinny.tst" \ -activeScenarioChannel0
SEE ALSO

IxLoad Tcl API Programming Guide

1635

VoIP Skinny Peer

Execution Settings
VoIP Skinny Peer Execution Settings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.executionSettings.config \ -optionvalue

DESCRIPTION
This object defines the execution settings for the VoIP Skinny Peer.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command. loopMode Defines how many loops are executed for every voice channel corresponding to this activity.

Value

Description

0 (default) Loop for the entire test duration.

1

Execute a number of loops. Specify the number of loops in loopCount.

loopCount If loopMode is 1, this option defines the number of loops that the test performs. Default="1". loopPreDelay Delay before first loop (ms). Default="0", min="0" max="3600000". loopMidDelay Delay between loops (ms). Default="0" min="0" max="3600000". aliases Number of aliases (phone numbers) per channel. Default="1", min="1" max="16000".
EXAMPLE
$Activity_VoIPSkinnyPeer1 agent.pm.executionSettings.config \

1636

IxLoad Tcl API Programming Guide

-loopMidDelay0 \ -loopCount1 \ -loopPreDelay0 \ -loopMode0 \ -aliases1
SEE ALSO

VoIP Skinny Peer

IxLoad Tcl API Programming Guide

1637

VoIP Skinny Peer

Dial Plan
VoIP Skinny Peer Dial Plan
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.dialPlan.config \ -option value

DESCRIPTION
The Dial Plan object configures the registration names, phone numbers, and source, destination, and transfer addresses for the channels/phones emulated by the VoIP Skinny Peer activity.
SUBCOMMANDS
None.
OPTIONS
The options for this command are configured and read using the standard config, cget, and getOptions subcommands defined in the ixConfig command.
Source options
useSourcePhoneBook Method used to select phone number.

Value Usage

0

Use the phone number specified by pattern.

1

Use the phone number specified by Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (useSourcePhoneBook=1). The generated Tcl script will run only on the machine it has been generated on and only if the corresponding Phonebook entry has not yet been deleted since the generation of the Tcl code.
sourcePhoneSpecified
If useSourcePhoneBook is 0, this option specifies the phone number. You can use sequence generators in this field to generate multiple phone numbers. See the sequence generator appendix. Defaultt="160[00000000-]".
sourcePhoneType
Type of source phone number:

1638

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

0 = Specifyied by sourcePhoneSpecified as digits (default). 1 = Specified by sourcePhoneBook as a file name. sourcePhoneBook
If useSourcePhoneBook is 1, this option specifies the phone book entry name. Defaultt="&lt;None&gt;". Destination options
useDestPhoneBook
Method used to select the phone number used to override destination phone number.

Value

Usage

0 (default) Specify pattern.

1

Specify Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (useDestPhoneBook=1). The generated Tcl script will run only on the machine it has been generated on and only if the corresponding Phonebook entry has not yet been deleted since the generation of the Tcl code. destPhoneSpecified
If useDestPhoneBook is 0, this option specifies the phone number. Default="170[00000000-]". destPhoneType
Type of destination phone number: 0 = Specifyied by destPhoneSpecified as digits (default). 1 = Specified by destPhoneBook as a file name. destPhoneBook
If useDestPhoneBook is 1, this option specifies the phone book file name. Default="&lt;None&gt;". symDestStr
String identifying the VoIP Skinny Peer that is the destination for traffic from this VoIP Skinny Peer. Default="None". ovrDestPhone
Enables overriding of phone number from the destination VoIP Skinny Peer.

IxLoad Tcl API Programming Guide

1639

VoIP Skinny Peer

Value

Usage

0 (default) Disabled

1

Enabled

Registration options
useSourceRegBook Method used to select registration names.

Value Usage

0

Use the phone number specified by pattern.

1

Use the phone number specified by Phonebook entry.

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (useSourcePhoneBook=1). The generated Tcl script will run only on the machine it has been generated on and only if the correspon-ding Phonebook entry has not yet been deleted since the generation of the Tcl code. sourceRegSpecified If useSourceRegBook is 0, this option specifies the phone number. Default="SEP0000000[15000-]". sourceRegType Type of registration names. 0 = Specified by sourceRegSpecified as digits (default). 1 = Specified by sourceRegBook as a file name. sourceRegBook If useSourceRegBook is 1, this option specifies the phone book file name. Default="&lt;None&gt;".
Transfer and Conference options
useTransferPhoneBook Method used to select the phone number used to override transfer and conference phone number.

Value

Usage

0 (default) Specify pattern.

1

Specify Phonebook entry.

1640

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Note: This options appears in the generated tcl code only if the test configuration contains a reference to a Phonebook entry (transferPhoneBook). The generated Tcl script will run only on the machine it has been generated on and only if the corresponding Phonebook entry has not yet been deleted since the generation of the Tcl code. transferPhoneSpecified
If useTransferPhoneBook is 0, this option specifies the phone number. Default="180[00000000-]". transferPhoneType
Type of transfer phone number type. 0 = Specified by transferPhoneSpecified as digits (default). 1 = Specified by transferPhoneBook as a file name. transferPhoneBook
If useTransferPhoneBook is 1, this option specifies the phone book file name. Defaultt="&lt;None&gt;". symTransferStr
String identifying the VoIP Skinny Peer used for transfer and conference functions. Default="None". ovrTransferPhone
Enables overriding of phone number from the transfer and conferencing VoIP Skinny Peer.

Value

Usage

0 (default) Disabled

1

Enabled

EXAMPLE

$Activity_VoIPSkinnyPeer1 agent.pm.dialPlan.config \-useSourcePhoneBook

0

\-sourcePhoneSpecified

"160\[00000000-\]" \-sourcePhoneType

0

\-sourcePhoneBook

"&lt;None&gt;" \

-useDestPhoneBook -destPhoneSpecified -destPhoneType

0\ "170\[00000000-\]" \ 0 \-destPhoneBook

"&lt;None&gt;" \

-symDestStr -ovrDestPhone -useSourceRegBook \]" \-sourceRegType \-useTransferPhoneBook \-transferPhoneType symTransferStr

"None" \ false 0 \-sourceRegSpecified
0 \-sourceRegBook 0 \-transferPhoneSpecified 0 \-transferPhoneBook "None" \-ovrTransferPhone

"SEP0000000\[15000"&lt;None&gt;"
"180\[00000000-\]" "&lt;None&gt;" \-
false \

IxLoad Tcl API Programming Guide

1641

VoIP Skinny Peer
SEE ALSO

1642

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Skinny Settings
VoIP Skinny Peer Signaling Settings

SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.signalingSettings.config \ -optionvalue

DESCRIPTION
This object defines the VoIP Skinny Peer Skinny settings.

SUBCOMMANDS
None.

OPTIONS
enableSkinny Enables use of Skinny signaling for the VoIP Skinny Peer. 0 = Skiny disabled 1 = Skinny enabled (default) skinny_enableTos Enables use of TOS/DSCP. Use the skinny_tos option to specify the TOS/DSCP value. 0 = TOS disabled (default) 1= TOS enabled skinny_tos If skinny_enableTos is 1, this option sets the value of the TOS bits.

Value

Usage

0 (default) Best Effort (0x00)

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

IxLoad Tcl API Programming Guide

1643

VoIP Skinny Peer

5

Express Forwarding (0xA0)

6

Control (0xC0)

seqRegistration

Enables Sequential Registration. 0 = Disabled (default), 1= Enabled. failDirectly

If seqRegistration = 1, this option controls the registration failure behavior enforced by the Cisco CallManager. 0 = Do not fail if previously failed (default), 1= Fail registration if previously failed. skinnyVersion

Version of Skinny protocol used. 0 = Skinny version 4 (default) 1 = Skinny version 5 ccm_number

Cisco Call Manager number. (default = 0). cmVersion

Cisco Call Manager version (default = 3.4). Note: This is a string value. secondaryKeepAlive

Interval (in seconds) at which secondary keep alive messages are sent. (default = 60). primaryKeepAlive

Interval (in seconds) at which primary keep alive messages are sent. (default = 60).

EXAMPLE

$Activity_VoIPSkinnyPeer1 agent.pm.skinnySettings.config \-seqRegistration

false \-skinnyVersion

0 \-skinnyServer

false \-_gbSeqRegistration

false \-skinny_tos

0 \-skinny_enableTos

false \-_skinnyClient1

false \-ccm_number

0 \-failDirectly

false \-cmVersion

"3.4" \-secondaryKeepAlive

60 \-primaryKeepAlive

30 \-enableSkinny

true \-_enableSkinny1

false

SEE ALSO

Call Managers

1644

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

IxLoad Tcl API Programming Guide

1645

VoIP Skinny Peer
Call Managers
List of VoIP Skinny Peer Call Managers
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.signalingSettings.appendItem \ -optionvalue
DESCRIPTION
This object contains the list of VoIP Skinny Peer Skinny Call Managers.
SUBCOMMANDS
The following subcommands are available to handle options. Except where noted, no value is returned; an exception is raised in the case of an error. In all cases where they are used the option must begin with a hyphen (-). The value must be of a type appropriate for the option.
appendItem option value option value...
The appendItem subcommand may be used to add an item to a list. Any number of options in the listed item may be set as part of the append.
configItem index option value option value...
The configItem subcommand may be used to configure a particular item in a list. Any number of options in the list item may be set. The index argument is used to indicate which item in the list is to be configured.
clear
The clear subcommand may be used to delete all listed items from a list.
deleteItem index
The deleteItem subcommand may be used to delete a listed item from a list. The index argument is used to indicate which item in the list is to be configured.
getItem index
The getItem subcommand may be used to retrieve an item from a list. The index argument is used to indicate which item in the list is to be retrieved. This subcommand returns the object from the list.
indexCount
The indexCount subcommand returns the number of objects in the list.

1646

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

OPTIONS
id Name of the Call Manager. Default="callManager". cmPort Call Manager port number. Default="2000" cmAddress Call Manager IP address. Default="127.0.0.1"

EXAMPLE

$Activity_VoIPSkinnyPeer1 \ agent.pm.skinnySettings.callManagers.appendItem-id

"callManager" \-cmPort

"2000" \-cmAddress "127.0.0.1"

SEE ALSO

Skinny Settings

IxLoad Tcl API Programming Guide

1647

VoIP Skinny Peer
Codec Settings
VoIP Skinny Peer Codec Settings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.codecSettings.codecs.appendItem \ -optionvalue $Activity_VoIPSkinnyPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -optionvalue
DESCRIPTION
Codec Settings contains the list of codecs that will be used by the VoIP Skinny Peers in the test. Codec Settings is a list of one or more codec (audio codec) or dataCodec objects. To add codec or dataCodec objects, use the appendItem command. To clear the codec settings, use the clear subcommand.
SUBCOMMANDS
clear Clears the list of codec settings. For example: $Activity_VoIPSkinnyPeer1 agent.pm.codecSettings.codecs.clear
OPTIONS
None.
EXAMPLE
See the examples for Data Codecs and Codecs.
SEE ALSO
Data Codecs Codecs

1648

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Data Codecs
VoIP Skinny Peer Data Codecs
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -optionvalue

DESCRIPTION
Data Codecs configures a data codec object, which is added to the Codec Settings list of codecs.
SUBCOMMANDS
None.
OPTIONS
id Codec type. One of the following:

Codec

Description

Rtp2833Events Named Events Payload format used for carrying DTMF digits and other line and trunk signals as events.

Rtp2833Tones RTP Payload format that can represent tones consisting of one or more frequencies.

dPayloadType Payload type used for RTP data packets. Default=(see table) min="96" max="127"

Codec

Default value for dPayloadType

Rtp2833Events 100

Rtp2833Tones 101

EXAMPLE
$Activity_VoIPSkinnyPeer1 \ agent.pm.codecSettings.dataCodecs.clear
$Activity_VoIPSkinnyPeer1 \ agent.pm.codecSettings.dataCodecs.appendItem \ -id"Rtp2833Events" \

IxLoad Tcl API Programming Guide

1649

VoIP Skinny Peer
-dPayloadType100 $Activity_VoIPSkinnyPeer1 \ agent.pm.codecSettings.dataCodecs.appendItem \ -id"Rtp2833Tones" \ -dPayloadType101
SEE ALSO
Codec Settings

1650

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Codecs
VoIP Skinny Peer Audio Codec
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.codecSettings.codecs.appendItem \ -optionvalue

DESCRIPTION
Codecs configures an audio codec object, which is added to the Codec Settings list of codecs. To add a codec object, use the appendItem command.
SUBCOMMANDS
None.
OPTIONS
id Codec type. One of the following:

Codec

Description

CodecAMR

Adaptive multi-rate codec

CodecG711u

G.711 mu-law codec

CodecG711a

G.711 A-law codec

CodecG723x153 G.723.1 codec @ 5.3 kbps

CodecG723x163 G.723.1 codec @ 6.3 kbps

CodecG726x16 G.726 codec @ 16 Kbps

CodecG726x24 G.726 codec @ 24 Kbps

CodecG726x32 G.726 codec @ 32 Kbps

CodecG729A

G.729 Annex-A codec

Options for CodecAMR
dPayloadIn Incoming dynamic payload type. Default="98" min="0" max="127". dPayloadOut

IxLoad Tcl API Programming Guide

1651

VoIP Skinny Peer

Outgoing dynamic payload type. Default="98" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 14. Default=14. payloadFormat Payload format.

Value

Usage

0 (default) Bandwidth-efficient format

1

Octet-aligned format

mode Codec bit rate. One of the following:

Mode

Description

0 (default) 4.75 kbps

1

5.15 kbps

2

5.90 kbps

3

6.70 kbps

4

7.40 kbps

5

7.95 kbps

6

10.20 kbps

7

12.20 kbps

Options for CodecG711u
dPayloadIn Incoming dynamic payload type. Default="0" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="0" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.

1652

IxLoad Tcl API Programming Guide

VoIP Skinny Peer
Options for CodecG711a
dPayloadIn Incoming dynamic payload type. Default="8" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="8" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG723x153
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 20. Default=20.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.

IxLoad Tcl API Programming Guide

1653

VoIP Skinny Peer

Options for CodecG726x16
dPayloadIn Incoming dynamic payload type. Default="102" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="102" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 20, 40, 60. Default=20.
Options for CodecG726x24
dPayloadIn Incoming dynamic payload type. Default="103" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="103" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 30, 60, 90. Default=30.
Options for CodecG726x32
dPayloadIn Incoming dynamic payload type. Default="104" min="0" max="127".

1654

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

dPayloadOut Outgoing dynamic payload type. Default="104" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 40, 80, 120. Default=40.
Options for CodecG729
dPayloadIn Incoming dynamic payload type. Default="18" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="18" min="0" max="127". cbxFrameSize Bytes per frame. Must be one of the following: 10, 20, 30, 40, 50, Custom. Default=10. customFrameSize If cbxFrameSize is Custom, this option configures the custom frame size. Default="120" min="10" max="200".
EXAMPLE
$Activity_VoIPSkinnyPeer1 agent.pm.codecSettings.codecs.clear

$Activity_VoIPSkinnyPeer1 \ agent.pm.codecSettings.codecs.appendItem \ -id"CodecG711u" \ -dPayloadOut0 \ -dPayloadIn0 \ -frameSize160

$Activity_VoIPSkinnyPeer1 \ agent.pm.codecSettings.codecs.appendItem \ -id"CodecG711a" \

IxLoad Tcl API Programming Guide

1655

VoIP Skinny Peer
-dPayloadOut8 \ -dPayloadIn8 \ -frameSize160
SEE ALSO
Codec Settings

1656

IxLoad Tcl API Programming Guide

RTP Settings
VoIPSkinny Peer RTP Settings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.rtpSettings.config \ -optionvalue
DESCRIPTION
RTP Settings configures the VoIPSIPPeer RTP transport settings.
SUBCOMMANDS
None.
OPTIONS
enableRTP Enables use of RTP to transport the media traffic. 0 = disabled (default) 1 = enabled rtpPort RTP port number. Default="10000". Note: Valid port numbers are between 1000 and 65534. enableRTCP Enables the sending and receiving of RTCP packets. chEnableHwAcc If true, enables hardware acceleration for RTP traffic. Default=false. enableAdvStatCalc Enables the computation of advanced RTP statistics. enablePerStream Enables computation of per-stream statistics. enableMDI Enables the Media Delay Index. enableNBExec

VoIP Skinny Peer

IxLoad Tcl API Programming Guide

1657

VoIP Skinny Peer

If true, all RTP functions from a scenario execute in a non-blocking mode, i.e the current function from a channel executes in the background, allowing the execution to continue on that channel with the next script function. Default= False.

EXAMPLE

$Activity_VoIPSkinnyPeer1 agent.pm.rtpSettings.config \-enableRTP

true \-enableRTCP

false \-enableMDI

false \-chEnableHwAcc

true \-chDisableHwAcc

false \-enableAdvStatCalc

false \-enablePerStream

false \-rtpPort

"\[10000-65535,4\]" \-enableNBExec

false

SEE ALSO

1658

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Audio Settings
VoIPSkinny Peer audio settings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.audioSettings.config
DESCRIPTION
The Audio Settings configure the VoIPSkinny Peer audio RTP settings.
SUBCOMMANDS
None.
OPTIONS
enableAudio If selected, audio script functions are executed, otherwise they are skipped. audioClip The played audio clip file. playTypeAudio The mode in which the clip is played.

Value

Usage

0

The clip is played for clip duration or for the duration of the Talk Time parameter in the

(default) case of BHCA/CPS/LPS objectives.

1

The clip is played for a user-defined duration.

audioDurationUnit The play duration unit, which can be milliseconds (0), seconds (1), minutes (2), or hours (3). outputLevel The output level of the played clip. enableTosRtp Enables use of TOS/DSCP. Use the rtpTos option to specify the TOS/DSCP value. Default= False rtpTosVal The Type of Service (TOS/DSCP) byte setting in the sent RTP packets has one of the following values:

IxLoad Tcl API Programming Guide

1659

VoIP Skinny Peer
l Best Effort (0x00): Routine service l Class 1 (0x20): Priority service, Assured Forwarding class 1 l Class 2 (0x40): Immediate service, Assured Forwarding class 2 l Class 3 (0x60): Flash, Assured Forwarding class 3 l Class 4 (0x80): Flash-override, Assured Forwarding class 4 l Express Forwarding (0xA0): Critical-ecp l Control (0xC0): Internet-control l Custom: A user-specified value. useMOS Enables the computation of MOS scores. Default= False. enableAudioOWD If true, IxLoad computes the One-way Delay metric, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default= False useJitter If true, enables use of a jitter buffer. Default= False. jitMs If useJitter is 1, this option configures the size of the jitter buffer, in milliseconds. Default="20" minn="1" max="3000". useJitComp If true, enables dynamic modification of the jitter buffer size. Default= False. jitCMs If useJitComp is 1, this option configures the maximum size in of the jitter buffer, in milliseconds. Default="1000" min="0" max="3000". jitCMaxDrop If useJitComp is 1, this option configures the condition - a maximum number of consecutive packets dropped - that determines the jitter buffer size to be increased. enableQoV If true, this enables QoV P.862 PESQ and P.56 QoV computation. Default= False. channelTypeQoV When enableQoV is true, this specifies the objective type as either of the following: l Number of channels (0) l Percentage (1)

1660

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

valueQoV
When enableQoV is true, this specifies the number of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 0). Alternatively this represents the percentage of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 1).
unitsQoV
The channels selection mode, which can be any of the following:
l First channels (0) l Last channels (1) l Evenly-spaced channels (2) l Random (3)
metricsQoV
When enableQoV is true, this specifies the metric that is calculated by the Zion card. Available options are:
l PESQ and P.56 (0) l PESQ (1) l P56 (2)
useSilence
If true, RTP packets containing artificial background noise are sent when no other media (DTMF, MF, real payload, and so on) is sent over the communication channel. Default= False.
silenceMode
If useSilence is 1, this option configures the silence mode.

Value

Usage

0

Null data encoded

1 (default) Comfort noise.

EXAMPLE

$Activity_VoIPSkinnyPeer1 agent.pm.audioSettings.config \-enableAudio

true \-audioClip

"US_042.wav" \-playTypeAudio

0 \-audioDurationUnit

1 \-audioDuration

10 \-outputLevel

-20-enableAudioOWD

false \-enableTosRtp

false \-rtpTosVal

32 \-useMos

false \-useJitter

false \-jitMs

20 \-useJitComp

false \-jitCMs

1000 \-jitCMaxDrop

7 \-enableQoV

false \-channelTypeQoV

IxLoad Tcl API Programming Guide

1661

VoIP Skinny Peer
0 \-valueQoV 0 \-metricsQoV false \-silenceMode
SEE ALSO

100 \-unitsQoV 0 \-useSilence
1\

1662

IxLoad Tcl API Programming Guide

VoIP Skinny Peer
Other Settings
VoIPSkinny Peer Other Settings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.otherSettings.config \ -optionvalue
DESCRIPTION
This object configures the VoIP Skinny Peer activity's miscellaneous options.
SUBCOMMANDS
None.
OPTIONS
VOIP_Var0 The VOIP_Var1...VOIP_Var5 and VOIP_IPAddr1...VOIP_IPAddr5 string-type variables supporting generator expressions enable you to generate 10 series of global variables whose values are used at runtime by the simulated Skinny phones/channels. Default="". Use the VOIP_Var1...VOIP_Var5 variables to represent phone numbers, and the VOIP_IPAddr1...VOIP_ IPAddr5 to represent IP addresses. VOIP_Var1 See VOIP_Var0. VOIP_Var2 See VOIP_Var0. VOIP_Var3 See VOIP_Var0. VOIP_Var4 See VOIP_Var0. VOIP_IPAddress0 See VOIP_Var0. VOIP_IPAddress1 See VOIP_Var0. VOIP_IPAddress2

IxLoad Tcl API Programming Guide

1663

VoIP Skinny Peer

See VOIP_Var0. VOIP_IPAddress3 See VOIP_Var0. VOIP_IPAddress4 See VOIP_Var0. ipPreference Type of addressing to be used on the subnet that the VOIP Skinny Peer runs on.

Value

Usage

0 (default) IPv4

1

IPv6

EXAMPLE

$Activity_VoIPSkinnyPeer1 agent.pm.otherSettings.config \-ipPreference

0 \-VOIP_Var1

"" \-VOIP_Var0

"" \-VOIP_Var3

"" \-VOIP_Var2

"" \-VOIP_Var4

"" \-VOIP_IPAddress4

"" \-VOIP_IPAddress1

"" \-VOIP_IPAddress0

"" \-VOIP_IPAddress3

"" \-VOIP_IPAddress2

""

SEE ALSO

1664

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Custom Activity Link Settings
VoIP Skinny Peer CustomActivityLinkSettings
SYNOPSIS
$Activity_VoIPSkinnyPeer1 agent.pm.customActivityLinkSettings.config \ -option value

DESCRIPTION
CustomActivityLinkSettings configures the settings for the BHCA objective for VoIPSkinny Peer activities. This options in this object correspond to the controls on the Custom Parameters tab for a NetTraffic/ActivityLink in the Timeline and Objective branch of the Test Configuration tree in the IxLoad GUI. Note: The CustomActivityLinkSettings class has to be configured alonside the CustomParameters class that implements the same functionality.
SUBCOMMANDS
None.
OPTIONS
talkTime
If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000". interCallDuration
Inter-call duration. Default="4000". bhcaType
Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

channelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100". callSetupTime

IxLoad Tcl API Programming Guide

1665

VoIP Skinny Peer
Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500". bhcaObjectiveValue BHCA objective value. Default="80000".
EXAMPLE
$Activity_VoIPSkinnyPeer1 \ agent.pm.customActivityLinkSettings.config\ -talkTime40000 \ -channelsNo100 \ -bhcaType0 \ -callTeardownTime500 \ -interCallDuration4000 \ -bhcaObjectiveValue80000 \ -callSetupTime500
SEE ALSO

1666

IxLoad Tcl API Programming Guide

VoIP Skinny Peer

Custom Parameters
VoIPSkinny Peer CustomParameters
SYNOPSIS
$Activity_VoIPSkinnyPeer1 customParameters.config \ -option value

DESCRIPTION
CustomParameters configures the settings for the BHCA objective for VoIPSkinny Peer activities. This options in this object correspond to the controls on the Custom Parameters tab for a NetTraffic/ActivityLink in the Timeline and Objective branch of the Test Configuration tree in the GUI. Note: The CustomParameters class has to be configured alonside the CustomActivityLinkSettings class that implements the same functionality.
SUBCOMMANDS
None.
OPTIONS
talkTime
If bhcaType is 0, this option specifies the Talk Time that will be used to attain the BHCA test objective. Default="40000". interCallDuration
Inter-call duration. Default="4000". bhcaType
Determines how the BHCA objective will be met: by specifying the talk time or the number of channels.

Value

Usage

0

BHCA will be met by specifying the talk time. Specify the talk time in talkTime.

(default)

1

BHCA will be met by specifying the number of channels. Specify the number of chan-

nels in channelsNo.

channelsNo
If bhcaType is 1, this option specifies the number of channels that will be used to attain the BHCA test objective. Default="100". callSetupTime

IxLoad Tcl API Programming Guide

1667

VoIP Skinny Peer
Estimated call setup time. Default="500". callTeardownTime Estimated call teardown time. Default="500". bhcaObjectiveValue BHCA objective value. Default="80000".
EXAMPLE
$Activity_VoIPSkinnyPeer1 customParameters.config\ -talkTime40000 \ -channelsNo100 \ -bhcaType0 \ -callTeardownTime500 \ -interCallDuration4000 \ -bhcaObjectiveValue80000 \ -callSetupTime500
SEE ALSO
! 42

1668

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer
The IxLoad VoIP No Call Control Peer Tcl API consists of a VoIP No Call Control Peer agent, with separate APIs for configuring each major aspect of the agent's functionality.
Limitations
The following restrictions and limitations of the VoIP No Call Control Peer API exist: l The PhoneBook and other related classes, such as PhoneBookEntry, cannot be edited from the Tcl API. l Individual VoIP No Call Control script functions cannot be added and edited from the Tcl API. Instead, you must add and configure the commands in the Scenario Editor, save the test scenario file, then pass it as an argument to the Scenario Settings API class.

IxLoad Tcl API Programming Guide

1669

VoIP No Call Control Peer
VoIP No Call Control Peer API Commands
The IxLoad VoIP No Call Control Peer API commands are organized as shown in the figure below.

1670

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

VoIP No Call Control Peer API Objects
The table below summarizes the objects in the VoIP No Call Control Peer API.

Object

Description

VoIP No Call Con- Top-level object defining the VoIP No Call Control Peer activity. trol Peer Agent

Execution Settings

Run-time test configuration; corresponds to the Execution Settings GUI tab.

Scenario Settings

Selects the Test Scenario file; corresponds to the Scenario Settings GUI tab.

Dial Plan

Configures the source, destination, and transfer addresses and phone numbers for the channels/endpoints; corresponds to the Dial Plan GUI tab.

Codec Settings Contains a list of Data Codecs and Codecs objects.

Data Codecs

Data codec with parameters.

Codecs

Audio codec with parameters.

RTP Settings

RTP transport configuration; corresponds to the RTP Settings GUI tab.

Audio Settings Audio settings; corresponds to the Audio GUI tab.

Video Settings Video settings; corresponds to the Video GUI tab.

T.38 Settings

T.38 IP fax settings; corresponds to the T.38 GUI tab.

T.30 Settings

T.30 settings; corresponds to the T.30 GUI tab.

SRTP Settings

SRTP configuration corresponding to the SRTP Settings GUI tab.

Other Settings

VoIP No Call Control Peer miscellaneous parameters; corresponds to the Other Settings tab in GUI.

IxLoad Tcl API Programming Guide

1671

VoIP No Call Control Peer

VoIP No Call Control Peer Agent

VoIP No Call Control Peer Agent

SYNOPSIS

set Activity_VoIPNoCCPeer1 [$Traffic_Network1 activityList.appendItem \-

protocolAndType

"VoIPNoCC Peer" ]

DESCRIPTION

A VoIP No Call Control Peer agent is added to the agentList option of the ixConfig object using the

appendItem subcommand from the ixConfigSequenceContainer command. Other ixCon-

figSequenceContainer subcommands may be used to modify the agentList. See the following

example:

set Activity_VoIPNoCCPeer1 [$Traffic_Network1 activityList.appendItem \-

protocolAndType

"VoIPNoCC Peer" ]

$Activity_VoIPNoCCPeer1 config \-enable "VoIPNoCCPeer1" \-enableConstraint 1 \-constraintValue "channels" \-timeline

true \-name false \-userObjectiveValue 100 \-userObjectiveType $Timeline1

$Activity_VoIPNoCCPeer1 agent.config \-cmdListLoops \

true

Each member of the list, however may be separately addressed and modified using the ixConfig subcommands. For example, the first agent uses an index of 0 and its name may be modified by:

$Activity_VoIPNoCCPeer1 agent(0).config -name "VoIPNoCC Peer new"

SUBCOMMANDS
None.

OPTIONS
enable Enables the use of this agent. (Default = true). name The name associated with this object, which must be set at object creation time. timeline The timeline configured for the test.

1672

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

STATISTICS
The statistics published by this agent are listed in VoIP No Call Control Statistics.
EXAMPLE set my_network1 [::IxLoad new ixNetTraffic]

#################################################### Activity VoIPNoCCPeer1 of NetTraffic my_network1###################################################set Activity_VoIPNoCCPeer1 [$my_network1 activityList.appendItem \-protocolAndType "VoIPNoCC Peer" ]###################################################### Timeline1 for activitiy VoIPNoCCPeer1#####################################################set Timeline1 [::IxLoad new ixTimeline]

$Timeline1 config \-rampUpValue 0 \-offlineTime 60 \-standbyTime 1 \-rampUpInterval 80 \-timelineType "Timeline1"

1 \-rampUpType 0 \-rampDownTime
0 \-iterations 1 \-sustainTime
0 \-name

$Activity_VoIPNoCCPeer1 config \-enable "VoIPNoCCPeer1" \-enableConstraint 1 \-constraintValue "channels" \-timeline

true \-name false \-userObjectiveValue 100 \-userObjectiveType $Timeline1

SEE ALSO
ixConfig

IxLoad Tcl API Programming Guide

1673

VoIP No Call Control Peer

NoCallControl VOIP Statistics
The following No Call Control statistics are computed:

Statistic

Description

Advanced Per Channel/Global

Channels

Successful Channels

The instantaneous number of COMPLETED channels. A channel is COMPLETED if all the channel loops were COMPLETED.

Warning Channels

The instantaneous number of WARNING channels. A

-

channel is WARNING if all the channel loops were

COMPLETED or WARNING and at least one loop had a

WARNING result.

Failed Channels

The instantaneous number of FAILED channels. A chan- nel is FAILED if all the channel loops were COMPLETED or WARNING, and at least one loop was FAILED.

Aborted Chan- The instantaneous number of ABORTED channels. A

-

nels

channel is ABORTED if all the channel loops were

COMPLETED, WARNING, FAILED, or ABORTED and at

least one loop was ABORTED.

Active Chan- The instantaneous number of active channels. Active -

nels

channels are the channels executing a scenario chan-

nel functions flow.

Total Channels

The instantaneous total number of channels, a sum of active and non-active channels.

Loops

Successful Channel Loops

The cumulative count of COMPLETED channel loops. A channel loop is COMPLETED if all executed script functions in the corresponding scenario channel produced SKIPPED or COMPLETED results.

Warning Channel Loops

The cumulative count of WARNING channel loops. A

-

channel loop has a WARNING result if all executed

script functions in the corresponding scenario channel

produced SKIPPED, COMPLETED, or WARNING results

and at least one script function had a WARNING result.

Global Global Global Global Global Global Global Global

1674

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Failed Channel Loops

The cumulative count of FAILED channel loops. A chan- nel loop is FAILED if all executed script functions in the corresponding scenario channel produced SKIPPED, COMPLETED, WARNING, or FAILED results and at least one script function had a FAILED result.

Aborted Chan- The cumulative count of ABORTED channel loops. A

-

nel Loops

channel loop is FAILED if all the executed script func-

tions in the corresponding scenario channel produced

SKIPPED, COMPLETED, WARNING, FAILED, or

ABORTED results and at least one script function had

an ABORTED result.

Total Chan- The cumulative count of executed loops.

-

nel Loops

Interloop Dur- The average time gap between loops.

-

ation (Avg)

[ms]

Bytes

Bytes Sent The total number (cumulative) of bytes sent in RTP

-

packets, including the RTP header and the RTP pay-

load.

Bytes Received

The total number (cumulative) of bytes received in

-

RTP packets, including the RTP header and the RTP

payload.

Errors

Transport Errors

The cumulative count of transport errors, occurring

-

when a SIP message could not be sent due to a socket

error or a failed DNS server query.

Trigger Errors The cumulative count of trigger errors.

-

Global Global
Global Global Both Both Global Global

IxLoad Tcl API Programming Guide

1675

VoIP No Call Control Peer

RTP Errors

The cumulative count of RTP related errors, incre-

-

mented when any RTP script function is failing or exiting on the Warning or Timeout outputs. Possible

causes include media sessions that have been closed by the signaling engine, or Generate

DTMF/MF/Tone or Detect DTMF/MF/Tone func-

tions that failed.

This statistic is also incremented when the signaling engine cannot start a media session, such as when the

negotiated codec or the negotiated ptime is unsupported.

Internal

The cumulative count of internal errors.

-

Errors

Timeout

The cumulative count of script functions that have

-

Errors

timed out.

RTP MOS

MOS Instant The per polling interval MOS score.

No

(Avg)

MOS Instant The per polling interval lowest MOS score.

No

Worst

MOS Instant The per polling interval highest MOS score.

No

Best

MOS

The average MOS score for the elapsed test duration. No

MOS Worst The lowest MOS score for the elapsed test duration.

No

MOS Best

The highest MOS score for the elapsed test duration. No

MOS Per Call The average MOS score per call.

No

(Avg)

MOS Per Call The lowest MOS score per call.

No

Worst

MOS Per Call The highest MOS score per call.

No

Best

RTP MOS per Call Distribution

Global
Global Global
Global Global Global Both Both Both Global Global Global

1676

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Excellent - The percentage of calls with MOS score values

No

calls with

between 4 and 5

MOS

between 4

and 4.5

Good - calls The percentage of calls with MOS score values

No

with MOS

between 3.5 and 4

between 3.5

and 4

Fair - calls

The percentage of calls with MOS score values

No

with MOS

between 3 and 3.5

between 3

and 3.5

Poor - calls The percentage of calls with MOS score values

No

with MOS

between 2 and 3

between 2

and 3

Bad - calls

The percentage of calls with MOS score values

No

with MOS

between 1 and 2

between 1

and 2

RTP MOS Instant

Calls with

The instantaneous number of calls with MOS scores

No

excellent

between 4 and 4.5

MOS (4 -

4.5)

Calls with

The instantaneous number of calls with MOS scores

No

good MOS

between 3.5 and 4

(3.5 - 4)

Calls with fair The instantaneous number of calls with MOS scores

No

MOS (3 -

between 3 and 3.5

3.5)

Calls with

The instantaneous number of calls with MOS scores

No

poor MOS (2 between 2 and 3

- 3)

Global Global Global Global Global
Global Global Global Global

IxLoad Tcl API Programming Guide

1677

VoIP No Call Control Peer

Calls with

The instantaneous number of calls with MOS scores

No

bad MOS (1 - between 1 and 2

2)

Intervals

The number of intervals with MOS scores between 4

No

with excel- and 4.5

lent MOS (4 - Note: For the purpose of MOS computation, calls are

4.5)

sequenced into intervals with a duration of 4 seconds.

Intervals with good MOS (3.5 4)

The number of intervals with MOS scores between 3.5 No and 4
Note: For the purpose of MOS computation, calls are sequenced into intervals with a duration of 4 seconds.

Intervals

The number of intervals with MOS scores between 3

No

with fair MOS and 3.5

(3 - 3.5)

Note: For the purpose of MOS computation, calls are

sequenced into intervals with a duration of 4 seconds.

Intervals with poor MOS (2 - 3)

The number of intervals with MOS scores between 2

No

and 3

Note: For the purpose of MOS computation, calls are

sequenced into intervals with a duration of 4 seconds.

Intervals with bad MOS (1 - 2)

The number of intervals with MOS scores between 1

No

and 2

Note: For the purpose of MOS computation, calls are

sequenced into intervals with a duration of 4 seconds.

RTP Jitter and Delay

Interarrival The per polling interval interarrival jitter value over

Yes

Jitter Aver- RTP streams, in microseconds (as defined in RFC

age (µs)

3550).

Interarrival The maximum Interarrival Jitter Average (ms) value Yes

Jitter Max

among RTP streams for the elapsed test duration, in

(µs)

microseconds (as defined in RFC 3550).

Delay Vari- The per polling interval delay variation jitter value cal- Yes ation Jitter culated for all packets, in microseconds (as defined in Average (µs) RFC 3550).

Global Global Global Global Global Global
Both Global Both

1678

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Delay Variation Jitter Max (µs) One Way Delay Average (µs)
One Way Delay Max (µs) RTP QoS

The maximum value of the Delay Variation Jitter Aver- Yes age (ms) value for the elapsed test duration, in microseconds (as defined in RFC 3550).

The per polling interval time spent by the packet on

No

the network from the moment it is sent until it is

received.

Note: Depending on whether RTCP support is selected or not, the OWD computation method is different:

l With RTCP support selected, the OWD value is computed at different time intervals, using RTCP information

l Without RTCP support selected, the OWD value is computed for every RTP packet sent, using an RTP header extension.

The maximum One Way Delay Average (ms) value for No the elapsed test duration.

Bytes Sent The total number (cumulative) of bytes sent in RTP

No

packets, including the RTP header and the RTP pay-

load.

Packets Sent The total number (cumulative) of sent RTP packets.

No

Bytes Received

The total number (cumulative) of bytes received in

No

RTP packets, including the RTP header and the RTP

payload.

Packets Received

The total number (cumulative) of received RTP pack- No ets.

Bytes Sent/s The rate of sent RTP bytes, including the RTP header No and the RTP payload.

Bytes

The rate of received RTP bytes, including the RTP

No

Received /s header and the RTP payload.

Throughput The inbound bandwidth, taking into account the RTP

No

inbound

header and payload.

Global Both
Global
Both Both Both Both Both Both Both

IxLoad Tcl API Programming Guide

1679

VoIP No Call Control Peer

Throughput outbound

The outbound bandwidth, taking into account the RTP No header and payload.

Tx Packets The total number of RTP packets dropped at trans-

No

Dropped

mission.

Lost Packets

The total number (cumulative) of lost RTP packets,

No

defined as the difference between the number of pack-

ets expected at the receiving side and the actual num-

ber of packets received.

Maximum

The maximum number of consecutive RTP packets

No

Consecutive lost.

Lost Packets

Bytes Lost

The percentage of lost bytes.

No

Percentage

[%]

Packet Errors The total number (cumulative) of packets received

No

Received

with RTP header errors.

Packet Size Mismatched

The total number (cumulative) of RTP packet size mis- Yes matches (packets that have other size than expected).

Packet Codec The total number of RTP codec mismatches (packets Yes Mismatched that have other payload type than expected).

Duplicate Packets Received

The total number (cumulative) of successive RTP pack- No ets received with the same sequence number.

Late Packets The total number (cumulative) of RTP packets

No

Received

received with a delay greater than the GUI-defined jit-

ter buffer size (expressed in milliseconds).

Misordered Packets Received

The total number (cumulative) of RTP packets with the No sequence number smaller than the previous valid sequence number.

RTP Packet Errors

Packet Loss Correlation

A counter defining the "burstiness" of the packet loss, Yes computed as the number of lost packets divided by the number of loss sequences.

Both Global Both
Both Both Both Both Both Both Both Both
Both

1680

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Packet Loss The percentage of RTP packets received with errors.

Yes

Percentage

[%]

Packet

The percentage of misordered packets.

Yes

Misorder Per-

centage [%]

Packet Errors The percentage of RTP packets received with errors.

Yes

Percentage

[%]

Packet

The percentage of RTP duplicate packets.

Yes

Duplicate Per-

centage [%]

RTP Jitter Distribution

RTP Packets With Delay Variation Jitter Up To 1ms

The number of packets received with delay variation jit- No ter up to 1 millisecond (ms).

RTP Packets With Delay Variation Jitter Up To 3ms

The number of packets received with delay variation jit- No ter up to 3 milliseconds (ms).

RTP Packets With Delay Variation Jitter Up To 5ms

The number of packets received with delay variation jit- No ter up to 5 milliseconds (ms).

RTP Packets With Delay Variation Jitter Up To 10ms

The number of packets received with delay variation jit- No ter up to 10 milliseconds (ms).

Both Both Both Both Both Both Both Both

IxLoad Tcl API Programming Guide

1681

VoIP No Call Control Peer

RTP Packets With Delay Variation Jitter Up To 20ms

The number of packets received with delay variation jit- No ter up to 20 milliseconds (ms).

RTP Packets With Delay Variation Jitter Up To 40ms

The number of packets received with delay variation jit- No ter up to 40 milliseconds (ms).

RTP Packets The number of packets received on the stream with

No

With Delay delay variation jitter over 40 milliseconds (ms).

Variation Jit-

ter More

Than 40ms

RTP DTMF, MF and Tone

DTMF Digits Sent

The total number of DTMF digits sent by the Generate No DTMF and the Path Confirmation (using DTMFs) script function.

DTMF Sequences Sent

The total number of DTMF digits sequences sent by the No Generate DTMF and the Path Confirmation (using DTMFs) script function.

DTMFs Detec- The total number of DTMF digits detected.

No

ted

DTMFs Matched

The total number of received DTMF sequences that

No

matched the sequence specified in the Detect DTMF

or the Path Confirmation script function.

DTMFs Not Matched

The total number of received DTMF sequences that did No not match the sequence specified in the Detect DTMF or the Path Confirmation script function.

Good DTMF The total number of DTMF sequences detected and

No

Sequences matched by the Path Confirmation script function.

Detected

Bad DTMF Sequences Detected

The total number of path confirmation DTMF sequences No detected, but not matched, by the Path Confirmation script function.

Both
Both
Both
Both Both Both Both Both Both Both

1682

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

DTMF Detec- The total number of DTMF detection attempts that

No

tion Timeout ended because of a timeout condition.

MF Digits Sent

The total number of MF digits sent by the Generate

No

MF or the Path Confirmation (using MFs) script func-

tion.

MF Sequences Sent

The total number of MF sequences sent by Generate No MF or the Path Confirmation (using MFs) script function.

MFs Detected The total number of MF digits detected.

No

MFs Matched The total number of received MF sequences that

No

matched the sequence specified in the Detect MF or

the Path Confirmation script function.

MFs Not Matched

The total number of received MF sequences that did

No

not match the sequence specified in the Detect MF or

the Path Confirmation script function.

Good MF

The total number of path confirmation MF sequences

No

Sequences detected and matched by the Path Confirmation

Detected

script function.

Bad MF

The total number of path confirmation MF sequences

No

Sequences detected, but not matched, by the Path Con-

Detected

firmation script function.

MF Detection The total number of MF detection attempts that ended No

Timeout

because of a timeout condition.

Custom

The total number of custom tones sent by the Gen-

No

Tones Sent erate Tone or the Path Confirmation (using cus-

tom tones) script function.

Custom Tone The total number of sent custom tone sequences by

No

Sequences the Generate Tone or the Path Confirmation

Sent

(using custom tones) script function.

Custom

The total number of detected custom tones.

No

Tones Detec-

ted

Both Both Both Both Both Both Both Both Both Both Both Both

IxLoad Tcl API Programming Guide

1683

VoIP No Call Control Peer

Custom

The total number of matched custom tones.

No

Tones

Matched

Custom

The total number of not matched custom tones

No

Tones Not

Matched

Custom Tone Detection Timeout

The total number of custom tone detection attempts

No

that ended because of a timeout condition.

This statistic is also incremented when the syn-

chronization tone timeout of the Path Confirmation

function expires. Path Confirmation functions use such a tone for the purpose of synchronizing functions on dif-

ferent channels.

RTP R-Factor & MOS Degradation

R-Factor

The per polling interval value for the capability of the Yes

Instant (Avg) RTP channel to support audio transmissions.

R-Factor

The per polling interval lowest R-Factor Instant (Avg) Yes

Instant Worst value.

R-Factor

The per polling interval highest R-Factor Instant (Avg) Yes

Instant Best value.

MOS Instant The per polling interval MOS score.

No

(Avg)

MOS Instant The per polling interval lowest MOS Instant (Avg)

No

Worst

score.

MOS Instant The per polling interval highest MOS Instant (Avg)

No

Best

score.

Loss Degrad- The per polling interval quality degradation that can

Yes

ation

be attributed to network packet loss.

Jitter Degrad- The per polling interval quality degradation due to the Yes

ation

packet discards in conditions of jitter buffer overflow or

downflow.

Delay

The per polling interval quality degradation that can

Yes

Degradation be attributed to delay.

Both Both Both
Both Both Both Both Both Both Both Both Both

1684

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Codec

The per polling interval quality degradation that can

Yes

Degradation be attributed to audio encoder/decoder selection.

RTP Consecutive Lost Datagrams Distribution

Consecutive The per test total number of consecutive one lost RTP Yes Lost of One packet sequences. Packet Sequences

Consecutive The per test total number of consecutive two or three Yes Lost of Two lost RTP packets sequences. or Three Packets Sequences

Consecutive The per test total number of consecutive four or five

Yes

Lost of Four lost RTP packets sequences.

or Five Pack-

ets

Sequences

Consecutive The per test total number of consecutive six to ten lost Yes Lost of Six to RTP packets sequences. Ten Packets Sequences

Consecutive The per test total number of consecutive more than ten Yes

Lost of

lost RTP packets sequences.

Eleven or

More Packets

Sequences

RTP Playbacks & Records

Successful Records

The total number (cumulative statistic) of successful No RTP records, incremented when the last RTP packet of an encoded wave file was received.
This statistic is incremented only when the Talk or VoiceSession script functions are present in the scenario.

Both Both Both Both Both Both
Global

IxLoad Tcl API Programming Guide

1685

VoIP No Call Control Peer

Successful Playbacks

The total number (cumulative statistic) of successful No RTP playbacks, incremented when the last RTP packet of an encoded wave file was transmitted.
This statistic is incremented only when the Talk or VoiceSession script functions are present in the scenario.

Failed Records

The total number (cumulative statistic) of failed RTP

No

records, incremented when the Talk or VoiceSession

functions fail due to either of the following reasons:

l The signaling engine has not negotiated a corresponding media session that has Rx or RxTx capabilities.

l The RTP function is disconnected due to the signaling engine closing the media session.

Failed Play- The total number (cumulative statistic) of failed RTP

No

backs

playbacks, incremented when the Talk or VoiceSes-

sion functions fail due to either of the following reas-

ons:

l The signaling engine has not negotiated a corresponding media session that has Tx or TxRx capabilities.

l The RTP function is disconnected due to the signaling engine closing the media session.

Functions Dis- The total number (cumulative statistic) of failed RTP

No

connected

playbacks, incremented when the Multimedia Session

function fails due to the following reason:

l The function is disconnected due to the signaling engine closing the media session.

RTCP

RTCP Packet The per polling interval average outbound RTCP

No

Size TX

packet size.

(Avg)

RTCP Packet The per polling interval average inbound RTCP packet No

Size RX

size.

(Avg)

Global Global Global
Global Both Both

1686

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

RTCP Packet The per polling interval amount of time between the

No

Transmission last two consecutive RTCP packets sent.

Time (Avg)

[ms]

RTCP Packet The per polling interval amount of time between the

No

Arrival Time last two consecutive RTCP packets received.

(Avg) [ms]

RTCP Pack- The total number (cumulative) of sent/received RTCP No

ets Sent,

packets.

RTCP Pack-

ets Received

SRTP

Negotiated The total number of unsecured streams negotiated.

No

Unsecured

Streams

Negotiated The total number of secured streams negotiated.

No

Secured

Streams

SRTP Pack- The total number (cumulative) of sent/received SRTP No

ets Sent,

packets.

SRTP Pack-

ets Received

SRTP Packets Discarded

The number of packets that failed the SRTP validation. No

SRTCP Pack- The number of packets that failed the SRTCP val-

No

ets Dis-

idation.

carded

SRTP Master The number of times the master key used was

No

Key Switches switched within an existing stream (number of re-key-

ing's).

Media Flows

Expected

The cumulative count of negotiated audio flows.

No

Audio Flows

Both Both Both
Global Global Global Global Global Global
Global

IxLoad Tcl API Programming Guide

1687

VoIP No Call Control Peer

Audio Flows The cumulative count of actually sent audio flows.

No

Audio Con- The instantaneous number of audio flows.

No

current Flows

Expected

The cumulative count of negotiated video flows.

No

Video Flows

Video Flows The cumulative count of actually sent video flows.

No

Video Con- The instantaneous number of video flows. current Flows

Expected

The cumulative count of negotiated T.38 flows.

No

T.38 Flows

T.38 Flows

The cumulative count of actually sent T.38 flows.

No

Global Global Global Global
Global Global

Expected

The cumulative count of negotiated media flows, a

No

Media Flows sum of audio and video flows.

Global

Media Flows The cumulative count of actually transmitted media

No

flows, a sum of audio and video flows.

Global

RTP Per Channel

Per-channel RTP statistics comprise statistics from the other categories marked with the Both value in the Per Channel / Global column, plus the following:

Local IP and The channel local IP and port. Port

No

Per Channel

Destination IP and Port

The channel remote IP and port.

No

Per Channel

Largest Bytes Gap

The number of RTP bytes comprised in a consecutive sequence of lost packets, calculated as the maximum consecutive number of packets lost multiplied by the dimension of the RTP data in one packet.

Per Channel

1688

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer
Scenario Settings
VoIP No Call Control Peer Scenario Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.scenarioSettings.config \ -option value
DESCRIPTION
Scenario Settings specifies the test scenario file used by the Tcl API script.
SUBCOMMANDS
None.
OPTIONS
scenarioFile The full path to the test scenario file for the activity. activeScenarioChannel Test scenario channel (0-based index) that is associated with the VoIP No Call Control Peer activity (Default=0).
EXAMPLE
$Activity_VoIPNoCCPeer1 agent.pm.scenarioSettings.config \ -scenarioFile"D:\\ScenarioTestFiles\\RTPCall.tst" \ -activeScenarioChannel0
SEE ALSO

IxLoad Tcl API Programming Guide

1689

VoIP No Call Control Peer
Execution Settings
VoIP No Call Control Peer Execution Settings
SYNOPSIS
$Activity_<VoIPNoCCPeer activity name>agent.pm.executionSettings.config \ -optionvalue
DESCRIPTION
This object defines the execution settings for the VoIP No Call Control Peer activity.
SUBCOMMANDS
None.
OPTIONS
rtpIpRule A simulated RTP channel is uniquely identified by the IP address and port. This option selects the rule used for the IP address portion of the RTP channel allocation.
l 0 = Use same value (per port) (default) l 1 = Use consecutive values (per port) l 2 = Use same value for every X channels. Specify the value for X in the rtpIpRuleCh parameter. rtpPortRule This option selects the rule used for the port portion of the RTP channel allocation. l 0 = Use same value (default) l 1 = Use consecutive values (per port) l 2 = Use consecutive values (per activity) l 3 = Use same value for every X channels. Specify the value for X in rtpPortRuleCh. gracefulRampDown If configured true, the execution is stopped gracefully and the call is closed before the ramp-down period ends. rtpIpRuleCh If rtpIpRule is Use same value every, this specifies the number of channels. rtpPortRuleCh If rtpPortRule is Use same value every, this parameter specifies the number of channels. loopMode

1690

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Defines how many loops are executed for every voice channel corresponding to this activity.

Value

Description

0 (default) Loop for the entire test duration.

1

Execute a number of loops. Specify the number of loops in loopCount.

looCount If loopMode is 1, this option defines the number of loops that the test performs. Default="1". loopPreDelay Delay before first loop (ms). Default="0", min="0" max="3600000". loopMidDelay Delay between loops (ms). Default="0" min="0" max="3600000".

EXAMPLE
$Activity_VoIPNoCCPeer1 agent.pm.executionSettings.config \

-rtpPortRule

0\

-gracefulRampDown

true \

-rtpIpRule

1\

-rtpIpRuleCh

1\

-rtpPortRuleCh

1\

-loopPreDelay

0\

-loopMode

0\

-loopCount

1\

-loopMidDelay

0

SEE ALSO

IxLoad Tcl API Programming Guide

1691

VoIP No Call Control Peer
Dial Plan
VoIP No Call Control Peer Dial Plan
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.dialPlan.config \ -option value
DESCRIPTION
The Dial Plan object configures the destination for the RTP traffic generated by the VoIPNoCCPeer activity.
SUBCOMMANDS
None.
OPTIONS
rtpIpRule2 This option selects the rule used for the IP address portion of the destination RTP channel, when a DUT of the 'Virtual DUT' type is configured.
l 0 = Use same value (per port) (default) l 1 = Use consecutive values (per port) l 2 = Use same value for every X channels. Specify the value for X in the rtpIpRuleCh2 parameter. rtpPortRule2 This option selects the rule used for the port portion of the destination RTP channel allocation, when a DUT of the 'Virtual DUT' type is configured. l 0 = Use same value (default) l 1 = Use consecutive values (per port) l 2 = Use consecutive values (per activity) l 3 = Use same value for every X channels. Specify the value for X in rtpPortRuleCh2. rtpIpRuleCh2 If rtpIpRule2 is Use same value every, this specifies the number of channels having the same IP value. rtpPortRuleCh2 If rtpPortRule2 is Use same value every, this parameter specifies the number of channels having the same port value. symDestStr

1692

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

String identifying the VoIP No Call Control Peer that is the destination for traffic from this activity. Default="None".

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.dialPlan.config \

-rtpIpRuleCh2

1\

-rtpPortRuleCh2

1\

-symDestStr

"Traffic2_VoIPNoCCPeer2:\[10000-65535,4\]" \

-rtpIpRule2

1\

-rtpPortRule2

0

SEE ALSO

IxLoad Tcl API Programming Guide

1693

VoIP No Call Control Peer

Codec Settings

VoIP No Call Control Peer Codec Settings

SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.config \
-optionvalue
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.codecs.appendItem \ -optionvalue
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -optionvalue

DESCRIPTION
Codec Settings contains the list of codecs that will be used by the VoIP No Call Control peers in the test. Codec Settings defines a video codec and configures a list of one or more codec (audio codec) or dataCodec objects. To add codec or dataCodec objects, use the appendItem command.

SUBCOMMANDS
None.

OPTIONS
videoPayloadType
This option selects the type of the video payload, in case video traffic is generated. In the current implementation, this is always '96'. codecs_number
This option selects the type of the video codec used, in case video traffic is generated. In the current implementation, this is always '0', which corresponds to the H.264 video codec.

EXAMPLE

See the examples for Data Codecs and Codecs, as well as the following example:

$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.config \

-videoPayloadType

96 \

-codecs_number

0

SEE ALSO
Data Codecs Codecs

1694

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

IxLoad Tcl API Programming Guide

1695

VoIP No Call Control Peer

Codecs
VoIP No Call Control Peer Audio Codec
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.codecs.appendItem \ -optionvalue

DESCRIPTION
Codecs configures an audio codec object, which is added to the Codec Settings list of codecs.
SUBCOMMANDS
None.
OPTIONS
id The audio codec type, one of the following:

Codec

Description

CodecAMR

Adaptive multi-rate codec

CodecG711u

G.711 mu-law codec

CodecG711a

G.711 A-law codec

CodecG723x153 G.723.1 codec @ 5.3 kbps

CodecG723x163 G.723.1 codec @ 6.3 kbps

CodecG726x16 G.726 codec @ 16 Kbps

CodecG726x24 G.726 codec @ 24 Kbps

CodecG726x32 G.726 codec @ 32 Kbps

CodecG726x40 G.726 codec @ 40 Kbps

CodecG729A

G.729 Annex-A codec

CodecILBC

Internet Low Bit Rate Codec

1696

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Options for CodecAMR
dPayloadIn Incoming dynamic payload type. Default="98" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="98" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 14. Default=14. payloadFormat Payload format.

Value

Usage

0 (default) Bandwidth-efficient format

1

Octet-aligned format

mode Codec bit rate. One of the following:

Mode

Description

0 (default) 4.75 kbps

1

5.15 kbps

2

5.90 kbps

3

6.70 kbps

4

7.40 kbps

5

7.95 kbps

6

10.20 kbps

7

12.20 kbps

Options for CodecG711u
dPayloadIn

IxLoad Tcl API Programming Guide

1697

VoIP No Call Control Peer
Incoming dynamic payload type. Default="0" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="0" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG711a
dPayloadIn Incoming dynamic payload type. Default="8" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="8" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 40, 80, 160, 240. Default=160.
Options for CodecG723x153
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 20. Default=20.
Options for CodecG723x163
dPayloadIn Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG723x163
dPayloadIn

1698

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Incoming dynamic payload type. Default="4" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="4" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 24. Default=24.
Options for CodecG726x16
dPayloadIn Incoming dynamic payload type. Default="102" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="102" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 20, 40, 60. Default=20.
Options for CodecG726x24
dPayloadIn Incoming dynamic payload type. Default="103" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="103" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

IxLoad Tcl API Programming Guide

1699

VoIP No Call Control Peer

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 30, 60, 90. Default=30.
Options for CodecG726x32
dPayloadIn Incoming dynamic payload type. Default="104" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="104" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 40, 80, 120. Default=40.
Options for CodecG726x40
dPayloadIn Incoming dynamic payload type. Default="105" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="105" min="0" max="127". byteOrder Byte order.

Option

Description

0 (default) Big Endian

1

Little Endian

frameSize Bytes per frame. Must be one of the following: 50, 100, 150. Default=50.

1700

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer
Options for CodecG729
dPayloadIn Incoming dynamic payload type. Default="18" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="18" min="0" max="127". cbxFrameSize Bytes per frame. Must be one of the following: 10, 20, 30, 40, 50, Custom. Default=10. customFrameSize If cbxFrameSize is Custom, this option configures the custom frame size. Default="120" min="10" max="200".
Options for CodecILBC
dPayloadIn Incoming dynamic payload type. Default="97" min="0" max="127". dPayloadOut Outgoing dynamic payload type. Default="97" min="0" max="127". frameSize Bytes per frame. Must be one of the following: 38, 50, Custom. Default=38.
EXAMPLE
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.codecs.clear
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.codecs.appendItem \ -id"CodecG711u" \ -dPayloadOut0 \ -dPayloadIn0 \ -frameSize160
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.codecs.appendItem \ -id"CodecG711a" \ -dPayloadOut8 \ -dPayloadIn8 \

IxLoad Tcl API Programming Guide

1701

VoIP No Call Control Peer
-frameSize160
SEE ALSO
Codec Settings

1702

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Data Codecs
VoIP No Call Control Peer Data Codecs
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -optionvalue
DESCRIPTION
Data Codecs configures a data codec object, which is added to the Codec Settings list of codecs.
SUBCOMMANDS
None.
OPTIONS
id The data codec type, one of the following:

Codec

Description

Rtp2833Events Named Events Payload format used for carrying DTMF digits and other line and trunk signals as events.

Rtp2833Tones RTP Payload format that can represent tones consisting of one or more frequencies.

dPayloadType Payload type used for RTP data packets. Default=(see table) min="96" max="127"

Codec

Default value for dPayloadType

Rtp2833Events 100

Rtp2833Tones 101

EXAMPLE
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.dataCodecs.clear
$Activity_VoIPNoCCPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -id"Rtp2833Events" \

IxLoad Tcl API Programming Guide

1703

VoIP No Call Control Peer
-dPayloadType100 $Activity_VoIPNoCCPeer1 agent.pm.codecSettings.dataCodecs.appendItem \ -id"Rtp2833Tones" \ -dPayloadType101
SEE ALSO
Codec Settings

1704

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Audio Settings
VoIP No Call Control Peer audio settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.audioSettings.config \
DESCRIPTION
The Audio Settings configure the VoIP No Call Control Peer audio settings.
SUBCOMMANDS
None.
OPTIONS
enableAudio If selected, audio script functions are executed, otherwise they are skipped. audioClip The played audio clip file. playTypeAudio The mode in which the clip is played.

Value

Usage

0

The clip is played for clip duration or for the duration of the Talk Time parameter in the

(default) case of BHCA/CPS/LPS objectives.

1

The clip is played for a user-defined duration.

audioDurationUnit The play duration unit, which can be miliseconds (0), seconds (1), minutes (2), or hours (3). outputLevel The output level of the played clip. enableTosRtp Enables use of TOS/DSCP. Use the rtpTos option to specify the TOS/DSCP value. Default= False rtpTosVal The Type of Service (TOS/DSCP) byte setting in the sent RTP packets has one of the following values:
l Best Effort (0x00): Routine service

IxLoad Tcl API Programming Guide

1705

VoIP No Call Control Peer
l Class 1 (0x20): Priority service, Assured Forwarding class 1 l Class 2 (0x40): Immediate service, Assured Forwarding class 2 l Class 3 (0x60): Flash, Assured Forwarding class 3 l Class 4 (0x80): Flash-override, Assured Forwarding class 4 l Express Forwarding (0xA0): Critical-ecp l Control (0xC0): Internet-control l Custom: A user-specified value. useMOS Enables the computation of MOS scores. Default= False. enableAudioOWD If true, IxLoad computes the One-way Delay metric, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default= False useJitter If true, enables use of a jitter buffer. Default= False. jitMs If useJitter is 1, this option configures the size of the jitter buffer, in milliseconds. Default="20" minn="1" max="3000". useJitComp If true, enables dynamic modification of the jitter buffer size. Default= False. jitCMs If useJitComp is 1, this option configures the maximum size in of the jitter buffer, in milliseconds. Default="1000" min="0" max="3000". jitCMaxDrop If useJitComp is 1, this option configures the condition - a maximum number of consecutive packets dropped - that determines the jitter buffer size to be increased. enableQoV If true, this enables QoV P.862 PESQ and P.56 QoV computation. Default= False. channelTypeQoV When enableQoV is true, this specifies the objective type as either of the following: l Number of channels (0) l Percentage (1) valueQoV

1706

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

When enableQoV is true, this specifies the number of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 0). Alternatively this represents the percentage of channels for which PESQ and P.56 QoV metrics are computed (when channelTypeQoV is 1).
unitsQoV
The channels selection mode, which can be any of the following:
l First channels (0) l Last channels (1) l Evenly-spaced channels (2) l Random (3)
metricsQoV
When enableQoV is true, this specifies the metric that is calculated by the Zion card. Available options are:
l PESQ and P.56 (0) l PESQ (1) l P56 (2)
useSilence
If true, RTP packets containing artificial background noise are sent when no other media (DTMF, MF, real payload, and so on) is sent over the communication channel. Default= False.
silenceMode
If useSilence is 1, this option configures the silence mode.

Value

Usage

0

Null data encoded

1 (default) Comfort noise.

enableAudioOWD
If enabled, the One-way Delay metric is computed, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default = disabled.

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.audioSettings.config \-enableAudio

true \-audioClip

"US_042.wav" \-playTypeAudio

0 \-audioDurationUnit

1 \-audioDuration

10 \-outputLevel

-20-enableAudioOWD

false \-enableTosRtp

false \-rtpTosVal

32 \-useMos

false \-useJitter

false \-jitMs

20 \-useJitComp

IxLoad Tcl API Programming Guide

1707

VoIP No Call Control Peer
false \-jitCMs 7 \-enableQoV 0 \-valueQoV 0 \-activityIdQoV 0 \-useSilence 1\
SEE ALSO

1000 \-jitCMaxDrop false \-channelTypeQoV 100 \-unitsQoV 0 \-metricsQoV false \-silenceMode

1708

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

Video Settings
VoIP No Call Control Peer Video Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.VideoSettings.config \ -optionvalue
DESCRIPTION
Video Settings configures the VoIP No Call Control Peer's video settings.
SUBCOMMANDS
None.
OPTIONS
enableVideo Enables use of video as media traffic.
l 0 = disabled (default) l 1 = enabled videoClip Name of the video file. Default = "Fire_avc.mp4" playTypeVideo Determines parameters for running video. Following values are available:

Value

Usage

0 (default) Play for clip duration

1

Play for specified duration.

2

Conference mode

videoDuration If playTypeVideo = 1, determines duration of video. Maximum value = 259200000. videoDurationUnit Unit of duration. Following values are available:

Value Usage

IxLoad Tcl API Programming Guide

1709

VoIP No Call Control Peer

0

milliseconds

1

seconds

2

minutes

3

hours

useConference If playTypeVideo = 2, enables use of conference mode. Following values are available:

Value Usage

0

All speak

1

Sequential

2

Random

confVideoDuration
If playTypeVideo = 2, enables selection of the conference video duration. confVideoDurationUnit
If playTypeVideo = 2, enables selection unit of conference video duration. The following values are available:

Value Usage

0

milliseconds

1

seconds

2

minutes

3

hours

confDuration
If playTypeVideo = 2, enables selection of the conference audio duration. confDurationUnit
If playTypeVideo = 2, enables selection unit of conference audio duration. The following values are available:

Value Usage

1710

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

0

milliseconds

1

seconds

2

minutes

3

hours

enableTosVideo Enables use of TOS/DSCP. Use the tosVideo option to specify the TOS/DSCP value. tosVideo The following values are available:

Value Usage

0

Best Effort (0x00)"

1

Class 1 (0x20)

2

Class 2 (0x40)

3

Class 3 (0x60)

4

Class 4 (0x80)

5

Express Forwarding (0xA0)

6

Control (0xC0)

7

Custom

useMosVideo
Enables computation of MOS. 0 = disabled (default) 1 = enabled Note: If MOS computation is enabled, the enableVideoOWD option also has to be enabled. enableVideoOWD
If enabled, the One-way Delay metric is computed, a network measurement specifying the amount of time (in ms) that a packet has spent on the network before it was received on the destination side. Default = disabled. ignoreHintTrack

IxLoad Tcl API Programming Guide

1711

VoIP No Call Control Peer

If enabled, the hint track present in the video clip is ignored. The video streaming uses a new hint track which is recreated using one of the packetization modes defined by hintTrackType. By default it is disabled.
hintTrackType
Allows to select the packetization mode. The following values are available:

Value

Usage

0 (default) Single NAL Unit

1

STAP-A, with FU-A fragmentation

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.videoSettings.config \-rotationScheme

0 \-confDuration

1 \-useMosVideo

false \-enableVideoOWD

false \-ignoreHintTrack

false \-enableTosVideo

true \-enableVideo

true \-videoClip

"Fire_avc.mp4" \-

useH323AdvancedSettings

false \-videoDuration

5 \-confVideoDurationUnit

1 \-useConference

false \-confDurationUnit

1 \-confVideoDuration

1 \-videoDurationUnit

1 \-hintTrackType

1 \-fmtp

"" \-rtpmap

"" \-playTypeVideo

0 \-tosValVideo

32

SEE ALSO

1712

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

T.30 Settings
VoIP No Call Control Peer T.30 Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.t30parameters.config \ -optionvalue

DESCRIPTION
T.30 Settings configures the VoIP No Call Control Peer's fax T.30 settings.
SUBCOMMANDS
None.
OPTIONS
t30StationId The fax station's identifier sent in CSI, TSI and CIG. Required valid station ID or sequence generator expression (e.g. '5551[000-]'). Default = "5551[000-]" t30SendCoding The highest coding scheme available to compress the page data when sending. The following values are available:

Value

Usage

0

MH

1

MR

2 (Default) MMR

t30SendDataRate The data rate for sending. The following values are available:

Value 0 1 2

Usage V.27 ter 2.4 V.27 ter 4.8 V.17 7.2

IxLoad Tcl API Programming Guide

1713

VoIP No Call Control Peer

3

V.17 9.6

4

V.17 12

5(default) V.17 14.4

6

V.29 7.2

7

V.29 9.6

8

V.34 16.8

9

V.34 19.2

10

V.34 21.6

11

V.34 24

12

V.34 26.4

13

V34 28.8

14

V.34 31.2

15

V34 33.6

t30SendPageSize The page size for sending. The following values are available:

Value Usage

0

A4 (210x297 mm)

1

B4 (255x364 mm)

2

A3 (297x420 mm)

t30SendMSLT The minimum transmission time of one coded scan line. Default = 0 The following values are available:

Value

Usage

0 (default) Auto (based on DIS)

1

5 ms T7.7 = T3.85

1714

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

2

10 ms T7.7 = 1/2 T3.85

3

10 ms T7.7 = T3.85

4

20 ms T7.7 = 1/2 T3.85

5

20 ms T7.7 = T3.85

6

40 ms T7.7 = 1/2 T3.85

7

40 ms T7.7 = T3.85

t30SendProtocol The protocol used for fax sending. The following values are available

Value

Usage

0

non-ECM

1 (default) ECM.

t30SendResolution The horizontal and vertical resolution of the page image. The following values are available

Value

Usage

0 (default) R8x3.85 lines/mm

1

R8x7.7 lines/mm

2

R8x15.4 lines/mm

3

200x200 dots/inch

sendCNG
If enabled, CNG message is sent. t30ReceiveCoding
The highest coding scheme available to compress the page data when receiving. The following values are available:

Value 0

Usage MH

IxLoad Tcl API Programming Guide

1715

VoIP No Call Control Peer

1

MR

2 (Default) MMR

t30ReceivePageSize The page size for receiving. The following values are available:

Value

Usage

0

A4 (210x297 mm)

1

B4 (255x364 mm)

2 (default) A3 (297x420 mm)

t30ReceiveMSLT The minimum transmission time of one coded scan line. Default = 0 The following values are available:

Value

Usage

0 (default) 0 ms T7.7 = T3.85

1

5 ms T7.7 = T3.85

2

10 ms T7.7 = 1/2 T3.85

3

10 ms T7.7 = T3.85

4

20 ms T7.7 = 1/2 T3.85

5

20 ms T7.7 = T3.85

6

40 ms T7.7 = 1/2 T3.85

7

40 ms T7.7 = T3.85

t30ReceiveProtocol The protocol used for fax receiving. The following values are available:

Value

Usage

0

non-ECM

1 (default) ECM.

1716

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

sendCedBeforeDIS If enabled, allows the answering fax to send a CED (called station Id) signal. t30ReceiveModulations Allows to select the receiving protocol. The following values are available:

Value

Usage

0

V.27

1 (default) V.27/V.29

2

V.27/V.29/V.17

3

V.27/V.29/V.17/V.34

t30ReceiveR8x3 If enabled, receive resolution is R8x3.85 lines/mm. t30ReceiveR8x7 If enabled, receive resolution is R8x7.7 lines/mm. t30ReceiveR8x15 If enabled, receive resolution is R8x15.4 lines/mm. t30Receive200x200 If enabled, receive resolution is 200x200 dots/inch.

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.t30Parameters.config \

-t30SendResolution

0\

-sendCedBeforeDIS

1\

-t30ReceiveR8x7

true \

-t30SendPageSize

0\

-t30ReceiveR8x3

true \

-t30SendProtocol

1\

-t30ReceiveProtocol

1\

-sendCNG

1\

-t30SendCoding

0\

IxLoad Tcl API Programming Guide

1717

VoIP No Call Control Peer

-t30ReceiveMSLT -t30SendMSLT -t30ReceiveCoding -t30ReceivePageSize -t30ReceiveModulations -t30ReceiveR8x15 -t30StationId -t30SendDataRate -t30Receive200x200
SEE ALSO

0\ 0\
2\ 2\ 3\
true \ "5551\[000-\]" \
5\ true

1718

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

T.38 Settings
VoIP No Call Control Peer T.38 Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.t38Settings.config \ -optionvalue

DESCRIPTION
T.38 Settings configures the VoIP No Call Control Peer's fax T.38 settings.
SUBCOMMANDS
None.
OPTIONS
enableT38 Enables use of 'T.38 Fax Session' script function. 0 = disabled (default) 1 = enabled t38Port The T.38 listening port. Default = "40000". This parameter specifies a valid port (1000-65535) or simple sequence generator expression (e.g. [1000-2000,2]) faxImage Fax image to be sent. Default = "Ixia2Pages.tif" t38TransportType The transport protocol used for carrying the T.38 traffic. Default = "1" The following values are available

Value Usage

0

TCP

1

UDP

t38UdpEncapsulation
If t38TransportType = 1, t38UdpEncapsulation defines the protocol used to encapsulate T.38 messages. The following values are available:

IxLoad Tcl API Programming Guide

1719

VoIP No Call Control Peer

Value Usage

0

UDPTL

1

RTP

t38PayloadType The payload type identifier. Minimum = 0, Maximum = 127, and Default = 102 useFaxVersion If enabled, allows selecting the T.38 protocol version. faxVersion If useFaxVersion is enabled, used to identify the T.38 protocol version, 0, 1, 2, or 3 (default = 0). useT38MaxBitrate If enabled, allows selecting the maximum fax transmission rate. t38MaxBitrate The maximum fax transmission rate supported by the endpoint (default = 5). The following values are allowed:

Value

Usage

0

2.4 kbps

1

4.8 kbps

2

7.2 kbps

3

9.6 kbps

4

12 kbps

5(default) 14.4 kbps

6

16.8 kbps

7

19.2 kbps

8

21.6 kbps

9

24 kbps

10

26.4 kbps

1720

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer

11

28.8 kbps

12

31.2 kbps

13

33.6 kbps

useT38RateMgmt If enabled, allows selecting the fax rate management model. t38RateMgmt The fax rate management model as defined in T.38. Following values are allowed:

Value Usage

0

Transferred TCF

1

Local TCF

useErrorRecoverySchema If enabled, allows selecting the desired error correction scheme. errorRecoverySchema The desired error correction scheme. The following values are allowed:

Value

Usage

0 (default) Redundancy

1

FEC

useT38MaxDatagramSize
If enabled, allows selecting the maximum datagram size.
t38MaxDatagramSize
The maximum datagram size (default = 256), which represents the maximum number of bytes that can be stored on the remote device before an overflow condition occurs. Minimum = 0, Maximum = 256.

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.t38Settings.config \-enableT38

true \-t38TranscodingMMR

false \-t38UdpEncapsulation

0 \-useT38MaxBitrate

true \-t38RateMgmt

0 \-t38TranscodingJBIG

false \-t38TransportType

1 \-t38Port

"40000" \-t38FillBitRemoval

0 \-faxVersion

0 \-useT38FillBitRemoval

IxLoad Tcl API Programming Guide

1721

VoIP No Call Control Peer

false \-useT38RateMgmt "Ixia2Pages.tif" \-useT38MaxBufferSize errorRecoverySchema 256 \-t38MaxBufferSize true \-useT38MaxDatagramSize 5 \-t38PayloadType true

true \-faxImage false \-
0 \-t38MaxDatagramSize 200 \-useFaxVersion true \-t38MaxBitrate
102 \-useErrorRecoverySchema

SEE ALSO

1722

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer
RTP Settings
VoIP No Call Control Peer RTP Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.rtpSettings.config \ -optionvalue
DESCRIPTION
RTP Settings configures the VoI PNo Call Control Peer RTP transport settings.
SUBCOMMANDS
None.
OPTIONS
enableRTP Enables use of RTP to transport the media traffic. 0 = disabled (default) 1 = enabled rtpPort RTP port number. Default="10000". Note: Valid port numbers are between 1000 and 65534. enableRTCP Enables the sending and receiving of RTCP packets. chEnableHwAcc If true, enables hardware acceleration for RTP traffic. Default=false. enableAdvStatCalc Enables the computation of advanced RTP statistics. enablePerStream Enables computation of per-stream statistics. enableMDI Enables computation of MDI DF and MDI MLR statistics. enableNBExec

IxLoad Tcl API Programming Guide

1723

VoIP No Call Control Peer

If true, all RTP functions from a scenario execute in a non-blocking mode, i.e the current function from a channel executes in the background, allowing the execution to continue on that channel with the next script function. Default= False.

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.rtpSettings.config \-enableRTP

true \-enableRTCP

false \-enableMDI

false \-chEnableHwAcc

true \-chDisableHwAcc

false \-enableAdvStatCalc

false \-enablePerStream

false \-rtpPort

"\[10000-65535,4\]" \-enableNBExec

false

SEE ALSO

1724

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer
SRTP Settings
VoIP No Call Control Peer SRTP Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.srtpSettings.config \ -optionvalue
DESCRIPTION
SRTP Settings configures the VoIP No Call Control Peer's SRTP settings.
SUBCOMMANDS
None.
OPTIONS
benableRTP Enables use of SRTP to transport the media traffic.
l false = disabled (default) l true = enabled bDisableSRTPAuthentication If true, this option disables SRTP authentication. bDisableSRTPEncryption If true, this option disables SRTP stream encryption. bIncludeMKI If true, the generated SRTP packets include the MKI field. bDisableValidations If true, none of the validations below are performed on the received SRTP packets: - SRTP packet authentication tag is not verified - Master Key expiration is not verified - SRTP packet MKI field is ignored bDisableSRTCPEncryption If true, this option disables SRTCP stream encryption. bAllowOnlySecureStreams If true, the SDP offer comprises only secure streams and SDP negotiates only secure streams.

IxLoad Tcl API Programming Guide

1725

VoIP No Call Control Peer

bDisableMasterSalt If true, the Master Salt value is null instead of it being randomly generated. bStaticMasterKeySalt If true, this option determines the use of a static master key and salt. _masterKeySelection Specifies if a single key or multiple keys are used:
l 0 = A single key is used. The key is specified by the staticSingleKeySalt parameter. l 1 = Multiple static keys are used. Keys are obtained from a file specified by the staticKeyFile
parameter. staticSingleKeySalt If bStaticMasterKeySalt is true, this parameter defines a key value. staticKeyFile If bStaticMasterKeySalt is true, this parameter defines a file containing multiple key values.

EXAMPLE

$Activity_VoIPNoCCPeer1 agent.pm.srtpSettings.config \-bDisableSRTPAuthentication

false \-bIncludeMKI

true \-bEnableSRTP

true \-bDisableValidations

false \-bDisableSRTCPEncryption

false \-bStaticMasterKeySalt

true \-bAllowOnlySecureStreams

false \-bDisableMasterSalt

false \-staticSingleKeySalt

"BjVFszwVXnYB2Rtr6BbFfbvDkuFtUjJWUCClq4gP" \-staticKeyFile

"" \-bDisableSRTPEncryption

false \-_masterKeySelection

0

SEE ALSO

1726

IxLoad Tcl API Programming Guide

VoIP No Call Control Peer
Other Settings
VoIP No Call Control Peer Other Settings
SYNOPSIS
$Activity_VoIPNoCCPeer1 agent.pm.otherSettings.config \ -optionvalue
DESCRIPTION
This object configures the VoIP No Call Control Peer activity's miscellaneous options.
SUBCOMMANDS
None.
OPTIONS
VOIP_Var0 The VOIP_Var1...VOIP_Var5 and VOIP_IPAddr1...VOIP_IPAddr5 string-type variables supporting generator expressions enable you to generate 10 series of global variables whose values are used at runtime by the simulated endpoints/channels. Default="". Use the VOIP_Var1...VOIP_Var5 variables to represent phone numbers, and the VOIP_IPAddr1...VOIP_ IPAddr5 to represent IP addresses. VOIP_Var1 See VOIP_Var0. VOIP_Var2 See VOIP_Var0. VOIP_Var3 See VOIP_Var0. VOIP_Var4 See VOIP_Var0. VOIP_IPAddress0 See VOIP_Var0. VOIP_IPAddress1 See VOIP_Var0. VOIP_IPAddress2

IxLoad Tcl API Programming Guide

1727

VoIP No Call Control Peer

See VOIP_Var0. VOIP_IPAddress3 See VOIP_Var0. VOIP_IPAddress4 See VOIP_Var0. ipPreference Type of addressing you want to use on the subnet that the VOIP No Call Control Peer runs on.

Value

Usage

0 (default) IPv4

1

IPv6

EXAMPLE
$Activity_VoIPNoCCPeer1 agent.pm.otherSettings.config \ -ipPreference0 \ -VOIP_Var1"" \ -VOIP_Var0"" \ -VOIP_Var3"" \ -VOIP_Var2"" \ -VOIP_Var4"" \ -VOIP_IPAddress4"" \ -VOIP_IPAddress1"" \ -VOIP_IPAddress0"" \ -VOIP_IPAddress3"" \ -VOIP_IPAddress2""

SEE ALSO

| B

1728

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics
Statistics in the results files and reports are averaged over all ports. If a statistic for an interval is missing, IxLoad interpolates it from the statistic immediately prior to it and the statistic after it.
For the per-Interface and TCP statistics, see Per-Interface and TCP Statistics.
For the Run State statistics, see Run State Statistics.
For the Curve Segment statistics, see Curve Segment Statistics.
Notes: l IxLoad increments its TCP statistics at the time it causes a TCP packet to be generated. If a lower layer process in the TCP stack fails the transmit a packet, IxLoad does not update its statistics accordingly. l If a process sends a SYN to the server port to which there is no corresponding listening socket, the Ixia port stack generates an RST, and the IxLoad will be unaware of the RST.

IxLoad Tcl API Programming Guide

1729

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics
Per-Interface and TCP Statistics
The TCP statistics are displayed by most of IxLoad's protocols in their statistics views in StatViewer. In the first table below, Caption is the label shown in StatViewer for a statistic. Name is the name of the statistic as it appears in the Stats Catalog. To make queries from the API, you must use a statistic's name. For the per-Interface and TCP statistics see the following: Per-Interface Statistics TCP Statistics

1730

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

TCP Statistics
The following TCP statistics are available for some, but not all, protocols and are published on a perprotocol basis, not on a per-interface basis. At the time of printing, the following protocols do not support TCP statistics:

Radius WAP TFTP Trace File Replay DHCP

To confirm that TCP statistics are available, configure a test in the GUI, refresh the stat views, and then display the list of statistics in the view editor. If TCP statistics are listed, the protocol supports them.
FTP displays TCP statistics separately for the control and data connections. For the list of TCP statistics captions displayed in the FTP statistics views, see FTP Captions for TCP Statistics.
The table below describes the TCP statistics.

Statistic

Description

TCP Simulated Users

Number of simulated users.

Physical Rx Drops

Number of incoming packets dropped due to buffer overflow.

Physical Tx Drops

Number of outgoing packets dropped due to buffer overflow. Typically, this is caused by stopping a large test or configuring a Ramp Down time that is too short.

TCP Connection Lifetime

Amount of time elapsed between the time the first SYN in the TCP connection handshake is received and the last FIN or ACK sent or the TCP connection.
This statistic measures the total lifetime of a connection through all three major stages of the connection: handshake duration + data transfer duration + close duration.

SYNs Sent (caption)
TCP SYN Sent (name)

Number of connection requests (SYNs) sent. Only the initial SYN sent is counted in this statistic; retried SYNs are not included. Retried SYNs are counted in the TCP Retries statistic..

IxLoad Tcl API Programming Guide

1731

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

SYNs Received (caption)
TCP SYN Received (name)

Number of connection requests (SYNs) received.

SYN/SYNACKs Received (caption)
TCP SYN_ SYN-ACK Received (name)

Number of connection requests (SYNs) and connection request acknowledgments (SYN and ACK flags set) received.

TCP SYN Failed

Number of connection requests (SYNs) sent for which a reset (RST) was received.

SYN-ACKs Sent (caption)
TCP SYN-ACK Sent (name)

Number of connection request acknowledgments (SYN and ACK flags set) sent.

Connection Requests Failed (caption)
TCP Connection Requests Failed (name)

Number of attempts to establish connections which did not result in connections being created.

TCP Connections Established

Number of connections established.
Note: For a peer-to-peer protocol, this statistic counts the aggregate number of connections established, not the number established from the point of view of one side or the other.

FINs Sent (caption)
TCP FIN Sent (name)

Number of connection termination requests (FINs) sent. Only the initial FIN sent is counted in this statistic; retried FINs are not included. Retried FINs are counted in the TCP Retries statistic.

1732

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

FINs Received (caption)
TCP FIN Received (name)

Number of connection termination requests (FINs) received.

FIN-ACKs Sent (caption)
TCP FIN-ACK Sent (name)

Number of connection termination acknowledgments (FIN-ACK) sent. Only the initial FIN-ACK sent is counted in this statistic; retried FINs are not included. Retried FINs are counted in the TCP Retries statistic..

FIN-ACKs Received (caption)
TCP FIN-ACK Received (name)

Number of connection termination acknowledgments (FIN-ACK) received.

Resets Sent (caption)
TCP Resets Sent (name)

Number of Resets (RST) sent for any reason.
Under some scenarios, the number of RSTs may not match between the client and server.
For example, an Abort following a request generates two RSTs. On the client side, when the first RST is sent, the socket context is destroyed and hence only one RST is included in the client's TCP stats. However, on the server, receiving the first RST doesn't destroy the socket context immediately and so the second RST received is the one that is updated.

Resets Received (caption)
TCP Resets Received (name)

Number of Resets (RST) received. Includes RSTs received as responses to SYNs and for any other reasons.

TCP Bytes Sent

Number of bytes sent in TCP packets.

TCP Bytes Received

Number of bytes received in TCP packets.

Retries (caption)
TCP Retries (name)

Total number of retries attempted for all segments.

IxLoad Tcl API Programming Guide

1733

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Timeouts (caption)
TCP Timeouts (name)

Total number of timeouts that occurred for all segments.

Accept Queue Entries (caption)
TCP Accept Queue Entries (name)

Number of entries in the listening socket's queue of connections awaiting acceptance.

Listen Queue Drops (caption)
TCP Listen Queue Drops (name)

Number of incoming SYN packets dropped from the socket listen queue.
An incoming SYN packet is held in a listen queue while the host replies with a SYN+ACK and waits for the confirming ACK (the three-way handshake). A listen queue in this state is called a half-open connection.

TCP Connections in ESTABLISHED State

Number of TCP connections in the ESTABLISHED state. A connection in the ESTABLISHED state can transfer data between the two ends in both directions.

TCP Connections in SYN-SENT State

Number of TCP connections in the SYN-SENT state. A client enters the SYN-SENT state after it has sent a SYN segment to the server to open a connection.

TCP Connections in SYNRECEIVED State

Number of TCP connections in the SYN-RECEIVED state. A server enters the SYN-RECEIVED state after it receives a SYN from a client, requesting a connection. The server replies with a SYN+ACK segment.

TCP Connections in FIN-WAIT-1 State

Number of TCP connections in the FIN-WAIT-1 state. Sockets in the FIN-WAIT-1 state are closed and tearing down the connection.

TCP Connections in FIN-WAIT-2 State

Number of TCP connections in the FIN-WAIT-2 state. A connection in the FIN-WAIT-2 state has closed the local socket and is waiting for shutdown from the remote socket.

1734

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

TCP Connections in TIME-WAIT State

Number of TCP connections in the TIME-WAIT state. A connection in the TIME-WAIT state has closed the local socket and is waiting for remote shutdown retransmission.

TCP Connections in CLOSE State

Number of TCP connections in the CLOSE state. A connection in the CLOSE state is closed.

TCP Connections in CLOSE-WAIT State

Number of TCP connections in the CLOSE-WAIT state. A connection in the CLOSE-WAIT state is waiting for the local socket to close after a remote shut down.

TCP Connections in LAST-ACK State

Number of TCP connections in the LAST-ACK state. A connection in the LAST-ACK state is performing a remote shutdown; it will close the connection and wait for the acknowledgment.

TCP Connections in LISTENING State

Number of TCP connections in the LISTENING state. A socket in the LISTENING state is listening for an incoming connection.

TCP Connections in CLOSING State

Number of TCP connections in the CLOSING state. A socket in the CLOSING state is closed, has performed a remote shutdown, and is waiting for the acknowledgment.

FTP Captions for TCP Statistics
FTP displays TCP statistics separately for the control and data connections. For the list of TCP statistics captions displayed in the FTP statistics views, see the table below.

Statistic

Description

TCP Statistics for Control Connections

Control SYNs Sent Number of SYNs sent on control connections. See SYNs Sent in the TCP Statistics table.

IxLoad Tcl API Programming Guide

1735

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Control SYNs Received

Number of connection requests (SYNs) received on control connections. See SYNs Received in the TCP Statistics table.

Control SYN/SYNACKs Received

Number of connection requests (SYNs) and connection request acknowledgements (SYN and ACK flags set) received on control connections. See SYN/SYN-ACKs Received in the TCP Statistics table.

Control SYN-ACKs Sent

Number of connection request acknowledgements (SYN and ACK flags set) sent on control connections. See SYN-ACKs Sent in the TCP Statistics table.

Control Connection Requests Failed

Number of attempts to establish control connections which did not result in connections being created. See Connection Requests Failed in the TCP Statistics table.

Control FINs Sent

Number of connection termination requests (FINs) sent on control connections. See FINs Sent in the TCP Statistics table.

Control FINs Received

Number of connection termination requests (FINs) received on control connections. See FINs Received in the TCP Statistics table.

Control FIN-ACKs Sent

Number of connection termination acknowledgements (FIN-ACK) sent on control connections. See FIN-ACKs Sent in the TCP Statistics table.

Control FIN-ACKs Received

Number of connection termination acknowledgements (FIN-ACK) received on control connections. See FIN-ACKs Received in the TCP Statistics table.

Control Resets Sent

Number of Resets (RST) sent on control connections. See Resets Sent in the TCP Statistics table.

Control Resets Received

Number of Resets (RST) received on control connections. See Resets Received in the TCP Statistics table.

Control Retries

Total number of retries attempted on control connections for all segments. See Retries in the TCP Statistics table.

Control Timeouts

Total number of timeouts that occurred on control connections for all segments. See Timeouts in the TCP Statistics table.

1736

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Control Accept Queue Entries

Number of entries in the listening socket's queue of control connections awaiting acceptance. See Accept Queue Entries in the TCP Statistics table.

Control Listen Queue Drops

Number of incoming SYN packets on control connections dropped from the socket listen queue. See Listen Queue Entries in the TCP Statistics table.

TCP Statistics for Data Connections

Data SYNs Sent

Number of SYNs sent on data connections. See SYNs Sent in the TCP Statistics table.

Data SYNs Received

Number of connection requests (SYNs) received on data connections. See SYNs Received in the TCP Statistics table.

Data SYN/SYNACKs Received

Number of connection requests (SYNs) and connection request acknowledgements (SYN and ACK flags set) received on data connections. See SYN/SYN-ACKs Received in the TCP Statistics table.

Data SYN-ACKs Sent

Number of connection request acknowledgements (SYN and ACK flags set) sent on data connections. See SYN-ACKs Sent in the TCP Statistics table.

Data Connection Requests Failed

Number of attempts to establish data connections which did not result in connections being created. See Connection Requests Failed in the TCP Statistics table.

Data FINs Sent

Number of connection termination requests (FINs) sent on data connections. See FINs Sent in the TCP Statistics table.

Data FINs Received

Number of connection termination requests (FINs) received on data connections. See FINs Received in the TCP Statistics table.

Data FIN-ACKs Sent

Number of connection termination acknowledgements (FIN-ACK) sent on data connections. See FIN-ACKs Sent in the TCP Statistics table.

Data FIN-ACKs Received

Number of connection termination acknowledgements (FIN-ACK) received on data connections. See FIN-ACKs Received in the TCP Statistics table.

IxLoad Tcl API Programming Guide

1737

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Data Resets Sent

Number of Resets (RST) sent on data connections. See Resets Sent in the TCP Statistics table.

Data Resets Received

Number of Resets (RST) received on data connections. See Resets Received in the TCP Statistics table.

Data Retries

Total number of retries attempted on data connections for all segments. See Retries in the TCP Statistics table.

Data Timeouts

Total number of timeouts that occurred on data connections for all segments. See Timeouts in the TCP Statistics table.

Data Accept Queue Entries

Number of entries in the listening socket's queue of data connections awaiting acceptance. See Accept Queue Entries in the TCP Statistics table.

Data Listen Queue Drops

Number of incoming SYN packets on data connections dropped from the socket listen queue. See Listen Queue Entries in the TCP Statistics table.

1738

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Advanced TCP Statistics
The following TCP statistics are available if you check the Enable TCP Advanced Stats option on the Test Options window. (see Test Options). These statistics will be present in the CSV when the option is enabled, and you can create a custom view in the Statistics Viewer with these statistics, if required.
The table below describes the Advanced TCP statistics.

Statistic

Description

TCP Lost Retransmits

Retransmissions for segments that have not been acknowledged.

TCP Fast Retransmits

Retransmissions that occurred before the retransmission timer expired because the other side sent three ACKs for the same segment.

TCP Forward Retransmits

Number of segments retransmitted even though there was no indication that they were actually lost. Retransmission stopped when either of the following occurs:
l The maximum time to wait for a remote response is reached. This timeout occurs when the total time of all retransmission intervals exceeds the maximum time to wait for a remote response.
l The number of retransmissions configured in maximum retransmissions per packet is reached.
Forward Retransmits occur only on SACK-negotiated connections.

TCP Slow Start Retransmissions during the Slow Start phase. Retransmits

TCP Local

Window size advertised by the local side.

Advertisement

Window

TCP Remote Window size advertised by the remote side. Advertisement Window

TCP Syn-Syn- Average time elapsed between the time the SYN was sent and the SYN-ACK was

Ack Time

received.

TCP Syn-SynAck Time Squared

Variation in the TCP Syn-SynAck Time.

IxLoad Tcl API Programming Guide

1739

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Per-Interface Statistics
The table below describes the per-Interface statistics.

Statistic

Description

Packets Sent

Number of IP packets sent.

Packets Received

Number of IP packets received.

Bytes Sent Number of bytes sent in IP packets.

Bytes Received

Number of bytes received in IP packets.

Fragments Received

Number of IP packet fragments received.
Note: When a Stateless Peer activity is configured, the Fragments Received statistic is updated only if, on the receiving side, either the Send Timestamp or Enable Out of Order setting is enabled (on the Stateless Peer Settings, Advanced Options tab).

Reassembly Number of fragmented IP packets that could not be reassembled within the timeout

Timeouts

period.

1740

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Run State Statistics
The Run State statistics (see the table below) identify the phase that the test is in at a given time.The Run State statistics are stored in the CSV files, and can be retrieved using the IxLoad Tcl API.
To retrieve Run State statistics, use the same syntax as for any other statistic. However, if you are retrieving a list of statistics, the Run State statistics must in first in the list, ahead of any other type of statistics.
For examples of how to retrieve Run State statistics, see the HTTP_StateStats.tcl or HTTP_ StateStats_SM.tcl sample scripts in the <install path>\TclScripts\Samples\Stats directory).
There are different Run States for Basic timelines and for Advanced timelines.

Run State Description Basic Timeline

ID

Idle

RU

Ramp Up

SU

Sustain

RD

Ramp Down

Advanced Timeline

ID

Idle

LR

Linear segment

LU

Linear segment, Upwards

LD

Linear segment, Downwards

LI

Linear segment, Idle

ST

Steps segment, Upwards

SD

Steps segment, Downwards

BU

Bursts segment

BR

Bursts segment, Right skew

BL

Bursts segment, Left skew

PU

Pulses segment

IxLoad Tcl API Programming Guide

1741

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

PO

Poisson segment

1742

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics
Curve Segment Statistics
In a test that uses an Advanced timeline, the Curve Segment statistics identify the segment that is active at a given time. The Curve Segment statistics are stored in the CSV files, and can be retrieved using the IxLoad Tcl API. Curve Segments are numbered starting with 0 (zero), and continuing through the nth segment. Segment 0 is the segment during which test initialization occurs; no traffic is sent during segment 0. For a Basic timeline, the Curve Segment is always 0.

IxLoad Tcl API Programming Guide

1743

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Connection Latency Statistics
The table below describes the connection latency statistics.

Statistic

Description

Connection Latency 0 - 10 µsec

Number of connections established after a delay of 0 to 10 microseconds.

Connection Latency 10 - 20 µsec

Number of connections established after a delay of 10 to 20 microseconds.

Connection Latency 20 - 30 µsec

Number of connections established after a delay of 20 to 30 microseconds.

Connection Latency 30 - 40 µsec

Number of connections established after a delay of 30 to 40 microseconds.

Connection Latency 40 - 50 µsec

Number of connections established after a delay of 40 to 50 microseconds.

Connection Latency 50 - 60 µsec

Number of connections established after a delay of 50 to 60 microseconds.

Connection Latency 60 - 70 µsec

Number of connections established after a delay of 60 to 70 microseconds.

Connection Latency 70 - 80 µsec

Number of connections established after a delay of 70 to 80 microseconds.

Connection Latency 90 - 100 µsec

Number of connections established after a delay of 90 to 100 microseconds.

Connection Latency 100 - 200 Number of connections established after a delay of 100 to 200

µsec

microseconds.

Connection Latency 200 - 300 Number of connections established after a delay of 200 to 300

µsec

microseconds.

Connection Latency 300 - 400 Number of connections established after a delay of 300 to 400

µsec

microseconds.

Connection Latency 400 - 500 Number of connections established after a delay of 400 to 500

µsec

microseconds.

Connection Latency 500 - 600 Number of connections established after a delay of 500 to 600

µsec

microseconds.

1744

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Connection Latency 600 - 700 Number of connections established after a delay of 600 to 700

µsec

microseconds.

Connection Latency 700 - 800 Number of connections established after a delay of 700 to 800

µsec

microseconds.

Connection Latency 800 - 900 Number of connections established after a delay of 800 to 900

µsec

microseconds.

Connection Latency 900 - 1000 Number of connections established after a delay of 900 to 1000

µsec

microseconds.

Connection Latency > 1000 µsec

Number of connections established after a delay of over 1000 microseconds.

IxLoad Tcl API Programming Guide

1745

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

IxServer Layer 2-3 Statistics
The table below describes the Layer 2 and 3 IxServer statistics available in IxLoad.
In the IxLoad GUI, IxServer statistics are displayed in separate views for client/peer and server ports. The views appear automatically in the top-level statistics views. Each view column (except for the Link State and Line Speed statistics) has a summary footer value showing the cumulative values for all ports in the view.
Notes: l If you aggregate 1G and 10G ports, no ARP stats are displayed. l If you aggregate 10G ports, only statistics from port 13 are displayed.

Statistic

Description

Bits Received Rate (Kb/s)

Rate at which bits are being received.

Bits Sent

Rate at which bits are being transmitted.

Rate (Kb/s)

Bytes Received

Total number of bytes received.

Bytes Sent Total number of bytes transmitted.

Frames Sent Number of frames successfully transmitted. This statistic does not include frames retransmitted due to collisions.

Frames Sent Rate at which frames are being transmitted.

Rate

This statistic does not include frames retransmitted due to collisions.

Line Speed

For Ethernet load modules, this statistic indicates the speed, in Mbps, negotiated on the link. For POS modules, this statistic indicates the POS level: OC-3, OC-12, or OC-48

Link State

Connectivity on the link. This statistic can be one of the following values: Up: A link is established with another device. Loopback: The port has loopback enabled. Down: There is no connection to another device.

1746

IxLoad Tcl API Programming Guide

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

Receive Arp Number of ARP replies received. Reply

Receive Arp Number of ARP requests received. Request

Transmit Arp Number of ARP replies sent. Reply

Transmit Arp Number of ARP requests sent. Request

Valid Frames Received

Number of valid frames received. A valid frame is a frame that is 64 bytes to 1518 bytes long, including the FCS but excluding the preamble and SFD. The frame length must be an integer number of octets. Only frames that have a valid FCS are counted by this statistic. VLAN-tagged frames that are larger than 1518 bytes but less than 1522 bytes are also included in this statistic.

Valid Frames Received Rate

Rate at which valid frames are being received. See Valid Frames Received (above) for a description of what constitutes a valid frame.

IxLoad Tcl API Programming Guide

1747

IP, TCP, Run State, and Curve Segment L2/L3, and Port CPU Statistics

IxServer Port CPU Statistics
The table below describes the IxServer Port CPU statistics available in IxLoad. For the Tcl API, the stat source type for the Port CPU statistics is: Port Monitor

Statistic

Description

Total Memory (KB) Total amount of RAM installed on the port, in KB. Tcl API name: Total Memory

Free Memory (KB)

Amount of RAM currently available on the port, in KB. Tcl API name: Free Memory

% Disk Utilization

Percentage of space used on the RAM disk installed on the port. Tcl API name: RAM Disk Utilization

CPU Load Avg (1 Minute)

CPU load, averaged over the previous minute. This statistic is displayed as a fraction of 1.0, meaning that 50% CPU utilization would be displayed as 0.5

CPU Load Avg (5 Minutes)

CPU load, averaged over the previous 5 minutes. This statistic is displayed as a fraction of 1.0, meaning that 50% CPU utilization would be displayed as 0.5

CPU Load Avg (15 Minutes)

CPU load, averaged over the previous 15 minutes. This statistic is displayed as a fraction of 1.0, meaning that 50% CPU utilization would be displayed as 0.5

1748

IxLoad Tcl API Programming Guide

INDEX

A Access Attribute Set List 1104 AccessAttribSetList 1119 Accounting Attribute Set List 1104 AcctngAttribSetList 1120 AddAttacks 1077 advanced 1298 Advanced Options 1310, 1322 Advanced Settings 1606 Advanced TCP Statistics 1739 advOptions 1070 Alternative Capability 1440 Alternative Capability List 1439 Alternative Capability Value Set List 1427 API Objects 1505 API Overview 1199, 1235, 1253, 1329,
1391 Attachment 1173, 1182-1183 AttackListCount 1078 attacksCmdList 1071 attacksCmdList nodeList 1073 Attribute 1006, 1023

Attribute List 1117 Attribute Type and Values 1006, 1024 Audio Settings 1383, 1418, 1497, 1559,
1659, 1705 Automatic Settings (CA) 1472 Automatic Settings (GW) 1465 availableTosList 1244
C Call Managers 1646 Capability List 1428 checkTestRunning 1096 Cloud Rules 1610 Cloud Servers 1607 cmdList 1237 Codec Settings 1368, 1405, 1538, 1648,
1694 Codecs 1371, 1406, 1489, 1541, 1651,
1696 Command List 1004, 1009 config 1068 Connection Latency Statistics 1744 contacting Ixia iii Content 1132, 1155

IxLoad Tcl API Programming Guide

1749

INDEX

Control 1005, 1020 CreateAttackList 1079 CreatePlaylist 1080 Curve Segment Statistics 1743 Custom Activity Link Settings 1429, 1481, 1587,
1665 Custom Parameters 1447, 1603, 1667
D Data Codecs 1369, 1412, 1487, 1539, 1649,
1703 DatabaseVersion 1081 DeleteAttackList 1082 DeleteAttacks 1083 Dial Plan 1441, 1596, 1638, 1692
E Edit Contact 1555 Enable Filter 1317 Endpoints 1467, 1474 Events 1362 Execution Settings 1387, 1431, 1479, 1590,
1636, 1690 ExportAttacks 1084
F fileList 1296 Filter List 1308, 1315 FlowDefinition 1036
G Gateways 1476 GetCapture 1085 Global Config 1102, 1112, 1201, 1215

Global options 1239 Global Options 1005, 1017
H H248 Settings 1366 H248 TermGroups 1349 H323 Settings 1434 Header 1173, 1181 HTTP settings 1242 HTTP Statistics 1246 HTTP Streaming 1235 HTTP Streaming Client Agent 1236
I ImportAttacks (.zatk format) 1086 ImportUserDefinedAttacks 1087 InbuiltFlow 1037 IP, TCP, Run State, and Curve Segment L2/L3, and
Port CPU Statistics 1729 Ixia, contacting iii IxServer Layer 2-3 Statistics 1746 IxServer Port CPU Statistics 1748
L LDAP 1003 LDAP Client Agent 1004, 1007 LDAP Client Commands 1004 LDAP Statistics 1025 Limitations 1333, 1391, 1449, 1503, 1511,
1615, 1669 M
MailBoxItem 1047, 1057 MailMessage 1173, 1180, 1183, 1186

1750

IxLoad Tcl API Programming Guide

INDEX

Matching the TEARDOWN Statistics to Other Statistics 1165
MGC Automatic 1354 MGCP CA Agent 1468 MGCP GW Agent 1454 MGCP Settings (CA) 1470 MGCP Settings (GW) 1463 MGW Automatic 1351 Modification 1005, 1021 MSRP GUI Files 1584 MSRP Relays 1586 MSRP Settings 1581
N NoCallControl VOIP Statistics 1674
O Objectives 1003, 1033, 1045, 1102, 1129, 1171,
1200, 1221, 1235, 1253, 1283, 1307 Option Set 1200, 1211 Option Set Manager 1201, 1212 Options 1308, 1313 Other Settings 1377, 1414, 1501, 1548, 1663,
1727 Overview 1003, 1045, 1101, 1129, 1171, 1283,
1307 P
Packages 1360 Peer-to-Peer Application 1033 Peer-to-Peer Application Agent 1034 Peer-to-peer Global Statistics 1039 Per-Interface and TCP Statistics 1730

Per-Interface Statistics 1740 POP3 1045 POP3 Client Agent 1045, 1048 POP3 Client Statistics 1060 POP3 Server Agent 1046, 1055 POP3 Server Statistics 1064 POP3 Statistics 1059 Pop3Command 1046, 1051 PresentationItem 1132, 1152 Profiles 1359 Properties 1363 Published Vulnerabilities and Malware 1067
Q QT 1093 QuickTest Sample Script 1098
R Radius 1101 Radius Client Agent 1102, 1105 RADIUS Client Statistics 1121 Radius Command List 1102, 1106 RenameAttackList 1088 RetrieveAttacks 1089 RTP Settings 1381, 1416, 1495, 1557, 1657,
1723 RTSP 1129 RTSP Client Agent 1129, 1134 RTSP Client Statistics 1158 RTSP Server Agent 1131, 1148 RTSP Server Statistics 1167

IxLoad Tcl API Programming Guide

1751

INDEX

RTSP Statistics 1157 RtspCommand 1130, 1139 RtspgetParamOptionList 1146 RtspHeader 1131 RtspHeaders 1130, 1142 RtspsetParamOptionList 1144 RuleData 1612 Run State Statistics 1741 Running a QuickTest from Tcl 1094
S Scenario Settings 1389, 1446, 1478, 1595, 1635,
1689 SDP Settings 1379, 1494 SearchAttacks 1090 Server Network List 1311, 1321 Server Rules 1609 settings 1331 Settings 1508 Signaling Settings 1551 Signals 1364 Simulated Endpoints 1485 Simulated MGC 1345 Simulated MGW 1347 Simultaneous Capability 1433 Simultaneous Capability List 1445 Simultaneous Capability Value Set List 1438 SIP Server List 1509 Skinny Settings 1643 SMTP 1171

SMTP Client Agent 1171, 1175 SMTP Client Statistics 1192 SMTP Server Agent 1174, 1189 SMTP Server Statistics 1196 SMTP Statistics 1191 SmtpCommand 1172, 1178 Specific Secrets 1103, 1114 SRTP Settings 1579, 1725 SSH 1199 SSH Client Agent 1200, 1202 SSH Client Statistics 1216 SSH Command List 1200, 1204 startQuickTest 1095 Stateless Peer 1221 Stateless Peer Advanced Options 1226 Stateless Peer Agent 1223 Stateless Peer Available TOS List 1232 Stateless Peer Commands 1222 Stateless Peer Overview 1221 Stateless Peer Payload Header List 1230 Stateless Peer Protocol Flows 1227 Statistics 1323, 1365 stopQuickTest 1097 Stream 1132, 1153 Streaming Client Statistics 1246
T T.30 Settings 1571, 1713 T.38 Settings 1567, 1719 TCP Statistics 1731, 1735

1752

IxLoad Tcl API Programming Guide

Telnet 1253 Telnet Client Advanced Options 1254, 1262 Telnet Client Agent 1253, 1258 Telnet Client Basic Options 1254, 1261 Telnet Client Command 1255, 1263 Telnet Client Statistics 1272 Telnet Server Advanced Options 1257, 1270 Telnet Server Agent 1256, 1266 Telnet Server Basic Options 1256, 1268 Telnet Server Statistics 1278 Telnet Statistics 1271 Terminal Capability Set 1444 TFTP 1283 TFTP Client Advanced 1292 TFTP Client Advanced Options 1284 TFTP Client Agent 1284, 1286 TFTP Client Statistics 1300 TFTP Command List 1284, 1288 TFTP Server Agent 1294 TFTP Server Statistics 1304 Timer Settings 1577 TLS Cyphers 1602 TLS Settings 1599 Trace File Options 1310, 1319 Trace File Replay 1307 Trace File Replay Client Agent 1308, 1312 Trace File Replay Client Commands 1307 Trace File Replay Client Statistics 1324 Trace File Replay Server Agent 1309, 1318

INDEX
Trace File Replay Server Commands 1309 Trace File Replay Server Statistics 1326 Transfer Address 1593
U Using Auto-Generated Strings 1058
V VDI 1329 VDI Client Agent 1330 VDI Client Commands 1332 Vendor List 1104, 1116 Video Settings 1422, 1563, 1709 VoIP H.248 Peer 1333 VoIP H.323 Peer 1391 VoIP H248 MGC/MGW Peer API Objects 1336 VoIP H248 Peer Agent 1338 VoIP H248 Peer API Commands 1334 VoIP H248 TermGroup Peer API Objects 1337 VoIP H323 Peer Agent 1394 VoIP H323 Peer API Commands 1392 VoIP H323 Peer API Objects 1393 VoIP MGCP 1449 VoIP MGCP CA/MGW Peer API Objects 1452 VoIP MGCP Endpoint Peer API Objects 1453 VoIP MGCP Peer API Commands 1450 VoIP No Call Control Peer 1669 VoIP No Call Control Peer Agent 1672 VoIP No Call Control Peer API Commands 1670 VoIP No Call Control Peer API Objects 1671 VoIP SIP Cloud 1503

IxLoad Tcl API Programming Guide

1753

INDEX
VoIP SIP Cloud API Commands 1504 VoIP SIP Peer 1511 VoIP SIP Peer Agent 1515 VoIP SIP Peer API Commands 1512 VoIP SIP Peer API Objects 1513 VoIP Skinny API Objects 1617 VoIP Skinny Peer 1615 VoIP Skinny Peer Agent 1618 VoIP Skinny Peer API Commands 1616 VoIPSIP Cloud Agent 1506

1754

IxLoad Tcl API Programming Guide


madbuild