Вы находитесь на странице: 1из 536

HLTAPI Commands

Release 2.80
Part No. 913-0008-06 Rev. B
September 2006
Copyright © 2006 Ixia. All rights reserved.
This publication may not be copied, in whole or in part, without Ixia’s consent.
RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the U.S. Government is subject to the restrictions set forth in
subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR 52.227-
19.
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 con-
strued as a commitment by Ixia. Ixia assumes no responsibility or liability for any errors or inaccuracies contained in this publica-
tion.

Corporate Ixia Worldwide Headquarters Web site: www.ixiacom.com


Headquarters 26601 W. Agoura Rd. General: info@ixiacom.com
Calabasas, CA 91302
Investor Relations: ir@ixiacom.com
USA
Training: training@ixiacom.com
+1 877 FOR IXIA (877 367 4942)
+1 818 871 1800 (International) Support: support@ixiacom.com
(FAX) +1 818 871 1805 +1 877 367 4942
sales@ixiacom.com

EMEA Ixia Europe Limited Support: eurosupport@ixiacom.com


Globeside Business Park +44 1869 356370 (Option 5)
Building One, Unit A
Marlow, SL7 1GJ
United Kingdom
+44 1869 356370
(FAX) +44 1869 356371
ixiaeurope@ixiacom.com

Asia Pacific Asia Pacific Representative Office Support: support@ixiacom.com


New Shanghai International Tower, Suite 26E +1 818 871 1800 (Option 1)
360 Pudong Nan Rd
Shanghai 200120
China
+86 21 50543439
ixiachina@ixiacom.com

Japan Ixia KK Support: support@ixiacom.com


Aioi Sampo Shinjuku Building, 16th Floor +1 818 871 1800 (Option 1)
3-25-3 Yoyogi Shibuya-Ku
Tokyo 151-0053
Japan
+81 3 5365 4690
(FAX) +81 3 3299 6263
ixiajapan@ixiacom.com

India Ixia India Support: support-india@ixiacom.com


No. 508, 6th Main 6th Cross +91 80 32918500
ST Bed, Koramangala 4th Block
Bangalore 560 034
India
+91 80 25633570
(FAX) +91 80 25633487
ixiaindia@ixiacom.com

Part No. 913-0008-06 Rev. B


September 13, 2006

ii HLTAPI Commands, Release 2.80 Rev. B


Table of Contents

About This Guide


Installing HLTAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv

What’s New in Release 2.80 SP2 . . . . . . . . . . . . . . . . . . . . . xvii

Chapter 1 Session APIs


::ixia::connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

::ixia::interface_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4

::ixia::cleanup_session . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15

::ixia::interface_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16

Chapter 2 Traffic APIs


::ixia::traffic_config. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

::ixia::traffic_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-45

HLTAPI Commands, Release 2.80 Rev. B iii


Table of Contents

::ixia::traffic_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-47

Chapter 3 Ixia Specific APIs


::ixia::capture_packets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

::ixia::get_packet_content . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4

Chapter 4 BGP APIs


::ixia::emulation_bgp_config . . . . . . . . . . . . . . . . . . . . . . . . 4-2

::ixia::emulation_bgp_route_config . . . . . . . . . . . . . . . . . . . 4-7

::ixia::emulation_bgp_control . . . . . . . . . . . . . . . . . . . . . . . 4-14

::ixia::emulation_bgp_info . . . . . . . . . . . . . . . . . . . . . . . . . 4-15

Chapter 5 DHCP APIs


::ixia::emulation_dhcp_config. . . . . . . . . . . . . . . . . . . . . . . . 5-2

::ixia::emulation_dhcp_group_config . . . . . . . . . . . . . . . . . . 5-4

::ixia::emulation_dhcp_control . . . . . . . . . . . . . . . . . . . . . . . 5-8

::ixia::emulation_dhcp_stats. . . . . . . . . . . . . . . . . . . . . . . . 5-10

Chapter 6 FTP APIs


::ixia::emulation_ftp_config . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

::ixia::emulation_ftp_traffic_config . . . . . . . . . . . . . . . . . . . 6-10

::ixia::emulation_ftp_control . . . . . . . . . . . . . . . . . . . . . . . . 6-14

iv HLTAPI Commands, Release 2.80 Rev. B


Table of Contents

::ixia::emulation_ftp_control_config . . . . . . . . . . . . . . . . . . . 6-16

::ixia::emulation_ftp_stats . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22

Chapter 7 HTTP APIs


::ixia::emulation_http_config . . . . . . . . . . . . . . . . . . . . . . . . . 7-2

::ixia::emulation_http_traffic_config . . . . . . . . . . . . . . . . . . . 7-10

::ixia::emulation_http_traffic_type_config . . . . . . . . . . . . . . 7-18

::ixia::emulation_http_control. . . . . . . . . . . . . . . . . . . . . . . . 7-26

::ixia::emulation_http_stats . . . . . . . . . . . . . . . . . . . . . . . . . 7-28

::ixia::emulation_http_control_config . . . . . . . . . . . . . . . . . . 7-35

Chapter 8 IGMPvX APIs


::ixia::emulation_igmp_config . . . . . . . . . . . . . . . . . . . . . . . . 8-2

::ixia::emulation_igmp_control. . . . . . . . . . . . . . . . . . . . . . . . 8-5

::ixia::emulation_igmp_group_config. . . . . . . . . . . . . . . . . . . 8-6

::ixia::emulation_igmp_info . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8

Chapter 9 ISIS APIs


::ixia::emulation_isis_config. . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

::ixia::emulation_isis_topology_route_config. . . . . . . . . . . . 9-10

::ixia::emulation_isis_control . . . . . . . . . . . . . . . . . . . . . . . . 9-18

HLTAPI Commands, Release 2.80 Rev. B v


Table of Contents

Chapter 10 L2TPoX APIs


::ixia::l2tp_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

::ixia::l2tp_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11

::ixia::l2tp_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-12

Chapter 11 L2TPv3 APIs


::ixia::l2tpv3_dynamic_cc_config . . . . . . . . . . . . . . . . . . . . 11-2

::ixia::l2tpv3_session_config . . . . . . . . . . . . . . . . . . . . . . . 11-8

::ixia::l2tpv3_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14

::ixia::l2tpv3_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15

Chapter 12 L3VPN APIs


::ixia::l3vpn_generate_stream . . . . . . . . . . . . . . . . . . . . . . 12-2

Chapter 13 LDP APIs


::ixia::emulation_ldp_config . . . . . . . . . . . . . . . . . . . . . . . . 13-2

::ixia::emulation_ldp_route_config . . . . . . . . . . . . . . . . . . . 13-7

::ixia::emulation_ldp_control . . . . . . . . . . . . . . . . . . . . . . 13-12

::ixia::emulation_ldp_info . . . . . . . . . . . . . . . . . . . . . . . . . 13-14

Chapter 14 MLD APIs


::ixia::emulation_mld_config. . . . . . . . . . . . . . . . . . . . . . . . 14-2

vi HLTAPI Commands, Release 2.80 Rev. B


Table of Contents

::ixia::emulation_mld_group_config. . . . . . . . . . . . . . . . . . . 14-6

::ixia::emulation_mld_control. . . . . . . . . . . . . . . . . . . . . . . . 14-7

Chapter 15 Multicast APIs


::ixia::emulation_multicast_group_config . . . . . . . . . . . . . . 15-2

::ixia::emulation_multicast_source_config. . . . . . . . . . . . . . 15-4

Chapter 16 OSPF APIs


::ixia::emulation_ospf_config . . . . . . . . . . . . . . . . . . . . . . . . 16-2

::ixia::emulation_ospf_topology_route_config . . . . . . . . . . . 16-8

::ixia::emulation_ospf_control . . . . . . . . . . . . . . . . . . . . . . 16-16

::ixia::emulation_ospf_lsa_config . . . . . . . . . . . . . . . . . . . 16-18

Chapter 17 PIM-SM APIs


::ixia::emulation_pim_config . . . . . . . . . . . . . . . . . . . . . . . . 17-2

::ixia::emulation_pim_group_config. . . . . . . . . . . . . . . . . . . 17-9

::ixia::emulation_pim_control. . . . . . . . . . . . . . . . . . . . . . . 17-13

Chapter 18 PPPoX APIs


::ixia::pppox_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2

::ixia::pppox_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-13

::ixia::pppox_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-14

HLTAPI Commands, Release 2.80 Rev. B vii


Table of Contents

Chapter 19 RIP APIs


::ixia::emulation_rip_config . . . . . . . . . . . . . . . . . . . . . . . . 19-2

::ixia::emulation_rip_route_config . . . . . . . . . . . . . . . . . . . 19-6

::ixia::emulation_rip_control . . . . . . . . . . . . . . . . . . . . . . . . 19-8

Chapter 20 RSVP-TE APIs


::ixia::emulation_rsvp_config . . . . . . . . . . . . . . . . . . . . . . . 20-2

::ixia::emulation_rsvp_tunnel_config . . . . . . . . . . . . . . . . . 20-7

::ixia::emulation_rsvp_control . . . . . . . . . . . . . . . . . . . . . 20-14

::ixia::emulation_rsvp_info . . . . . . . . . . . . . . . . . . . . . . . . 20-15

::ixia::emulation_rsvp_tunnel_info . . . . . . . . . . . . . . . . . . 20-18

Chapter 21 TELNET APIs


::ixia::emulation_telnet_config . . . . . . . . . . . . . . . . . . . . . . 21-2

::ixia::emulation_telnet_traffic_config. . . . . . . . . . . . . . . . 21-10

::ixia::emulation_telnet_stats . . . . . . . . . . . . . . . . . . . . . . 21-14

::ixia::emulation_telnet_control_config. . . . . . . . . . . . . . . 21-23

::ixia::emulation_telnet_control . . . . . . . . . . . . . . . . . . . . 21-29

Appendix A Example APIs


IxNetwork/IxRouter Examples . . . . . . . . . . . . . . . . . . . . . . . A-3

viii HLTAPI Commands, Release 2.80 Rev. B


Table of Contents

IxAccess Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-81

IxOS Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-101

IxLoad Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-110

HLTAPI Commands, Release 2.80 Rev. B ix


Table of Contents

x HLTAPI Commands, Release 2.80 Rev. B


About This Guide

This guide describes the Ixia implementation of the Cisco High Level Tcl API.
The intended audience consists of Cisco test technicians who configure Ixia test
equipment and software.

The intent of the HLTAPI is to make the use of the test equipment easier to auto-
mate. The HLTAPI hides Ixia’s lower level API, greatly reducing test script
changes when Ixia’s lower level API changes in newer releases. Any differences
will be hidden under the HLTAPI, making them completely transparent to the
end user, and thus requiring no changes to the test scripts themselves.

The Ixia HLTAPI adheres to the following Cisco requirements:

• It is a self-contained package containing everything needed to use the


library. The individual test technician uses the TCL “package require”
command to use the Ixia HLTAPI calls.

• It is distributed from a link off of the ATS Web site.

The following sections are contained in this preface:

• Installing HLTAPI on page xii

• Notes on page xv

• What’s New in Release 2.80 SP2 on page xvii

HLTAPI Commands xi
Preface

Installing HLTAPI
Windows The HLTAPI package is provided in two forms, either a ZIP file or a TAR file.
They are named, respectively:

ixia_hlt_api_package_<release>.zip

ixia_hlt_api_package_<release>.tar

where <release> is the release designation.

These file contains all the libraries and utilities required to call the Ixia package.

NOTE: When installing HLTAPI on a chassis, the TclIx component must be


installed in the following directory:

Program Riles/ixia/tclscripts/lib

To install the HLTAPI


1. Download either the ZIP or TAR file from the portal.

2. Extract and copy all directories and files from the ZIP or TAR file into your
TclScripts/lib directory.

3. Verify that the installed environment has a pointer to the location of the pack-
age files.

To access the library procs


• Use the following command:
package require Ixia

NOTE: pkgIndex.tcl files are now provided for IxOS 3.65, 3.70, and 3.80 and
need to be put in place by the user. Future versions of the released IxOS code
for 3.70 and forward will contain the changes in these files, but this allows users
to move forward without having to wait. These files are named
pkgIndex.tcl.install but need to be renamed to pkgIndex.tcl when the user
places them in the proper directories.

UNIX To install the HLTAPI on a Linux/Solaris machine:

1. Download either the ZIP or TAR file from the portal.

2. Extract and copy all directories and files from the ZIP or TAR file into the lib
directory of the IxOS client installation. For example, if the IxOS client is
installed in /home/ixia/ixos4.0, the HLTAPI should be extracted to /home/ixia/
ixos4.0/lib.

Alternatively, create a HLTAPI only and directly extract the files there. In this
case, set the TCLLIBPATH to point to both IXIA client installation and the
HLTAPI installation.

xii HLTAPI Commands


Preface

3. Add the following environment variables to point to the HLTAPI package:

• IXIA_HOME – where the IxOS client is installed.

• IXIA_VERSION – version of IxOS client software. This will be one of


several preset options. See Setting the IXIA_VERSION Variable on page
xiii for more information on how to set this variable.

• TCLLIBPATH – path to the TCL code where the package can be found

See example below:


IXIA_HOME=/home/ixia/ixos4.0
IXIA_VERSION=HLTSET8
TCLLIBPATH=$IXIA_HOME/lib
If HLTAPI is installed in it’s own directory, set TCLLIBPATH to also point to
the HLTAPI directory. For example:
HLTAPI_HOME=/home/hltapi2.4
TCLLIBPATH="$IXIA_HOME/lib $HLTAPI_HOME"
To access HLTAPI library procs, issue the following commands in Tcl or expect
shell:
package require Ixia

NOTE: On an IxOS Windows installation, all the protocols must be installed.


For Cisco IxOS bundled packages (release 3.80 and prior), the "MCAST-01P"
protocol is commonly not installed. Without this package, the HLTAPI
::ixia::connect call generates the following message:

invalid command name ‘mldServer’.

If this or a similar error message appears in IxOS 4.00 (or later), install the
IxRouter or IxNetwork package on both the IxOS chassis and IxOS client.

Setting the IXIA_VERSION Variable


As of the 2.70 HLTAPI release, the IXIA_VERSION variable no longer uses just
the IxOS version number as its setting. Depending on the test environment, a pre-
defined set of values is defined for each of the HLTAPI compatible products.
Table 2-1 on page 2-xiii shows the possible values for IXIA_VERSION.
Table 2-1. IXIA_VERSION Values

env HLT IxOS IxRouter IxNetwork IxAccess IxLoad


(IXIA_VERSION)

HLTSET1 2.40 3.80 NA NA 2.00 NA

HLTSET2 2.40 4.00 4.00 NA 2.00 NA

HLTSET3 2.50 3.80 NA NA 2.00 NA

HLTSET4 2.50 4.00 4.00 NA 2.10 NA

HLTSET5 2.60 4.00 4.00 NA 2.10 NA

HLTAPI Commands xiii


Preface

Table 2-1. IXIA_VERSION Values

env HLT IxOS IxRouter IxNetwork IxAccess IxLoad


(IXIA_VERSION)

HLTSET6 2.60 4.00 4.10 NA 2.10 NA

HLTSET7 2.60 4.10 4.10 NA 2.20 NA

HLTSET8 2.70 4.00 4.10 NA 2.20 NA

HLTSET9 2.70 4.10 4.10 NA 2.20 3.00

HLTSET10 2.70 4.10 4.00 5.00 2.20 3.00

HLTSET11 2.80 4.00 4.10 N/A 2.20 N/A

HLTSET12 2.80 4.10 SP6 4.10 SP1 N/A 2.20 SP2 3.00 SP1
Patch 2 Patch 2

HLTSET13 2.80 4.10 SP5 N/A 5.00 N/A 3.00 SP1

HLTSET14 2.80 4.10 SP6 4.10 N/A 2.30 3.00 SP1

HLTSET15 2.80 4.10 SP6 N/A 5.00 2.30 3.00 SP1

HLTSET16 2.80 4.10 SP6 N/A 5.10 2.30 3.00 SP1

Determine what version of the product to be tested is used, then use the value in
the far left column as the value for IXIA_VERSION. If multiple products are
used, be sure to use a value that incorporates the appropriate version of all Ixia
products in the test.

Notes. The default setting for env(IXIA_VERSION) is HLTSET13. If the value is


set to an IxOS major.minor version, then the largest HLTSET list that
corresponds to that IxOS version is used.
IxAccess 2.20 requires Tcl 8.3. IxLoad 3.00 requires Tcl 8.4.

xiv HLTAPI Commands


Preface

Notes
Command Conventions.
• All the commands in this guide are in the following format:
-command_name_example

A dash (“-”) indicates the beginning of the command (it is a documenta-


tion convention only, and is not used when employing the command). If
the command is made up of multiple words, they are separated by an
underscore (“_”).

In a few instances in this manual, due to space constraints, commands are


forced to break in the middle of the word. When this happens, ignore the
dash indicating the word break when using the command. For example, if
the following command were shown in the manual:
-command_name_ex-
ample

it should be used as follows:


command_name_example

However, if the command breaks at an underscore, it is still necessary to


include the underscore in the command. For example, if the following
command were shown in the manual:
-command_name_
example

it should be used as follows:


command_name_example

• Some commands in this manual are in colored text. Red commands are
Ixia specific commands, while blue commands are Cisco specific com-
mands. For example:
-ipv6_mpls_nlri

is an Ixia specific command, while


-remote_as

is a Cisco specific command.

HLTAPI Commands xv
Preface

HLTAPI
• In the traffic_config call, ICMP options are valid for IPv4 only; ICMP
options are not currently supported for IPv6 streams.

• IGMP is only supported on ports that contain a CPU.

• It is recommended that any applications using HLTAPI should be installed


on an intermediary workstation rather than on an Ixia chassis. In the case
of IxLoad, it is a requirement.

• When installing HLTAPI on a chassis, the TclIx component must be


installed in the following directory:
Program Riles/ixia/tclscripts/lib

xvi HLTAPI Commands


Preface

What’s New in Release 2.80 SP2


This section outlines the new features and changes from HLTAPI 2.80 to 2.80
SP2.
Table 2-2. New Features in HLTAPI 2.80 SP2

Feature Description Link

IGMPoPPP support IGMPoPPP is now supported. See Chapter 8, IGMPvX APIs for
more information

IxAccess DHCP The DHCP options for IxAccess are now See Chapter 5, DHCP APIs for
related API options available. more information

Per port aggregate Per port aggregated Type of Service statistics See Chapter 2, Traffic APIs for
TOS statistics are now available. more information

Per session traffic Per session traffic statistics are now available. See Chapter 2, Traffic APIs for
statistics more information

HLTAPI Commands xvii


Preface

xviii HLTAPI Commands


Session APIs
1
Chapter 1:

This chapter covers the following topics:

• ::ixia::connect on page 1-2.

• ::ixia::interface_config on page 1-4.

• ::ixia::cleanup_session on page 1-15.

• ::ixia::interface_stats on page 1-16.

HLTAPI Commands, Release 2.80 Rev. B 1-1


Session APIs
1

NAME — ::ixia::connect

DESCRIPTION This command connects to the Ixia Chassis, takes ownership of selected ports,
and optionally loads a configuration on the chassis or resets the targeted ports to
factory defaults.

SYNOPSIS ::ixia::connect
-device ip address or chassis name
-port_list interface list
[-reset]
[-config_file chassis configuration file]
[-username username]
[-break_locks CHOICES 0 1]
[-sync CHOICES 0 1]
[-tcl_server tcl server ip address]
[-timeout]
[-nobios]
[-forceload]

ARGUMENTS

-device IP address or name of the chassis. May contain a list of devices.

-reset Resets the card to factory defaults.

-config_file Name of a file containing Ixia configuration information. Must be a .chs file of
an exported chassis from IxExplorer.

-port_list List of Ixia ports of which to take ownership. If multiple devices are specified,
then this is a list of lists. A single item is of the form card number / port number.
So card 2, port 4 would look like 2/4.

-username Username for logging on to the chassis.

-break_locks Valid choices are:

Value Usage

0 Force option is not used.


1 Force option is used when taking ownership.

-sync If enabled, the ixClearTimeStamps routine is called for the reserved port list.

-tcl_server IP address or name of the ixTclServer. Default is the first item in option "device"
list.

-timeout

-nobios

-forceload

1-2 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
port_handle.$device.$port Port in the form of c/l/p.

EXAMPLES See all of the sample files in the Samples subdirectory.


There are also examples shown in Appendix A, "Example
APIs," for usages of the connect procedure.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 1-3


Session APIs
1

NAME — ::ixia::interface_config

DESCRIPTION This command configures an interface on an Ixia Load Module. It provides the
means for managing the Ixia Chassis Test Interface options. Depending on
whether the port is a SONET, Ethernet or ATM type, you have access to the
appropriate protocol properties.

This command accommodates addressing schemes such as like IPv4, IPv6, MAC
and VLAN. You also have access to the SONET properties for a PoS port, and if
the port is configured for PPP, you have access to the PPP configuration options.

SYNOPSIS ::ixia::interface_config
-port_handle interface list
[-intf_mode CHOICES atm pos_hdlc pos_ppp
ethernet frame_relay1490 frame_relay2427
frame_relay_cisco srp srp_cisco rpr gfp]
[-mode CHOICES config modify
destroy]
[-speed CHOICES ether10 ether100
ether1000 oc3 oc12 oc48 oc192 ether10000wan
ether10000lan]
[-phy_mode CHOICES copper fiber]
[-clocksource CHOICES internal loop
external]
[-op_mode CHOICES loopback normal
monitor sim_disconnect]
[-framing CHOICES sonet sdh]
[-rx_fcs CHOICES 16 32]
[-tx_fcs CHOICES 16 32]
[-rx_scrambling CHOICES 0 1]
[-tx_scrambling CHOICES 0 1]
[-rx_c2]
[-tx_c2]
[-duplex CHOICES half full]
[-autonegotiation CHOICES 0 1]
[-vlan CHOICES 0 1]
[-src_mac_addr]
[-intf_ip_addr IP]
[-ipv6_intf_addr IP]
[-netmask IP]
[-ipv6_prefix_length]
[-gateway IPV4]
[-arp_send_req CHOICES 0 1]
[-arp_req_retries]
[-arp_req_timer RANGE 1-100]
[-vpi RANGE 0-255]
[-vci RANGE 32-65535]
[-atm_encapsulation CHOICES VccMuxIPV4Routed
VccMuxBridgedEthernetFCS VccMuxBridgedEthernetNoFCS
VccMuxIPV6Routed VccMuxMPLSRouted LLCRoutedCLIP
LLCBridgedEthernetFCS LLCBridgedEthernetNoFCS
LLCPPPoA VccMuxPPPoA LLCNLPIDRouted]
[-atm_enable_coset CHOICES 0 1]
[-atm_enable_pattern_matching CHOICES 0 1]
[-atm_filler_cell CHOICES idle unassigned]
[-atm_interface_type CHOICES uni nni]

1-4 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

[-atm_packet_decode_mode CHOICES frame cell]


[-atm_reassembly_timeout NUMERIC]
[-data_integrity CHOICES 0 1]
[-no_write FLAG]
[-pgid_128k_bin_enable CHOICES 0 1]
[-pgid_mask]
[-pgid_offset RANGE 4-32677]
[-port_rx_mode CHOICES capture
packet_group data_integrity sequence_checking
wide_packet_group echo auto_detect_instrumentation]
[-ppp_ipv4_address IP]
[-ppp_ipv4_negotiation CHOICES 0 1]
[-ppp_ipv6_negotiation CHOICES 0 1]
[-ppp_mpls_negotiation CHOICES 0 1]
[-ppp_osi_negotiation CHOICES enable disable]
[-qos_stats CHOICES 0 1]
[-qos_byte_offset RANGE 0-63]
[-qos_pattern_offset RANGE 0-65535]
[-qos_pattern_match]
[-qos_pattern_mask]
[-qos_packet_type CHOICES ethernet ip_snap
vlan custom ip_ppp ip_cisco_hdlc ip_atm]
[-rpr_hec_seed CHOICES 0 1]
[-sequence_checking CHOICES 0 1]
[-sequence_num_offset RANGE 24-64000]
[-signature REGEXP ^[0-9a-fA-F]{2}
([.: ]{0,1}){0,11}[0-9a-fA-F]{2}$]
[-signature_mask REGEXP ^[0-9a-fA-F]{2}
([.: ]{0,1}){0,11}[0-9a-fA-F]{2}$]
[-signature_offset RANGE 24-64000]
[-integrity_signature REGEXP ^[0-9a-fA-F]{2}
([.: ]{0,1}){0,11}[0-9a-fA-F]{2}$]
[-integrity_signature_offset RANGE 24-64000]
[-transmit_mode CHOICES advanced stream
flow echo]
[-vlan_id RANGE 0-4096]
[-vlan_user_priority RANGE 0-7]
[-rx_hec]
[-long_lof_wait]
[-crlf_path_trace]
[-tx_enhanced_prdi]
[-rx_enhanced_prdi]
[-ss_bits_pointer_interp]
[-output_enable]
[-tx_k2]
[-tx_s1]
[-signal_fail_ber]
[-auto_line_rdi]
[-auto_line_rei]
[-auto_path_rdi]
[-auto_path_rei]
[-section_unequip]
[-aps]
[-aps_channel]
[-aps_switch_mode]
[-aps_arch]
[-pause_length]

HLTAPI Commands, Release 2.80 Rev. B 1-5


Session APIs
1
[-ignore_pause_frames]
[-interpacket_gap]
[-dst_mac_addr]
[-aps_request_1_1]
[-aps_request_1_n]
[-ipv6_gateway]
[-control_plane_mtu]

ARGUMENTS

-port_handle List of ports of which to take ownership and perform configuration.

-intf_mode SONET header type. Valid choices are:

Value Usage

atm N/A
pos_hdlc N/A
pos_ppp N/A
ethernet N/A
frame_relay1490 N/A
frame_relay2427 N/A
frame_relay_cisco N/A
srp N/A
srp_cisco N/A
rpr N/A
gfp N/A

-mode Action to be taken on the interface selected. Valid choices are:

Value Usage

config N/A
destroy N/A
modify N/A

-speed Speed at which each interface is configured. Valid choices are:

Value Usage

ether10 N/A
ether100 N/A
ether1000 N/A
oc3 N/A
oc12 N/A
oc48 N/A
oc192 N/A
ether10000wan N/A
ether10000lan N/A

1-6 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

-phy_mode For dual mode ethernet interfaces only. Valid choices are:

Value Usage

copper N/A
fiber N/A

-clocksource Clock source for SONET interfaces at which each interface is configured. Valid
choices are:

Value Usage

internal Transmit Clocking Internal


loop Transmit Clocking Recovered
external Transmit Clocking External (77.76MHz)

-op_mode Operational mode on the interface. Valid choices are:

Value Usage
loopback N/A
normal N/A
monitor N/A
sim_disconnect N/A

-framing POS interface type. Valid choices are:

Value Usage

sonet N/A
sdh N/A

-rx_fcs FCS value (16 or 32) for the receiving side of each interfaces. Valid choices are:

Value Usage
16 N/A
32 N/A

-tx_fcs FCS value (16 or 32) for the transmitting side of each interfaces. Valid choices
are:

Value Usage

16 N/A
32 N/A

-rx_scrambling Whether to enable data scrambling in the SONET framer of the Ixia interface.
(SPE Scrambling = X^43+1). Valid choices are:

Value Usage
0 Disable.
1 (default) Enable.

HLTAPI Commands, Release 2.80 Rev. B 1-7


Session APIs
1
-tx_scrambling Whether to enable data scrambling in the SONET framer of the Ixia interface.
(SPE Scrambling = X^43+1). Valid choices are:

Value Usage

0 Disable.
1 (default) Enable.

-rx_c2 Receive Path Signal Label for the Ixia interface.

-tx_c2 Transmit Path Signal Label for the Ixia interface.

-duplex Whether duplex is full or half. Valid choices are:

Value Usage

full N/A
half N/A

-autonegotiation Whether to enable auto-negotiation on each interface. Valid choices are:

Value Usage
0 Disable.
1 (default) Enable.

-vlan Whether to enable VLAN on the traffic generation tool interfaces. Valid choices
are:

Value Usage
1 Enable.
0 (default) Disable.

-src_mac_addr MAC address of the port. Valid formats are:

{00 00 00 00 00 00}, 00:00:00:00:00:00, 0000.0000.0000, 00.00.00.00.00.00,


{0000 0000 0000}

-intf_ip_addr List of IP addresses that configure each of the traffic generation tool interfaces.

-ipv6_intf_addr List of IPv6 addresses that configure each of the traffic generation tool interfaces.

-netmask Network mask used for IP address configuration of the traffic generation tool
interfaces.

-ipv6_prefix_length

-gateway List of IP addresses that configure the addresses of the gateway (that is, the DUT
interface IP addresses).

1-8 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

-arp_send_req Whether sending an ARP request to the DUT is enabled. You can use this basic
function to ensure correct addressing of the interfaces. By default, the ARP is
sent on the Ethernet port. Valid choices are:

Value Usage

0 (default) Disable.
1 Enable.

-arp_req_retries

-arp_req_timer (depracated) The value has no effect on the code. It was left in so as not to break
existing scripts that attempt to use it.

-atm_encapsulation Sets atm encapsulation type for ports that support ATM feature

-atm_enable_coset If 1, enables the Coset algorithm to be used with the Header Error Control (HEC)
byte.

(DEFAULT = 1)

-atm_enable_pattern_ If 1, then the use of capture and filter based on ATM patterns is enabled and the
matching maximum number of VCCs is reduced to 12,288.

(DEFAULT = 1)

-atm_filler_cell SONET frame transmission is continuous even when data or control messages
are not being transmitted. This option allows the cell type that is transmitted dur-
ing these intervals. Valid choices are:

Value Usage

idle (default) idle cells are transmitted with VPI/


VCI = 0/0 and CLP = 0.
unassigned unassigned cells are transmitted with VPI/VCI
= 0/0 and CLP = 0.

-atm_interface_type The type of interface to emulate. Valid choices are:

Value Usage

uni (default) user to network interface


nni network to network interface

-atm_packet_decode_ This setting controls the interpretation of received packets when they are
mode decoded. Valid choices are:

Value Usage

frame (default) Decode the packet as a frame.


cell Decode the packet as an ATM cell.

HLTAPI Commands, Release 2.80 Rev. B 1-9


Session APIs
1
-atm_reassembly_timeout Sets the value for the Reassembly Timeout, which is the period of time
(expressed in seconds) that the receive side will wait for another cell on that
channel - for reassembly of cells into a CPCS PDU (packet). If no cell is
received within that period, the timer will expire.

(DEFAULT = 10)

-data_integrity Whether to enable the data integrity checking capability on the port. Valid
choices are:

Value Usage

0 (default) Disable.
1 Enable.

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-pgid_128k_bin_enable Enables the 128k bin mode so that the wide packet group receive mode will be
larger.

-pgid_mask The mask value to use when the -port_rx_mode is set to wide_packet_group.
Value is by default a two byte value, in hex form, without any spaces (e.g.,
AAAA).

-pgid_offset The group ID offset value. If -port_rx_mode is set to auto_detect_instrumenta-


tion then this offset will be ignored, only the pgid value is needed.

-port_rx_mode Configure the Receive Engine of the Ixia port. Valid choices are:

Value Usage

capture Capture packets.


latency Calculate latency.
data_integrity Check data integrity.
sequence_checking Check data sequencing.
packet_group Compile statistics for specified packet group.
PGID is 2 bytes.
wide_packet_group Compile statistics for specified packet group.
PGID is 4 bytes, but only the low order 17
bits are active.
auto_detect_instrumentation Automatic instrumentation detection This
option includes wide_packet_group mode
also. If this option is set then, for PGID, data
integrity checking and sequence checking
there will be no need for specifying signature
offset, only signature value will be provided.
echo Gigabit echo mode.

-ppp_ipv4_address IPv4 address for which to enable or disable PPP IPv4 negotiation.

1-10 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

-ppp_ipv4_negotiation Whether to enable PPP IPv4 negotiation on this port. Valid choices are:

Value Usage

0 Disable.
1 (default) Enable.

-ppp_ipv6_negotiation Whether to enable PPP IPv6 negotiation on this port. Valid choices are:

Value Usage

0 Disable.
1 (default) Enable.

-ppp_mpls_negotiation Whether to enable PPP MPLS negotiation on this port. Valid choices are:

Value Usage
0 Disable.
1 (default) Enable.

-ppp_osi_negotiation Whether to enable OSI Network Control protocol on the Ixia PoS port. Valid
choices are:

Value Usage
0 Disable.
1 (default) Enable.

-qos_stats Whether to have access to the QOS (IP TOS PRECEDENCE) statistics on this
port. Valid choices are:

Value Usage

0 Disable.
1 (default) Enable.

-qos_byte_offset The byte offset from the beginning of the packet for the byte which contains the
QoS level for the packet.

(DEFAULT = 14)

-qos_pattern_offset The byte offset from the beginning of the packet for the byte(s) that contains a
value to be matched. If the pattern is matched, then the packet is deemed to con-
tain a QoS level.

(DEFAULT = 12)

-qos_pattern_match The value to be matched for at the Pattern Match Offset, subject to the Pattern
Match Mask. The value is in hex.

(DEFAULT = 8100)

-qos_pattern_mask The mask to be applied to the pattern match. Value of 1 indicate that the corre-
sponding bit is not to be matched.

(DEFAULT = 0000)

HLTAPI Commands, Release 2.80 Rev. B 1-11


Session APIs
1
-qos_packet_type The type of packet that the QoS counters are looking for priority bits within.
Choices are: ethernet, ip_snap, vlan, custom, ip_ppp, ip_cisco_hdlc, ip_atm.

(DEFAULT = vlan)

-sequence_checking Whether to enable the frame sequence capability on this port. Valid choices are:

Value Usage

0 (default) Disable.
1 Enable.

-rpr_hec_seed The initial setting of the CRC for the 16 byte header. This option is used only
when intf_mode is set to rpr. Valid choices are:

Value Usage

0 (default) 0x0000
1 0xFFFF

-sequence_num_offset The offset of the sequence number in the packet.

If -port_rx_mode is set to auto_detect_instrumentation then this

offset will be ignored.

(DEFAULT = 44)

-signature Signature used in the packet for Packet Group Statistics when packet groups or
wide packet groups are enable. This signature will be searched into the received
packets at offset represented by -signature_offset.

(DEFAULT = "DE AD BE EF")

If -port_rx_mode is set to auto_detect_instrumentation then this option will rep-


resent the a signature value of 12 hex bytes. This signature will be searched into
the received packets starting with offset -signature_start_offset.

(DEFAULT = "87 73 67 49 42 87 11 80 08 71 18 05")

-signature_mask Sets the signature mask when -port_rx_mode is set to auto_detect_instrumenta-


tion. Value 1 means don't care and value 0 means that that bit should correspond
to the signature. If -signature is "00 00 00 00 00 00 00 00 23 45 67 89" and the -
signature_mask is "FF FF FF FF FF FF FF FF 00 00 00 00", then only last 4
bytes will be searched in the packet. (DEFAULT = "00 00 00 00 00 00 00 00 00
00 00 00")

-signature_offset The offset of the signature in the packet. You can configure a fully customized
signature in the packet for advanced testing. The signature of the packet is a 4-
byte value, "DE AD BE EF". This signature is used for ease of readability when
capturing packets. If -port_rx_mode is set to auto_detect_instrumentation then
this offset will be ignored.

(DEFAULT = 48 bytes)

-signature_start_offset If -port_rx_mode is set to auto_detect_instrumentation then this will be the offset


start to search into the received packets for -signature <signature> option.

(DEFAULT = 0 bytes)

1-12 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

-integrity_signature Signature used in the packet for data integrity checking. When the Receive Mode
for a port is configured to check for data integrity, received packets are matched
for the data integrity signature value. This signature is a 4-byte value.

(DEFAULT = "08 71 18 05")

-integrity_signature_offset The offset of the data integrity signature in the packet. If -port_rx_mode is set to
auto_detect_instrumentation then this offset will be ignored, only the -integrity_
signature is needed.

(DEFAULT = 40 bytes)

-transmit_mode Type of stream for this port. Valid choices are:

Value Usage

advanced (default) Sets up the hardware to use the


advanced stream scheduler, which involves
the ability to interleave differing streams
within one stream definition.
stream Sets up the hardware to use normal streams.
flow Sets up the hardware to use flows.
echo Sets up port to echo received packets (for
gigabit cards only).

-vlan_id VLAN ID of each interface where VLAN is enabled. Valid choices are between
0 and 4095, inclusive.

(DEFAULT = 0)

-vlan_user_priority If VLAN is enabled on the interface, the priority of the VLAN. Valid choices are
between 0 and 7, inclusive.

(DEFAULT = 0)

-rx_hec

-long_lof_wait

-crlf_path_trace

-tx_enhanced_prdi

-rx_enhanced_prdi

-ss_bits_pointer_interp

-output_enable

-tx_k2

-tx_s1

-signal_fail_ber

-auto_line_rdi

-auto_line_rei

HLTAPI Commands, Release 2.80 Rev. B 1-13


Session APIs
1
-auto_path_rdi

-auto_path_rei

-section_unequip

-aps

-aps_channel

-aps_switch_mode

-aps_arch

-pause_length

-ignore_pause_frames

-interpacket_gap

-dst_mac_addr

-aps_request_1_1

-aps_request_1_n

-ipv6_gateway

-control_plane_mtu

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
interface_handle A handle that can be used in router configs

EXAMPLES See files starting with Interface_ in the Samples


subdirectory. Also see most of the other sample files
for further examples of the usage. See Appendix A,
"Example APIs," for further examples of the interface_
config usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) You can configure multiple interfaces on the same Ixia port.

SEE ALSO

1-14 HLTAPI Commands, Release 2.80 Rev. B


Session APIs

NAME — ::ixia::cleanup_session

DESCRIPTION This command disconnects, resets to factory defaults, and removes ownership
from a list of ports. This command can be used after a script is run.

SYNOPSIS ::ixia::cleanup_session
[-maintain_lock CHOICES 1 0]
[-port_handle interface list]
[-reset]
[-handle]

ARGUMENTS

-maintain_lock Valid choices are:

Value Usage
0 Unlock test ports. Use this value at end of
tests.
1 Do not unlock test ports. Use this value at
beginning of tests.

-port_handle List ports to release.

-reset Reset the ports to factory defaults before releasing them.

-handle

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.

EXAMPLES See the file Streams_IPv4_stats.tcl in the Samples


subdirectory for a specific example of the usage of this
command. See Appendix A, "Example APIs," for further
examples.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 1-15


Session APIs
1

NAME — ::ixia::interface_stats

DESCRIPTION Retrieves interface statistics and counter information for the specified test port.

SYNOPSIS ::ixia::interface_stats
-port_handle

ARGUMENTS

-port_handle List ports to release.

RETURN VALUES

Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
intf_type same info as intf_mode of interface_config
framing SONET or SDH, if applicable
card_name official card name
port_name official port name
intf_speed same info as speed in interface_config
tx_frames frames sent
rx_frames frames received
elapsed_time transmit duration
rx_collisions collision frames received
total_collisions total collisions
duplex duplex value, full or half
fcs_errors number of fcs errors
late_collision number of late collisions
link link value representative of an IxTclHal enum

EXAMPLES

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

All keys that are not listed in this documentation are not supported in the current
implementation of this command.

SEE ALSO

1-16 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs
2
Chapter 2:

This chapter covers the following topics:

• ::ixia::traffic_config on page 2-2.

• ::ixia::traffic_control on page 2-45.

• ::ixia::traffic_stats on page 2-47.

HLTAPI Commands, Release 2.80 Rev. B 2-1


Traffic APIs
2

NAME — ::ixia::traffic_config

DESCRIPTION This command configures traffic streams on the specified port with the specified
options.

SYNOPSIS ::ixia::traffic_config
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
-mode CHOICES create modify remove
reset enable
[-port_handle2 REGEXP ^[0-9]+/[0-9]+/[0-9]+$
[-emulation_src_handle]
[-emulation_dst_handle]
[-bidirectional FLAG]
[-stream_id RANGE 1-255]
[-length_mode CHOICES fixed increment
random auto imix gaussian quad]
[-l3_length RANGE 1-64000]
[-l3_length_min RANGE 1-64000]
[-l3_length_max RANGE 1-64000]
[-l3_imix1_size RANGE 32-1518]
[-l3_imix1_ratio]
[-l3_imix2_size RANGE 32-1518]
[-l3_imix2_ratio]
[-l3_imix3_size RANGE 32-1518]
[-l3_imix3_ratio]
[-l3_imix4_size RANGE 32-1518]
[-l3_imix4_ratio]
[-l3_gaus1_avg DECIMAL]
[-l3_gaus1_halfbw DECIMAL]
[-l3_gaus1_weight NUMERIC]
[-l3_gaus2_avg DECIMAL]
[-l3_gaus2_halfbw DECIMAL]
[-l3_gaus2_weight NUMERIC]
[-l3_gaus3_avg DECIMAL]
[-l3_gaus3_halfbw DECIMAL]
[-l3_gaus3_weight NUMERIC]
[-l3_gaus4_avg DECIMAL]
[-l3_gaus4_halfbw DECIMAL]
[-l3_gaus4_weight NUMERIC]
[-rate_pps]
[-rate_bps]
[-rate_percent RANGE 0-100]
[-transmit_mode CHOICES continuous
random_spaced single_pkt single_burst multi_burst
continuous_burst return_to_id return_to_id_for_count
advance]
[-pkts_per_burst INTEGER]
[-burst_loop_count INTEGER]
[-inter_burst_gap INTEGER]
[-inter_stream_gap INTEGER]
[-vlan_id RANGE 0-4095]
[-vlan_id_count RANGE 0-4095]
[-vlan_id_step NUMERIC]
[-vlan_user_priority RANGE 0-7]
[-vlan_id_mode CHOICES fixed increment
decrement random]

2-2 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

[-vlan_cfi CHOICES 0 1]
[-fcs CHOICES 0 1]
[-mpls_labels]
[-l2_encap CHOICES atm_vc_mux
atm_vc_mux_ethernet_ii atm_vc_mux_802.3snap
atm_vc_mux_802.3snap_nofcs atm_vc_mux_ppp
atm_vc_mux_pppoe atm_snap atm_snap_ethernet_ii
atm_snap_802.3snap atm_snap_802.3snap_nofcs
atm_snap_ppp atm_snap_pppoe hdlc_unicast
hdlc_broadcast hdlc_unicast_mpls hdlc_multicast_mpls
ethernet_ii ethernet_ii_unicast_mpls
ethernet_ii_multicast_mpls ethernet_ii_vlan
ethernet_ii_vlan_unicast_mpls
ethernet_ii_vlan_multicast_mpls ethernet_ii_pppoe
ethernet_ii_vlan_pppoe ppp_link ietf_framerelay
cisco_framerelay]
[-mac_src MAC]
[-mac_src_mode CHOICES fixed increment
decrement random emulation]
[-mac_src_step MAC]
[-mac_src_count INTEGER]
[-mac_dst MAC]
[-mac_dst_mode CHOICES fixed increment
decrement discovery random]
[-mac_dst_step MAC]
[-mac_dst_count INTEGER]
[-mac_src2 MAC]
[-mac_dst2 MAC]
[-l3_protocol CHOICES ipv4 ipv6 arp
pause_control ipx]
[-ip_src_addr IP]
[-ip_src_mode CHOICES fixed increment
decrement random emulation]
[-ip_src_count 1-1000000]
[-ip_src_step IP]
[-ip_dst_addr IP]
[-ip_dst_mode CHOICES fixed increment
decrement random emulation]
[-ip_dst_count 1-1000000]
[-ip_dst_step IP]
[-ip_fragment_offset RANGE 0-8191]
[-ip_fragment CHOICES 0 1]
[-ip_fragment_last CHOICES 0 1]
[-ip_ttl RANGE 0-255]
[-ip_protocol RANGE 0-255]
[-ip_id RANGE 0-65535]
[-ip_precedence RANGE 0-7]
[-ip_dscp RANGE 0-63]
[-ipv6_src_addr IPV6]
[-ipv6_src_mode CHOICES fixed increment
decrement random]
[-ipv6_src_count 1-1000000]
[-ipv6_src_step IPV6]
[-ipv6_dst_addr IPV6]
[-ipv6_dst_mode CHOICES fixed increment
decrement random]
[-ipv6_dst_count RANGE 1-1000000]

HLTAPI Commands, Release 2.80 Rev. B 2-3


Traffic APIs
2
[-ipv6_dst_step IPV6]
[-ipv6_traffic_class RANGE 0-255]
[-ipv6_flow_label RANGE 0-1048575]
[-ipv6_hop_limit RANGE 0-255]
[-ipv6_frag_offset RANGE 0-8191 DEFAULT 100]
[-ipv6_frag_more_flag FLAG CHOICES 0 1 DEFAULT 0 ]
[-ipv6_frag_id RANGE 0-4294967295
DEFAULT 286335522]
[-l4_protocol CHOICES icmp igmp ggp gre ip
st tcp ucl egp igp bbn_rcc_mon nvp_ii pup argus emcon
xnet chaos udp mux dcn_meas hmp prm xns_idp trunk_1
trunk_2 leaf_1 leaf_2 rdp irtp iso_tp4 netblt mfe_nsp
merit_inp sep cftp sat_expak mit_subnet rvd ippc
sat_mon ipcv br_sat_mon wb_mon wb_expak rip]
[-icmp_type RANGE 0-255]
[-icmp_code RANGE 0-255]
[-icmp_id RANGE 0-65535]
[-icmp_seq RANGE 0-65535]
[-udp_src_port RANGE 0-65535]
[-udp_dst_port RANGE 0-65535]
[-tcp_src_port RANGE 0-65535]
[-tcp_dst_port RANGE 0-65535]
[-tcp_seq_num RANGE 0-65535]
[-tcp_ack_num RANGE 0-65535]
[-tcp_window RANGE 0-65535]
[-tcp_urgent_ptr RANGE 0-65535]
[-tcp_urg_flag CHOICES 0 1]
[-tcp_psh_flag CHOICES 0 1]
[-tcp_syn_flag CHOICES 0 1]
[-tcp_ack_flag CHOICES 0 1]
[-tcp_rst_flag CHOICES 0 1]
[-tcp_fin_flag CHOICES 0 1]
[-igmp_group_addr IP]
[-igmp_group_mode CHOICES fixed increment
decrement]
[-igmp_group_count RANGE 0-65535]
[-igmp_max_response_time RANGE 0-255]
[-igmp_type CHOICES membership_query
membership_reportdvmrp leave_group]
[-igmp_version CHOICES 1 2 3]
[-vpi RANGE 0-4096]
[-vci RANGE 0-65535]
[-vpi_step RANGE 0-4095]
[-vpi_count RANGE 0-4096]
[-vci_step RANGE 0-65534]
[-vci_count RANGE 0-65535]
[atm_header_aal5error CHOICES no_error bad_crc]
[atm_header_cell_loss_priority CHOICES 0 1]
[atm_header_cpcs_length RANGE 28-65535]
[atm_header_enable_auto_vpi_vci CHOICES 0 1]
[atm_header_enable_cl CHOICES 0 1]
[atm_header_enable_cpcs_length CHOICES 0 1]

2-4 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

[atm_header_encapsulation CHOICES vcc_mux_ipv4_routed


vcc_mux_bridged_eth_fcs vcc_mux_bridged_eth_no_fcs
vcc_mux_ipv6_routed vcc_mux_mpls_routed
llc_routed_clip llc_bridged_eth_fcs
llc_bridged_eth_no_fcs llc_pppoa vcc_mux_ppoa
llc_nlpid_routed]
[atm_header_generic_flow_ctrl RANGE 0-15]
[atm_header_hec_errors RANGE 0-8]
[atm_counter_vpi_data_item_list ANY]
[atm_counter_vci_data_item_list ANY]
[atm_counter_vpi_mask_select ANY]
[atm_counter_vci_mask_select ANY]
[atm_counter_vpi_mask_value ANY]
[atm_counter_vci_mask_value ANY]
[atm_counter_vpi_mode CHOICES incr cont_incr decr
cont_decr]
[atm_counter_vci_mode CHOICES incr cont_incr decr
cont_decr]
[atm_counter_vpi_type CHOICES fixed counter random
table]
[atm_counter_vci_type CHOICES fixed counter random
table]
[-data_pattern]
[-data_pattern_mode CHOICES incr_byte decr_byte
fixed random repeating]
[-dhcp_boot_filename]
[-dhcp_client_hw_addr]
[-dhcp_client_ip_addr IP]
[-dhcp_flags CHOICES broadcast no_
broadcast]
[-dhcp_hops NUMERIC]
[-dhcp_hw_len NUMERIC]
[-dhcp_hw_type RANGE 1-21]
[-dhcp_operation_code CHOICES reply request]
[-dhcp_relay_agent_ip_addr IP]
[-dhcp_seconds NUMERIC]
[-dhcp_server_host_name]
[-dhcp_server_ip_addr IP]
[-dhcp_transaction_id NUMERIC]
[-dhcp_your_ip_addr IP]
[-enable_data_integrity CHOICES 0 1]
[-ethernet_type CHOICES ethernetII
ieee8023snap ieee8023 ieee8022]
[-ethernet_value HEX]
[-enable_auto_detect_instrumentation CHOICES 0 1]
[-fcs_type CHOICES bad_CRC no_CRC
alignment dribble]
[-frame_sequencing CHOICES enable disable]
[-frame_sequencing_offset]
[-frame_size RANGE 20-13312]
[-frame_size_max RANGE 20-13312]
[-frame_size_min RANGE 20-13312]
[-frame_size_step RANGE 0-13292]
[-gre_checksum_enable CHOICES 0 1]
[-gre_checksum HEX]
[-gre_key_enable CHOICES 0 1]
[-gre_key HEX]

HLTAPI Commands, Release 2.80 Rev. B 2-5


Traffic APIs
2
[-gre_reserved0 HEX]
[-gre_reserved1 HEX]
[-gre_seq_enable CHOICES 0 1]
[-gre_seq_number HEX]
[-gre_valid_checksum_enable CHOICES 0 1]
[-gre_version RANGE 0-7]
[-inner_protocol CHOICES ipv4 ipv6 HEX]
[-inner_ip_src_addr IPV4]
[-inner_ip_src_mode CHOICES fixed increment
decrement random]
[-inner_ip_src_count RANGE 1-1000000]
[-inner_ip_src_step IPV4]
[-inner_ip_dst_addr IPV4]
[-inner_ip_dst_mode CHOICES fixed increment
decrement random]
[-inner_ip_dst_count RANGE 1-1000000]
[-inner_ip_dst_step IPV4]
[-inner_ipv6_src_addr IPV6]
[-inner_ipv6_src_mode CHOICES fixed increment
decrement random]
[-inner_ipv6_src_count RANGE 1-1000000]
[-inner_ipv6_src_step IPV6]
[-inner_ipv6_dst_addr IPV6]
[-inner_ipv6_dst_mode CHOICES fixed increment
decrement random]
[-inner_ipv6_dst_count RANGE 1-1000000]
[-inner_ipv6_dst_step IPV6]
[-inner_ipv6_traffic_class RANGE 0-255]
[-inner_ipv6_flow_label RANGE 0-1048575]
[-inner_ipv6_hop_limit RANGE 0-255]
[-inner_ipv6_frag_offset RANGE 0-8191]
[-inner_ipv6_frag_more_flag FLAG]
[-inner_ipv6_frag_id RANGE 0-4294967295]
[-integrity_signature REGEXP ^([0-9a-fA-F]{2}[.:
]{0,1}){0,3}[0-9a-fA-F]{2}$]
[-integrity_signature_offset RANGE 12-65535]
[-ip_length_override CHOICES 0 1]
[-ip_total_length RANGE 0-65535]
[-ip_cost CHOICES 0 1]
[-ip_delay CHOICES 0 1]
[-ip_opt_security]
[-ip_opt_loose_routing IP]
[-ip_opt_strict_routing IP]
[-ip_opt_timestamp]
[-ip_reliability CHOICES 0 1]
[-ip_reserved CHOICES 0 1]
[-ip_throughput CHOICES 0 1]
[-isl CHOICES 0 1]
[-isl_bpdu]
[-isl_frame_type CHOICES ethernet atm fddi
token_ring]
[-isl_index]
[-isl_user_priority RANGE 0-7]
[-isl_vlan_id RANGE 1-4096]
[-ipv6_extension_header CHOICES none hop_by_hop
routing destination authentication fragment]
[-ipv6_hop_by_hop_options]

2-6 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

[-ipv6_routing_node_list IPV6]
[-ipv6_routing_res REGEXP ^([0-9a-fA-
F]{2}[.:]{1}){3}[0-9a-fA-F]{2}$ DEFAULT 00:00:00:00]
[-ipv6_frag_res_2bit RANGE 0-3 DEFAULT 3]
[-ipv6_frag_res_8bit RANGE 0-127 DEFAULT 30]
[-ipv6_auth_string REGEXP ^([0-9a-fA-
F]{2}[.:]{1})+[0-9a-fA-F]{2}$ DEFAULT 00:00:00:00]
[-ipv6_auth_payload_len RANGE 0-4294967295
DEFAULT 2]
[-ipv6_auth_spi RANGE 0-4294967295 DEFAULT 0]
[-ipv6_auth_seq_num RANGE 0-4294967295 DEFAULT 0]
[-l3_length_step RANGE 1-64000]
[-mpls CHOICES enable disable]
[-mpls_bottom_stack_bit CHOICES 0 1]
[-mpls_exp_bit]
[-mpls_ttl]
[-mpls_type CHOICES unicast multicast]
[-name]
[-no_write]
[-pause_control_time RANGE 0-65535]
[-qos_byte RANGE 0-127 DEFAULT 0]
[-qos_rate_mode CHOICES percent pps bps
DEFAULT bps]
[-qos_rate NUMERIC]
[-qos_atm_clp CHOICES 0 1 DEFAULT 0]
[-qos_atm_efci CHOICES 0 1 DEFAULT 0]
[-qos_atm_cr CHOICES 0 1 DEFAULT 0]
[-qos_fr_cr CHOICES 0 1 DEFAULT 0]
[-qos_fr_de CHOICES 0 1 DEFAULT 0]
[-qos_fr_becn CHOICES 0 1 DEFAULT 0]
[-qos_fr_fecn CHOICES 0 1 DEFAULT 0]
[-qos_ipv6_flow_label RANGE 0-1048575 DEFAULT 0]
[-qos_ipv6_traffic_class RANGE 0-255 DEFAULT 0]
[-enable_voice CHOICES 0 1 DEFAULT 0]
[-enable_data CHOICES 0 1 DEFAULT 0]
[-voice_tos RANGE 0-127]
[-data_tos RANGE 0-127]
[-rip_command CHOICES request response
trace_ontrace_off reserved]
[-rip_version CHOICES 1 2]
[-enable_time_stamp]
[-vlan CHOICES enable disable]
[-vlan_protocol_tag_id CHOICES 8100 9100 9200]
[-number_of_packets_per_stream]
[-table_udf_column_name]
[-table_udf_column_type CHOICES hex ascii binary
decimal macipv4 ipv6 REGEXP ^([0-9]+[a|b|d|x],)*[0-
9]+[a|b|d|x]$]
[-table_udf_column_offset]
[-table_udf_column_size]
[-table_udf_rows]
[-enable_udf1]
[-udf1_mode]
[-udf1_offset]
[-udf1_counter_type]
[-udf1_counter_up_down]
[-udf1_counter_init_value]

HLTAPI Commands, Release 2.80 Rev. B 2-7


Traffic APIs
2
[-udf1_counter_repeat_count]
[-udf1_counter_step]
[-udf1_value_list]
[-udf1_counter_mode]
[-udf1_inner_repeat_value]
[-udf1_inner_repeat_count]
[-udf1_inner_step]
[-udf1_enable_cascade]
[-udf1_cascade_type]
[-udf1_skip_zeros_and_ones]
[-udf1_mask_select]
[-udf1_mask_val]
[-udf1_skip_mask_bits]
[-enable_udf2]
[-udf2_mode]
[-udf2_offset]
[-udf2_counter_type]
[-udf2_counter_up_down]
[-udf2_counter_init_value]
[-udf2_counter_repeat_count]
[-udf2_counter_step]
[-udf2_value_list]
[-udf2_counter_mode]
[-udf2_inner_repeat_value]
[-udf2_inner_repeat_count]
[-udf2_inner_step]
[-udf2_enable_cascade]
[-udf2_cascade_type]
[-udf2_skip_zeros_and_ones]
[-udf2_mask_select]
[-udf2_mask_val]
[-udf2_skip_mask_bits]
[-enable_udf3]
[-udf3_mode]
[-udf3_offset]
[-udf3_counter_type]
[-udf3_counter_up_down]
[-udf3_counter_init_value]
[-udf3_counter_repeat_count]
[-udf3_counter_step]
[-udf3_value_list]
[-udf3_counter_mode]
[-udf3_inner_repeat_value]
[-udf3_inner_repeat_count]
[-udf3_inner_step]
[-udf3_enable_cascade]
[-udf3_cascade_type]
[-udf3_skip_zeros_and_ones]
[-udf3_mask_select]
[-udf3_mask_val]
[-udf3_skip_mask_bits]
[-enable_udf4]
[-udf4_mode]
[-udf4_offset]
[-udf4_counter_type]
[-udf4_counter_up_down]
[-udf4_counter_init_value]

2-8 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

[-udf4_counter_repeat_count]
[-udf4_counter_step]
[-udf4_value_list]
[-udf4_counter_mode]
[-udf4_inner_repeat_value]
[-udf4_inner_repeat_count]
[-udf4_inner_step]
[-udf4_enable_cascade]
[-udf4_cascade_type]
[-udf4_skip_zeros_and_ones]
[-udf4_mask_select]
[-udf4_mask_val]
[-udf4_skip_mask_bits]
[-enable_udf5]
[-udf5_mode]
[-udf5_offset]
[-udf5_counter_type]
[-udf5_counter_up_down]
[-udf5_counter_init_value]
[-udf5_counter_repeat_count]
[-udf5_counter_step]
[-udf5_value_list]
[-udf5_counter_mode]
[-udf5_inner_repeat_value]
[-udf5_inner_repeat_count]
[-udf5_inner_step]
[-udf5_enable_cascade]
[-udf5_cascade_type]
[-udf5_skip_zeros_and_ones]
[-udf5_mask_select]
[-udf5_mask_val]
[-udf5_skip_mask_bits]
[-signature REGEXP ^([0-9a-fA-F]{2}[.:
]{0,1}){0,11}[0-9a-fA-F]{2}$]
[-signature_offset]
[-enable_pgid]
[-pgid_value REGEXP ^([0-9a-fA-F]{2}[.:
]{0,1}){0,3}[0-9a-fA-F]{2}$ NUMERIC ]
[-number_of_packets_tx]
[-loop_count]
[-return_to_id]
[-adjust_rate]
[-variable_user_rate CHOICES 0 1 DEFAULT 0]
[-l7_traffic CHOICES 0 1 DEFAULT 0]
[-duration NUMERIC DEFAULT 10]
[-pppoe_unique_acmac CHOICES 0 1 DEFAULT 0]
[-session_repeat_count RANGE 1-8000 DEFAULT 1]
[-session_traffic_stats CHOICES 0 1 DEFAULT 0]
[-ppp_session_id]
[-mac_src2_mode]
[-mac_src2_step]
[-mac_src2_count]
[-mac_dst2_mode]
[-mac_dst2_step]
[-mac_dst2_count]
[-ip_src_skip_multicast]
[-ip_src_skip_broadcast]

HLTAPI Commands, Release 2.80 Rev. B 2-9


Traffic APIs
2
[-ip_dst_skip_multicast]
[-ip_dst_skip_broadcast]
[-ip_hdr_length]
[-ip_bit_flags]
[-ip_mbz]
[-ip_cu]
[-ip_tos_field]
[-ip_precedence_step]
[-ip_precedence_count]
[-ip_dscp_step]
[-ip_dscp_count]
[-ipv6_length]
[-ipv6_next_header]
[-igmp_group_step]
[-igmp_msg_type]
[-igmp_multicast_src]
[-igmp_s_flag]
[-igmp_qrv]
[-igmp_qqic]
[-igmp_record_type]

ARGUMENTS

-port_handle The port for which to configure traffic.

-port_handle2 A second port for which to configure traffic configuration when option "bidirec-
tional" is enabled.

-emulation_src_handle The handle used to retrieve information for L2 or L3 src addresses.

-emulation_dst_handle The handle used to retrieve information for L2 or L3 dst addresses.

-bidirectional Whether traffic is setup to transmit in both directions. The two ports receiving
and transmitting are specified by options port_handle and port_handle2. Option
"l3_protocol" source and destination addresses are swapped to get the traffic
flowing in both directions.

The parameters are based on the port associated with port_handle and are
swapped for the port associated with port_handle2.

MAC addresses can be handled in two ways. First, if the MAC destination
addresses are not provided, ARP is used to get the next hop MAC address based
on the gateway IP address set in the command interface_config. Second, use
option "mac_dst" and "mac_dst2" addresses provided by this command. Option
"mac_dst2" applies to the port associated with option "port_handle2". Option
"stream_id" is the same for both directions.

As for the Source MAC, you can use option "mac_src2" to configure the MAC
on the second port, and option "mac_dst2" to configure the destination MAC on
the second port if you are not using L2 next hop. Valid choices are:

Value Usage

0 Disabled.
1 Enabled.

2-10 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-mode What specific action is taken. Valid choices are:

Value Usage

create Create only one stream.


modify Modify only one existing stream.
remove Remove/disable an existing stream.
reset Remove all existing traffic setups.
enable Enables only existing stream.

-stream_id Required for -mode modify and remove calls. Stream ID is not required for con-
figuring a stream for the first time. In this case, the stream ID is returned from the
call.

-length_mode Behavior of the packet size for a particular stream. Valid choices are:

Value Usage
fixed N/A
increment N/A
random N/A
auto N/A
imix Mix of packet sizes are specified using
options l3_imix1_size etc
gaussian, quad Packet sizes are specified as gaussian/quad
curves using options l3_gaus1_avg, l3_
gaus1_halfbw, l3_gaus1_weight etc.

-l3_length Packet size in bytes. Use this option in conjunction with option "length_mode"
set to fixed. Valid choices are between 1 and 64000, inclusive.

-l3_length_min Minimum packet size for the specified stream in bytes. Use this option in con-
junction with option "length_mode" set to increment.

-l3_length_max Maximum packet size for the specified stream in bytes. Use this option in con-
junction with option "length_mode" set to increment.

-l3_imix1_size First Packet size in bytes. Used if length_mode set to imix.

-l3_imix1_ratio Ratio of first packet size. Used if length_mode set to imix.

-l3_imix2_size Second Packet size in bytes. Used if length_mode set to imix.

-l3_imix2_ratio Ratio of second packet size. Used if length_mode set to imix.

-l3_imix3_size Third Packet size in bytes. Used if length_mode set to imix.

-l3_imix3_ratio Ratio of third packet size. Used if length_mode set to imix.

-l3_imix4_size Fourth Packet size in bytes. Used if length_mode set to imix.

-l3_imix4_ratio Ratio of fourth packet size. Used if length_mode set to imix.

-l3_gaus1_avg The center of the first curve. Used if length_mode is set to gaussian or quad.

HLTAPI Commands, Release 2.80 Rev. B 2-11


Traffic APIs
2
-l3_gaus1_halfbw The width at half of the first curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus1_weight The weigth of the first curve. Used if length_mode is set to gaussian or quad.

-l3_gaus2_avg The center of the second curve. Used if length_mode is set to gaussian or quad.

-l3_gaus2_halfbw The width at half of the second curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus2_weight The weigth of the second curve. Used if length_mode is set to gaussian or quad.

-l3_gaus3_avg The center of the third curve. Used if length_mode is set to gaussian or quad.

-l3_gaus3_halfbw The width at half of the third curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus3_weight The weigth of the third curve. Used if length_mode is set to gaussian or quad.

-l3_gaus4_avg The center of the fourth curve. Used if length_mode is set to gaussian or quad.

-l3_gaus4_halfbw The width at half of the fourth curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus4_weight The weigth of the fourth curve. Used if length_mode is set to gaussian or quad.

-rate_pps Traffic rate to send in pps.

-rate_bps Traffic rate to send in bps.

-rate_percent Traffic rate in percent of line rate for the specified stream. Valid choices are
between 0.00 and 100.00, inclusive.

(DEFAULT = 100.00)

-transmit_mode Type of transmit mode to use. Note that all transmit modes need to have one
value set in either rate_pps, rate_bps, or rate_percent. Also, not all choices may
be available for a stream, depending on the ::ixia::interface_config -transmit_
mode argument.

Valid choices are:

Value Usage

advance after all the frames are sent from the current
stream, the frames from the next stream on
the port are transmitted.
continuous continuously transmit the frames on this
stream.
continuous_burst continuously transmit bursts of frames on this
stream.
multi_burst transmit multiple bursts and then stop all
transmission from the port where this stream
resides regardless of existence of other
streams on this port.

2-12 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

Value Usage

return_to_id the last stream on the port is set to this mode


to begin transmission of frames of the first
stream in the list. Parameter return_to_id can
be used to specify the stream number to
begin with.
return_to_id_for_count the last stream on the port is set to this mode
to begin transmission of the first stream in the
list for -loop_count intervals. Parameter
return_to_id can be used to specify the
stream number to begin with.
random_spaced transmit random spaced frames
single_burst transmit one burst and then stop all transmis-
sion from the port where this stream resides
regardless of existence of other streams on
this port.
single_pkt transmit one packet and then stop all trans-
mission from the port where this stream
resides regardless of existence of other
streams on this port.

-pkts_per_burst Number of packets to include in one burst.

-burst_loop_count Number of times to transmit a burst.

-inter_burst_gap Number of milliseconds between each burst in the loop count.

-inter_stream_gap Number milliseconds between each stream configured.

-vlan_id VLAN tag for a particular stream. Valid choices are between 0 and 4095, inclu-
sive.

-vlan_id_count Number of VLANs to be used for a particular stream. Option "vlan_id_mode"


must be set to increment or decrement. Valid choices are between 1 and 4096,
inclusive.

-vlan_id_step The step value for a VLAN ID when the mode is increment or decrement

-vlan_user_priority VLAN user priority for the stream. Valid choices are between 0 and 7, inclusive.

-vlan_id_mode Behavior of the VLAN tag in packets for a particular stream. Valid choices are:

Value Usage

fixed Will set the VLAN tag to be in idle mode.


increment (default) Will set the VLAN tag to be in incre-
ment mode.
decrement Will set the VLAN tag to be in decrement
mode.
random Will set the VLAN tag to be in random mode.

HLTAPI Commands, Release 2.80 Rev. B 2-13


Traffic APIs
2
-vlan_cfi Whether VLAN CFI bit is set or unset for a particular stream. Valid choices are:

Value Usage

0 Unset.
1 Set.

-fcs Whether to insert an fcs error in the frame. Valid choices are:

Value Usage

0 Disable.
1 Enable.

-mpls_labels MPLS labels in the packets for each stream. Ixia supports multiple MPLS labels
in a single packet. For example, to stack three labels in one packet, use -mpls_
labels {14 18 78}, where 14, 18 and 78 are the label IDs in the packet.

-l2_encap Set level 2 encapsulation. Valid choices are:

Value Usage

atm_vc_mux N/A
atm_vc_mux_ethernet_ii N/A
atm_vc_mux_802.3snap N/A
atm_vc_mux_802.3snap_nofcs N/A
atm_vc_mux_ppp N/A
atm_vc_mux_pppoe N/A
atm_snap N/A
atm_snap_ethernet_ii N/A
atm_snap_802.3snap N/A
atm_snap_802.3snap_nofcs N/A
atm_snap_ppp N/A
atm_snap_pppoe N/A
hdlc_unicast N/A
hdlc_broadcast N/A
hdlc_unicast_mpls N/A
hdlc_multicast_mpls N/A
ethernet_ii N/A
ethernet_ii_unicast_mpls N/A
ethernet_ii_multicast_mpls N/A
ethernet_ii_vlan N/A
ethernet_ii_vlan_unicast_mpls N/A
ethernet_ii_vlan_multicast_mpls N/A
ethernet_ii_pppoe N/A
ethernet_ii_vlan_pppoe N/A
ppp_link N/A
ietf_framerelay N/A
cisco_framerelay N/A

2-14 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-mac_src Source MAC address for a particular stream. Valid formats are:

11:11:11:11:11:11

2222.2222.2222

{33 33 33 33 33 33}

-mac_src_mode Behavior of the source MAC address for a particular stream. Valid choices are:

Value Usage

fixed The Source MAC will be idle (same fo all


packets).
increment The Source MAC will be incremented for all
packets.
decrement The Source MAC will be decremented for all
packets.
random The Source MAC will be random far all pack-
ets.
emulation N/A

-mac_src_step Value by which the Source MAC address is incremented.

-mac_src_count Number of source MAC addresses used in a particular stream.

(DEFAULT = 1)

-mac_dst Destination MAC address for a particular stream. Valid formats are:

11:11:11:11:11:11

2222.2222.2222

{33 33 33 33 33 33}

-mac_dst_mode Behavior of the destination MAC address for a particular stream. Valid choices
are:

Value Usage

fixed The destination MAC will be idle (same for all


packets).
increment The Destination MAC will increment for all
packets.
decrement The Destination MAC will be decrement for all
packets.
random The Destination MAC will be random far all
packets.
discovery (default) The Destination MAC will match the
MAC address received from the ARP
request.

-mac_dst_step Value by which the destination MAC Address is incremented.

-mac_dst_count Number of destination MAC addresses used in a particular stream.

(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 2-15


Traffic APIs
2
-mac_src2 Value of the source MAC address for port_handle2. This option applies to bidi-
rectional only. Valid MAC formats are:

11:11:11:11:11:11

2222.2222.2222

{33 33 33 33 33 33 }

-mac_dst2 Value of the destination MAC address for port_handle2. This option applies to
bidirectional only. Valid MAC formats are:

11:11:11:11:11:11

2222.2222.2222

{33 33 33 33 33 33 }

-l3_protocol Configures a layer 3 protocol header. This option specifies whether to setup an
ARP, Pause Control, IPX, IPv4, or IPv6 packet. Configure the specifics using the
related options. Valid choices are:

Value Usage

ipv4 N/A
ipv6 N/A
arp N/A
pause_control N/A
ipx N/A

-arp_src_hw_addr Value of the source MAC address for arp packets from a particular stream.

-arp_src_hw_mode Behavior of the source MAC address for ARP packets from a particular stream.
Valid choices are:

Value Usage

fixed default
increment N/A
decrement N/A

-arp_src_hw_count Number of source MAC addresses used in ARP packets in a particular stream.

-arp_dst_hw_addr Value of the destination MAC address for arp packets from a particular stream.

-arp_dst_hw_mode Behavior of the destination MAC address for ARP packets from a particular
stream. Valid choices are:

Value Usage

fixed default
increment N/A
decrement N/A

-arp_dst_hw_count Number of destination MAC addresses used in ARP packets in a particular


stream.

2-16 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-arp_operation Type of ARP operation given to a particular ARP pachet from a particular
stream. Valid choices are:

Value Usage

arpRequest default
arpReply N/A
rarpRequest N/A
rarpReply N/A

-ip_src_addr Source IP address of the packet.

-ip_src_mode Source IP address mode. Valid choices are:

Value Usage

fixed The source IP address is the same for all


packets.
increment The source IP address increments.
decrement The source IP address decrements.
random The source IP address is random.
emulation Source IP derived from the emulation handle

-ip_src_count Number of source IP addresses when option "ip_src_mode" is set to increment or


decrement.

-ip_src_step The modifier for the increment and decrement choices of -ip_src_mode which
requires that only one field contain a non-zero value.

-ip_dst_addr Destination IP address of the packet.

-ip_dst_mode Destination IP address mode. Valid choices are:

Value Usage
fixed The destination IP address is the same for all
packets.
increment The destination IP address increments.
decrement The destination IP address decrements.
random The destination IP address is random.
emulation Destination IP derived from the emulation
handle

-ip_dst_count Number of destination IP addresses when option "ip_dst_mode" is set to incre-


ment or decrement.

-ip_dst_step The modifier for the increment and decrement choices of "-ip_dst_mode" which
requires that only one field contain a non-zero value.

-ip_fragment_offset Where in the datagram this fragment belongs. The offset is measured in units of 8
octets (64 bits). Valid choices are between 0 and 8191, inclusive.

HLTAPI Commands, Release 2.80 Rev. B 2-17


Traffic APIs
2
-ip_fragment Whether this is a fragmented datagram. This option is used in conjuction with
option "ip_id" and "ip_fragment_last". Valid choices are:

Value Usage

0 This is not a fragmented datagram.


1 This is a fragmented datagram.

-ip_fragment_last Controls whether there are additional fragments used to assemble this datagram.
Valid choices are:

Value Usage

0 More fragments to come.


1 (default) No more fragments.

-ip_ttl Time-to-Live, measured in units of seconds. Valid choices are between 0 and
255.

(DEFAULT = 64)

-ip_protocol L4 protocol in the IP header. Valid choices are between 0 and 255.

(DEFAULT = 255)

-ip_id Identifying value assigned by the sender to aid in assembling the fragments of a
datagram. Valid choices are between 0 and 65535.

(DEFAULT = 0)

-ip_precedence Part of the Type of Service byte of the IP header datagram that establishes prece-
dence of delivery. Valid choices are between 0 and 7, inclusive.

-ip_dscp DSCP prcedence for a particular stream. Valid choices are between 0 and 63,
inclusive.

(DEFAULT = 0)

-ipv6_src_addr Source IPv6 address of the packet.

-ipv6_src_mode Source IP address mode. Valid choices are:

Value Usage

fixed The source IP address is idle, the same for all


packets.
increment The source IP address (host part) increments.
decrement The source IP address (host part) decre-
ments.
random The source IP address is random.

-ipv6_src_count Number of source IP address when option "ipv6_src_mode" is set to increment or


decrement.

-ipv6_src_step Step size of the source IP address when option "ipv6_src_mode" is set to incre-
ment or decrement.

2-18 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-ipv6_dst_addr Destination IPv6 address of the packet.

-ipv6_dst_mode Destination IPv6 address mode. Valid choices are:

Value Usage

fixed The source IP address is idle, the same for all


packets.
increment The Source IP address (host part) incre-
ments.
decrement The Source IP address (host part) decre-
ments.
random The Source IP address is random.

-ipv6_dst_count Number of destination IPv6 addresses when option "ipv6_dst_mode" is set to


increment or decrement.

-ipv6_dst_step Step size of the IPv6 addresses when option "ipv6_dst_mode" is set to increment
or decrement.

-ipv6_traffic_class Traffic class value of the IPv6 stream.

-ipv6_flow_label Flow label value of the IPv6 stream.

-ipv6_hop_limit Hop limit value of the IPv6 stream.

-ipv6_frag_offset This can be used in two ways. If "-ipv6_extension_header fragment" is present


then an IPv6 extension frament is added along with other IPv6 extension headers
mentioned in -ipv6_extension_header list. Also these option can be a list.

If -ipv6_extension_header is not present then only one IPv6 fragment can be


added and these option can only have one element. Fragment offset in the frag-
ment extension header of an IPv6 stream.

(DEFAULT = 100)

-ipv6_frag_more_flag This can be used in two ways. If "-ipv6_extension_header fragment" is present


then an IPv6 extension frament is added along with other IPv6 extension headers
mentioned in -ipv6_extension_header list. Also these option can be a list.

If -ipv6_extension_header is not present then only one IPv6 fragment can be


added and these option can only have one element. Whether the M Flag in the
fragment extension header of an IPv6 stream is set.

(DEFAULT = 0)

-ipv6_frag_id This can be used in two ways. If "-ipv6_extension_header fragment" is present


then an IPv6 extension frament is added along with other IPv6 extension headers
mentioned in ipv6_extension_header list. Also these option can be a list. If -
ipv6_extension_header is not present then only one IPv6 fragment can be added
and these option can only have one element. Identification field in the fragment
extension header of an IPv6 stream.

(DEFAULT = 286335522)

HLTAPI Commands, Release 2.80 Rev. B 2-19


Traffic APIs
2
-l4_protocol In the layer 4 header in the IP-based packet, the layer 4 protocol. Valid choices
are:

Value Usage

gre For IPv4 and IPv6.


icmp For IPv4 and IPv6.
igmp For IPv4 only.
tcp For IPv4 and IPv6.
udp For IPv4 and IPv6.
rip For IPv4 only.
dhcp For IPv4 only.
ospf For IPv4 only.
ip For IPv4 only.

-icmp_type ICMP message type. Valid choices are between 0 and 255, inclusive.

(DEFAULT = 0)

-icmp_code Code for each ICMP message type. Valid choices are between 0 and 255, inclu-
sive.

(DEFAULT = 0)

-icmp_id ID for each ping command, i.e. echoRequest. Valid choices are between 0 and
65535, inclusive.

(DEFAULT = 0)

-icmp_seq Sequence number for each ping command, i.e. EchoRequest. Valid choices are
between 0 and 65535, inclusive.

(DEFAULT = 0)

-udp_src_port UDP source port for this particular stream. Valid choices are between 0 and
65535, inclusive.

-udp_dst_port UDP destination port for this particular stream. Valid choices are between 0 and
65535, inclusive.

-tcp_src_port TCP source port for this particular stream. Valid choices are between 0 and
65535, inclusive.

-tcp_dst_port TCP destination port for this particular stream. Valid choices are between 0 and
65535, inclusive.

-tcp_seq_num TCP sequence number for this particular stream. Valid choices are between 0 and
65535, inclusive.

-tcp_ack_num TCP tcp_window size field for this particular stream. Valid choices are between
0 and 65535, inclusive.

-tcp_window TCP tcp_window size field for this particular stream. Valid choices are between
0 and 65535, inclusive.

2-20 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-tcp_urgent_ptr TCP Urgent Pointer value for this particular stream. Valid choices are between 0
and 65535, inclusive.

-tcp_urg_flag Whether the "urgent flag" in the TCP header is enabled. Valid choices are:

Value Usage

0 (default) Disabled.
1 Enabled.

-tcp_psh_flag Whether the "psh flag" in the TCP header is enabled. Valid choices are:

Value Usage

0 (default) Disabled.
1 Enabled.

-tcp_syn_flag Whether the "synchronize flag" in the TCP header is enabled. Valid choices are:

Value Usage

0 (default) Disabled.
1 Enabled.

-tcp_ack_flag Whether the "acknowledge flag" in the TCP header is enabled. Valid choices are:

Value Usage
0 (default) Disabled.
1 Enabled.

-tcp_rst_flag Whether the "reset flag" in the TCP header is enabled. Valid choices are:

Value Usage

0 (default) Disabled.
1 Enabled.

-tcp_fin_flag Whether the "finished flag" in the TCP header is enabled. Valid choices are:

Value Usage

0 (default) Disabled.
1 Enabled.

-igmp_group_addr IP Multicast group address of the group being joined or left.

-igmp_group_mode How the Group Address varies when the repeat count is greater than 1. Valid
choices are:

Value Usage

fixed Group IP address is the same for all packets.


increment Group IP address increments.
decrement Group IP address decrements.

HLTAPI Commands, Release 2.80 Rev. B 2-21


Traffic APIs
2
-igmp_max_response_time Maximum allowed time before sending a responding report in units of 1/10 sec-
ond. Valid choices are between 0 and 65535, inclusive.

(DEFAULT = 100)

-igmp_group_count Number of IGMP message to be sent. For option "igmp_group_mode" set to


increment or decrement, this is the address range of the IGMP message. Valid
choices are between 0 and 65535, inclusive.

(DEFAULT = 1)

-igmp_type Type of IGMP message to be sent. Valid choices are:

Value Usage

dvmrp Distance-Vector Multicast Routing Protocol


message.
leave_group IGMP message sent by client to inform the
DUT of its interest to leave a group.
membership_query General or group-specific query messages
sent by the DUT.
membership_report (default) IGMP version 1 message sent by cli-
ent to inform the DUT of its interest to join a
group.

-igmp_version IGMP version number.

(DEFAULT = 2)

-vpi The virtual circuit identifier (default 32).

-vci The virtual path identifier (default 0).

-vpi_step If -atm_counter_vpi_type is set to counter, then this is the value added/sub-


stracted between successive vpi values (default 1).

-vpi_count If -atm_counter_vpi_type is set to counter and atm_counter_vpi_mode is set to


incr or decr, then this is the number of times to increment

the VPI value before repeating from the start value (default 1).

-vci_step If -atm_counter_vci_type is set to counter, then this is the value added/sub-


stracted between successive vci values (default 1).

-vci_count If -atm_counter_vci_type is set to counter and atm_counter_vci_mode is set to


incr or decr, then this is the number of times to increment

the VCI value before repeating from the start value (default 1).

-atm_header_aal5error May be used to insert a bad AAL5 CRC (default no_error).

-atm_header_cell_loss_ Sets the Cell Loss Priority (CLP) used to set the discard priority level of the cell.
priority It indicates whether the cell should be discarded if it encounters extreme conges-
tion as it moves through the network. Value 0 has a higher priority than 1 (default
0).

-atm_header_cpcs_length If -atm_header_enable_cpcs_length is 1, then this is used as the length of the


CPCS PDU (default 28).

2-22 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-atm_header_enable_ If set to 1, the vpi/vci values are forced to 0 and 32 (default 0).
auto_vpi_vci

-atm_header_enable_cl Indicates whether congestion has been experienced (default 0).

-atm_header_enable_ If set to 1, -atm_header_cpcs_length is used as the length of the CPCS PDU


cpcs_length (default 0).

-atm_header_ The type of header encapsulation (default llc_routed_clip.


encapsulation

-atm_header_generic_ The generic flow control for use in UNI mode device control signalling.
flow_ctrl
Uncontrolled equipment uses a setting of 0000 (default 0).

-atm_header_hec_errors Indicates the number of HEC errors to insert into the HEC byte (default 0).

-atm_counter_vpi_data_ If the -atm_counter_vpi_type option is set to table, this list is used used for the set
item_list of values (default "").

-atm_counter_vci_data_ If the -atm_counter_vci_type option is set to table, this list is used used for the set
item_list of values (default "").

-atm_counter_vpi_mask_ If the -atm_counter_vpi_type option is set to random, this 16-bit mask indicates
select which bits are held constant The constant values are indicated in the -atm_
counter_vpi_mask_value option (default "00 00").

-atm_counter_vci_mask_ If the -atm_counter_vci_type option is set to random, this 16-bit mask indicates
select which bits are held constant The constant values are indicated in the -atm_
counter_vci_mask_value option (default "00 00").

-atm_counter_vpi_mask_ If the -atm_counter_vpi_type option is set to random, this 16-bit value indicates
value the values that the bits indicated in the atm_counter_vpi_mask_select option
should have (default "00 00").

-atm_counter_vci_mask_ If the -atm_counter_vci_type option is set to random, this 16-bit value indicates
value the values that the bits indicated in the atm_counter_vci_mask_select option
should have (default "00 00").

-atm_counter_vpi_mode If the -atm_counter_vci_type option is set to counter, this indicates what counter
mode should be used (default incr). Currently only the incr and decr mode are
supported.

-atm_counter_vci_mode If the -atm_counter_vpi_type option is set to counter, this indicates what counter
mode should be used (default incr). Currently only the incr and decr mode are
supported.

-atm_counter_vpi_type The type of counter to use on the vpi (default fixed). Currently only fixed,
counter, and table are supported.

-atm_counter_vci_type The type of counter to use on the vci (default fixed). Currently only fixed,
counter, and table are supported.

-data_pattern Payload value in bytes. For example, you can specify a custom payload pattern
like the following using option "data_pattern":

00 44 00 44

HLTAPI Commands, Release 2.80 Rev. B 2-23


Traffic APIs
2
-data_pattern_mode Packet payload mode for a particular stream. Valid choices are:

Value Usage

incr_byte Data patterm increments each byte in the


packet payload.
decr_byte Data patterm decrements each byte in the
packet payload.
fixed Data patterm is idle for each byte in the
packet payload.
random Data patterm is random for the packet pay-
load.
repeating Data patterm repeats for the packet payload.

-dhcp_boot_filename Boot file name, null terminated string; "generic" name or null in DHCPDIS-
COVER, fully qualified directory-path name DHCPOFFER.

(DEFAULT = "")

-dhcp_client_hw_addr Client hardware address. Must be in the form of a string of hex data.

(DEFAULT = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)

-dhcp_client_ip_addr Client IP address. Only filled in if client is in BOUND, RENEW, or REBIND-


ING state and can respond to ARP requests. (DEFAULT = 0.0.0.0)

-dhcp_flags Tells whether to broadcast or not. (DEFAULT = no_broadcast)

-dhcp_hops Set to zero by client.

(DEFAULT = 0)

-dhcp_hw_type Hardware address types.

(DEFAULT = 1).

-dhcp_hw_len Hardware address length.

(DEFAULT = 6).

-dhcp_operation_code Operation codes.

(DEFAULT = boot_request).

-dhcp_relay_agent_ip_ Relay agent IP address, used in booting via a relay agent.


addr
(DEFAULT = 0.0.0.0).

-dhcp_seconds Seconds elapsed since client began address acquisition or renewal process.

(DEFAULT = 0).

-dhcp_server_host_name Optional server host name, null terminated string.

(DEFAULT = "").

2-24 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-dhcp_server_ip_addr IP address of next server to use in bootstrap; returned in DHCPOFFER, DHC-


PACK by server.

(DEFAULT = 0.0.0.0).

-dhcp_transaction_id Random number chosen by client and used by the client and server to associate
messages and responses between a client and a server.

(DEFAULT = 0).

-dhcp_your_ip_addr "Your" (client) IP address.

(DEFAULT = 0.0.0.0).

-enable_auto_detect_ Enables/disable setup of PGID/SequenceCkecking/DataIntegrity without having


instrumentation to specify the offset for the signatures, but just the signature values.

With this option enabled the packet size will be increased as follows:

12 bytes - signature (mandatory)

4 bytes - pgid_value(mandatory) and data integrity(optional)

4 bytes - sequencing(optional)

2 bytes - data integrity checksum(optional)

6 bytes - timestamp(mandatory)

This is a total of 28 bytes if data integrity and sequence checking are enabled.

-enable_data_integrity Whether data integrity checking is enabled. Valid choices are:

Value Usage
0 Disabled.
1 Enabled.

-ethernet_type For ethernet ports only, the ethernet encapsulation type. Valid choices are:

Value Usage

ethernetII Ethernet encapsulation at EthernetII.


ieee8023snap Ethernet encapsulation at ieee8023snap.
ieee8023 Ethernet encapsulation at ieee8023.
ieee8022 Ethernet encapsulation at ieee8022.

-ethernet_value For ethernet ports with the ethernet encapsulation type ethernetII, a hex value can
be specified as the Ethernet Type value.

HLTAPI Commands, Release 2.80 Rev. B 2-25


Traffic APIs
2
-fcs_type The FCS error to be inserted in the frame. Valid choices are:

Value Usage

alignment An alignment error to be inserted in the frame


(only valid for 10/100).
dribble A dribble error to be inserted in the frame.
bad_CRC A bad FCS error to be inserted in the frame.
no_CRC No FCS error to be inserted in the frame.

-frame_sequencing Inserts a sequence signature into the packet.

-frame_sequencing_offset The offset within the packet of the sequnce number. This is valid only when
sequence checking is enabled. If -enable_auto_detect_instrumentation is 1, will
be ignored.

-frame_size Actual total frame size coming out of the interface on the wire in bytes. Valid
choices are between 20 and 13312, inclusive.

(DEFAULT = 64)

-frame_size_max Actual maximum total frame size coming out of the interface on the wire in bytes
when option "length_mode" is set to random. Valid choices are between 20 and
13312.

(DEFAULT = 64)

-frame_size_min Actual minimal total frame size coming out of the interface on the wire in bytes
when option "length_mode" is set to random. Valid choices are between 20 and
13312.

(DEFAULT = 64)

-frame_size_step Actual increment by which the actual total frame size in bytes coming out of the
interface on the wire will be incremented. Valid choices are between 20 and
13292.

(DEFAULT = 64)

-gre_checksum_enable Enable checksum for the GRE header (only if -l4_protocol is gre).

-gre_checksum Specify checksum for the GRE header (only if -l4_protocol is gre).

-gre_valid_checksum_ Enable valid checksum for the GRE header (only if -l4_protocol is gre).
enable

-gre_key_enable Enable key for the the GRE header (only if -l4_protocol is gre).

-gre_key Specify the key for the GRE header (only if -l4_protocol is gre).

-gre_reserved0 Specify first reserved field of the GRE header.

(only if -l4_protocol is gre)

-gre_reserved1 Specify second reserved field of the GRE header.

(only if -l4_protocol is gre)

2-26 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-gre_seq_enable Enable sequence checking for the the GRE header.

(only if -l4_protocol is gre)

-gre_seq_number Specify the sequence number for the GRE header.

(only if -l4_protocol is gre)

-gre_version Specify version for GRE header.

(only if -l4_protocol is gre)

-inner_protocol Configures a layer 3 protocol header. This option specifies whether to setup an
IPv4 or IPv6 header (only used when l4_protocol is gre).

Valid choices are:

Value Usage

ipv4 N/A
ipv6 N/A
<hex value> N/A

-inner_ip_src_addr Source IP address for inner GRE IPv4 header (only used when -l4_protocol is
gre).

-inner_ip_src_mode Source IP address mode for inner GRE IPv4 header. Valid choices are:

Value Usage

fixed The source IP address is the same for all


packets.
increment The source IP address increments.
decrement The source IP address decrements.
random The source IP address is random. This
option is only used when -l4_protocol is gre.

-inner_ip_src_count Number of source IP addresses when option "inner_ip_src_mode" is set to incre-


ment or decrement (only used when -l4_protocol is gre).

-inner_ip_src_step The modifier for the increment and decrement choices of inner_ip_src_mode
which requires that only one field contain a non-zero value.

This option is only used when -l4_protocol is gre.

-inner_ip_dst_addr Destination IP address for inner GRE IPv4 header. This option is only used when
-l4_protocol is gre.

HLTAPI Commands, Release 2.80 Rev. B 2-27


Traffic APIs
2
-inner_ip_dst_mode Destination IP address mode for inner GRE IPv4 header. This option is only used
when -l4_protocol is gre. Valid choices are:

Value Usage

fixed The destination IP address is the same for all


packets.
increment The destination IP address increments.
decrement The destination IP address decrements.
random The destination IP address is random.

-inner_ip_dst_count Number of destination IP addresses when option "-inner_ip_dst_mode" is set to


increment or decrement.

-inner_ip_dst_step The modifier for the increment and decrement choices of "-inner_ip_dst_mode"
which requires that only one field contain a non-zero value. This option is only
used when -l4_protocol is gre.

-inner_ipv6_src_addr Source IP address for inner GRE IPv6 header. This option is only used when -l4_
protocol is gre.

-inner_ipv6_src_mode Source IP address mode for inner GRE IPv6 header. This option is only used
when -l4_protocol is gre. Valid choices are:

Value Usage
fixed The source IP address is idle, the same for all
packets.
increment The source IP address (host part) increments.
decrement The source IP address (host part) decre-
ments.
random The source IP address is random.

-inner_ipv6_src_count Number of source IP address when option "inner_ipv6_src_mode" is set to incre-


ment or decrement. This option is only used when -l4_protocol is gre.

-inner_ipv6_src_step Step size of the source IP address when option "inner_ipv6_src_mode" is set to
increment or decrement. This option is only used when -l4_protocol is gre.

-inner_ipv6_dst_addr Destination IP address for inner GRE IPv6 header. This option is only used when
-l4_protocol is gre.

-inner_ipv6_dst_mode Destination IPv6 address mode. This option is only used when -l4_protocol is
gre. Valid choices are:

Value Usage

fixed The source IP address is idle, the same for all


packets.
increment The Source IP address (host part) incre-
ments.
decrement The Source IP address (host part) decre-
ments.
random The Source IP address is random.

2-28 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-inner_ipv6_dst_count Number of destination IPv6 addresses when option "inner_ipv6_dst_mode" is set


to increment or decrement. This option is only used when -l4_protocol is gre.

-inner_ipv6_dst_step Step size of the IPv6 addresses when option "inner_ipv6_dst_mode" is set to
increment or decrement. This option is only used when -l4_protocol is gre.

-inner_ipv6_traffic_class Traffic class value of the IPv6 inner header. This option is only used when -l4_
protocol is gre.

-inner_ipv6_flow_label Flow label value of the IPv6 inner header. This option is only used when -l4_pro-
tocol is gre.

-inner_ipv6_hop_limit Hop limit value of the IPv6 inner header. This option is only used when -l4_pro-
tocol is gre.

-inner_ipv6_frag_offset Fragment offset in the fragment extension header of an IPv6 header. This option
is only used when -l4_protocol is gre.

-inner_ipv6_frag_more_ Whether the M Flag in the fragment extension header of an IPv6 header is set.
flag This option is only used when -l4_protocol is gre.

-inner_ipv6_frag_id Identification field in the fragment extension header of an IPv6 header. This
option is only used when -l4_protocol is gre.

-integrity_signature Data integrity signature for the stream.

-integrity_signature_offset Data integrity signature offset for the stream.

If -enable_auto_detect_instrumentation is 1, will be ignored.

-ip_length_override Allows to change the length in ip header.

-ip_total_length Total Length is the length of the datagram, measured in octets, including internet
header and data.

-ip_cost Part of the Type of Service byte of the IP header datagram (bit 6). Valid choices
are:

Value Usage
0 (default) Normal cost.
1 Low cost.

-ip_delay Part of the Type of Service byte of the IP header datagram (bit 3). Valid choices
are:

Value Usage

0 (default) Normal delay.


1 Low delay.

-ip_opt_security Will add an IP option for security. Must be given with a nine byte option argu-
ment that contains the information, 2 bytes Security, 2 bytes Compartments, 2
bytes Handling Restrictions, and 3 bytes Transmission Control Code.

-ip_opt_loose_routing Will add an IP option for Loose Source and Record Route. This option is fol-
lowed by an arbitrary length list of IP addresses.

HLTAPI Commands, Release 2.80 Rev. B 2-29


Traffic APIs
2
-ip_opt_strict_routing Will add an IP option for Strict Source and Record Route. This option is fol-
lowed by an arbitrary length list of IP addresses.

-ip_opt_timestamp Will add an IP option for Internet Timestamp.

-ip_reliability Part of the Type of Service byte of the IP header datagram (bit 5). Valid choices
are:

Value Usage

0 (default) Normal reliability.


1 High reliability.

-ip_reserved Part of the Type of Service byte of the IP header datagram (bit 7). Valid choices
are:

Value Usage
0 (default)
1 N/A

-ip_throughput Part of the Type of Service byte of the IP header datagram (bit 4). Valid choices
are:

Value Usage
0 (default) Normal throughput.
1 High throughput.

-isl Whether to enable ISL on the stream. You can then configure ISL with options
"isl_frame_type", "isl_vlan_id", "isl_user_priority", "isl_bpdu", and "isl_index".
Valid choices are:

Value Usage

0 Disable ISL.
1 Enable ISL.

-isl_bpdu Whether to enable encapsulation of all Bridge Protocol Data Units by the ISL
packet. Valid choices are:

Value Usage

0 (default) Disable.
1 Enable.

-isl_frame_type Type of frame that is encapsulated. Valid choices are:

Value Usage

ethernet (default)
atm N/A
fddi N/A
token_ring N/A

2-30 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-isl_index Value of the selected register.

(DEFAULT = 0)

-isl_user_priority Low order two bits of this value specify the priority of the packet as it passes
through the switch. Valid choices are between 0 and 7, inclusive.

(DEFAULT = 0)

-isl_vlan_id Virtual LAN identification. Valid choices are between 1 and 4096, inclusive.

(DEFAULT = 1)

-ipv6_extension_header The type of the next extension header. Valid choices are:

Value Usage

none There is no next header.


hop_by_hop Next header is hop-by-hop options.
routing Next header has routing options.
destination Next header has destination options.
authentication Next header is an IPSEC AH.
fragment Payload is a fragment.

-ipv6_hop_by_hop_options This is only for "-ipv6_extension_header hop_by_hop". This option will repre-
sent a list of keyed values. Valid choices are:

Value Usage

key:type <CHOICES pad1 padn jumbo router_alert


binding_update binding_ack binding_req
user_define mipv6_unique_id_sub mipv6_
alternative_coa_sub> This is a mandatory
key. The type of IPv6 Hop by Hop option that
needs to be added. According to RFC 2711,
there should only be one router_alert option
per hop by hop extension. Configuring
against the RFC the results may not be the
expected ones.
key:length <RANGE 0-255> This applies to all key types
except pad1. The length value for the IPv6
Hop by Hop option.
key:value <HEX BYTES separated by ì:î or ì.î> This
applies to padn, user_define types. The
value for the IPv6 Hop by Hop option.
key:payload <RANGE 0-4294967295> This applies to
jumbo type. The payload for the IPv6 Hop by
Hop option.
key:sub_unique <RANGE 0-65535> This applies to mipv6_
unique_id_sub type. A unique ID for the bind-
ing request.
key:alert_type <CHOICES mld rsvp active_net> This
applies to router_alert type. Specifies the
type of router alert to include with the packet.

HLTAPI Commands, Release 2.80 Rev. B 2-31


Traffic APIs
2

Value Usage

key:ack <CHOICES 0 1> This applies to binding_


update type. This flag sets the Acknowledge
(A) bit to indicate that the sending mobile
node is requesting that a Binding Acknowl-
edgement be sent by the receiving node
when it gets the Binding Update. (DEFAULT
= 0)
key:bicast <CHOICES 0 1> This applies to binding_
update type. Enables the bicasting flag for
the Binding Update header. (DEFAULT = 0)
key:duplicate <CHOICES 0 1> This applies to binding_
update type. This flag sets the Duplicate
Address Detection (D) bit, to indicate that the
sending node wants the receiving node to
perform Duplicate Address Detection for the
mobile nodeís home address in this binding.
The H and A bits MUST also be set for this
action to be performed. (DEFAULT = 0)
key:home <CHOICES 0 1> This applies to binding_
update type. This flag sets the Home Regis-
tration (H) bit to indicate that the sending
node wants the receiving node to act as its
home agent. (DEFAULT = 0)
key:map <CHOICES 0 1> This applies to binding_
update type. Enables the map flag for the
Binding Update header. (DEFAULT = 0)
key:router <CHOICES 0 1> This applies to binding_
update type. This flag indicates if the binding
cache entry is for a mobile node advertised
as a router by this node, on the behalf of the
mobile node, in proxy Neighbor Advertise-
ments. (DEFAULT = 0)
key:prefix_len <RANGE 0-255> This applies to binding_
update type. If the H-bit is set, this is the
length of the routing prefix for the home
address.
key:life_time <RANGE 0-4294967295> This applies to
binding_update, binding_ack types. (32-bit
integer) The number of seconds remaining for
the Binding Cache entry. When the value
reaches zero, the binding MUST be consid-
ered expired and the Binding Cache entry
MUST be deleted for the mobile node.
key:seq_num <RANGE 0-65535> This applies to binding_
update, binding_ack types. For type binding_
update: The mobile node uses this number in
the Binding Update. The receiving node uses
the same number in its Binding Acknowl-
edgement, for matching. The Sequence num-
ber in each Binding Update to one
destination address must be greater than the
last. For type binding_ack: This integer is
copied from the received Binding Update into
the corresponding Binding ACK message.

2-32 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

Value Usage

key:status <RANGE 0-255> This applies to binding_ack


type. This value indicates the disposition of
the Binding Update: 0-127 = Binding Update
was accepted. >/= 128 = Binding Update was
rejected.
key:refresh <RANGE 0-4294967295> This applies to
binding_ack type. The mobile node SHOULD
send a new Binding Update at this recom-
mended interval, to refresh the binding. The
receiving node (the node which sends the
Binding ACK) determines the refresh interval.
(in seconds)
key:address <IPV6> The IPv6 address for mipv6_
alternative_coa_sub type.

A 2-bit reserved field.

(DEFAULT = 3)

-ipv6_frag_res_8bit This is only for "-ipv6_extension_header fragment". An 8-bit reserved field.

(DEFAULT = 30)

-ipv6_auth_string This is only for "-ipv6_extension_header authentication". A variable length


string containing the packets integrity check value (ICV).

(DEFAULT = 00:00:00:00)

-ipv6_auth_payload_len This is only for "-ipv6_extension_header authentication". The length of the


authentication data, expressed in 32-bit words.

(DEFAULT = 2)

-ipv6_auth_spi This is only for "-ipv6_extension_header authentication". The security parameter


index (SPI) associated with the authentication header.

(DEFAULT = 0)

-ipv6_auth_seq_num This is only for "-ipv6_extension_header authentication". A sequence counter for


the authentication header.

(DEFAULT = 0)

-l3_length_step Step size by which the packet size will be incremented. Use this option in con-
junction with option "length_mode" set to increment.

-mpls Whether to enable MPLS on a particular stream. When enabled, configure the
MPLS parameters by usgin the options "mpls_labels", "mpls_ttl", "mpls_exp_
bit", "mpls_bottom_of_stack", and "mpls_type". Refer to Section "Scripts Sam-
ples" for an example.

-mpls_bottom_stack_bit Whether to enable the bottom of the stack bit. This bit is set to true for the last
entry in the label stack (for the bottom of the stack) and false for all other label
stack entries.

(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 2-33


Traffic APIs
2
-mpls_exp_bit Sets the experimental use bit. Valid choices are between 0 and 7, inclusive.

(DEFAULT = 0)

-mpls_ttl Time-to-live value for a particular tag in a stream. Valid choices are between 0
and 255, inclusive.

(DEFAULT = 64)

-mpls_type MPLS type. Valid choices are:

Value Usage

Unicast (default)
Multicast N/A

-name Stream string identifier/name.

-no_write Whether to enable procedure "traffic_config" to commit change to the hardware.


Enable this option when the you want to create multiple streams on a single port
by using a loop. Because committing the configuration to hardware can take .5
seconds, this option allows you to save the configuration after the procedure call.

-pause_control_time Pause control time. Valid choices are betwee 0 and 65535, inclusive.

-qos_byte The combined value for the precedence, delay, throughput,reliability, reserved
and cost bits. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-qos_rate_mode The means by which line rates will be specified. This is only for PPP, L2TP and
L2TPv3 traffic. Valid choices are:

Value Usage

percent The line rate is expressed in percentage of


maximum
line rate. N/A
pps The line rate is expressed in packets per sec-
ond.
bps (default) The line rate is expressed in bits per
second. -qos_rate
This is the data rate setting expressed. N/A
Default values are:
5000000 when -qos_rate_mode bps
1000 when -qos_rate_mode pps
100 when -qos_rate_mode percentage
This rate represents the aggregated N/A
rate for all sessions belonging to the
group. This is only for PPP, L2TP and
L2TPv3 traffic.

-qos_atm_clp The setting of the congestion loss priority bit. Valid only if -encap is a kind of
atm encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

2-34 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-qos_atm_efci The setting of the explicit forward congestion indication bit. Valid only if -encap
is a kind of atm encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-qos_atm_cr The setting of the command response bit. Valid only if -encap is a kind of atm
encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-qos_fr_cr The setting of the frame relay command response bit. Valid only if -encap is a
kind of framerelay encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-qos_fr_de The setting of the frame relay discard eligibility bit. Valid only if -encap is a kind
of framerelay encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-qos_fr_becn The setting of the frame relay backward congestion notification bit. Valid only if
-encap is a kind of framerelay encapsulation. This is only for PPP, L2TP and
L2TPv3 traffic.

(DEFAULT = 0)

-qos_fr_fecn The setting of the frame relay forward congestion notification bit. Valid only if -
encap is a kind of framerelay encapsulation. This is only for PPP, L2TP and
L2TPv3 traffic.

(DEFAULT = 0)

-qos_ipv6_flow_label The IPv6 flow label, from 0 through 1,048,575. Valid only if -encap is an ether-
net encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-qos_ipv6_traffic_class The IPv6 traffic class, from 0 through 255. Valid only if -encap is an ethernet
encapsulation. This is only for PPP, L2TP and L2TPv3 traffic.

(DEFAULT = 0)

-enable_voice When this option is enabled, another unicast voice stream will be created along
with the multicast stream. The ToS value for this stream must be specified by –
voice_tos option.

-enable_data When this option is enabled, another unicast data stream will be created along
with the multicast stream. The tos value for this stream must be specified by –
data_tos option.

-voice_tos The TOS value when –enable_voice is enabled.

-data_tos The TOS value when –enable_data is enabled.

HLTAPI Commands, Release 2.80 Rev. B 2-35


Traffic APIs
2
-rip_command For option "l4_protocol" set to "rip", this option defines the RIP command for a
particular stream. Valid choices are:

Value Usage

request N/A
response N/A
trace_on N/A
trace_off N/A
reserved N/A

-rip_version For option "l4_protocol" set to "rip", this option defines the RIP version for a
particular stream. Valid choices are:

Value Usage

1 Version 1.
2 Version 2.

-enable_time_stamp Whether time stamp insertion is enabled. Valid choices are:

Value Usage

0 Disabled. 1 - Enabled. (default)

-vlan This option will enable/disable VLAN on the interface to be configured. If vlan is
disable and vlan_id or other vlan options are provided then these options will be
ignored.

-vlan_protocol_tag_id The protocol ID field of the VLAN tag. The choices can be 8100, 9100, 9200.

(DEFAULT = 8100).

-number_of_packets_per_ Number of maximum frames in the stream.


stream

-table_udf_column_name List of column names.

-table_udf_column_type List of column types: hex ascii binary decimal mac ipv4 ipv6 and also a custom
type. The custom type can be a combination of numbers and a,b,d, and x (eg:
"8b,3d,16x").

a - ascii; b - binary; d - decimal; x - hex.

-table_udf_column_offset List of column offsets in bytes from the beginning of the packet.

-table_udf_column_size List of column sizes in bytes.

2-36 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-table_udf_rows A keyed list of rows that need to be added to the table UDF. The rows must
respect column order, size and type. The keyed list should the format below for n
columns annd m rows:

{row_1 {column_value_11 ... column_value_1n}}

{row_2 {column_value_21 ... column_value_2n}}

...........................................

{row_m {column_value_m1 ... column_value_mn}}

-enable_udf1 If this option is set to true (1), then the UDF 1 counter will be inserted into the
frame.

(DEFAULT = 0)

-udf1_mode The mode of operation of the counter. Valid choices are:

Value Usage
counter (default) Normal up-down counter as con-
trolled by counter_mode, counter_type,
counter_init_value, mask_select, mask_val,
random, counter_repeat_count, counter_
step, counter_up_down and cascade_type
options.
random Generates random values, based on the val-
ues in counter_type, mask_select and mask_
val.
value_list A list of distinct values, based on the values of
counter_type, value_list and cascade_type.
nested Two nested counters may be used to build
complex sequences, based on the values of
counter_type, counter_init_value, inner_
repeat_count, inner_repeat_value, inner_
step, counter_repeat_count, counter_step,
and cascade_type options.
range_list A list of value ranges, based on counter_type,
cascade_type and ranges. Ranges are speci-
fied with counter_init_value, counter_
repeat_count, and counter_step.
ipv4 A counter which facilitates generation of IPv4
addresses, based on counter_init_value,
counter_repeat_count, counter_type, inner_
repeat_value, inner_step, skip_zeros_and_
ones, and skip_mask_bits options.

-udf1_offset The absolute offset to insert this UDF into the frame. Note that DA and SA use
the fixed offsets at 0 and 6, respectively. This option applies to all UDF modes.

(DEFAULT = 12)

-udf1_counter_type Describes the size of the UDF field in bits. The choices are: 8 16 24 32

-udf1_counter_up_down This option describes whether the UDF counters are to be incremented or decre-
mented. Choices are: up, down.

HLTAPI Commands, Release 2.80 Rev. B 2-37


Traffic APIs
2
-udf1_counter_init_value The initial value of the counter. This field is a list of hex numbers for range_list
mode; a hex number for all other modes.

(DEFAULT = 0x0800)

-udf1_counter_repeat_ The counter is incremented or decremented the number of times based on this
count option. If counter_mode is continuous, then this value is ignored.

(DEFAULT = 1)

-udf1_counter_step The step size for counter up/down.

(DEFAULT = 1)

-udf1_value_list A list of hex numbers which holds the values to be used when mode is set to
value_list.

-udf1_counter_mode The counter will increment or decrement the bytes continuously or a number of
repeat counts. The choices are: continuous or count.

(DEFAULT = count)

-udf1_inner_repeat_value The number of times each value in the inner loop is repeated. Used when UDF
mode is set to nested.

(DEFAULT = 1)

-udf1_inner_repeat_count The number of times the inner loop is repeated. Used when UDF mode is set to
nested.

(DEFAULT = 1)

-udf1_inner_step The steps size between inner loop values. Used when UDF mode is set to nested.

(DEFAULT = 1)

-udf1_enable_cascade If this option is set to true (1), then the UDF counter will not be reset with the
start of each stream, but will rather continue counting from the ending value of
the previous stream.

(DEFAULT = 0)

-udf1_cascade_type Indicates the source of the initial value for the counter. The initial value for the
first enabled stream always comes from the UDF counter_init_value option.
Valid choices are:

Value Usage

none (default) The initial value always comes from


UDF counter_init_value option.
from_previous The initial value is derived from the last exe-
cuted stream which used this UDF number
with UDF cascade_type set to from_previ-
ous. An initial increment/decrement/random
operation is applied from the previous value.
from_shelf The initial value is derived from the last value
generated by this UDF with this stream. An
initial increment/ decrement/random opera-
tion is applied from the previous value.

2-38 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-udf1_skip_zeros_and_ If UDF mode is ipv4 and this option is set to true (1), then values of all 0s and all
ones 1s as masked by skip_mask_bits will be skipped when generating values. This
normally corresponds to network broadcast addresses.

(DEFAULT = 1)

-udf1_mask_select This is a 32-bit mask that enables, on a bit-by-bit basis, use of the absolute
counter value bits as defined by mask_val option.

(DEFAULT = {00 00})

-udf1_mask_val A 32-bit mask of absolute values for this UDF counter. It is used in association
with the mask_select; bits must be set 'on' or the bits in mask_select will be
ignored.

(DEFAULT = {00 00})

-udf1_skip_mask_bits If UDF mode is ipv4 and skip_zeros_and_ones is set to true (1), this is the num-
ber of low order bits to check when looking for all 0s and all 1s. This normally
corresponds to network broadcast addresses.

(DEFAULT = 8)

-enable_udf2

-udf2_mode

-udf2_offset

-udf2_counter_type

-udf2_counter_up_down

-udf2_counter_init_value

-udf2_counter_repeat_
count

-udf2_counter_step

-udf2_value_list

-udf2_counter_mode

-udf2_inner_repeat_value

-udf2_inner_repeat_count

-udf2_inner_step

-udf2_enable_cascade

-udf2_cascade_type

-udf2_skip_zeros_and_
ones

-udf2_mask_select

HLTAPI Commands, Release 2.80 Rev. B 2-39


Traffic APIs
2
-udf2_mask_val

-udf2_skip_mask_bits

-enable_udf3

-udf3_mode

-udf3_offset

-udf3_counter_type

-udf3_counter_up_down

-udf3_counter_init_value

-udf3_counter_repeat_
count

-udf3_counter_step

-udf3_value_list

-udf3_counter_mode

-udf3_inner_repeat_value

-udf3_inner_repeat_count

-udf3_inner_step

-udf3_enable_cascade

-udf3_cascade_type

-udf3_skip_zeros_and_
ones

-udf3_mask_select

-udf3_mask_val

-udf3_skip_mask_bits

-enable_udf4

-udf4_mode

-udf4_offset

-udf4_counter_type

-udf4_counter_up_down

-udf4_counter_init_value

-udf4_counter_repeat_
count

2-40 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-udf4_counter_step

-udf4_value_list

-udf4_counter_mode

-udf4_inner_repeat_value

-udf4_inner_repeat_count

-udf4_inner_step

-udf4_enable_cascade

-udf4_cascade_type

-udf4_skip_zeros_and_
ones

-udf4_mask_select

-udf4_mask_val

-udf4_skip_mask_bits

-enable_udf5

-udf5_mode

-udf5_offset

-udf5_counter_type

-udf5_counter_up_down

-udf5_counter_init_value

-udf5_counter_repeat_
count

-udf5_counter_step

-udf5_value_list

-udf5_counter_mode

-udf5_inner_repeat_value

-udf5_inner_repeat_count

-udf5_inner_step

-udf5_enable_cascade

-udf5_cascade_type

-udf5_skip_zeros_and_
ones

HLTAPI Commands, Release 2.80 Rev. B 2-41


Traffic APIs
2
-udf5_mask_select

-udf5_mask_val

-udf5_skip_mask_bits

-enable_pgid

-signature In the transmitted packet, the signature uniquely signs the transmitted packet as
one destined for packet group filtering on the receive port. On the receive port,
the signature is used to filter only those packets that have a matching signature
and the minimum, maximum and average latencies are obtained for those pack-
ets.

(DEFAULT = "DE AD BE EF")

If -enable_auto_detect_instrumentation is 1, then this option will represent a sig-


nature value of 12 hex bytes. This signature will be searched at receive side into
the received packets and must by the same with the signature set on receive port.

(DEFAULT = "87 73 67 49 42 87 11 80 08 71 18 05")

-signature_offset The offset, within the packet, of the packet group signature. If -enable_auto_
detect_instrumentation is 1, will be ignored.

-pgid_value Unique value used to identify one packet group for another. Up to 57344 differ-
ent packet groups may be defined.

(DEFAULT = current stream id)

-number_of_packets_tx

-loop_count

-return_to_id

-adjust_rate Specialty code meant for limited use. Some hardware (because of the nature of
the input data) will not set the stream rate at the exact rate specified, and could be
off slightly due to gaps, etc. This will compensate for that by creating two
streams in the advanced stream mode that total the exact value required.

This is a very focused feature, not meant to be used widely. It will be removed
when the new hardware support this capability.

-variable_user_rate For l2tp, ppp and l2tpv3, when 1, this option specifies that each user group trans-
mits at a different data rate. For each session there will be a different group.

-l7_traffic If true, then layer 7 traffic using an external program is performed.

(DEFAULT = 0)

-duration The duration, in seconds, to run each frame size or mix of frame sizes.

(DEFAULT = 10)

2-42 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-pppoe_unique_acmac If true, then the MAC address used for each access concentrator is
unique.Streams will be configured using a separate UDF for the ACís MAC
address.

(DEFAULT 0)

-session_repeat_count The number of times that the traffic will be repeated. Since this is a value to rep-
licate the number of sessions in the test, the value entered is multiplied by the
number of sessions in the test. Legal values are between 1 and 8000.

(DEFAULT = 1)

-session_traffic_stats In order to retrieve per session traffic stats for PPP or L2TP, then this option
should be 1. Values are 0 or 1.

(DEFAULT = 0)

-public_port_ip The IP address of the client as received from the PPPoE/L2TP server. This
address is used only for an IPv4 Access port to match the traffic to a particular
PPPoE/L2TP session.

-ppp_session_id

-mac_src2_mode

-mac_src2_step

-mac_src2_count

-mac_dst2_mode

-mac_dst2_step

-mac_dst2_count

-ip_src_skip_multicast

-ip_src_skip_broadcast

-ip_dst_skip_multicast

-ip_dst_skip_broadcast

-ip_hdr_length

-ip_bit_flags

-ip_mbz

-ip_cu

-ip_tos_field

-ip_precedence_step

-ip_precedence_count

-ip_dscp_step

HLTAPI Commands, Release 2.80 Rev. B 2-43


Traffic APIs
2
-ip_dscp_count

-ipv6_length

-ipv6_next_header

-igmp_group_step

-igmp_msg_type

-igmp_multicast_src

-igmp_s_flag

-igmp_qrv

-igmp_qqic

-igmp_record_type

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log On status of failure, gives detailed informa-
tion. On status of success, gives possible
warnings.
stream_id Stream identifier when not bidirectional.
stream_id.$port_handle Stream identifier for traffic sent out the port
associated with "port_handle".
stream_id.$port_handle2 Stream identifier for traffic sent out the port
associated with "port_handle2".

EXAMPLES See files starting with Streams_ in the Samples


subdirectory. Also see some of the other sample files in
Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT

NOTES 1. Coded versus functional specification.

2. In order to use QoS groups, parameter -variable_user_rate must be set to 1 in


traffic_config calls. The maximum number of qos groups that can be created is 7.
After the maximum number of QoS groups is exceeded, the sessions that will be
created will belong to the first group that has the same qos_byte value. If there is
no group with the same qos_byte value, then a random group is chosen.

SEE ALSO

2-44 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

NAME — ::ixia::traffic_control

DESCRIPTION This command starts or stops traffic on a given port list.

SYNOPSIS ::ixia::traffic_control
-port_handle interface_list
-action CHOICES sync_run run manual_trigger
stop poll reset destroy clear_stats
[-latency_bins NUMERIC]
[-latency_values]
[-duration NUMERIC]
[-jitter_bins NUMERIC]
[-jitter_values]
[-latency_control CHOICES cut_through
store_and_forwardstore_and_forward_preamble]

ARGUMENTS

-port_handle List ports where action is to be taken.

-action Action to take. Valid choices are:

Value Usage

sync_run Hardware synchronizes the generators and


all defined traffic.
run Starts the generators and all configured traffic
sources.
manual_trigger triggers a manually triggered traffic sequence
on the specified traffic source. NOT IMPLE-
MENTED
stop Stops the generators.
poll Polls the generators to determine whether
they are stopped or running.
reset Clears generators to power up state and
clears all traffic sources.
destroy Destroys the generators.
clear_stats Clears all stats.

-latency_bins The number of latency bins

-latency_values The splitting values for the bins. 0 and Max will be the absolute end points. A
list of {1.5 3 6.8} would create these four bins {0 - 1.5} {1.5 3} {3 6.8} {6.8
MAX}. It is always greater than the lower value and equal to or less than the
upper value.

-duration Duration in seconds of traffic to run.

-jitter_bins The number of jitter bins.

-jitter_values Same as latency bins but, if jitter bins are provided then jitter measurements will
be retrieved with ::ixia::traffic_stats.

HLTAPI Commands, Release 2.80 Rev. B 2-45


Traffic APIs
2
-latency_control Valid choices are:

Value Usage

cut_through the time interval between the first data bit out
of the Ixia transmit port and the first data bit
received by the Ixia receive port is measured.
store_and_forward the time interval between the last data bit out
of the Ixia transmit port and the first data bit
received by the Ixia receive port is measured.
store_and_forward_preamble (for Ethernet modules only) As with store and
forward, but measured with respect to the
preamble to the Ethernet frame. In this case,
the time interval between the last data bit out
of the Ixia transmit port and the first preamble
data bit received by the Ixia receive port is
measured.

-tx_ports_list The TX ports list. Valid only for IxAccess usage. -port_handle option will be
ignored.

-rx_ports_list The RX ports list. Valid only for IxAccess usage. -port_handle option will be
ignored.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
stopped 0 if traffic is running, or 1 if traffic is stopped.

EXAMPLES See files starting with Streams_ in the Samples


subdirectory. Also see some of the other sample files in
Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

2-46 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

NAME — ::ixia::traffic_stats

DESCRIPTION This command gathers statistics by port.

SYNOPSIS ::ixia::traffic_stats
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
[-streams RANGE 0-57344]
[-stream RANGE 0-57344]
[-mode CHOICES aggregate out_of_filter
stream streams faststream add_atm_stats_rx
add_atm_stats_tx add_atm_stats all]
[-atm_counter_vpi_data_item_list ANY]
[-atm_counter_vci_data_item_list ANY]
[-atm_counter_vpi_mode CHOICES incr cont_incr
decr cont_decr]
[-atm_counter_vci_mode CHOICES incr cont_incr
decr cont_decr]
[-atm_counter_vpi_type CHOICES fixed counter
random table]
[-atm_counter_vci_type CHOICES fixed counter
random table]
[-atm_reassembly_enable_iptcpudp_checksum CHOICES 0 1]
[-atm_reassembly_enable_ip_qos CHOICES 0 1]
[-atm_reassembly_encapsulation CHOICES vcc_mux_ipv4_
routed vcc_mux_bridged_eth_fcs
vcc_mux_bridged_eth_no_fcs
vcc_mux_ipv6_routed vcc_mux_mpls_routed
llc_routed_clip llc_bridged_eth_fcs
llc_bridged_eth_no_fcs llc_pppoa vcc_mux_ppoa
llc_nlpid_routed]
[-qos_stats]
[-packet_group_id]
[-vpi RANGE 0-4096]
[-vci RANGE 0-65535]
[-vpi_step RANGE 0-4095]
[-vci_step RANGE 0-65534]
[-vpi_count RANGE 0-4096]
[-vci_count RANGE 0-65535]

ARGUMENTS

-port_handle Port from which to gather statistics.

-streams Stream ID on which to gather statistics.

-stream Stream ID on which to gather statistics (deprecated).

-mode Type of statistics to collect. Valid choices are:

Value Usage

aggregate N/A
out_of_filter N/A
stream N/A
streams deprecated

HLTAPI Commands, Release 2.80 Rev. B 2-47


Traffic APIs
2

Value Usage

faststream N/A
add_atm_stats N/A
add_atm_stats_rx adds the vpi/vci pair to gather rx statistics.
The number of tx stats that can be tracked is
less than the number of rx stats that can be
tracked.
add_atm_stats_tx adds the vpi/vci pair to gather tx statistics.
The number of tx stats that can be tracked is
less than the number of rx stats that can be
tracked.
all N/A

-atm_counter_vci_data_ If the -atm_counter_vci_type option is set to table, this list is used used for the set
item_list of values (default "").

-atm_counter_vpi_mode If the -atm_counter_vci_type option is set to counter, this indicates what counter
mode should be used (default incr). Currently only the incr and decr mode are
supported.

-atm_counter_vci_mode If the -atm_counter_vpi_type option is set to counter, this indicates what counter
mode should be used (default incr).

-atm_counter_vpi_type The type of counter to use on the vpi (default fixed). Currently only fixed,
counter, and table are supported.

-atm_counter_vci_type The type of counter to use on the vci (default fixed). Currently only fixed,
counter, and table are supported.

-atm_reassembly_enable_ Enables the collection of TCP and UDP checksum statistics for packets
iptcpudp_checksum
that match this vpi/vci (default 1).

-atm_reassembly_enable_ Enables the collection of QoS statistics for packets that match this vpi/vci
ip_qos (default 1).

-atm_reassembly_encap- The decode encapsulation to be used on received data when the port is in packet
sulation group mode. This is the only means by which the encapsulation may be set
(default llc_routed_clip).

-qos_stats IP TOS statistics to gather. Valid choices are between 0 and 7 Rate and Count,
inclusive.

-packet_group_id Given a packet group ID, return the statistics for this value.

-vpi The virtual circuit identifier (default 32).

-vci The virtual path identifier (default 0).

-vpi_step If -atm_counter_vpi_type is set to counter, then this is the value added/sub-


stracted between successive vpi values (default 1).

-vci_step If -atm_counter_vci_type is set to counter, then this is the value added/sub-


stracted between successive vci values (default 1).

2-48 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

-vpi_count If -atm_counter_vpi_type is set to counter and atm_counter_vpi_mode is set to


incr or decr, then this is the number of times to increment the VPI value before
repeating from the start value (default 1).

-vci_count If -atm_counter_vci_type is set to counter and atm_counter_vci_mode is set to


incr or decr, then this is the number of times to increment the VCI value before
repeating from the start value (default 1).

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
<port_handle>.aggregate.tx.elapsed_
time
<port_handle>.aggregate.<tx|rx>.pkt_
count
<port_handle>.aggregate.<tx|rx>.pkt_
byte_count
<port_handle>.aggregate.<tx|rx>.pkt_
rate
<port_handle>.aggregate.<tx|rx>.pkt_
bit_rate
<port_handle>.aggregate.tx.total_pkts
<port_handle>.aggregate.tx.total_pkt_
rate
<port_handle>.aggregate.rx.uds<1-2>_
count
<port_handle>.stream.<id>.tx.elapsed_
time
<port_handle>.stream.<id>.<tx|
rx>.total_pkts
<port_handle>.stream.<id>.<tx|
rx>.total_pkt_rate
<port_handle>.stream.<id>.rx.total_
pkts_bytes
<port_handle>.stream.<id>.rx.total_
pkt_bit_rate
<port_handle>.stream.<id>.rx.avg_
delay
<port_handle>.stream.<id>.rx.min_
delay
<port_handle>.stream.<id>.rx.max_
delay
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.pkt_bit_rate
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.pkt_byte_rate
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.pkt_frame_rate
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.first_tstamp

HLTAPI Commands, Release 2.80 Rev. B 2-49


Traffic APIs
2

Key Value

<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.last_tstamp
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.max
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.min
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.total_pkts
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.start_time
<port_handle>.stream.<id>.rx.latency_
bin.<bin number>.stop_time
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.pkt_bit_rate
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.pkt_byte_rate
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.pkt_frame_rate
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.first_tstamp
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.last_tstamp
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.max
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.min
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.total_pkts
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.start_time
<port_handle>.stream.<id>.rx.jitter_ Ixia only
bin.<bin number>.stop_time
<port_handle>.aggregate.<tx|rx>.raw_ Ixia only
pkt_count
<port_handle>.aggregate.<tx|rx>.raw_ Ixia only
pkt_rate
<port_handle>.aggregate.<tx|rx>.pkt_ Ixia only
bit_count
<port_handle>.aggregate.rx.collisions_ Ixia only
count
<port_handle>.aggregate.rx.crc_ Ixia only
errors_count
<port_handle>.aggregate.rx.dribble_ Ixia only
errors_count
<port_handle>.aggregate.rx.oversize_ Ixia only
count
<port_handle>.aggre- Ixia only
gate.rx.undersize_count
<port_handle>.aggregate.rx.vlan_pkts_ Ixia only
count

2-50 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

Key Value

<port_handle>.aggregate.rx.qos<0-7>_ Ixia only


count
<port_handle>.aggregate.rx.data_int_ Ixia only
frames_count
<port_handle>.aggregate.rx.data_int_ Ixia only
errors_count
<port_handle>.aggre- Ixia only
gate.rx.sequence_frames_count
<port_handle>.aggre- Ixia only
gate.rx.sequence_errors_count
<port_handle>.aggregate.rx.pkt_byte_ Ixia only
rate
<port_handle>.aggregate.rx.uds<1-2>_ Ixia only
rate
<port_handle>.aggregate.rx.collisions_ Ixia only
rate
<port_handle>.aggregate.rx.crc_ Ixia only
errors_rate
<port_handle>.aggregate.rx.dribble_ Ixia only
errors_rate
<port_handle>.aggregate.rx.oversize_ Ixia only
rate
<port_handle>.aggre- Ixia only
gate.rx.undersize_rate
<port_handle>.aggregate.rx.vlan_pkts_ Ixia only
rate
<port_handle>.aggregate.rx.qos<0-7>_ Ixia only
rate
<port_handle>.aggregate.rx.data_int_ Ixia only
frames_rate
<port_handle>.aggregate.rx.data_int_ Ixia only
errors_rate
<port_handle>.aggre- Ixia only
gate.rx.sequence_frames_rate
<port_handle>.aggre- Ixia only
gate.rx.sequence_errors_rate
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_crc_errors_count
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_frames_count
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_length_errors_count
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_timeout_errors_count
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_atm_cells_count
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_bytes_count
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_frames_count

HLTAPI Commands, Release 2.80 Rev. B 2-51


Traffic APIs
2

Key Value

<port_handle>.aggregate.tx.<vpi>.< Ixia only


vci>.tx_aal5_scheduled_cells_count
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_scheduled_frames_count
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_atm_cells_count
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_crc_errors_rate
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_frames_rate
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_length_errors_rate
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_aal5_timeout_errors_rate
<port_handle>.aggregate.rx.<vpi>.< Ixia only
vci>.rx_atm_cells_rate
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_bytes_rate
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_frames_rate
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_scheduled_cells_rate
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_aal5_scheduled_frames_rate
<port_handle>.aggregate.tx.<vpi>.< Ixia only
vci>.tx_atm_cells_rate
<port_handle>.pgid.rx.pkt_count.< Ixia only
pgid>
<port_handle>.pgid.rx.bit_rate.<pgid> Ixia only
<port_handle>.pgid.rx.min_latency.< Ixia only
pgid>
<port_handle>.pgid.rx.max_latency.< Ixia only
pgid>
<port_handle>.pgid.rx.avg_latency.< Ixia only
pgid>
<port_handle>.pgid.<pgid>.rx.latency_ Ixia only
bin.pkt_bit_rate
<port_handle>.pgid.<pgid>.rx.pkt_ Ixia only
byte_rate
<port_handle>.pgid.<pgid>.rx.pkt_ Ixia only
frame_rate
<port_handle>.pgid.<pgid>.rx.first_ Ixia only
tstamp
<port_handle>.pgid.<pgid>.rx.last_ Ixia only
tstamp
<port_handle>.pgid.<pgid>.rx.max Ixia only
<port_handle>.pgid.<pgid>.rx.min Ixia only
<port_handle>.pgid.<pgid>.rx.total_ Ixia only
pkts

2-52 HLTAPI Commands, Release 2.80 Rev. B


Traffic APIs

Key Value

<port_handle>.pgid.<pgid>.rx.start_ Ixia only


time
<port_handle>.pgid.<pgid>.rx.stop_ Ixia only
time
<port_handle>.igmpoppp.<tx|rx>.mc_ Ixia only
total_bytes
<port_handle>.igmpoppp.<tx|rx>.mc_ Ixia only
total_frames
<port_handle>.aggregate.tx.total_pkt_ Cisco only
bytes
<port_handle>.stream.<id>.tx.total_ Cisco only
pkts_bytes

EXAMPLES See files starting with Streams_ in the Samples


subdirectory. Also see some of the other sample files in
Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT

NOTES 1) Coded versus functional specification.

2) When using -mode stream the for a port TX stats are returned for all streams
that exist on that port and RX stats are available only if the packets with the
stream id are received on the port.

If -streams option is used along with -mode stream, then TX and RX stats are
returned for all streams in the list with 0 values if stats are not available for a spe-
cific stream.

3) ATM interfaces will not produce statistics on a per stream basis. 4) Deprecated
options are:

-mode streams

-stream

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 2-53


Traffic APIs
2

2-54 HLTAPI Commands, Release 2.80 Rev. B


Ixia Specific APIs
3
Chapter 3:

This chapter covers the following topics:

• ::ixia::capture_packets on page 3-2.

• ::ixia::get_packet_content on page 3-4.

HLTAPI Commands, Release 2.80 Rev. B 3-1


Ixia Specific APIs
3

NAME — ::ixia::capture_packets

DESCRIPTION This command configures the capture filter and trigger, starting and stopping
packet capture on Ixia interfaces.

SYNOPSIS ::ixia::capture_packets
-port_handle interface list
[-start FLAG]
[-stop FLAG]
[-filter CHOICES source_ipv4_address
source_ipv6_address packet_size]
[-get_all_packets FLAG]
[-get_packets RANGE 0-1000000]
[-packet_size RANGE 40-64000]
[-source_ipv4_address IP]
[-source_ipv6_address IP]
[-source_offset NUMERIC]

ARGUMENTS

-port_handle List of ports where the capture will take place.

-start Start packet capture on the specified interface list.

-stop Stop packet capture on the specified interface list.

-filter Before starting the packet capture, you can configure the capture buffer to filter
packets based on their source IP address or packet size. This prevents other pack-
ets like protocol hellos or keepalives from being captured. Valid choices are:

Value Usage
source_ipv4_address N/A
source_ipv6_address N/A
packet_size N/A

-get_all_packets

-get_packets When capture is done (that is, capture started and stopped), you can use this
option to grab packets from the capture buffer. You must specify a number of
packets to get from the buffer.

-packet_size For option "filter" set to packet_size, this option specifies the size of the packets
to filter.

-source_ipv4_address For option "filter" set to source_ipv4_address, this option specifies the value of
the IPv4 source IP address.

-source_ipv6_address For option "filter" set to source_ipv6_address, this option specifies the value of
the IPv6 source IP address.

-source_offset For option "filter" set to either source address, the offset of this address in the
packet must be supplied, so the filters can be set up correctly.

3-2 HLTAPI Commands, Release 2.80 Rev. B


Ixia Specific APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
$chassis/$card/$port.packets $port_packet_content.

EXAMPLES

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 3-3


Ixia Specific APIs
3

NAME — ::ixia::get_packet_content

DESCRIPTION This command gets a certain packet slice from the content of a packet. From a list
of packets passed by the user, the procedure extracts slices from the packets and
returns a list. The offset and slice_size are decimal values that define the number
of bytes.

SYNOPSIS ::ixia::get_packet_content
-offset NUMERIC
-slice_size NUMERIC
-packet_list
[-enable_hex2dec]

ARGUMENTS

-offset Decimal, number of bytes. Specifes where to start slicing the packets. Valid
choices start with 0.

-slice_size Decimal, number of bytes to extract. Specifies the number of bytes to extract
from packet and return.

-packet_list List of packets passed by the user to the procedure get_packet_content.

-enable_hex2dec

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


packet_content List of packet slices.

EXAMPLES

SAMPLE OUTPUT

NOTES

3-4 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs
4
Chapter 4:

This chapter covers the following topics:

• ::ixia::emulation_bgp_config on page 4-2.

• ::ixia::emulation_bgp_route_config on page 4-7.

• ::ixia::emulation_bgp_control on page 4-14.

• ::ixia::emulation_bgp_info on page 4-15.

HLTAPI Commands, Release 2.80 Rev. B 4-1


BGP APIs
4

NAME — ::ixia::emulation_bgp_config

DESCRIPTION This procedure configures BGP neighbors, internal and/or external. You can
configure multiple BGP peers per interface by calling this procedure multiple
times.

SYNOPSIS ::ixia::emulation_bgp_config
-port_handle ANY
-handle ANY
-mode CHOICES enable disable
modify reset
-ip_version CHOICES 4 6
-local_ip_addr IPv4
-remote_ip_addr IPv4
-local_ipv6_addr IPv6
-remote_ipv6_addr IPv6
-local_addr_step IP
-remote_addr_step IP
-next_hop_enable CHOICES 0 1FLAG
-next_hop_ip IP
-local_as NUMERIC
-local_as_step RANGE:0-65535
-update_interval RANGE:0-4294967295
-count
-local_router_id IPV4
-vlan_id RANGE 0-4095
-vlan_id_mode CHOICES fixed increment
-vlan_id_step RANGE 0-4096
-retry_time NUMERIC
-hold_time NUMERIC
-neighbor_type CHOICES internal external
-graceful_restart_enable FLAG
-restart_time RANGE 0-10000000
-stale_time RANGE 0-10000000
-tcp_window_size RANGE 0-10000000
-staggered_start_enable FLAG
-staggered_start_time RANGE 0-10000000
-retries RANGE 0-10000000
-local_router_id_enable FLAG
-active_connect_enable FLAG
-netmask RANGE 1-128
-mac_address_start MAC
-ipv4_unicast_nlri FLAG
-ipv4_multicast_nlri FLAG
-ipv4_mpls_nlri FLAG
-ipv4_mpls_vpn_nlri FLAG
-ipv6_unicast_nlri FLAG
-ipv6_multicast_nlri FLAG
-ipv6_mpls_nlri FLAG
-ipv6_mpls_vpn_nlri FLAG
-local_as_mode CHOICES fixed increment
-local_loopback_ip_addr IP
-local_loopback_ip_addr_step IP
-local_router_id_step IPV4
-no_write FLAG
-remote_loopback_ip_addr IP

4-2 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

-remote_loopback_ip_addr_step IP
-updates_per_iteration RANGE 0-10000000
-vlan_user_priority RANGE 0-7
-remote_as
-vpi
-vci
-vpi_step
-vci_step
-advertise_host_route
-routes_per_msg
-timeout

ARGUMENTS

-port_handle The port on which the BGP neighbor is to be created.

-handle BGP handle used for -mode modify

-mode This option defines the action to be taken on the BGP server. Valid choices are:

Value Usage

enable enable and/or create the BGP4 configuration.


If -handle is specified, then it will be enabled,
otherwise created.
disable disable the BGP4 configuration, requires the
use of -handle.
modify modify the BGP4 configuration, requires the
use of -handle.
reset deletes all BGP4 configurations from the -
port_handle and then creates the provided
BGP4 configuration.

-ip_version This option defines the IP version of the BGP4 neighbor to be configured on the
Ixia interface. Valid choices are:

Value Usage

4 IPv4
6 IPv6

-local_ip_addr The IPv4 address of the Ixia simulated BGP node to be emulated.

-remote_ip_addr The IPv4 address of the DUTs interface connected to the emulated BGP port.

-local_ipv6_addr The IPv6 address of the BGP node to be emulated by the test port.

-remote_ipv6_addr The IPv6 address of the DUT interface connected to emulated BGP node.

-local_addr_step Defines the mask and increment step for the next -local_ip_addr or

-local_ipv6_addr.

-remote_addr_step Defines the mask and increment step for the next -remote_ip_addr or

-remote_ipv6_addr.

HLTAPI Commands, Release 2.80 Rev. B 4-3


BGP APIs
4
-next_hop_enable This option is used for IPv4 traffic, and enables the use of the BGP NEXT_HOP
attributes. When enabled, the IP next hop must be configured (using the -next_
hop_ip option).

-next_hop_ip Defines the IP of the next hop. This option is used if the flag -next_hop_enable is
set.

-local_as The AS number of the BGP node to be emulated by the test port.

-local_as_step If you configure more then 1 eBGP neighbor on the Ixia interface, and if you
select the option local_as_mode to increment, the option local_as_step defines
the step by which the AS number is incremented.

-update_interval The time intervals at which UPDATE messages are sent to the DUT, expressed
in the number of milliseconds between UPDATE messages.

-count Number of BGP nodes to create.

-local_router_id BGP4 router ID of the emulated node, must be in IPv4 format.

-vlan_id VLAN ID for the emulated router node.

-vlan_id_mode For multiple neighbor configuration, configurest the VLAN ID mode. Valid
choices are:

Value Usage

fixed N/A
increment N/A

-vlan_id_step Defines the step for every VLAN When -vlan_id_mode is set to increment.

-retry_time For External BGP neighbor. When retries are necessary, the delay in seconds
between retries.

-hold_time Configures the hold time for BGP sessions for this Neighbor. Keepalives are sent
out every one-third of this interval. If the default value is 90, KeepAlive mes-
sages are sent every 30 seconds.

-neighbor_type Sets the BGP neighbor type. Valid choices are:

Value Usage

external eBGP
internal iBGP

-graceful_restart_enable Will enable graceful restart (HA) on the BGP4 neighbor.

-restart_time If -graceful_restart_enable is set, sets the amount of time following a restart


operation allowed to re-establish a BGP session, in seconds.

-stale_time If -graceful_restart_enable is set, sets the amount of time after which an End-Of-
RIB marker is sent in an Update message to the peer to allow time for routing
convergence via IGP and BGP selection, in seconds. Stale routing information
for that address family is then deleted by the receiving peer.

-tcp_window_size For External BGP neighbor only. The TCP window used for communications
from the neighbor.

4-4 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

-staggered_start_enable Enables staggered start of neighbors.

-staggered_start_time When the -staggered_start_enable flag is used, this is the duration of the start
process in seconds.

-retries For External BGP neighbor. The number of times to attempt an OPEN connec-
tion with the DUT routers before giving up.

-local_router_id_enable Enables the BGP4 local router id option.

-active_connect_enable For External BGP neighbor. If set, a HELLO message is actively sent when BGP
testing starts. Otherwise, the port waits for the DUT to send its HELLO message.

-netmask Mask of the IP address for the interface configuration.

-mac_address_start Initial MAC address of the interfaces created for the BGP4 neighbor.

-ipv4_unicast_nlri If used, support for IPv4 Unicast is advertised in the Capabilities Optional
Parameter / Multiprotocol Extensions parameter in the OPEN message.

-ipv4_multicast_nlri If used, support for IPv4 Multicast is advertised in the Capabilities Optional
Parameter / Multiprotocol Extensions parameter in the OPEN message.

-ipv4_mpls_nlri If used, support for IPv4 MPLS is advertised in the Capabilities Optional Param-
eter / Multiprotocol Extensions parameter in the OPEN message.

-ipv4_mpls_vpn_nlri If used, support for IPv4 MPLS VPN is advertised in the Capabilities Optional
Parameter / Multiprotocol Extensions parameter in the OPEN message.

-ipv6_unicast_nlri If used, support for IPv6 Unicast is advertised in the Capabilities Optional
Parameter / Multiprotocol Extensions parameter in the OPEN message.

-ipv6_multicast_nlri If used, support for IPv6 Multicast is advertised in the Capabilities Optional
Parameter / Multiprotocol Extensions parameter in the OPEN message.

-ipv6_mpls_nlri If used, support for IPv6 MPLS is advertised in the Capabilities Optional Param-
eter / Multiprotocol Extensions parameter in the OPEN message.

-ipv6_mpls_vpn_nlri If used, support for IPv6 MPLS VPN is advertised in the Capabilities Optional
Parameter / Multiprotocol Extensions parameter in the OPEN message.

-local_as_mode For External BGP type only. This option controls the AS number (local_as)
assigned to additional routers. Valid choices are:

Value Usage
fixed (default) the local_as remains fixed
increment increments the local_as

-local_loopback_ip_addr Required when the -ipv4_mpls_vpn_nlri option is used.

-local_loopback_ip_addr_ Required when the -ipv4_mpls_vpn_nlri option is used.


step

-local_router_id_step BGP4 router ID step of the emulated node, must be in IPv4 format.

HLTAPI Commands, Release 2.80 Rev. B 4-5


BGP APIs
4
-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-remote_loopback_ip_addr Required when the -ipv4_mpls_vpn_nlri option is used.

-remote_loopback_ip_ Required when the -ipv4_mpls_vpn_nlri option is used.


addr_step

-updates_per_iteration When the protocol server operates on older ports that do not possess a local pro-
cessor, this tuning parameter controls how many UPDATE messages are sent at a
time. When many routers are being simulated on such a port, changing this value
may help to increase or decrease performance.

-vlan_user_priority The VLAN user priority assigned to emulated router node.

-remote_as

-vpi

-vci

-vpi_step

-vci_step

-advertise_host_route

-routes_per_msg

-timeout

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is $::FAILURE, contains more
information
handles list of BGP node names/ids/handles

EXAMPLES See files starting with BGP4_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of theBGP usage.
See the BGP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {neighbor1 neighbor2}}

NOTES Coded versus functional specification.

SEE ALSO

4-6 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

NAME — ::ixia::emulation_bgp_route_config

DESCRIPTION This command creates a route range that is associated with a BGP4 neighbor.
This command defines a set of routes and associated attributes.

SYNOPSIS ::ixia::emulation_bgp_route_config
-mode CHOICES add remove
-handle
[-route_handle]
[-l3_site_handle]
[-ip_version CHOICES 4 6]
[-prefix IP | CHOICES all]
[-netmask IP]
[-ipv6_prefix_length RANGE 1-128]
[-num_routes NUMERIC]
[-num_sites NUMERIC]
[-max_route_ranges NUMERIC]
[-prefix_step NUMERIC]
[-packing_from RANGE 0-65535]
[-packing_to RANGE 0-65535]
[-route_ip_addr_step IP]
[-origin_route_enable FLAG]
[-origin CHOICES igp egp
incomplete]
[-as_path]
[-next_hop IP]
[-next_hop_enable FLAG | CHOICES 0 1
DEFAULT 1]
[-next_hop_set_mode CHOICES same manual
(DEFAULT same)]
[-next_hop_ip_version CHOICES 4 6]
[-multi_exit_disc NUMERIC]
[-local_pref NUMERIC (DEFAULT 0)]
[-atomic_aggregate FLAG]
[-aggregator]
[-communities_enable FLAG]
[-communities NUMERIC]
[-originator_id_enable FLAG]
[-originator_id IP]
[-cluster_list_enable FLAG]
[-cluster_list]
[-ext_communities]
[-label_value NUMERIC]
[-rd_admin_value IP | NUMERIC]
[-rd_assign_value NUMERIC]
[-label_incr_mode CHOICES fixed rd prefix]
[-label_step NUMERIC]
[-rd_type FLAG]
[-rd_admin_step IP | NUMERIC]
[-rd_assign_step NUMERIC]
[-target_type CHOICES as ip]
[-target IP | NUMERIC]
[-target_assign NUMERIC]
[-import_target_type CHOICES as ip]
[-import_target IP | NUMERIC]
[-import_target_assign NUMERIC]

HLTAPI Commands, Release 2.80 Rev. B 4-7


BGP APIs
4
[-ipv4_unicast_nlri FLAG]
[-ipv4_multicast_nlri FLAG]
[-ipv4_mpls_nlri FLAG]
[-ipv4_mpls_vpn_nlri FLAG]
[-ipv6_unicast_nlri FLAG]
[-ipv6_multicast_nlri FLAG]
[-ipv6_mpls_nlri FLAG]
[-ipv6_mpls_vpn_nlri FLAG]
[-default_mdt_ip IP]
[-default_mdt_ip_incr IP]
[-enable_generate_unique_routes]
[-enable_partial_route_flap]
[-enable_route_flap]
[-enable_traditional_nlri CHOICES 0 1 (DEFAULT 1)]
[-flap_down_time RANGE 1-1000000]
[-flap_up_time RANGE 1-1000000]
[-partial_route_flap_from_route_index RANGE 0-1000000]
[-partial_route_flap_to_route_index RANGE 0-1000000]
[-prefix_from RANGE 0-128]
[-prefix_to RANGE 0-128]
[-target_step IPNUMERIC]
[-target_assign_step NUMERIC]
[-import_target_step IPNUMERIC]
[-import_target_assign_step NUMERIC]
[-no_write FLAG]

ARGUMENTS

-mode Specifies either addition or removal of routes from emulated nodes BGP table.

-handle Specifies the emulated BGP router object name.

-route_handle The handle of the BGP route where to take action.

-l3_site_handle The handle of the L3 VPN Site where to take action.

-ip_version The IP version of the BGP route to be created. Valid choices are:

Value Usage

4 IPv4
6 IPv6

-prefix Route prefix to be advertised / removed by emulated BGP node.

-netmask Netmask of the advertised routes.

-ipv6_prefix_length IPv6 mask for the IPv6 routes advertised.

-num_sites Number of L3 VPN sites (PEs) to be created on a BGP neighbor.

-num_routes Number of routes to advertise, using the prefix as the starting prefix and incre-
menting based upon the -prefix_step and the -netmask arguments.

-max_route_ranges The number of route ranges to create under the BGP neighbor.

4-8 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

-prefix_step If -num_routes is greater than one, the step interval for the next incremented pre-
fix.

-packing_from The minimum number of routes to pack into an UPDATE message. Random
numbers are chosen from the range -packing_from to -packing_to.

-packing_to The maximum number of routes to pack into an UPDATE message. Random
numbers are chosen from the range -packing_from to -packing_to.

-route_ip_addr_step IP address increment step between the multiple route ranges created under the
BGP neighbor, based on -max_route_ranges

-origin Selects the value for the ORIGIN path attribute. Note that specifying a path
attribute forces the advertised route to be a node route as opposed to a global
route. Valid choices are:

Value Usage

igp N/A
egp N/A
incomplete N/A

-as_path Specifies the AS_PATH path attribute, which is a mandatory attribute composed
of a sequence of AS path segments. Format: <as path type>:<comma separated
segment list> {as_set|as_seq|as_confed_set|as_confed_seq}:<x,x,x,x>

Example:

as_set:1,2,3,4

as_set - specifies an unordered set of autonomous systems though which a route


in the UPDATE message has traversed.

as_seq - specifies an ordered set of autonomous systems through which a route in


the UPDATE message has traversed.

as_confed_set - specifies an unordered set of autonomous systems in the local


confederation that the UPDATE message has traversed.

as_confed_seq - specifies an ordered set of autonomous systems in the local con-


federation that the UPDATE message has traversed.

-next_hop Specifies a mandatory path attribute that defines the IP address of the border
router that should be used as the next hop to the destinations listed in the Net-
work Layer Reachability field of the UPDATE message.

-next_hop_enable A flag to enable the generation of a NEXT HOP attribute. Can be used as a flag
of a choice of 0 or 1.

(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 4-9


BGP APIs
4
-next_hop_set_mode Indicates how to set the next hop IP address. Valid choices are:

Value Usage

same (default) Will set the value as the local IP


address.
manual The value is read from -next_hop_ip_
address.

-next_hop_ip_version The type of IP address in nextHopIpAddress. Valid choices are:

Value Usage

4 IPv4
6 IPv6

-multi_exit_disc Specifies the multi-exit discriminator, which is an optional non-transitive path


attribute. The value of this attribute may be used by a BGP speakers decision
process to discriminate among multiple exit points to a neighboring AS.

-local_pref Specifies the LOCAL_PREF path attribute, which is a discretionary attribute


used by a BGP speaker to inform other BGP speakers in its own AS of the origi-
nating speakers degree of preference for an advertised route.

(DEFAULT = 0)

-atomic_aggregate Specifies the ATOMIC_AGGREGATE path attribute, which is a discretionary


attribute. If set to 1, informs other BGP speakers that the local system selected a
less specific route without selecting a more specific route included in it.

-aggregator For the AGGREGATOR path attribute, specifies the last AS number that formed
the aggregate route, and the IP address of the BGP speaker that formed the aggre-
gate route. Format: <asn>:<a.b.c.d>

-communities_enable Enables or disables communities.

-communities Specifies the COMMUNITIES path attribute, which is an optional transitive


attribute of variable length. All routes with this attribute belong to the communi-
ties listed in the attribute.

This is a list of numbers.

-originator_id_enable Enables or disables originator ID on BGP route range.

-originator_id Specifies the ORIGINATOR_ID path attribute, which is an optional, non-transi-


tive BGP attribute. It is created by a Route Reflector and carries the ROUTER_
ID of the originator of the route in the local AS.

-cluster_list_enable Enables or disables cluster list on BGP route range.

-cluster_list Specifies the CLUSTER_LIST path attribute, which is an optional, non-transitive


BGP attribute. It is a sequence of CLUSTER_ID values representing the reflec-
tion path through which the route has passed.

4-10 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

-ext_communities Specifies the EXTENDED COMMUNITIES path attribute, which is a transitive


optional BGP attribute. All routes with the EXTENDED COMMUNITIES
attribute belong to the communities listed in the attribute.

This is a list of numbers separated by comma char "," as follows:

The first number is the value of the low-order type byte. Possible values:

0 (default)

2 Route target community

3 Route origin community

4 Link bandwidth community

The second number is the value of the high-order type byte.

Possible values:

128 IANA bit: This bit may be oríd with any other values. 0 indicates that this is
an IANA assignable type using First Come First Serve policy. 1 indicates that
this is an IANA assignable type using the IETF Consensus policy.

64 Transitive bit: This bit may be oríd with any other values. 0 indicates that the
community is transitive across ASes and 1 indicates that it is non-transitive.

0 Two-octet AS specific (default): Value holds a two-octet global ASN followed


by a four-bytes local admin value.

1 IPv4 address specific: Value holds a four-octet IP address followed by a two-


bytes local administrator value.

2 Four-octet AS specific: Value holds a four-octet global ASN followed by a


two-bytes local admin value.

3 Generic: Value holds six-octets.

The third number is the value associated with the extended community. (default
= {00 00 00 00 00 00})

Example value: {2,128,03 22 00 00 00 00}

-label_value Starting value for the MPLS label of the IPv4 MPLS-VPN route.

-label_incr_mode Method in which the MPLS label of an IPv4 MPLS-VPN route will be incre-
mented. Valid choices are:

Value Usage

fixed Fixed MPLS label for all RDs


rd Increment label per RD
prefix Increment label per prefix advertised

-label_step Increment value used to step the base MPLS label.

-rd_admin_value Starting value of the administrator field of the route distinguisher.

-rd_assign_value Starting value of the assigned number field of the route distinguisher.

HLTAPI Commands, Release 2.80 Rev. B 4-11


BGP APIs
4
-rd_type Route distinguisher type.

-rd_admin_step Increment value to step the base route distinguisher administrator field.

-rd_assign_step Increment value to step the base route distinguisher assigned number field.

-target_type List of the target type.

-target AS number or IP address list based on the -target_type list.

-target_assign The assigned number subfield of the value field of the target. It is a number from
a numbering space which is maintained by the enterprise administers for a given
IP address or ASN space. It is the local part of the target.

-import_target_type List of the import target type.

-import_target AS number or IP address list based on the -import_target_type list.

-import_target_assign The assigned number subfield of the value field of the import target. It is a num-
ber from a numbering space which is maintained by the enterprise administers for
a given IP address or ASN space. It is the local part of the import target.

-ipv4_unicast_nlri Enables the retrieval of routes for IPv4 unicast.

-ipv4_multicast_nlri Enables the retrieval of routes for IPv4 multicast.

-ipv4_mpls_nlri Enables the retrieval of routes for IPv4 MPLS.

-ipv4_mpls_vpn_nlri Enables the retrieval of routes for IPv4 MPLS VPNs.

-ipv6_unicast_nlri Enables the retrieval of routes for IPv6 unicast.

-ipv6_multicast_nlri Enables the retrieval of routes for IPv6 multicast.

-ipv6_mpls_nlri Enables the retrieval of routes for IPv6 MPLS.

-ipv6_mpls_vpn_nlri Enables the retrieval of routes for IPv6 MPLS VPNs.

-default_mdt_ip Defines the IP address of the default MDT for mVPN.

-default_mdt_ip_incr Defines the IP address increment for each default MDT.

-enable_generate_unique_ FLAG - When set to 1, each router generates a different IP address range. When
routes set to 0, each router advertises the route range as is. When enabled, the first
router advertises numRoutes routes starting at networkAddress, the next router
advertises numRoutes routes starting at (networkAddress + numRoutes), and so
on.

-enable_partial_route_flap

-enable_route_flap FLAG - Enables the flapping functions described by route_flap_up_time, route_


flap_down_time, routesToFlapFrom, and routesToFlapTo.

-enable_traditional_nlri If checked, use the traditional NLRI in the UPDATE message, instead of using
the MP_REACH_NLRI Multi-protocol extension to advertise the routes. (Not
applicable for MPLS and MPLS VPN Route Ranges.) Values: 0 1

(DEFAULT = 1)

4-12 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

-flap_down_time During flapping operation, the period expressed in seconds during which the
route is withdrawn from its neighbors.

(DEFAULT = 0)

-flap_up_time During flapping operation, the time between flap cycles, expressed in seconds.
During this period, the route range will be up.

(DEFAULT = 0)

-partial_route_flap_from_
route_index

-partial_route_flap_to_
route_index

-prefix_from The first prefix length to generate based on the -prefix. num_routes.

-prefix_to The last prefix length to generate based on the -prefix. -num_routes.

-target_step Increment value to step the base target field.

-target_assign_step Increment value to step the base target assigned number field.

-import_target_step Increment value to step the base import target field.

-import_target_assign_ Increment value to step the base import target assigned number field.
step

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is failure, contains more informa-
tion.
bgp_routes The route range handles.
bgp_sites A keyed list of sites with route ranges for

EXAMPLES See files starting with BGP4_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of BGP usage.
See the BGP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) You can configure multiple BGP route range on each Ixia interface.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 4-13


BGP APIs
4

NAME — ::ixia::emulation_bgp_control

DESCRIPTION Stop, start, or restart the protocol.

SYNOPSIS ::ixia::emulation_bgp_control
-mode CHOICES stop start restart
link_flap
[-handle]
[-link_flap_up_time RANGE 0-10000000]
[-link_flap_down_time RANGE 0-10000000]

ARGUMENTS

-mode What is being done to the protocol. Valid choices are:

Value Usage
stop stop the protocol
start start the protocol
restart restart the protocol
link_flap turns on and sets the link flapping

-handle The BGP session handle.

-link_flap_down_time When mode is link_flap, the amount of time in seconds that the link is discon-
nected.

-link_flap_up_time When mode is link_flap, the amount of time in seconds that the link is connected.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.

EXAMPLES See files starting with BGP4_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of BGP usage.
See the BGP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

4-14 HLTAPI Commands, Release 2.80 Rev. B


BGP APIs

NAME — ::ixia::emulation_bgp_info

DESCRIPTION Returns information about BGP neighbors.

SYNOPSIS ::ixia::emulation_bgp_info
-mode CHOICES stats clear_stats settings neighbors
labels
-handle

ARGUMENTS

-mode Specifies action to be taken. Valid choices are:

Value Usage

stats returns Tx and Rx statistics of different BGP


messages.
clear_stats clears Tx and Rx statistics of different BGP
messages.
settings returns tester IP address and AS number.
neighbors returns SUT IP address.
labels returns MPLS label information like label, net-
work, next_hop, prefix_len, distinguisher
(only for MPLS VPN), version(ipV4|ipV6),
type (mpls|mplsVpn)

-handle The BGP session handle or L3 Site handle.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log On status of failure, gives detailed informa-
tion.
ip_address tester IP address
peers BGP peer IP address (a.b.c.e)
update_tx number of updates sent
update_rx number of updates received
keepalive_tx number of keepalive messages sent
keepalive_rx number of keepalive messages received
open_tx number of open messages sent
open_rx number of open messages received
notify_tx number of notify messages sent
notify_rx number of notify messages received
num_node_routes number of routes in session
routing_protocol BGP session type
ip_address a.b.c.d
asn integer
peers List of bgp peers (a.b.c.e)
<number>.distinguisher only for MPLS VPN
<number>.label integer

HLTAPI Commands, Release 2.80 Rev. B 4-15


BGP APIs
4

Key Value
<number>.neighbor ip address (v4 or v6)
<number>.network ip address (v4 or v6)
<number>.next_hop ip address (v4 or v6)
<number>.prefix_len integer
<number>.type mpls|mplsVpn
<number>.version ipV4|ipV6

EXAMPLES See files starting with BGP4_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of BGP usage.
See the BGP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

4-16 HLTAPI Commands, Release 2.80 Rev. B


DHCP APIs
5
Chapter 5:

This chapter covers the following topics:

• ::ixia::emulation_dhcp_config on page 5-2.

• ::ixia::emulation_dhcp_group_config on page 5-4.

• ::ixia::emulation_dhcp_control on page 5-8.

• ::ixia::emulation_dhcp_stats on page 5-10.

HLTAPI Commands, Release 2.80 Rev. B 5-1


DHCP APIs
5

NAME — ::ixia::emulation_dhcp_config

DESCRIPTION Configures DHCP emulation for the specified test port or handle. Calling this
procedure repeatedly will create more interfaces on that port. (go to
::ixia::emulation_dhcp_group_config description for more details).

SYNOPSIS ::ixia::emulation_dhcp_config
[-port_handle ^\[0-9\]+/\[0-9\]+/\[0-
9\]+$]
-mode CHOICES create modify reset
[-handle]
[-lease_time RANGE 0-65535]
[-max_dhcp_msg_size RANGE 0-65535]
[-reset FLAG]
[-version CHOICES ixtclhal ixaccess
DEFAULT ixtclhal]
[-no_write FLAG]
[-msg_timeout NUMERIC]
[-outstanding_sessions_count NUMERIC]
[-release_rate RANGE 0-2000]
[-request_rate RANGE 0-2000]
[-response_wait NUMERIC]
[-retry_count NUMERIC]
[-retry_timer NUMERIC]

ARGUMENTS

-port_handle This parameter specifies the port upon which emulation is configured. Manda-
tory for the modes -create and -reset.

-mode This option defines the action to be taken on the port specified by the port_handle
argument. Valid choices are:

Value Usage
create Creates an DHCP session, requires the use
of -port_handle.
modify Modifies an DHCP session, requires the use
of -handle.
reset Stops the emulation locally without attempting
to clear the bound address from the DHCP
server.

-handle Specifies the handle of the port upon which emulation is configured. Mandatory
for the mode -modify only.

-lease_time Specify the lease time in seconds suggested by the emulated client that is sent in
the discover message. The default value of this parameter is "8640".

-max_dhcp_msg_size Sets the maximum size of the dhcp message. This option is not supported with
IxAccess. It will be accepted as a parameter without any warning whatsoever, but
it will have no effect on the configuration.

5-2 HLTAPI Commands, Release 2.80 Rev. B


DHCP APIs

-reset Clears the hardware. If mode is "create" and the reset parameter is present, all the
configurations will be erased from memory and the new config is created using
the new given parameters.

If mode is “create" and the reset parameter is not present, a new session is added
in the local array.

If mode is "modify" or "reset", the -reset parameter cannot be used.

-version Permits the selection of the API used (ixtclhal or ixaccess). This option must be
set to ixaccess so that IxAccess API is used.

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware. Writing the configurations to hardware can be done only once in the
::ixia::emulation_dhcp_group_config, if you want to modify you have to redo the
configurations and write them again.

-msg_timeout Specifies the maximum time to wait in milliseconds for receipt of an offer or ack
message after the sending of a corresponding discover or request message.

-outstanding_sessions_ Specifies the maximum number of outstanding sessions (unacknowledged dis-


count cover or request message) allowed to exist. In effect, this is a rate limiting mech-
anism that stops dhcp servers from being overwhelmed with reqests.

-release_rate Specified the desired release rate in sessions per second.

-request_rate Specified the desired request rate in sessions per second.

-response_wait

-retry_count Limits the number of additional transmissions of either a discover or request


message when no acknowledgement is received.

-retry_timer Limits the number of seconds the emulation will wait between attempting to
reestablish a failed session.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log Error message if command returns {status 0}
port_handle Port handle on which DHCP emulation was
configured

EXAMPLES See files starting with DHCP_ in the Samples subdirectory.


See the DHCP example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 5-3


DHCP APIs
5

NAME — ::ixia::emulation_dhcp_group_config

DESCRIPTION Configures and modifies a group of DHCP subscribers where each group share a
set of common characteristics.

This proc can be invoked multiple times to create multiple groups of subscribers
on a port with characteristics different from other groups or for independent con-
trol purposes.

This command allows the user to configure a specified number of DHCP client
sessions which belong to a subscriber group with specific Layer 2 network set-
tings. Once the subscriber group has been configured a handle is created, which
can be used to modify the parameters or reset sessions for the subscriber.

Creating several groups for one session is no longer supported. Trying to do this
will overwrite the previous created group. This is an IxAccess limitation.

SYNOPSIS ::ixia::emulation_dhcp_group_config
-mode CHOICES create modify reset
-mac_addr MAC
-mac_addr_step MAC
[-num_sessions RANGE 1-65536]
[-handle]
[-encap CHOICES ethernet_ii
ethernet_ii_vlan vc_mux llcsnap
[-vlan_id RANGE 0-4095]
[-vlan_id_step RANGE 0-4095]
[-vlan_id_count RANGE 0-4095]
[-vci RANGE 0-65535]
[-vpi RANGE 0-255]
[-vci_count RANGE 0-65535]
[-vci_step NUMERIC]
[-vpi_count RANGE 0-255]
[-vpi_step NUMERIC]
[-sessions_per_vc RANGE 1-65535]
[-pvc_incr_mode CHOICES vci vpi]
[-version CHOICES ixtclhal ixaccess
DEFAULT ixtclhal]
[-target_subport RANGE 0-3 DEFAULT 0]
[-server_id IP]
[-vendor_id]
[-no_write FLAG]
[-vlan_priority RANGE 0-7]
[-qinq_incr_mode CHOICES inner outer]
[-release_rate_sps RANGE 0-2000]
[-request_rate_sps RANGE 0-2000]
[-vlan_id_outer RANGE 0-4095]
[-vlan_id_outer_count RANGE 0-4095]
[-vlan_id_outer_step RANGE 0-4095]

ARGUMENTS

-mode Action to take on the port specified the handle argument. Create starts emulation
on the port. Modify applies the parameters specified in subsequent arguments.
Reset stops the emulation locally without attempting to clear the bound addresses
from the DHCP server.

5-4 HLTAPI Commands, Release 2.80 Rev. B


DHCP APIs

-handle Specifies the port and group upon which emulation is configured. If the -mode is
"modify", -handle specifies the group upon which emulation is configured, other-
wise it specifies the session upon which emulation is configured.

-num_sessions Indicates the number of DHCP clients emulated.

-encap Note: ethernet_ii_qinq is not supported. Valid choices are:

Value Usage

ethernet Ethernet II
ethernet_ii_vlan Ethernet II with a single vlan tag
vc_mux ATM encapsulation
llcsnap ATM encapsulation

-mac_addr Specifies the base (first) MAC address to use when emulating multiple clients.
This parameter is mandatory when -mode is “create”.

-mac_addr_step Specifies the step value applied to the base MAC address for each subsequent
emulated client. It must be provided in the integer format (unlike ixTclHal where
it is provided in MAC address format).The step MAC address is arithmetically
added to the base MAC address with any overflow beyond 48 bits silently dis-
carded. The default value is 1.

-vci Specifies the base (first) VCI (virtual circuit) value applied used when emulating
multiple DHCP clients over ATM interfaces.

-vpi Specifies the base (first) VPI (virtual path) value applied used when emulating
multiple DHCP clients over ATM interfaces.

-vlan_id Specifies the starting vlan id for ethernet_ii_vlan encapsulation. Applies to


Ethernet vlan interfaces only.

-vlan_id_step Specifies the increment for the vlan id for ethernet_ii_vlan encapsulation.
Applies to Ethernet interfaces only.

-vlan_id_count Specifies the number of vlan id for ethernet_ii_vlan encapsulation. Only applies
to Ethernet interfaces. The increment is applied via addition modulo 4096.

-sessions_per_vc Specifies the the number of VPI's or VCI's sessions used for emulation of clients
over ATM interfaces. Used in conjuction with the -pvc_incr_mode to allow mul-
tiple sessions per VCC. Valid for ATM interfaces only.

-vci_count Specifies the the number of VCI's used for the emulation of clients over ATM
interfaces. Valid for ATM interfaces only.

-vci_step Specifies the increment to be used when selecting the next VCI value to be used
for emulation of clients over ATM interfaces. Valid for ATM interfaces only.
VCI values are incremented by addition modulo 65536.

-vpi_count Specifies the the number of VPI's used for the emulation of clients over ATM
interfaces. Valid for ATM interfaces only.

-vpi_step Specifies the increment to be used when selecting the next VPI value to be used
for emulation of clients over ATM interfaces. Valid for ATM interfaces only.
VCI values are incremented by addition modulo 256.

HLTAPI Commands, Release 2.80 Rev. B 5-5


DHCP APIs
5
-pvc_incr_mode Specifies the increment to be used when selecting the next VPI value to be used
for emulation of clients over ATM interfaces. Valid for ATM interfaces only.

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware. Writing the configurations to hardware can be done only once. If you
want to modify you have to redo the configurations and write them again, so we
recommand using this parameter until all the configurations are complete and
then writing them (without -no_write).

-server_id An IP address (default 1.1.1.1) - DHCP negotiation will only occur with a partic-
ular server.

-vendor_id The vendor ID associated with the client (default "Ixia").

-vlan_priority If -encap is ethernet_ii_vlan, specifies the priority of the vlan_id.

(DEFAULT 0)

-version Permits the selection of the API used (ixtclhal or ixaccess). This option must be
set to ixaccess so that IxAccess API is used.

-target_subport Defines which IxAccess subport is to be utilized. There are four and they are
defined from 0 to 3.

-qinq_incr_mode

-release_rate_sps

-request_rate_sps

-vlan_id_outer

-vlan_id_outer_count

-vlan_id_outer_step

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is failure, contains more info
port_handle Port handle on which DHCP emulation was
configured
group Handle of the group that was configured or
modified

EXAMPLES See files starting with DHCP_ in the Samples subdirectory.


See the DHCP example in Appendix A, "Example APIs," for
one specificexample usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

5-6 HLTAPI Commands, Release 2.80 Rev. B


DHCP APIs

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 5-7


DHCP APIs
5

NAME — ::ixia::emulation_dhcp_control

DESCRIPTION Controls DHCP sessions. This procedure is not available for IxAccess.

SYNOPSIS ::ixia::emulation_dhcp_control
-port_handle
-action CHOICES bind release renew
[-handle]
[-no_write FLAG]

ARGUMENTS

-port_handle Specifies the handle upon which emulation id configured. This parameter is
returned from emulation_dhcp_config proc.

Emulation must have been previously enabled on the specified port via a call to
emulation_dhcp_group_config proc.

-action Action to take on the port specified by the port_handle argument. The parameters
specified in the emulation_dhcp_group_config proc are used to control the bind/
renew/release rates.

Valid choices are:

Value Usage

Bind starts the discover/request message trans-


mission.
Release causes the system to issue release message
for all currently bound subscribers.
Renew issues a renew request for all currently bound
subscribers. This option is a Cisco option.

-handle Allows the user to optionally select the groups to which the specified action is to
be applied. If this parameter is not specified, then the specified action is applied
to all groups configured on the port specified by the -port_handle command. The
handle is obtained from the keyed list returned in the call to emulation_dhcp_
group_config proc. The port handle parameter must have been initialized and
dhcp group emulation must have been configured prior to calling this function.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion

EXAMPLES See files starting with DHCP_ in the Samples subdirectory.


See the DHCP example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

5-8 HLTAPI Commands, Release 2.80 Rev. B


DHCP APIs

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 5-9


DHCP APIs
5

NAME — ::ixia::emulation_dhcp_stats

DESCRIPTION Controls DHCP subscriber group activity. This procedure returns only the aggre-
gate statistics per port/subport. This is a limitation of IxAccess regarding the
dhcp statistics.

The subport from which the statistics are collected is extracted from the handle.

SYNOPSIS ::ixia::emulation_dhcp_stats
-port_handle
[-action CHOICES clear]
[-handle]
[-version CHOICES ixtclhal ixaccess
DEFAULT ixtclhal]
[-no_write FLAG]

ARGUMENTS

-port_handle Specifies the port upon which emulation id configured. This parameter is
returned from emulation_dhcp_config proc. Emulation must have been previ-
ously enabled on the specified port via a call to emulation_dhcp_group_config
proc.

-action Clear - reset the statistics for the specified port/subscriber group to 0. This option
is not supported with IxAccess. This parameter will be ignored if it is used.

-handle Allows the user to optionally select the groups to which the specified action is to
be applied. If this parameter is not specified, then the specified action is applied
to all groups configured on the port specified by the -port_handle command. The
handle is obtained from the keyed list returned in the call to emulation_dhcp_
group_config proc.

The port handle parameter must have been initialized and dhcp group emulation
must have been configured prior to calling this function.

This option is not supported with IxAccess. This parameter will be ignored if it is
used.

-version Defines whether the target program is IxTclHal or IxAccess. The default is IxT-
clHal. This option must be set to IxAccess so that ixAccess API is used.

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

This option is not supported with IxAccess. This parameter will be ignored if it is
used.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
aggregate.currently_attempting Total no of enabled interfaces
aggregate.currently_idle Total no of interfaces not bounded

5-10 HLTAPI Commands, Release 2.80 Rev. B


DHCP APIs

Key Value
aggregate.currently_bound Total no of addresses learned
aggregate.success_percentage Percent rate of addresses learned
aggregate.discover_tx_count Total no of discovered messages sent
aggregate.request_tx_count Total no of requests sent
aggregate.release_tx_count Total no of releases sent
aggregate.ack_rx_count Total no of acks received
aggregate.nak_rx_count Total no of nacks received
aggregate.offer_rx_count Total no of offers received
group.<group#>.currently_attempting No of enabled interfaces on that group
group.<group#>.currently_idle No of interfaces not bounded on that group
group.<group#>.currently_bound No of addresses learned on that group
aggregate.elapsed_time Cisco only
aggregate.total_attempted Cisco only
aggregate.total_retried Cisco only
aggregate.total_bound Cisco only
aggregate.bound_renewed Cisco only
aggregate.total_failed Cisco only
aggregate.bind_rate Cisco only
aggregate.attempted_rate Cisco only
aggregate.minimum_setup_time Cisco only
aggregate.maximum_setup_time Cisco only
aggregate.average_setup_time Cisco only
group.<group#>.elapsed_time Cisco only
group.<group#>.total_attempted Cisco only
group.<group#>.total_retried Cisco only
group.<group#>.bound_renewed Cisco only
group.<group#>.total_bound Cisco only
group.<group#>.total_failed Cisco only
group.<group#>.bind_rate Cisco only
group.<group#>.attempt_rate Cisco only
group.<group#>.request_rate Cisco only
group.<group#>.release_rate Cisco only
group.<group#>.discover_tx_count Cisco only
group.<group#>.request_tx_count Cisco only
group.<group#>.release_tx_count Cisco only
group.<group#>.ack_rx_count Cisco only
group.<group#>.nak_rx_count Cisco only
group.<group#>.offer_rx_count Cisco only
<port_handle>.<group#>.inform_tx_ Cisco only
count
<port_handle>.<group#>.decline_tx_ Cisco only
count

HLTAPI Commands, Release 2.80 Rev. B 5-11


DHCP APIs
5
EXAMPLES See files starting with DHCP_ in the Samples subdirectory.
See the DHCP example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

5-12 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs
6
Chapter 6:

This chapter covers the following topics:

• ::ixia::emulation_ftp_config on page 6-2.

• ::ixia::emulation_ftp_traffic_config on page 6-10.

• ::ixia::emulation_ftp_control on page 6-14.

• ::ixia::emulation_ftp_control_config on page 6-16.

• ::ixia::emulation_ftp_stats on page 6-22.

HLTAPI Commands, Release 2.80 Rev. B 6-1


FTP APIs
6

NAME — ::ixia::emulation_ftp_config

DESCRIPTION This command is used to construct the environment required for the FTP proto-
col to be used.

It sets for the client or server side of the emulation the configuration of TCP
parameters used for a FTP transaction, the presence or absence of an emulated
router, the range of ports where the process can open sockets, the buffers sizes.

To this environment it can add network ranges to define the FTP client or server
networks, or it can add DNS servers, or a pool of IP addresses to be used for an
emulated router between the network range and the testing port. Multiple net-
work ranges, DNS servers and suffixes or IP address pools can be added to a cli-
ent or server FTP configuration.

SYNOPSIS ::ixia::emulation_ftp_config
-mode CHOICES add remove
modify enable disable
[-property CHOICES ftp network
router_addr dns]
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-port_handle REGEXP ^[0-9]+/[0-9]+/
[0-9]+$]
[-mac_mapping_mode CHOICES macip macport
DEFAULT macip]
[-source_port_from RANGE 1024-65535
DEFAULT 1024]
[-source_port_to RANGE 1024-65535
DEFAULT 65535]
[-emulated_router_gateway IP DEFAULT 0.0.0.0]
[-emulated_router_subnet MASK
DEFAULT 255.255.255.0]
[-dns_cache_timeout NUMERIC DEFAULT 30000]
[-grat_arp_enable CHOICES 0 1 DEFAULT 0]
[-congestion_notification_enable CHOICES 0 1 DEFAULT 0]
[-time_stamp_enable CHOICES 0 1 DEFAULT 1]
[-rx_bandwidth_limit_enable CHOICES 0 1 DEFAULT 0]
[-tx_bandwidth_limit_enable CHOICES 0 1 DEFAULT 0]
[-fin_timeout NUMERIC DEFAULT 60]
[-keep_alive_interval NUMERIC DEFAULT 7200]
[-keep_alive_probes NUMERIC DEFAULT 9]
[-keep_alive_time NUMERIC DEFAULT 75]
[-receive_buffer_size NUMERIC DEFAULT 4096]
[-retransmit_retries NUMERIC DEFAULT 15]
[-rx_bandwidth_limit NUMERIC]
[-rx_bandwidth_limit_unit CHOICES kb mb
DEFAULT kb]
[-syn_ack_retries NUMERIC DEFAULT 5]
[-syn_retries NUMERIC DEFAULT 5]
[-transmit_buffer_size NUMERIC DEFAULT 4096]
[-tx_bandwidth_limit NUMERIC]
[-tx_bandwidth_limit_unit CHOICES kb mb
DEFAULT kb]
[-ip_address_start IP DEFAULT 198.18.0.1]

6-2 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

[-mac_address_start ANY
DEFAULT 00.C6.12.00.01.00]
[-gateway IP DEFAULT 0.0.0.0]
[-ip_count NUMERIC DEFAULT 100]
[-ip_increment_step IP DEFAULT 0.0.0.1]
[-mac_increment_step ANY
DEFAULT 00.00.00.00.00.01]
[-mss NUMERIC DEFAULT 1460]
[-mss_enable CHOICES 0 1 DEFAULT 0]
[-network_mask MASK DEFAULT 255.255.0.0]
[-vlan_enable CHOICES 0 1 DEFAULT 0]
[-vlan_id NUMERIC]
[-dns_server IP]
[-dns_suffix REGEXP ^\.[A-z]+\.[A-
z]+$]
[-pool_ip_address_start IP DEFAULT 194.18.0.1]
[-pool_ip_count NUMERIC DEFAULT 1]
[-pool_mac_address_start ANY DEFAULT
00.C2.12.00.01.00]
[-pool_vlan_enable CHOICES 0 1 DEFAULT 0]
[-pool_vlan_id NUMERIC

ARGUMENTS

-handle Handle of a FTP property , used when -property is network or router_addr or dns
and -mode is add. Also the handle of a FTP or network or router_addr or dns
property when "-property" is respectively ftp, network, router_addr, dns and "-
mode" is modify or remove, enable, disable. Dependencies:

"-property" network|router_addr|dns and "-mode" add

"-property" ftp and "-mode" modify

-target Specifies where this network will be added: on the client side or on the server
side.

Values: client, server.

Dependencies: property ftp with mode add.

(DEFAULT = client)

-property Defines types of properties of the FTP configuration. Mandatory for -mode add.

Valid choices are:

Value Usage

ftp handles operations required for defining the


general parameters required for FTP proto-
col.
network handles the operations required for defining
the emulated client or server networks.
router_addr handles the operations required for defining
the pool of IP addresses required for the
emulated router between the client networks
and the physical port.

HLTAPI Commands, Release 2.80 Rev. B 6-3


FTP APIs
6

Value Usage

dns handles the operations required for defining


the Domain Name Server protocol parame-
ters needed for the FTP protocol.

-mode Defines types of actions to be taken on the "property" object. Values: add,
remove, modify, enable, disable.

-port_handle The ports on the chassis this protocol will be created.

Dependencies: "-property" ftp with "-mode" add or modify.

-mac_mapping_mode Indicates whether one MAC address will be associated with each IP address or
with each port. The use of the latter option indicates that an emulated router is to
be used. Values are: macip, macport.

Dependencies: "-property" ftp with "-mode" add or modify.

(DEFAULT = macip)

-source_port_from 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 source_port_to.
Valid values are from 1024 to 65535.

(DEFAULT = 1024)

-source_port_to Defines the end of the range of ephemeral port numbers used to establish connec-
tions to the server. Valid values are from 1024 to 65535.

(DEFAULT = 65535)

-emulated_router_gateway If "-mac_mapping_mode" is set to macport, 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)

-emulated_router_subnet If "-mac_mapping_mode" is set to macport, 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)

-dns_cache_timeout The length of time, in milliseconds, the program should continue to refer to the
previously resolved host name stored in its cache before discarding the entry and
accessing the DNS server to re-resolve the host name.

(DEFAULT = 30000)

-grat_arp_enable Values: 0 or 1. If true, before beginning a test, the program will ARPs the gate-
ways so that the DUT can learn the MAC addresses used on the subnet. If a sub-
net is set to MAC per Port, the subnet sends one ARP request. If a subnet is set to
MAC per IP, each host on the subnet sends an ARP request.

(DEFAULT = 0)

6-4 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-congestion_notification_ Values: 0 or 1. If true, the client or server uses bits from the Type of Service
enable (TOS) field and the TCP packet headerís Reserved field to support Explicit Con-
gestion Notification (ECN). ECN uses the bits as follows:

TOS bit 6 is the ECT (Explicit Congestion Transport) bit, which a recipient sets
to indicate that it supports ECN.

TOS bit 7 is the CE (Congestion Experienced) bit, which the recipient sets if its
average queue length exceeds a threshold.

TCP header Reserved field bit 5 the CWR (Congestion Window Reduced) bit.

TCP header Reserved field bit 6 is the ECN-Echo bit.

A SYN packet with both ECN-Echo and CWR bits indicates the sender supports
ECN in both directions (as sender and receiver). A combined SYN+ACK packet
sets only ECN to indicate ECN capability. If you enable ECN, the sender sets the
ECT bit to indicate that it supports ECN. If the sender receives a packet with the
CE bit set, it returns an ACK with the ECN-Echo bit set. If a sender receives a
packet with ECN-Echo set, it should reduce its window size. The first packet it
sends after reducing its window size has the CWR bit set. The sender will repeat-
edly reduce its window size until it receives a packet in return with the CWR bit
from the recipient.

(DEFAULT = 0)

-time_stamp_enable Values: 0 or 1. If true, the client or server inserts a timestamp into each packet.

(DEFAULT = 1)

-rx_bandwidth_limit_ Values: 0 or 1. Enables or disables rx_bandwidth_limit.


enable
(DEFAULT = 0)

-tx_bandwidth_limit_ Values: 0 or 1. Enables or disables tx_bandwidth_limit.


enable
(DEFAULT = 0)

-fin_timeout The amount of time a TCP implementation will keep a TCP connection open that
it has closed itself, i.e., sent a FIN for (it has no more data to send).

(DEFAULT = 60)

-keep_alive_interval The interval, in seconds, between repeated keep alive probes sent.

(DEFAULT = 7200)

-keep_alive_probes The number of keep alive probes that the program sends out before determining
that a link is down.

(DEFAULT = 9)

-keep_alive_time If a link has no activity on it for the time specified, in seconds, the program
begins sending keep alive probes to determine if the link is still up.

(DEFAULT = 75)

HLTAPI Commands, Release 2.80 Rev. B 6-5


FTP APIs
6
-receive_buffer_size The size of the receive buffer. This affects the TCP receive window size. If you
increase the size of the receive buffer, the program enlarges the receive window.
If you are experiencing high latency on your test network, you can increase the
size of the receive buffer to improve the throughput.

(DEFAULT = 4096)

-retransmit_retries The number of times the program attempts to re-transmit a packet for which it
has not received an acknowledgement.

(DEFAULT = 15)

-rx_bandwidth_limit The maximum amount of receive bandwidth on each port allowed to the clients
or servers. You can use this parameter to simulate the bandwidth available from
different types of Internet access technologies such as dial-up, ISDN, cable
modem, or T1. If you do not configure this parameter, the program uses all the
bandwidth available on the test ports.

Dependencies: -rx_bandwidth_limit_enable 1.

-rx_bandwidth_limit_unit The units used in rx_bandwidth_limit: kilobytes per second or megabytes per
second. Values: kb | mb.

Dependencies: -rx_bandwidth_limit_enable 1.

(DEFAULT = kb)

-syn_ack_retries The number of times the program re-transmits an un-acknowledged SYN-ACK


for a passive TCP connection.

(DEFAULT = 5)

-syn_retries The number of times IxLoad re-transmits an un-acknowledged SYN for an active
TCP connection.

(DEFAULT = 5)

-transmit_buffer_size The size of the transmit buffer. This affects the TCP transmit window size. If you
increase the size of the transmit buffer, IxLoad enlarges the transmit window. If
you are experiencing high latency on your test network, you can increase the size
of the transmit buffer to improve the throughput.

(DEFAULT = 4096)

-tx_bandwidth_limit The maximum amount of transmit bandwidth on each port allowed to the clients
or servers. You can use this parameter to simulate the bandwidth available from
different types of Internet access technologies such as dial-up, ISDN, cable
modem, or T1. If you do not configure this option, the program uses all the band-
width available on the test ports.

Dependencies: tx_bandwidth_limit_enable 1.

-tx_bandwidth_limit_unit The units used in tx_bandwidth_limit: kilobytes per second or megabytes per
second. Value: kb | mb.

(DEFAULT = kb)

Dependencies: tx_bandwidth_limit_enable 1.

6-6 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-ip_address_start The first IP address for the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 198.18.0.1)

-mac_address_start The first MAC address for the network range. This is not used if the value of
mac_mapping_mode is set to "macport".

Dependencies: mac_mapping_mode macip ; property network with mode add |


modify.

(DEFAULT = 00.C6.12.00.01.00)

-gateway The gateway associated with all IP addresses in the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 0.0.0.0)

-ip_count The number of unique IP addresses in the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 100)

-ip_increment_step 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
non-zero. 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 which use more than one
octet, for example 0.0.1.1, are illegal.

Dependencies: property network with mode add | modify.

(DEFAULT = 0.0.0.1)

-mac_increment_step 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 non-zero. 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 which will increment a different octet each time. Values which
use more than one byte, for example 00.00.00.00.01.01, are illegal. This is not
used if the value of mac_mapping_mode is set to "macport".

Dependencies: property network with mode add | modify.

(DEFAULT = 00.00.00.00.00.01)

-mss If mss_enable is true, this option specifies the TCP Maximum Segment Size in
the MSS (RX) field. Otherwise, clients or servers advertise their TCP Maximum
Segment Size as 1460 bytes.

Dependencies: mss_enable 1 ; property network with mode add | modify.

(DEFAULT = 1460)

HLTAPI Commands, Release 2.80 Rev. B 6-7


FTP APIs
6
-mss_enable If true the use of mss option is enabled. Value: 0 or 1.

Dependencies: property network with mode add | modify.

(DEFAULT = 0)

-network_mask The subnet mask associated with the IP range.

Dependencies: property network with mode add | modify.

(DEFAULT = 255.255.0.0)

-vlan_enable If true , VLAN IDs are inserted. Values: 0 or 1.

Dependencies: property network with mode add | modify.

(DEFAULT = 0)

-vlan_id The id of the vlan to be inserted. Values: 0-4095.

Dependencies: vlan_enable 1 ; property network with mode add | modify.

-dns_server Defines DNS servers to be used for lookups.

Dependencies: property dns with mode add | modify.

-dns_suffix Define suffixes to be appended to partial host names. Each is tried in order by the
DNS server(s).

Dependencies: property dns with mode add | modify.

-pool_ip_address_start The first IP address for the pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 194.18.0.1)

-pool_ip_count The count of the number of IP addresses to be generated.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 1)

-pool_mac_address_start The first MAC address for the pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 00.C2.12.00.01.00)

-pool_network The subnet mask associated with the IP pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 255.255.0.0)

-pool_vlan_enable If true, VLAN tags are inserted into the IP frame. Value: 0 or 1.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 0)

6-8 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-pool_vlan_id The VLAN ID to be inserted. Values: 0-4095.

Dependencies: pool_vlan_enable 1 ; property router_addr with

mode add | modify.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a FTP configuration, network,

EXAMPLES See files starting with ftp_ in the Samples subdirectory.

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {ftp_config1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 6-9


FTP APIs
6

NAME — ::ixia::emulation_ftp_traffic_config

DESCRIPTION This command is used to construct the model for client or server traffic to be
applied, or respectively, handled during the test. This traffic is composed by
commands created by client FTP agents which are handled by server agents.

Multiple agents can be added to form a FTP traffic.

SYNOPSIS ::ixia::emulation_ftp_traffic_config
-mode CHOICES add remove modify
enable disable
[-property CHOICES traffic agent]
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-esm_enable CHOICES 0 1 DEFAULT 0]
[-esm NUMERIC DEFAULT 1460]
[-ftp_mode CHOICES active passive
DEFAULT active]
[-ftp_port RANGE 1-65535]
[-arguments ANY]
[-command CHOICES cd get login put quit
retrieve store think loop_begin loop_end DEFAULT get]
[-destination ANY]
[-user_name ANY]
[-password ANY]
[-agent_handler ANY]

ARGUMENTS

-handle Handle of a FTP configuration when -property traffic and -mode add. Or handle
of a traffic property , used when -property is agent and -mode is add. Also the
handle of a traffic or agent property when -property is respectively traffic, agent
and -mode is modify | remove | enable | disable.

-target Specifies where this traffic will be added: on the client side or on the server side.
Values: client or server. Dependencies: -property traffic with -mode add.

(DEFAULT = client)

-property Defines types of properties of the FTP traffic configuration. Valid choices are:

Value Usage

traffic handles operations required for defining the


FTP traffic of clients or servers.
agent handles operations required for defining the
emulated FTP clients or FTP servers.

-mode Defines types of actions to be taken on the -property object. Values: add | remove
| modify | enable | disable.

-esm_enable If true, the use of the esm option is enabled. Dependencies: property agent with
mode add | modify

(DEFAULT = 0)

6-10 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-esm If esm_enable is true, this option specifies the TCP Maximum Segment Size in
the MSS (RX) field. Otherwise, the TCP Maximum Segment Size is 1460 bytes.

Dependencies: esm_enable 1 ; property agent with mode add | modify

(DEFAULT = 1460)

-ftp_mode The mode that the client will use to access the server: To establish an FTP con-
nection, the client connects from a random unprivileged port (port n, where n is
greater than 1024) to the FTP server's command port, normally port 21. What
happens next depends on whether the client is in active or passive mode.

Dependencies: target client ; property agent with mode add | modify

Valid choices are:

Value Usage

active (default) The client sends the PORT com-


mand and waits for an OK response from the
server.
passive In Passive mode, the client initiates both con-
nections to the server.

-ftp_port The port number that the server will respond on.

Dependencies: target server ; property agent with mode add | modify

-arguments This option contains an argument which is used by the various commands
defined in the command option. The type of the value depends on the command:

cd = the path to switch to

get = the path to where the file is stored on the server

put = the path/size of the file to be sent to the server

retrieve = the path to where the file is stored

store = the path/size of the file to be sent to the server

think = the number of milliseconds to pause before executing the next action

Dependencies: property action with mode add | modify

(DEFAULT = 0)

-command Selects the FTP command to be used:

cd = Changes the current working directory to the value in the arguments option.

get = Retrieves the file specified in the arguments option. {Get} is not a standard
FTP command. It allows you to retrieve a file from a <vendor> server without
having to log in.

login = Logs in to the FTP server using the name and password in the userName
and password options

HLTAPI Commands, Release 2.80 Rev. B 6-11


FTP APIs
6
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 a <
vendor> 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.

loop_begin = 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.

loop_end = Ends the list of commands that will be executed by the preceding
{Loop Begin} command

Dependencies: Dependencies: property action with mode add | modify

(DEFAULT get)

-destination The IP address of a real FTP server. If the FTP server listens on a port other than
the standard (21), enter a colon after the IP address and then enter the port num-
ber. When using an FTP Server Agent this option will not be used, you must pro-
vide a FTP server agent handler to the agent_handler option instead. The port
number must agree with that defined by the Server Agent. For example:
192.168.0.1:21

Dependencies: ssl_enable 1 ; Dependencies: property action with mode add |


modify

-user_name The user name that the client will use to log in to the FTP server. The emulated
servers only accept a user name of root.

Dependencies: property action with mode add | modify

-password The password for the user name.

Dependencies: Dependencies: property action with mode add | modify

-agent_handler The handler of a FTP server agent if destination is a emulated FTP server.

Dependencies: property action with mode add | modify

-ip_preference If a mixture of IPv4 and IPv6 addresses are available on the client network, this
parameter configures which address types the agent uses. Dependencies: target
client ; property agent with mode add | modify

(DEFAULT = 0)

6-12 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a FTP traffic configuration, list
of traffic, agent.

EXAMPLES See files starting with ftp_ in the Samples subdirectory.


Also see the FTP example in Appendix A, “Examples."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {traffic1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 6-13


FTP APIs
6

NAME — ::ixia::emulation_ftp_control

DESCRIPTION This command defines a mapping between the FTP networks, the DUT and the
statistics used. It can start a test previously defined with the ::ixia::emulation_
ftp_control_config command.

SYNOPSIS ::ixia::emulation_ftp_control
-mode CHOICES add modify start
[-handle ANY]
[-map_handle ANY]
[-force_ownership_enable CHOICES 0 1 DEFAULT 0]
[-release_config_afterrun_enable CHOICES 0 1 DEFAULT 0]
[-reset_ports_enable CHOICES 0 1 DEFAULT 0]
[-results_dir_enable CHOICES 0 1 DEFAULT 0]
[-results_dir ANY]
[-stats_required CHOICES 0 1 DEFAULT 1]

ARGUMENTS

-mode Defines types of actions to be taken. Valid choices are:

Value Usage

add adds a map between a FTP config and a traf-


fic config to this session.
modify modifies this session
start starts this session

-handle Handle of a control.

Dependencies: mode modify | start

-map_handle List of handles of the maps between a client http config and a client traffic config
and between a server http config and a server traffic config created with
::ixia::emulation_http_control_config.

Dependencies: mode add | modify

-force_ownership_enable 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.

Dependencies: mode add | modify

(DEFAULT = 0)

-release_config_afterrun_ If true, purges the test configuration from the ports after a test completes, releases
enable ownership of them, and the ports will no longer respond to ARPs and PINGs
from the DUT.

Dependencies: mode add | modify

(DEFAULT = 0)

6-14 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-reset_ports_enable If true, the program 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-
ning it to see the effect of your changes, it may be safe to save time by not reboo-
ting 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 struc-
tures remaining from a previous test or other application are properly removed.

Dependencies: mode add | modify

(DEFAULT = 0)

-results_dir_enable This enable storing the execution results. Values: 0 or 1.

Dependencies: -mode add.

(DEFAULT = 0)

-results_dir Specifies the location of where the execution results will be kept.

Dependencies: -mode add.

-stats_required If true, statistics will be collected for the test.

Dependencies: mode add | modify

(DEFAULT = 1)

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is $::FAILURE, contains more
information
handles the handles of a FTP traffic configuration,list
of traffic, agent.

EXAMPLES See files starting with ftp_ in the Samples subdirectory.


Also see the FTP section of Appendix A, “Examples."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {traffic1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 6-15


FTP APIs
6

NAME — ::ixia::emulation_ftp_control_config

DESCRIPTION This command is used to construct the mapping between the agents that will gen-
erate the traffic and the set of networks which will carry the traffic. A number of
additional options control the manner in which the traffic is applied to the net-
works.

To the client side mappings , the command can specify the options used to allow
the test to achieve a particular objective, for example, connections per second, or
the options that determine the timeline for application of traffic or the options
that control the manner in which client traffic is sent to servers.

SYNOPSIS ::ixia::emulation_ftp_control_config
-mode CHOICES add remove modify
enable disable
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-property CHOICES map dut]
[-direct_server_return_enable CHOICES 0 1 DEFAULT 0]
[-ip_address IPV4 DEFAULT 1.1.1.1]
[-server_ftp_handle ANY]
[-type CHOICES external slb
firewall DEFAULT slb]
[-client_iterations NUMERIC DEFAULT 1]
[-client_ftp_handle ANY]
[-client_traffic_handle ANY]
[-objective_type CHOICES na users
connections crate trate tputmb tputkb sessions
DEFAULT na]
[-objective_value NUMERIC]
[-client_offline_time NUMERIC DEFAULT 0]
[-port_map_policy CHOICES pairs mesh
round_robin DEFAULT pairs]
[-ramp_down_time NUMERIC DEFAULT 20]
[-ramp_up_type CHOICES users_per_second
max_pending_users DEFAULT users_per_second]
[-ramp_up_value NUMERIC]
[-client_standby_time RANGE 0-3600000
DEFAULT 0]
[-client_sustain_time RANGE 0-3600000 DEFAULT 0]
[-client_total_time NUMERIC DEFAULT 60]
[-server_traffic_handle ANY]
[-match_client_totaltime CHOICES 0 1 DEFAULT 1]
[-server_iterations NUMERIC DEFAULT 1]
[-server_offline_time NUMERIC DEFAULT 0]
[-server_standby_time RANGE 0-3600000 DEFAULT 0]
[-server_sustain_time NUMERIC DEFAULT 20]
[-server_total_time NUMERIC DEFAULT 60]

6-16 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

ARGUMENTS

-handle Handle of a map or dut property.

-target Specifies the type of the map. Value: client | server.

(DEFAULT = client)

Dependencies: property map with mode add.

-property Defines types of the FTP control configuration: Map handles operations required
for mapping a FTP configuration with a traffic configuration. Dut handles opera-
tions required for defining a Device Under Test parameters. Value: map | dut.

-mode Defines types of actions to be taken on the -property object. Enable and disable
are not valid values for -property dut. Value: add | remove | modify | enable | dis-
able.

-direct_server_return_ If type is "slb" and this option is true, Direct Server Return is enabled. In a basic
enable SLB topology, incoming requests from clients and outgoing responses from serv-
ers both go through the SLB. 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. DSR reduces the amount of traffic going through the SLB, allowing it
to devote more resources to managing the incoming requests and monitoring the
status of the servers in its pool. Value: 0 | 1.

(DEFAULT = 0)

Dependencies: property dut with mode add | modify ; type slb.

-ip_address The IPv4 address, virtual IPv4 address or host name used to access the DUT.

(DEFAULT = 1.1.1.1)

Dependencies: property dut with mode add | modify.

-server_ftp_handle If type is "slb" and the SLB is balancing emulated servers, set this option to the
handle of the server FTP network that is being balanced.

-type The type of DUT in use. Dependencies: property dut with mode add | modify.
Valid choices are:

Value Usage

external The DUT is a protocol server.


slb (default) The DUT is a server load balancer.
firewall The DUT is a firewall.

-client_iterations The number of times that the traffic-network pair perform their functions (estab-
lishing TCP connections, retrieving files, etc.) in the test.

Dependencies: property map with mode add | modify.

(DEFAULT = 1)

-client_ftp_handle This handle provides the networks from which the traffic will be generated.

Dependencies: property map with mode add | modify.

HLTAPI Commands, Release 2.80 Rev. B 6-17


FTP APIs
6
-client_traffic_handle This handle provides the model of the client traffic to be generated.

Dependencies: property map with mode add | modify.

-objective_type The objective to be achieve for this traffic to network mapping. Dependencies:
property map with mode add | modify. Valid choices are:

Value Usage

na (default) If this option is not used there will be


no objective set.
users Number of FTP users simulated during the
test. Specify the desired number of users in
the objective_value option.
sessions The objective is to sustain some number of
sessions simultaneously. Specify the desired
number of connections in the objective_value
option.
connections The Maximum number of simultaneous FTP
connections established during the test.
Specify the desired number of connections in
the objective_value option. crate - Rate at
which the client established FTP connections.
Specify the desired number of connections
per second in the objective_value option.
trate Rate at which the client completed transac-
tions with the server over FTP connections.
One transaction consists of a LOGIN, PASS-
WORD, SEND, or EXIT command and the
response to it. Specify the desired number of
transactions per second in the objective_
value option.
tputmb The objective is to achieve a certain level of
throughput, measured in Megabytes per sec-
ond (MBps). Specify the amount of through-
put in the objective_value option.
tputkb The objective is to achieve a certain level of
throughput, measured in Kilobytes per sec-
ond (KBps). Specify the amount of through-
put in the objective_value option.

-objective_value A value related to the choice made in the objective_type option.

Dependencies: property map with mode add | modify.

-client_offline_time The amount of time agents are idle between iterations.

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-port_map_policy This option controls the sequence in which the client ports connect to

the server ports. For large numbers of ports, the Port Pair sequence scales perfor-
mance better than the Port Mesh sequence. The operation of Port Pairs can be
described by three scenarios: 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. 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

6-18 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

basis until all client ports are paired with server ports. The remaining server ports
will not be used. 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.

Dependencies: property map with mode add | modify. (DEFAULT = pairs)

Valid choices are:

Value Usage

pairs Client agents connect to server agents on a


one-to-one basis.
mesh Agents on every client port connect to every
server port.

-ramp_down_time The amount of time used for closing any TCP connections that are still open
after all transactions are complete. When the ramp down time expires, the pro-
gram terminates any users. If the program terminates any client users that are
still running after the ramp down time expires, statistics for servers and clients
that should match may not. This is an indication that the ramp down time may
be too short.

Dependencies: property map with mode add | modify.

(DEFAULT = 20)

-ramp_up_type The method used to apply the ramp_up_value.

Dependencies: property map with mode add | modify.

(DEFAULT = users_per_second)

Valid choices are:

Value Usage

users_per_second applies the ramp_up_value to bring up the


specified number of users per second. For
example, if you select users_per_second and
you specify 10 for the ramp_up_value, the
program brings up 10 new users every sec-
ond until all the users are and running.
max_pending_users N/A

-ramp_up_value A value dependent on the setting of ramp_up_type.

Dependencies: property map with mode add | modify.

HLTAPI Commands, Release 2.80 Rev. B 6-19


FTP APIs
6
-client_standby_time 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 paris 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 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-client_sustain_time 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 (FTP), or sending or receiving files (FTP). The valid
range is from 0 to 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-client_total_time The total time required to run the test, including Ramp Up, Ramp Down, Sustain,
and Offline times for all iterations.

(DEFAULT = 60)

Dependencies: property map with mode add | modify.

-server_traffic_handle This handle provides the model of the server traffic to be generated.

Dependencies: property map with mode add | modify.

-match_client_totaltime 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 dura-
tion 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 test-
ing, the test results for that client may be misleading. If false, the program calcu-
lates agent run times independently for each server activity. server_offline_time,
server_standby_time, server_sustain_time, server_total_time options will be dis-
abled if -match_client_totaltime option is enabled. Value: 0 | 1.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-server_iterations The number of times that the traffic-network pair perform their functions (estab-
lishing TCP connections, retrieving files, etc.) in the test.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-server_offline_time Amount of time agents are idle between iterations.

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

6-20 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-server_standby_time 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 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-server_sustain_time 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 (FTP).

(DEFAULT = 20)

Dependencies: property map with mode add | modify.

-server_total_time The total time required to run the test, including Standby, Sustain, and Offline
times for all iterations.

(DEFAULT = 60)

Dependencies: property map with mode add | modify.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a FTP traffic configuration,

EXAMPLES See files starting with ftp_ in the Samples subdirectory.

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {map1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 6-21


FTP APIs
6

NAME — ::ixia::emulation_ftp_stats

DESCRIPTION This command manages the statistics gathered during the test run. It can add mul-
tiple types of statistics, extract data, clear statistics from a previous run, or can
add specific filters to the way the statistics are gathered.

SYNOPSIS ::ixia::emulation_ftp_stats
-mode CHOICES add clear get
[-handle ANY]
[-aggregation_type CHOICES sum max min average rate
maxrate minrate averagerate DEFAULT sum]
[-stat_name ALPHANUM]
[-stat_type CHOICES client server
DEFAULT client]
[-filter_type CHOICES port card chassis traffic
map]
[-filter_value ANY]

ARGUMENTS

-handle Handle of a statistic. Dependencies: -mode get.

-mode Defines types of actions to be taken. Valid choices are:

Value Usage
add adds a statistic.
clear clear all statistics previously added.
get get statistic data.

-aggregation_type Specifies how statistics for multiple ports are combined. Valid choices are:

Value Usage
sum (default) add all of the statistics together.
max determine the maximum value.
min determine the minimum value.
average determine the average value.
rate determine the rate of change of the sum of all
the statistics.
maxrate determine the maximum rate.
minrate determine the minimum rate.
averagerate determine the average rate.
Dependencies: -mode add. N/A

-stat_name A particular statistic name as listed in the statistics list.

Dependencies: -mode add.

The list of statistics can be found below. Valid choices are:

Value Usage

<< CLIENT >> - N/A

6-22 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

Value Usage

ftp_simulated_users Number of users to be simulated during the


test.
ftp_concurrent_sessions Maximum number of concurrent sessions
maintained during the test.
ftp_connections Number of connections between clients and
servers, including both control and data con-
nections.
ftp_transactions Number of transactions completed by the cli-
ents.
ftp_bytes Total number of TCP payload bytes received
and transmitted.
ftp_control_conn_requested Number of requests to establish control con-
nections sent by the clients.
ftp_control_conn_established Number of control connections established by
the clients.
ftp_control_conn_failed Number of control connections that could not
be established.
ftp_control_conn_failed_rejected Number of control connections that could not
be established because the server rejected
the connection request.
ftp_control_conn_failed_other Number of control connections that could not
be established for reasons other than rejec-
tion by the server.
ftp_control_conn_active Number of control connections actively trans-
ferring FTP commands.
ftp_data_conn_established Number of data connections established.
ftp_data_conn_established_active_ Number of data connections established in
mode Active mode.
ftp_data_conn_requested_passive_ Number of data connections requested in
mode Passive mode.
ftp_data_conn_established_passive_ Number of data connections established in
mode passive mode.
ftp_data_conn_failed_passive_mode Number of data connections that failed.
ftp_file_uploads_requested Number of requests to upload files sent by the
clients.
ftp_file_uploads_successful Number of uploads that completed success-
fully.
ftp_file_uploads_failed Number of upload attempts that failed.
ftp_file_downloads requested Number of requests to download files sent by
the clients.
ftp_file_downloads_successful Number of downloads that completed suc-
cessfully.
ftp_file_downloads_failed Number of download attempts that failed.
ftp_data_bytes_sent Bytes transmitted on the data connections by
the clients.
ftp_data_bytes_received Bytes received on the data connections by
the clients.
ftp_control_bytes_sent Client sent control bytes to the server.
ftp_control_bytes_received Client received control bytes from the server.

HLTAPI Commands, Release 2.80 Rev. B 6-23


FTP APIs
6

Value Usage

ftp_control_connection_latency Average amount of latency on control con-


nections, in milliseconds.
ftp_data_connection_latency_passive_ Average amount of latency (in milliseconds)
mode on data connections that were established in
Passive mode.
<< SERVER >> - N/A
ftp_control_conn_received Number of requests to establish control con-
nections received by the servers.
ftp_control_conn_established Number of control connections established by
the servers.
ftp_control_conn_rejected Number of requests to establish control con-
nections rejected by the servers.
ftp_control_conn_active Number of control connections actively trans-
ferring FTP commands.
ftp_data_conn_established Number of data connections established by
the server (active and passive mode).
ftp_data_conn_requested_active Number of requests to establish data connec-
tions in active mode received by the servers.
ftp_data_conn_established_active Number of data connections established in
active mode.
ftp_data_conn_failed_active Number of data connections opened in active
mode that failed.
ftp_data_conn_established_passive Number of data connections established in
passive mode.
ftp_data_conn_active Number of data connections actively upload-
ing or downloading data.
ftp_file_uploads_requested Number of requests to upload data received
by the servers.
ftp_file_uploads_successful Number of uploads that completed success-
fully.
ftp_file_uploads_failed Number of uploads that failed.
ftp_file_downloads_requested Number of requests to download files
received by the servers.
ftp_file_downloads_successful Number of downloads that completed suc-
cessfully.
ftp_file_downloads_failed Number of downloads that failed.
ftp_data_bytes_sent Number of bytes sent by the servers on data
connections.
ftp_data_bytes_received Number of bytes received by the servers on
data connections.
ftp_control_bytes_sent Number of bytes sent by the servers on con-
trol connections.
ftp_control_bytes_received Number of bytes received by the servers on
control connections.
ftp_data_conn_latency Average amount of latency (in milliseconds)
on data connections opened in active mode.

6-24 HLTAPI Commands, Release 2.80 Rev. B


FTP APIs

-stat_type The agent type that generates the statistics.

Values: client or server. Dependencies: -mode add.

(DEFAULT = client)

-filter_type The type of the filter available. Dependencies: -mode add. Valid choices are:

Value Usage

port (default) a filter operation may be performed


across the port described in the filter_value
field.
card a filter operation may be performed across
the card described in the filter_value field.
chassis a filter operation may be performed across
the chassis described in the filter_value field.
traffic a filter operation may be performed across on
the traffic described in the filter_value field.
map a filter operation may be performed across
the mapping described in the filter_value
field.

-filter_value A value corresponding to the value of the type option. Dependencies: -mode add.
Valid choices are:

Value Usage

port a port specification in the form


chassis/card/port. N/A
card a card specification in the form chassis/card.
chassis a chassis specification in the form chassis
traffic a traffic handle created by emulation_ftp_
traffic_config.
map a map handle created by emulation_ftp_
control_config.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a FTP stats configuration.
<stat_group_handle>.<client|server>.< The value of the specified statistic name.
stat_name>.<timestamp>

EXAMPLES See files starting with ftp_ in the Samples subdirectory.


Also see the FTP example in Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {statistic1}}


or
{status $::SUCCESS}
{statistic1.client.ftp_connections.110290069000 5}

HLTAPI Commands, Release 2.80 Rev. B 6-25


FTP APIs
6
NOTES Coded versus functional specification.

SEE ALSO

6-26 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs
7
Chapter 7:

This chapter covers the following topics:

• ::ixia::emulation_http_config on page 7-2.

• ::ixia::emulation_http_traffic_config on page 7-10.

• ::ixia::emulation_http_traffic_type_config on page 7-18.

• ::ixia::emulation_http_control on page 7-26.

• ::ixia::emulation_http_stats on page 7-28.

• ::ixia::emulation_http_control_config on page 7-35.

HLTAPI Commands, Release 2.80 Rev. B 7-1


HTTP APIs
7

NAME — ::ixia::emulation_http_config

DESCRIPTION This command is used to construct the environment required for the HTTP proto-
col to be used.

It sets for the client or server side of the emulation the configuration of TCP
parameters used for a HTTP transaction, the presence or absence of an emulated
router, the range of ports where the process can open sockets, the buffers sizes.

To this environment it can add network ranges to define the HTTP client or
server networks, or it can add DNS servers, or a pool of IP addresses to be used
for an emulated router between the network range and the testing port. Multiple
network ranges, DNS servers and suffixes or IP address pools can be added to a
client or server HTTP configuration.

SYNOPSIS ::ixia::emulation_http_config
-mode CHOICES add remove
modify enabledisable
[-property CHOICES http network
router_addr dns]
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-port_handle REGEXP ^[0-9]+/[0-9]+/
[0-9]+$]
[-mac_mapping_mode CHOICES macip macport
DEFAULT macip]
[-source_port_from RANGE 1024-65535
DEFAULT 1024]
[-source_port_to RANGE 1024-65535
DEFAULT 65535]
[-emulated_router_gateway IP DEFAULT 0.0.0.0]
[-emulated_router_subnet MASK
DEFAULT 255.255.255.0]
[-dns_cache_timeout NUMERIC DEFAULT 30000]
[-grat_arp_enable CHOICES 0 1 DEFAULT 0]
[-congestion_notification_enable CHOICES 0 1 DEFAULT 0]
[-time_stamp_enable CHOICES 0 1 DEFAULT 1]
[-rx_bandwidth_limit_enable CHOICES 0 1 DEFAULT 0]
[-tx_bandwidth_limit_enable CHOICES 0 1 DEFAULT 0]
[-fin_timeout NUMERIC DEFAULT 60]
[-keep_alive_interval NUMERIC DEFAULT 7200]
[-keep_alive_probes NUMERIC DEFAULT 9]
[-keep_alive_time NUMERIC DEFAULT 75]
[-receive_buffer_size NUMERIC DEFAULT 4096]
[-retransmit_retries NUMERIC DEFAULT 15]
[-rx_bandwidth_limit NUMERIC]
[-rx_bandwidth_limit_unit CHOICES kb mb
DEFAULT kb]
[-syn_ack_retries NUMERIC DEFAULT 5]
[-syn_retries NUMERIC DEFAULT 5]
[-transmit_buffer_size NUMERIC DEFAULT 4096]
[-tx_bandwidth_limit NUMERIC]
[-tx_bandwidth_limit_unit CHOICES kb mb DEFAULT kb]
[-ip_address_start IP DEFAULT 198.18.0.1]

7-2 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

[-mac_address_start MAC
DEFAULT 00.C6.12.00.01.00]
[-gateway IP DEFAULT 0.0.0.0]
[-ip_count NUMERIC DEFAULT 100]
[-ip_increment_step IP DEFAULT 0.0.0.1]
[-mac_increment_step MAC
DEFAULT 00.00.00.00.00.01]
[-mss NUMERIC DEFAULT 1460]
[-mss_enable CHOICES 0 1 DEFAULT 0]
[-network_mask MASK DEFAULT 255.255.0.0]
[-vlan_enable CHOICES 0 1 DEFAULT 0]
[-vlan_id NUMERIC]
[-dns_server IP]
[-dns_suffix REGEXP ^\.[A-z]+\.[A-
z]+$]
[-pool_ip_address_start IP DEFAULT 194.18.0.1]
[-pool_ip_count NUMERIC DEFAULT 1]
[-pool_mac_address_start MAC DEFAULT
00.C2.12.00.01.00]
[-pool_vlan_enable CHOICES 0 1 DEFAULT 0]
[-pool_vlan_id NUMERIC

ARGUMENTS

-handle Handle of a HTTP property , used when -property is network or router_addr or


dns and -mode is add. Also the handle of a HTTP or network or router_addr or
dns property when "-property" is respectively http,network, router_addr, dns and
"-mode" is modify or remove, enable, disable.

Dependencies:

"-property" network|router_addr|dns and "-mode" add

"-property" http and "-mode" modify

-target Specifies where this network will be added: on the client side or on the server
side. Values: client, server.

Dependencies: property http with mode add.

(DEFAULT = client)

-property Defines types of properties of the HTTP configuration. Mandatory for "mode"
add. Valid choices are:

Value Usage

http handles operations required for defining the


general parameters required for HTTP proto-
col.
network handles the operations required for defining
the emulated client or server networks.
router_addr handles the operations required for defining
the pool of IP addresses required for the
emulated router between the client networks
and the physical port.

HLTAPI Commands, Release 2.80 Rev. B 7-3


HTTP APIs
7

Value Usage

dns handles the operations required for defining


the Domain Name Server protocol parame-
ters needed for the HTTP protocol.

-mode Defines types of actions to be taken on the "-property" object. Values: add,
remove, modify, enable, disable.

-port_handle The ports on the chassis this protocol will be created.

Dependencies: "-property" http with "-mode" add or modify.

-mac_mapping_mode Indicates whether one MAC address will be associated with each IP address or
with each port. The use of the latter option indicates that an emulated router is to
be used. Values are: macip, macport.

Dependencies: "-property" http with "-mode" add or modify.

(DEFAULT = macip)

-source_port_from 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 source_port_to.
Valid values are from 1024 to 65535.

(DEFAULT = 1024)

-source_port_to Defines the end of the range of ephemeral port numbers used to establish connec-
tions to the server. Valid values are from 1024 to 65535.

(DEFAULT = 65535)

-emulated_router_gateway If "-mac_mapping_mode" is set to macport, 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)

-emulated_router_subnet If "-mac_mapping_mode" is set to macport, 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)

-dns_cache_timeout The length of time, in milliseconds, the program should continue to refer to the
previously resolved host name stored in its cache before discarding the entry and
accessing the DNS server to re-resolve the host name.

(DEFAULT = 30000)

-grat_arp_enable Values: 0 or 1.

If true, before beginning a test, the program will ARPs the gateways so that the
DUT can learn the MAC addresses used on the subnet. If a subnet is set to MAC
per Port, the subnet sends one ARP request. If a subnet is set to MAC per IP, each
host on the subnet sends an ARP request.

(DEFAULT = 0)

7-4 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-congestion_notification_ Values: 0 or 1.
enable
If true, the client or server uses bits from the Type of Service (TOS) field and the
TCP packet header's Reserved field to support Explicit Congestion Notification
(ECN). ECN uses the bits as follows:

TOS bit 6 is the ECT (Explicit Congestion Transport) bit, which a recipient sets
to indicate that it supports ECN.

TOS bit 7 is the CE (Congestion Experienced) bit, which the recipient sets if its
average queue length exceeds a threshold.

TCP header Reserved field bit 5 the CWR (Congestion Window Reduced) bit.

TCP header Reserved field bit 6 is the ECN-Echo bit.

A SYN packet with both ECN-Echo and CWR bits indicates the sender supports
ECN in both directions (as sender and receiver). A combined SYN+ACK packet
sets only ECN to indicate ECN capability. If you enable ECN, the sender sets the
ECT bit to indicate that it supports ECN. If the sender receives a packet with the
CE bit set, it returns an ACK with the ECN-Echo bit set. If a sender receives a
packet with ECN-Echo set, it should reduce its window size. The first packet it
sends after reducing its window size has the CWR bit set. The sender will repeat-
edly reduce its window size until it receives a packet in return with the CWR bit
from the recipient.

(DEFAULT = 0)

-time_stamp_enable Values: 0 or 1. If true, the client or server inserts a timestamp into each packet.

(DEFAULT = 1)

-rx_bandwidth_limit_ Values: 0 or 1. Enables or disables rx_bandwidth_limit.


enable
(DEFAULT = 0)

-tx_bandwidth_limit_ Values: 0 or 1. Enables or disables tx_bandwidth_limit.


enable
(DEFAULT = 0)

-fin_timeout The amount of time a TCP implementation will keep a TCP connection open that
it has closed itself, i.e., sent a FIN for (it has no more data to send).

(DEFAULT = 60)

-keep_alive_interval The interval, in seconds, between repeated keep alive probes sent.

(DEFAULT = 7200)

-keep_alive_probes The number of keep alive probes that the program sends out before determining
that a link is down.

(DEFAULT = 9)

-keep_alive_time If a link has no activity on it for the time specified, in seconds, the program
begins sending keep alive probes to determine if the link is still up.

(DEFAULT = 75)

HLTAPI Commands, Release 2.80 Rev. B 7-5


HTTP APIs
7
-receive_buffer_size The size of the receive buffer. This affects the TCP receive window size. If you
increase the size of the receive buffer, the program enlarges the receive window.
If you are experiencing high latency on your test network, you can increase the
size of the receive buffer to improve the throughput.

(DEFAULT = 4096)

-retransmit_retries The number of times the program attempts to re-transmit a packet for which it
has not received an acknowledgement.

(DEFAULT = 15)

-rx_bandwidth_limit The maximum amount of receive bandwidth on each port allowed to the clients
or servers. You can use this parameter to simulate the bandwidth available from
different types of Internet access technologies such as dial-up, ISDN, cable
modem, or T1. If you do not configure this parameter, the program uses all the
bandwidth available on the test ports.

Dependencies: -rx_bandwidth_limit_enable 1.

-rx_bandwidth_limit_unit The units used in rx_bandwidth_limit: kilobytes per second or megabytes per
second. Values: kb | mb.

Dependencies: -rx_bandwidth_limit_enable 1.

(DEFAULT = kb)

-syn_ack_retries The number of times the program re-transmits an un-acknowledged SYN-ACK


for a passive TCP connection.

(DEFAULT = 5)

-syn_retries The number of times IxLoad re-transmits an un-acknowledged SYN for an active
TCP connection.

(DEFAULT = 5)

-transmit_buffer_size The size of the transmit buffer. This affects the TCP transmit window size. If you
increase the size of the transmit buffer, IxLoad enlarges the transmit window. If
you are experiencing high latency on your test network, you can increase the size
of the transmit buffer to improve the throughput.

(DEFAULT = 4096)

-tx_bandwidth_limit The maximum amount of transmit bandwidth on each port allowed to the clients
or servers. You can use this parameter to simulate the bandwidth available from
different types of Internet access technologies such as dial-up, ISDN, cable
modem, or T1. If you do not configure this option, the program uses all the band-
width available on the test ports.

Dependencies: tx_bandwidth_limit_enable 1.

-tx_bandwidth_limit_unit The units used in tx_bandwidth_limit: kilobytes per second or megabytes per
second. Value: kb | mb.

(DEFAULT = kb)

Dependencies: tx_bandwidth_limit_enable 1.

7-6 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-ip_address_start The first IP address for the network range. Dependencies: property network with
mode add | modify.

(DEFAULT = 198.18.0.1)

-mac_address_start The first MAC address for the network range. This is not used if the value of
mac_mapping_mode is set to "macport".

Dependencies: mac_mapping_mode macip ; property network with mode add |


modify.

(DEFAULT = 00.C6.12.00.01.00)

-gateway The gateway associated with all IP addresses in the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 0.0.0.0)

-ip_count The number of unique IP addresses in the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 100)

-ip_increment_step 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
non-zero. 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 which use more than one
octet, for example 0.0.1.1, are illegal.

Dependencies: property network with mode add | modify.

(DEFAULT = 0.0.0.1)

-mac_increment_step 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 non-zero. 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
0C.00.00.00.00.00 are valid values which will increment a different octet each
time. Values which use more than one byte, for example 00.00.00.00.01.01, are
illegal. This is not used if the value of mac_mapping_mode is set to "macport".

Dependencies: property network with mode add | modify.

(DEFAULT = 00.00.00.00.00.01)

-mss If mss_enable is true, this option specifies the TCP Maximum Segment Size in
the MSS (RX) field. Otherwise, clients or servers advertise their TCP Maximum
Segment Size as 1460 bytes.

Dependencies: mss_enable 1 ; property network with mode add | modify.

(DEFAULT = 1460)

-mss_enable If true the use of mss option is enabled. Value: 0 or 1.

Dependencies: property network with mode add | modify.

(DEFAULT = 0)

HLTAPI Commands, Release 2.80 Rev. B 7-7


HTTP APIs
7
-network_mask The subnet mask associated with the IP range.

Dependencies: property network with mode add | modify.

(DEFAULT = 255.255.0.0)

-vlan_enable If true , VLAN IDs are inserted. Values: 0 or 1.

Dependencies: property network with mode add | modify.

(DEFAULT = 0)

-vlan_id The ID of the vlan to be inserted. Values: 0-4095.

Dependencies: vlan_enable 1 ; property network with mode add | modify.

-dns_server Defines DNS servers to be used for lookups.

Dependencies: property dns with mode add | modify.

-dns_suffix Define suffixes to be appended to partial host names. Each is tried in order by the
DNS server(s).

Dependencies: property dns with mode add | modify.

-pool_ip_address_start The first IP address for the pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 194.18.0.1)

-pool_ip_count The count of the number of IP addresses to be generated.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 1)

-pool_mac_address_start The first MAC address for the pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 00.C2.12.00.01.00)

-pool_network The subnet mask associated with the IP pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 255.255.0.0)

-pool_vlan_enable If true, VLAN tags are inserted into the IP frame. Value: 0 or 1.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 0)

-pool_vlan_id The VLAN ID to be inserted. Values: 0-4095.

Dependencies: pool_vlan_enable 1 ; property router_addr with mode add | mod-


ify.

7-8 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a HTTP configuration, network,
router, pool, dns server

EXAMPLES See files starting with http_ in the Samples subdirectory.


Also see the HTTP section of Appendix A, "Example APIs,"
for a specific example.

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {http_config1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 7-9


HTTP APIs
7

NAME — ::ixia::emulation_http_traffic_config

DESCRIPTION The used to construct the model for client or server traffic to be applied, or
respectively, handled during the test. This traffic is composed by actions created
by client HTTP agents which are handled by server agents. Client agents can
emulate a specific browser, a specific HTTP protocol version, with or without
SSL support. Server agents emulate a HTTP WEB server. Multiple agents can be
added to form a HTTP traffic.

SYNOPSIS ::ixia::emulation_http_traffic_config
-mode CHOICES add remove modify
enable disable
[-property CHOICES traffic agent]
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-browser_emulation CHOICES custom ie5 ie6 mozilla
firefox DEFAULT ie6]
[-cookie_jar_size RANGE 1-300 DEFAULT 10]
[-cookie_reject_probability RANGE 0.0-1.0 DEFAULT 0.0]
[-cookie_support_enable CHOICES 0 1 DEFAULT 0]
[-esm_enable CHOICES 0 1 DEFAULT 0]
[-esm NUMERIC DEFAULT 1460]
[-http_proxy_enable CHOICES 0 1 DEFAULT 0]
[-https_proxy_enable CHOICES 0 1 DEFAULT 0]
[-follow_http_redirects CHOICES 0 1 DEFAULT 0]
[-http_proxy ANY]
[-https_proxy ANY]
[-http_version CHOICES 1.0 1.1 DEFAULT 1.0]
[-keep_alive CHOICES 0 1 DEFAULT 0]
[-max_persistent_requests NUMERIC DEFAULT 1]
[-max_sessions NUMERIC DEFAULT 3]
[-ssl_enable CHOICES 0 1 DEFAULT 0]
[-sequential_session_reuse NUMERIC DEFAULT 0]
[-ssl_version CHOICES ssl2 ssl3 tls1
DEFAULT tls1]
[-certificate ANY]
[-certificate_file ANY]
[-private_key ANY]
[-private_key_file ANY]
[-private_key_password ANY]
[-client_ciphers ANY]
[-accept_ssl_connections CHOICES 0 1 DEFAULT 0]
[-http_port RANGE 1-65535 DEFAULT 80]
[-https_port RANGE 1-65535 DEFAULT 443]
[-request_timeout RANGE 1-64000 DEFAULT 300]

ARGUMENTS

-handle Handle of a HTTP configuration when -property traffic and -mode add. Or han-
dle of a traffic property , used when -property is agent and -mode is add. Also the
handle of a traffic, agent or command property when -property is respectively
traffic, agent and -mode is modify | remove | enable | disable.

Dependencies: -property agent; -property traffic with -mode modify.

7-10 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-target Specifies where this traffic will be added: on the client side or on the server side.
Values: client or server.

Dependencies: -property traffic with -mode add.

(DEFAULT = client)

-property Defines types of properties of the HTTP traffic configuration. Command handles
operations required for defining commands for the HTTP agents. Valid choices
are:

Value Usage

traffic handles operations required for defining the


HTTP traffic of clients or servers.
agent handles operations required for defining the
emulated HTTP clients or HTTP servers.

-mode Defines types of actions to be taken on the -property object. Values: add | remove
| modify | enable | disable. For -mode "add", -property "agent" and -target
"server" then some default objects will be available.

Default server web pages:

/1b.html

/4k.html

/8k.html

/16k.html

/32k.html

/64k.html

/128k.html

/256k.html

/512k.html

/1024k.html

Default response headers:

200_OK

404_PageNotFound

Default cookielists and cookies:

UserCookie - cookies: firstName = Joe; lastName = Smith;

LoginCookie - cookies: name = joesmith; password = foobar;

These options can be used to build up configurations by modifying them accord-


ing to the needed values for the test.

HLTAPI Commands, Release 2.80 Rev. B 7-11


HTTP APIs
7
-browser_emulation The type of browser that the client will emulate. If the value is custom , then No
browser is emulated by the client. The headers may be entered with the
emulation_http_traffic_type_config API call, with "-property header".

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = ie6)

-cookie_jar_size If cookie_support_enable is true, this option indicates the number of cookies that
will be saved for each client.

Dependencies: cookie_support_enable 1 ; target client ; property agent

with mode add | modify

(DEFAULT = 10)

-cookie_reject_probability If cookie_support_enable 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.

Dependencies: cookie_support_enable 1 ; target client ; property agent with


mode add | modify

(DEFAULT = 0.0)

-cookie_support_enable Enables support for cookies. Value: 0 or 1.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

-esm_enable If true, the use of the esm option is enabled.

Dependencies: property agent with mode add | modify

(DEFAULT = 0)

-esm If esm_enable is true, this option specifies the TCP Maximum Segment Size in
the MSS (RX) field. Otherwise, the TCP Maximum Segment Size is 1460 bytes.

Dependencies: esm_enable 1 ; property agent with mode add | modify

(DEFAULT = 1460)

-http_proxy_enable If true, the client will retrieve pages from an HTTP proxy device defined in http_
proxy instead of the target specified in the URL.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

-https_proxy_enable If true, the client will retrieve secure (SSL) pages from an HTTPS proxy device
defined in https_proxy instead of the target specified in the URL.

Dependencies: ssl_enable 1 ; target client ; property agent with mode

add | modify

(DEFAULT = 0)

7-12 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-ip_preference If a mixture of IPv4 and IPv6 addresses are available on the client network, this
parameter configures which address types the agent uses.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

-follow_http_redirects 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 which
defines the reason for redirection (for example, "301 Moved Permanently") and
supplies an alternative location (specified in the emulation_http_traffic_type_
config with -property header) from which the client can retrieve the page.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

-http_proxy If http_proxy_enable 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.

Dependencies: http_proxy_enable 1 ; target client ; property agent with mode add


| modify

-https_proxy If https_proxy is true, this option is the name of a HTTPS proxy device (typi-
cally, 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.

Dependencies: ssl_enable 1 ; https_proxy_enable 1 ; target client ; property agent


with mode add | modify

-http_version 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 down-
load 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.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 1.0)

HLTAPI Commands, Release 2.80 Rev. B 7-13


HTTP APIs
7
-keep_alive 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 keep_
alive 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.

Dependencies: http_version "1.0" ; target client ; property agent with mode add |
modify

(DEFAULT = 0)

-max_persistent_requests This option is only applicable if http_version is set to "1.1" or http_version is set
to "1.0" with keep_alive set to true. This option enables you to control the num-
ber of transactions that can occur during a single connection. A value of 0 indi-
cates the maximum possible, in which case the program will create as many
transactions as possible for each connection. If you enter a value to limit the
number of transactions, the program 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.

Dependencies: http_version "1.1" | http_version "1.0" with keep_alive

1 ; target client ; property agent with mode add | modify

(DEFAULT = 1)

-max_sessions 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. The program enforces these limits for clients. For servers,
the limits are the same but not enforced.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 3)

-ssl_enable If true, then the client will support SSL interactions. The operation of SSL mode
is controlled by the certificate, client_ciphers, private_key, private_key_pass-
word, sequential_session_reuse (sic), and ssl_version options.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

-sequential_session_reuse If ssl_enable is true, this option indicates the number of times that a set of keys
will be re-used after its initial usage. For example, if this value is set to 3, then the
keys will be used for four total sessions.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

(DEFAULT = 0)

7-14 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-ssl_version This is the SSL version be supported by the client.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

(DEFAULT = tls1)

-certificate This is a certificate to be used by the client if requested by the server. The certifi-
cate must an X.509 certificate in binary format, fully decoded. The certificate_
file option can read and decode a certificate held in a disk file.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

-certificate_file Imports a certificate from a disk file, setting the certificate option with the result.
The program can import ASCII PEM (Privacy Enhanced Mail) or binary
(PKCS#12) certificates and keys; it converts binary certificates and keys into
ASCII PEM format. PEM uses Base64 encoding, and is optimized for sending
binary data in 7-bit transport environments like the Internet. 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 private_
key_password must be set.

Even though the certificate and key are stored in the same file, you must import
each one separately.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

-private_key This is a user's private key. The password must be in binary format, fully
decoded.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

-private_key_file Imports a private key from a disk file, setting the private_key_password option
with the result. The program can import ASCII PEM (Privacy Enhanced Mail) or
binary (PKCS#12) certificates and keys; it converts binary certificates and keys
into ASCII PEM format. PEM uses Base64 encoding, and is optimized for send-
ing binary data in 7-bit transport environments like the Internet. PKCS #12 (Pub-
lic 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
private_key_password must be set.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

-private_key_password The password used to decode a certificate and private key, when using the
certificate_file or private_key_file options.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

HLTAPI Commands, Release 2.80 Rev. B 7-15


HTTP APIs
7
-client_ciphers This is a ':' separated list of encryption ciphers that will be supported by the cli-
ent.

Dependencies: ssl_enable 1 ; target client ; property agent with mode add | mod-
ify

-accept_ssl_connections If true, the server will accept incoming SSL connections.

Dependencies: target server ; property agent with mode add | modify

(DEFAULT = 0)

-http_port The port number to which the HTTP server will respond to non SSL requests.

Dependencies: target server ; property agent with mode add | modify

(DEFAULT = 80)

-https_port The port number to which the HTTP server will respond to SSL requests. Depen-
dencies: target server ; property agent with mode add | modify

(DEFAULT = 443)

-request_timeout The amount of time that the server will wait for input on an open connection
before closing the session with a '408' error.

Dependencies: target server ; property agent with mode add | modify

(DEFAULT = 300)

-tos_enable 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.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

-tos 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.

Dependencies: target client ; property agent with mode add | modify

(DEFAULT = 0)

Valid choices are:

Value Usage
Best Effort (0x0) (Default) routine priority
Class 1 (0x20) Priority service, Assured Forwarding class 1
Class 2 (0x40) Immediate service, Assured Forwarding class
2

7-16 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a HTTP traffic configuration,
list of traffic, agent.
page_handles the handles of the default pages available
when creating a server agent.
header_handles the handles of the default headers available
when creating a server agent.
cookielist_handles the handles of the default cookielists available
when creating a server agent.
<cookielist_handle>.cookie_handles the handles of the default cookies for a cook-
ielist that are available when creating a server
agent.

EXAMPLES See files starting with http_ in the Samples subdirectory.


Also see the HTTP section in Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {traffic1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 7-17


HTTP APIs
7

NAME — ::ixia::emulation_http_traffic_type_config

DESCRIPTION The command is used to construct the actions attached to the HTTP agents previ-
ously defined with the <vendor>::emulation_http_traffic_config command. Mul-
tiple actions can be added to the agents. For every agent this command can add
multiple cookies, specific headers or WEB pages to be transferred between a cli-
ent agent and a server agent. This command can also define new cookies, head-
ers, or pages.

SYNOPSIS ::ixia::emulation_http_traffic_type_config
-mode CHOICES add remove modify
enable disable
[-property CHOICES action cookielist
cookieheader page]
[-handle ANY]
[-abort CHOICES none before after
DEFAULT none]
[-command CHOICES get get_ssl delete
headhead_ssl put put_ssl postpost_ssl think
loop_beginloop_end DEFAULT get]
[-arguments ANY]
[-destination ANY]
[-page_handle ANY]
[-cookielist_mode CHOICES ignore normal
setcookie1 setcookie2 DEFAULT normal]
[-cookielist_description ANY]
[-type CHOICES setcookie1 setcookie2
DEFAULT setcookie2]
[-domain NUMERIC]
[-max_age NUMERIC]
[-path ANY]
[-cookie_name ANY]
[-cookie_value ANY]
[-code NUMERIC DEFAULT 200]
[-expiration_mode CHOICES never datetime
afterrequest afterlastmodified DEFAULT never]
[-expiration_datetime ANY DEFAULT 2009/12/31
23:59:59]
[-expiration_afterrequest NUMERIC DEFAULT 3600]
[-expiration_afterlastmodified NUMERIC DEFAULT 3600]
[-last_modified_mode CHOICES never datetime
DEFAULT never]
[-last_modified_datetime ANY DEFAULT "2004/12/31
23:59:59"]
[-last_modified_incr_enable CHOICES 0 1 DEFAULT 0]
[-last_modified_incr_by NUMERIC DEFAULT 5]
[-last_modified_incr_for NUMERIC DEFAULT 1]
[-mime_type ANY DEFAULT text/plain]
[-response_name ANY DEFAULT 200_OK]
[-response_description DEFAULT OK]
[-key ANY]
[-value ANY]
[-page ANY]
[-payload_type CHOICES range file
DEFAULT range]
[-payload_file ANY]

7-18 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

[-payload_size ANY DEFAULT 4096]


[-cookielist_handle ANY]
[-header_handle ANY]

ARGUMENTS

-mode Defines types of actions to be taken on the -property object.

-property

Defines types of properties of the HTTP traffic type configuration. Valid choices
are:

Value Usage

Action handles operations required for defining the


commands of an agent (the commands exe-
cuted by the HTTP client).
Cookielist handles operations required for defining
cookie types on the server.
Cookie handles operations required for defining
actual values of the cookies predefined with
cookielist.
Header handles operations required for defining the
responses of the web server to requests -
both returned page contents and other mes-
sages. Also for defining the name-value pairs
of headers of responses of the web server.
Page handles operations required for defining the
web pages that are available from the web
server.

-handle Handle of an action, cookielist, cookie, header or page property.

-abort This option allows you to abort an operation at one of two places during the inter-
change.

Dependencies: property action with mode add | modify

Valid choices are:

Value Usage

none (default) Do not abort transaction.


before Abort the operation immediately after the TCP
connection.
after Abort the operation after the operation has
been sent to the HTTP server. This option is
not valid for SSL connections.

HLTAPI Commands, Release 2.80 Rev. B 7-19


HTTP APIs
7
-command The HTTP command to be used.

Dependencies: property action with mode add | modify

Valid choices are:

Value Usage

GET Retrieves the page specified with the page


property.
GET(SSL) Retrieves the page specified with the page
property. This command must be used with
an agent with ssl_enable 1.
DELETE Requests that the server delete the page
specified in the page property.
HEAD Retrieves only the HTTP headers for the page
specified in the page property.
HEAD(SSL) Retrieves only the HTTP headers for the page
specified in the page property. This com-
mand must be used with an agent with ssl_
enable 1.
PUT Stores the page specified in the page property
on the server at the path specified in the
arguments option.
PUT(SSL) Stores the page specified in the page property
on the server at the path specified in the
arguments option. This command must be
used with an agent with ssl_enable 1.
THINK Adds a pause (think time) before the next
command is executed. The duration of the
pause must be specified in the arguments
option.

-arguments This option contains an argument which is used by the various commands
defined in command option. The type of the value depends on the command.

Dependencies: property action with mode add | modify ; command put | put_ssl |
post | post_ssl | think

Valid choices are:

Value Usage

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.

7-20 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-destination The IP address of a real HTTP server. 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 you are using a testing an SLB with a virtual IP address (VIP), enter
its address here. For example: 192.168.0.1:80.

If destination is a HTTP server agent (created with emulation_http_traffic_con-


fig) then the server agent handle should be specified.

Dependencies: property action with mode add | modify

-page_handle /#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. /nk.htm identifies a target that is an HTML page that is n kilo-
bytes in size. For example, /4k.htm is an 4096-byte HTML page. If you have
added customized pages with emulation_http_traffic_type_config with -property
page, type its handler here.

Dependencies: property action with mode add | modify

-cookielist_mode Determines how the cookies in the cookie group should be handled by the HTTP
server that receives them. Dependencies: property cookielist with mode add |
modify

Valid choices are:

Value Usage

ignore Causes the server to discard these cookies


when it receives them from the client. The
Program 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 Pro-
gram HTTP server.
normal (default) Causes the server to perform the
functions described by the cookies.
setcookie1 Causes the server to return the cookies to the
client in a Set-Cookie format header.
setcookie2 Causes the server to return the received
cookie data to the client in a Set-Cookie2 for-
mat header.

-cookielist_description A description for the cookielist.

Dependencies: property cookielist with mode add | modify

HLTAPI Commands, Release 2.80 Rev. B 7-21


HTTP APIs
7
-type The type of the cookie. Dependencies: property cookielist with mode add | mod-
ify

Valid choices are:

Value Usage

setcookie1 Use the original cookie specification, as per


RFC 2109.
setcookie2 (default) Use the cookie 2 specification, as
per RFC 2965.

-domain The domain for which the cookie is valid. If omitted, it applies to the entire
domain for the HTTP server.

Dependencies: property cookie with mode add | modify

-max_age 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 imme-
diately. If blank, the cookie is discarded at the end of the browser session.

Dependencies: property cookie with mode add | modify

-path The subset of URLs to which this cookie applies. If omitted, it applies to all
URLs for the server.

Dependencies: property cookie with mode add | modify

-cookie_name The name part of the name=value pair being defined. Dependencies: property
cookie with mode add | modify

-cookie_value The value part of the name=value pair being defined. Dependencies: property
cookie with mode add | modify

-code The number returned by response. HTTP response codes are defined in Section
10 of RFC 2616.

Dependencies: property header with mode add | modify

(DEFAULT 200)

-expiration_mode The means by which the page's expiration is published. Dependencies: property
header with mode add | modify

Valid choices are:

Value Usage

never (default) The page never expires.


datetime The page expires after a certain date and
time, specified in expiration_datetime option.
afterrequest The page expires after certain amount of time
specified in the expiration_afterrequest
option.
afterlastmodified The page expires after a certain amount of
time following the last modified date and
time, specified in the expiration_afterlast-
modified option.

7-22 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-expiration_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".

Dependencies: expiration_mode datetime ; property header with mode add |


modify

(DEFAULT 2009/12/31 23:59:59)

-expiration_afterrequest This is the number of seconds after which the page will expire.

Dependencies: expiration_mode afterrequest ; property header with mode add |


modify

(DEFAULT 3600)

-expiration_ This is the number of seconds after the page's last modified value, at which time
afterlastmodified the page will expire. The last modified value is set in last_modified_datetime,
last_modified_incr_enable, last_modified_incr_by and last_modified_incr_for
options.

Dependencies: expiration_mode afterrlastmodified ; property header with mode


add | modify

(DEFAULT 3600)

-last_modified_mode This option determines if and how the last modified field will be published for
the page.

Dependencies: property header with mode add | modify

Valid choices are:

Value Usage

never (default) No last modification time is pub-


lished.
datetime A last modification date/time is published as
specified in last_modified_datetime, last_
modified_incr_enable, last_modified_incr_by
and last_modified_incr_for options.

-last_modified_datetime 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 last_modified_incr_
enable, last_modified_incr_by and last_modified_incr_for options. last_
modified_mode datetime ; property header with mode add | modify

(DEFAULT 2004/12/31 23:59:59)

-last_modified_incr_enable This option enables the incrementing of last_modified_datetime by last_


modified_incr_by as modified by last_modified_incr_for.

Dependencies: last_modified_mode datetime ; property header with mode add |


modify

(DEFAULT 0)

HLTAPI Commands, Release 2.80 Rev. B 7-23


HTTP APIs
7
-last_modified_incr_by This is the number of seconds to increment the last_modified_datetime value.

Dependencies: last_modified_mode datetime ; last_modified_incr_enable 1 ;


property header with mode add | modify

(DEFAULT 5)

-last_modified_incr_for This is the number of times that the page is referenced before the last modified
date/time is incremented as specified in last_modified_incr_by.

Dependencies: last_modified_mode datetime ; last_modified_incr_enable 1 ;


property header with mode add | modify

(DEFAULT 1)

-mime_type The MIME type for the page. The types: text/plain, text/html and text/xml are
pre-defined, but any legal type may be set.

Dependencies: property header with mode add | modify

(DEFAULT text/plain)

-response_name The name of the response.

Dependencies: property header with mode add | modify

(DEFAULT 200_OK)

-response_description The description of the response.

Dependencies: property header with mode add | modify

(DEFAULT OK)

-key A value HTTP header key.

Dependencies: property header with mode add | modify

-value The value of the header key.

Dependencies: property header with mode add | modify

-url 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 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 fol-
lowing GET requests:

/home/liesl/pics/pup.html

/home/liesl/0/temp/pup.html

/home/liesl/pup.html

Dependencies: property page with mode add | modify

7-24 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-payload_type Indicates the type of payload that will be returned for this page reference. Depen-
dencies: property page with mode add | modify

Valid choices are:

Value Usage

range (default) Causes the Server Agent to gener-


ate data automatically. The value in payload_
size indicates the amount of data to return.
file Causes the Server Agent to return the actual
file indicated in the payload_file option.

-payload_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.

Dependencies: payload_type file ; property page with mode add | modify

-payload_size 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
1024 bytes and a maximum of 2048, specify 1024-2048.

To specify a single fixed amount of data, specify the a single value.

Dependencies: payload_type range ; property page with mode add | modify

(DEFAULT 4096)

-cookielist_handle This option links to an element of type cookielist of the enclosing HTTP Server
Agent.

-header_handle This option links to an element in the header list of the enclosing HTTP Server
Agent.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a HTTP traffic configuration,
list of traffic, agent.

EXAMPLES See files starting with http_ in the Samples subdirectory.


Also see the HTTP example in Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {traffic1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 7-25


HTTP APIs
7

NAME — ::ixia::emulation_http_control

DESCRIPTION This command defines a mapping between the HTTP networks, the DUT and the
statistics used. It can start a test previously defined with the ::ixia::emulation_
http_control_config command.

SYNOPSIS ::ixia::emulation_http_control
-mode CHOICES add modify start
[-handle ANY]
[-map_handle ANY]
[-force_ownership_enable CHOICES 0 1 DEFAULT 0]
[-release_config_afterrun_enable CHOICES 0 1 DEFAULT 0]
[-reset_ports_enable CHOICES 0 1 DEFAULT 0]
[-results_dir_enable CHOICES 0 1 DEFAULT 0]
[-results_dir ANY]
[-stats_required CHOICES 0 1 DEFAULT 1]

ARGUMENTS

-mode Defines types of actions to be taken. Valid choices are:

Value Usage

add adds a map between a HTTP config and a


traffic config to this session.
modify modifies this session
start starts this session

-handle Handle of a control.

Dependencies: mode modify | start

-map_handle List of handles of the maps between a client HTTP config and a client traffic con-
fig and between a server HTTP config and a server traffic config created with
::ixia::emulation_http_control_config.

Dependencies: mode add | modify

-force_ownership_enable 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.

Dependencies: mode add | modify

(DEFAULT = 0)

-release_config_afterrun_ If true, purges the test configuration from the ports after a test completes, releases
enable ownership of them, and the ports will no longer respond to ARPs and PINGs
from the DUT.

Dependencies: mode add | modify

(DEFAULT = 0)

7-26 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-reset_ports_enable If true, the program 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-
ning it to see the effect of your changes, it may be safe to save time by not reboo-
ting 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.

Dependencies: mode add | modify

(DEFAULT = 0)

-results_dir_enable This enable storing the execution results. Values: 0 or 1.

Dependencies: -mode add.

(DEFAULT = 0)

-results_dir Specifies the location of where the execution results will be kept.

Dependencies: -mode add.

-stats_required If true, statistics will be collected for the test.

Dependencies: mode add | modify

(DEFAULT = 1)

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is $::FAILURE, contains more
information
handles the handles of a HTTP traffic configuration,
list of traffic, agent.

EXAMPLES See files starting with http_ in the Samples subdirectory.


Also see the HTTP example in Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {traffic1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 7-27


HTTP APIs
7

NAME — ::ixia::emulation_http_stats

DESCRIPTION This command manages the statistics gathered during the test run. It can add mul-
tiple types of statistics, extract data, clear statistics from a previous run, or can
add specific filters to the way the statistics are gathered.

SYNOPSIS ::ixia::emulation_http_stats
-mode CHOICES add clear get
[-handle ANY]
[-aggregation_type CHOICES sum max min average rate
maxrate minrate averagerate DEFAULT sum]
[-stat_name ALPHANUM]
[-stat_type CHOICES client server
DEFAULT client]
[-filter_type CHOICES port card chassis traffic
map]
[-filter_value ANY]

ARGUMENTS

-handle Handle of a statistic. Dependencies: -mode get.

-mode Defines types of actions to be taken. Valid choices are:

Value Usage
add adds a statistic.
clear clear all statistics previously added.
get get statistic data.

-aggregation_type Specifies how statistics for multiple ports are combined.

Dependencies: -mode add.

Valid choices are:

Value Usage

sum (default) add all of the statistics together.


max determine the maximum value.
min determine the minimum value.
average determine the average value.
rate determine the rate of change of the sum of all
the statistics.
maxrate determine the maximum rate.
minrate determine the minimum rate.
averagerate determine the average rate.

7-28 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-stat_name A particular statistic name as listed in the statistics list. The list of statistics can
be found in the table below.

Dependencies: -mode add.

Valid choices are:

Value Usage

http_simulated_users (client) Number of users to be simulated during the


test.
http_concurrent_connections (client) Maximum number of concurrent #
connections maintained during the test.
http_connections (client) Total number of connections established by
the clients.
http_transactions (client) Total number of transactions completed by
the clients.
http_bytes (client) Amount of data transmitted by the clients, in
bytes.
http_requests_sent (client) Number of HTTP requests sent by the clients.
http_requests_successful (client) Number of positive HTTP responses (2xx-
and 3xx-range responses) received by the
clients.
http_requests_failed (client) Number of HTTP requests that failed for any
reason.
http_requests_failed_write (client) Number of HTTP requests that failed due to a
socket write error.
http_requests_failed_read (client) Number of HTTP requests that failed due to a
socket read error.
http_requests_failed_bad_header (cli- Number of HTTP requests that failed due to a
ent) defective HTTP header.
http_requests_failed_4xx (client) Number of 4xx-range responses received by
the clients in response to an HTTP
request.408 responses are counted sepa-
rately 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 Time-
out (408) for more information.
http_requests_failed_400 (client) Bad Request. Number of requests that failed
due to a syntax error in the URL.
http_requests_failed_401 (client) Unauthorized. Number of requests that failed
due to because the server did not receive the
correct user name or password from the
browser.
http_requests_failed_403 (client) Forbidden. Number of requests that failed
due to because the name or password sup-
plied by the browser are incorrect.
http_requests_failed_404 (client) Not Found. Number of requests that failed
because requested object is not stored on
the server on the path supplied.
http_requests_failed_408 (client) Timeout. Number of requests that failed due
to communications between the client and
server taking too long.

HLTAPI Commands, Release 2.80 Rev. B 7-29


HTTP APIs
7

Value Usage

http_requests_failed_4xx_other (client) Number of HTTP requests that failed for rea-


sons other than a Bad Request (400), Unau-
thorized (401), Forbidden (403), Not Found
(404), or Timeout (408) error.
http_requests_failed_5xx (client) Number of HTTP requests that failed due to
lack of resources on the server (HTTP 500-
series errors). This statistic is only incre-
mented if the client had issued a request to
the server before receiving the 5xx response.
http_requests_failed_505 (client) HTTP Version not Supported. Number of
requests that failed because the server does
not support the HTTP version used by the cli-
ent.
http_requests_failed_5xx_other (client) Number of requests that failed for reasons
other than an HTTP version mis-match (505).
http_requests_failed_timeout (client) Number of HTTP requests that failed
because the clients did not receive a
response within 600 seconds.
http_requests_failed_aborted (client) Number of HTTP requests that ended prema-
turely due to events outside HTTP or TCP.
For example, if any HTTP requests are pend-
ing when the Ramp-Down period ends,
those requests are aborted by program.
http_requests_timeouts (client) 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.
The program counts 408 responses differ-
ently depending on whether or not a client
has a pending HTTP request. If a client has
an HTTP request pending and it receives a
408 response, the program 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, Pro-
gram only increments the HTTP Received
408 statistic.
http_sessions_rejected (client) Service Unavailable. Number of HTTP ses-
sions that could not be established due to
lack of resources on the server.
http_transactions (client) Number of HTTP transactions transferring
HTTP commands or data.
http_users_active (client) Number of HTTP users simulated.

7-30 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

Value Usage

http_bytes_sent (client) Number of HTTP bytes transmitted by the cli-


ents. 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 (client)
- Number of HTTP bytes received by the cli-
ents. 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_cookies_received (client) Number of cookies received by the clients.
http_cookies_sent (client) Number of cookies sent by the clients.
http_cookies_rejected (client) Number of cookies rejected by the clients.
Clients may reject cookies for the following
reasons: Cookie jar is full; Path specified in
the cookie is not a subset of the URI
requested; 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_cookies_rejected_path (client) Number of cookies rejected by the clients
because the path specified in the cookie was
not available on the server.
http_cookies_rejected_domain (client) Number of cookies rejected by the clients
because the cookie was sent by a server out-
side the domain specified in the cookie.
http_cookies_rejected_overflow (client) Number of cookies rejected by the clients
because their cookie jars were full.
http_cookies_rejected_probabilistic (cli- Number of cookies rejected because the cli-
ent) ents were configured to reject a percentage
of all cookies at random.
http_connect_time (client) Average time elapsed, in milliseconds,
between the time the client sends a SYN
packet and the time it receives the SYN/ACK.
http_time_first_byte (client) Average time elapsed, in milliseconds, before
clients received the first byte of an HTTP
response.
http_time_last_byte (client) Average time elapsed, in milliseconds, before
clients received the last byte of an HTTP
response.
http_requests_received (Server) Number of HTTP requests received by the
servers.
http_requests_successful (Server) Number of complete and positive HTTP
responses (2xx- and 3xx-range responses)
sent to the clients.

HLTAPI Commands, Release 2.80 Rev. B 7-31


HTTP APIs
7

Value Usage

http_requests_failed (Server) Number of HTTP requests from the clients


that failed for any reason.
http_requests_failed_404 (Server) Number of HTTP requests that failed due to
missing files (error 404).
http_requests_failed_50x (Server) Number of HTTP requests that failed due to
lack of resources (500-series errors).
http_requests_failed_write (Server) Number of HTTP requests that failed due to a
socket write error.
http_sessions_rejected (Server) Service Unavailable. Number of HTTP ses-
sions that could not be established due to
lack of resources on the server.
http_session_timeouts (Server) 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. Program
counts 408 responses differently depending
on whether or not a client has a pending
HTTP request: if a client has an HTTP
request pending and it receives a 408
response, Program increments the HTTP
Received 408, HTTP Requests Failed (4xx),
and HTTP Requests Failed statistics; if a cli-
ent does not have an HTTP request pending
and it receives a 408 response, Program only
increments the HTTP Received 408 statistic.
http_transactions_active (Server) Number of HTTP transactions transferring
HTTP commands or data.
http_bytes_received (Server) Number of HTTP bytes received by the serv-
ers. 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_bytes_sent (Server) 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 bro-
ken or reset connections). SSL-encrypted
payload data is included in this statistic but
SSL handshake overhead is not (HTTP only).
http_cookies_received (Server) Number of cookies received by the server.
http_cookies_sent (Server) Number of cookies sent by the server.
http_cookies_match (Server) Number of cookies received from the same
servers that the client returned its cookies to.
http_cookies_non_match (Server) Number of cookies received from the differ-
ent servers than the servers the client
returned its cookies to.

7-32 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-stat_type The agent type that generates the statistics. Values: client or server. Dependen-
cies: -mode add.

(DEFAULT = client)

-filter_type The type of the filter available.

Dependencies: -mode add.

(DEFAULT = port)

Valid choices are:

Value Usage

port a filter operation may be performed across


the port described in the filter_value field.
card a filter operation may be performed across
the card described in the filter_value field.
chassis a filter operation may be performed across
the chassis described in the filter_value field.
traffic a filter operation may be performed across on
the traffic described in the filter_value field.
map a filter operation may be performed across
the mapping described in the filter_value
field.

-filter_value A value corresponding to the value of the type option.

Dependencies: -mode add.

Valid choices are:

Value Usage
If -type is "port" a port specification in the form chassis/card/
port.
If -type is "card" a card specification in the form chassis/card.
If -type is "chassis" a chassis specification in the form chassis
If -type is "traffic" a traffic handle created by emulation_http_
traffic_config.
If -type is "map" a map handle created by emulation_http_
control_config.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a HTTP stats configuration.
<stat_group_handle>.<client|server>.< The value of the specified statistic name.
stat_name>.<timestamp>

EXAMPLES See files starting with HTTP_ in the Samples subdirectory.


Also see the HTTP example in Appendix A, "Example APIs."

HLTAPI Commands, Release 2.80 Rev. B 7-33


HTTP APIs
7
SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {statistic1}}


or
{status $::SUCCESS}
{statistic1.client.http_connections.110290069000 5}

NOTES Coded versus functional specification.

SEE ALSO

7-34 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

NAME — ::ixia::emulation_http_control_config

DESCRIPTION This command is used to construct the mapping between the agents that will gen-
erate the traffic and the set of networks which will carry the traffic. A number of
additional options control the manner in which the traffic is applied to the net-
works.

To the client side mappings , the command can specify the options used to allow
the test to achieve a particular objective, for example, connections per second, or
the options that determine the timeline for application of traffic or the options
that control the manner in which client traffic is sent to servers.

SYNOPSIS ::ixia::emulation_http_control_config
-mode CHOICES add remove modify
enable disable
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-property CHOICES map dut]
[-direct_server_return_enable CHOICES 0 1 DEFAULT 0]
[-ip_address IPV4 DEFAULT 1.1.1.1]
[-server_http_handle ANY]
[-type CHOICES external slb
firewall DEFAULT slb]
[-client_iterations NUMERIC DEFAULT 1]
[-client_http_handle ANY]
[-client_traffic_handle ANY]
[-objective_type CHOICES na users
connections crate trate tputmb tputkb sessions
DEFAULT na]
[-objective_value NUMERIC]
[-client_offline_time NUMERIC DEFAULT 0]
[-port_map_policy CHOICES pairs mesh
round_robin DEFAULT pairs]
[-ramp_down_time NUMERIC DEFAULT 20]
[-ramp_up_type CHOICES users_per_second
max_pending_users DEFAULT users_per_second]
[-ramp_up_value NUMERIC]
[-client_standby_time RANGE 0-3600000 DEFAULT 0]
[-client_sustain_time RANGE 0-3600000 DEFAULT 0]
[-client_total_time NUMERIC DEFAULT 60]
[-server_traffic_handle ANY]
[-match_client_totaltime CHOICES 0 1 DEFAULT 1]
[-server_iterations NUMERIC DEFAULT 1]
[-server_offline_time NUMERIC DEFAULT 0]
[-server_standby_time RANGE 0-3600000 DEFAULT 0]
[-server_sustain_time NUMERIC DEFAULT 20]
[-server_total_time NUMERIC DEFAULT 60]

HLTAPI Commands, Release 2.80 Rev. B 7-35


HTTP APIs
7
ARGUMENTS

-handle Handle of a map or DUT property.

-target Specifies the type of the map. Value: client | server.

(DEFAULT = client)

Dependencies: property map with mode add.

-property Defines types of the HTTP control configuration: Map handles operations
required for mapping a HTTP configuration

with a traffic configuration. DUT handles operations required for defining a


Device Under Test parameters. Value: map | dut.

-mode Defines types of actions to be taken on the -property object. Enable and disable
are not valid values for -property dut. Value: add | remove | modify | enable | dis-
able.

-direct_server_return_ If type is "slb" and this option is true, Direct Server Return is enabled. In a basic
enable SLB topology, incoming requests from clients and outgoing responses from serv-
ers both go through the SLB. 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. DSR reduces the amount of traffic going through the SLB, allowing it
to devote more resources to managing the incoming requests and monitoring the
status of the servers in its pool. Value: 0 | 1.

(DEFAULT = 0)

Dependencies: property dut with mode add | modify ; type slb.

-ip_address The IPv4 address, virtual IPv4 address or host name used to access the DUT.

(DEFAULT = 1.1.1.1)

Dependencies: property dut with mode add | modify.

-server_http_handle If type is "slb" and the SLB is balancing emulated servers, set this option to the
handle of the server HTTP network that is being balanced.

-type The type of DUT in use. (DEFAULT = slb)

Dependencies: property dut with mode add | modify.

Valid choices are:

Value Usage

external The DUT is a protocol server.


slb The DUT is a server load balancer.
firewall The DUT is a firewall.

-client_iterations The number of times that the traffic-network pair perform their functions (estab-
lishing TCP connections, retrieving files, etc.) in the test.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

7-36 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-client_http_handle This handle provides the networks from which the traffic will be generated.

Dependencies: property map with mode add | modify.

-client_traffic_handle This handle provides the model of the client traffic to be generated.

Dependencies: property map with mode add | modify.

-objective_type The objective to be achieve for this traffic to network mapping.

(DEFAULT = na)

Dependencies: property map with mode add | modify.

Valid choices are:

Value Usage

na If this option is not used there will be no


objective set.
users Number of HTTP users simulated during the
test. Specify the desired number of users in
the objective_value option.
sessions The objective is to sustain some number of
sessions simultaneously. Specify the desired
number of connections in the objective_value
option.
connections The Maximum number of simultaneous HTTP
connections established during the test.
Specify the desired number of connections in
the objective_value option.
crate Rate at which the client established HTTP
connections. Specify the desired number of
connections per second in the objective_
value option.
trate Rate at which the client completed transac-
tions with the server over HTTP connections.
One transaction consists of a LOGIN, PASS-
WORD, SEND, or EXIT command and the
response to it. Specify the desired number of
transactions per second in the objective_
value option.
tputmb The objective is to achieve a certain level of
throughput, measured in Megabytes per sec-
ond (MBps). Specify the amount of through-
put in the objective_value option.
tputkb The objective is to achieve a certain level of
throughput, measured in Kilobytes per sec-
ond (KBps). Specify the amount of through-
put in the objective_value option.

-objective_value A value related to the choice made in the objective_type option.

Dependencies: property map with mode add | modify.

HLTAPI Commands, Release 2.80 Rev. B 7-37


HTTP APIs
7
-client_offline_time The amount of time agents are idle between iterations.

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-port_map_policy This option controls the sequence in which the client ports connect to the server
ports. The operation of Port Pairs can be described by three scenarios: If the num-
ber of client ports is equal to the number of server agents, client ports will estab-
lish connections to server ports on a one-to-one basis; If the number of client
ports is less than the number of server ports, the client ports will establish con-
nections 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; If the number of
client ports is greater than the number of server ports, the client ports will estab-
lish 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.

(DEFAULT = pairs)

Dependencies: property map with mode add | modify.

Valid choices are:

Value Usage
pairs Client agents connect to server agents on a
one-to-one basis.
mesh Agents on every client port connect to every
server port. For large numbers of ports, the
Port Pair sequence scales performance better
than the Port Mesh sequence.

-ramp_down_time The amount of time used for closing any TCP connections that are still open after
all transactions are complete. When the ramp down time expires, the program ter-
minates any users. If the program terminates any client users that are still running
after the ramp down time expires, statistics for servers and clients that should

match may not. This is an indication that the ramp down time may be too short.

(DEFAULT = 20)

Dependencies: property map with mode add | modify.

-ramp_up_type The method used to apply the ramp_up_value. Dependencies: property map with
mode add | modify.

Valid choices are:

Value Usage

users_per_second (default) applies the ramp_up_value to bring


up the specified number of users per second.
For example, if you select users_per_second
and you specify 10 for the ramp_up_value,
the program brings up 10 new users every
second until all the users are and running.
max_pending_users N/A

7-38 HLTAPI Commands, Release 2.80 Rev. B


HTTP APIs

-ramp_up_value A value dependent on the setting of ramp_up_type.

Dependencies: property map with mode add | modify.

-client_standby_time 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 paris 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 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-client_sustain_time 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 (http). The valid
range is from 0 to 1000 hours (3,600,000). (DEFAULT = 0)

Dependencies: property map with mode add | modify.

-client_total_time The total time required to run the test, including Ramp Up, Ramp Down, Sustain,
and Offline times for all iterations. (DEFAULT = 60)

Dependencies: property map with mode add | modify.

-server_traffic_handle This handle provides the model of the server traffic to be generated.

Dependencies: property map with mode add | modify.

-match_client_totaltime 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 dura-
tion 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 test-
ing, the test results for that client may be misleading. If false, the program calcu-
lates agent run times independently for each server activity. -server_offline_
time, server_standby_time, # server_sustain_time, server_total_time options
will be disabled if -match_client_totaltime option is enabled. Value: 0 | 1.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-server_iterations The number of times that the traffic-network pair perform their functions (estab-
lishing TCP connections, retrieving files, etc.) in the test.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-server_offline_time Amount of time agents are idle between iterations.

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

HLTAPI Commands, Release 2.80 Rev. B 7-39


HTTP APIs
7
-server_standby_time 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 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-server_sustain_time 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).

(DEFAULT = 20)

Dependencies: property map with mode add | modify.

-server_total_time The total time required to run the test, including Standby, Sustain, and Offline
times for all iterations.

(DEFAULT = 60)

Dependencies: property map with mode add | modify.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a HTTP traffic configuration,
list of traffic, agent.

EXAMPLES See files starting with http_ in the Samples subdirectory.


Also see the HTTP example in Appendix A, "Example APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {map1}}

NOTES Coded versus functional specification.

SEE ALSO

7-40 HLTAPI Commands, Release 2.80 Rev. B


IGMPvX APIs
8
Chapter 8:

This chapter covers the following topics:

• ::ixia::emulation_igmp_config on page 8-2.

• ::ixia::emulation_igmp_control on page 8-5.

• ::ixia::emulation_igmp_group_config on page 8-6.

• ::ixia::emulation_igmp_info on page 8-8.

HLTAPI Commands, Release 2.80 Rev. B 8-1


IGMPvX APIs
8

NAME — ::ixia::emulation_igmp_config

DESCRIPTION This procedure will configure IGMP Host(s). Note that IGMP is only supported
on ports with CPUs.

SYNOPSIS ::ixia::emulation_igmp_config
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-
9]+$
-mode CHOICES create delete
modify enable disable enable_all disable_all
[-handle]
[-interface_handle]
[-igmp_version CHOICES v1 v2 v3
(DEFAULT v2)]
[-count NUMERIC (DEFAULT 1)]
[-intf_ip_addr IP]
[-intf_ip_addr_step IP (DEFAULT 0.0.0.1)]
[-intf_prefix_len RANGE: 1-32 (DEFAULT 24)]
[-neighbor_intf_ip_addr IP]
[-neighbor_intf_ip_addr_step IP (DEFAULT 0.0.0.0)]
[-unsolicited_report_interval NUMERIC]
[-max_groups_per_pkts NUMERIC (DEFAULT 0)]
[-max_response_control CHOICES 0 1 (DEFAULT 0)]
[-max_response_time NUMERIC]
[-ip_router_alert CHOICES 0 1 (DEFAULT 1)]
[-general_query CHOICES 0 1 (DEFAULT 1)]
[-group_query CHOICES 0 1 (DEFAULT 1)]
[-suppress_report CHOICES 0 1 (DEFAULT 0)]
[-filter_mode CHOICES include exclude
(DEFAULT include)]
[-vlan_id RANGE 0-4095]
[-vlan_id_mode CHOICES fixed increment
(DEFAULT increment)]
[-vlan_id_step RANGE 0-4096 (DEFAULT 1)]
[-vlan_user_priority RANGE 0-7 (DEFAULT 0)]
[-mac_address_init MAC ]
[-msg_interval NUMERIC (DEFAULT 0)]
[-no_write FLAG ]
[-reset FLAG ]

ARGUMENTS

-mode This option defines the action to be taken. Valid choices are:

Value Usage

create N/A
delete N/A
modify N/A
disable N/A
enable N/A
enable_all N/A
disable_all N/A

8-2 HLTAPI Commands, Release 2.80 Rev. B


IGMPvX APIs

-port_handle The port on which the session is to be created.

-handle IGMP Host handle if the option -mode is delete, modify, disable, enable.

-interface_handle A handle or list of the handles that are returned from the interface_config call.
These provide a direct link to an already existing interface and supercede the use
of the intf_ip_addr value.

-igmp_version The version of IGMP to be used: v1, v2, v3.

-count Defines the number of sessions to create on the interface.

(DEFAULT = 1)

-intf_ip_addr IP address of the test interface / emulated IGMP Host.

-intf_ip_addr_step The IP address step between each session. Only applicable in create mode.

(DEFAULT = 0.0.0.1)

-intf_prefix_len

-neighbor_intf_ip_addr IP address of the neighbor.

-neighbor_intf_ip_addr_ The IP address step between each session.


step
(DEFAULT = 0.0.0.0)

-unsolicited_report_inter- The interval (in 1/10 seconds) to wait before re-sending the host's initial report of
val membership in a group. If 0, do not send unsolicited report.

(DEFAULT = 100 for IGMPv2, 10 for IGMPv3)

-max_groups_per_pkts IGMPv3 only.

The maximum number of group records that can go into one IGMPv3 member-
ship report packet. If the number of groups to be advertised exceeds this number
then the groups are split up into multiple membership report packets. If set to 0,
groups are packed into Membership Report packets until the MTU size is
reached.

(DEFAULT = 0)

-max_response_control If true (1), use ì-max_response_timeî to overwrite the value obtained from the
received Query message.

(DEFAULT = 0 - disable)

-max_response_time Set the maximum response time (in 1/10 seconds) on receipt of a query. If set to
0, immediately respond to received Query message.

-ip_router_alert If true (1), enable IP Router Alert Option.

(DEFAULT = 1)

-general_query If true (1), respond to general queries received on the interface.

(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 8-3


IGMPvX APIs
8
-group_query If true (1), respond to group specific (and source/group?) queries received on the
interface.

(DEFAULT = 1)

-suppress_report If true (1), suppress the transmission of a listener report that duplicates one
received on the interface.

-filter_mode Cofigure IGMpv3 Include Filter Mode.

(DEFAULT = include)

-vlan_id VLAN ID for emulated router node.

-vlan_id_mode For multiple neighbor configuration, configures the VLAN ID mode to fixed or
increment.

-vlan_id_step When -vlan_id_mode is set to increment, this defines the step for every VLAN.

-vlan_user_priority VLAN user priority assigned to emulated router node.

-mac_address_init The MAC address for the interface to be created.

-msg_interval The interval in ms used for throttling updates. A value of 0 will cause sending the
messages as fast as possible.

(DEFAULT = 0)

-no_write If this option is present, the protocol configuration will not be written to the
server.

-reset Clear all existent hosts.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


handle The handles for the IGMP Hosts created

EXAMPLES See files starting with IGMPv1_, IGMPv2_, or IGMPv3_ in the


Samples subdirectory. See the IGMP example in Appendix A,
"Examples APIs," for one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

8-4 HLTAPI Commands, Release 2.80 Rev. B


IGMPvX APIs

NAME — ::ixia::emulation_igmp_control

DESCRIPTION Stop, start, or restart the protocol. Note that IGMP is only supported on ports
with CPUs.

SYNOPSIS ::ixia::emulation_igmp_control
-mode CHOICES stop start restart join leave
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
-handle
-group_member_handle

ARGUMENTS

-mode What is being done to the protocol. Valid choices are:

Value Usage
stop Stop the protocol.
start Start the protocol.
restart Restart the protocol.
join Join the groups specified by handle, port_
handle or group_member_handle. This com-
mands only affects the status of the items, it
will not start the protocol, if it is not already
running.
leave Leave the groups specified by handle, port_
handle or group_member_handle. This com-
mands only affects the status of the items, it
will not start the protocol, if it is not already
running.

-port_handle The port where the IGMP is to be controlled.

-handle The IGMP session handle .

-group_member_handle The IGMP group member handle.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with IGMPv1_, IGMPv2_, or IGMPv3_ in the


Samples subdirectory. See the IGMP example in Appendix A,
"Example APIs," for one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 8-5


IGMPvX APIs
8

NAME — ::ixia::emulation_igmp_group_config

DESCRIPTION This procedure will configure multicast group ranges for a simulated IGMP Host.
Note that IGMP is only supported on ports with CPUs.

SYNOPSIS ::ixia::emulation_igmp_group_config
-mode CHOICES create modify delete clear_all
-session_handle
-group_pool_handle
-source_pool_handle
-handle
-no_write
-reset

ARGUMENTS

-session_handle IGMP Host handle on which to configure the IGMP group ranges.

-group_pool_handle Groups to be linked to the session in create mode. The group pool must be added
beforehand through procedure

-emulation_multicast_
group_config.

-source_pool_handle Associate source pool(s) with group(s). Specify one or more source pool han-
dle(s) for (S,G) entries. None for (*,G) entries. The source pool(s) must be added
beforehand through procedure

-emulation_multicast_
source_config.

-handle Group membership handle that associates group pools with an IGMP session. If
modify mode, membership handle must be used in conjunction with session han-
dle to identify the multicast group pools.

-mode This option defines the action to be taken. Valid choices are:

Value Usage
create N/A
delete N/A
modify N/A
clear_all N/A

-no_write If this option is present, the protocol configuration will not be written to the
server.

-reset If the -mode is create and this option exists, then any existing group ranges will
be deleted before creating new ones.

8-6 HLTAPI Commands, Release 2.80 Rev. B


IGMPvX APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
handle The handle for the group member created
group_pool_handle The group_pool_handle used for creating the
group member
source_pool_handle The source_pool_handles used for creating
the group member

EXAMPLES See files starting with IGMPv1_, IGMPv2_, or IGMPv3_ in the


Samples subdirectory. See the IGMP example in Appendix A,
"Examples APIs," for one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 8-7


IGMPvX APIs
8

NAME — ::ixia::emulation_igmp_info

DESCRIPTION This procedure gathers IGMP and IGMPoPPP statistics

SYNOPSIS ::ixia::emulation_igmp_info
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
[-type CHOICES igmp igmp_over_ppp
DEFAULT igmp_over_ppp]
[-mode CHOICES aggregate group all
DEFAULT aggregate]

ARGUMENTS

-port_handle This parameter must be provided when -type is "igmp_over_ppp".

-type The type of statistics to be gathered. Valid choices are:

Value Usage

igmp statistics gathered from IxRouter/IxNetwork


for the igmp sessions configured using
emulation_igmp_config (not implemented yet)
igmp_over_ppp (default) statistics gathered from IxAccess for
the igmp hosts configured using pppox_config

-mode The statistics that should be retrieved for igmp over ppp.

Valid choices are:


<port_handle>.igmpoppp.aggregate.rx.mc_groups_query

Value Usage

aggregate aggregate stats


group per group stats
all both aggregate and per group stats.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is failure, contains more informa-
tion
<port_handle>.igmpoppp.aggre-
gate.tx.mc_groups_query
<port_handle>.igmpoppp.aggre-
gate.rx.mc_groups_query
<port_handle>.igmpoppp.aggre-
gate.tx.mc_groups_report
<port_handle>.igmpoppp.aggre-
gate.rx.mc_groups_report
<port_handle>.igmpoppp.aggre-
gate.tx.mc_groups_leave
<port_handle>.igmpoppp.group.<mc_
group_id>.<mc_group_addr>.rx.min_
join_latency

8-8 HLTAPI Commands, Release 2.80 Rev. B


IGMPvX APIs

Key Value

<port_handle>.igmpoppp.group.<mc_
group_id>.<mc_group_addr>.rx.avg_
join_latency
<port_handle>.igmpoppp.group.<mc_
group_id>.<mc_group_addr>.rx.max_
join_latency
<port_handle>.igmpoppp.group.<mc_
group_id>.<mc_group_addr>.rx.min_
leave_latency
<port_handle>.igmpoppp.group.<mc_
group_id>.<mc_group_addr>.rx.avg_
leave_latency
<port_handle>.igmpoppp.group.<mc_
group_id>.<mc_group_addr>.rx.max_
leave_latency

EXAMPLES

SAMPLE INPUT

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 8-9


IGMPvX APIs
8

8-10 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs
9
Chapter 9:

This chapter covers the following topics:

• ::ixia::emulation_isis_config on page 9-2.

• ::ixia::emulation_isis_topology_route_config on page 9-10.

• ::ixia::emulation_isis_control on page 9-18.

HLTAPI Commands, Release 2.80 Rev. B 9-1


ISIS APIs
9

NAME — ::ixia::emulation_isis_config

DESCRIPTION This procedure configures ISIS routers on an Ixia interface. The user can create a
single or multiple ISIS routers. These routers can be either L1, L2, or L1L2.

SYNOPSIS ::ixia::emulation_isis_config
-mode CHOICES create modify
delete disable enable
-port_handle
[-handle]
[-ip_version CHOICES 4 6 4_6]
[-area_id]
[-system_id]
[-count]
[-intf_ip_addr IP]
[-intf_ip_prefix_length RANGE 1-32]
[-intf_ip_addr_step IP]
[-intf_ipv6_addr IP]
[-intf_ipv6_prefix_length RANGE 1-128]
[-intf_ipv6_addr_step IP]
[-intf_metric RANGE 0-16777215]
[-wide_metrics CHOICES 0 1]
[-routing_level CHOICES L1 L2 L1L2]
[-discard_lsp CHOICES 0 1]
[-l1_router_priority RANGE 0-255]
[-l2_router_priority RANGE 0-255]
[-attach_bit CHOICES 0 1]
[-partition_repair CHOICES 0 1]
[-overloaded CHOICES 0 1]
[-graceful_restart CHOICES 0 1]
[-graceful_restart_mode CHOICES normal
restarting starting helper]
[-graceful_restart_restart_time]
[-hello_password CHOICES 0 1]
[-area_authentication_mode CHOICES null text]
[-area_password]
[-domain_authentication_mode CHOICES null text]
[-domain_password]
[-te_enable CHOICES 0 1]
[-te_router_id IP]
[-te_metric RANGE 1-2147483647]
[-te_admin_group RANGE 1-2147483647]
[-te_max_bw NUMERIC]
[-te_max_resv_bw NUMERIC]
[-te_unresv_bw_priority0 NUMERIC]
[-te_unresv_bw_priority1 NUMERIC]
[-te_unresv_bw_priority2 NUMERIC]
[-te_unresv_bw_priority3 NUMERIC]
[-te_unresv_bw_priority4 NUMERIC]
[-te_unresv_bw_priority5 NUMERIC]
[-te_unresv_bw_priority6 NUMERIC]
[-te_unresv_bw_priority7 NUMERIC]
[-hello_interval RANGE 1-65535]
[-lsp_life_time RANGE 1-65535]
[-lsp_refresh_interval RANGE 1-65535]
[-max_packet_size RANGE 576-32832]

9-2 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

[-vlan_id RANGE 0-4095]


[-vlan_id_mode CHOICES fixed increment]
[-vlan_id_step RANGE 0-4096]
[-vlan_user_priority RANGE 0-7]
[-vpi RANGE 0-255]
[-vci RANGE 0-65535]
[-vpi_step RANGE 0-255]
[-vci_step RANGE 0-65535]
[-gateway_ip_addr IP]
[-gateway_ip_addr_step IP]
[-graceful_restart_version CHOICES draft3 draft4]
[-intf_type CHOICES broadcast ptop]
[-mac_address_init]
[-no_write FLAG]
[-reset CHOICES 0 1]
[-system_id_step]
[-vlan CHOICES 0 1]
-router_id
-multi_topology
-csnp_interval
-psnp_interval
-holding_time
-router_id_step

ARGUMENTS

-mode Valid choices are:

Value Usage

create Creates the OSPF router on the Ixia interface.


modify Modifies the OSPF router on the Ixia inter-
face.
delete Deletes the OSPF router on the Ixia interface.
disable The OSPF router will be disabled.
enable Enables the OSPF router on the Ixia inter-
face.

-port_handle Ixia Interface where to act upon.

-handle ISIS session handle for using the modes delete, modify, enable and disable

-ip_version Choices are 4, 6, and 4_6. When 4_6 is selected, wide_metrics is enabled auto-
matically.

(DEFAULT = 4)

-area_id The area address to be used for the ISIS router.

-system_id A system ID is typically 6-octet long.

-count The number of ISIS routers to configure on the targeted Ixia interface. The range
is 0-1000.

(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 9-3


ISIS APIs
9
-intf_ip_addr The IP address of the Ixia Simulated ISIS router. If -count is > 1, this IP address
will increment by value specified in -intf_ip_addr_step.

(DEFAULT = 178.0.0.1)

-intf_ip_prefix_length Defines the mask of the IP address used for the Ixia (-intf_ip_addr) and the DUT
interface. The range of the value is 1-32.

(DEFAULT = 24)

-intf_ip_addr_step This value will be used for incrementing the IP address of Simulated ISIS router
if -count is > 1.

(DEFAULT = 0.0.1.0)

-intf_ipv6_addr The IPv6 address of the Ixia Simulated ISIS router. If -count is > 1, this IPv6
address will increment by the value specified in -intf_ipv6_addr_step.

(DEFAULT = 4000::1)

-intf_ipv6_prefix_length Defines the mask of the IPv6 address used for the Ixia (-intf_ipv6_addr) and the
DUT interface. Valid range is 1-128.

(DEFAULT = 64)

-intf_ipv6_addr_step This value will be used for incrementing the IPV6 address of Simulated ISIS
router if -count is > 1.

(DEFAULT = 0:0:0:1::0)

-intf_metric The cost metric associated with the route. Valid range is 0-16777215.

-wide_metrics If true (1), enable wide style metrics.

-routing_level Selects the supported routing level. Valid choices are:

Value Usage
L1 L1 only
L2 L2 only
L1L2 L1 and L2

-discard_lsp If 1, discards all LSPs coming from the neighbor which helps scalability.

-l1_router_priority The session routers priority number for L1 DR role.

-l2_router_priority The session routers priority number for L2 DR role.

-attach_bit For L2 only. If 1, indicates that the AttachedFlag is set. This indicates that this
ISIS router can use L2 routing to reach other areas.

-partition_repair If 1, enables the optional partition repair option specified in ISO/IEC 10589 and
RFC 1195 for Level 1 areas.

-overloaded If 1, the LSP database overload bit is set, indicating that the LSP database on this
router does not have enough memory to store a received LSP.

-graceful_restart If true (1), enable Graceful Restart (NSF) feature on the session router.

9-4 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

-graceful_restart_mode Valid choices are:

Value Usage

normal (default) The router operates as a normal


router.
restarting The router simulates a restarting router. It
sends an IIH containing a Restart TLV with
the RR bit set to the neighbor routers.
Starting The router simulates a starting router. It
sends an IIH containing a Restart TLV with
SA bit set to the neighbor routers.
Helper The router acts as the ìhelperî for the DUT
that is restarting. It acknowledges the
Restart TLV sent by the DUT by sending an
IIH containing a Restart TLV with the RA bit
set.

-graceful_restart_restart_ The amount of time that the router will wait for restart completion.
time

-hello_password If true (1), enable circuit authentication in hello pkts. L1 uses area password, L2
uses domain password.

-area_authentication_ Specifies the area authentication mode. Choices are null and text.
mode

-area_password The password used in simple text authentication mode. This is used by L1 rout-
ing.

-domain_authentication_ Specifies the domain authentication mode. Choices are null and text.
mode

-domain_password The password used in simple text authentication mode. This is used by L2 rout-
ing.

-te_enable If true (1), enable traffic engineering extension.

-te_router_id The ID of the TE router, usually the lowest IP address on the router.

-te_metric The traffic engineering metric, used for both L1 and L2 routes.

-te_admin_group The administrative group associated with the traffic engineering.

-te_max_bw The maximum bandwidth to be advertised.

-max_reservable_ The maximum reservable bandwidth to be advertised.


bandwidth

-unreserved_bandwidth_ The unreserved bandwidth for priority 0 to be advertised.


priority0

-unreserved_bandwidth_ The unreserved bandwidth for priority 1 to be advertised.


priority1

-unreserved_bandwidth_ The unreserved bandwidth for priority 2 to be advertised.


priority2

HLTAPI Commands, Release 2.80 Rev. B 9-5


ISIS APIs
9
-unreserved_bandwidth_ The unreserved bandwidth for priority 3 to be advertised.
priority3

-unreserved_bandwidth_ The unreserved bandwidth for priority 4 to be advertised.


priority4

-unreserved_bandwidth_ The unreserved bandwidth for priority 5 to be advertised.


priority5

-unreserved_bandwidth_ The unreserved bandwidth for priority 6 to be advertised.


priority6

-unreserved_bandwidth_ The unreserved bandwidth for priority 7 to be advertised.


priority7

-hello_interval The frequency of transmitting L1/L2 Hello PDUs.

-lsp_life_time The maximum age in seconds for retaining a learned LSP.

-lsp_refresh_interval The rate at which LSPs are resent. Unit is in seconds.

-max_packet_size The maximum IS-IS packet size that will be transmitted. Hello packets are also
padded to the size. Valid range is 576-32832.

-vlan_id If VLAN is enabled on the Ixia interface, this option will configure the VLAN
number.

(DEFAULT = 100)

-vlan_id_mode If the user configures more than one interface on the Ixia with VLAN, he can
choose to automatically increment the VLAN tag (increment)or leave it idle for
each interface (fixed).

(DEFAULT = increment)

-vlan_id_step If the -vlan_id_mode is increment, this will be the step value by which the VLAN
tags are incremented.

(DEFAULT = 1)

-vlan_user_priority VLAN user priority assigned to emulated router node.

(DEFAULT = 0)

-vpi VPI for emulated router node.

(DEFAULT = 1)

-vci VCI for emulated router node.

(DEFAULT = 10)

-vpi_step The step value used for incrementing the -vpi option.

(DEFAULT = 1)

-vci_step The step value used for incrementing the -vci option.

(DEFAULT = 1)

9-6 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

-gateway_ip_addr The gateway IP address.

(DEFAULT = 0.0.0.0)

-gateway_ip_addr_step The gateway IP address increment value.

(DEFAULT = 0.0.1.0)

-graceful_restart_version Specify which draft to use: draft3 draft4.

-intf_type Indicates the type of network attached to the interface: broadcast or ptop.

-mac_address_init This option defines the MAC address that will be configured on the Ixia inter-
face. If is -count > 1, this MAC address will increment by default by step of 1.

(DEFAULT = 0000.0000.0001)

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-reset If this option is selected, this will clear any OSPF router on the targeted interface.

-system_id_step If -count > 1, this value is used to increment the system_id.

(DEFAULT = 1)

-vlan Will enable/disable VLAN on the interface to be configured.

(DEFAULT = 0)

-router_id

-multi_topology

-csnp_interval

-psnp_interval

-holding_time

-router_id_step

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
handle list of router node handles

EXAMPLES See files starting with ISIS_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of ISIS usage. See the ISIS example
in Appendix A, "Example APIs," for one specific example
usage.

SAMPLE INPUT

HLTAPI Commands, Release 2.80 Rev. B 9-7


ISIS APIs
9
SAMPLE OUTPUT {status $::SUCCESS} {isis_nodes {router1 router2 router3
router4}}

NOTES This function does not support the following return values:

neighbor.<neighbor_handle>

. area_id

. system_id

. pseudonode_num

. intf_ip_addr

. intf_ipv6_addr

link_local_ipv6_addr

link_local_ipv6_prefix_length

pseudonode_num

The following fields are used in creating a protocol interface. They are applica-
ble only when mode = create.

ip_version

intf_ip_addr

intf_ip_prefix_length

intf_ip_addr_step

intf_ipv6_addr

intf_ipv6_prefix_length

intf_ipv6_addr_step

vlan

vlan_id

vlan_id_mode

vlan_idstep

vlan_user_priority

vpi

vci

vpi_step

vci_step

gateway_ip_addr IP

gateway_ip_addr_step IP

9-8 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

mac_address_init

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 9-9


ISIS APIs
9

NAME — ::ixia::emulation_isis_topology_route_config

DESCRIPTION This procedure creates/modifies/deletes ISIS route(s) to a particular simulated


ISIS router Ixia Interface. The user can configure the properties of the ISIS
routes.

SYNOPSIS ::ixia::emulation_isis_topology_route_config
-mode CHOICES create modify delete
-handle
[-elem_handle]
[-type CHOICES router grid stub
external]
[-ip_version CHOICES 4 6 4_6]
[-router_system_id]
[-router_id IP]
[-router_area_id]
[-router_te CHOICES 0 1]
[-router_connect]
[-link_narrow_metric RANGE 0-63]
[-link_wide_metric RANGE 0-16777215]
[-link_ip_addr IP]
[-link_ip_prefix_length RANGE 1-32]
[-link_ipv6_addr IP]
[-link_ipv6_prefix_length RANGE 1-128]
[-link_multi_topology CHOICES 1]
[-link_enable CHOICES 0 1]
[-link_te CHOICES 0 1]
[-link_te_max_bw NUMERIC]
[-link_te_max_resv_bw NUMERIC]
[-link_te_unresv_bw_priority0 NUMERIC]
[-link_te_unresv_bw_priority1 NUMERIC]
[-link_te_unresv_bw_priority2 NUMERIC]
[-link_te_unresv_bw_priority3 NUMERIC]
[-link_te_unresv_bw_priority4 NUMERIC]
[-link_te_unresv_bw_priority5 NUMERIC]
[-link_te_unresv_bw_priority6 NUMERIC]
[-link_te_unresv_bw_priority7 NUMERIC]
[-link_te_admin_group RANGE 1-2147483647]
[-grid_row NUMERIC]
[-grid_col NUMERIC]
[-grid_stub_per_router NUMERIC]
[-grid_router_id IP]
[-grid_router_id_step IP]
[-grid_link_type CHOICES broadcast ptop]
[-grid_ip_start IP]
[-grid_ip_pfx_len RANGE 1-32]
[-grid_ip_step IP]
[-grid_ipv6_start IP]
[-grid_ipv6_pfx_len RANGE 1-128]
[-grid_ipv6_step IP]
[-grid_start_te_ip IP]
[-grid_start_system_id REGEXP ^[0-9,a-f,A-F]+$]
[-grid_connect]
[-grid_te CHOICES 0 1]
[-stub_ip_start IP]
[-stub_ip_pfx_len RANGE 1-32]

9-10 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

[-stub_ipv6_start IP]
[-stub_ipv6_pfx_len RANGE 1-128]
[-stub_count NUMERIC]
[-stub_metric NUMERIC]
[-stub_up_down_bit CHOICES 0 1]
[-external_ip_start IP]
[-external_ip_pfx_len RANGE 1-32]
[-external_ip_step IP]
[-external_ipv6_start IP]
[-external_ipv6_pfx_len RANGE 1-128]
[-external_ipv6_step IP]
[-external_count NUMERIC]
[-external_metric NUMERIC]
[-external_up_down_bit CHOICES 0 1]
[-external_connect]
[-router_link_type CHOICES broadcast ptop]
[-grid_router_metric NUMERIC]
[-grid_router_ip_pfx_len RANGE 1-128]
[-grid_router_up_down_bit CHOICES 0 1]
[-grid_router_origin CHOICES stub external]
[-grid_te_metric NUMERIC]
[-grid_te_admin RANGE 1-2147483647]
[-grid_te_max_bw NUMERIC]
[-grid_te_unresv_bw_priority2 NUMERIC]
[-grid_te_unresv_bw_priority3 NUMERIC]
[-grid_te_unresv_bw_priority4 NUMERIC]
[-grid_te_unresv_bw_priority5 NUMERIC]
[-grid_te_unresv_bw_priority6 NUMERIC]
[-grid_te_unresv_bw_priority7 NUMERIC]
[-grid_system_id_step REGEXP ^[0-9,a-f,A-F]+$]
[-grid_interface_metric NUMERIC]
[-grid_te_ip_step IP]
[-link_te_metric RANGE 0-16777215]
[-no_write FLAG]
[-router_host_name]
[-router_pseudonode_num]
[-router_routing_level]
[-router_overload_bit]
[-router_attached_bit]
[-router_disconnect]
[-link_external]
[-link_up_down_bit]
[-link_te_remote_ip_addr]
[-link_te_remote_ipv6_addr]
[-grid_connect_session]
[-grid_disconnect]
[-stub_ip_step]
[-stub_ipv6_step]
[-stub_connect]
[-external_metric_type]

HLTAPI Commands, Release 2.80 Rev. B 9-11


ISIS APIs
9
ARGUMENTS

-mode Mode of the procedure call. Valid choices are: create modify delete.

-handle This option represents the handle the user *must* pass to the "emulation_isis_
topology_route_config" procedure. This option specifies on which ISIS router to
configure the ISIS topology. The ISIS router handle(s) are returned by the proce-
dure "emulation_isis_config" when configuring ISIS routers on the Ixia inter-
face.

-elem_handle This option specifies on which topology element to configure the route options.
The user must pass in this option if the -mode is modify or delete.

-type The type of topology route to create. Valid choices are:

Value Usage

router Individual ISIS router.


grid A rectangular grid of ISIS routers.
stub A stub network with a number of reachable
network prefixes.
external An external network with a number of reach-
able network prefixes.

-ip_version The IP version fo the topology element. Valid choices are 4, 6, and 4_6. Note
that the IP version of topology element cannot be changed after it is created.

(DEFAULT 4_6)

-router_system_id This is typically 6-octet long hex characters.

-router_id This is used for traffic engineering.

-router_area_id The list of area addresses to use. An address is a hex string of up to 4 bytes. This
option cannot be modified with modify mode.

-router_te If true (1), enable traffic engineering.

-link_narrow_metric This value is used for link metric if the wide metric is set to false in the router.

-link_wide_metric This value is used for link metric if the wide metric is set to true in the router.

-link_ip_addr IP address of the link between the session router and the topology router (router
behind the session router).

-link_ip_prefix_length IP prefix length of the link between the session router and the topology router
(router behind the session router).

-link_ipv6_addr IPV6 address of the link between the session router and the topology router
(router behind the session router).

-link_ipv6_prefix_length IPV6 prefix length of the link between the session router and the topology router
(router behind the session router).

-link_multi_topology Enable multi-topology (MT) support. (always set to 1)

-link_enable If true (1), enable the link.

9-12 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

-link_te If true (1), enable the traffic engineering on the link.

-link_te_max_bw Maximum bandwidth that can be used on this link expressed as octets per second.

-link_te_max_resv_bw Maximum bandwidth that may be reserved on this link. This may be greater than
the actual max to allow a link to be oversubscribed. It is expressed as octets per
second.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority0 second, not yet reserved at the 0 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 0. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority1 second, not yet reserved at the 1 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 1. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority2 second, not yet reserved at the 2 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 2. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority3 second, not yet reserved at the 3 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 3. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority4 second, not yet reserved at the 4 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 4. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority5 second, not yet reserved at the 5 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 5. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority6 second, not yet reserved at the 6 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 6. The value must be less
than the linke_te_max_resv_bw option.

-link_te_unresv_bw_ If "-line_te" is 1, then this value indicates the amount of bandwidth, in bytes per
priority7 second, not yet reserved at the 7 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 7. The value must be less
than the linke_te_max_resv_bw option.

-link_te_admin_group The administrative group associated with the link, expressed as the decimal
equivalent of 32-bit number. in 4-byte hex format.

-grid_row Define number of rows in a grid.

-grid_col Define number of columns in a grid.

-grid_stub_per_router Define number of stub numbers per router in a grid.

-grid_router_id The IP address of the routes to be advertised per router in a grid.

HLTAPI Commands, Release 2.80 Rev. B 9-13


ISIS APIs
9
-grid_router_id_step The increment to be applied to the network part of grid_router_id between per
node uses.

-grid_link_type Type of links connecting routers in a grid. Choices are: broadcast ptop.

-grid_ip_start The IP address of the first router in a grid.

-grid_ip_pfx_len The number of bits in the network mask of IP address used in a grid.

-grid_ip_step The step between assigned networks in a grid.

-grid_ipv6_start The IPV6 address of the first router in a grid.

-grid_ipv6_pfx_len The number of bits in the network mask of IPV6 address used in a grid.

-grid_ipv6_step The step between assigned networks in a grid.

-grid_start_te_ip If grid_te is true, then this is the TE router ID of the first router in the grid (at
row=0, column=0), in IPv4 format. Routers are assigned individual TE router
IDs by adding the value of the grid_te_ip_step value to each element in the grid,
in a row first manner.

-grid_start_system_id This is the router ID of the first router in the grid (at row = 0, column = 0). It is
specified as a string of 12 hex characters. Range: 000000000000-
FFFFFFFFFFF. Routers are assigned individual router IDs by adding the value
of the grid_system_id_step each element in the grid, in a row first manner.

-grid_connect The session router is connected to a router in the grid at a particular row column
location. This option specifies the row column location.

-grid_te If true (1), enable traffic engineering on the router grid.

-stub_ip_start The IP address of the frist stub network route to be advertised.

-stub_ip_pfx_len The number of bits in the prefixes to be advertised.

-stub_ipv6_start The IPV6 address of the first stub network route to be advertised.

-stub_ipv6_pfx_len The number of bits in the prefixes to be advertised in a IPV6 stub network.

-stub_count The number of prefixes to be advertised for stub network.

-stub_metric The cost metric associated with the stub network route.

-stub_up_down_bit If 1, the route will be distributed down. If 0, the route will be distributed up.

-external_ip_start The IP address of the frist external network route to be advertised.

-external_ip_pfx_len The number of bits in the prefixes to be advertised.

-external_ipv6_start The IPV6 address of the first external network route to be advertised.

-external_ipv6_pfx_len The number of bits in the prefixes to be advertised in a IPV6 external network.

-external_count The number of prefixes to be advertised for external network.

-external_metric The cost metric associated with the external network route.

9-14 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

-external_up_down_bit If 1, the route will be distributed down. If 0, the route will be distributed up.

-router_link_type The type of link between the simulated router and the entry point node and
between all nodes in the grid. Choices are: broadcast and ptop.

-grid_router_metric The cost metric associated with the route advertised by the grid nodes.

-grid_router_ip_pfx_len The number of bits in the prefixes to be advertised by the grid nodes.

-grid_router_up_down_bit This is the up down bit associated with the routes advertised by the grid nodes.
If 1, the route will be distributed down. If 0, the route will be redistributed up.

-grid_router_origin The origin of the routes advertised by the grid nodes. Choices are stub and exter-
nal.

-grid_te_metric The metric associated with the interface that the TE data is advertised on.

-grid_te_admin The administrative group associated with the node in a grid, expressed as the dec-
imal equivalent of 32-bit number.

-grid_te_max_bw The maximum bandwidth to be advertised for all nodes in an ISIS grid.

-grid_te_max_resv_bw The maximum reservable bandwidth to be advertised for all nodes in an ISIS
grid.

-grid_te_unresv_bw_ The unreserved bandwidth for priority0 to be advertised for nodes in a ISIS grid.
priority0

-grid_te_unresv_bw_ The unreserved bandwidth for priority1 to be advertised for nodes in a ISIS grid.
priority1

-grid_te_unresv_bw_ The unreserved bandwidth for priority2 to be advertised for nodes in a ISIS grid.
priority2

-grid_te_unresv_bw_ The unreserved bandwidth for priority3 to be advertised for nodes in a ISIS grid.
priority3

-grid_te_unresv_bw_ The unreserved bandwidth for priority4 to be advertised for nodes in a ISIS grid.
priority4

-grid_te_unresv_bw_ The unreserved bandwidth for priority5 to be advertised for nodes in a ISIS grid.
priority5

-grid_te_unresv_bw_ The unreserved bandwidth for priority6 to be advertised for nodes in a ISIS grid.
priority6

-grid_te_unresv_bw_ The unreserved bandwidth for priority7 to be advertised for nodes in a ISIS grid.
priority7

-grid_system_id_step The value used to increment grid_start_system_id by as each router is assigned a


unique system ID.

-grid_interface_metric The metric for the interface connected to the grid.

-grid_te_ip_step The value used to increment teRouterId by as each router is assigned a unique TE
router ID.

-link_te_metric The metric associated with the interface that the TE data is advertised on.

HLTAPI Commands, Release 2.80 Rev. B 9-15


ISIS APIs
9
-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-router_host_name

-router_pseudonode_num

-router_routing_level

-router_overload_bit

-router_attached_bit

-router_disconnect

-link_external

-link_up_down_bit

-link_te_remote_ip_addr

-link_te_remote_ipv6_addr

-grid_connect_session

-grid_disconnect

-stub_ip_step

-stub_ipv6_step

-stub_connect

-external_metric_type

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On failure, gives detailed information.
elem_handle ISIS topology element handle
version 4 | 6 | 4_6
stub.num_networks number of stub network prefixes
external.num_networks number of external network prefixes
grid.connected_session$session.row row number
grid.connected_session$session.col column number

EXAMPLES See files starting with ISIS_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of ISIS usage. See the ISIS example
in Appendix A, "Example APIs," for one specific example
usage.

SAMPLE INPUT

9-16 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) The stub and external networks cannot be defined inside a grid. They can
added behind a session router.

2) In modfiy mode, if IP address related options are modified, such as, stub_ip_
start, stub_ip_pfx_len, stub_ip_step, then all the related options need to be speci-
fied; otherwise the default settings will be applied.

3) This function does not support the following return values:

key:router.connected_handles <connected_elem_handles>

key:router.$row.$col <router_handle>

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 9-17


ISIS APIs
9

NAME — ::ixia::emulation_isis_control

DESCRIPTION Stop, start or restart the protocol.

SYNOPSIS ::ixia::emulation_isis_control
-mode CHOICES stop start restart
[-handle]
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-advertise]
[-withdraw]
[-flap_routes]
[-flap_count]
[-flap_interval_time]
[-flap_down_time]

ARGUMENTS

-mode Valid choices are:

Value Usage

stop Stop the protocol.


start Start the protocol.
restart Restart the protocol.

-port_handle The port where the IS-IS is to be controlled.

-handle ISIS session handle where the ISIS control action is applied.

-advertise

-withdraw

-flap_routes

-flap_count

-flap_interval_time

-flap_down_time

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with ISIS_ in the Samples subdirectory.


Also see some of the L3VPN, MPLS, and MVPN sample files
for further examples of ISIS usage. See the ISIS example
in Appendix A, "Example APIs," for one specific example
usage.

SAMPLE INPUT

9-18 HLTAPI Commands, Release 2.80 Rev. B


ISIS APIs

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 9-19


ISIS APIs
9

9-20 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs
10
Chapter 10:

This chapter covers the following topics:

• ::ixia::l2tp_config on page 10-2.

• ::ixia::l2tp_control on page 10-11.

• ::ixia::l2tp_stats on page 10-12.

HLTAPI Commands, Release 2.80 Rev. B 10-1


L2TPoX APIs
10

NAME — ::ixia::l2tp_config

DESCRIPTION Configures L2TPoE and L2TPoA sessions and tunnels for the specified test port.
Each port can have upto 32000 sessions and 32000 tunnels.

SYNOPSIS ::ixia::l2tp_config
-port_handle interface
-mode CHOICES lac lns
-l2_encap CHOICES atm_snap atm_vc_mux
atm_snap_ethernet_iiatm_vc_mux_ethernet_ii
ethernet_ii ethernet_ii_vlan
-num_tunnels RANGE 1-32000
-l2tp_src_addr IP
-l2tp_dst_addr IP
[-sessions_per_tunnel RANGE 1-32000]
[-l2tp_src_count RANGE 1-112]
[-l2tp_src_step IP]
[-l2tp_dst_step IP]
[-udp_src_port RANGE 1-65535]
[-udp_dst_port RANGE 1-65535]
[-bearer_capability CHOICES digital analog both]
[-bearer_type CHOICES digital analog]
[-proxy CHOICES 0 1 DEFAULT 1]
[-framing_capability CHOICES sync async both]
[-avp_rx_connect_speed NUMERIC]
[-tunnel_id_start RANGE 1-65535]
[-session_id_start RANGE 1-65535]
[-ppp_client_ip IP]
[-ppp_client_step IP]
[-ppp_server_ip IP]
[-ppp_server_step IPV6 DEFAULT 0::1]
[-vlan_id RANGE 1-4094]
[-vlan_count RANGE 1-4094]
[-vlan_id_step RANGE 1-4094]
[-vlan_user_priority RANGE 0-7]
[-vlan_user_priority_count RANGE 1-8]
[-vlan_user_priority_step RANGE 1-7]
[-vpi]
[-vpi_count RANGE 1-256]
[-vpi_step RANGE 1-256]
[-vci RANGE 32-65535]
[-vci_count RANGE 1-256]
[-vci_step RANGE 1-256]
[-pvc_incr_mode CHOICES vpi vci both]
[-sess_distribution CHOICES next fill]
[-tun_distribution CHOICES next_tunnelfill_
tunnel domain_group]
[-domain_group_map]
[-auth_mode CHOICES none pap chap
pap_or_chap]
[-username]
[-username_wc FLAG]
[-password]
[-password_wc FLAG]
[-wildcard_pound_start RANGE 0-65535]
[-wildcard_pound_end RANGE 0-65535]

10-2 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

[-wildcard_question_start RANGE 0-65535]


[-wildcard_question_end RANGE 0-65535]
[-tun_auth FLAG]
[-hostname]
[-hostname_wc FLAG]
[-secret]
[-secret_wc FLAG]
[-wildcard_bang_start RANGE 0-65535]
[-wildcard_bang_end RANGE 0-65535]
[-wildcard_dollar_start RANGE 0-65535]
[-wildcard_dollar_end RANGE 0-65535]
[-avp_hide FLAG]
[-avp_tx_connect_speed NUMERIC]
[-avp_framing_type NUMERIC]
[-config_req_timeout RANGE 1-65535]
[-attempt_rate RANGE 1-1000]
[-max_outstanding RANGE 2-2000]
[-max_auth_req RANGE 1-65535]
[-auth_req_timeout RANGE 1-65535]
[-max_ipcp_req RANGE 1-65535]
[-ipcp_req_timeout RANGE 1-65535]
[-max_terminate_req RANGE 1-65535]
[-terminate_req_timeout RANGE 1-65535]
[-disconnect_rate RANGE 1-200]
[-echo_req RANGE 0-1]
[-echo_req_interval RANGE 1-65535]
[-echo_rsp RANGE 0-1]
[-enable_magic FLAG]
[-sequence_bit FLAG]
[-length_bit FLAG]
[-offset_bit FLAG]
[-offset_len RANGE 0-255]
[-offset_byte RANGE 0-255]
[-ctrl_chksum FLAG]
[-data_chksum FLAG]
[-hello_req FLAG]
[-hello_interval RANGE 1-65535]
[-redial FLAG]
[-redial_timeout RANGE 1-20]
[-redial_max RANGE 1-20]
[-ctrl_retries RANGE 1-100]
[-init_ctrl_timeout RANGE 1-20]
[-max_ctrl_timeout RANGE 1-20]
[-rws RANGE 1-2048]
[-no_call_timeout RANGE 0-180]
[-ipv6_pool_addr_prefix_len RANGE 0-128 DEFAULT 64]
[-ipv6_pool_prefix ANY DEFAULT ::]
[-ipv6_pool_prefix_len RANGE 0-128 DEFAULT 48]
[-max_configure_req RANGE 1-65535 DEFAULT 10]
[-is_last_subport CHOICES 0 1 DEFAULT 1]

HLTAPI Commands, Release 2.80 Rev. B 10-3


L2TPoX APIs
10
ARGUMENTS

-port_handle The port on which the L2TP sessions and tunnels are to be created.

-mode Whether port will be acting as a LAC or LNS.

-l2_encap Encapsulation type for the ATM and ethernet. Valid choices are:

Value Usage

atm_snap N/A
atm_vc_mux N/A
atm_snap_ethernet_ii N/A
atm_vc_mux_ethernet_ii N/A
ethernet_ii N/A
ethernet_ii_vlan N/A

-num_tunnels Number of tunnels to be configured on the port.

-sessions_per_tunnel Number of sessions per tunnel.

-l2tp_src_addr Base IP address to be used for the local IP interface on the port.

-l2tp_src_count Number of source IP addresses to simulate on the port.

-l2tp_src_step The modifier for the increment -l2tp_src_addr which requires that only one field
contain a non-zero value.

-l2tp_dst_addr Base Destination IP address to be used for setting up tunnel.

-l2tp_dst_step The modifier for the l2tp destination address for multiple destination address.
Only one field contain a non-zero value.

-udp_src_port Source UDP port to be used for tunnels setup.

-udp_dst_port Destination UDP port to be used for tunnels setup.

-bearer_capability Indicates to the DUT the bearer device types for which HLT can accept incoming
calls. One of:

digital: Digital only.

analog: Analog only.

both: Either analog or digital (the two enums are or’d together).

-bearer_type The device type requested by HLT for outgoing calls. One of:

digital: Request digital device capability.

analog: Request analog device capability.

10-4 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

-proxy If true, enables processing of the PROXY related AVPs for LNS operating mode.
One of:

0: false

1: true

DEFAULT 1

-framing_capability Indicates to the DUT the framing types for which HLT can accept incoming
calls. One of:

sync: Synchronous.

async: Asynchronous.

both: Either synchronous or asynchronous (the two enums are or’d together).

DEFAULT sync

-avp_rx_connect_speed The Rx Connect Speed AVP values sent in the ICCN message. Any integer value
may be used.

-tunnel_id_start Starting tunnel ID to be used as local tunnel ID.

-session_id_start Starting session ID to be used as local call ID.

-ppp_client_ip Base IP address of the client IP pool allocated by the LNS. Only valid if the mode
option is set lns.

(DEFAULT = 99.99.0.2 | 0:0:0:0:0:99:99:0:2)

-ppp_client_step Step size to use for allocating client IP addresses. Only valid if the mode option is
set lns.

(DEFAULT = 0.0.0.1 | 0:0:0:0:0:0:0:0:1)

-ppp_server_ip Local IP address of the PPP server. Only valid if the mode is lns.

(DEFAULT = 99.99.0.1 | 0:0:0:0:0:99:99:0:1)

-ppp_server_step The value by which ppp_server_ip is incremented for each session. Only valid if
the mode option is set lns and when -ip_cp is ipv6.

(DEFAULT = 0.0.0.1 | 0:0:0:0:0:0:0:0:1)

-vlan_id Starting VLAN ID, applies to L2TPoE only and if VLAN set to 1.

-vlan_count Number of VLAN IDs, applies to L2TPoE only and if VLAN set to 1.

-vlan_id_step Step value applied to VLAN ID, applies to L2TPoE only and if VLAN = 1.

-vlan_user_priority VLAN user priority, applies to L2TPoE only and if VLAN = 1.

-vlan_user_priority_count Number of VLAN Priority, applies to L2TPoE only and if VLAN = 1.

-vlan_user_priority_step Step value applied to VLAN Priority.

-vpi Starting VPI for PPPoA and PPPoEoA.

HLTAPI Commands, Release 2.80 Rev. B 10-5


L2TPoX APIs
10
-vpi_count Number of VPIs.

-vpi_step Step value applied to VPI, PPPoA and PPPoEoA only.

-vci Starting VCI for PPPoA and PPPoEoA.

-vci_count Number of VCIs.

-vci_step Step value applied to VCI, PPPoA and PPPoEoA only.

-pvc_incr_mode Valid choices are:

Value Usage

vpi Increment VPI first then VCI (all based on the


info configured).
vci Increment first VCI then VPI.
both Increment both VPI and VCI at the same time.

-sess_distribution Sessions are distributed by first filling one tunnel with sessions per tunnel (or one
session per tunnel), then with a round robin between the tunnels. Valid choices
are:

Value Usage

next Sessions are filled in round robin fashion for


all tunnels
fill First sessions are allocated to single tunnel

-tun_distribution Tunnel allocation algorithm. Tunnels can be allocated using two mechanisms at
this time (this may be extended in the future by adding new options, or vendors
can have their own allocation algorithms). Valid choices are:

Value Usage

next_tunnelfill_tunnel In the mode, l2tp_dst_ip specified above is


used as the tunnel destination point. e.g.:
l2tp_src_addr = 10.1.1.1, l2tp_dst_addr =
10.1.1.2, l2tp_src_count = 4, l2tp_src_step
= 0.0.1.0, l2tp_dst_step = 0.0.1.0. The tun-
nels will be created with src/dest as: 10.1.1.1
/ 10.1.1.2, 10.1.2.1 / 10.1.2.2, 10.1.3.1 /
10.1.3.2, 10.1.4.1 / 10.1.4.2.
domain_group_map In this mode tunnel allocation algorithm
depends on the domain group to LNS IP
mapping described as a part of the -domain_
group_map option and please see the exam-
ple there.

-domain_group_map List of domain group to LNS IP mapping. Each domain group can have thou-
sands of domains. With the help of domain group it is very easy to map thou-
sands of domains to one or more LNS IP addresses. Each domain group is
defined as: { { domain_name } {lnsIP1 lnsIP2} }.

Where domain_name is defined as:

{name wc wc_start wc_end <wc_repeat (default 1) >}

10-6 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

- name <string> : name to be used for the domain(s).

- wc {1|0} : enables wildcard substitution in the name field. (default 0)

- wc_start <0-65535> : starting value for wildcard symbol for the name (%) sub-
stitution

- wc_end <0-65535> : ending value for wildcard symbol for the name (%) substi-
tution

- lnsIP <a.b.c.d> : LNS IP address list to be used for this domain.

e.g. Say you want to setup 20 domains. Out of which cisco1.com to cisco10.com
going to 192.1.1.1 & 192.1.1.2 and cisco11.com to cisco20.com going to
192.1.2.1. Also assume number of sessions per tunnel is 5. Your domain group
list will look like:

{ { {cisco%.com 1 1 10} {192.1.1.1 192.1.1.2} }

{ {cisco%.com 1 11 20} {192.1.2.1} } }

Tunnel Allocation will look like this:

Sessions 1-5, tunnel1 dst 192.1.1.1;

Sessions 5-10, tunnel2 dst 192.1.1.2;

Sessions 11-15, tunnel3 dst 192.1.2.1;

Sessions 16-20, tunnel4 dst 192.1.2.1.

-auth_mode Authentication mode. Valid choices are:

Value Usage

none N/A
pap N/A
chap N/A
pap_or_chap Accept both pap and chap offered by DUT.

-username Username, PAP, and CHAP only.

-username_wc Enables wildcard substitution in the username field.

-password Password, PAP, and CHAP only.

-password_wc Enables wildcard substituation in the password field.

-wildcard_pound_start Starting value for wildcard symbol 1 (\#) substitution. It is also valid to use # as
the substitution symbol.

-wildcard_pound_end Ending value for wildcard symbol 1 (\#) substitution. It is also valid to use # as
the substitution symbol.

-wildcard_question_start Starting value for wildcard symbol 2 (?) substitution.

-wildcard_question_end Ending value for wildcard symbol 2 (?) substitution.

-tun_auth Enable tunnel authentication during the tunnel setup.

HLTAPI Commands, Release 2.80 Rev. B 10-7


L2TPoX APIs
10
-hostname Hostname to be used during the tunnel setup. Note that a range of hostname can
be setup using the autoincrement feature. See option -hostname_wc.

-hostname_wc Enables wildcard substitution in the hostname field.

-secret Secret to be used during the tunnel setup. Note that a range of secret can be setup
using the autoincrement feature. See option -secret_wc.

-secret_wc Enables wildcard substitution in the secret field.

-wildcard_bang_start Starting value for wildcard symbol 1 (!) substitution.

-wildcard_bang_end Ending value for wildcard symbol 1 (!) substitution.

-wildcard_dollar_start Starting value for wildcard symbol 2 ($) substitution.

-wildcard_dollar_end Ending value for wildcard symbol 2 ($) substitution.

-avp_hide Enable hiding of the AVPs in the L2TP control messages.

-avp_tx_connect_speed AVP value to be sent as tx connect speed

-avp_framing_type AVP value to be sent as framing type

-config_req_timeout Specifies the timeout value in seconds for acknowledgement of a Configure


Request or Terminate Request.

-attempt_rate Specifies the rate in attempts/second at which attempts are made to bring up ses-
sions.

-max_outstanding Specifies the maximum number of sessions in progress, which includes the ses-
sions in the process of either coming up or disconnecting, at one time.

-max_auth_req Specifies the maximum number of Authentication requests that can be sent with-
out getting an authentication response from the DUT.

-auth_req_timeout Specifies the timeout value in seconds for acknowledgement of an authentication


Request.

-max_ipcp_req Specifies the maximum number of IPCP configure requests that can be sent with-
out getting an ack from the DUT.

-ipcp_req_timeout Specifies the timeout value in seconds for acknowledgement of an IPCP config-
ure request.

-max_terminate_req Specifies the maximum number of Terminate Requests that can be sent without
acknowledgement.

-terminate_req_timeout Specifies the timeout value in seconds for acknowledgement of a Terminate


Request.

-disconnect_rate Specifies the rate in disconnects/s at which sessions are disconnected.

-echo_req When set to 1, enables Echo Requests, when set to 0, disables Echo Requests.

-echo_req_interval Specifies the time interval in seconds for sending LCP echo requests. Valid only
if -echo_req is set to 1.

10-8 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

-echo_rsp When set to 0, disabled sending of the echo Responses, when set to 1, enables
Echo Replies. Default enabled. This can be used to do some negative testing.

-enable_magic Enables or disables negotiaton of magic numbers.

-sequence_bit Enable sequence numbering for the L2TP data messages.

-length_bit Enable sedning of the length field in the L2TP data messages.

-offset_bit Enable sending of the offset field in the L2TP data messages.

-offset_len If the -offset_bit is set to 1, this option controls number of bytes (specified by the
-offset_byte option) to be inserted in after the L2TP data message header.

-offset_byte This is the value inserted in the offset field, if enabled by -offset_bit and -offset_
len option.

-ctrl_chksum Enable sending the valid UDP checksum in the L2TP control messages.

-data_chksum Enable sending the valid UDP checksum in the L2TP data messages.

-hello_req Enable sending of the hello request.

-hello_interval Time interval between sending of the hello request. Only applicable if the -hello_
req is set to 1.

-redial Enable redialling of the session if the session drops after establishment due to
any reason other than operator initiated teardown.

-redial_timeout Number of seconds to wait between successive redial attempts.

-redial_max Number of times to redial before declaring it failure.

-ctrl_retries Number of times to retry a L2TP control message.

-init_ctrl_timeout Initial timeout for L2TP control message.

-max_ctrl_timeout Maximum timeout for L2TP control message.

-rws Receive window size.

-no_call_timeout Number of seconds to wait before tearing down the tunnels when the last sesision
on the tunnel goes down.

-ipv6_pool_addr_prefix_ The IPv6 address prefix length.


len
(DEFAULT = 64)

-ipv6_pool_prefix The IPv6 pool prefix.

(DEFAULT = ::)

-ipv6_pool_prefix_len The IPv6 pool prefix length. Subtracting this from the address prefix length pro-
vides the size of the PPP IP pool.

(DEFAULT = 48)

HLTAPI Commands, Release 2.80 Rev. B 10-9


L2TPoX APIs
10
-max_configure_req The number of retries to be used for LCP negotiation.

Any integer value may be used.

(DEFAULT = 10)

-is_last_subport When being used it will add a subport to the configuration. The routine needs to
know when this is the last subport being done in the configuration, which will
cause the configurations to be written to hardware. This can only occur once
within IxAccess. The choice are 0 and 1 with 1 being the default.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


handles <l2tp handles>
log When status is failure, contains more informa-
tion

EXAMPLES Examples for L2TP will be coming in the next release.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

10-10 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

NAME — ::ixia::l2tp_control

DESCRIPTION Start, stop or restart the l2tpox sessions and tunnels.

SYNOPSIS ::ixia::l2tp_control
-handle interface
-action CHOICES connect disconnect reset clear pause
resume retry

ARGUMENTS

-handle The port where the L2TPoX sessions are to be created.

-action Action to be executed. Valid choices are:

Value Usage
connect Brings up configured sessions.
disconnect Tears down established sessions.
reset Aborts all L2TPoX sessions and resets the
L2TP emulation engine on the specified
device. A session is not notified of termina-
tion, and a Terminate Request packet is not
sent to the peers.
clear Clears the status and statistics.
pause Pauses all the sessions.
resume Resumes all the sessions.
retry Attempts to connect sessions that have previ-
ously failed to establish.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.

EXAMPLES Examples for L2TP will be coming in the next release.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) Clear action has not been implemented yet.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 10-11


L2TPoX APIs
10

NAME — ::ixia::l2tp_stats

DESCRIPTION Retrieves statistics for the L2TPoX sessions configured on the

specified test port.

SYNOPSIS ::ixia::l2tp_stats
-handle interface
-mode CHOICES aggregate session tunnel
[-csv_filename

ARGUMENTS

-handle The port for which the L2TPoX sessions statistics needs to be retrieved.

-mode Specifies statistics retrieval mode as either aggregate for all configured sessions
or on a per session basis. Valid choices are:

Value Usage

aggregate Retrieve statistics for all the sessions.


session Retrieve statistics for each individual session.
tunnel Retrieve statistics for each individual tunnel.

-csv_filename The .csv filename that can be created under HLT library install folder and where
per session stats can be found.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.
aggregate.idle
aggregate.connecting
aggregate.connected
aggregate.disconnecting
aggregate.atm_mode
aggregate.num_sessions
aggregate.connect_attempts
aggregate.connect_success
aggregate.disconnect_success
aggregate.sessions_up
aggregate.sessions_down
aggregate.disconnect_failed
aggregate.min_setup_time
aggregate.max_setup_time
aggregate.avg_setup_time
aggregate.success_setup_rate
aggregate.lcp_cfg_req_rx
aggregate.lcp_cfg_req_tx

10-12 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

Key Value
aggregate.lcp_cfg_rej_rx
aggregate.lcp_cfg_rej_tx
aggregate.lcp_cfg_ack_rx
aggregate.lcp_cfg_ack_tx
aggregate.lcp_cfg_nak_rx
aggregate.lcp_cfg_nak_tx
aggregate.term_req_rx
aggregate.term_req_tx
aggregate.term_ack_rx
aggregate.term_ack_tx
aggregate.echo_req_rx
aggregate.echo_rsp_tx
aggregate.zlb_tx
aggregate.sccrp_tx
aggregate.scccn_tx
aggregate.sccrp_tx
aggregate.stopccn_tx
aggregate.hello_tx
aggregate.icrq_tx
aggregate.icrp_tx
aggregate.iccn_tx
aggregate.cdn_tx
aggregate.wen_tx WAN-Error-Notify
aggregate.sli_tx Set-Link-Info
aggregate.zlb_rx
aggregate.sccrp_rx
aggregate.scccn_rx
aggregate.sccrp_rx
aggregate.stopccn_rx
aggregate.hello_rx
aggregate.icrq_rx
aggregate.icrp_rx
aggregate.iccn_rx
aggregate.cdn_rx
aggregate.wen_rx WAN-Error-Notify
aggregate.sli_rx Set-Link-Info
aggregate.out_of_order_rx Number of packet rx out of sequence
aggregate.out_of_win_rx Number of packets rx outside window
aggregate.duplicate_rx Number of duplicate packet received
aggregate.in_order_rx Number of in order packet received
aggregate.retransmits Number of retransmitted messages
aggregate.tx_pkt_acked Number of tx packets acked by peer
session.<session ID>.icrq_tx

HLTAPI Commands, Release 2.80 Rev. B 10-13


L2TPoX APIs
10

Key Value
session.<session ID>.icrp_tx
session.<session ID>.iccn_rx
session.<session ID>.cdn_tx
session.<session ID>.icrq_rx
session.<session ID>.icrp_rx
session.<session ID>.iccn_tx
session.<session ID>.cdn_rx
session.<session ID>.tx_pkt_acked Num of tx packet ack by peer
session.<session ID>.lcp_cfg_req_rx
session.<session ID>.lcp_cfg_req_tx
session.<session ID>.lcp_cfg_rej_rx
session.<session ID>.lcp_cfg_rej_tx
session.<session ID>.lcp_cfg_ack_rx
session.<session ID>.lcp_cfg_ack_tx
session.<session ID>.lcp_cfg_nak_rx
session.<session ID>.lcp_cfg_nak_tx
session.<session ID>.pap_auth_req_tx
session.<session ID>.pap_auth_ack_rx
session.<session ID>.pap_auth_nak_rx
session.<session ID>.chap_auth_chal_
rx
session.<session ID>.chap_auth_rsp_
tx
session.<session ID>.chap_auth_
succ_rx
session.<session ID>.chap_auth_fail_
rx
session.<session ID>.ipcp_cfg_req_rx
session.<session ID>.ipcp_cfg_req_tx
session.<session ID>.ipcp_cfg_ack_rx
session.<session ID>.ipcp_cfg_ack_tx
session.<session ID>.ipcp_cfg_nak_rx
session.<session ID>.ipcp_cfg_nak_tx
session.<session ID>.ipcp_cfg_rej_rx
session.<session ID>.ipcp_cfg_rej_tx
session.<session ID>.term_req_rx
session.<session ID>.term_req_tx
session.<session ID>.term_ack_rx
session.<session ID>.term_ack_tx
session.<session ID>.echo_req_rx
session.<session ID>.echo_rsp_tx
tunnel.<tunnel ID>.zlb_tx
tunnel.<tunnel ID>.sccrp_tx
tunnel.<tunnel ID>.scccn_tx

10-14 HLTAPI Commands, Release 2.80 Rev. B


L2TPoX APIs

Key Value
tunnel.<tunnel ID>.sccrp_tx
tunnel.<tunnel ID>.stopccn_tx
tunnel.<tunnel ID>.hello_tx
tunnel.<tunnel ID>.icrq_tx
tunnel.<tunnel ID>.icrp_tx
tunnel.<tunnel ID>.iccn_tx
tunnel.<tunnel ID>.cdn_tx
tunnel.<tunnel ID>.wen_tx WAN-Error-Notify
tunnel.<tunnel ID>.sli_tx Set-Link-Info
tunnel.<tunnel ID>.zlb_rx
tunnel.<tunnel ID>.sccrp_rx
tunnel.<tunnel ID>.scccn_rx
tunnel.<tunnel ID>.sccrp_rx
tunnel.<tunnel ID>.stopccn_rx
tunnel.<tunnel ID>.hello_rx
tunnel.<tunnel ID>.icrq_rx
tunnel.<tunnel ID>.icrp_rx
tunnel.<tunnel ID>.iccn_rx
tunnel.<tunnel ID>.cdn_rx
tunnel.<tunnel ID>.wen_rx WAN-Error-Notify
tunnel.<tunnel ID>.sli_rx Set-Link-Info
tunnel.<tunnel ID>.out_of_order_rx Number of pkt rx out of seq
tunnel.<tunnel ID>.out_of_win_rx Number of pkt rx outside window
tunnel.<tunnel ID>.duplicate_rx Number of duplicate pkt received
tunnel.<tunnel ID>.in_order_rx Number of in order pkt received
tunnel.<tunnel ID>.retransmits Number of retransmitted messages
tunnel.<tunnel ID>.tx_pkt_acked Number of tx pkt acked by peer

EXAMPLES Examples for L2TP will be coming in the the next release.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) Session ID will be local call ID, and tunnel ID will be the local tunnel ID.

2) Per session and per tunnel stats retrieval can take long time.

3) Following stats have not been implemented yet:

aggregate.disconnecting

aggregate.connect_attempts

aggregate.disconnect_success

HLTAPI Commands, Release 2.80 Rev. B 10-15


L2TPoX APIs
10
aggregate.sessions_down

aggregate.disconnect_failed

SEE ALSO

10-16 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs
11
Chapter 11:

This chapter covers the following topics:

• ::ixia::l2tpv3_dynamic_cc_config on page 11-2.

• ::ixia::l2tpv3_session_config on page 11-8.

• ::ixia::l2tpv3_control on page 11-14.

• ::ixia::l2tpv3_stats on page 11-15.

HLTAPI Commands, Release 2.80 Rev. B 11-1


L2TPv3 APIs
11

NAME — ::ixia::l2tpv3_dynamic_cc_config

DESCRIPTION Creates a control connection group. A control connection group has one or more
control connections and there can be one or more connection groups.

SYNOPSIS ::ixia::l2tpv3_dynamic_cc_config
-action CHOICES create delete modify
[-cc_handle]
[-port_handle ^[0-9]+/[0-9]+/[0-9]+$]
[-cc_src_ip IP]
[-cc_ip_mode CHOICES fixed increment]
[-cc_src_ip_step IP]
[-cc_ip_count NUMERIC]
[-cc_src_ip_subnet_mask IP]
[-cc_dst_ip IP]
[-cc_dst_ip_step IP]
[-gateway_ip IP]
[-gateway_ip_step IP]
[-cc_id_start NUMERIC]
[-router_identification_mode CHOICES hostname routerid
both DEFAULT routerid]
[-hostname ALPHANUM]
[-hostname_suffix_start NUMERIC DEFAULT 1]
[-router_id_min RANGE 1-0xFFFFFFFF DEFAULT 1]
[-cookie_size CHOICES 0 4 8 DEFAULT 0]
[-retransmit_retries RANGE 1-1000 DEFAULT 15]
[-retransmit_timeout_max RANGE 1-8 DEFAULT 8]
[-retransmit_timeout_min RANGE 1-8 DEFAULT 1]
[-hidden CHOICES 0 1 DEFAULT 0]
[-authentication CHOICES 0 1 DEFAULT 0]
[-password ALPHANUM DEFAULT "LAB"]
[-hello_interval RANGE 0-1000]
[-base_unconnected_ip IPDEFAULT 0.0.0.0]
[-cc_src_mac]
[-enable_l2_sublayer CHOICES 0 1 DEFAULT 0]
[-enable_unconnected_intf CHOICES 0 1 DEFAULT 0]
[-l2_specific_sublayer CHOICES no_sublayer
ietf_sublayer atm_sublayer]
[-l2tp_variant CHOICES ietf_variant
cisco_variant]
[-message_digest CHOICES no_digest md5_digest
sha1_digest]
[-no_call_timeout NUMERIC DEFAULT 5]
[-num_cell_packed_rx RANGE 1-25 DEFAULT 1]
[-num_cell_packed_tx RANGE 1-4 DEFAULT 1]
[-peer_host_name ANY DEFAULt "IxiaLNS"]
[-peer_router_id NUMERIC DEFAULT 200]
[-redial CHOICES 0 1 DEFAULT 1]
[-redial_max NUMERIC DEFAULT 20]
[-redial_timeout NUMERIC DEFAULT 10]
[-rws RANGE 1-2048 DEFAULT 10]
[-secret_increment_mode CHOICES local_incr
peer_incr]
[-tunnel_setup_role CHOICES active_role
passive_role DEFAULT active_role]
[-tunnel_id_start RANGE 1-65535 DEFAULT 1]

11-2 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

[-cc_src_ip_skip_broadcast CHOICES 0 1]
[-cc_dst_ip_skip_broadcast CHOICES 0 1]
[-cc_dst_ip_subnet_mask IP]
[-cookie NUMERIC]
[-gateway_ip_skip_broadcast CHOICES 0 1]
[-gateway_ip_subnet_mask IP]
[-retransmit_initial_retries RANGE 1-1000]

ARGUMENTS

-action This option defines the action to be taken. Valid choices are:

Value Usage

create Creates a Control Connection group, requires


the use of -port_handle.
delete Deletes a Control Connection group, requires
the use of -cc_handle.
modify Modifies a Control Connection group,
requires the use of -cc_handle.

-cc_handle If -action is delete or modify this option is required to specify the existing control
group. Ignored for other values of -action.

-port_handle If -action is create this option is required to specify the port handle on which the
CC group is configured. Ignored for other values of -action.

-cc_src_ip Source address of the emulated PE router. If cc_src_ip_mode is increment, then


this marks the starting address for the range.

-cc_ip_mode Configure the source IP address to be fixed or increment through a range of val-
ues.

(DEFAULT = fixed)

-cc_src_ip_step This is the value by which src_ip address will be incremented. This is used only
when cc_src_ip_mode is set to "increment".

(DEFAULT = 0.0.0.1)

-cc_ip_count If -cc_ip_mode is set to increment, this option is required to specify the number
of values in IP address range. The option is ignored if -cc_src_ip is set to fixed.
Src/Dst and Gateway IP addresses will have the same number of addresses in the
range.

-cc_src_ip_subnet_mask This option specifies the subnet mask for the source address of the emulated PE
router.

(DEFAULT = 255.255.255.0)

-cc_dst_ip Destination IP address for the for the CC. If a range is specified, the range must
have the same number of IP addresses as the src_ip range.

-cc_dst_ip_step This is the value by which dst_ip address would be incremented. This is used
only when cc_dst_ip_mode is set to "increment".

(DEFAULT = 0.0.0.1)

HLTAPI Commands, Release 2.80 Rev. B 11-3


L2TPv3 APIs
11
-gateway_ip This is the IP address of the next-hop interface for the emulated PE router. The
layer2 header information to next-hop must be discovered from the gateway-ip-
addr through ARP (or similar) mechanism.

-gateway_ip_step This is the value by which gateway_ip address will be incremented. This is used
only when -gateway_ip_mode is set to "increment".

(DEFAULT = 0.0.0.1)

-cc_id_start This is the control connection ID assigned to the connection. If the user doesn't
specify the cc ID to use, a randomly generated number will be used. Specifying
the cc_id_start will allow the user to close a specific control connection at any
time.

-router_identification_ Specifies the method used to identify the LCEE (emulated router) during the con-
mode trol connection. This determines if the "Hostname AVP" or "Router-ID AVP" or
both AVPs are used during control connection establishment.

(DEFAULT = routerid)

-hostname Hostname of the emulated PE. This is used in "Hostname AVP" during the con-
trol connection establishment. The actual hostname for the emulated PE would
be hostname followed by the hostname_suffix_start. The suffix is incremented
by one for each emulated router in case of multiple emulated PEs.

-hostname_suffix_start The actual hostname for the emulated PE would be hostname followed by the
hostname_suffix_start. The suffix is incremented by one for each emulated router
in case of multiple emulated PEs.

(DEFAULT = 1)

-router_id_min If -router_identification_mode is router_id or both this option is required to spec-


ify the ID of the emulated PE. Used in "Router-ID AVP" during cc establish-
ment. If multiple PEs are created, the router_id is incremented by one for each
PE.

(DEFAULT = 1)

-cookie_size Configures the size of the cookie to be used in the L2TP headers.

(DEFAULT = 0)

-retransmit_retries Specifies how many retransmission cycles occur before determining that the peer
provider edge (PE) router does not respond.

(DEFAULT = 15)

-retransmit_timeout_max Specifies the maximum retransmission interval (in seconds) for resending control
packets.

(DEFAULT = 8)

-retransmit_timeout_min Specifies the minimum retransmission interval (in seconds) for resending control
packets.

(DEFAULT = 1)

-hidden Enables L2TP AVP hiding.

11-4 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

-authentication Enables L2TPv3 authentication.

-password Password used for AVP hiding.

(DEFAULT = LAB)

-hello_interval Number of seconds a PE router at one end of an L2TPv3 control channel waits
before sending a hello keepalive packet to its peer PE router.

(DEFAULT = 60)

-base_unconnected_ip This option specifies the ip address of the emulated CE behind the PE specified
by the -cc_src_ip option.

(DEFAULT 0.0.0.0)

-cc_src_mac MAC address to be set on the emulated PE router's interface.

-enable_l2_sublayer Enable l2 specific sublayer or not.

(DEFAULT = 0)

-enable_unconnected_intf This option is used to enable the emulation of a CE router behind the PE router
specified by the -cc_src_ip option.

(DEFAULT = 0)

-l2tp_variant Specifies the variant of L2TPv3 to be used.

(DEFAULT = ietf_variant)

-message_digest Specifies the L2TPv3 message digest algorithm.

(DEFAULT = no_digest)

-no_call_timeout The amount of time, in seconds, that IxAccess waits to receive a L2TP request
for connection. If it does not receive a call within this time, IxAccess ends the
test. An integer value may be used.

(DEFAULT = 5)

-num_cell_packed_rx The maximum number of ATM cells that can be packed in one receive data
packet. Valid values are from 1 to 25. Note that if the value is set to one, there is
no need to send the AVP and it will not be sent in the ICRQ and ICRP messages.

(DEFAULT = 1)

-num_cell_packed_tx The maximum number of ATM cells that can be packed in one transmit data
packet. Valid values are from 1 to 4. The size of a transmitted packet is calcu-
lated as: 32 + 48 * (number of cells packed ñ 1).

(DEFAULT = 1)

-peer_host_name The peer host name, used during tunnel establishment.

(DEFAULT = IxiaLNS)

-peer_router_id The router ID of the peer PE router.

(DEFAULT = 200)

HLTAPI Commands, Release 2.80 Rev. B 11-5


L2TPv3 APIs
11
-redial If true and if the L2TP session goes down, IxAccess will redial the DUT to rees-
tablish the session.

(DEFAULT = 1)

-redial_max The maximum number of attempts IxAccess will make to redial the DUT to rees-
tablish a downed L2TP link. Any integer value is valid.

(DEFAULT = 20)

-redial_timeout The number of seconds that can elapse between attempts to redial the DUT to
reestablish a downed L2TP link. Any integer value is valid.

(DEFAULT = 10)

-rws 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 that it is waiting for acknowledgements for;
at that point, it must wait for one or more of the messages to be acknowledged
before it can send any new control messages. Valid values are from 1 to 2048.

(DEFAULT = 10)

-secret_increment_mode The means by which secret should be incremented.

(DEFAULT = local_incr)

-tunnel_setup_role Specifies the L2TPv3 tunnel setup mode.

(DEFAULT = active_role)

-tunnel_id_start The first tunnel ID used. Any ID in the range from 1 to 65535 may be used.

(DEFAULT = 1)

-cc_src_ip_skip_broadcast This flag is applicable only when -cc_src_ip_mode is set to "increment". If this
flag is set, src_ip will skip the network or subnet broadcast address in the speci-
fied address range.

-cc_dst_ip_skip_broadcast This flag is applicable only when -cc_dst_ip_mode is set to "increment". If this
flag is set, dst_ip will skip the network or subnet broadcast address in the speci-
fied address range.

-cc_dst_ip_subnet_mask If -cc_dst_ip_skip_broadcast is set this option is required to specify the subnet


mask to determine the subnet broadcast address.

-fr_dlci_count Specifies the number of dlci values in the range.

-gateway_ip_skip_ This flag is applicable only when -gateway_ip_mode is set to "increment". If this
broadcast flag is set, gateway_ip will skip the network or subnet broadcast address in the
specified address range.

-gateway_ip_subnet_mask If -gateway_ip_skip_broadcast is set this option is required to specify the subnet


mask to determine the subnet broadcast address.

-cookie If -cookie_size is non-zero this option is required to specify the value of the
cookie. The size of the cookie is determined by -cookie_size. If the specified
value is greater than the size of the cookie, an error is returned.

11-6 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

-retransmit_initial_retries Specifies how many SCCRQs are re-sent before giving up on the session.
(DEFAULT = 2)

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, contains more information
handle Control connection group handle

EXAMPLES See files starting with L2TPV3_ in the Samples subdirectory.


See the L2TPv3 example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES 1. Due to IxAccess limitations, only one control connection group per port can be
created.

2. Current parser does not support hex. The following options have RANGE 0-
0xFFFFFFFF. It is changed to NUMERIC.

-router_id_min

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 11-7


L2TPv3 APIs
11

NAME — ::ixia::l2tpv3_session_config

DESCRIPTION Creates a session group, or group of sessions, over the given control connection
group. Each session group represents one or more sessions. These sessions are
created over each control connection.

SYNOPSIS ::ixia::l2tpv3_session_config
-action CHOICES create delete modify
[-session_handle]
[-cc_handle]
[-vcid_start NUMERIC]
[-vcid_mode CHOICES fixed increment
DEFAULT increment]
[-vcid_step NUMERIC DEFAULT 1]
[-num_sessions NUMERIC]
[-session_id_start RANGE 1-65535 DEFAULT 10000]
[-ip_tos CHOICES reflect fixed
DEFAULT reflect]
[-ip_tos_value RANGE 0-255 DEFAULT 0]
[-sequencing_transmit CHOICES 0 1 DEFAULT 0]
[-pw_type CHOICES ethernet dot1q_ethernet
frame_relay atm]
[-mac_src MAC]
[-mac_src_step MAC]
[-mac_dst MAC]
[-mac_dst_step MAC]
[-vlan_id RANGE 1-4094]
[-vlan_id_step RANGE 1-4094]
[-fr_dlci_value NUMERIC]
[-fr_dlci_step NUMERIC]
[-vpi RANGE 0-255]
[-vci RANGE 32-65535]
[-vpi_step NUMERIC]
[-vci_step NUMERIC]
[-pvc_incr_mode CHOICES vpi vci both]
[-qos_rate_mode CHOICES percent pps bps
DEFAULT bps]
[-qos_rate NUMERIC]
[-qos_atm_clp CHOICES 0 1 DEFAULT 0]
[-qos_atm_efci CHOICES 0 1 DEFAULT 0]
[-qos_atm_cr CHOICES 0 1 DEFAULT 0]
[-qos_fr_cr CHOICES 0 1 DEFAULT 0]
[-qos_fr_de CHOICES 0 1 DEFAULT 0]
[-qos_fr_becn CHOICES 0 1 DEFAULT 0]
[-qos_fr_fecn CHOICES 0 1 DEFAULT 0]
[-qos_ipv6_flow_label RANGE 0-1048575 DEFAULT 0]
[-qos_ipv6_traffic_class RANGE 0-255 DEFAULT 0]
[-ip_dfbit CHOICES 0 1]
[-ip_ttl RANGE 0-255]
[-sequencing_receive CHOICES 0 1]
[-vlan_priority RANGE 0-7]
[-fr_address_size CHOICES 2 3 4]

11-8 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

ARGUMENTS

-action This option defines the action to be taken. Valid choices are:

Value Usage

create Creates a session group, requires the use of -


cc_handle.
delete Deletes a session group, requires the use of -
session_handle.
modify Modifies a session group, requires the use of
-session_handle.

-session_handle If -action is delete or modify this option is required to specify the existing session
group. Ignored for other values of -action.

-cc_handle If -action is create this option is required to specify the control group over which
to create the sessions. Ignored for other values of -action.

-vcid_start VCID of the session. Also referred to as remote_end_id. Included in


remote_end_id AVP.

-vcid_mode Configure a single VCID (fixed - 1 session) or a range of VCIDs (increment).


(DEFAULT = increment)

-vcid_step Specify the value by which vcid increments when -vcid_mode is set to incre-
ment.

(DEFAULT = 1)

-num_sessions Number of sessions to be created on the control connection in this session group.

-session_id_start Specify the starting value of session-id to be used for the sessions.

(DEFAULT = 10000)

-ip_tos If this option is set to reflect, the TOS field in CC IP header will reflect the ip-tos
value of the payload IP header. If it is set to fixed, the TOS field in CC IP header
will have the value specified by -ip_tos_value option.

(DEFAULT = reflect)

-ip_tos_value This option is required if -ip_tos is set to fixed. Specifies the value to be used for
IP TOS bits in CC IP header. The option is ignored if -ip_tos is set to reflect.

The combined value for the precedence, delay, throughput,reliability, reserved


and cost bits.

(DEFAULT = 0)

-sequencing_transmit Enables "sequencing" on the transmit side.

-pw_type Specifies the type of attachement circuit.

-mac_src Specifies the source mac address used by the attachement circuit. The
num_sessions and cc_ip_count (from CC group) parameters decide the number
of source mac addresses. Number of source_mac addresses is (cc_ip_count *
num_sessions).

HLTAPI Commands, Release 2.80 Rev. B 11-9


L2TPv3 APIs
11
-mac_src_step Specifies the step value for source mac address. This parameter is used only
when (num_sessions * cc_ip_count) > 1. It is ignored otherwise.

(DEFAULT = 0000.0000.0001)

-mac_dst Specifies the destination mac address used by the attachement circuit. The
num_sessions and cc_ip_count (from CC group) parameters decide the number
of dst mac addresses. Number of dst mac addresses in the range is (cc_ip_count *
num_sessions).

-mac_dst_step Specifies the step value for destination mac address. This parameter is used only
when (num_sessions * cc_ip_count) > 1. It is ignored otherwise.

(DEFAULT = 0000.0000.0001)

-vlan_id Specifies the VLAN ID of the attached circuit. The num_sessions and
cc_ip_count (from CC group) parameters decide the number of VLAN IDs to be
used. Number of VLAN IDs is (cc_ip_count * num_sessions).

-vlan_id_step This is the step value for VLAN ID. This parameter is used only when
(num_sessions * cc_ip_count) > 1. It is ignored otherwise.

(DEFAULT = 1)

-fr_dlci_value Specifies the value of DLCI to be used by the frame relay attachement circuit.
The num_sessions and cc_ip_count (from CC group) parameters decide the num-
ber of DLCIs to be used. Number of DLCIs is (cc_ip_count * num_sessions).

-fr_dlci_step Specifies the step-size for DLCI. This parameter is used only when
(num_sessions * cc_ip_count) > 1. It is ignored otherwise.

(DEFAULT = 1)

-vpi Specifies the VPI value for the ATM attachment circuit. The num_sessions and
cc_ip_count (from CC group) parameters decide the number of VPI values to be
used. Number of VPI values is (cc_ip_count * num_sessions).

-vci Specifies the VCI value for the ATM attachment circuit. The num_sessions and
cc_ip_count (from CC group) parameters decide the number of VCI values to be
used. Number of VCI values is (cc_ip_count * num_sessions).

-vpi_step Specifies the step value for VPI. This parameter is used only when
(num_sessions * cc_ip_count) > 1. It is ignored otherwise.

(DEFAULT = 1)

-vci_step Specifies the step value for VCI. This parameter is used only when
(num_sessions * cc_ip_count) > 1. It is ignored otherwise.

(DEFAULT = 1)

-pvc_incr_mode The mode by which the vci and vpi are incremented for each session.

11-10 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

-qos_rate_mode The means by which line rates will be specified. Valid choices are:

Value Usage

percent The line rate is expressed in percentage of


maximum
line rate. N/A
pps The line rate is expressed in packets per sec-
ond.
bps The line rate is expressed in bits per second.
(DEFAULT = bps) N/A

-qos_rate This is the data rate setting expressed. Default values are:

5000000 - when -qos_rate_mode bps

1000 - when -qos_rate_mode pps

100 - when -qos_rate_mode percentage

This rate represents the aggregated rate for all sessions belonging to the group.

-qos_atm_clp The setting of the congestion loss priority bit.

Valid only if pw_type atm.

(DEFAULT = 0)

-qos_atm_efci The setting of the explicit forward congestion indication bit.

Valid only if pw_type atm.

(DEFAULT = 0)

-qos_atm_cr The setting of the command response bit. Valid only if pw_type atm.

(DEFAULT = 0)

-qos_fr_cr The setting of the frame relay command response bit.

Valid only if pw_type frame_relay.

(DEFAULT = 0)

-qos_fr_de The setting of the frame relay discard eligibility bit.

Valid only if pw_type frame_relay.

(DEFAULT = 0)

-qos_fr_becn The setting of the frame relay backward congestion notification bit.

Valid only if pw_type frame_relay.

(DEFAULT = 0)

HLTAPI Commands, Release 2.80 Rev. B 11-11


L2TPv3 APIs
11
-qos_fr_fecn The setting of the frame relay forward congestion notification bit.

Valid only if pw_type frame_relay.

(DEFAULT = 0)

-qos_ipv6_flow_label The IPv6 flow label, from 0 through 1,048,575.

Valid only if pw_type ethernet|dot1q_ethernet.

(DEFAULT = 0)

-qos_ipv6_traffic_class The IPv6 traffic class, from 0 through 255.

Valid only if pw_type ethernet|dot1q_ethernet.

(DEFAULT = 0)

-ip_dfbit Specifies the DFBIT field in CC IP header.

-ip_ttl Specifies the TTL field in Tunnel IP header.

(DEFAULT = 60)

-sequencing_receive Enables "sequencing" on the receive side.

-vlan_priority Specifies the value for the priority field in the VLAN header of the attachement
circuit.

(DEFAULT = 0)

-fr_address_size Specifies the size of DLCI to be used by the frame relay attachement circuit.
(DEFAULT = 2)

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, contains more information
handle Session group handle

EXAMPLES See files starting with L2TPV3_ in the Samples subdirectory.


See the L2TPv3 example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1.In order to use QoS groups, parameter -variable_user_rate must be set

to 1 in traffic_config calls. The maximum number of qos groups that can

be created is 7. Each session belongs to a group. After the maximum number

of QoS groups is exceeded, the sessions that will be created will belong

11-12 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

to the first group that has the same ip_tos value. If there is no group

with the same ip_tos value, then a random group is chosen.

group.

2.ip_tos reflect is not supported. When ip_tos is set to reflect, the

ip_tos_value is set to 0.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 11-13


L2TPv3 APIs
11

NAME — ::ixia::l2tpv3_control

DESCRIPTION Procedure to start, stop, retry, or clear statistics on a port.

SYNOPSIS ::ixia::l2tpv3_control
-action CHOICES start stop retry restart
clear_stats delete_all
[-port_handle ^[0-9]+/[0-9]+/[0-9]+$]

ARGUMENTS

-action This option defines the action to be taken. Valid choices are:

Value Usage

start Starts CC creation and session creation on all


configured CC groups on the port.
stop Stops all CC and session on the port.
retry Try to start all CC and sessions that could not
be established for some reason when "start"
is issued.
restart Restarts all CC and sessions that were explic-
itly stopped.
clear_stats Clear all stats for all CC and session groups.
delete_all Deletes all CC and session groups on the
port.

-port_handle Port handle on which the action is to be performed. If no port handle is specified,
it performs the requested action on all the ports.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, contains more information

EXAMPLES See files starting with L2TPV3_ in the Samples subdirectory.


See the L2TPv3 example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) The clear_stats action has not been implemented yet.

SEE ALSO

11-14 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

NAME — ::ixia::l2tpv3_stats

DESCRIPTION Retrieves the statistics for a cc group.

SYNOPSIS ::ixia::l2tpv3_stats
-mode CHOICES aggregate control_connection
session
-cc_handle
[-cc_id NUMERIC]
[-cc_id_range_end NUMERIC]
[-vcid NUMERIC]
[-vcid_range_end NUMERIC]
[-csv_filename ]

ARGUMENTS

-mode Specifies statistics retrieval mode. Valid choices are:

Value Usage

aggregate Provide aggregate statistics for all control


connections and all sessions in the cc group.
control_connection Provide statistics for the specified range of
control connections on a per-cc basis.
session Provide statistics for the specified sessions
on a per-session basis.

-cc_handle This is the cc group handle returned by "l2tpv3_dynamic_cc_config".

-cc_id Selects a specific range of control connections that belong to the cc group to to
return statistics for. If the option is not specified, return statistics for all the con-
trol connections in the group.

-cc_id_range_end This options is used along with -cc_id to specify the range of control connections
to be selected. This option has a default value equal with -cc_id (ie., default
range is only one cc_id).

-vcid Selects a specific range of sessions that belong to the session group to perform
the operation upon. If the option is not specified, all the sessions in the group are
selected.

-vcid_range_end This options is used along with -vcid to specify the range of sessions to be
selected. This option has a default value equal with -vcid (ie., default range is
only one VCID).

-csv_filename The .csv filename that can be created under HLT library install folder

and where per session stats can be found.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, contains more information
aggregate.connecting

HLTAPI Commands, Release 2.80 Rev. B 11-15


L2TPv3 APIs
11

Key Value
aggregate.connected
aggregate.num_sessions
aggregate.connect_success
aggregate.sessions_up
aggregate.min_setup_time
aggregate.max_setup_time
aggregate.avg_setup_time
aggregate.success_setup_rate
aggregate.sccrp_tx
aggregate.scccn_tx
aggregate.sccrp_tx
aggregate.stopccn_tx
aggregate.hello_tx
aggregate.icrq_tx
aggregate.icrp_tx
aggregate.iccn_tx
aggregate.cdn_tx
aggregate.wen_tx WAN-Error-Notify
aggregate.sli_tx Set-Link-Info
aggregate.zlb_rx
aggregate.sccrp_rx
aggregate.scccn_rx
aggregate.sccrp_rx
aggregate.stopccn_rx
aggregate.hello_rx
aggregate.icrq_rx
aggregate.icrp_rx
aggregate.iccn_rx
aggregate.cdn_rx
aggregate.wen_rx WAN-Error-Notify
aggregate.sli_rx Set-Link-Info
aggregate.out_of_order_rx Number of packet rx out of sequence
aggregate.out_of_win_rx Number of packets rx outside window
aggregate.duplicate_rx Number of duplicate packet received
aggregate.in_order_rx Number of in order packet received
aggregate.retransmits Number of retransmitted messages
aggregate.tx_pkt_acked Number of tx packets acked by peer
aggregate.tx_data_pkt Number of data packets transmitted
aggregate.rx_data_pkt Number of data packets received
cc.<cc ID>.zlb_tx
cc.<cc ID>.sccrq_tx
cc.<cc ID>.scccn_tx
cc.<cc ID>.sccrp_tx

11-16 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

Key Value
cc.<cc ID>.stopccn_tx
cc.<cc ID>.hello_tx
cc.<cc ID>.icrq_tx
cc.<cc ID>.icrp_tx
cc.<cc ID>.iccn_tx
cc.<cc ID>.cdn_tx
cc.<cc ID>.wen_tx WAN-Error-Notify
cc.<cc ID>.sli_tx Set-Link-Info
cc.<cc ID>.zlb_rx
cc.<cc ID>.sccrq_rx
cc.<cc ID>.scccn_rx
cc.<cc ID>.sccrp_rx
cc.<cc ID>.stopccn_rx
cc.<cc ID>.hello_rx
cc.<cc ID>.icrq_rx
cc.<cc ID>.icrp_rx
cc.<cc ID>.iccn_rx
cc.<cc ID>.cdn_rx
cc.<cc ID>.wen_rx WAN-Error-Notify
cc.<cc ID>.sli_rx Set-Link-Info
cc.<cc ID>.out_of_order_rx Number of packet rx out of sequence
cc.<cc ID>.out_of_win_rx Number of packets rx outside window
cc.<cc ID>.duplicate_rx Number of duplicate packet received
cc.<cc ID>.in_order_rx Number of in order packet received
cc.<cc ID>.retransmits Number of retransmitted messages
cc.<cc ID>.tx_pkt_acked Number of tx packets acked by peer
cc.<cc ID>.tx_data_pkt Number of data packets transmitted on the
CC
cc.<cc ID>.rx_data_pkt Number of data packets received on the CC
session.<session ID>.icrq_tx
session.<session ID>.icrp_tx
session.<session ID>.iccn_rx
session.<session ID>.cdn_tx
session.<session ID>.icrq_rx
session.<session ID>.icrp_rx
session.<session ID>.iccn_tx
session.<session ID>.cdn_rx
session.<session ID>.tx_pkt_acked

EXAMPLES See files starting with L2TPV3_ in the Samples subdirectory.


See the L2TPv3 example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

HLTAPI Commands, Release 2.80 Rev. B 11-17


L2TPv3 APIs
11
SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) Session ID will be PPPoE session ID for the case of PPPoE and PPPoEoA. For
the case of PPPoA, session ID will be VPI/VCI.

2) Per session statistics retrieval can take long time.

3) What is the difference between connected, connect_success, and sessions_up?

4) Following statistics have not been implemented yet:

aggregate.disconnecting

aggregate.connect_attempts

aggregate.disconnect_success

aggregate.disconnect_failed

session.<session ID>.tx_data_pkt

session.<session ID>.rx_data_pkt

SEE ALSO

11-18 HLTAPI Commands, Release 2.80 Rev. B


L2TPv3 APIs

HLTAPI Commands, Release 2.80 Rev. B 11-19


L2TPv3 APIs
11

11-20 HLTAPI Commands, Release 2.80 Rev. B


L3VPN APIs
12
Chapter 12:

This chapter covers the following topics:

• ::ixia::l3vpn_generate_stream on page 12-2.

HLTAPI Commands, Release 2.80 Rev. B 12-1


L3VPN APIs
12

NAME — ::ixia::l3vpn_generate_stream

DESCRIPTION This command configures traffic streams on the specified CE and PE ports based
on L3VPN setups.

SYNOPSIS ::ixia::l3vpn_generate_stream
-pe_port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
-ce_port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
-pe_label_protocol CHOICES ldp rsvp
-ce_routing_protocol CHOICES ospf bgp isis rip
[-stream_generation CHOICES pe_to_ce ce_to_pe
both]
[-pe_router_handle]
[-ce_router_handle]
[-reset FLAG]
[-length_mode CHOICES fixed increment
random auto imix gaussian quad]
[-l3_length RANGE 1-64000]
[-l3_length_min RANGE 1-64000]
[-l3_length_max RANGE 1-64000]
[-l3_length_step RANGE 1-64000]
[-l3_imix1_size RANGE 32-1518]
[-l3_imix1_ratio]
[-l3_imix2_size RANGE 32-1518]
[-l3_imix2_ratio]
[-l3_imix3_size RANGE 32-1518]
[-l3_imix3_ratio]
[-l3_imix4_size RANGE 32-1518]
[-l3_imix4_ratio]
[-l3_gaus1_avg DECIMAL]
[-l3_gaus1_halfbw DECIMAL]
[-l3_gaus1_weight NUMERIC]
[-l3_gaus2_avg DECIMAL]
[-l3_gaus2_halfbw DECIMAL]
[-l3_gaus2_weight NUMERIC]
[-l3_gaus3_avg DECIMAL]
[-l3_gaus3_halfbw DECIMAL]
[-l3_gaus3_weight NUMERIC]
[-l3_gaus4_avg DECIMAL]
[-l3_gaus4_halfbw DECIMAL]
[-l3_gaus4_weight NUMERIC]
[-rate_pps]
[-rate_bps]
[-rate_percent RANGE 0-100]
[-transmit_mode CHOICES continuous
single_burst]
[-pkts_per_burst INTEGER]
[-data_pattern]
[-data_pattern_mode CHOICES incr_byte decr_byte
fixed random repeating]
[-enable_data_integrity CHOICES 0 1]
[-integrity_signature]
[-integrity_signature_offset RANGE 12-65535]
[-frame_sequencing CHOICES enable disable]
[-frame_sequencing_offset]
[-frame_size RANGE 20-13312]

12-2 HLTAPI Commands, Release 2.80 Rev. B


L3VPN APIs

[-frame_size_max RANGE 20-13312]


[-frame_size_min RANGE 20-13312]
[-frame_size_step RANGE 0-13292]
[-ip_cost CHOICES 0 1]
[-ip_delay CHOICES 0 1]
[-ip_precedence RANGE 0-7]
[-ip_reliability CHOICES 0 1]
[-ip_reserved CHOICES 0 1]
[-ip_throughput CHOICES 0 1]
[-enable_time_stamp]
[-number_of_packets_per_stream]
[-signature]
[-signature_offset]
[-enable_pgid]
[-pgid_value]
[-number_of_packets_tx]
[-no_write FLAG]

ARGUMENTS

-pe_port_handle The PE port for which to configure traffic and to which the traffic on CE port is
configured.

-ce_port_handle The CE port for which to configure traffic and to which the traffic on PE port is
configured.

-pe_label_protocol Specifies which label protocol is used on CE port. Valid choices are:

Value Usage

ldp N/A
rsvp N/A

-ce_routing_protocol Specifies which routing protocol is used on CE port. Valid choices are:

Value Usage

bgp N/A
isis N/A
ospf N/A
rip N/A

-stream_generation Specifies on which direction traffic is configured: on PE port to CE port, or on


CE port to PE port, or in both directions.

(DEFAULT = both)

-pe_router_handle List of router handles for which traffic will be configured on CE port. If this
option is present traffic will be configured only for route ranges advertised by the
specified router handles. Otherwise traffic is configured for route ranges adver-
tised by all routers on the PE port.

HLTAPI Commands, Release 2.80 Rev. B 12-3


L3VPN APIs
12
-ce_router_handle List of router handles for which traffic will be configured on PE port. If this
option is present traffic will be configured only for route ranges advertised by the
specified router handles. Otherwise traffic is configured for route ranges adver-
tised by all routers on the CE port.

-reset When the option is enabled all streams are deleted on the seding ports(s) before
creating new ones.

-length_mode Behavior of the packet size for a particular stream. Valid choices are:

Value Usage

fixed N/A
increment N/A
random N/A
auto N/A
imix Mix of packet sizes are specified using
options l3_imix1_size etc
gaussian, quad Packet sizes are specified as gaussian/quad
curves using options l3_gaus1_avg,
l3_gaus1_halfbw, l3_gaus1_weight etc.

-l3_length Packet size in bytes. Use this option in conjunction with option "length_mode"
set to fixed. Valid choices are between 1 and 64000, inclusive.

-l3_length_min Minimum packet size for the specified stream in bytes. Use this option in con-
junction with option "length_mode" set to increment.

-l3_length_max Maximum packet size for the specified stream in bytes. Use this option in con-
junction with option "length_mode" set to increment.

-l3_length_step Step size by which the packet size will be incremented. Use this option in con-
junction with option "length_mode" set to increment.

-l3_imix1_size First Packet size in bytes. Used if length_mode set to imix.

-l3_imix1_ratio Ratio of first packet size. Used if length_mode set to imix.

-l3_imix2_size Second Packet size in bytes. Used if length_mode set to imix.

-l3_imix2_ratio Ratio of second packet size. Used if length_mode set to imix.

-l3_imix3_size Third Packet size in bytes. Used if length_mode set to imix.

-l3_imix3_ratio Ratio of third packet size. Used if length_mode set to imix.

-l3_imix4_size Fourth Packet size in bytes. Used if length_mode set to imix.

-l3_imix4_ratio Ratio of fourth packet size. Used if length_mode set to imix.

-l3_gaus1_avg The center of the first curve. Used if length_mode is set to gaussian or quad.

-l3_gaus1_halfbw The width at half of the first curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus1_weight The weigth of the first curve. Used if length_mode is set to gaussian or quad.

12-4 HLTAPI Commands, Release 2.80 Rev. B


L3VPN APIs

-l3_gaus2_avg The center of the second curve. Used if length_mode is set to gaussian or quad.

-l3_gaus2_halfbw The width at half of the second curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus2_weight The weigth of the second curve. Used if length_mode is set to gaussian or quad.

-l3_gaus3_avg The center of the third curve. Used if length_mode is set to gaussian or quad.

-l3_gaus3_halfbw The width at half of the third curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus3_weight The weigth of the third curve. Used if length_mode is set to gaussian or quad.

-l3_gaus4_avg The center of the fourth curve. Used if length_mode is set to gaussian or quad.

-l3_gaus4_halfbw The width at half of the fourth curve. Used if length_mode is set to gaussian or
quad.

-l3_gaus4_weight The weigth of the fourth curve. Used if length_mode is set to gaussian or quad.

-rate_pps Traffic rate to send in pps.

-rate_bps Traffic rate to send in bps.

-rate_percent Traffic rate in percent of line rate for the specified stream. Valid choices are
between 0.00 and 100.00, inclusive.

(DEFAULT = 100.00)

-transmit_mode Type of transmit mode to use. Note that all transmit modes need to have one
value set in either rate_pps, rate_bps, or rate_percent. Valid choices are:

Value Usage

continuous N/A
single_burst N/A

-pkts_per_burst Number of packets to include in one burst.

-data_pattern Payload value in bytes. For example, you can specify a custom payload pattern
like the following using option "data_pattern":

00 44 00 44

-data_pattern_mode Packet payload mode for a particular stream. Valid choices are:

Value Usage

incr_byte Data patterm increments each byte in the


packet payload.
decr_byte Data patterm decrements each byte in the
packet payload.
fixed Data patterm is idle for each byte in the
packet payload.

HLTAPI Commands, Release 2.80 Rev. B 12-5


L3VPN APIs
12

Value Usage

random Data patterm is random for the packet pay-


load.
repeating Data patterm repeats for the packet payload.

-enable_data_integrity Whether data integrity checking is enabled. Valid choices are:

Value Usage

0 Disabled.
1 Enabled.

-integrity_signature

-integrity_signature_offset

-frame_sequencing

-frame_sequencing_offset

-frame_size Actual total frame size coming out of the interface on the wire in bytes. Valid
choices are between 20 and 13312, inclusive.

(DEFAULT = 64)

-frame_size_max Actual maximum total frame size coming out of the interface on the wire in bytes
when option "length_mode" is set to random. Valid choices are between 20 and
13312.

(DEFAULT = 64)

-frame_size_min Actual minimal total frame size coming out of the interface on the wire in bytes
when option "length_mode" is set to random. Valid choices are between 20 and
13312.

(DEFAULT = 64)

-frame_size_step Actual increment by which the actual total frame size in bytes coming out of the
interface on the wire will be incremented. Valid choices are between 20 and
13292.

(DEFAULT = 64)

-ip_cost Part of the Type of Service byte of the IP header datagram (bit 6). Valid choices
are:

Value Usage

0 (default) Normal cost.


1 Low cost.

12-6 HLTAPI Commands, Release 2.80 Rev. B


L3VPN APIs

-ip_delay Part of the Type of Service byte of the IP header datagram (bit 3). Valid choices
are:

Value Usage

0 (default) Normal delay.


1 Low delay.

-ip_precedence Part of the Type of Service byte of the IP header datagram that establishes prece-
dence of delivery. Valid choices are between 0 and 7, inclusive.

-ip_reliability Part of the Type of Service byte of the IP header datagram (bit 5). Valid choices
are:

Value Usage

0 (default) Normal reliability.


1 High reliability.

-ip_reserved Part of the Type of Service byte of the IP header datagram (bit 7). Valid choices
are:

Value Usage

0 (default)
1 N/A

-ip_throughput Part of the Type of Service byte of the IP header datagram (bit 4). Valid choices
are:

Value Usage

0 (default) Normal throughput.


1 High throughput.

-enable_time_stamp Whether time stamp insertion is enabled. Valid choices are:

Value Usage

0 Disabled.
1 Enabled. (default)

-number_of_packets_per_ Number of maximum frames in the stream.


stream

-enable_pgid

-pgid_value

-signature

-signature_offset

HLTAPI Commands, Release 2.80 Rev. B 12-7


L3VPN APIs
12
-number_of_packets_tx

-no_write Whether to enable procedure "l3vpn_generate_stream" to commit change to the


hardware. Enable this option when the you want to generate multiple streams
over multiple pe/ce_port_handle pairs by using a loop. Because committing the
configuration to hardware can take .5 seconds, this option allows you to save the
configuration after the procedure call.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
stream_id.$pe_port_handle Stream identifiers for traffic sent out the port
associated with "pe_port_handle".
stream_id.$ce_port_handle Stream identifiers for traffic sent out the port
associated with "ce_port_handle".

EXAMPLES See files starting with L3VPN_ in the Samples subdirectory.


See the L3VPN example in Appendix A, "Example APIs," for
one specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES 1. When ISIS is configured on CE port, streams will be generated on PE port


only to routes of type stub and external.

2. When OSPF is configured on CE port, streams will be generated on PE port


only to routes of type summary and external.

SEE ALSO

12-8 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs
13
Chapter 13:

This chapter covers the following topics:

• ::ixia::emulation_ldp_config on page 13-2.

• ::ixia::emulation_ldp_route_config on page 13-7.

• ::ixia::emulation_ldp_control on page 13-12.

• ::ixia::emulation_ldp_info on page 13-14.

HLTAPI Commands, Release 2.80 Rev. B 13-1


LDP APIs
13

NAME — ::ixia::emulation_ldp_config

DESCRIPTION

SYNOPSIS ::ixia::emulation_ldp_config
-mode CHOICES create modify
delete disable enable
-port_handle REGEXP ^[0-9]+/[0-9]+/
[0-9]+$
[-handle]
[-label_adv CHOICES unsolicited
on_demand]
[-peer_discovery CHOICES link targeted
targeted_martini DEFAULT link]
[-count NUMERIC]
[-intf_ip_addr IP]
[-intf_prefix_length RANGE 1-128]
[-intf_ip_addr_step IP]
[-lsr_id IP]
[-label_space RANGE 0-65535]
[-lsr_id_step IPV4]
[-mac_address_init MAC]
[-remote_ip_addr IP]
[-remote_ip_addr_step IP]
[-hello_interval RANGE 0-65535]
[-hello_hold_time RANGE 0-65535]
[-keepalive_interval RANGE 0-65535]
[-keepalive_holdtime RANGE 0-65535]
[-discard_self_adv_fecs CHOICES 0 1]
[-vlan_id RANGE 0-4095]
[-vlan_id_mode CHOICES fixed increment]
[-vlan_id_step RANGE 0-4096]
[-vlan_user_priority RANGE 0-7]
[-vpi RANGE 0-255]
[-vci RANGE 0-65535]
[-vpi_step RANGE 0-255]
[-vci_step RANGE 0-256]
[-atm_range_max_vpi RANGE 0-255]
[-atm_range_min_vpi RANGE 0-255]
[-atm_range_max_vci RANGE 0-65535]
[-atm_range_min_vci RANGE 0-65535]
[-atm_vc_dir CHOICES bi_dir uni_dir]
[-enable_explicit_include_ip_fec CHOICES 0 1]
[-enable_l2vpn_vc_fecs CHOICES 0 1]
[-enable_remote_connect CHOICES 0 1]
[-enable_vc_group_matching CHOICES 0 1]
[-gateway_ip_addr IP]
[-gateway_ip_addr_step IP]
[-graceful_restart_enable CHOICES 0 1]
[-no_write FLAG]
[-reconnect_time RANGE 0-300000]
[-recovery_time RANGE 0-300000]
[-reset FLAG]
[-targeted_hello_hold_time RANGE 0-65535]
[-targeted_hello_interval RANGE 0-65535]
-loop_detection

13-2 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

-path_vector_limit
-max_pdu_length
-message_aggregation
-label_start
-label_step
-atm_merge_cap

ARGUMENTS

-mode Which mode is being performed. All but create require the use of the -handle
option. Valid choices are:

Value Usage

create Create a new LDP interface


modify Modify an existing LDP interface
delete Delete the given LDP interface
disable Disable the given LDP interface
enable Enable the given LDP interface

-port_handle The port which on which the LDP configuration will take place.

-handle A LDP handle returned from this procedure and now being used when the -mode
is anything but create.

-label_adv The mode by which the simulated router advertises its FEC ranges. Valid
choices are:

Value Usage

unsolicited (default) The router distributes FEC ranges


whenever it has a new one.
on_demand The router only distributes FEC ranges when
requested by a peer.

-peer_discovery The discovery mode used for the LDP interface. Valid choices are:

Value Usage

link (default) The basic mode which does not


attempt to contact targeted peers.
targeted Attempts to contact targeted peers.
targeted_martini Attempts to contact targeted peers.

-count Defines the number of LDP interfaces to create.

-intf_ip_addr Interface IP address of the LDP session router.

-intf_prefix_length Prefix length on the interface.

-intf_ip_addr_step Define interface IP address for multiple sessions.

-lsr_id The ID of the router to be emulated.

-label_space The label space identifier for the interface.

HLTAPI Commands, Release 2.80 Rev. B 13-3


LDP APIs
13
-lsr_id_step Used to define the lsr_id step for multiple interface creations.

-mac_address_init MAC address to be used for the first session.

-remote_ip_addr The IPv4 address of a targeted peer.

-remote_ip_addr_step When creating multiple sessions and using the -remote_ip_addr, tells how to
increment between sessions.

-hello_interval The amount of time, expressed in seconds, between transmitted HELLO mes-
sages.

-hello_hold_time The amount of time, expressed in seconds, that an LDP adjacency will be main-
tained in the absence of a HELLO message.

-keepalive_interval The amount of time, expressed in seconds, between keep-alive messages sent
from simulated routers to their adjacency in the absence of other PDUs sent to
the adjacency.

-keepalive_holdtime The amount of time, expressed in seconds, that an LDP adjacency will be main-
tained in the adbsence of a PDU received from the adjacency.

-discard_self_adv_fecs Discard learned labels from the DUT that match any of the enabled configured
IPv4 FEC ranges. This flag is only set when LDP is started. If it is to be changed
later, LDP should be stopped, the value changed and then restart LDP.

-vlan_id VLAN ID for protocol interface.

-vlan_id_mode For multiple neighbor configuration, configures the VLAN ID mode. Valid
choices are:

Value Usage
fixed VLAN ID mode is fixed.
increment VLAN ID mode to increment.

-vlan_id_step Defines the step for the VLAN ID when the VLAN ID mode is increment.

-vlan_user_priority VLAN user priority assigned to protocol interface.

-vpi VPI for emulated router node

-vci VCI for emulated router node

-vpi_step Step value to apply to VPI field

-vci_step Step value to apply to VCI field

-atm_range_max_vpi The maximum VPI value in the ATM label range.

-atm_range_min_vpi The minimum VPI value in the ATM label range.

-atm_range_max_vci The maximum VCI value in the ATM label range.

-atm_range_min_vci The minimum VCI value in the ATM label range.

13-4 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

-atm_vc_dir The ATM directional virtual circuit (VC) capability of this LSR. Valid choices
are:

Value Usage

bi_dir (default) In a label mapping for a defined VPI,


a defined VCI can be used for both directions
on the link.
uni_dir In a label mapping for a defined VPI, a
defined VCI can be used for only one direc-
tion on the link.

-enable_explicit_include_ Enables the use of the explicit include IP FEC list which filters received labels.
ip_fec

-enable_l2vpn_vc_fecs Enables the use of Layer 2 Virtual Circuit FECs for this router.

-enable_remote_connect Enables LDP routers not part of the local multicast network to connect to the
simulated router.

-enable_vc_group_ This option enables the matching of received Martini labels by group ID as well
matching as VCID.

-gateway_ip_addr Gives the gateway IP address for the protocol interface that will be created for
use by the simulated routers.

-gateway_ip_addr_step Gives the step for the gateway IP address.

-graceful_restart_enable Will enable graceful restart (HA) on the LDP neighbor.

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-recovery_time If -graceful_restart_enable is set; (in milliseconds) The restarting LSR is adver-


tising the amount of time that it will retain its MPLS forwarding state. This time
period begins when it sends the restart Initialization message, with the FT session
TLV, to the neighbor LSRs (to re-establish the LDP session). This timer allows
the neighbors some time to resync the LSPs in an orderly manner. If the value =
0, it means that the restarting LSR was not able to preserve the MPLS forwarding
state.

-reconnect_time (in milliseconds) This Fault Tolerant (FT) Reconnect Timer value is advertised in
the FT Session TLV in the Initialization message sent by a neighbor LSR. It is a
request sent by an LSR to its neighbor(s) - in the event that the receiving neigh-
bor detects that the LDP session has failed, the receiver should maintain MPLS
forwarding state and wait for the sender to perform a restart of the control plane
and LDP protocol. If the value = 0, the sender is indicating that it will not pre-
serve its MPLS forwarding state across the restart.

If -graceful_restart_enable is set.

-reset If set, then all existing simulated routers will be removed before creating a new
one.

-targeted_hello_hold_time The amount of time, expressed in seconds, that an LDP adjacency will be main-
tained for a targeted peer in the absence of a HELLO message.

HLTAPI Commands, Release 2.80 Rev. B 13-5


LDP APIs
13
-targeted_hello_interval The amount of time, expressed in seconds, between transmitted HELLO mes-
sages to targeted peers.

-loop_detection

-path_vector_limit

-max_pdu_length

-message_aggregation

-label_start

-label_step

-atm_merge_cap

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log

EXAMPLES See files starting with LDP_ in the Samples subdirectory.


Also see some of the L2VPN, L3VPN, MPLS, and MVPN sample
files for further examples ofthe LDP usage.
See the LDP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

13-6 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

NAME — ::ixia::emulation_ldp_route_config

DESCRIPTION This procedure creates/modifies/deletes LSP (FEC) pools or FEC ranges on sim-
ulated LDP router Interface.

SYNOPSIS proc ::ixia::emulation_ldp_route_config


-mode CHOICES create modify delete
-handle
[-lsp_handle]
[-fec_type CHOICES ipv4_prefix host_addr
vc (DEFAULT ipv4_prefix)]
[-label_msg_type CHOICES mapping request
(DEFAULT mapping)]
[-egress_label_mode CHOICES nextlabel fixed imnull
exnull (DEFAULT nextlabel)]
[-num_lsps REGEXP ^[0-9]+$ (DEFAULT 1)]
[-fec_ip_prefix_start IP DEFAULT 0.0.0.0]
[-fec_ip_prefix_length RANGE 1-32 (DEFAULT 24)]
[-fec_host_addr IP DEFAULT 0.0.0.0]
[-fec_vc_type CHOICES fr_dlci atm_aal5_vcc
atm_cell eth_vlan eth hdlc ppp cem
atm_vcc_n_1atm_vpc_n_1 eth_vpls
atm_vcc_1_1atm_vpc_1_1]
[-fec_vc_cbit CHOICES 0 1]
[-fec_vc_group_id RANGE 0-2147483647]
[-fec_vc_id_start RANGE 0-2147483647]
[-fec_vc_id_step RANGE 0-2147483647]
[-fec_vc_intf_mtu_enable CHOICES 0 1 (DEFAULT 1)]
[-fec_vc_intf_mtu REGEXP ^[0-9]+$]
[-fec_vc_intf_desc]
[-hop_count_tlv_enable CHOICES 0 1 (DEFAULT 1)]
[-hop_count_value REGEXP ^[0-9]+ (DEFAULT 1)]
[-path_vector_tlv CHOICES 0 1 (DEFAULT 0)]
[-path_vector_tlv_lsr IP]
[-fec_vc_group_count REGEXP ^[0-9]+$ (DEFAULT 1)]
[-fec_vc_label_mode CHOICES fixed_label
increment_label]
[-fec_vc_label_value_start REGEXP ^[0-9]+$ (DEFAULT 16)]
[-fec_host_prefix_length RANGE 1-32 (DEFAULT 24)]
[-fec_vc_peer_address IP (DEFAULT 0.0.0.0)]
[-fec_vc_id_count RANGE 0-2147483647]
[-label_value_start REGEXP ^[0-9]+$ (DEFAULT 16)]
[-next_hop_peer_ip IP]
[-no_write FLAG]
[-num_routes REGEXP ^[0-9]+$ (DEFAULT 1)]
[-packing_enable CHOICES 0 1 (DEFAULT 0)]
[-stale_timer_enable CHOICES 0 1 (DEFAULT 1)]
[-stale_request_time REGEXP ^[0-9]+$ (DEFAULT 5)]
[-fec_ip_prefix_step]
[-fec_host_step]
[-path_vector_tlv]
[-path_vector_tlv_lsr]

HLTAPI Commands, Release 2.80 Rev. B 13-7


LDP APIs
13
ARGUMENTS

-mode What is being done to the protocol. Valid choices are:

Value Usage

stop Stop the protocol.


start Start the protocol.
restart Restart the protocol.

-handle The LDP handle.

-lsp_handle This option specifies on which lsp element to configure the lsp pools/fec range
options. The user must pass in this option if the "type" is modify or delete. lsp_
handle is returned by this procedure when "type" is create.

-fec_type Note: this option cannot be modified with modify mode. Valid choices are:

Value Usage

ipv4_prefix configure FECs to be advertised by the simu-


lated router
host_addr configure FECs to be requested of upstream
peers, to be used in download on demand
advertising mode.
vc configure parameters for VC range associ-
ated with an LDP L2 VPN interface.

-label_msg_type Type of label messages to be sent out. Note: this option cannot be modified with
modify mode. Valid choices are:

Value Usage

mapping (default) Message is used to advertise egress


bindings to UUT.
request Message is used to request ingress label
bindings from UUT for an on_demand mode.

-egress_label_mode Mode for egress-targeted label assignment. Valid choices are:

Value Usage

nextlabel next available label is assigned for each LSP


fixed the same label is assigned for all LSPs in this
FEC range.
imnull implicit null is used for all LSPs. For Ixia inter-
face, this choice sets the label_value_start to
3
exnull explicit null is used for all LSPs. For Ixia inter-
face, this choice sets the label_value_start to
0

-num_lsps The number of label bindings advertised.

-fec_ip_prefix_start First prefix to be advertised in ipv4-prefix FEC range.

13-8 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

-fec_ip_prefix_length Network mask width for ipv4-prefix FECs.

(DEFAULT = 24)

-fec_host_addr First host address to be advertised.

-fec_vc_type The type of virtual circuit. Note that none, atm_aal5_pdu, and fr_port types are
not supported. Valid choices are:

Value Usage

fr_dlci N/A
atm_aal5_vcc N/A
atm_cell N/A
eth_vlan N/A
eth N/A
hdlc N/A
ppp N/A
cem N/A
atm_vcc_n_1 N/A
atm_vpc_n_1 N/A
eth_vpls N/A
atm_vcc_1_1 N/A
atm_vpc_1_1 N/A

-fec_vc_cbit Enables the generation of a control word in the VC.

(DEFAULT = 0)

-fec_vc_group_id The group ID associated with all VC FEC elements for this interface.

(DEFAULT = 0)

-fec_vc_id_start The virtual circuit ID, together with the value of the fec_vc_type option, identi-
fies a unique VC.

(DEFAULT = 10)

-fec_vc_id_step The step value applied between uses of VC ID.

(DEFAULT = 1)

-fec_vc_intf_mtu_enable Enables the generation of an MTU interface parameter field.

(DEFAULT = false)

-fec_vc_intf_mtu The value of the MTU to be included if fec_vc_intf_mtu_enable is set to true.

(DEFAULT = 0)

-fec_vc_intf_desc An interface description string for the VC range.

-hop_count_tlv_enable If set, enables the use of hop_count_tlv in Label Request and Label Mapping
messages.

(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 13-9


LDP APIs
13
-hop_count_value This is the hop count value used in hop count TLV if hop_count_tlv_enable is
set.

(DEFAULT = 1)

-fec_vc_group_count The number of contiguous values of groupId that will be used in generating VC
FECs.

(DEFAULT = 1)

-fec_vc_label_mode The manner in which labels are assigned to generated VCs. The options include:
fixed_label, increment_label.

-fec_vc_label_value_start The initial label value used in the generated VC.

(DEFAULT = 16)

-fec_vc_peer_address The IPv4 address of the LDP router which is the peer for this VC range.

(DEFAULT = 0.0.0.0)

-fec_vc_id_count The number of times that the VCID will be incremented in order to generate
FECs.

(DEFAULT = 1)

-fec_host_prefix_length The mask applied to fec_host_addr.

(DEFAULT = 24)

-label_value_start The first label to be assigned to the FEC.

(DEFAULT = 16)

-next_hop_peer_ip The IPv4 address of the LDP peer that is the next hop router on this

path.

(DEFAULT = 0.0.0.0)

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-num_routes The number of routes to request starting at the host_addr for fec_type of "host_
addr".

(DEFAULT = 1)

-packing_enable Enables the packing of multiple label mappings on sending labels and sending
withdrawals into a single PDU. This is only applicable to sessions established in
the downstream unsolicited mode.

(DEFAULT = 0)

-stale_timer_enable If set, enables the use of stale timer.

(DEFAULT = 1)

13-10 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

-stale_request_time If stale_timer_enable is true, this is used as the stale request time.

(DEFAULT = 5)

-fec_ip_prefix_step

-fec_host_step

-path_vector_tlv

-path_vector_tlv_lsr

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


lsp_handle LDP lsp pool handle
log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with LDP_ in the Samples subdirectory.


Also see some of the L2VPN, L3VPN, MPLS, and MVPN sample
files for further examples ofthe LDP usage.
See the LDP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

If fec_type option is ipv4_prefix, the label_msg_type option must be mapping; if


fec_type option is host_addr, the the label_msg_type option must be request.

For "modify" mode, the fec_type option and label_msg_type option will not be
updated for the lsp.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 13-11


LDP APIs
13

NAME — ::ixia::emulation_ldp_control

DESCRIPTION Stop, start or restart the protocol.

SYNOPSIS ::ixia::emulation_ldp_control
-mode CHOICES restart start stop
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-handle]
[-advertise]
[-withdraw]
[-flap_routes]
[-flap_count]
[-flap_interval_time]
[-flap_down_time]

ARGUMENTS

-mode What is being done to the protocol. Valid choices are:

Value Usage

restart Restart the protocol.


start Start the protocol.
stop Stop the protocol.

-port_handle The port where the LDP is to be controlled.

-handle The LDP session handle to act upon.

-advertise

-withdraw

-flap_routes

-flap_count

-flap_interval_time

-flap_down_time

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with LDP_ in the Samples subdirectory.


Also see someof the L2VPN, L3VPN, MPLS, and MVPN sample
files for further examples oft he LDP usage.
See the LDP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

13-12 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 13-13


LDP APIs
13

NAME — ::ixia::emulation_ldp_info

DESCRIPTION Retrieves information about LDP protocol.

SYNOPSIS ::ixia::emulation_ldp_info
-mode CHOICES state stats clear_stats settings
neighbors lsp_labels
-handle

ARGUMENTS

-mode What action will be taken. Valid choices are:

Value Usage

state N/A
stats N/A
clear_stats N/A
settings N/A
neighbors N/A
lsp_labels N/A

-handle The LDP session handle to act upon.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log If status is failure, detailed information pro-
vided.
basic_sessions Ixia only
targeted_sessions_running Ixia only
targeted_sessions_configured Ixia only
routing_protocol Cisco only
ip_address Cisco only
elapsed_time Cisco only
linked_hellos_tx Cisco only
linked_hellos_rx Cisco only
targeted_hellos_tx Cisco only
targeted_hellos_rx Cisco only
total_setup_time Cisco only
min_setup_time Cisco only
max_setup_time Cisco only
num_lsps_setup Cisco only
req_rx Cisco only
req_tx Cisco only
map_rx Cisco only
map_tx Cisco only
release_rx Cisco only

13-14 HLTAPI Commands, Release 2.80 Rev. B


LDP APIs

Key Value
release_tx Cisco only
withdraw_rx Cisco only
withdraw_tx Cisco only
abort_rx Cisco only
abort_tx Cisco only
notif_rx Cisco only
notif_tx Cisco only
max_peers No further support planned; Cisco only
max_lsps No further support planned; Cisco only
peer_count No further support planned; Cisco only
intf_ip_addr a.b.c.d No further support planned
transport_address a.b.c.d No further support planned
targeted_hello No further support planned
label_adv No further support planned
hello_hold_time No further support planned
hello_interval No further support planned
keepalive_interval No further support planned
keepalive_holdtime No further support planned
label_space No further support planned
vpi No further support planned
vci No further support planned
atm_range_min_vci No further support planned
atm_range_max_vci No further support planned
atm_range_min_vpi No further support planned
atm_range_max_vpi No further support planned
vc_direction No further support planned; Cisco only
atm_merge_capability No further support planned; Cisco only
fr_merge_capability No further support planned; Cisco only
path_vector_limit No further support planned; Cisco only
max_pdu_length No further support planned; Cisco only
loop_detection No further support planned; Cisco only
ip_address a.b.c.d No further support planned
hold_time No further support planned
keepalive No further support planned
config_seq_no No further support planned; Cisco only
max_lsps No further support planned; Cisco only
max_peers No further support planned; Cisco only
atm_label_range No further support planned; Cisco only
fr_label_range No further support planned; Cisco only
session_state Cisco only; disabled|nonexist|hello_adj|init|
openrec|opensent|operational
num_incoming_ingress_lsps Cisco only; number of opened LSPs
num_incoming_egress_lsps Cisco only; number of opened LSPs
lsp_pool_handle.<handle>. Cisco only

HLTAPI Commands, Release 2.80 Rev. B 13-15


LDP APIs
13

Key Value

type Cisco only; {ingress|egress}


num_opened_lsps Cisco only; <number of opened LSPs>
source list of values like: <pool_handle>, incoming_
egress
fec_type Ixia only; list of ipv4_prefix|host_addr...
prefix Ixia only; list of FEC IP prefix (only for link or
targeted sessions)
prefix_length Ixia only; list of FEC prefix length (only for link
or targeted sessions)
label Ixia only; list of MPLS label (for IPv4 labels)
type Ixia only; list of values learned | assigned
group_id Ixia only; list of Group IDs (only for martini
labels)
vc_id Ixia only; list of VC IDs (only for martini labels)
vc_type Ixia only; list of VC types like: frameRelay,
ATMAAL5, ATMXCell, etc.
vci Ixia only; list of VCI (only for ATM labels)
vpi Ixia only; list of VPI (only for ATM labels)
state Ixia only; list of state (only for ATM assigned
labels)

EXAMPLES See files starting with LDP_ in the Samples subdirectory.


Also see some of the L2VPN, L3VPN, MPLS, and MVPN sample
files for further examples of the LDP usage.
See the LDP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

13-16 HLTAPI Commands, Release 2.80 Rev. B


MLD APIs
14
Chapter 14:

This chapter covers the following topics:

• ::ixia::emulation_mld_config on page 14-2.

• ::ixia::emulation_mld_group_config on page 14-6.

• ::ixia::emulation_mld_control on page 14-7.

HLTAPI Commands, Release 2.80 Rev. B 14-1


MLD APIs
14

NAME — ::ixia::emulation_mld_config

DESCRIPTION Configures MLD sessions.

SYNOPSIS ::ixia::emulation_mld_config
-mode CHOICES create modify delete
disable enable enable_all disable_all
[-port_handle ^\[0-9\]+/\[0-9\]+/\[0-
9\]+$]
[-handle]
[-interface_handle]
[-mld_version CHOICES v1 v2]
[-count RANGE 1-1000]
[-intf_ip_addr IP]
[-intf_ip_addr_step IP]
[-intf_prefix_len RANGE 1-128]
[-msg_interval RANGE 0-999999999]
[-unsolicited_report_interval RANGE 0-999999]
[-max_groups_per_pkts RANGE 0-999999999]
[-max_response_control CHOICES 0 1]
[-max_response_time RANGE 0-999999]
[-ip_router_alert CHOICES 0 1]
[-general_query CHOICES 0 1]
[-group_query CHOICES 0 1]
[-filter_mode CHOICES include exclude]
[-suppress_report CHOICES 0 1]
[-vlan_id RANGE 0-4096]
[-vlan_id_mode CHOICES fixed increment]
[-vlan_id_step RANGE 0-4096]
[-vlan_user_priority RANGE 0-7]
[-neighbor_intf_ip_addr IP]
[-neighbor_intf_ip_addr_step IP]
[-robustness RANGE 1-65535]
[-vlan_cfi CHOICES 0 1]
[-mac_address_init]
[-no_write FLAG]
[-reset FLAG]

ARGUMENTS

-mode This option defines the action to be taken. Valid choices are:

Value Usage

create Creates an MLD session, requires the use of


-port_handle.
delete Deletes an MLD session, requires the use of -
handle.
modify Modifies an MLD session, requires the use of
-handle.
enable Enables an MLD session, requires the use of
-handle.
disable Disables an MLD session, requires the use of
-handle.

14-2 HLTAPI Commands, Release 2.80 Rev. B


MLD APIs

Value Usage

enable_all Enables all MLD sessions on port, requires


the use of -port_handle.
disable_all Disables all MLD sessions on port, requires
the use of -port_handle.

-port_handle If -mode is create, enable_all or disable_all this option is required to specify the
port where to take the action.

-handle If -mode is delete, modify, enable or disable this option is required to specify the
existing MLD session.

-interface_handle A handle or list of the handles that are returned from the interface_config call.
These provide a direct link to an already existing interface and supercede the use
of the intf_ip_addr value.

-mld_version MLD version.

(DEFAULT = v2).

-count Number of sessions to create on the interface.

(DEFAULT = 1)

-intf_ip_addr First IP address in the group.

-intf_ip_addr_step Used to increment IP address.

-intf_prefix_len Address prefix length.

-msg_interval The interval (in ms) used for throttling updates. Use the value 0 to send messages
as fast as possible.

(DEFAULT = 0)

-unsolicited_report_ The interval (in 1/10 seconds) to wait before re-sending the host's initial report of
nterval membership in a group.

(DEFAULT = 100 for v1, 10 for v2)

-max_groups_per_pkts The maximum number of group records that can go into one MLDv2 member-
ship report packet. If the number of groups to be advertised exceeds this number,
then the groups are split up into multiple membership report packets. If set to 0,
groups are packed into Membership Report packets until the MTU size is
reached.

(DEFAULT = 0)

-max_response_control If 1, use -max_response_time to overwrite the value obtained from the received
Query message.

(DEFAULT = 0)

-max_response_time Set the maximum response time (in 1/10 seconds) on receipt of a query. If set to
0, immediately respond to received Query message.

HLTAPI Commands, Release 2.80 Rev. B 14-3


MLD APIs
14
-ip_router_alert If 1, enable IP Router Alert Option.

(DEFAULT = 1)

-general_query If 1, respond to general queries received on the interface.

(DEFAULT = 1)

-group_query If 1, respond to group specific queries received on the interface.

(DEFAULT = 1)

-filter_mode Configure MLDv2 Include Filter Mode.

(DEFAULT = include)

-suppress_report If 1, suppress the transmission of a listener report that duplicates one received on
the interface.

-vlan_id VLAN ID for emulated router node.

-vlan_id_mode For multiple neighbor configuration, configures the VLAN ID mode to be fixed
or increment.

-vlan_id_step When -vlan_id_mode isset to increment, this defines the step for every VLAN.

-vlan_user_priority VLAN user priority assigned to emulated router node.

-neighbor_intf_ip_addr Neighbor's interface IP address.

-neighbor_intf_ip_addr_ Neighbor's interface IP address increment step for creating multiple sessions.
step Default is 0, i.e. same IP address for all sessions.

-robustness The number of times to send a State Change Report. MLDv2 only.

(DEFAULT = 2)

-vlan_cfi Canonical format indicator field in VLAN for emulated router node.

-mac_address_init MAC address to be set on the interface.

-no_write If present, the command ixWritePortsToHardware is not executed.

-reset When -mode is create resets the MLD server on port.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, contains more information
handle List of session handles

EXAMPLES See files starting with MLD_ in the Samples subdirectory.


See the MLD example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

14-4 HLTAPI Commands, Release 2.80 Rev. B


MLD APIs

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 14-5


MLD APIs
14

NAME — ::ixia::emulation_mld_group_config

DESCRIPTION Configures multicast groups added to an MLD session. This procedure utilizes
the common emulation_multicast_group_config and emulation_multicast_
source_config procedures.

SYNOPSIS ::ixia::emulation_mld_group_config
-mode CHOICES create modify delete
clear_all
[-session_handle]
[-group_pool_handle]
[-source_pool_handle]
[-handle]
[-no_write FLAG]

ARGUMENTS

-mode CHOICES create modify delete clear_all

-session_handle

-group_pool_handle

-source_pool_handle

-handle

-no_write

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is failure, contains more info
handle The group member handle
group_pool_handle The group pool handle
source_pool_handle Source pool handles list

EXAMPLES See files starting with MLD_ in the Samples subdirectory.


See the MLD example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {mld_groups {routeRange1 routeRange2}}

NOTES Not yet coded to functional specification.

SEE ALSO

14-6 HLTAPI Commands, Release 2.80 Rev. B


MLD APIs

NAME — ::ixia::emulation_mld_control

DESCRIPTION Controls MLD sessions.

SYNOPSIS ::ixia::emulation_mld_control
-mode CHOICES start stop restart join
leave
[-handle]
[-port_handle ^[0-9]+/[0-9]+/[0-9]+$]
[-group_member_handle]

ARGUMENTS

-mode This option defines the action to be taken. Valid choices are:

Value Usage

start Starts the MLD host server, requires the use


of -port_handle.
stop Stops the MLD host server, requires the use
of -session_handle.
restart Restarts the MLD host server, requires the
use of -session_handle.
join If -handle is provided join all groups on this
session. If -group_member_handle is pro-
vided join specified group pool(s). If no han-
dle is provided, join all groups an all
sessions.
leave If -handle is provided leave all groups on this
session. If -group_member_handle is pro-
vided leave specified group pool(s). If no
handle is provided, leave all groups an all
sessions.

-handle If -mode is join or leave, all group pools belonging to the MLD session specified
with this option will join or leave.

-port_handle If -mode is start, stop or restart, this option is required to specify the port where
to take the MLD action.

-group_member_handle If -mode is join or leave this option specifies the group pools to join or leave.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion

EXAMPLES See files starting with MLD_ in the Samples subdirectory.


See the MLD example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

HLTAPI Commands, Release 2.80 Rev. B 14-7


MLD APIs
14
SAMPLE OUTPUT

NOTES

SEE ALSO

14-8 HLTAPI Commands, Release 2.80 Rev. B


Multicast APIs
15
Chapter 15:

This chapter covers the following topics:

• ::ixia::emulation_multicast_group_config on page 15-2.

• ::ixia::emulation_multicast_source_config on page 15-4.

HLTAPI Commands, Release 2.80 Rev. B 15-1


Multicast APIs
15

NAME — ::ixia::emulation_multicast_group_config

DESCRIPTION Configures multicast groups to be used by all multicast emulation tools including
PIM, IGMP, MLD, MSDP.

SYNOPSIS ::ixia::emulation_multicast_group_config
-mode CHOICES create modify delete
[-handle]
[-num_groups NUMERIC]
[-ip_addr_start IP]
[-ip_addr_step IP]
[-ip_prefix_len RANGE 1-128]

ARGUMENTS

-mode This option defines the action to be taken. Valid choices are:

Value Usage

create Creates a multicast group pool.


delete Deletes a multicast group pool, requires the
use of -handle.
modify Modifies a multicast group pool, requires the
use of -handle.

-handle If the -mode is delete or modify, then this option is required to specify the exist-
ing multicast group pool.

-num_groups Number of multicast groups in group pool.

(DEFAULT = 1)

-ip_addr_start First multicast group address in the group pool.

-ip_addr_step Used to increment group address.

(DEFAULT = 0.0.0.1)

-ip_prefix_len Defaults to 32 for IPv4 and 128 for IPv6.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
handle The handle for the multicast group pool cre-
ated

EXAMPLES See the files starting with IGMPv1_, IGMPv2_, IGMPv3_, MLD_,
MVPN_, andPIM_ in the Samples subdirectory.
See the IGMP, MLD, MVPN, or PIM examples in Appendix A,
"Example APIs," for more specific example usage.

SAMPLE INPUT

15-2 HLTAPI Commands, Release 2.80 Rev. B


Multicast APIs

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 15-3


Multicast APIs
15

NAME — ::ixia::emulation_multicast_source_config

DESCRIPTION Configures multicast sources to be used by all multicast emulation tools includ-
ing PIM, IGMP, MLD, MSDP.

SYNOPSIS ::ixia::emulation_multicast_source_config
-mode CHOICES create modify delete
[-handle]
[-num_sources NUMERIC]
[-ip_addr_start IP]
[-ip_addr_step IP]
[-ip_prefix_len RANGE 1-128]

ARGUMENTS

-mode This option defines the action to be taken. Valid choices are:

Value Usage

create Creates a multicast group pool.


delete Deletes a multicast group pool, requires the
use of -handle.
modify Modifies a multicast group pool, requires the
use of -handle.

-handle If the -mode is delete or modify, then this option is required to specify the exist-
ing multicast source pool.

-num_sources Number of multicast sources in source pool.

(DEFAULT = 1)

-ip_addr_start First multicast source address in the group pool.

-ip_addr_step Used to increment source address.

(DEFAULT = 0.0.0.1)

-ip_prefix_len Defaults to 32 for IPv4 and 128 for IPv6.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
handle The handle for the multicast source pool cre-
ated

EXAMPLES See the files starting with IGMPv1_, IGMPv2_, IGMPv3_, MLD_,
MVPN_, andPIM_ in the Samples subdirectory.
See the IGMP, MLD, MVPN, or PIM examples in Appendix A,
"Example APIs," for more specific example usage.

SAMPLE INPUT

15-4 HLTAPI Commands, Release 2.80 Rev. B


Multicast APIs

SAMPLE OUTPUT

NOTES

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 15-5


Multicast APIs
15

15-6 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs
16
Chapter 16:

This chapter covers the following topics:

• ::ixia::emulation_ospf_config on page 16-2.

• ::ixia::emulation_ospf_topology_route_config on page 16-8.

• ::ixia::emulation_ospf_control on page 16-16.

• ::ixia::emulation_ospf_lsa_config on page 16-18.

HLTAPI Commands, Release 2.80 Rev. B 16-1


OSPF APIs
16

NAME — ::ixia::emulation_ospf_config

DESCRIPTION This procedure will add OSPF router(s) to a particular Ixia Interface. The user
can then configure OSPF routes by using the procedure "emulation_ospf_route_
config".

SYNOPSIS ::ixia::emulation_ospf_config
-mode CHOICES create delete modify
enable disable
-session_type CHOICES ospfv2 ospfv3
[-area_id IP]
[-area_id_step IP]
[-area_type CHOICES external-capable ppp
stub]
[-authentication_mode CHOICES null simple md5]
[-count RANGE 1-1000]
[-dead_interval RANGE 1-65535]
[-demand_circuit CHOICES 0 1]
[-handle]
[-hello_interval RANGE 1-65535]
[-interface_cost RANGE 1-65535]
[-intf_ip_addr IP]
[-intf_ip_addr_step IP]
[-intf_prefix_length RANGE 1-128]
[-instance_id RANGE 0-65535]
[-loopback_ip_addr IP]
[-loopback_ip_addr_step IP]
[-lsa_discard_mode CHOICES 0 1]
[-md5_key RANGE 0-255]
[-md5_key_id]
[-mtu RANGE 512-4470]
[-network_type CHOICES broadcast ptomp ptop]
[-neighbor_intf_ip_addr IP]
[-neighbor_intf_ip_addr_step IP]
[-neighbor_router_id IP]
[-neighbor_router_id_step IP]
[-option_bits]
[-password]
[-router_id IP]
[-router_id_step IP]
[-router_priority RANGE 0-255]
[-te_enable CHOICES 0 1]
[-te_max_bw REGEXP ^[0-9]+]
[-te_max_resv_bw REGEXP ^[0-9]+$]
[-te_metric RANGE 1-4294967295]
[-vci RANGE 0-65535]
[-vci_step]
[-vlan_id_mode CHOICES fixed increment]
[-vlan_id RANGE 0-4095 (DEFAULT 100)]
[-vlan_id_step RANGE 0-4095 (DEFAULT 1)]
[-vpi RANGE 0-255]
[-vpi_step]
[-vlan_user_priority RANGE 0-7]
[-te_unresv_bw_priority0 REGEXP ^[0-9]+$]
[-te_unresv_bw_priority1 REGEXP ^[0-9]+$]
[-te_unresv_bw_priority2 REGEXP ^[0-9]+$]

16-2 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

[-te_unresv_bw_priority3 REGEXP ^[0-9]+$]


[-te_unresv_bw_priority4 REGEXP ^[0-9]+$]
[-te_unresv_bw_priority5 REGEXP ^[0-9]+$]
[-te_unresv_bw_priority6 REGEXP ^[0-9]+$]
[-te_unresv_bw_priority7 REGEXP ^[0-9]+$]
[-te_router_id IP]
[-graceful_restart_enable CHOICES 0 1]
[-instance_id_step RANGE 0-65535]
[-mac_address_init]
[-no_write FLAG]
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
[-reset]
[-vlan CHOICES 0 1]
[-vlan_priority RANGE 0-7 (DEFAULT 0)]
[-poll_interval]
[-lsa_retransmit_delay]
[-transmit_delay]
[-max_lsas_per_pkt]
[-host_route]
[-neighbor_dr_eligibility]
[-te_admin_group]

ARGUMENTS

-mode Valid choices are:

Value Usage

enable Enables the OSPF router on the Ixia inter-


face.
disable Disables the OSPF router.
delete Deletes the OSPF router on the Ixia interface.
create Creates the OSPF router on the Ixia interface.
modify Modifies the OSPF router on the Ixia inter-
face.

-session_type The OSPF version to be emulated. CHOICES: ospfv2 ospfv3.

-area_id The OSPF area ID associated with the interface.

-area_id_step The OSPF area ID step associated with the -area_id option on the ISPF interface.

-area_type The "area_type" advertised in the Router LSA interface list. Valid choices are:

Value Usage

external-capable (default) A transit network.


ppp A point-to-point network.
stub A stub network.

HLTAPI Commands, Release 2.80 Rev. B 16-3


OSPF APIs
16
-authentication_mode This option defines the authentification mode used for OSPF. Valid choices are:

Value Usage

null (default) No authentication


simple Clear text authentication (see also -password)
md5 MD5 based authentication (see also -md5_
key and -md5_key_id)

-count Defines the number of OSPF routers to configure on the -port_handle.

-dead_interval The time after which the DUT router is considered dead if it does not send
HELLO messages.

-demand_circuit Enables the Demand Circuit bit. Pertains to handling of demand circuits (DCs)
by the router. CHOICES 0 1

-handle OSPF session handle for using the modes delete, modify, enable, and disable.

-hello_interval The time between HELLO messages sent over the interface. RANGE 1-65535

-interface_cost The metric associated with the OSPF interface. RANGE 1-65535

-intf_ip_addr The IP address of the Ixia Simulated OSPF router. IP

-intf_ip_addr_step What step will be use for incrementing the -intf_ip_addr option. IP

-intf_prefix_length Defines the mask of the IP address used for the Ixia (-intf_ip_addr) and the DUT
interface. RANGE 1-128

-instance_id Defines the instance ID of the OSPFv3 process. It allows multiple instances of
the OSPFv3 protocol to be run simultaneously over the same link. RANGE 0-
65535

-loopback_ip_addr Defines the IP address of the loopback interface for MPLS VPN testing.

-loopback_ip_addr_step Defines the IP address step of the loopback interface for MPLS VPN.

-lsa_discard_mode Enables/Disables the LSA discard mode on the OSPF router. CHOICES 0 1

-md5_key Active only when "MD5" is selected in the Authentication field. Enter a value to
be used as a "secret" MD5 Key.

-md5_key_id Active only when "MD5" is selected in the Authentication field. Enter a value to
be used as a Key ID. This identifier is associated with the MD5 Key entered in
the field below.

-mtu The advertised MTU value in database entries sent to other routers create on the
Ixia interface. RANGE 512-4470

-neighbor_intf_ip_ The IP address of the DUT OSPF Interface. IP


addr

-neighbor_intf_ip_addr_ What step will be use for incrementing the -neighbor_intf_ip_addr option.
step

16-4 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

-network_type Indicates the type of network for the interface. Valid choices are:

Value Usage

broadcast (default) Indicates that the network is a broad-


cast
network, as in an Ethernet connection. N/A
ptop Indicates that the network is point to point.
ptomp Indicates that the network is point to multi-
point

-option_bits The bit sum of the different OSPF option bits. This switch is for users to custom-
ize options since area_type will determine a default value for those bits. The
Demand circuit option can be modified with the -demand_circuit option. In HEX.

-password Password to be used in the OSPF authentication mode is enabled and set to "sim-
ple".

-router_id The Router ID for this emulated OSPF Router, in IPv4 format. IP

-router_id_step The Router ID step for this emulated OSPF Router, in IPv4 format. IP

-router_priority The priority of the interface, for use in election of the designated or backup mas-
ter. RANGE 0-255

-te_enable If set to 1, this will enable Traffic Engineering on the OSPF router. The user can
then configure the TE parameters by using "-te_metric", "-te_max_bw", "-te_
max_resv_bw", "-te_unresv_bw_priority0-7".

-te_max_bw If "-enable_te" is 1, then this indicates the maximum bandwidth that can be used
on the link between this interface and its neighbors in the outbound direction.

-te_max_resv_bw If "-enable_te" is 1, then this indicates the maximum bandwidth, in bytes per sec-
ond, that can be reserved on the link between this interface and its neighbors in
the outbound direction.

-te_unresv_bw_priority0 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 0 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 0. The value must be less
than the maxReservableBandwidth option.

-te_unresv_bw_priority1 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 1 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 1. The value must be less
than the maxReservableBandwidth option.

-te_unresv_bw_priority2 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 2 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 2. The value must be less
than the maxReservableBandwidth option.

-te_unresv_bw_priority3 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 3 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 3. The value must be less
than the maxReservableBandwidth option.

HLTAPI Commands, Release 2.80 Rev. B 16-5


OSPF APIs
16
-te_unresv_bw_priority4 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 4 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 4. The value must be less
than the maxReservableBandwidth option.

-te_unresv_bw_priority5 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 5 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 5. The value must be less
than the maxReservableBandwidth option.

-te_unresv_bw_priority6 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 6 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 6. The value must be less
than the maxReservableBandwidth option.

-te_unresv_bw_priority7 If "-enable_te" is 1, then this value indicates the amount of bandwidth, in bytes
per second, not yet reserved at the 7 priority level. This value corresponds to the
bandwidth that can be reserved with a setup priority of 7. The value must be less
than the maxReservableBandwidth option.

-te_router_id The router ID of the TE enabled OSPF router. IP

-te_metric If set to 1, then this indicates the traffic engineering metric associated with the
interface. RANGE 1-2147483647

-vci VCI for emulated router node. RANGE 0-65535

-vci_step The step value used for incrementing the -vci option.

-vlan_id If VLAN is enable on the Ixia interface, this option will configure the VLAN
number. RANGE 0-4095

-vlan_id_mode If the user configures more than one interface on the Ixia with VLAN, he can
choose to automatically increment the VLAN tag or leave it idle for each inter-
face. CHOICES fixed increment

-vlan_id_step If the -vlan_id_mode is increment, this will be the step value by which the VLAN
tags are incremented. RANGE 0-4095

-vpi VPI for emulated router node. RANGE 0-255

-vpi_step The step value used for incrementing the -vpi option.

-graceful_restart_enable Will enable graceful restart (HA) on the OSPF neighbor.

-instance_id_step Step at which the -instance_id will be incremented. RANGE 0-65535

-mac_address_init This option defines the MAC address that will be configured on the Ixia inter-
face. If is > 1, this MAC address will increment by default by step of 1.

-no_write If this option is present, the protocol configuration will not be written to the
server.

-port_handle Ixia interface upon which to act.

-reset If this option is selected, this will clear any OSPF router on the targeted interface.

-vlan Will enable/disable VLAN on the interface to be configured. CHOICES 0 1

16-6 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

-vlan_priority Defines the VLAN user priority for the interface. RANGE 0-7

-poll_interval

-lsa_retransmit_delay

-transmit_delay

-max_lsas_per_pkt

-host_route

-neighbor_dr_eligibility

-te_admin_group

RETURN VALUES
Key Value

status $::SUCCESS or $::FAILURE


log If failure, will contain more information
handle The router numbers

EXAMPLES See files starting with OSPFv2 and OSPFv3 in the Samples
subdirectory. Also see some of the L2VPN, L3VPN, MPLS,
and MVPN sample files for further examples of the OSPF
usage.
See the OSPF example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 16-7


OSPF APIs
16

NAME — ::ixia::emulation_ospf_topology_route_config

DESCRIPTION This procedure will add OSPF route(s) to a particular simulated OSPF router Ixia
Interface. The user can configure the properties of the OSPF routes.

SYNOPSIS ::ixia::emulation_ospf_topology_route_config
-mode CHOICES create modify delete
-handle
[-type CHOICES router grid network
summary_routes ext_routes]
[-elem_handle]
[-router_id IP (DEFAULT 0.0.0.0)]
[-router_abr CHOICES 0 1 (DEFAULT 0)]
[-router_asbr CHOICES 0 1 (DEFAULT 0)]
[-router_te CHOICES 0 1 (DEFAULT 0)]
[-grid_row RANGE 1-10000 (DEFAULT 1)]
[-grid_col RANGE 1-10000 (DEFAULT 1)]
[-grid_router_id IP (DEFAULT 0.0.0.0)]
[-grid_router_id_step IP (DEFAULT 0.0.0.0)]
[-grid_link_type CHOICES broadcast
ptop_numbered ptop_unnumbered
(DEFAULT ptop_numbered)]
[-grid_prefix_start IP DEFAULT 0.0.0.0]
[-grid_prefix_length RANGE 1-128 (DEFAULT 24)]
[-grid_prefix_step IP (DEFAULT 0.0.0.1)]
[-grid_connect DEFAULT 1 1]
[-grid_disconnect]
[-grid_te CHOICES 0 1 (DEFAULT 0)]
[-net_ip IP (DEFAULT 0.0.0.0)]
[-net_prefix_length RANGE 1-128 (DEFAULT 24)]
[-summary_number_of_prefix RANGE 1-16000000
(DEFAULT 24)]
[-summary_prefix_start IP (DEFAULT 0.0.0.0)]
[-summary_prefix_length RANGE 0-128 (DEFAULT 24)]
[-summary_prefix_metric RANGE 1-16777215 (DEFAULT 1)]
[-summary_prefix_step DEFAULT 1]
[-external_number_of_prefixRANGE 1-16000000
(DEFAULT 24)]
[-external_prefix_start IP (DEFAULT 0.0.0.0)]
[-external_prefix_length RANGE 0-128 (DEFAULT 24)]
[-external_prefix_metric RANGE 1-16777215 (DEFAULT 1)]
[-external_prefix_type CHOICES 1 2 (DEFAULT 1)]
[-interface_ip_address IP]
[-interface_ip_mask IP]
[-net_prefix_options (DEFAULT 16)]
[-no_write FLAG]
[-router_wcr CHOICES 0 1 (DEFAULT 0)]
[-router_connect]
[-link_enable]
[-link_intf_addr]
[-link_te]
[-link_te_instance]
[-link_te_link_id]
[-link_te_metric]
[-link_te_local_ip_addr]
[-link_te_remote_ip_addr]

16-8 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

[-link_te_type]
[-link_te_admin_group]
[-link_te_max_bw]
[-link_te_max_resv_bw]
[-link_te_unresv_bw_priority0]
[-link_te_unresv_bw_priority1]
[-link_te_unresv_bw_priority2]
[-link_te_unresv_bw_priority3]
[-link_te_unresv_bw_priority4]
[-link_te_unresv_bw_priority5]
[-link_te_unresv_bw_priority6]
[-link_te_unresv_bw_priority7]
[-router_disconnect]
[-grid_stub_per_router]
[-grid_connect_session]
[-net_dr]
[-summary_connect]
[-external_prefix_step]
[-external_prefix_forward_addr]
[-external_connect]
[-nssa_number_of_prefix]
[-nssa_prefix_start]
[-nssa_prefix_length]
[-nssa_prefix_step]
[-nssa_prefix_metric]
[-nssa_prefix_type]
[-nssa_prefix_forward_addr]

ARGUMENTS

-mode Mode of the procedure call. Valid choices are:

Value Usage

create N/A
modify N/A
delete N/A

-handle This option represents the handle the user *must* pass to the "emulation_ospf_
topology_route_config" procedure. This option specifies on which OSPF router
to configure the OSPF route range. The OSPF router handle(s) are returned by
the procedure "emulation_ospf_config" when configuring OSPF routers on the
Ixia interface.

-elem_handle This option specifies on which topology element to configure the route options.
The user must pass in this option if the "type" is modify or delete.

-type The type of topology route to create. Valid choices are:

Value Usage

router Individual OSPF router.


grid A rectangular grid of routers.
network A subnet behind the selected session router.
summary_routes A pool of summary route addresses.
ext_routes A pool of external route addresses.

HLTAPI Commands, Release 2.80 Rev. B 16-9


OSPF APIs
16
-router_id The ID associated with the router.

-router_abr If true (1), set router to be an area boundary router (ABR). Correspond to E
(external) bit in router LSA.

(DEFAULT = 1)

-router_asbr If true (1), set router to be an AS boundary router (ASBR). Correspond to B


(Border) bit in router LSA.

(DEFAULT = 1)

-router_virtual_link_endpt This option is supported for OSPFV3 only. Indicates that the router is an end-
point of one or more fully adjacent virtual links.

-router_te If true (1), enable traffic engineering. OSPFv2 only.

(DEFAULT = 0)

-grid_row Defines number of rows in a grid.

-grid_col Defines number of columns in a grid.

-grid_router_id The first router ID of the grid.

-grid_router_id_step The increment step for the router ID in a grid.

-grid_prefix_start The IP subnet address associated with the first router.

-grid_prefix_length The length of the mask associated with the grid_prefix_start.

-grid_prefix_step This is the value used to increment the subnet address by between successively
generated routers.

-grid_connect Connects a router in the grid, as specified by the row and column, to the session
router of specified OSPF session. The format for entering the row and column is
"grid_connect <row> <col>". By default, the 1st row and 1st column router is
connected to the session router of its parent session.

-grid_te If true (1), enable traffic engineering on the router grid. OSPFv2 only. This can
overwrite the settings on the session router.

(DEFAULT = 0)

-net_ip IP address of the network (transit link) behind the session router.

-net_prefix_length IP mask of the network (transit link).

-summary_number_of_ The number of prefixes to be advertised. This option is for summary route only.
prefix

-summary_prefix_start The IP address of the routes to be advertised.

-summary_prefix_length The number of bits in the prefixes to be advertised. For example, a value of 24 is
equivalent to a network mask of 255.255.255.0.

-summary_prefix_step Supported in OSPFv3 only. The increment used to generate multiple summary
addresses.

16-10 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

-summary_prefix_metric The cost metric associated with the route.

-external_number_of_ The number of prefixes to be advertised. This option is for external route only.
prefix

-external_prefix_start The IP address of the routes to be advertised.

-external_prefix_length The number of bits in the prefixes to be advertised. For example, a value of 24 is
equivalent to a network mask of 255.255.255.0.

-external_prefix_step Supported in OSPFv3 only. The increment used to generate multiple summary
addresses.

-external_prefix_metric The cost metric associated with the route.

-external_prefix_type Valid choices are:

Value Usage
1 Outside the area.
2 Outside the area, but with metrics which are
larger than any internal metric.

-interface_ip_address For OSPFv2 only. IP address of the unconnected interface between the router/
grid to the session router.

(DEFAULT = 0.0.0.0)

-interface_ip_mask For OSPFv2 only.

IP mask of the un-connected interface between the router/grid to the session


router.

(DEFAULT = 255.255.255.0)

-interface_ip_options For OSPFv2 only.

Options related to the interface. Multiple options may be combined using a logi-
cal or. Valid choices are:

Value Usage

ospfOptionBitTypeOfService 0x01
ospfOptionBitExternalRouting 0x02
ospfOptionBitMulticast 0x04
ospfOptionBitNSSACapability 0x08
ospfOptionBitExternalAttributes 0x10
ospfOptionBitDemandCircuit 0x20
ospfOptionBitLSANoForward 0x40
ospfOptionBitUnused 0x80

HLTAPI Commands, Release 2.80 Rev. B 16-11


OSPF APIs
16
-net_prefix_options For OSPFv3 only. An 8-bit quantity with options related to the IP address of the
network (transit link).

(DEFAULT = 0)

Multiple bits may be combined using a logical "or".

Valid choices are:

Value Usage

ospfV3PrefixOptionPBit 0x08--The propagate bit, which is set on


NSSA area prefixes that should be re-adver-
tised at the NSSA area border.
ospfV3PrefixOptionMCBit 0x04--The multicast capability bit, which
should be set if the prefix should be included
in IPv6 multicast routing calculations.
ospfV3PrefixOptionLABit 0x02--The local address capability bit, which
should be set if the prefix is actually an IPv6
interface address of the advertising router.
ospfV3PrefixOptionNUBit 0x01--The no unicast bit, which should be set
if the prefix should be excluded from IPv6 uni-
cast calculations.

-no_write If this option is present, the protocol configuration will not be

written to the server.

-router_wcr Indicates that the router is a wild-card multicast receiver and will

receive multicast datagrams regardless of destination.

-router_connect

-link_enable

-link_intf_addr

-link_te

-link_te_instance

-link_te_link_id

-link_te_metric

-link_te_local_ip_addr

-link_te_remote_ip_addr

-link_te_type

-link_te_admin_group

-link_te_max_bw

-link_te_max_resv_bw

16-12 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

-link_te_unresv_bw_
priority0

-link_te_unresv_bw_
priority1

-link_te_unresv_bw_
priority2

-link_te_unresv_bw_
priority3

-link_te_unresv_bw_
priority4

-link_te_unresv_bw_
priority5

-link_te_unresv_bw_
priority6

-link_te_unresv_bw_
priority7

-router_disconnect

-grid_stub_per_router

-grid_connect_session

-net_dr

-summary_connect

-external_prefix_step

-external_prefix_forward_
addr

-external_connect

-nssa_number_of_prefix

-nssa_prefix_start

-nssa_prefix_length

-nssa_prefix_step

-nssa_prefix_metric

-nssa_prefix_type

-nssa_prefix_forward_addr

HLTAPI Commands, Release 2.80 Rev. B 16-13


OSPF APIs
16
RETURN VALUES
Key Value

status $::SUCCESS or $::FAILURE


log If failure, will contain more information

EXAMPLES See files starting with OSPFv2 and OSPFv3 in the Samples
subdirectory. Also see some of the L2VPN, L3VPN, MPLS,
and MVPN sample files for further examples of the OSPF
usage.
See the OSPF example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

Caveats:

This function does not support the following return values:

router

. connected_handles

. <handle1>.link_type <link_type>

. te_link_lsa <te_link_lsa_handle>

. link_type <link_type_list>

. router_lsa <router_lsa_handle>

. link_lsa <ospfv3_link_lsa_handle>

. intra_area_pfx_lsa <ospfv3_intra_area_prefix_lsa_handle>

. te_router_lsa <ospfv2_te_router_lsa_handle>

. te_link_lsas <ospfv2_te_link_lsa_handle_list

grid

. router.$row.$col <router_handle>

network

. network_lsa <lsa_handle>

. intra_area_pfx_lsa <ospfv3_intra_area_prefix_lsa_handle>

. connected_routers <router_handle_list>

summary

. summary_lsas <lsa_pool_handle>

. connected_routers <router_handle_list> external

16-14 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

. external_lsas <lsa_pool_handle>

. connected_routers <router_handle_list>

nssa

. nssa_lsas <lsa_pool_handle>

. connected_routers <router_handle_list>

. version {ospfv2|ospfv3}

handle (ospf_session_handle)/elem_handle must be created and used within one


wish shell.

OSPFv3

Router and grid type do not support "modify" mode. This is due to ixTclHal's
lack of getNetworkRange option with a lableId. To workaround, delete then re-
create router or grid topology element.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 16-15


OSPF APIs
16

NAME — ::ixia::emulation_ospf_control

DESCRIPTION

SYNOPSIS ::ixia::emulation_ospf_control
-mode CHOICES create delete modify enable disable
-handle
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-advertise]
[-withdraw]
[-advertise_lsa]
[-withdraw_lsa]
[-flap_routes]
[-flap_lsa]
[-flap_count]
[-flap_interval_time]
[-flap_down_time]

ARGUMENTS

-mode Tells which option will be performed on the OSPF protocol.

Valid choices are:

Value Usage
restart N/A
start N/A
stop N/A

-port_handle A list of ports on which to control the OSPF protocol. If this option is not present,
the port in the handle option will be applied.

-handle This option represents the handle the user *must* pass to the "emulation_ospf_
control" procedure. This option specifies on which OSPF session to control. If
port_handle option is present, the port_handle takes precedence over port in the
router handle. The OSPF router handle(s) is returned by the procedure
::ixia::emulation_ospf_config when configuring router handle(s).

-advertise

-withdraw

-advertise_lsa

-withdraw_lsa

-flap_routes

-flap_lsa

-flap_count

-flap_interval_time

-flap_down_time

16-16 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

RETURN VALUES
Key Value

status $::SUCCESS or $::FAILURE


log If failure, will contain more information

EXAMPLES See files starting with OSPFv2 and OSPFv3 in the Samples
subdirectory. Also see some of the L2VPN, L3VPN, MPLS,
and MVPN sample files for further examples of the OSPF
usage.
See the OSPF example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 16-17


OSPF APIs
16

NAME — ::ixia::emulation_ospf_lsa_config

DESCRIPTION This procedure will add, modify, or delete a User LSA to a particular OSPF ses-
sion. The user must create a OSPF session using the procedure "emulation_ospf_
config" prior to calling this procedure.

SYNOPSIS ::ixia::emulation_ospf_lsa_config
-mode CHOICES create modify delete
-handle
-lsa_handle
[-type CHOICES router network
summary_pool asbr_summary ext_pool (
DEFAULT routerospfv2)]
[-adv_router_id IP]
[-link_state_id IP]
[-options RANGE 0-255]
[-router_abr CHOICES 0 1 (DEFAULT 0)]
[-router_asbr CHOICES 0 1 (DEFAULT 0)]
[-router_virtual_link_endpt CHOICES 0 1 (DEFAULT 0)]
[-router_link_mode CHOICES create]
[-router_link_id IP]
[-router_link_data IP]
[-router_link_type CHOICES ptop transit stub
virtual (DEFAULT ptop)]
[-router_link_metric RANGE 1-65535]
[-net_prefix_length]
[-net_attached_router CHOICES create delete reset
(DEFAULT create)]
[-attached_router_id IP]
[-summary_number_of_prefix]
[-summary_prefix_start IP]
[-summary_prefix_length]
[-summary_prefix_step IP]
[-summary_prefix_metric RANGE 1-16777215]
[-external_number_of_prefix]
[-external_prefix_start IP]
[-external_prefix_length]
[-external_prefix_step IP]
[-external_prefix_metric RANGE 1-16777215]
[-external_prefix_type CHOICES 1 2]
[-external_prefix_forward_addr IP]
[-ls_type_function_code RANGE 0-8191]
[-external_metric_fbit CHOICES 1 0]
[-external_metric_tbit CHOICES 1 0]
[-external_route_tag IP]
[-link_state_id_step IP (DEFAULT 0.0.0.0)]
[-no_write FLAG]
[-router_wildcard CHOICES 1 0]
[-prefix_options]
[-auto_update]
[-auto_ls_checksum]
[-auto_ls_age]
[-auto_ls_seq]
[-ls_checksum]
[-ls_age]
[-ls_seq]

16-18 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

[-ls_type_s_bits]
[-ls_type_u_bit]
[-nssa_number_of_prefix]
[-nssa_prefix_start]
[-nssa_prefix_length]
[-nssa_prefix_step]
[-nssa_prefix_metric]
[-nssa_prefix_type]
[-nssa_prefix_forward_addr]
[-router_link_idx]

ARGUMENTS

-mode Mode of the procedure call. Valid choices are:

Value Usage

create N/A
modify N/A
delete N/A

-handle This option represents the handle the user *must* pass to the "emulation_ospf_
lsa_config" procedure. This option specifies on which OSPF router to configure
the OSPF User LSA. The OSPF router handle(s) are returned by the procedure
"emulation_ospf_config" when configuring OSPF routers on the Ixia interface.

-lsa_handle This option specifies on which OSPF User LSA to configure. This option *must*
be passed if the -mode option is modify or delete.

The OSPF LSA handle(s) are returned by the procedure "emulation_ospf_lsa_


config" when creating OSPF user LSA(s) on the Ixia interface.

-type This option specified the type of the LSA. The choices are: router, network,
summary_pool, asbr_summary, ext_pool. The user *must* pass this option when
creating a LSA.

-adv_router_id The router ID of the router that is originating the LSA.

(DEFAULT = 0.0.0.0)

-link_state_id The router ID of the originating router. This field uniquely identified the LSA in
the link-state database.

-options The optional capabilities supported by the OSPFv2 router. For OSPFv3, use
OSPFv3 specific options. Multiple options may be combined using a logical
"or". Valid choices are:

Value Usage
ospfOptionBitTypeOfService 0x01
ospfOptionBitExternalRouting 0x02
ospfOptionBitMulticast 0x04
ospfOptionBitNSSACapability 0x08
ospfOptionBitExternalAttributes 0x10
ospfOptionBitDemandCircuit 0x20
ospfOptionBitLSANoForward 0x40

HLTAPI Commands, Release 2.80 Rev. B 16-19


OSPF APIs
16

Value Usage

ospfOptionBitUnused 0x80

-router_asbr Set router to be an AS boundary router (ASBR). Correspond to B (border) bit in


router LSA.

-router_virtual_link_endpt Set router to be an endpoint of an active virtual link. Correspond to V (virtual


link endpoint) bit in router LSA.

-router_link_mode This option specifies the mode for configuring router links in a router LSA. Note
that the modify and delete mode do not work. Valid choices are:

Value Usage

create N/A
modify N/A
delete N/A

-router_link_id Identifies the object that this router link connects to, depending on the router_
link_type option. Valid choices are:

Value Usage

ptop The neighboring routerís router ID.


transit The IP address of the Designated Router.
stub The IP network/subnet number.
virtual The neighboring routerís router ID.

-router_link_data The meaning of this option depends on the router_link_type option. Valid
choices are:

Value Usage

ptop The interfaceís MIB-II.


transit The router interfaceís IP address.
stub The networkís IP address mask.
virtual The router interfaceís IP address.

-router_link_type The type of the router link. Valid choices are:

Value Usage

ptop A point-to-point connection to another router.


transit (default) A connection to a transit network.
stub A connection a stub network. virtual - A vir-
tual link.

-router_link_metric The cost of using the router link, applied to all TOS values.

(DEFAULT = 0)

-net_prefix_length The length in bits of the IP address mask for the network.

16-20 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

-net_attached_router The option specifies the mode in configuring router IDs in the area. Note that
delete and reset does not work. Valid choices are:

Value Usage

create N/A
delete N/A
reset N/A

-attached_router_id A list of router IDs in the area, in IP address format separated by spaces.

-summary_number_of_ The number of Summary IP LSAs to generate.


prefix

-summary_prefix_start This option is valid for OSPFv3 summary_pool route type. The prefix address to
be advertised in the LSA. Although only prefixLength bits of the IPv6 address
are meaningful, a full IPv6 address should be specified.

-summary_prefix_length The number of high-order bits of prefixAddress that are significant.

-summary_prefix_step If summary_number_of_prefix is greater than 1, this is the value that will be


added to the most significant summary_prefix_length bits of summary_prefix_
start between generated LSAs. This is also the value to increment the link_state_
id.

-summary_prefix_metric The cost of the route for all TOS levels.

-external_number_of_ The number of External IP LSAs to generate.


prefix

-external_prefix_start This option is valid for OSPFv3 external route type. The prefix address to be
advertised in the LSA. Although only prefixLength bits of the IPv6 address are
meaningful, a full IPv6 address should be specified.

-external_prefix_length The number of high-order bits of prefixAddress that are significant.

-external_prefix_step If external_number_of_prefix is greater than 1,this is the value that will be added
to the most significant external_prefix_length bits of external_prefix_start
between generated LSAs. This is also the value to increment the link_state_id.

-external_prefix_metric The cost of the route for all TOS levels.

-external_prefix_type The type of external metric. A value of 1 implies type 2 metric. A value of 0
implies type 1.

-external_prefix_forward_ If the external_metric_fbit is true, data traffic for the advertised destination will
addr be forwarded to this fully qualified IPv6 address.

-external_metric_fbit The value of the external metric's F-bit. If true, then the forwardingAddress field
is to be included in the LSA.

-external_metric_tbit The value of the external metric's T-bit. If true, then the externalRouteTag field
will be included in the LSA.

-external_route_tag If the external_metric_tbit is true, an additional value to be used for external


routes between AS boundary routers. This field is not used within OSPF.

HLTAPI Commands, Release 2.80 Rev. B 16-21


OSPF APIs
16
-link_state_id_step If summary_number_of_prefix is greater than 1, the value to increment the link_
state_id by for each LSA. The value is expressed in IPv4 format.

(DEFAULT = 0.0.0.0)

-no_write If this option is present, the protocol configuration will not be written to the
server.

-router_wildcard Indicates that the router is a wild-card multicast receiver and will receive multi-
cast datagrams regardless of destination.

-prefix_options An 8-bit quantity with options related to the prefixAddress. Multiple bits may be
combined using a logical or. Valid choices are:

Value Usage

ospfV3PrefixOptionPBit 0x08--The propagate bit, which is set on


NSSA area prefixes that should be re-adver-
tised at the NSSA area border.
ospfV3PrefixOptionMCBit 0x04--The multicast capability bit, which
should be set if the prefix should be included
in IPv6 multicast routing calculations.
ospfV3PrefixOptionLABit 0x02--The local address capability bit, which
should be set if the prefix is actually an IPv6
interface address of the advertising router.
ospfV3PrefixOptionNUBit 0x01--The no unicast bit, which should be set
if the prefix should be excluded from IPv6 uni-
cast calculations.

-auto_update

-auto_ls_checksum

-auto_ls_age

-auto_ls_seq

-ls_checksum

-ls_age

-ls_seq

-ls_type_s_bits

-ls_type_u_bit

-nssa_number_of_prefix

-nssa_prefix_start

-nssa_prefix_length

-nssa_prefix_step

-nssa_prefix_metric

-nssa_prefix_type

16-22 HLTAPI Commands, Release 2.80 Rev. B


OSPF APIs

-nssa_prefix_forward_addr

-router_link_idx

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log On status of failure, gives detailed informa-
tion.
lsa_handle
adv_router_id
For Router LSA
router.links.<idx = 0>.id
router.links.<idx = 0>.data
router.links.<idx = 0>.type
router.links.<idx = n>.id
router.links.<idx = n>.data
router.links.<idx = n>.type#
For Network LSA
network.attached_router_ids
For Summary_Pool and ASBR_Sum-
mary LSA
summary.num_prefix
summary.prefix_start
summary.prefix_length
summary.prefix_step
For Ext_Pool LSA
external.num_prefix
external.prefix_start
external.prefix_length
external.prefix_step

EXAMPLES See files starting with OSPFv2 and OSPFv3 in the Samples
subdirectory. Also see some of the L2VPN, L3VPN, MPLS,
and MVPN sample files for further examples of the OSPF
usage.
See the OSPF example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification. In OSPFv3, asbr_summary type and the
summary_prefix_length field do not apply and are not returned in returnLis.

Caveats: Due to the problem with getting item with local lable ID, there are the
following limitaions:

- handle (ospf_session_handle) must be gotten within the same wish shell.

HLTAPI Commands, Release 2.80 Rev. B 16-23


OSPF APIs
16
- router_link_mode of modify and delete is not supported.

- net_attached_router of delete and reset is not supported.

- For OSPFv3, only one lsa can be created per router handle.

SEE ALSO

16-24 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs
17
Chapter 17:

This chapter covers the following topics:

• ::ixia::emulation_pim_config on page 17-2.

• ::ixia::emulation_pim_group_config on page 17-9.

• ::ixia::emulation_pim_control on page 17-13.

HLTAPI Commands, Release 2.80 Rev. B 17-1


PIM-SM APIs
17

NAME — ::ixia::emulation_pim_config

DESCRIPTION This procedure will configure PIM SM interface.

SYNOPSIS ::ixia::emulation_pim_config
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$
-mode CHOICES create modify delete
disable enable enable_all disable_all
[-handle pimsm_session_handle]
[-interface_handle]
[-pim_mode CHOICES sm ssm]
[-type CHOICES remote_rp]
[-ip_version CHOICES 4 6]
[-count NUMERIC]
[-intf_ip_addr IP]
[-intf_ip_addr_step IP]
[-intf_ip_prefix_len RANGE 1-128]
[-router_id IP]
[-router_id_step IP]
[-neighbor_intf_ip_addr IP]
[-dr_priority NUMERIC]
[-bidir_capable CHOICES 0 1]
[-hello_interval NUMERIC]
[-hello_holdtime NUMERIC]
[-join_prune_interval NUMERIC]
[-join_prune_holdtime NUMERIC]
[-prune_delay_enable CHOICES 0 1]
[-prune_delay RANGE 100-32767]
[-override_interval RANGE 100-65535]
[-vlan_id RANGE 0-4096]
[-vlan_id_mode CHOICES fixed increment]
[-vlan_id_step RANGE 0-4096]
[-vlan_user_priority RANGE 0-7]
[-vlan_cfi CHOICES 0 1]
[-default_mdt_ip IP]
[-default_mdt_ip_incr IP DEFAULT 0]
[-gateway_intf_ip_addr IP]
[-gateway_intf_ip_addr_step IP]
[-gre_checksum_enable CHOICES 0 1
[-gre_key_enable CHOICES 0 1 DEFAULT 0]
[-gre_key_in CHOICES 0 1 DEFAULT 0]
[-gre_key_out CHOICES 0 1 DEFAULT 0]
[-generation_id_mode CHOICES increment random
constant]
[-intf_ip_prefix_length RANGE 1-128]
[-mac_address_init]
[-mvpn_enable CHOICES 0 1 DEFAULT 0]
[-mvpn_pe_count NUMERIC DEFAULT 1]
[-mvpn_pe_ip IP]
[-mvpn_pe_ip_incr IP]
[-mvrf_count NUMERIC]
[-mvrf_unique CHOICES 0 1 DEFAULT 0]
[-no_write FLAG]
[-prune_delay_tbit CHOICES 0 1]
[-send_generation_id CHOICES 0 1]
[-reset]

17-2 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs

[-vlan CHOICES 0 1]
[-writeFlag CHOICES write nowrite
(DEPRECATED)]
[-keepalive_period RANGE 1-3600]
[-register_suppression_time RANGE 1-3600]
[-register_probe_time RANGE 1-30]
[-c_rp_addr IP]
[-c_rp_bsr_addr IP]
[-c_rp_priority RANGE 0-255]
[-c_rp_adv_holdtime NUMERIC]
[-c_rp_adv CHOICES 0 1]
[-c_rp_adv_interval RANGE 1-3600]
[-c_rp_group_mode CHOICES create delete modify]
[-c_rp_group_handle group range handle]
[-c_rp_group_addr IP]
[-c_rp_group_prefix_len RANGE 1-128]
[-c_rp_group_admin CHOICES 0 1]
[-c_rp_group_bidir CHOICES 0 1]
[-c_bsr_addr IP]
[-c_bsr_priority RANGE 0-255]
[-c_bsr_adv CHOICES 0 1]
[-c_bsr_rp_mode CHOICES create delete modify]
[-c_bsr_rp_handle RP set handle]
[-c_bsr_group_addr IP]
[-c_bsr_group_prefix_len RANGE 1-128]
[-c_bsr_group_admin CHOICES 0 1]
[-c_bsr_group_bidir CHOICES 0 1]
[-c_bsr_rp_addr IP]
[-c_bsr_rp_priority RANGE 0-255]
[-c_bsr_rp_holdtime NUMERIC]
[-bs_period RANGE 1-3600]

ARGUMENTS

-mode This option defines the action to be taken. Limitations: for modify mode, the fol-
lowing options cannot be changed: router_id, dr_priority, join_prune_holdtime,
and join_prune_interval. Valid choices are:

Value Usage
create N/A
modify N/A
delete N/A
disable N/A
enable N/A
enable_all N/A
disable_all N/A

-port_handle The port on which the PIM-SM neighbor pair is to be created.

-handle PIM-SM handle if the option -mode is not create.

-interface_handle A handle or list of the handles that are returned from the interface_config call.
These provide a direct link to an already existing interface and supercede the use
of the intf_ip_addr value.

HLTAPI Commands, Release 2.80 Rev. B 17-3


PIM-SM APIs
17
-pim_mode Supports SM (sparse mode) and SSM (source spefic multicast).

-type Type of the PIM session router. Supports remote_rp type only. c_rp and c_bsr
types are not supported.

-ip_version The IP version of the interface. Choices are: 4, 6

-count Number of PIM-SM sessions to create on the interface.

(DEFAULT = 1)

-intf_ip_addr The interface IP address.

-intf_ip_addr_step The interface IP address octet to be incremented by given step.

-intf_ip_prefix_len The prefix length on the interface.

(DEFAULT = 24)

-router_id The ID of the router in IPv4 format.

(DEFAULT = 0.0.0.1)

-router_id_step The value use to increment the router_id when count > 1.

(DEFAULT = 0.0.0.1)

-neighbor_intf_ip_addr The interface IP address of PIM-SM neighbor (next hop).

(DEFAULT = 0.0.0.0)

-dr_priority The Designated Router (DR) priority assigned to this simulated router.

(DEFAULT = 0).

-bidir_capable It true (1), enable bi-directional PIM.

(DEFAULT = 0)

-hello_interval Hello interval in seconds.

(DEFAULT = 30)

-hello_holdtime The length of time, in seconds, between the transmission of Hello messages.

(DEFAULT = 105)

-join_prune_interval The length of time, in seconds, between transmission of Join/Prune messages.


Also called t_periodic in RFCs.

(DEFAULT = 60)

-join_prune_holdtime The period, in seconds, during which a router receiving a Join/Prune must keep
the state alive. The default is 3 times the Join/Prune interval. If this value is
65536 (0xffff), then the timeout is infinite and if this value isi 0, the timeout is
immediate.

(DEFAULT = 180)

17-4 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs

-prune_delay_enable If true (1), the LAN prune propagation delay is enabled for this interface.

(DEFAULT = 0)

-prune_delay The value, in milliseconds, of the LAN prune propagation delay for this inter-
face. It indicates to an upstream router how long to wait for a Join override mes-
sage before it prunes an interface.

(DEFAULT = 500)

-override_interval The delay interval, in milliseconds, for randomizing the transmission time for
override messages, which are used when scheduling a delayed Join message.

(DEFAULT = 2500)

-vlan_id If VLAN is enable on the Ixia interface, this option will configure the VLAN
number. RANGE 0-4095.

(DEFAULT = 100)

-vlan_id_mode If the user configures more than one interface on the Ixia with VLAN, he can
choose to automatically increment the VLAN tag or leave it idle for each inter-
face.

(DEFAULT = increment)

-vlan_id_step If the -vlan_id_mode is increment, this will be the step value by which the VLAN
tags are incremented. RANGE 0-4095

(DEFAULT = 1)

-vlan_user_priority VLAN user priority assigned to emulated router node. RANGE 0-7

(DEFAULT = 0)

-default_mdt_ip Defines the IP address of the default MDT, if multiple mVPN PEs are created.

-default_mdt_ip_incr Defines the IP address increment for each default MDT.

-gateway_intf_ip_addr The gateway IP address of the port interface.

-gateway_intf_ip_addr_ The gateway IP address octet to be incremented by given step.


step
(DEFAULT = 0.0.0.1)

-gre_checksum_enable Checksum for GRE tunneling.

(DEFAULT = 0)

-gre_key_enable Key for GRE tunneling.

(DEFAULT = 0)

-gre_key_in The in key for GRE tunneling.

(DEFAULT = 0)

-gre_key_out The out key for GRE tunneling.

(DEFAULT = 0)

HLTAPI Commands, Release 2.80 Rev. B 17-5


PIM-SM APIs
17
-generation_id_mode The mode used for creating the 32-bit value for the Generation Identifier (GenID)
option in Hello messages. Valid choices are:

Value Usage

increment N/A
random N/A
constant N/A

-intf_ip_prefix_length The prefix length on the interface (DEFAULT = 24). NOTE: This value is being
maintained for backwards compatibility and shouldn't be used going forward.
Please use the -intf_ip_prefix_len value.

-mac_address_init The MAC address interface.

-mvpn_enable Will enable the mVPN on the PIM router.

(DEFAULT = 0)

-mvpn_pe_count Defines the number of mVPN PIM routers to create by the command.

(DEFAULT = 1)

-mvpn_pe_ip Defines the IP address of the mVPN PIM router. Also defines the Router ID of
the mVPN PIM Local Router and has to be consistent with the IGP protocol
router ID. Note: The global PIM router ID shall take the interface IP address for
Router ID.

-mvpn_pe_ip_incr Defines the IP increment for the mVPN PIM router if multiples are being created.
Also defines the Router ID increment of the mVPN PIM Local Router ID and has
to be consistent with the IGP protocol router ID increment.

-mvrf_count Defines the number of mVRFs per mVPN (PIM router) which needs to be con-
sistent with the BGP mVRF count. Also when creating the GRE tunnels, each
GRE tunnel grouping needs to have the PE loopback address as the IP source.

-mvrf_unique When -mvpn_enable is 1, this option is used for creation of unique MVRFs if
enabled.

(DEFAULT 0)

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-prune_delay_tbit If true (1), the T flag bit in the LAN Prune Delay option of the Hello message is
set (= 1). Setting this bit specifies that the sending PIM-SM router has the ability
to disable Join message suppression.

-reset If this option is present, all the neightbor pair on the router is deleted.

-send_generation_id If ture (1), the generation ID is included in Hello messages.

-vlan Number of VLANs to be configured for the interface.

-writeFlag DEPRECATED - use -no_write instead.

-keepalive_period

17-6 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs

-register_suppression_time

-register_probe_time

-c_rp_addr

-c_rp_bsr_addr

-c_rp_priority

-c_rp_adv_holdtime

-c_rp_adv

-c_rp_adv_interval

-c_rp_group_mode

-c_rp_group_handle

-c_rp_group_addr

-c_rp_group_prefix_len

-c_rp_group_admin

-c_rp_group_bidir

-c_bsr_addr

-c_bsr_priority

-c_bsr_adv

-c_bsr_rp_mode

-c_bsr_rp_handle

-c_bsr_group_addr

-c_bsr_group_prefix_len

-c_bsr_group_admin

-c_bsr_group_bidir

-c_bsr_rp_addr

-c_bsr_rp_priority

-c_bsr_rp_holdtime

-bs_period

HLTAPI Commands, Release 2.80 Rev. B 17-7


PIM-SM APIs
17
RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
handle The handles for the PIM-SM router created

EXAMPLES See files starting with PIM_ in the Samples subdirectory.


Also see some of the MVPN sample files for further
examples of the PIM usage.
See the PIM example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

SEE ALSO

17-8 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs

NAME — ::ixia::emulation_pim_group_config

DESCRIPTION This procedure configures Multicast groups added to a PIM session. This allows
adding (*,G) or (S,G) entries to PIM session.

SYNOPSIS ::ixia::emulation_pim_group_config
-mode CHOICES create delete
clear_all
-session_handle pim_session_handle
[-group_pool_handle multicast_group_pool_
handle]
[-source_pool_handle source_pool_handles]
[-handle pimsm_session_handle]
[-rp_ip_addr IP]
[-group_pool_mode CHOICES send register]
[-join_prune_aggregation_factor NUMERIC]
[-wildcard_group CHOICES 0 1]
[-s_g_rpt_group CHOICES 0 1]
[-rate_control CHOICES 0 1]
[-interval RANGE 50-1000]
[-join_prune_per_interval NUMERIC]
[-register_per_interval NUMERIC]
[-register_stop_per_interval NUMERIC]
[-flap_interval RANGE 1-65535]
[-no_write FLAG]
[-register_tx_iteration_gap NUMERIC]
[-register_stop_trigger_count RANGE 1-127]
[-register_udp_destination_port RANGE 1-65535]
[-register_udp_source_port RANGE 1-65535]
[-register_triggered_sg CHOICES 0 1]
[-rp_ip_addr_step IP]
[-send_null_register CHOICES 0 2 DEFAULT 0]
[-source_group_mapping CHOICES fully_meshed
one_to_one]
[-spt_switchover CHOICES 0 1]
[-switch_over_interval RANGE 1-65535]
[-writeFlag CHOICES write nowrite]
[-border_bit CHOICES 0 1]

ARGUMENTS

-mode This option defines the action to be taken. Note: modify and delete options are
not supported at this time. Valid choices are:

Value Usage

create An existing multicast group pool is associ-


ated/linked with the specified PIM session.
delete Remove one group pools from this session
clear_all Removes all group pools from this session.

-session_handle PIM-SM session handle.

-group_pool_handle Groups to be added beforehand through procedure emulation_multicast_group_


config.

HLTAPI Commands, Release 2.80 Rev. B 17-9


PIM-SM APIs
17
-source_pool_handle Associate source pool(s) with the group. The source pool(s) must be added
beforehand through procedure emulation_multicast_source_config. Specify one
or more source pool handle(s) for (S,G) entries. None for (*,G) entries. If one or
more are specified, source-specific join/prune will be enabled; otherwise it is dis-
abled.

-handle Group membership handle that associates a group pool with a PIM session. This
option is returned from previous call to this proc with "create" mode. In "mod-
ify" mode, membership handle must be used in conjunction with the session han-
dle to identify the member group pool.

-rp_ip_addr The IP address of Rendezvous Point router for the multicast group pool.

-group_pool_mode Specifies whether the membership pool is used to send or receive PIM messages.
Note: no configuration required for receive mode.

Valid choices are:

Value Usage
send Sends Join/Prunes (downstream DR) mes-
sages.
register Sends Register and NULL Register mes-
sages. (source DR) and receive Stop-Regis-
ter messages.

-join_prune_aggregation_ If > 1, enables the packing of multiple groups in a single packet; however, this
factor option does not specify the exact number groups in a packet.

-wildcard_group If true (1), enable wildcard group. When enabled, (*,*,RP) Join/ Prune messages
are sent. Takes effect only if (S,G) is disabled. (no source pool).

(DEFAULT = 0)

-s_g_rpt_group If true (1), enable (S,G,rpt). When enabled, (S,G,rpt) Join/Prune messages are
sent. Takes effect only if (S,G) is enabled. Note: only one of s_g_rpt_group,
register_triggered_sg, spt_switchover options can be enabled per multicast
group.

(DEFAULT = 0)

-rate_control If true (1), enable rate control on Join/Prune and register messages.

-interval The length of interval (in ms) during which a number of messages will be sent. If
0, send as fast as possible.

-join_prune_per_interval The number of Join/Prune messages sent per interval.

-register_per_interval The number of Register messages sent per interval.

-register_stop_per_interval The number of Register Stop messages sent per interval.

-flap_interval If flap is enabled thru the emulation_pim_control, this is the amount amount of
time, in seconds, between simulated flap events.

(DEFAULT= 60)

17-10 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-register_stop_trigger_ If register_triggered_sg option is enabled (1), this is the count of register mes-
count sages received that will trigger transmission of a (S,G) message.

(DEFAULT = 10)

-register_tx_iteration_gap The gap, in milliseconds, between periodically transmitted Register messages.

(DEFAULT = 5000)

-register_udp_destination_ The number of UDP destination ports in the receiving multicast group.
port
(DEFAULT = 3000)

-register_udp_source_port The number of UDP source ports sending encapsulated UDP packets to multicast
groups via Register messages to the RP.

(DEFAULT = 3000)

-register_triggered_sg When enabled (1), sends (S,G) Join/Prune messages when matching registers
have been received. Sends register stop after registerStopTriggerCount registers
have been received. Note: only one of s_g_rpt_group, register_triggered_sg, spt_
switchover options can be enabled per PIM group.

-send_null_register Enables the transmission of an initial null registration at emulation startup.

-source_group_mapping Set the type of mapping that occurs when routes are advertised. This only applies
for (S,G) and switchover types for MGR and is meaningful for RR. Choices are:
fully_meshed, one_to_one.

-spt_switchover When enabled (1), Sends (*,G)->(S,G) switchover type. Indicates that the simu-
lated router will switch over from a non-source specific group state to a source
specific group state.

Note: only one of s_g_rpt_group, register_triggered_sg, spt_switchover options


can be enabled per PIM group.

-switch_over_interval The time interval, in seconds, allowed for the switch from using the RP tree to
using a source-specific tree. Used when spt_switchover option is enabled.

(DEFAULT = 0)

-writeFlag DEPRECATED - use -no_write instead.

-border_bit

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
handle group_member_handle
group_pool_handle group_pool_handle
source_pool_handles source_pool_handles

HLTAPI Commands, Release 2.80 Rev. B 17-11


PIM-SM APIs
17
EXAMPLES See files starting with PIM_ in the Samples subdirectory.
Also see some of the MVPN sample files for further
examples of the PIM usage.
See the PIM example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

SEE ALSO

17-12 HLTAPI Commands, Release 2.80 Rev. B


PIM-SM APIs

NAME — ::ixia::emulation_pim_control

DESCRIPTION This procedure controls the PIM simulation session.

SYNOP- -mode CHOICES stop start restart


SIS::IXIA::EMULATI [-port_handle port_handle]
ON_PIM_CONTROL [-handle pim_session_handle]
[-flap CHOICES 0 1]
[-flap_interval RANGE 1-65535]
[-group_member_handle group_member_handles]

ARGUMENTS

-mode This option defines the action to be taken. Note: join and prune options are not
supported. Valid choices are:

Value Usage

stop N/A
start N/A
restart. N/A

-port_handle The port on which to perform action on.

-handle PIM-SM session handle. It is returned by emulation_pim_config call.

-flap If true (1), enables simulated flapping of this joins/prune.

(DEFAULT = false)

-flap_interval If flap is true, this is the amount of time, in seconds, between simulated flap
events.

-group_member_handle

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE

EXAMPLES See files starting with PIM_ in the Samples subdirectory.


Also see someof the MVPN sample files for further
examples of the PIM usage.
See the PIM example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 17-13


PIM-SM APIs
17

17-14 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs
18
Chapter 18:

This chapter covers the following topics:

• ::ixia::pppox_config on page 18-2.

• ::ixia::pppox_control on page 18-13.

• ::ixia::pppox_stats on page 18-14.

HLTAPI Commands, Release 2.80 Rev. B 18-1


PPPoX APIs
18

NAME — ::ixia::pppox_config

DESCRIPTION This procedure configures PPPoA, PPPoEoA, PPPoE sessions for the specified
test port. This command allows the user to configure a specified number of
PPPoX sessions on the test port. Each port can have upto 32000 sessions.

SYNOPSIS ::ixia::pppox_config
-port_handle interface
-protocol CHOICES pppoa pppoeoa pppoe
-encap CHOICES vc_mux llcsnap
ethernet_ii ethernet_ii_vlan ethernet_ii_qinq
-num_sessions RANGE 1-32000
[-vci_step RANGE 1-65502]
[-vci_count RANGE 1-16000]
[-pvc_incr_mode CHOICES vpi vci both]
[-vlan_id_step RANGE 1-4094]
[-vlan_user_priority RANGE 0-7]
[-auth_mode CHOICES none pap chap
pap_or_chap]
[-username]
[-password]
[-wildcard_pound_start RANGE 0-65535]
[-wildcard_pound_end RANGE 0-65535]
[-wildcard_question_start RANGE 0-65535]
[-wildcard_question_end RANGE 0-65535]
[-mac_addr MAC]
[-max_configure_req RANGE 1-65535]
[-config_req_timeout RANGE 1-65535]
[-attempt_rate RANGE 1-1000]
[-max_outstanding RANGE 2-2000]
[-max_terminate_req RANGE 1-65535]
[-term_req_timeout RANGE 1-65535]
[-disconnect_rate RANGE 1-200]
[-ip_cp CHOICES ipv4_cp]
[-echo_req RANGE 0-1]
[-local_magic RANGE 0-1]
[-ac_select_list KEYLIST]
[-ac_select_mode CHOICES first_responding
ac_mac ac_name service_name]
[-auth_req_timeout RANGE 1-65535]
[-ac_name ANY]
[-service_name ANY]
[-service_type CHOICES any name DEFAULT any]
[-domain_group_map ]
[-port_role CHOICES access network
DEFAULT access]
[-ppp_local_mode CHOICES local_only local_may
peer_only DEFAULT peer_only]
[-ppp_local_ip IPV4]
[-ppp_local_ip_step IPV4]
[-ppp_local_iid ANY DEFAULT {00 00 00 00 00 00
00 00}]
[-ppp_peer_mode CHOICES local_only local_may
peer_only DEFAULT peer_only]
[-ppp_peer_ip IPV4]
[-ppp_peer_ip_step IPV4]

18-2 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

[-ppp_peer_iid ANY DEFAULT {00 00 00 00 00 00


00 00}]
[-ipv6_pool_addr_prefix_len NUMERIC DEFAULT 64]
[-ipv6_pool_prefix ANY DEFAULT ::]
[-ipv6_pool_prefix_len NUMERIC DEFAULT 48]
[-redial CHOICES 0 1 DEFAULT 1]
[-redial_max NUMERIC DEFAULT 20]
[-redial_timeout NUMERIC DEFAULT 10]
[-intermediate_agent CHOICES 0 1 DEFAULT 0]
[-agent_remote_id ANY]
[-padi_include_tag CHOICES 0 1]
[-pado_include_tag CHOICES 0 1]
[-padr_include_tag CHOICES 0 1]
[-pads_include_tag CHOICES 0 1]
[-l4_flow_type CHOICES none tcp udp tcp_udp
DEFAULT none]
[-l4_flow_variant CHOICES source destination
DEFAULT source]
[-l4_src_port RANGE 1-65535 DEFAULT 1]
[-l4_dst_port RANGE 1-65535 DEFAULT 1]
[-l4_flow_number RANGE 1-65535]
[-echo_req_interval RANGE 1-65535]
[-echo_rsp RANGE 0-1]
[-ipcp_req_timeout RANGE 1-65535]
[-max_auth_req RANGE 1-65535]
[-max_ipcp_req RANGE 1-65535]
[-max_padi_req RANGE 1-65535]
[-max_padr_req RANGE 1-65535]
[-padi_req_timeout RANGE 1-65535]
[-padr_req_timeout RANGE 1-65535]
[-password_wildcard RANGE 0-1]
[-qinq_incr_mode CHOICES inner outer both]
[-username_wildcard RANGE 0-1]
[-vci RANGE 32-65535]
[-vlan_id RANGE 1-4094]
[-vlan_id_count RANGE 1-4094]
[-vlan_id_outer RANGE 1-4094]
[-vlan_id_outer_count RANGE 1-4094]
[-vlan_id_outer_step RANGE 1-4094]
[-vlan_user_priority_count RANGE1-8]
[-vlan_user_priority_step RANGE 1-7]
[-vpi RANGE 0-255]
[-vpi_count RANGE 1-256]
[-vpi_step RANGE 1-255]
[-is_last_subport CHOICES 0 1 DEFAULT 1]
[-enable_multicast CHOICES 0 1 DEFAULT 0]
[-enable_throttling CHOICES 0 1 DEFAULT 0]
[-mc_enable_packing CHOICES 0 1 DEFAULT 0]
[-mc_enable_general_query CHOICES 0 1 DEFAULT 1]
[-mc_enable_group_specific_query CHOICES 0 1 DEFAULT 1]
[-mc_enable_immediate_response CHOICES 0 1 DEFAULT 0]
[-mc_enable_router_alert CHOICES 0 1 DEFAULT 0]
[-mc_enable_suppress_reports CHOICES 0 1 DEFAULT 0]
[-mc_enable_unsolicited CHOICES 0 1 DEFAULT 0]
[-mc_report_frequency NUMERIC DEFAULT 120]
[-join_leaves_per_second NUMERIC DEFAULT 10]

HLTAPI Commands, Release 2.80 Rev. B 18-3


PPPoX APIs
18
[-switch_duration RANGE 100 - 1500
DEFAULT 100]
[-watch_duration RANGE 5-600 DEFAULT 10]
[-mc_group_id ANY]
[-start_group_ip IP DEFAULT 225.0.0.1]
[-group_ip_count NUMERIC DEFAULT 1]
[-group_ip_step IP DEFAULT 0.0.0.1]
[-igmp_version CHOICES IGMPv2 IGMPv3
DEFAULT IGMPv2]
[-mode]
[-sessions_per_vc]
[-include_id]
[-mac_addr_step]

ARGUMENTS

-port_handle The port on which the PPPoX sessions is to be created.

-protocol Type of sessions to be configured. Valid choices are:

Value Usage

pppoa N/A
pppoeoa N/A
pppoe N/A

-encap Encapsulation type for session. Valid choices are:

Value Usage

vc_mux N/A
llcsnap N/A
ethernet_ii N/A
ethernet_ii_vlan N/A
ethernet_ii_qinq N/A

-vci_step Step value applied to VCI, PPPoA, and PPPoEoA only.

-vci_count Number of VCIs.

-num_sessions PPP sessions to configure, applies to PPPoEoE and PPPoEoA only.

-pvc_incr_mode "Vpi" means increment VPI first then VCI (all based on the info configured),
"vci" means increment first VCI then VPI, "both" means increment both VPI and
VCI at the same time. Valid choices are:

Value Usage

vpi N/A
vci N/A
both N/A

-vlan_id_step Step value applied to VLAN ID, PPPoEoE w/VLAN only.

-vlan_user_priority VLAN user priority, PPPoEoE w/VLAN only.

18-4 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

-auth_mode Authentication mode. Valid choices are:

Value Usage

none N/A
pap N/A
chap N/A
pap_or_chap Accept both PAP and CHAP offered by DUT.

-username Username, PAP and CHAP only.

-password Password, PAP and CHAP only.

-wildcard_pound_start Starting value for wildcard symbol 1 (\#) substitution. It is also valid to use # as
the substitution symbol.

-wildcard_pound_end Ending value for wildcard symbol 1 (\#) substitution. It is also valid to use # as
the substitution symbol.

-wildcard_question_start Starting value for wildcard symbol 2 (?) substitution.

-wildcard_question_end Ending value for wildcard symbol 2 (?) substitution.

-mac_addr <aa.bb.cc.dd.ee.ff>

-max_configure_req Specifies the maximum number of Configure Requests that can be sent without
acknowledgement.

-padr_req_timeout Specifies the timeout value in seconds for acknowledgement of a PADR Request.

-config_req_timeout Specifies the timeout value in seconds for acknowledgement of a Configure


Request or Terminate Request.

-attempt_rate Specifies the rate in attempts/second at which attempts are made to bring up ses-
sions.

-max_outstanding Specifies the maximum number of sessions in progress, which includes the ses-
sions in the process of either coming up or disconnecting, at one time.

-max_terminate_req Specifies the maximum number of Terminate Requests that can be sent without
acknowledgement.

-term_req_timeout specifies the timeout value in seconds for acknowledgement of a Terminate


Request.

-disconnect_rate Specifies the rate in disconnects/s at which sessions are disconnected.

-ip_cp Specifies either IPv4 Control Protocol or IPv6 Control Protocol negotiation and
communication.

-echo_req When set to 1, enables Echo Requests, when set to 0, disables Echo Requests.

HLTAPI Commands, Release 2.80 Rev. B 18-5


PPPoX APIs
18
-local_magic Valid choices are:

Value Usage

0 Enable negotiaton of magic numbers.


1 Disable negotiation of magic numbers.

-ac_select_list This option is used in case ac_select_mode is chosen as ac_mac or. ac_name. It
specifies the AC MAC address and percentage pair as:

{ { 00:11:00:00:00:11|50 } { 00:11:00:00:00:12|50 } }

or it specifies the ac name and percentage pair as:

{ { ciscoAC1|60 } { ciscoAC2|40 } }

-ac_select_mode There are various ways AC can be selected based on the PADO received from
AC. Valid choices are:

Value Usage
first_responding N/A
ac_mac Specify the AC MAC Address and percentage
pair using -ac_select_list.
ac_name Specify the AC Name and percentage pair
using -ac_select_list option.
service_name N/A

-ac_name When the port is used as a server, this is the name sent in the PADO message.

-service_name This string is used for matching of the PADO messages for the client. For server
ports, this string is also sent by the server as the server name in the PADO mes-
sage. Any string up to 32 characters in length may be used.The string may con-
tain text characters, plus a specification of the form:

%[<start-width>:<modulo>:<repeat>]i

-service_type The type of Access Concentrator matching that is desired. Valid choices are:

Value Usage

any A service name is not required; a null service


is sent during Discovery indicating to the
access concentrator that the service is not
specified.
name Allows a matching service name to be config-
ured in the service_name option.

-auth_req_timeout Specifies the timeout value in seconds for acknowledgement of an authentication


Request.

-domain_group_map List of domain group to LNS IP mapping. Each domain group can have thou-
sands of domains. With the help of domain group it is very easy to map thou-
sands of domains to one or more LNS IP addresses. Each domain group is
defined as:

{ { domain_name } {lnsIP1 lnsIP2} }.

18-6 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

Where domain_name is defined as:

{name wc wc_start wc_end <wc_repeat(default 1) >}

name <string> : name to be used for the domain(s).

wc {1|0} : enables wildcard substitution in the name field. (default 0)

wc_start <0-65535> : starting value for wildcard symbol for the name (%) substi-
tution

wc_end <0-65535> : ending value for wildcard symbol for the name (%) substi-
tution

lnsIP <a.b.c.d> : LNS IP address list to be used for this domain.

e.g. Say you want to setup 20 domains, out of which cisco1.com to cisco10.com
going to 192.1.1.1 & 192.1.1.2 and cisco11.com to cisco20.com going to
192.1.2.1. Also assume number of sessions per tunnel is 5. Your domain group
list will look like:

{ { {cisco%.com 1 1 10} {192.1.1.1 192.1.1.2} }

{ {cisco%.com 1 11 20} {192.1.2.1} } }

Tunnel Allocation will look like this:

Sessions 1-5, tunnel1 dst 192.1.1.1;

Sessions 5-10, tunnel2 dst 192.1.1.2;

Sessions 11-15, tunnel3 dst 192.1.2.1;

Sessions 16-20, tunnel4 dst 192.1.2.1.

-port_role The role of the port in the test: access or network.

(DEFAULT access)

-ppp_local_mode Indicates the local IP address negotation mode. Valid choices are:

Value Usage
local_only The local clients only use static IP addresses.
local_may The local clients obtain their IP addresses
from a PPP server.
peer_only (default) The clients initially use static IP
addresses. If the server rejects the client’s IP
address and offers a dynamic IP address, the
client accepts it and uses the dynamic
address instead.

-ppp_local_ip The first address assigned on the local PPP node.

-ppp_local_ip_step The value by which ppp_local_ip is incremented for each session.

-ppp_local_iid The local base IPv6 interface ID.

HLTAPI Commands, Release 2.80 Rev. B 18-7


PPPoX APIs
18
-ppp_peer_mode Indicates the peer IP address negotation mode. Valid choices are:.

Value Usage

local_only The local clients only use static IP addresses.


local_may The local clients obtain their IP addresses
from a PPP server.
peer_only (default) The clients initially use static IP
addresses. If the server rejects the client’s IP
address and offers a dynamic IP address, the
client accepts it and uses the dynamic
address instead.

-ppp_peer_ip The first address assigned on the peer PPP node.

-ppp_peer_ip_step The value by which ppp_peer_ip is incremented for each session.

-ppp_peer_iid The peer base IPv6 interface ID.

-ipv6_pool_addr_prefix_ The IPv6 address prefix length.


len
(DEFAULT 64)

-ipv6_pool_prefix The IPv6 pool prefix.

DEFAULT ::

-ipv6_pool_prefix_len The IPv6 pool prefix length. Subtracting this from the address prefix length pro-
vides the size of the PPP IP pool.

(DEFAULT 48)

-redial If true, enables access ports to redial at the PPPoE level.

(DEFAULT 1)

-redial_max The maximum number of redial attempts.

(DEFAULT 20)

-redial_timeout The time to wait before restarting a session if the call was dropped, expressed in
seconds.

(DEFAULT 10)

-intermediate_agent Enables the Intermediate Agent feature. This feature allows for the testing of
DSLAM/BRAS devices that translate from PPPoA traffic to PPPoE traffic.
When this option is true, the program inserts agent_circuit_id and agent_remote_
id values into PPPoE tags for each PPPoE session.

(DEFAULT 0)

-agent_circuit_id When intermediate_agent is true, the program inserts an Agent Circuit ID and an
Agent Remote ID into PPPoE tags for each PPPoE session. These IDs serve to
distinguish the CPE premises from each other. This field has a maximum length
of 32 characters. The agent_circuit_id field is defined in strings of the form:

%<start-width>:<count>:<repeat count>i.

18-8 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

-agent_remote_id When intermediate_agent is true, the program inserts an Agent Circuit ID and an
Agent Remote ID into PPPoE tags for each PPPoE session. These IDs serve to
distinguish the CPE premises from each other. This field has a maximum length
of 32 characters.The agentRemoteId field is defined in strings of the form:

%<start-width>:<count>:<repeat count>i.

-padi_include_tag Enables sending the Access Loop Tag in the PADI message.

-pado_include_tag Enables sending the Access Loop Tag in the PADO message.

-padr_include_tag Enables sending the Access Loop Tag in the PADR message.

-pads_include_tag Enables sending the Access Loop Tag in the PADS message.

-l4_flow_type The type of flows to be generated. Valid choices are::

Value Usage
none (default) IP traffic only.
tcp TCP traffic only.
udp UDP traffic only.
tcp_udp Both TCP and UDP traffic are generated.

-l4_flow_variant The port number that is varied. Valid choices are::

Value Usage

source (default) The source port number.


destination The destination port number.
udp UDP traffic only.
tcp_udp Both TCP and UDP traffic are generated.

-l4_src_port The initial value of the source port. Legal values are from 1 to 65535.

(DEFAULT 1)

-l4_dst_port The initial value of the destination port. Legal values are from 1 to 65535.

(DEFAULT 1)

-l4_flow_number The number of per-user flows to be generated. Legal values are from 1 to 65535.
When using ATM ports, this must be a multiple of 2.

-echo_req_interval Specifies the time interval in seconds for sending LCP echo requests. Valid only
if -echo_req is set to 1.

-echo_rsp This can be used to do negative testing. Valid choices are:

Value Usage

0 Disable sending of the echo Responses.


1 (default) Enable Echo Replies.

-ipcp_req_timeout Specifies the timeout value in seconds for acknowledgement of an IPCP config-
ure request.

HLTAPI Commands, Release 2.80 Rev. B 18-9


PPPoX APIs
18
-max_auth_req Specifies the maximum number of Authentication Requests that can be sent with-
out getting an authentication response from the DUT.

-max_ipcp_req Specifies the maximum number of IPCP configure requests that can be sent with-
out getting an ack from the DUT.

-max_padi_req Specifies the maximum number of PADI Requests that can be sent without get-
ting a PADO from the DUT.

-max_padr_req Specifies the maximum number of PADR Requests that can be sent without get-
ting a PADS from the DUT.

-padi_req_timeout Specifies the timeout value in seconds for acknowledgement of a PADI Request.

-password_wildcard Enables wildcard substituation in the password field.

-qinq_incr_mode Valid choices are:

Value Usage
inner Increment the inner VLAN ID. Based on the
vlan_id parameter first then increment the
outer vlan_id_outer parameters next.
outer Increment the outer first then inner.
both Increment both inner and outer at the same
time.

-username_wildcard Enables wildcard substitution in the username field.

-vci Starting VCI for PPPoA and PPPoEoA.

-vlan_id Starting VLAN ID, applies to PPPoE w/VLAN only.

-vlan_id_count Number of VLAN IDs, applies to PPPoE w/VLAN only.

-vlan_id_outer Starting outer VLAN ID, applies to PPPoE w/Stacked VLAN only.

-vlan_id_outer_count Number of outer VLAN IDs, applies to PPPoE w/Stacked VLAN only.

-vlan_id_outer_step Step value applied to outer VLAN ID, PPPoEoE w/Stacked VLAN only.

-vlan_user_priority_count Number of VLAN Priority, applies to PPPoE w/VLAN only.

-vlan_user_priority_step Step value applied to VLAN Priority.

-vpi Starting VPI for PPPoA and PPPoEoA.

-vpi_count Number of VPIs.

-vpi_step Step value applied to VPI, PPPoA and PPPoEoA only.

-is_last_subport Tells the call if this is the last subport configuration being added. If so, then the
configuration is written to hardware. IxAccess can only write to hardware once,
which is why this is requred, if you going to use multiple subports in the setup.
Choices are 0 and 1 with 1 being the default

18-10 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

-enable_multicast This enables the use of IGMPoPPP.

(DEFAULT = 0)

-enable_throttling This enables the multicast throttling.

(DEFAULT = 0)

-join_leaves_per_second Throttle rate of IGMP Joins and Leaves.

(DEFAULT = 10)

-watch_duration The time period between join and leave (the time spent to watch the channel).

(DEFAULT = 10 seconds)

-switch_duration The time period between leave and next join.

(DEFAULT = 100 milliseconds)

-mc_group_id Unique Identifier per port for the multicast group. Type: string.

-start_group_ip The starting IPv4 address for the group range.

(DEFAULT = 225.0.0.1)

-group_ip_count The number of IP addresses in the group range. Maximum value is 1000.

(DEFAULT = 1)

-group_ip_step IP address increment step, if the group_ip_count is greater than 1.

(DEFAULT = 0.0.0.1)

-igmp_version The IGMP version to be used. Valid choices are:

Value Usage
IGMPv2 igmp version 2
IGMPv3 igmp version 3
(DEFAULT = IGMPv2) N/A

-mc_enable_packing If true, then multiple multicast addresses groups are included in each transmitted
listener response message

(DEFAULT = 0)

-mc_enable_general_query Enables responses to general queries received on the interface described.

(DEFAULT = 1)

-mc_enable_group_ Enables responses to group specific queries received on the interface.


specific_query
(DEFAULT = 1)

HLTAPI Commands, Release 2.80 Rev. B 18-11


PPPoX APIs
18
-mc_enable_immediate_ Causes the simulated host to immediately respond to a received Query message,
response rather than waiting a random amount of time between 0 and the Maximum
Response Delay field value of the Query message.

(DEFAULT = 0)

-mc_enable_router_alert Sets the router alert bit in transmitted listener reports.

(DEFAULT = 0)

-mc_enable_suppress_ If true, will cause the host to suppress the transmission of a listener report that
reports duplicates one received on the interface.

(DEFAULT = 0)

-mc_enable_unsolicited If true, will cause the host to transmit unsolicited listener reports at the interval
specified in reportFrequency.

(DEFAULT = 0)

-mc_report_frequency If enableUnsolicited is set to true, then this is the frequency with which unsolic-
ited listener reports will be sent, expressed in seconds.

(DEFAULT = 120)

-mode

-sessions_per_vc

-include_id

-mac_addr_step

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


handles ppp handles
log When status is failure, contains more informa-
tion

EXAMPLES See files starting with PPPoE_ in the Samples subdirectory.


See the PPPoE example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

18-12 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

NAME — ::ixia::pppox_control

DESCRIPTION Start, stop, or restart the PPPoX sessions.

SYNOPSIS ::ixia::pppox_control
-handle interface
-action CHOICES connect disconnect reset clear pause
resume retry

ARGUMENTS

-handle The port where the PPPoX sessions are to be created.

-action Action to be executed. Valid choices are:

Value Usage
connect Brings up configured sessions.
disconnect Tears down established sessions.
reset Aborts all PPPoX sessions and resets the
PPP emulation engine on the specified
device. A session is not notified of termina-
tion, and a Terminate Request packet is not
sent to the peers.
clear Clears the status and statistics of the PPP
sessions.
pause Pauses all the PPP sessions.
resume Resumes all the PPP sessions.
retry Attempts to connect PPP sessions that have
previously failed to establish.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with PPPoE_ in the Samples subdirectory.


See the PPPoE example in Appendix A, "Example APIs," for one
specific exampleusage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

1) clear action has not been implemented yet

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 18-13


PPPoX APIs
18

NAME — ::ixia::pppox_stats

DESCRIPTION Retrieves statistics for the PPPoX sessions configured on the specified test port.

SYNOPSIS ::ixia::pppox_stats
-handle interface
-mode CHOICES aggregate session
[-csv_filename]
-retry

ARGUMENTS

-handle The port for which the PPPoX sessions statistics needs to be retrieved.

-mode Specifies statistics retrieval mode as either aggregate for all configured sessions
or on a per session basis. Valid choices are:

Value Usage

aggregate Retrieve statistics for all the sessions.


session Retrieve statistics for each individual session.

-csv_filename The .csv filename that can be created under HLT library install folder

and where per session stats can be found.

-retry

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.
aggregate.idle
aggregate.connecting
aggregate.connected
aggregate.num_sessions
aggregate.connect_success
aggregate.sessions_up
aggregate.min_setup_time
aggregate.max_setup_time
aggregate.avg_setup_time
aggregate.success_setup_rate
aggregate.lcp_cfg_req_rx
aggregate.lcp_cfg_req_tx
aggregate.lcp_cfg_rej_rx
aggregate.lcp_cfg_rej_tx
aggregate.lcp_cfg_ack_rx
aggregate.lcp_cfg_ack_tx
aggregate.lcp_cfg_nak_rx

18-14 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

Key Value
aggregate.lcp_cfg_nak_tx
aggregate.term_req_rx
aggregate.term_req_tx
aggregate.term_ack_rx
aggregate.term_ack_tx
aggregate.echo_req_rx
aggregate.echo_rsp_tx
aggregate.padi_rx Ixia only
aggregate.padi_tx Ixia only
aggregate.pado_rx Ixia only
aggregate.padr_tx Ixia only
aggregate.pads_rx Ixia only
aggregate.padt_tx Ixia only
aggregate.padt_rx Ixia only
session.<session ID>.lcp_cfg_req_rx
session.<session ID>.lcp_cfg_req_tx
session.<session ID>.lcp_cfg_rej_rx
session.<session ID>.lcp_cfg_rej_tx
session.<session ID>.lcp_cfg_ack_rx
session.<session ID>.lcp_cfg_ack_tx
session.<session ID>.lcp_cfg_nak_rx
session.<session ID>.lcp_cfg_nak_tx
session.<session ID>.padr_tx Ixia only
session.<session ID>.pads_rx Ixia only
session.<session ID>.pads_tx Ixia only
session.<session ID>.padt_rx Ixia only
session.<session ID>.padt_tx Ixia only
session.<session ID>.term_req_rx
session.<session ID>.term_req_tx
session.<session ID>.term_ack_rx
session.<session ID>.term_ack_tx
session.<session ID>.echo_req_rx
session.<session ID>.echo_rsp_tx
session.<session ID>.pap_auth_req_tx
session.<session ID>.pap_auth_ack_rx
session.<session ID>.pap_auth_nak_rx
session.<session ID>.chap_auth_chal_
rx
session.<session ID>.chap_auth_rsp_
tx
session.<session ID>.chap_auth_
succ_rx
session.<session ID>.chap_auth_fail_
rx

HLTAPI Commands, Release 2.80 Rev. B 18-15


PPPoX APIs
18

Key Value
session.<session ID>.ipcp_cfg_req_rx
session.<session ID>.ipcp_cfg_req_tx
session.<session ID>.ipcp_cfg_ack_rx
session.<session ID>.ipcp_cfg_ack_tx
session.<session ID>.ipcp_cfg_nak_rx
session.<session ID>.ipcp_cfg_nak_tx
session.<session ID>.ipcp_cfg_rej_rx
session.<session ID>.ipcp_cfg_rej_tx

EXAMPLES See files starting with PPPoE_ in the Samples subdirectory.


See the PPPoE example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

NOTES Coded versus functional specification.

1) Session ID will be PPPoE session ID for the case of PPPoE and PPPoEoA. For
the case of PPPoA, session ID will be VPI/VCI.

2) Per session stats retrieval can take long time.

3) What is the difference between connected, connect_success & sessions_up?

4) Following stats have not been implemented yet:

aggregate.atm_mode

aggregate.disconnecting

aggregate.connect_attempts

aggregate.disconnect_success

aggregate.sessions_down

aggregate.disconnect_failed

SEE ALSO

18-16 HLTAPI Commands, Release 2.80 Rev. B


PPPoX APIs

HLTAPI Commands, Release 2.80 Rev. B 18-17


PPPoX APIs
18

18-18 HLTAPI Commands, Release 2.80 Rev. B


RIP APIs
19
Chapter 19:

This chapter covers the following topics:

• ::ixia::emulation_rip_config on page 19-2.

• ::ixia::emulation_rip_route_config on page 19-6.

• ::ixia::emulation_rip_control on page 19-8.

HLTAPI Commands, Release 2.80 Rev. B 19-1


RIP APIs
19

NAME — ::ixia::emulation_rip_config

DESCRIPTION This procedure will configure RIP routers in a particular interface. The user can
create single or multiple RIP routers.

SYNOPSIS ixia::emulation_rip_config
-mode CHOICES create delete modify
enable disable
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-
9]+$]
[-handle ]
[-session_type CHOICES ripv1 ripv2 ripng
DEFAULT ripv2]
[-count NUMERIC (DEFAULT 1)]
[-intf_ip_addr IP]
[-intf_prefix_length RANGE 1-128]
[-intf_ip_addr_step IP DEFAULT 1]
[-interface_metric RANGE 0-15 (DEFAULT 0)]
[-neighbor_intf_ip_addr IP]
[-neighbor_intf_ip_addr_step IP (DEFAULT 0)]
[-update_interval RANGE 1-1000 (DEFAULT 30)]
[-update_interval_offset RANGE 0-15 (DEFAULT 0)]
[-authentication_mode CHOICES null text md5]
[-password ALPHANUM]
[-update_mode CHOICES no_horizon
split_horizon poison_reverse discard]
[-vpi RANGE 0-255]
[-vci RANGE 0-65535]
[-vpi_step RANGE 0-256]
[-vci_step RANGE 0-256]
[-vlan_id RANGE 0-4095]
[-vlan_id_mode CHOICES fixed increment
(DEFAULT increment)]
[-vlan_id_step RANGE 0-4096 (DEFAULT 1)]
[-vlan_user_priority RANGE 0-7 (DEFAULT 0)]
[-router_id RANGE 0-65535]
[-router_id_step RANGE 0-65535 (DEFAULT 1)]
[-send_type CHOICES multicast
broadcast_v1broadcast_v2]
[-receive_type CHOICES v1 v2 v1_v2 ignore
store]
[-time_period RANGE 0-999999]
[-num_routes_per_period RANGE 0-999999 (DEFAULT 0)]
[-mac_address_init MAC (DEFAULT 0000.0000.0000)]
[-no_write FLAG]
[-reset FLAG]
[-md5_key ALPHANUM]
[-md5_key_id RANGE 1-255 ]
[-triggered_interval RANGE 1-5000 (DEFAULT 5000)]
[-expiration_interval RANGE 1-16777215
(DEFAULT 180000)]
[-garbage_interval RANGE 1-16777215
(DEFAULT 120000)]
[-vlan_cfi CHOICES 0 1 ]

19-2 HLTAPI Commands, Release 2.80 Rev. B


RIP APIs

ARGUMENTS

-mode This option defines the action to be taken. Valid choices are:

Value Usage

create creates a RIP router with the parameters


given by user.
delete given a list of router handles deletes these
routers.
modify given a list of router handles modifies the
routers to match the other configuration
parameters given by the user.
disable given a list of router handles disables them.
enable given a list of router handles enables them.

-port_handle The port on which the session is to be created.

-handle RIP session handle used for mode other than create.

-session_type The version of RIP to be used: ripv1 ripv2 ripng.

(DEFAULT = ripv2)

-count Define number of sessions to create on the interface.

(DEFAULT = 1)

-intf_ip_addr Interface IP address of RIP session router.

-intf_prefix_length Prefix length on the interface.

(DEFAULT = 24 for RIPv1 and RIPv2)

(DEFAULT = 64 for RIPng)

-intf_ip_addr_step The IP address step between each session for multiple sessions.

(DEFAULT = 1)

-interface_metric The value of the metric associated with the interface. This value is added to the
metric in the routing table before transmitting updates through this interface. For
RIPng only.

(DEFAULT = 0)

-neighbor_intf_ip_addr Neighbor's (SUT) interface IP for sending unicast packets.

-neighbor_intf_ip_addr_ Define neighbor's interface IP for multiple sessions across multiple sub-inter-
step faces.

(DEFAULT = 0)

-update_interval The time, in seconds, between transmitted update messages. RANGE 1-1000.

(DEFAULT = 30)

HLTAPI Commands, Release 2.80 Rev. B 19-3


RIP APIs
19
-update_interval_offset The maximum update-interval variance in seconds; that is, the maximum of a
random time interval used to add or substract from the time at which updates are
sent. RANGE 0-15.

(DEFAULT = 0)

-authentication_mode For RIPv2 only. Valid choices are: null text md5.

-password For RIPv2 only. The password is used in simple text authentication mode.

-update_mode Select learned routes to be included in outgoing RIP update (response message).
Valid choices are:

Value Usage

no_horizon Include all routes learned from all neighbors.


split_horizon Do not include routes from the neighbor to
which RIP updates are being sent.
poison_reverse Include all routes learned from the neighbor
to which RIP updates are being sent, but set
metrics for these routes to 16.
discard Discard all routes learned from all neighbors.
This mode is to help scalability of the test tool.

-vpi VPI for emulated router node. RANGE 0-255.

-vci VCI for emulated router node. RANGE 0-65535.

-vpi_step Step value to apply to VPI field. RANGE 0-256.

-vci_step Step value to apply to VCI field. RANGE 0-256.

-vlan_id VLAN ID for emulated router node. RANGE 0-4095.

-vlan_id_mode For multiple neighbor configuration, configures the VLAN ID mode to fixed or
increment.

(DEFAULT = increment)

-vlan_id_step When vlan_id_mode is set to increment, this defines the step for every VLAN.
RANGE 0-4096

(DEFAULT = 1)

-vlan_user_priority VLAN user priority assigned to emulated router node. RANGE 0-7.

(DEFAULT = 0)

-router_id Router ID of RIP session router, use intf_ip_address if not specified by user.

-router_id_step Used to define router ID for multiple sessions.

(DEFAULT 1)

-send_type Configure version & destination address of outgoing RIP packets. The choices
for send type are: multicast broadcast_v1 broadcast_v2. Multicast is for RIPv2
only. Broadcast address can be used for both v1 & v2.

19-4 HLTAPI Commands, Release 2.80 Rev. B


RIP APIs

-receive_type Configure which version of RIP incoming packets is received. The choices for
receive type are v1, v2, v1_v2 for RIPv1 and RIPv2, and ignore and store for
RIPng.

-time_period The time period to use for throttling updates, in milliseconds. A value of 0 dis-
ables this feature and transmits all routes immediately for all updates. RANGE 0-
999999.

-num_routes_per_period The number of routes to transmit every time period in milliseconds. A value of 0
disables this feature and transmits all routes immediately for all updates. RANGE
0-999999. (DEFAULT = 0)

-mac_address_init The MAC address for the interface to be created.

-no_write If this option is present, the configuration is not written to the

hardware. This option can be used to queue up multiple configurations

before writing to the hardware.

-reset Clear all existent routers on the specified port. Valid only in create mode.

-md5_key

-md5_key_id

-triggered_interval

-expiration_interval

-garbage_interval

-vlan_cfi

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE.


log When status is failure, contains more informa-
tion.
handle The list of routers created.

EXAMPLES See files starting with RIP_ in the Samples subdirectory.


Also see some of the L3VPN and MPLS sample files for
further examples of the RIP usage.
See the RIP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handle {router1 router2 router3


router4}}

NOTES Coded versus functional specification.

The router_id option will not be set properly on hardware.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 19-5


RIP APIs
19

NAME — ::ixia::emulation_rip_route_config

DESCRIPTION This procedure will configure RIP routes to a targeted RIP router.

SYNOPSIS ::ixia::emulation_rip_route_config
-mode CHOICES create modify delete
[-handle ]
[-route_handle ]
[-num_prefixes RANGE 1-1000000]
[-prefix_start IP ]
[-prefix_length RANGE 1-128]
[-prefix_step IP ]
[-metric RANGE 1-16]
[-next_hop IP ]
[-route_tag RANGE 0-65535]
[-no_write FLAG ]
[-reset ]

ARGUMENTS

-mode The action to be taken. The choices for mode are: create, modify, and delete.

-handle Session to create route pools or route ranges on.

-route_handle The route handle is used for modes other than create.

-num_prefixes Number of prefixes (routes) advertised in update messages. RANGE 1-1000000.

-prefix_start First route (prefix) to be advertised.

-prefix_length Network mask width. RANGE 1-128.

-prefix_step How to increment prefixes. Default is using prefix length (minimum step). The
value would be rounded to the prefix length.

-metric The total cost for these routes. RANGE 1-16.

(DEFAULT = 1)

-next_hop The immediate next hop IP address on the way to the destination prefix. Used by
RIPv2 & RIPng, default is all zeros IP address which indicates the next hop is
update source address.

-route_tag An arbitrary value associated with the routes in this range. Used by RIPv2 &
RIPng. RANGE 0-65535.

(DEFAULT = 0)

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-reset Will erase any Route Range configuration on the targeted RIP router.

19-6 HLTAPI Commands, Release 2.80 Rev. B


RIP APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
route_handle The list of route range numbers added

EXAMPLES See files starting with RIP_ in the Samples subdirectory.


Also see some of the L3VPN and MPLS sample files for
further examples of the RIP usage.
See the RIP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 19-7


RIP APIs
19

NAME — ::ixia::emulation_rip_control

DESCRIPTION Stop, start, or restart the protocol.

SYNOPSIS ::ixia::emulation_rip_control
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-handle]
[-mode CHOICES stop start restart flap]
[-advertise]
[-withdraw ]
[-flap_routes]
[-flap_count NUMERIC]
[-flap_interval_time NUMERIC]
[-flap_down_time NUMERIC]

ARGUMENTS

-port_handle Port where to take the RIP action.

-handle Session where to take the RIP action.

-mode Stop, start, restart the protocol or flap routes.

-advertise Advertise prefixes in route pool.

-withdraw Withdraw prefixes in route pool

-flap_routes

-flap_count

-flap_interval_time

-flap_down_time

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with RIP_ in the Samples subdirectory.


Also see some of the L3VPN and MPLS sample files for
further examples of the RIP usage.
See the RIP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

19-8 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs
20
Chapter 20:

This chapter covers the following topics:

• ::ixia::emulation_rsvp_config on page 20-2.

• ::ixia::emulation_rsvp_tunnel_config on page 20-7.

• ::ixia::emulation_rsvp_control on page 20-14.

• ::ixia::emulation_rsvp_info on page 20-15.

• ::ixia::emulation_rsvp_tunnel_info on page 20-18.

HLTAPI Commands, Release 2.80 Rev. B 20-1


RSVP-TE APIs
20

NAME — ::ixia::emulation_rsvp_config

DESCRIPTION This procedure will configure RSVP TE(s).

SYNOPSIS ::ixia::emulation_rsvp_config
-port_handle REGEXP ^[0-9]+/[0-9]+/[0-
9]+$
-mode CHOICES create enable
disable modify delete
[-handle rsvp_session_handle]
[-interface_handle]
[-count NUMERIC]
[-intf_ip_addr IP]
[-intf_prefix_length RANGE 1-32]
[-intf_ip_addr_step IP]
[-neighbor_intf_ip_addr IP]
[-neighbor_intf_ip_addr_step IP]
[-refresh_interval NUMERIC]
[-refresh_retry_count NUMERIC]
[-summary_refresh CHOICES 0 1]
[-srefresh_interval NUMERIC]
[-hello_msgs CHOICES 0 1]
[-hello_interval RANGE 1-65535]
[-hello_retry_count RANGE 1-255]
[-refresh_reduction CHOICES 0 1]
[-reliable_delivery CHOICES 0 1]
[-bundle_msgs CHOICES 0 1]
[-resv_confirm CHOICES 0 1]
[-record_route CHOICES 0 1]
[-ttl CHOICES 1 64]
[-egress_label_mode CHOICES nextlabel imnull
exnull]
[-max_label_value RANGE 1-1048575]
[-min_label_value RANGE 1-1048575]
[-vpi RANGE 0-255]
[-vci RANGE 0-65535]
[-vpi_step RANGE 0-256]
[-vci_step RANGE 0-256]
[-vlan_id RANGE 0-4096]
[-vlan_id_mode CHOICES fixed increment]
[-vlan_id_step RANGE 0-4096]
[-vlan_user_priority RANGE 0-7]
[-path_state_refresh_timeout RANGE 1-65535]
[-resv_state_refresh_timeout RANGE 1-65535]
[-router_alert CHOICES 1]
[-path_state_timeout_count RANGE 1-255]
[-resv_state_timeout_count RANGE 1-255]
[-ip_version CHOICES 4]
[-mac_address_init]
[-reset]
[-no_write FLAG]
[-vlan CHOICES 0 1]
[-writeFlag CHOICES write nowrite
(DEPRECATED)]

ARGUMENTS

20-2 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

-port_handle The port on which the RSVP neighbor pair is to be created.

-mode This option defines the action to be taken. Valid choices are:

Value Usage

create Creates a new emulation handle.


modify Modifies an existing emulation handle.
delete Deletes an existing emulation handle.
disable Disables an existing emulation handle.
enable Enables an existing emulation handle.

-handle RSVP handle if the option -mode is not create.

-interface_handle A handle or list of the handles that are returned from the interface_config call.
These provide a direct link to an already existing interface and supercede the use
of the intf_ip_addr value.

-count Number of RSVP sessions to create on the interface.

(DEFAULT = 1)

-intf_ip_addr The interface IP address.

-intf_prefix_length The prefix length on the interface.

(DEFAULT = 24)

-intf_ip_addr_step The interface IP address octet to be incremented by given step

-neighbor_intf_ip_addr The interface IP address of RSVP neighbor (next hop).

-neighbor_intf_ip_addr_ The neightbor IP address octet to be incremented by given step


step

-refresh_interval Specifies the time in milliseconds between seding RSVP messages to refresh
state.

-refresh_retry_count Specifies the number of refresh intervals to wait before RSVP state is turned
down.

-summary_refresh If set to 1, enable summary refresh generation. refresh_reduction, reliable_deliv-


ery, summary_refresh, and bundle_msgs work together. If anyone of them is
turns on, all the options are enabled.

(DEFAULT = 0)

-srefresh_interval Specifies the time interval in ms to gather refresh messages that would have been
sent out individually. Messages are sent out as a single refresh message upon
interval expiration or when the message size exceeds the MTU.

-hello_msgs Enables (1) or disables (0) hello timer/messages.

-hello_interval Specifies the timeout interval in ms to wait before sending a Hello message.

-hello_retry_count Specifies the number of timeout intervals to wait until a session timeout occurs.

HLTAPI Commands, Release 2.80 Rev. B 20-3


RSVP-TE APIs
20
-refresh_reduction Enables (1) or disables (0) refresh reduction. refresh_reduction, reliable_deliv-
ery, summary_refresh, and bundle_msgs work together. If anyone of them is
turns on, all the options are enabled.

-reliable_delivery If set to 1, sends message IDs and acknowledgements for each message received.
If set to 0, which is the default value, does not send message IDs. refresh_reduc-
tion, reliable_delivery, summary_refresh, and bundle_msgs work together. If
anyone of them is turns on, all the options are enabled.

-bundle_msgs If set to 1, combines multiple RSVP messages into a single PDU to reduce pro-
cessing overhead and bandwidth consumption. If set to 0, does not combine mes-
sages. refresh_reduction, reliable_delivery, summary_refresh, and bundle_msgs
work together. If anyone of them is turned on, all the options are enabled.

-resv_confirm If set to 1, enables and requires Resv confirmation with final parameters from the
egress. If set to 0, which is the default value, disables the sending of Resv confir-
mation messages.

-record_route If set to 1, includes the RECORD_ROUTE object in the Path message. If set to 0,
does not include the RECORD_ROUTE object in the Path message.

-ttl Time-to-live value used n RSVP header. It is not user configurable. By default it
is 1 for hello messages and for anything else it is 64.

-egress_label_mode Specifies the label advertisement for the egress of an LSP as one of the follow-
ing. Valid choices are:

Value Usage
nextlabel Advertises the next available label.
exnull Advertises label 9, the explicit null label.
imnull Advertises label 3, the implicit null label.

-max_label_value Specifies the maximum LSP label value.

-min_label_value Specifies the minimum LSP label value.

-vpi VPI for emulated router node. RANGE 0-255

(DEFAULT = 1)

-vci VCI for emulated router node. RANGE 0-65535

(DEFAULT = 10)

-vpi_step The step value used for incrementing the -vpi option. RANGE 0-255

(DEFAULT = 1)

-vci_step The step value used for incrementing the -vci option. RANGE 0-65535

(DEFAULT = 1)

-vlan_id If VLAN is enable on the Ixia interface, this option will configure the VLAN
number. RANGE 0-4095

(DEFAULT = 100)

20-4 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

-vlan_id_mode If the user configures more than one interface on the Ixia with VLAN, he can
choose to automatically increment the VLAN tag or leave it idle for each inter-
face. Valid choices are:

Value Usage

fixed The VLAN tag will be fixed to a speicifc value.


increment (default) The VLAN tag will increment.

-vlan_id_step If the -vlan_id_mode is increment, this will be the step value by which the VLAN
tags are incremented. RANGE 0-4095

(DEFAULT = 1)

-vlan_user_priority VLAN user priority assigned to emulated router node. RANGE 0-7

(DEFAULT = 0)

-path_state_refresh_ Specifies the timeout interval in seconds to wait before sending a Path message.
timeout

-resv_state_refresh_ Specifies the timeout interval in seconds to wait before sending a Resv message.
timeout

-router_alert If set to 1, enables a router to recognize the router alert option in a packet. This
option is always set to 1.

-path_state_timeout_count Specifies the number of Path state intervals to wait before a teardown message is
sent.

-resv_state_timeout_count Specifies the number of Resv state intervals to wait before a teardown message is
sent.

-ip_version The IP version interface.

-mac_address_init The MAC address interface.

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-reset If this option is present, all the neightbor pair on the router is deleted.

-vlan Number of vlans to be configured for the interface.

-writeFlag DEPRECATED - use -no_write instead.

-rapid_retx_delta

-rapid_retx_interval

-rapid_retx_limit

-max_ack_delay

HLTAPI Commands, Release 2.80 Rev. B 20-5


RSVP-TE APIs
20
RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
rsvpte The handles for the RSVP TE created

EXAMPLES See files starting with RSVP_ in the Samples subdirectory.


Also see some of the MVPN sample files for further
examples of the RSVP usage.
See the RSVP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

20-6 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

NAME — ::ixia::emulation_rsvp_tunnel_config

DESCRIPTION This procedure will configure RSVP TE(s).

SYNOPSIS ::ixia::emulation_rsvp_tunnel_config
-port_handle REGEXP ^[0-9]+/[0-9]+/
[0-9]+$
-mode CHOICES create delete
modify
-handle
[-tunnel_pool_handle rsvp_tunnel_pool_
handle]
[-egress_ip_addr IP]
[-egress_ip_step IP]
[-count RANGE 1-999999]
[-ingress_ip_addr IP]
[-ingress_ip_step IP]
[-tunnel_id_start RANGE 0-65535]
[-tunnel_id_step RANGE 0-65535]
[-lsp_id_start RANGE 0-65535]
[-sender_tspec_token_bkt_rate NUMERIC]
[-sender_tspec_token_bkt_size NUMERIC]
[-sender_tspec_peak_data_rate NUMERIC]
[-sender_tspec_min_policed_size NUMERIC]
[-sender_tspec_max_pkt_size NUMERIC]
[-adspec CHOICES 1]
[-session_attr CHOICES 1]
[-session_attr_setup_priority RANGE 0-7]
[-session_attr_hold_priority RANGE 0-7]
[-session_attr_name]
[-session_attr_local_protect CHOICES 0 1]
[-session_attr_label_record CHOICES 0 1]
[-session_attr_se_style CHOICES 0 1]
[-session_attr_bw_protect CHOICES 0 1]
[-session_attr_flags RANGE 0-255]
[-session_attr_resource_affinities CHOICES 0 1]
[-session_attr_ra_exclude_any RANGE 0-0xFFFFFFFF]
[-session_attr_ra_include_any RANGE 0-0xFFFFFFFF]
[-session_attr_ra_include_all RANGE 0-0xFFFFFFFF]
[-ero CHOICES 0 1]
[-ero_list_type CHOICES ipv4 as]
[-ero_list_loose CHOICES 0 1]
[-ero_list_ipv4 IP]
[-ero_list_pfxlen RANGE 0-128]
[-ero_list_as_num NUMERIC]
[-rro CHOICES 0 1]
[-rro_list_type CHOICES ipv4 label]
[-rro_list_ipv4 IP]
[-rro_list_label NUMERIC]
[-rro_list_flags RANGE 0-255]
[-session_attr_reroute CHOICES 0 1]
[-session_attr_node_protect CHOICES 0 1]
[-ingress_bandwidth NUMERIC]
[-tunnel_id_count RANGE 0-65535]
[-lsp_id_count RANGE 0-65535]
[-lsp_id_step RANGE 0-65535]

HLTAPI Commands, Release 2.80 Rev. B 20-7


RSVP-TE APIs
20
[-rsvp_behavior CHOICES rsvpIngress
rsvpEgress]
[-ero_mode CHOICES loose strict
none]
[-ero_dut_pfxlen RANGE 1-32]
[-rro_list_ctype RANGE 0-255]
[-fast_reroute CHOICES 0 1]
[-fast_reroute_bandwidth]
[-fast_reroute_exclude_any RANGE 0-0xFFFFFFFF]
[-fast_reroute_holding_priority RANGE 0-7]
[-fast_reroute_hop_limit RANGE 0-255]
[-fast_reroute_include_all RANGE 0-0xFFFFFFFF]
[-fast_reroute_include_any RANGE 0-0xFFFFFFFF]
[-fast_reroute_setup_priority RANGE 0-7]
[-facility_backup CHOICES 0 1]
[-one_to_one_backup CHOICES 0 1]
[-send_detour CHOICES 0 1]
[-plr_id IP]
[-avoid_node_id IP]
[-no_write FLAG]
[-writeFlag CHOICES write nowrite]
[-adspec_comp_mtu]
[-adspec_ctrl_load]
[-adspec_est_path_bw]
[-adspec_hop_count]
[-adspec_min_path_latency]
[-ero_list_ipv6]

ARGUMENTS

-port_handle The port on which the RSVP-TE tunnel is to be created.

-mode Action to perform on tunnels for RSVP-TE emulated router.

-handle RSVP-TE handle if the option -mode is create.

-tunnel_pool_handle RSVP-TE tunnel pool handle. Used for mode other than create.

-egress_ip_addr IP address of the tunnel's egress point.

-egress_ip_step This value is used to increment egress IP address when configuring multiple tun-
nels.

-count <integer> Number of tunnels to create to the specified egress point.

-ingress_ip_addr IP address of ingress node.

-ingress_ip_step This value is used to increment ingress IP address when configuring multiple
tunnels.

-tunnel_id_start Starting tunnel ID.

-tunnel_id_step This value is used to increment the tunnel ID when configuring multiple tunnels
("-count" is greater than 1).

-lsp_id_start Starting LSP ID, used in SENDER_TEMPLATE object.

20-8 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

-sender_tspec_token_bkt_ The token bucket rate associated with the RSVP Senders Traffic Specification.
rate Expressed in bytes per second.

-sender_tspec_token_bkt_ TThe token bucket size associated with the RSVP Senders Traffic Specification.
size Expressed in bytes.

-sender_tspec_peak_data_ The peak data rate associated with the RSVP Senders Traffic Specification.
rate Expressed in bytes per second.

-sender_tspec_min_ The minimum policed unit size associated with the RSVP Senders Traffic Speci-
policed_size fication. Expressed in bytes.

-sender_tspec_max_pkt_ The maximum packet size associated with the RSVP Senders Traffic Specifica-
size tion. Expressed in bytes.

-adspec If true (1), enable INTSERV ADSPEC object in PATH message. This option is
always set to true.

-session_attr If true (1), enable SESSION_ATTRIBUTE object in PATH message. This


option is always set to true.

-session_attr_setup_ This is the session priority with respect to taking resources, such as preempting
priority another session. The valid range is from 0 to 7. The highest priority is indicated
by 0.

(DEFAULT = 7)

-session_attr_hold_priority This is the session priority with respect to holding resources, such as keeping a
session during preemption. The valid range is from 0 to 7. The highest priority is
indicated by 0.

(DEFAULT = 7)

-session_attr_name This is the name assigned to this Session.

(DEFAULT = "")

-session_attr_local_ This permits transit routers to use a local traffic rerouting repair mechanism, in
protect_desired the event of a fault on an adjacent downstream link or node. This may result in a
violation of the explicit route object.

(DEFAULT = true)

-session_attr_label_record This indicates that label information is to be included when doing a record route
operation.

(DEFAULT = false)

-session_attr_se_style This indicates that the tunnel ingress node may reroute this tunnel without tearing
it down. A tunnel egress node should use the SE Style when responding with an
RESV message.

(DEFAULT = true)

-session_attr_bw_protect This indicates that bandwidth protection is desired from the PLRs along the
backup protected LSP path.

(DEFAULT = false)

HLTAPI Commands, Release 2.80 Rev. B 20-9


RSVP-TE APIs
20
-session_attr_flags Allows user to set the flags directly without using the prior session attribute
options.

-session_attr_resource_ If true (1), enable resource affinities.


affinities
(DEFAULT = 0)

-session_attr_ra_exclude_ Represents a set of attribute filters associated with a tunnel, any of which renders
any a link unacceptable.

(DEFAULT = 00 00 00 00)

-session_attr_ra_include_ Represents a set of attribute filters associated with a tunnel, any of which makes a
any link acceptable (with respect to this test). When all bits are set to 0 (null set), it
automatically passes.

(DEFAULT = 00 00 00 00)

-session_attr_ra_include_ Represents a set of attribute filters associated with a tunnel, all of which must be
all present for a link to be acceptable (with respect to this test). When all bits are set
to 0 (null set), it automatically passes.

(DEFAULT = 00 00 00 00)

-ero If true (1), enable explicit route object. Default: 0

-ero_list_type Type of ERO entries. Note ipv6 is not supported. Valid choices are:

Value Usage
ipv4 N/A
as N/A

-ero_list_loose Indicates whether the ERO item is to be considered a LOOSE item or a STRICT
item. 1 for LOOSE; 0 for STRICT

-ero_list_ipv4 List of IPv4 prefixes (one for each entry) used by IPv4 type only.

-ero_list_pfxlen List of prefix length.

(DEFAULT = 32)

-ero_list_as_num List of Autonomous System numbers. Used by AS type only.

-rro If true (1), enable record route.

(DEFAULT = 0)

-rro_list_type Type of RRO entries. Note ipv6 is not supported. Valid choices are:

Value Usage

ipv4 N/A
label N/A

-rro_list_ipv4 List of IPv4 prefixes (one for each entry) used by IPv4 type only.

-rro_list_label List of 32 bit label objects.

20-10 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

-rro_list_pfxlen List of prefix length.

(DEFAULT = 32)

-rro_list_flags List of 8 bit flags. Valid choices are:

Value Usage

0x1 Local protection available.


0x2 Local protection in use.
0x4 Bandwidth protection
0x8 Node protection

-session_attr_reroute Enables the use of the fast reroute feature.

(DEFAULT = 0)

-ingress_bandwidth The bandwidth requested for the connection, expressed in kbits/sec.

(DEFAULT = 0.0)

-tunnel_id_count The number of tunnels to create on a single tunnel handle.

-lsp_id_count The number of LSPs to create on a single tunnel handle.

-lsp_id_step The value to increment the LSP ID when configuring multiple LSPs ("-count" is
greater than 1).

-rsvp_behavior Configures the node as an Ingress or Egress.

-ero_mode Indicates whether the DUTs address is to be prepended to the ERO list and
whether it is a LOOSE or STRICT entry. Valid choices are:

Value Usage

loose N/A
strict N/A
none N/A

-ero_dut_pfxlen If the DUTs address is to be prepended to the ERO list, this indicates what prefix
length is to be used for the entry.

(DEFAULT = 32)

-rro_list_ctype If the type field is IP, then this is the C_Type of the included Label Object.

-fast_reroute Enables the use of the fast reroute feature.

(DEFAULT = 0)

-fast_reroute_bandwidth An element of the FAST_REROUTE object that indicates the bandwidth esti-
mate for the protection path in bytes per second, expressed in 32-bit IEEE float-
ing point format.

(DEFAULT = 0.0)

HLTAPI Commands, Release 2.80 Rev. B 20-11


RSVP-TE APIs
20
-fast_reroute_exclude_any An element of the FAST_REROUTE object that represents a set of attribute fil-
ters associated with a backup path, any of which render a link unacceptable.

(DEFAULT = {00 00 00 00})

-fast_reroute_holding_ An element of the FAST_REROUTE object that indicates the priority of the
priority backup path with respect to holding resources, in the range of 0 (highest) to
7(lowest).

(DEFAULT = 7)

-fast_reroute_hop_limit An element of the FAST_REROUTE object that is the maximum number of


extra hops the backup path is allowed to take from the current PLR node to a
merge point.

(DEFAULT = 3)

-fast_reroute_include_all An element of the FAST_REROUTE object that represents a set of attribute fil-
ters associated with a backup path, all of which must be present to render a link
acceptable.

(DEFAULT = {00 00 00 00})

-fast_reroute_include_any An element of the FAST_REROUTE object that represents a set of attribute fil-
ters associated with a backup path, any of which render a link acceptable.

(DEFAULT = {00 00 00 00})

-fast_reroute_setup_ An element of the FAST_REROUTE object that indicates the priority of the
priority backup path with respect to taking resources, in the range of 0 (highest) to 7
(lowest).

(DEFAULT = 7)

-facility_backup For fast reroute, indicates that the use of the Facility Backup feature is enabled.
This may be combined with one_to_one_backup option. fast_reroute option
must be true for this option to have any effect.

(DEFAULT = 0)

-one_to_one_backup For fast reroute, indicates that the use of the Facility Backup feature is enabled.
This may be combined with facility_backup option. fast_reroute option must be
true for this option to have any effect.

(DEFAULT = 0)

-send_detour Enables the generation of the fast reroute DETOUR object, using the values in
the PLR list. fast_reroute option must be true for this option to have any effect.

(DEFAULT = 0)

-plr_id The IPv4 address identifying the beginning point of detour which is a PLR. Any
local address on the PLR can be used.

-avoid_node_id The IPv4 address identifying the immediate downstream node that the PLR is
trying to avoid. The Router ID of the downstream node is the preferred value.

20-12 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

-no_write If this option is present, the configuration is not written to the hardware. This
option can be used to queue up multiple configurations before writing to the
hardware.

-writeFlag DEPRECATED - use -no_write instead.

-adspec_comp_mtu

-adspec_ctrl_load

-adspec_est_path_bw

-adspec_hop_count

-adspec_min_path_latency

-ero_list_ipv6

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is failure, contains more informa-
tion
tunnel_handle The handles for the RSVP TE Tunnel created

EXAMPLES See files starting with RSVP_ in the Samples subdirectory.


Also see some of the MVPN sample files for further
examples of the RSVP usage.
See the RSVP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

Current parser does not support hex. The following options have RANGE 0-
0xFFFFFFFF. It is changed to RANGE 0-2147483647 for now. Note:
2147483647 is the max number supported by the current tcl 8.0.

-session_attr_ra_exclude_any

-session_attr_ra_include_any

-session_attr_ra_include_all

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 20-13


RSVP-TE APIs
20

NAME — ::ixia::emulation_rsvp_control

DESCRIPTION Stop, start or restart the RSVP protocol

SYNOPSIS ::ixia::emulation_rsvp_control
-mode CHOICES stop start restart
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-handle]
[-teardown list_of_tunnel_pool_handles]
[-restore list_of_tunnel_pool_handles]

ARGUMENTS

-mode What is being done to the protocol. Valid choices are:

Value Usage
stop stop the protocol
start start the protocol
restart restart the protocol

-port_handle The port where the RSVP is to be controlled.

-handle The RSVP handle.

-teardown Tear down the list of LSP tunnels when mode is stop or restore.

-restore Set up the list of LSP tunnels when mode is start or restore.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.

EXAMPLES See files starting with RSVP_ in the Samples subdirectory.


Also see some of the MVPN sample files for further
examples of the RSVP usage.
See the RSVP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

SEE ALSO

20-14 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

NAME — ::ixia::emulation_rsvp_info

DESCRIPTION For a test port running RSVP emulation, retrieves the RSVP tunnel

information for both incoming and outgoing tunnels.

SYNOPSIS ::ixia::emulation_rsvp_info
[-mode CHOICES stats clear_stats settings
neighbors labels DEFAULT stats ]
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-handle ]

ARGUMENTS

-mode The action that should be taken.

-port_handle The port where the RSVP tunnel information is to be retrieved.

-handle The RSVP handle from which the port_handle should be extracted and RSVP
tunnel information is to be retrieved from that port_handle.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.
lsp_count
num_lsps_setup
peer_count
routing_protocol Cisco only
ingress_attempt_setup_msg Cisco only
ingress_success_setup_msg Cisco only
ingress_resv_timeout Cisco only
ingress_resv_errors Cisco only
ingress_resvconf_tx Cisco only
ingress_patherr_tx Cisco only
ingress_resverr_rx Cisco only
ingress_pathtear_tx Cisco only
ingress_resvtear_rx Cisco only
egress_attemp_setup_msg Cisco only
egress_success_setup_msg Cisco only
egress_resv_timeout Cisco only
egress_resv_errors Cisco only
egress_resvconf_rx Cisco only
egress_patherr_rx Cisco only
egress_resverr_tx Cisco only
egress_pathtear_rx Cisco only
egress_resvtear_tx Cisco only
msg_rx Cisco only

HLTAPI Commands, Release 2.80 Rev. B 20-15


RSVP-TE APIs
20

Key Value
msg_tx Cisco only
lsp_created Cisco only
lsp_deleted Cisco only
hellos_rx Cisco only
hellos_tx Cisco only
total_setup_time Cisco only
min_setup_time Cisco only
max_setup_time Cisco only
ingress_path_tx Cisco only
egress_path_rx Cisco only
ingress_resv_rx Cisco only
egress_resv_tx Cisco only
ack_rx Cisco only
ack_tx Cisco only
nack_rx Cisco only
nack_tx Cisco only
srefresh_rx Cisco only
srefersh_tx Cisco only
bundle_rx Cisco only
bundle_tx Cisco only
msg_retx Cisco only
out_of_order_msg Cisco only

EXAMPLES See files starting with RSVP_ in the Samples subdirectory.


Also see some of the MVPN sample files for further
examples of the RSVP usage.
See the RSVP example in Appendix A, "Example APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

For settings:

intf_ip_address a.b.c.d

neighbor_intf_ip_addr a.b.c.d

For neighbors:

neighbors value:list of neighbors

For labels:

labels value:list of labels in the following format

{labels {\

20-16 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

{LSP_tunnel1 label1} \

{LSP_tunnel2 label2} \

... ... ... ... ... \

{LSP_tunneln labeln} \

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 20-17


RSVP-TE APIs
20

NAME — ::ixia::emulation_rsvp_tunnel_info

DESCRIPTION For a test port running RSVP emulation, retrieves the RSVP tunnel

information for both incoming and outgoing tunnels.

SYNOPSIS ::ixia::emulation_rsvp_tunnel_info
[-port_handle REGEXP ^[0-9]+/[0-9]+/[0-9]+$]
[-handle ]

ARGUMENTS

-port_handle The port where the RSVP tunnel information is to be retrieved.

-handle The RSVP session handle or tunnel handle.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log If status is failure, detailed information pro-
vided.
label list of labels; At port/session level.
total_lsp_count At port level only.
inbound_lsp_count At port level only.
outbound_lsp_count At port level only.
outbound_up_count At port level only.
outbound_down_count At port level only.
ingress_ip keyed list ingress_ip.$tunnel_handle; At ses-
sion/tunnel level.
egress_ip keyed list egress_ip.$tunnel_handle; At ses-
sion/tunnel level.
tunnel_id keyed list tunnel_id.$tunnel_handle; At ses-
sion/tunnel level.
source Cisco only
direction Cisco only
lsp_id Cisco only
outbound_connect_count Cisco only
outbound_lsps Cisco only
inbound_lsps list of LSP info; No further support, Cisco only

EXAMPLES See files starting with RSVP_ in the Samples subdirectory.


Also see some of the MVPN sample files for further
examples of the RSVP usage.
See the RSVP example in Appendix A, "Examples APIs," for one
specific example usage.

SAMPLE INPUT

SAMPLE OUTPUT

NOTES Coded versus functional specification.

20-18 HLTAPI Commands, Release 2.80 Rev. B


RSVP-TE APIs

The following stat counts are per port only:

total_lsp_count

inbound_lsp_count

outbound_lsp_count

outbound_up_count

outbound_down_count

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 20-19


RSVP-TE APIs
20

20-20 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs
21
Chapter 21:

This chapter covers the following topics:

• ::ixia::emulation_telnet_config on page 21-2.

• ::ixia::emulation_telnet_traffic_config on page 21-10.

• ::ixia::emulation_telnet_stats on page 21-14.

• ::ixia::emulation_telnet_control_config on page 21-23.

• ::ixia::emulation_telnet_control on page 21-29.

HLTAPI Commands, Release 2.80 Rev. B 21-1


TELNET APIs
21

NAME — ::ixia::emulation_telnet_config

DESCRIPTION This command is used to construct the environment required for the TELNET
protocol to be used. It sets for the client or server side of the emulation the con-
figuration of TCP parameters used for a TELNET transaction, the presence or
absence of an emulated router, the range of ports where the process can open
sockets, the buffers sizes. To this environment it can add network ranges to
define the TELNET client or server networks, or it can add DNS servers, or a
pool of IP addresses to be used for an emulated router between the network range
and the testing port. Multiple network ranges, DNS servers and suffixes or IP
address pools can be added to a client or server TELNET configuration.

SYNOPSIS ::ixia::emulation_telnet_config
-mode CHOICES add remove
modify enable disable
[-property CHOICES telnet network
router_addr dns]
[-handle ANY]
[-target CHOICES client
server]DEFAULT client]
[-port_handle REGEXP ^[0-9]+/[0-9]+/
[0-9]+$]
[-mac_mapping_mode CHOICES macip macport
DEFAULT macip]
[-source_port_from RANGE 1024-65535
DEFAULT 1024]
[-source_port_to RANGE 1024-65535
DEFAULT 65535]
[-emulated_router_gateway IP DEFAULT 0.0.0.0]
[-emulated_router_subnet MASK
DEFAULT 255.255.255.0]
[-dns_cache_timeout NUMERIC DEFAULT 30000]
[-grat_arp_enable CHOICES 0 1 DEFAULT 0]
[-congestion_notification_enable CHOICES 0 1 DEFAULT 0]
[-time_stamp_enable CHOICES 0 1 DEFAULT 1]
[-rx_bandwidth_limit_enable CHOICES 0 1 DEFAULT 0]
[-tx_bandwidth_limit_enable CHOICES 0 1 DEFAULT 0]
[-fin_timeout NUMERIC DEFAULT 60]
[-keep_alive_interval NUMERIC DEFAULT 7200]
[-keep_alive_probes NUMERIC DEFAULT 9]
[-keep_alive_time NUMERIC DEFAULT 75]
[-receive_buffer_size NUMERIC DEFAULT 4096]
[-retransmit_retries NUMERIC DEFAULT 15]
[-rx_bandwidth_limit NUMERIC]
[-rx_bandwidth_limit_unit CHOICES kb mb
DEFAULT kb]
[-syn_ack_retries NUMERIC DEFAULT 5]
[-syn_retries NUMERIC DEFAULT 5]
[-transmit_buffer_size NUMERIC DEFAULT 4096]
[-tx_bandwidth_limit NUMERIC]
[-tx_bandwidth_limit_unit CHOICES kb mb
DEFAULT kb]
[-ip_address_start IP DEFAULT 198.18.0.1]
[-mac_address_start MAC
DEFAULT 00.C6.12.00.01.00]
[-gateway IP DEFAULT 0.0.0.0]

21-2 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

[-ip_count NUMERIC DEFAULT 100]


[-ip_increment_step IP DEFAULT 0.0.0.1]
[-mac_increment_step MAC
DEFAULT 00.00.00.00.00.01]
[-mss NUMERIC DEFAULT 1460]
[-mss_enable CHOICES 0 1 DEFAULT 0]
[-network_mask MASK DEFAULT 255.255.0.0]
[-vlan_enable CHOICES 0 1 DEFAULT 0]
[-vlan_id NUMERIC]
[-dns_server IP]
[-dns_suffix REGEXP ^\.[A-z]+\.[A-
z]+$]
[-pool_ip_address_start IP DEFAULT 194.18.0.1]
[-pool_ip_count NUMERIC DEFAULT 1]
[-pool_mac_address_start MAC DEFAULT
00.C2.12.00.01.00]
[-pool_network MASK DEFAULT 255.255.0.0]
[-pool_vlan_enable CHOICES 0 1 DEFAULT 0]
[-pool_vlan_id NUMERIC

ARGUMENTS

-handle Handle of a telnet property , used when -property is network or router_addr or


dns and -mode is add. Also the handle of a telnet or network or router_addr or
dns property when "-property" is respectively telnet,network, router_addr, dns
and "-mode" is modify or remove, enable, disable.

Dependencies: "-property" network|router_addr|dns and "-mode" add "-property"


telnet and "-mode" modify

-target Specifies where this network will be added: on the client side or on the server
side. Values: client, server.

Dependencies: property telnet with mode add.

(DEFAULT = client)

-property Defines types of properties of the TELNET configuration. Mandatory for -mode
add. Valid choices are:

Value Usage

telnet handles operations required for defining the


general parameters required for TELNET
protocol.
network handles the operations required for defining
the emulated client or server networks.
router_addr handles the operations required for defining
the pool of IP addresses required for the
emulated router between the client networks
and the physical port.
dns handles the operations required for defining
the Domain Name Server protocol parame-
ters needed for the TELNET protocol.

-mode Defines types of actions to be taken on the "-property" object. Values: add,
remove, modify, enable, disable.

HLTAPI Commands, Release 2.80 Rev. B 21-3


TELNET APIs
21
-port_handle The ports on the chassis this protocol will be created.

Dependencies: "-property" telnet with "-mode" add or modify.

-mac_mapping_mode Indicates whether one MAC address will be associated with each IP address or
with each port. The use of the latter option indicates that an emulated router is to
be used. Values are: macip, macport.

Dependencies: "-property" telnet with "-mode" add or modify.

(DEFAULT = macip)

-source_port_from 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 source_port_to.
Valid values are from 1024 to 65535.

(DEFAULT = 1024)

-source_port_to Defines the end of the range of ephemeral port numbers used to

establish connections to the server. Valid values are from 1024 to 65535.

(DEFAULT = 65535)

-emulated_router_gateway If "-mac_mapping_mode" is set to macport, 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)

-emulated_router_subnet If "-mac_mapping_mode" is set to macport, 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)

-dns_cache_timeout The length of time, in milliseconds, the program should continue to refer to the
previously resolved host name stored in its cache before discarding the entry and
accessing the DNS server to re-resolve the host name.

(DEFAULT = 30000)

-grat_arp_enable Values: 0 or 1. If true, before beginning a test, the program will ARPs the gate-
ways so that the DUT can learn the MAC addresses used on the subnet. If a sub-
net is set to MAC per Port, the subnet sends one ARP request. If a subnet is set to
MAC per IP, each host on the subnet sends an ARP request.

(DEFAULT = 0)

-congestion_notification_ Values: 0 or 1. If true, the client or server uses bits from the Type of Service
enable (TOS) field and the TCP packet header’s Reserved field to support Explicit Con-
gestion Notification (ECN). ECN uses the bits as follows:

TOS bit 6 is the ECT (Explicit Congestion Transport) bit, which a recipient sets
to indicate that it supports ECN.

TOS bit 7 is the CE (Congestion Experienced) bit, which the recipient sets if its
average queue length exceeds a threshold.

TCP header Reserved field bit 5 the CWR (Congestion Window Reduced) bit.

21-4 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

TCP header Reserved field bit 6 is the ECN-Echo bit.

A SYN packet with both ECN-Echo and CWR bits indicates the sender supports
ECN in both directions (as sender and receiver). A combined SYN+ACK packet
sets only ECN to indicate ECN capability. If you enable ECN, the sender sets the
ECT bit to indicate that it supports ECN. If the sender receives a packet with the
CE bit set, it returns an ACK with the ECN-Echo bit set. If a sender receives a
packet with ECN-Echo set, it should reduce its window size. The first packet it
sends after reducing its window size has the CWR bit set. The sender will repeat-
edly reduce its window size until it receives a packet in return with the CWR bit
from the recipient.

(DEFAULT = 0)

-time_stamp_enable Values: 0 or 1. If true, the client or server inserts a timestamp into each packet.

(DEFAULT = 1)

-rx_bandwidth_limit_ Values: 0 or 1. Enables or disables rx_bandwidth_limit.


enable
(DEFAULT = 0)

-tx_bandwidth_limit_ Values: 0 or 1. Enables or disables tx_bandwidth_limit.


enable
(DEFAULT = 0)

-fin_timeout The amount of time a TCP implementation will keep a TCP connection open
that it has closed itself, i.e., sent a FIN for (it has no more data to send).

(DEFAULT = 60)

-keep_alive_interval The interval, in seconds, between repeated keep alive probes sent.

(DEFAULT = 7200)

-keep_alive_probes The number of keep alive probes that the program sends out before determining
that a link is down.

(DEFAULT = 9)

-keep_alive_time If a link has no activity on it for the time specified, in seconds, the program
begins sending keep alive probes to determine if the link is still up.

(DEFAULT = 75)

-receive_buffer_size The size of the receive buffer. This affects the TCP receive window size. If you
increase the size of the receive buffer, the program enlarges the receive window.
If you are experiencing high latency on your test network, you can increase the
size of the receive buffer to improve the throughput.

(DEFAULT = 4096)

-retransmit_retries The number of times the program attempts to re-transmit a packet for which it
has not received an acknowledgement.

(DEFAULT = 15)

HLTAPI Commands, Release 2.80 Rev. B 21-5


TELNET APIs
21
-rx_bandwidth_limit The maximum amount of receive bandwidth on each port allowed to the clients
or servers. You can use this parameter to simulate the bandwidth available from
different types of Internet access technologies such as dial-up, ISDN, cable
modem, or T1. If you do not configure this parameter, the program uses all the
bandwidth available on the test ports.

Dependencies: -rx_bandwidth_limit_enable 1.

-rx_bandwidth_limit_unit The units used in rx_bandwidth_limit: kilobytes per second or megabytes per
second. Values: kb | mb.

Dependencies: -rx_bandwidth_limit_enable 1.

(DEFAULT = kb)

-syn_ack_retries The number of times the program re-transmits an un-acknowledged SYN-ACK


for a passive TCP connection.

(DEFAULT = 5)

-syn_retries The number of times IxLoad re-transmits an un-acknowledged SYN for an active
TCP connection.

(DEFAULT = 5)

-transmit_buffer_size The size of the transmit buffer. This affects the TCP transmit window size. If you
increase the size of the transmit buffer, IxLoad enlarges the transmit window. If
you are experiencing high latency on your test network, you can increase the size
of the transmit buffer to improve the throughput.

(DEFAULT = 4096)

-tx_bandwidth_limit The maximum amount of transmit bandwidth on each port allowed to the clients
or servers. You can use this parameter to simulate the bandwidth available from
different types of Internet access technologies such as dial-up, ISDN, cable
modem, or T1. If you do not configure this option, the program uses all the band-
width available on the test ports.

Dependencies: tx_bandwidth_limit_enable 1.

-tx_bandwidth_limit_unit The units used in tx_bandwidth_limit: kilobytes per second or megabytes per
second. Value: kb | mb.

(DEFAULT = kb)

Dependencies: tx_bandwidth_limit_enable 1.

-ip_address_start The first IP address for the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 198.18.0.1)

-mac_address_start The first MAC address for the network range. This is not used if the value of
mac_mapping_mode is set to "macport".

Dependencies: mac_mapping_mode macip ; property network with mode add |


modify.

(DEFAULT = 00.C6.12.00.01.00)

21-6 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

-gateway The gateway associated with all IP addresses in the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 0.0.0.0)

-ip_count The number of unique IP addresses in the network range.

Dependencies: property network with mode add | modify.

(DEFAULT = 100)

-ip_increment_step 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
non-zero. 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 which use more than one
octet, for example 0.0.1.1, are illegal.

Dependencies: property network with mode add | modify.

(DEFAULT = 0.0.0.1)

-mac_increment_step 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 non-zero. 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
0C.00.00.00.00.00 are valid values which will increment a different octet each
time. Values which use more than one byte, for example 00.00.00.00.01.01, are
illegal.

This is not used if the value of mac_mapping_mode is set to "macport". Depen-


dencies: property network with mode add | modify.

(DEFAULT = 00.00.00.00.00.01)

-mss If mss_enable is true, this option specifies the TCP Maximum Segment Size in
the MSS (RX) field. Otherwise, clients or servers advertise their TCP Maximum
Segment Size as 1460 bytes.

Dependencies: mss_enable 1 ; property network with mode add | modify.

(DEFAULT = 1460)

-mss_enable If true the use of mss option is enabled. Value: 0 or 1.

Dependencies: property network with mode add | modify.

(DEFAULT = 0)

-network_mask The subnet mask associated with the IP range.

Dependencies: property network with mode add | modify.

(DEFAULT = 255.255.0.0)

-vlan_enable If true , VLAN IDs are inserted. Values: 0 or 1.

Dependencies: property network with mode add | modify.

(DEFAULT = 0)

HLTAPI Commands, Release 2.80 Rev. B 21-7


TELNET APIs
21
-vlan_id The ID of the VLAN to be inserted. Values: 0-4095.

Dependencies: vlan_enable 1 ; property network with mode add | modify.

-dns_server Defines DNS servers to be used for lookups.

Dependencies: property dns with mode add | modify.

-dns_suffix Define suffixes to be appended to partial host names. Each is tried in order by the
DNS server(s).

Dependencies: property dns with mode add | modify.

-pool_ip_address_start The first IP address for the pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 194.18.0.1)

-pool_ip_count The count of the number of IP addresses to be generated.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 1)

-pool_mac_address_start The first MAC address for the pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 00.C2.12.00.01.00)

-pool_network The subnet mask associated with the IP pool range.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 255.255.0.0)

-pool_vlan_enable If true, VLAN tags are inserted into the IP frame. Value: 0 or 1.

Dependencies: property router_addr with mode add | modify.

(DEFAULT = 0)

-pool_vlan_id The VLAN ID to be inserted. Values: 0-4095.

Dependencies: pool_vlan_enable 1 ; property router_addr with mode add | mod-


ify.

RETURN VALUES
Key Value
status $::SUCCESS | $::FAILURE
log When status is $::FAILURE, contains more
information
handles the handles of a TELNET configuration, net-
work, router, pool, dns server

EXAMPLES See files starting with TELNET_ in the Samples subdirectory.


Also see the TELNET example in Appendix A, "Example
APIs."

21-8 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {telnet_config1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 21-9


TELNET APIs
21

NAME — ::ixia::emulation_telnet_traffic_config

DESCRIPTION The command is used to construct the model for client or server traffic to be
applied, or respectively, handled during the test. This traffic is composed by
commands created by client TELNET agents which are handled by server TEL-
NET agents. Multiple agents can be added to form a TELNET traffic.

SYNOPSIS ::ixia::emulation_telnet_traffic_config
-mode CHOICES add remove modify enable
disable
-property CHOICES traffic agent
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-default_command_prompt ANY]
[-options_enable CHOICES 0 1 DEFAULT 0]
[-expect_timeout NUMERIC DEFAULT 100]
[-esm_enable CHOICES 0 1]
[-esm NUMERIC DEFAULT 1460]
[-command CHOICES open login password end
exit think loop_begin loop_end ]
[-expect ANY]
[-send ANY]
[-server_close_command ANY]
[-server_command_prompt ANY DEFAULT #]
[-echo_enable CHOICES 0 1 DEFAULT 1]
[-linemode_enable CHOICES 0 1 DEFAULT 0]
[-port RANGE 0-65635 DEFAULT 23]
[-goahead_enable CHOICES 0 1 DEFAULT 0]

ARGUMENTS

-handle Handle of a telnet configuration when -property traffic and -mode add. Or handle
of a traffic property , used when -property is agent and -mode is add. Also the
handle of a traffic, agent or command property when -property is respectively
traffic, agent and -mode is modify | remove | enable | disable.

Dependencies: -property agent; -property traffic command with -mode modify.

-target Specifies where this traffic will be added: on the client side or on the server side.
Values: client or server.

Dependencies: -property traffic with -mode add.

(DEFAULT = client)

-property Defines types of properties of the TELNET traffic configuration. Command han-
dles operations required for defining commands for the telnet agents. Valid
choices are:

Value Usage

traffic handles operations required for defining the


telnet traffic of clients or servers.
agent handles operations required for defining the
emulated telnet clients or telnet servers.

21-10 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

-mode Defines types of actions to be taken on the -property object. Values: add | remove
| modify | enable | disable.

-default_command_prompt The default value of the command prompt.

Dependencies: -property agent with -mode add | modify.

-options_enable Enables options negotiation with the telnet server. Values: 0 or 1. Dependencies:
-property agent with -mode add | modify.

(DEFAULT = 0)

-expect_timeout The time in seconds to wait for receipt of the expected response.

Dependencies: -property agent with -mode add | modify.

(DEFAULT = 120)

-esm_enable If true enables the use of ESM. Value: 0 or 1. Dependencies: -property agent with
-mode add | modify.

(DEFAULT = 0)

-esm The ESM value to negociate with.

Dependencies: -property agent with -mode add | modify.

(DEFAULT = 1460)

-command The command sent to the telnet server.

Dependencies: property command with mode add | modify.

Valid choices are:

Value Usage

open Open a connection to a Telnet server.


login Login to the Telnet server, sending the user
name.
password Send a password.
send Send an arbitrary string.
exit Close the session with the Telnet server.
think Wait for a random period of time within a
specified range.

-expect This option is dependent of the -command option value.

Dependencies: property command with mode add | modify.

If -command is:

open - The expected response from the command. (DEFAULT = "login:")

login - The expected response from the command. (DEFAULT = "Password::")

password - The expected response from the command. If no value is specified


then the default_command_prompt of the client
agent is used.

HLTAPI Commands, Release 2.80 Rev. B 21-11


TELNET APIs
21
send - The expected response from the command. If no value is specified then
the default_command_prompt of the client agent is used.

think - The upper limit of a randomly chosen sleep, expressed in microseconds.


(DEFAULT = 1000)

-send This option is dependent of the -command option value. If -command is:

open - The name or IP address of the Telnet server or Telnet server activity.
(DEFAULT = "")

login - The login name to send to the Telnet server. (DEFAULT = root)

password - The password to send to the Telnet server. (DEFAULT = root)

send - The string to send to the Telnet server. (DEFAULT = root)

exit - The string to send to the Telnet server to exit the Telnet session.
(DEFAULT = exit)

think - The lower limit of a randomly chosen sleep, expressed in microseconds.


(DEFAULT = 1000)

Dependencies: property command with mode add | modify.

-server_close_command The value of the close command expected from the client.

Dependencies: property agent with mode add | modify.

(DEFAULT = exit)

-server_command_prompt The command prompt to send to clients.

Dependencies: property agent with mode add | modify.

(DEFAULT = #)

-echo_enable Causes the server to echo received characters. Values: 0 or 1. Dependencies:


property agent with mode add | modify.

(DEFAULT = 1)

-linemode_enable Causes the line-mode option to be negotiated with the client. Values: 0 or 1.
Dependencies: property agent with mode add | modify.

(DEFAULT = 0)

-port The port that the Telnet server listens on.

Dependencies: property agent with mode add | modify.

(DEFAULT = 23)

-goahead_enable If false it will suppress the "go ahead" command. Value: 0 or 1. Dependencies:
property agent with mode add | modify.

(DEFAULT = 0)

21-12 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a TELNET traffic configuration,
list of traffic, agent.

EXAMPLES See files starting with TELNET_ in the Samples subdirectory.


Also see the TELNET example in Appendix A, "Example
APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {telnet_trafficconfig1}}

NOTES Coded versus functional specification.

SEE ALSO

HLTAPI Commands, Release 2.80 Rev. B 21-13


TELNET APIs
21

NAME — ::ixia::emulation_telnet_stats

DESCRIPTION This command manages the statistics gathered during the test run. It can add mul-
tiple types of statistics, extract data, clear statistics from a previous run, or can
add specific filters to the way the statistics are gathered.

SYNOPSIS ::ixia::emulation_telnet_stats
-mode CHOICES add clear get
[-handle ANY]
[-aggregation_type CHOICES sum max min average rate
maxrate minrate averagerate DEFAULT sum]
[-stat_name ALPHANUM]
[-stat_type CHOICES client server
DEFAULT client]
[-filter_type CHOICES port card chassis traffic
map]
[-filter_value ANY]

ARGUMENTS

-handle Handle of a a statistic. Dependencies: -mode get.

-mode Defines types of actions to be taken. Valid choices are:

Value Usage
add adds a statistic.
clear clear all statistics previously added.
get get statistic data.

-aggregation_type Specifies how statistics for multiple ports are combined.

Dependencies: -mode add.

(DEFAULT = sum)

Valid choices are:

Value Usage

sum add all of the statistics together. max -


determine the maximum value.
min determine the minimum value.
average determine the average value.
rate determine the rate of change of the sum of all
the statistics.
maxrate determine the maximum rate.
minrate determine the minimum rate.
averagerate determine the average rate.

21-14 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

-stat_name A particular statistic name as listed in the statistics list.

Dependencies: -mode add.

The list of statistics can be found below.

Valid choices are:

Value Usage

<< CLIENT >> - N/A


Connection Statistics: - N/A
telnet_active_conn Number of active Telnet connections.
telnet_total_conn_requested Number Telnet connections requested by the
client.
telnet_total_conn_succeeded Number of Telnet connections established by
the client.
telnet_total_conn_failed Number of failed attempts to establish Telnet
connections.
telnet_total_conn_latency Average amount of time required to establish
a Telnet connection.
telnet_total_sessions_completed Total number of Telnet connections that
ended normally.
telnet_total_sessions_not_completed Total number of Telnet sessions that were
established but did not end normally.
telnet_average_session_length Average Telnet session duration.
Login Statistics: - N/A
telnet_total_login_prompts_received Total number of login prompts received.
telnet_total_login_prompts_not_ Total number instances in which the client
received connected to the server but did not receive a
login prompt in return.
telnet_total_password_prompts_ Total number of password prompts received.
received
telnet_total_password_prompts_not_ Total number of instances in which the client
received sent a user name to the server but did not
receive a password prompt in return.
telnet_total_logins_succeeded Total number of successful logins by the cli-
ents.
telnet_total_logins_failed Total number of login attempts that failed.
telnet_total_logins_failed_timeout Total number of login attempts that failed
because a response was not received within
the timeout period.
telnet_total_logins_failed_other Total number of login attempts that failed for
reasons other than a timeout.
Transaction Statistics: - N/A
telnet_total_transactions Total number of Telnet transactions com-
pleted. 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.

HLTAPI Commands, Release 2.80 Rev. B 21-15


TELNET APIs
21

Value Usage

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_timeout Total number of SEND commands that failed
because no response was received within
the timeout period.
telnet_total_commands_failer_other Total number of SEND commands that failed
for reasons other than a timeout.
Bytes Statistics: - N/A
telnet_total_bytes_sent Total number of bytes sent over Telnet con-
nections.
telnet_total_bytes_received Total number of bytes received by the client
over Telnet connections.
telnet_total_bytes_sent_and_received Combined rate at which the clients sent and
received data over Telnet connections.
Echo Options Statistics: - N/A
telnet_total_echo_options_received Number of requests received from the server
to begin using the Echo option.
telnet_total_echo_options_not_ Number of requests received from the server
received to stop using the Echo option.
telnet_total_echo_options_will_ Number of responses received from the
received server agreeing to use the Echo option.
telnet_total_echo_options_wont_ Number of responses received from the
received 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_do_sent_ Rate at which the client sent requests to the
per_sec 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_dont_sent_ Rate at which the client sent requests to the
per_sec 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_options_wont_sent Number of responses sent by the client reject-
ing use of the Echo option.
Suppress Go Ahead Options: - N/A
telnet_total_suppress_goahead_do_ Number of requests received from the server
received to begin using the Go Ahead option.
telnet_total_suppress_goahead_dont_ Number of requests received from the server
received to stop using the Go Ahead option.
telnet_total_suppress_goahead_will_ Number of responses received from the
received server agreeing to use the Go Ahead option.

21-16 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

Value Usage

telnet_total_suppress_goahead_wont_ Number of responses received from the


received server rejecting use of the Go Ahead option.
telnet_total_suppress_goahead_do_ Number of requests sent to the server to
sent begin using the Go Ahead option.
telnet_total_suppress_goahead_dont_ Number of requests sent to the server to stop
sent using the Go Ahead option.
telnet_total_suppress_goahead_will_ Number of responses sent by the client
sent agreeing to use the Go Ahead option.
telnet_total_suppress_goahead_wont_ Number of responses sent by the client reject-
sent ing use of the Go Ahead option.
Line Mode Options Statistics: - N/A
telnet_total_line_mode_options_do_ Number of requests received from the server
received to begin using the Line Mode option.
telnet_total_line_mode_options_dont_ Number of requests received from the server
received to stop using the Line Mode option.
telnet_total_line_mode_options_will_ Number of responses received from the
received server agreeing to use the Line Mode option.
telnet_total_line_mode_options_wont_ Number of responses received from the
received server rejecting use of the Line Mode option.
telnet_total_line_mode_options_do_ Number of requests sent to the server to
sent begin using the Line Mode option.
telnet_total_line_mode_options_dont_ Number of requests sent to the server to stop
sent using the Line Mode option.
telnet_total_line_mode_options_will_ Number of responses sent by the client
sent agreeing to use the Line Mode option.
telnet_total_line_mode_options_wont_ Number of responses sent by the client reject-
sent ing use of the Line Mode option.
Sub-Options Statistics: - N/A
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 Sta- N/A
tistics: -
telnet_total_line_mode_suboptions_ Total number of Telnet sub-option edit masks
em_received received by the client.
telnet_total_line_mode_suboptions_ Total number of Telnet sub-option edit masks
em_sent sent by the client.
Objectives: - N/A
simulated_users Number of Telnet users simulated during the
test.
concurrent_connections Maximum number of simultaneous Telnet
connections established during the test.
connection_rate Rate at which the client established Telnet
connections.
transaction_rate Rate at which the client completed transac-
tions with the server over Telnet connections.
One transaction consists of a LOGIN, PASS-
WORD, SEND, or EXIT command and the
response to it.

HLTAPI Commands, Release 2.80 Rev. B 21-17


TELNET APIs
21

Value Usage

<< SERVER >> - N/A


Connection Statistics: - N/A
telnet_active_conn Number of Telnet connections up.
telnet_total_accepted_conn Total number of requests for Telnet connec-
tions accepted by the server.
Username Statistics: - N/A
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_timeout Number of instances in which the server did
not receive a user name within the timeout
period.
telnet_usernames_failed_other Number of instances in which the server did
not receive user names for reasons other
than a timeout.
Password Statistics: - N/A
telnet_password_prompts_sent Number of password prompts sent by the
server to the clients.
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_timeout 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.
Login Statistics: - N/A
telnet_logins_succeeded Number of successful logins to the server. A
successful login occurs when the server
received a username 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: - N/A
telnet_commands_processed Total number of SEND commands received
over Telnet connections and executed on the
server.
Byte Statistics: - N/A
telnet_total_bytes_sent Total number of bytes sent over Telnet con-
nections 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 connections by the server.
Generic Option Statistics: - N/A
telnet_option_negotiation_failed Total number of attempts to negotiate Telnet
options that failed for any reason.

21-18 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

Value Usage

telnet_option_negociation_failed_time- Total number of attempts to negotiate Telnet


out options that failed because no response was
received within the timeout period.
telnet_option_negociation_failed_other Total number of attempts to negotiate Telnet
options that failed for reasons other than a
timeout.
Generic Sub-Option Statistics: - N/A
telnet_suboption_negociation_failed Total number of attempts to negotiate Telnet
sub-options that failed for any reason.
telnet_suboption_negociation_failed_ Total number of attempts to negotiate Telnet
timeout sub-options that failed because no response
was received within the timeout period.
telnet_suboption_negociation_failed_ Total number of attempts to negotiate Telnet
other sub-options that failed for reasons other than
a timeout.
Echo Option Statistics: - N/A
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_sent Number of responses sent by the server
agreeing to begin using the 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_received Number of responses recevied by the server
agreeing to begin using the 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: - N/A
telnet_ga_suppress_options_do_sent Number of requests sent by the server to sup-
press 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 mes-
sages. Effectively, the server requests that
the clients send Go Ahead messages.
telnet_ga_suppress_options_wont_ Number of responses sent by the server
sent rejecting suppression of Go Ahead mes-
sages. Effectively, the server signals that it
will send Go Ahead messages.
telnet_ga_suppress_options_do_ Number of requests received by the server to
received suppress Go Ahead messages. Effectively,
the server is being requested to not send Go
Ahead messages.

HLTAPI Commands, Release 2.80 Rev. B 21-19


TELNET APIs
21

Value Usage

telnet_ga_suppress_options_will_ Number of responses received by the server


received indicating that the client will suppress Go
Ahead messages. Effectively, the clients
agree to not send Go Ahead messages.
telnet_ga_suppress_options_dont_ Number of requests received by the server to
received not suppress Go Ahead messages. Effec-
tively, the server is being requested to send
Go Ahead messages.
telnet_ga_suppress_options_wont_ Number of responses received by the server
received indicating that the client will not suppress Go
Ahead messages. Effectively, the clients
agree to send Go Ahead messages.
Line-Mode Option Statistics: - N/A
telnet_linemode_options_do_sent Number of requests sent by the server to the
clients to begin using the Line Mode option.
telnet_linemode_options_will_sent Number of responses sent by the server
agreeing to begin using the Line mode
option.
telnet_linemode_options_dont_sent Number of requests sent by the server to the
clients to stop using the Line Mode option.
telnet_linemode_options_wont_sent Number of responses sent by the server
agreeing to stop using the Line mode option.
telnet_linemode_options_do_received Number of requests received by the server to
begin using the Line Mode option.
telnet_linemode_options_will_received Number of responses received by the server
agreeing to begin using the Line Mode
option.
telnet_linemode_options_dont_ Number of requests received by the server to
received stop using the Line Mode option.
telnet_linemode_options_wont_ Number of responses received by the server
received rejecting use of the Line Mode option.
Line-Mode Sub-Optioin Statistics: - N/A
telnet_linemode_suboptions_sent Number of messages setting the Line Mode
sub-options sent by the server.
telnet_linemode_suboptions_received Number of messages setting the Line Mode
sub-options received by the server.
Special Statistics: - N/A
telnet_linemode_edit_mask_sent Number of Line Mode Edit Mask messages
sent by the server.
telnet_linemode_edit_mask_received Number of Line Mode Edit Mask messages
received by the server.

-stat_type The agent type that generates the statistics.

Values: client or server. Dependencies: -mode add.

(DEFAULT = client)

21-20 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

-filter_type The type of the filter available.

Dependencies: -mode add.

(DEFAULT = port)

Valid choices are:

Value Usage

port a filter operation may be performed across


the port described in the filter_value field.
card a filter operation may be performed across
the card described in the filter_value field.
chassis a filter operation may be performed across
the chassis described in the filter_value field.
traffic a filter operation may be performed across on
the traffic described in the filter_value field.
map a filter operation may be performed across
the mapping described in the filter_value
field.

-filter_value A value corresponding to the value of the type option.

Dependencies: -mode add.

Valid choices are:

Value Usage

If -type is "port" a port specification in the form chassis/card/


port.
If -type is "card" a card specification in the form chassis/card.
If -type is "chassis" a chassis specification in the form chassis If -
type is "traffic" - a traffic handle created by
emulation_telnet_traffic_config.
If -type is "map" a map handle created by emulation_telnet_
control_config.

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a TELNET stats configuration.
<stat_group_handle>.<client|server>.< The value of the specified statistic name. The
stat_name>.<timestamp> <stat_name> is also used when adding a sta-
tistic.

EXAMPLES See files starting with TELNET_ in the Samples subdirectory.


Also see the TELNET section in Appendix A, "Example
APIs."

SAMPLE INPUT

HLTAPI Commands, Release 2.80 Rev. B 21-21


TELNET APIs
21
SAMPLE OUTPUT {status $::SUCCESS} {handles {statistic1}}
or
{status $::SUCCESS}
{statistic1.client.telnet_active_conn.110290069000 5}

NOTES Coded versus functional specification.

SEE ALSO

21-22 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

NAME — ::ixia::emulation_telnet_control_config

DESCRIPTION This command is used to construct the mapping between the agents that will gen-
erate the traffic and the set of networks which will carry the traffic. A number of
additional options control the manner in which the traffic is applied to the net-
works. To the client side mappings , the command can specify the options used to
allow the test to achieve a particular objective, for example, connections per sec-
ond, or the options that determine the timeline for application of traffic or the
options that control the manner in which client traffic is sent to servers.

SYNOPSIS ::ixia::emulation_telnet_control_config
-mode CHOICES add remove modify
enable disable
[-handle ANY]
[-target CHOICES client server
DEFAULT client]
[-property CHOICES map dut]
[-direct_server_return_enable CHOICES 0 1 DEFAULT 0]
[-ip_address IPV4 DEFAULT 1.1.1.1]
[-server_telnet_handle ANY]
[-type CHOICES external slb
firewall DEFAULT slb]
[-client_iterations NUMERIC DEFAULT 1]
[-client_telnet_handle ANY]
[-client_traffic_handle ANY]
[-objective_type CHOICES na users
connections crate trate tputmb tputkb sessions
DEFAULT na]
[-objective_value NUMERIC]
[-client_offline_time NUMERIC DEFAULT 0]
[-port_map_policy CHOICES pairs mesh
round_robin DEFAULT pairs]
[-ramp_down_time NUMERIC DEFAULT 20]
[-ramp_up_type CHOICES users_per_second
max_pending_users DEFAULT users_per_second]
[-ramp_up_value NUMERIC]
[-client_standby_time RANGE 0-3600000 DEFAULT 0]
[-client_sustain_time RANGE 0-3600000 DEFAULT 0]
[-client_total_time NUMERIC DEFAULT 60]
[-server_traffic_handle ANY]
[-match_client_totaltime CHOICES 0 1 DEFAULT 1]
[-server_iterations NUMERIC DEFAULT 1]
[-server_offline_time NUMERIC DEFAULT 0]
[-server_standby_time RANGE 0-3600000 DEFAULT 0]
[-server_sustain_time NUMERIC DEFAULT 20]
[-server_total_time NUMERIC DEFAULT 60]

ARGUMENTS

-handle Handle of a map or DUT property.

-target Specifies the type of the map. Value: client | server.

(DEFAULT = client)

Dependencies: property map with mode add.

HLTAPI Commands, Release 2.80 Rev. B 21-23


TELNET APIs
21
-property Defines types of the TELNET control configuration: Map handles operations
required for mapping a telnet configuration with a traffic configuration. DUT
handles operations required for defining a Device Under Test parameters. Value:
map | dut.

-mode Defines types of actions to be taken on the -property object. Enable and disable
are not valid values for -property DUT. Value: add | remove | modify | enable |
disable.

-direct_server_return_ If type is "slb" and this option is true, Direct Server Return is enabled. In a basic
enable SLB topology, incoming requests from clients and outgoing responses from serv-
ers both go through the SLB. 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. DSR reduces the amount of traffic going through the SLB, allowing it
to devote more resources to managing the incoming requests and monitoring the
status of the servers in its pool. Value: 0 | 1.

(DEFAULT = 0)

Dependencies: property dut with mode add | modify ; type slb.

-ip_address The IPv4 address, virtual IPv4 address or host name used to access the DUT.

(DEFAULT = 1.1.1.1)

Dependencies: property dut with mode add | modify.

-server_telnet_handle If type is "slb" and the SLB is balancing emulated servers, set this option to the
handle of the server telnet network that is being balanced.

-type The type of DUT in use.

(DEFAULT = slb)

Dependencies: property dut with mode add | modify.

Valid choices are:

Value Usage

external The DUT is a protocol server.


slb The DUT is a server load balancer.
firewall The DUT is a firewall.

-client_iterations The number of times that the traffic-network pair perform their functions (estab-
lishing TCP connections, retrieving files, etc.) in the test.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-client_telnet_handle This handle provides the networks from which the traffic will be generated.

Dependencies: property map with mode add | modify.

-client_traffic_handle This handle provides the model of the client traffic to be generated.

Dependencies: property map with mode add | modify.

21-24 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

-objective_type The objective to be achieve for this traffic to network mapping.

Dependencies: property map with mode add | modify.

Valid choices are:

Value Usage

na (default) If this option is not used there will be


no objective set.
users Number of Telnet users simulated during the
test. Specify the desired number of users in
the objective_value option.
sessions The objective is to sustain some number of
sessions simultaneously. Specify the desired
number of connections in the objective_value
option.
connections The Maximum number of simultaneous Telnet
connections established during the test.
Specify the desired number of connections in
the objective_value option.
crate Rate at which the client established Telnet
connections. Specify the desired number of
connections per second in the objective_
value option.
trate Rate at which the client completed transac-
tions with the server over Telnet connections.
One transaction consists of a LOGIN, PASS-
WORD, SEND, or EXIT command and the
response to it. Specify the desired number of
transactions per second in the objective_
value option.
tputmb The objective is to achieve a certain level of
throughput, measured in Megabytes per sec-
ond (MBps). Specify the amount of through-
put in the objective_value option.
tputkb The objective is to achieve a certain level of
throughput, measured in Kilobytes per sec-
ond (KBps). Specify the amount of through-
put in the objective_value option.

-objective_value A value related to the choice made in the objective_type option.

Dependencies: property map with mode add | modify.

-client_offline_time The amount of time agents are idle between iterations.

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-port_map_policy This option controls the sequence in which the client ports connect to the server
ports. For large numbers of ports, the Port Pair sequence scales performance bet-
ter than the Port Mesh sequence. The operation of Port Pairs can be described by
three scenarios: 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. If the number of client ports is less than the number of server ports, the cli-
ent ports will establish connections to the server ports on a one-to-one basis until

HLTAPI Commands, Release 2.80 Rev. B 21-25


TELNET APIs
21
all client ports are paired with server ports. The remaining server ports will not be
used. 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. Dependencies: property map with mode add | modify. Valid choices are:

Value Usage

pairs (default) Client agents connect to server


agents on a one-to-one basis.
mesh Agents on every client port connect to every
server port.

-ramp_down_time The amount of time used for closing any TCP connections that are still open after
all transactions are complete. When the ramp down time expires, the program ter-
minates any users. If the program terminates any client users that are still running
after the ramp down time expires, statistics for servers and clients that should
match may not. This is an indication that the ramp down time may be too short.

(DEFAULT = 20)

Dependencies: property map with mode add | modify.

-ramp_up_type The method used to apply the ramp_up_value. Dependencies: property map with
mode add | modify.Valid choices are:

Value Usage
users_per_second (default) applies the ramp_up_value to bring
up the specified number of users per second.
For example, if you select users_per_second
and you specify 10 for the ramp_up_value,
the program brings up 10 new users every
second until all the users are and running.
max_pending_users - N/A

-ramp_up_value A value dependent on the setting of ramp_up_type.

Dependencies: property map with mode add | modify.

-client_standby_time 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 paris 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 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-client_sustain_time 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). The
valid range is from 0 to 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

21-26 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

-client_total_time The total time required to run the test, including Ramp Up, Ramp Down, Sustain,
and Offline times for all iterations.

(DEFAULT = 60)

Dependencies: property map with mode add | modify.

-server_traffic_handle This handle provides the model of the server traffic to be generated. Dependen-
cies: property map with mode add | modify.

-match_client_totaltime 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 dura-
tion 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 test-
ing, the test results for that client may be misleading. If false, the program calcu-
lates agent run times independently for each server activity. server_offline_time,
server_standby_time, server_sustain_time, server_total_time options will be dis-
abled if -match_client_totaltime option is enabled. Value: 0 | 1.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-server_iterations The number of times that the traffic-network pair perform their functions (estab-
lishing TCP connections, retrieving files, etc.) in the test.

(DEFAULT = 1)

Dependencies: property map with mode add | modify.

-server_offline_time Amount of time agents are idle between iterations.

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-server_standby_time 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 1000 hours (3,600,000).

(DEFAULT = 0)

Dependencies: property map with mode add | modify.

-server_sustain_time 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 (TELNET).

(DEFAULT = 20)

Dependencies: property map with mode add | modify.

-server_total_time The total time required to run the test, including Standby, Sustain, and Offline
times for all iterations.

(DEFAULT = 60)

Dependencies: property map with mode add | modify.

HLTAPI Commands, Release 2.80 Rev. B 21-27


TELNET APIs
21
RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a TELNET traffic configuration,

EXAMPLES See files starting with TELNET_ in the Samples subdirectory.


Also see the TELNET section in Appendix A, "Example
APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {map1}}

NOTES Coded versus functional specification.

SEE ALSO

21-28 HLTAPI Commands, Release 2.80 Rev. B


TELNET APIs

NAME — ::ixia::emulation_telnet_control

DESCRIPTION This command defines a mapping between the telnet networks, the DUT and the
statistics used. It can start a test previously defined with the ::ixia::emulation_
telnet_control_config command.

SYNOPSIS ::ixia::emulation_telnet_control
-mode CHOICES add modify start
[-handle ANY]
[-map_handle ANY]
[-force_ownership_enable CHOICES 0 1 DEFAULT 0]
[-release_config_afterrun_enable CHOICES 0 1 DEFAULT 0]
[-reset_ports_enable CHOICES 0 1 DEFAULT 0]
[-results_dir_enable CHOICES 0 1 DEFAULT 0]
[-results_dir ANY]
[-stats_required CHOICES 0 1 DEFAULT 1]

ARGUMENTS

-mode Defines types of actions to be taken. Valid choices are:

Value Usage

add adds a map between a telnet config and a


traffic config to this session.
modify modifies this session
start starts this session

-handle Handle of a control.

Dependencies: mode modify | start

-map_handle List of handles of the maps between a client http config and a client traffic config
and between a server http config and a server traffic config created with
::ixia::emulation_http_control_config.

Dependencies: mode add | modify

-force_ownership_enable 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.

Dependencies: mode add | modify

(DEFAULT = 0)

-release_config_afterrun_ If true, purges the test configuration from the ports after a test completes, releases
enable ownership of them, and the ports will no longer respond to ARPs and PINGs
from the DUT.

Dependencies: mode add | modify

(DEFAULT = 0)

-reset_ports_enable If true, the program 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.

HLTAPI Commands, Release 2.80 Rev. B 21-29


TELNET APIs
21
If you are developing a test and making incremental changes to it and then run-
ning it to see the effect of your changes, it may be safe to save time by not reboo-
ting 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 struc-
tures remaining from a previous test or other application are properly removed.

Dependencies: mode add | modify

(DEFAULT = 0)

-results_dir_enable This enable storing the execution results. Values: 0 or 1.

Dependencies: -mode add.

(DEFAULT = 0)

-results_dir Specifies the location of where the execution results will be kept.

Dependencies: -mode add.

-stats_required If true, statistics will be collected for the test.

Dependencies: mode add | modify

(DEFAULT = 1)

RETURN VALUES
Key Value

status $::SUCCESS | $::FAILURE


log When status is $::FAILURE, contains more
information
handles the handles of a telnet traffic configuration,

EXAMPLES See files starting with telnet_ in the Samples subdirectory.


Also see the TELNET section in Appendix A, "Example
APIs."

SAMPLE INPUT

SAMPLE OUTPUT {status $::SUCCESS} {handles {traffic1}}

NOTES Coded versus functional specification.

SEE ALSO

21-30 HLTAPI Commands, Release 2.80 Rev. B


Example APIs
A
Appendix A:

The following sections give examples of the various protocol commands detailed
in the previous chapters. Included examples are:
• IxNetwork/IxRouter Examples
• BGP (BGP4_neighbor_BGP4_route_external.tcl) on page A-3
• IGMP (IGMPv3_different_operations.tcl) on page A-6
• ISIS (ISIS_topology_control.tcl) on page A-15
• L2VPN (L2VPN_martini_scalability.tcl) on page A-18
• LDP (LDP_create_route_all.tcl) on page A-28
• L3VPN (L3VPN_OSPF_LDP_OSPF.tcl) on page A-31
• MLD (MLD_host_group.tcl) on page A-38
• mVPN (MVPN_PIM-SM_OSPF_LDP.tcl) on page A-40
• MPLS 6PE (MPLS_6PE_OSPF_RIP.tcl) on page A-55
• OSPFv2 (OSPFv2_router_control.tcl) on page A-62
• OSPFv3 (OSPFv3_lsa_create_router.tcl) on page A-65
• PIM (PIM_control.tcl) on page A-67
• RIP (RIP_route_advertise_withdraw.tcl) on page A-72
• RSVP (RSVP_tunnel_info.tcl) on page A-77
• IxAccess Examples
• IGMPoPPPoE (IGMPoPPPoE_traffic_mc_stats.tcl) on page A-81
• L2PoE (L2TPoE_LNS_DUT_PPPoE_tos_traffic.tcl) on page A-88
• L2TPv3 (L2TPv3_stats.tcl) on page A-97
• PPPoE (PPPoE_session.tcl) on page A-99
• IxOS Examples
• DHCPv4 (DHCP_host_group.tcl) on page A-101
• Traffic (Streams_IPv4_stats.tcl) on page A-104

HLTAPI Commands, Release 2.80 Rev. B A-1


A
• IxLoad Examples
• FTP (FTP_basic_config.tcl) on page A-110
• HTTP (HTTP_emulated_router.tcl) on page A-117
• TELNET (TELNET_basic_config.tcl) on page A-124

A-2 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

IxNetwork/IxRouter Examples
BGP (BGP4_neighbor_BGP4_route_external.tcl)
################################################################################
# #
# Description: #
# This sample configures two internal BGP neighbors and on each neighbor it #
# configures two IPv4 route ranges and two IPv6 route ranges. Then it #
# starts the protocol. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser]

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [::ixia::get_port_list_from_connect $connect_status $chassisIP \


$port_list]

########################################
# Configure interface in the test #
# #
# IPv4 #
########################################
set interface_status [::ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 0 \
-duplex full \
-speed ether100]

if {[keylget interface_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

#################################################
# #
# Configure 2 BGP neighbors on interface 1/10/1 #
# 1) Neighbor #1 - internal #
# 2) Neighbor #2 - internal #
#################################################
set bgp_routers_status [ixia::emulation_bgp_config \
-port_handle $port_handle \
-mode reset \
-local_ip_addr 10.1.1.1 \
-remote_ip_addr 10.1.1.2 \
-count 2 \
-mac_address_start 0000.0000.0001 \
-netmask 24 \
-neighbor_type internal \
-ip_version 4 \
-next_hop_enable \
-next_hop_ip 10.10.160.1 \

HLTAPI Commands, Release 2.80 Rev. B A-3


A IxNetwork/IxRouter Examples

-local_as 111 \
-local_as_mode fixed \
-tcp_window_size 6666 \
-updates_per_iteration 5 \
-retries 11 \
-retry_time 22 \
-active_connect_enable \
-staggered_start_enable \
-staggered_start_time 77 ]

if {[keylget bgp_routers_status status] != $SUCCESS} {


return "FAIL - sample_ixia_hltapi_BGP4_neighbor_BGP4_route.tcl -\
[keylget bgp_routers_status log]"
}

#########################################################
# #
# Configure 2 BGP IPv4 Route Range on each BGP router #
# 1/10/1 #
# #
#########################################################
#Get the list of BGP router handle form the keye list returned
set bgp_router_handle_list [keylget bgp_routers_status handles]

set bgp_route_ip_addr 22.1.1.1

set bgp_ipv4_route_handle_list ""

foreach bgp_router_handle $bgp_router_handle_list {

set bgp_ipv4_route_handle [ixia::emulation_bgp_route_config \


-mode add \
-handle $bgp_router_handle \
-ip_version 4 \
-prefix $bgp_route_ip_addr \
-prefix_from 24 \
-prefix_to 24 \
-num_routes 1000 \
-origin igp \
-enable_partial_route_flap \
-partial_route_flap_from_route_index 1 \
-partial_route_flap_to_route_index 50 \
-enable_generate_unique_routes \
-enable_traditional_nlri 1 \
-max_route_ranges 2 ]

if {[keylget bgp_ipv4_route_handle status] != $SUCCESS} {


return "FAIL - sample_ixia_hltapi_BGP4_neighbor_BGP4_route.tcl -\
[keylget bgp_ipv4_route_handle log]"
}

# Increment the IPv4 address for the BGP route range


set bgp_route_ip_addr [ixia::increment_ipv4_address $bgp_route_ip_addr]

lappend bgp_ipv4_route_handle_list $bgp_ipv4_route_handle


}

#########################################################
# #
# Configure 2 BGP IPv6 Route Range on each BGP router #
# 1/10/1 #
# #
#########################################################
#Get the list of BGP router handle form the keye list returned
set bgp_router_handle_list [keylget bgp_routers_status handles]

set bgp_route_ip_addr "0030:1::31"

set bgp_ipv4_route_handle_list ""

A-4 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

foreach bgp_router_handle $bgp_router_handle_list {

set bgp_ipv6_route_handle [ixia::emulation_bgp_route_config \


-mode add \
-handle $bgp_router_handle \
-ip_version 6 \
-prefix $bgp_route_ip_addr \
-prefix_from 64 \
-prefix_to 64 \
-num_routes 1000 \
-origin igp \
-enable_partial_route_flap \
-partial_route_flap_from_route_index 1 \
-partial_route_flap_to_route_index 50 \
-enable_generate_unique_routes \
-enable_traditional_nlri 1 \
-max_route_ranges 2 ]

if {[keylget bgp_ipv6_route_handle status] != $SUCCESS} {


return "FAIL - sample_ixia_hltapi_BGP4_neighbor_BGP4_route.tcl -\
[keylget bgp_ipv6_route_handle log]"
}

# Increment the IPv4 address for the BGP route range


set bgp_route_ip_addr [ixia::increment_ipv6_address $bgp_route_ip_addr 1]

lappend bgp_ipv6_route_handle_list $bgp_ipv6_route_handle


}

######################
# START BGP on #
######################
set handle [lindex $bgp_router_handle_list 0]
set bgp_emulation_status [ixia::emulation_bgp_control \
-handle $handle \
-mode start ]

if {[keylget bgp_emulation_status status] != $SUCCESS} {


return "FAIL - sample_ixia_hltapi_BGP4_neighbor_BGP4_route.tcl -\
[keylget bgp_emulation_status log]"
}

return "SUCCESS - sample_ixia_hltapi_BGP4_neighbor_BGP4_route.tcl -\


[clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-5


A IxNetwork/IxRouter Examples

IGMP (IGMPv3_different_operations.tcl)
################################################################################
# #
# Description: #
# This sample performs various operation. It creates, modifies and deletes #
# IGMP hosts. Creates group pools and source pools. Adds, modifies and #
# deletes group and source pools to IGMP hosts. Leaves and joins groups #
# pools. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1

set port_list1 10/1


set port_list2 10/2

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list1 \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle1 [keylget connect_status port_handle.$chassisIP.$port_list1]

########################################
# Configure interface in the test #
# IPv4 #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle1 \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]

if {[keylget interface_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

# Create session1
set igmp_status_1 [ixia::emulation_igmp_config \
-port_handle $port_handle1 \
-mode create \
-reset \
-msg_interval 167 \
-igmp_version v3 \
-ip_router_alert 1 \
-general_query 1 \
-group_query 1 \
-unsolicited_report_interval 200 \
-suppress_report 0 \
-max_response_control 1 \
-max_response_time 50 \
-intf_ip_addr 10.41.1.2 \
-neighbor_intf_ip_addr 10.41.1.1 \
-vlan_id_mode increment \
-vlan_id 10 \
-vlan_id_step 1 \
-vlan_user_priority 7 ]

A-6 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget igmp_status_1 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget igmp_status_1 log]"
}
puts "Create: $igmp_status_1"
set session1 [keylget igmp_status_1 handle]

# Create session2
set igmp_status_2 [ixia::emulation_igmp_config \
-port_handle $port_handle1 \
-mode create \
-igmp_version v3 \
-intf_ip_addr 10.41.1.3 \
-neighbor_intf_ip_addr 10.41.1.1 ]

if {[keylget igmp_status_2 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget igmp_status_2 log]"
}
puts "Create: $igmp_status_2"
set session2 [keylget igmp_status_1 handle]

# Create group pools 1 - 5


for {set i 0} {$i < 5} {incr i} {
set retGroup [::ixia::emulation_multicast_group_config \
-mode create \
-num_groups 5 \
-ip_addr_start [mpexpr 225 + $i].0.1.1 \
-ip_addr_step 0.0.1.0 \
-ip_prefix_len 24 ]

if {[keylget retGroup status] != $SUCCESS} {


return "FAIL - $test_name - [keylget retGroup log]"
}
puts "Create: $retGroup"
set temp_group group_pool
set temp_group [append temp_group [mpexpr $i + 1]]
set $temp_group [keylget retGroup handle]
}

# Create group pools 1 - 6


for {set i 0} {$i < 5} {incr i} {
set retSource [::ixia::emulation_multicast_source_config \
-mode create \
-num_sources 5 \
-ip_addr_start 10.[mpexpr 35 + $i].1.1 \
-ip_addr_step 0.0.1.0 \
-ip_prefix_len 24 ]
if {[keylget retSource status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retSource log]"
}
puts "Create: $retSource"
set temp_source source_pool
set temp_source [append temp_source [mpexpr $i + 1]]
set $temp_source [keylget retSource handle]
}
set source_pool6 "wrong_source_pool"

# Create session1 group_member1


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session1 \
-group_pool_handle $group_pool1 \
-source_pool_handle \
[list $source_pool1 $source_pool2 ]]

if {[keylget retMember status] != $SUCCESS} {


return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member1 [keylget retMember handle]

HLTAPI Commands, Release 2.80 Rev. B A-7


A IxNetwork/IxRouter Examples

# Create session1 group_member2


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session1 \
-group_pool_handle $group_pool2 \
-source_pool_handle \
[list $source_pool2 $source_pool3 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member2 [keylget retMember handle]

# Create session1 group_member3


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session1 \
-group_pool_handle $group_pool3 \
-source_pool_handle \
[list $source_pool3 $source_pool4 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member3 [keylget retMember handle]

# Create session2 group_member4


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session2 \
-group_pool_handle $group_pool1 \
-source_pool_handle \
[list $source_pool1 $source_pool3 $source_pool5 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member4 [keylget retMember handle]

# Create session2 group_member5


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session2 \
-group_pool_handle $group_pool1 \
-source_pool_handle \
[list $source_pool2 $source_pool4]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member5 [keylget retMember handle]

# Modify group_member5
set retMember [::ixia::emulation_igmp_group_config \
-mode modify \
-handle $group_member5 \
-group_pool_handle $group_pool2 ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Modify: $retMember"

# Modify group_member2
set retMember [::ixia::emulation_igmp_group_config \
-mode modify \
-handle $group_member2 \
-source_pool_handle [list $source_pool3 $source_pool4]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Modify: $retMember"

A-8 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# Modify group_member3
set retMember [::ixia::emulation_igmp_group_config \
-mode modify \
-handle $group_member3 \
-source_pool_handle [list $source_pool5 $source_pool1]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Modify: $retMember"

# Create session3,4
set igmp_status_3 [ixia::emulation_igmp_config \
-port_handle $port_handle1 \
-mode create \
-msg_interval 167 \
-igmp_version v3 \
-ip_router_alert 0 \
-general_query 0 \
-group_query 0 \
-unsolicited_report_interval 200 \
-suppress_report 0 \
-max_response_control 1 \
-max_response_time 0 \
-intf_ip_addr 10.41.1.4 \
-neighbor_intf_ip_addr 10.41.1.1 \
-count 2 ]
if {[keylget igmp_status_3 status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmp_status_3 log]"
}
puts "Create: $igmp_status_3"
set session3 [lindex [keylget igmp_status_3 handle] 0]
set session4 [lindex [keylget igmp_status_3 handle] 1]

# Create session3 group_member6


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session3 \
-group_pool_handle $group_pool3 \
-source_pool_handle \
[list $source_pool3 $source_pool4 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member6 [keylget retMember handle]

# ERROR - Create session3 group_member7 - source6 is not valid


# Returned status 0
set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session4 \
-group_pool_handle $group_pool2 \
-source_pool_handle \
[list $source_pool5 $source_pool6 ]]

puts "NOT Create: $retMember"

# Create session3 group_member7


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session4 \
-group_pool_handle $group_pool2 \
-source_pool_handle \
[list $source_pool5 $source_pool1 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member7 [keylget retMember handle]

HLTAPI Commands, Release 2.80 Rev. B A-9


A IxNetwork/IxRouter Examples

# This doesn't take into consideration -port_handle


# -port_handle is for start and stop only
set retMember [::ixia::emulation_igmp_control \
-mode leave \
-port_handle $port_handle1 ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Start: $retMember"

# Joins all groups on all sessions


set retMember [::ixia::emulation_igmp_control \
-mode join ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Join: $retMember"

# Disable session3
set igmpConf [ixia::emulation_igmp_config \
-handle $session3 \
-mode disable ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Disable: $igmpConf"

# Enable session3
set igmpConf [ixia::emulation_igmp_config \
-handle $session3 \
-mode enable ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Enable: $igmpConf"

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list2 \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle2 [keylget connect_status port_handle.$chassisIP.$port_list2]

########################################
# Configure interface in the test #
# IPv4 #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle2 \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]

if {[keylget interface_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

# Create session5,6,7
set igmp_status_4 [ixia::emulation_igmp_config \
-port_handle $port_handle2 \
-mode create \
-reset \
-igmp_version v3 \
-ip_router_alert 0 \
-general_query 0 \
-group_query 0 \
-unsolicited_report_interval 100 \

A-10 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-suppress_report 0 \
-max_response_control 1 \
-max_response_time 0 \
-intf_ip_addr 10.42.1.4 \
-neighbor_intf_ip_addr 10.42.1.1 \
-count 3 ]
if {[keylget igmp_status_4 status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmp_status_4 log]"
}
puts "Create: $igmp_status_4"
set session5 [lindex [keylget igmp_status_4 handle] 0]
set session6 [lindex [keylget igmp_status_4 handle] 1]
set session7 [lindex [keylget igmp_status_4 handle] 1]

# Create session5 group_member8


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool1 \
-source_pool_handle \
[list $source_pool1 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member8 [keylget retMember handle]

# ERROR - Create session5 group_member9 - source6 is not valid


# Returned status 0
set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool2 \
-source_pool_handle \
[list $source_pool5 $source_pool6 ]]
puts "NOT Create: $retMember"

# Create session6 group_member9


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session6 \
-group_pool_handle $group_pool3 \
-source_pool_handle \
[list $source_pool3 $source_pool4 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member9 [keylget retMember handle]

# Create session6 group_member10


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session6 \
-group_pool_handle $group_pool4 \
-source_pool_handle \
[list $source_pool1 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member10 [keylget retMember handle]

# Create session5 group_member11


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool2 \
-source_pool_handle \
[list $source_pool5 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-11


A IxNetwork/IxRouter Examples

puts "Create: $retMember"


set group_member11 [keylget retMember handle]

# Disable sessions on different ports


set retMember [::ixia::emulation_igmp_config \
-mode disable \
-handle [list $session1 $session5 $session6] ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Disable: $retMember"

# Enable sessions on different ports


set retMember [::ixia::emulation_igmp_config \
-mode enable \
-handle [list $session1 $session5 $session6]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Enable: $retMember"

# Modify session6 group_member10


set retMember [::ixia::emulation_igmp_group_config \
-mode modify \
-handle $group_member10 \
-group_pool_handle $group_pool5 ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Modify: $retMember"

# Disable all sessions on port 1


set igmpConf [ixia::emulation_igmp_config \
-port_handle $port_handle1 \
-mode disable_all ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Disable_all:$igmpConf"

# Disable sessions 2 and 4


set igmpConf [ixia::emulation_igmp_config \
-handle [list $session2 $session4]\
-mode disable ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Disable: $igmpConf"

# Modify session1 and session7


set igmpConf [ixia::emulation_igmp_config \
-handle [list $session1 $session7]\
-mode modify \
-suppress_report 1 \
-max_response_control 0 \
-filter_mode exclude ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Modify: $igmpConf"

# Enable all sessions on ports


set igmpConf [ixia::emulation_igmp_config \
-port_handle [list $port_handle1 $port_handle2] \
-mode enable_all ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Enable_all: $igmpConf"

# Disable all sessions on ports


set igmpConf [ixia::emulation_igmp_config \
-port_handle [list $port_handle1 $port_handle2] \
-mode disable_all ]

A-12 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget igmpConf status] != $SUCCESS} {


return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Disable_all:$igmpConf"

# Enable all sessions on ports


set igmpConf [ixia::emulation_igmp_config \
-port_handle $port_handle1 \
-mode enable_all ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Enable_all: $igmpConf"

# Enable all sessions on ports


set igmpConf [ixia::emulation_igmp_config \
-port_handle $port_handle2 \
-mode enable_all ]
if {[keylget igmpConf status] != $SUCCESS} {
return "FAIL - $test_name - [keylget igmpConf log]"
}
puts "Enable_all: $igmpConf"

# Delete group_member11
set retMember [::ixia::emulation_igmp_group_config \
-mode delete \
-handle $group_member11 ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Delete: $retMember"

# Create session5 group_member11


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool3 \
-source_pool_handle \
[list $source_pool3 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member11 [keylget retMember handle]

# Create session5 group_member12


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool5 \
-source_pool_handle \
[list $source_pool1 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member12 [keylget retMember handle]

# Create session7 group_member13


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session7 \
-group_pool_handle $group_pool5 \
-source_pool_handle \
[list $source_pool1 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member13 [keylget retMember handle]

HLTAPI Commands, Release 2.80 Rev. B A-13


A IxNetwork/IxRouter Examples

# Remove all groups from session5


set retMember [::ixia::emulation_igmp_group_config \
-mode clear_all \
-session_handle $session5 ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Clear_all: $retMember"

# ERROR - Delete one group from session5 - the group does not exist anymore
set retMember [::ixia::emulation_igmp_group_config \
-mode delete \
-handle $group_member11 ]
puts "NOT Delete: $retMember"

# Create session5 group_member8


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool1 \
-source_pool_handle \
[list $source_pool1 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member8 [keylget retMember handle]

# Create session5 group_member11


set retMember [::ixia::emulation_igmp_group_config \
-mode create \
-session_handle $session5 \
-group_pool_handle $group_pool2 \
-source_pool_handle \
[list $source_pool4 $source_pool2 ]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Create: $retMember"
set group_member11 [keylget retMember handle]

# Delete one groups from session1 and session6


set retMember [::ixia::emulation_igmp_group_config \
-mode delete \
-handle [list $group_member2 $group_member10]]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Delete: $retMember"

# Delete session2 and session6


set retMember [::ixia::emulation_igmp_config \
-mode delete \
-handle [list $session2 $session6] ]
if {[keylget retMember status] != $SUCCESS} {
return "FAIL - $test_name - [keylget retMember log]"
}
puts "Delete: $retMember"

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-14 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

ISIS (ISIS_topology_control.tcl)
################################################################################
# #
# Description: #
# This sample creates an ISIS router and adds a route range for it. Then it #
# starts, stops and restarts the router. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1]

################################################################################
# START TEST #
################################################################################

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [keylget connect_status port_handle.$chassisIP.$port_list]

#####################################################
# Configure 10 ISIS L1L2 neighbors interface #
#####################################################
set isis_router_status [ixia::emulation_isis_config \
-mode create \
-reset \
-port_handle $port_handle \
-intf_ip_addr 22.1.1.1 \
-gateway_ip_addr 22.1.1.2 \
-intf_ip_prefix_length 24 \
-mac_address_init 0000.0000.0001 \
-count 1 \
-wide_metrics 0 \
-discard_lsp 1 \
-attach_bit 0 \
-partition_repair 1 \
-overloaded 0 \
-lsp_refresh_interval 10 \
-lsp_life_time 777 \
-max_packet_size 1492 \
-intf_metric 0 \
-routing_level L1L2 \
-te_enable 0 \
-te_router_id 198.0.0.1 \
-te_max_bw 10 \
-te_max_resv_bw 20 \
-te_unresv_bw_priority0 0 \
-te_unresv_bw_priority1 10 \
-te_unresv_bw_priority2 20 \
-te_unresv_bw_priority3 30 \
-te_unresv_bw_priority4 40 \
-te_unresv_bw_priority5 50 \
-te_unresv_bw_priority6 60 \

HLTAPI Commands, Release 2.80 Rev. B A-15


A IxNetwork/IxRouter Examples

-te_unresv_bw_priority7 70 \
-te_metric 10]
if {[keylget isis_router_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget isis_router_status log]"
}

#Get the list of ISIS router handle form the keye list returned
set isis_router_handle_list [keylget isis_router_status handle]

##############################################################
# For each ISIS router configure 2 IPv4 route range on each #
##############################################################

set isis_router_handle [lindex $isis_router_handle_list 0]

#foreach isis_router_handle [lindex $isis_router_handle_list 0] /{

set route_config_status [ixia::emulation_isis_topology_route_config \


-mode create \
-handle $isis_router_handle \
-type router \
-ip_version 4_6 \
-router_system_id 112233445566 \
-router_id 44.0.0.1 \
-router_area_id 000001 000002 112244 \
-link_ip_addr 198.0.0.1 \
-link_ip_prefix_length 24 \
-link_enable 1 \
-link_ipv6_addr 4000::1 \
-link_ipv6_prefix_length 64 \
-link_narrow_metric 10 \
-link_wide_metric 999 \
-link_te 1 \
-link_te_metric 77 \
-link_te_max_bw 1000 \
-link_te_max_resv_bw 9999 \
-link_te_unresv_bw_priority0 0 \
-link_te_unresv_bw_priority1 1 \
-link_te_unresv_bw_priority2 2 \
-link_te_unresv_bw_priority3 3 \
-link_te_unresv_bw_priority4 4 \
-link_te_unresv_bw_priority5 5 \
-link_te_unresv_bw_priority6 6 \
-link_te_unresv_bw_priority7 7 \
-link_te_admin_group 100 \
]

if {[keylget route_config_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget route_config_status log]"
}
#/}

#######################################
# START / STOP / RESTART ISIS #
#######################################
set isis_emulation_status [ixia::emulation_isis_control \
-handle $isis_router_handle \
-port_handle $port_handle \
-mode start ]
if {[keylget isis_emulation_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget isis_emulation_status log]"
}

set isis_emulation_status [ixia::emulation_isis_control \


-handle $isis_router_handle \
-port_handle $port_handle \
-mode stop ]
if {[keylget isis_emulation_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget isis_emulation_status log]"
}

A-16 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

set isis_emulation_status [ixia::emulation_isis_control \


-handle $isis_router_handle \
-port_handle $port_handle \
-mode restart ]
if {[keylget isis_emulation_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget isis_emulation_status log]"
}
return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-17


A IxNetwork/IxRouter Examples

L2VPN (L2VPN_martini_scalability.tcl)
################################################################################
# #
# Description: #
# This sample creates the following L2VPN configuration on two pairs of #
# ports (1/1,1/2) and (1/3,1/4): #
# ____ #
# | CE |_____ ____ #
# +____+ \ ___| CE | #
# \ / +____+ #
# ____ \ __________ ______ _____ / ____ #
# | CE |---------| DUT (PE) |------| P |__________| PE |__/_____| CE | #
# +____+ / +__________+ +______+ | +_____+ \ +____+ #
# / | \ ____ #
# ____ / | \___| CE | #
# | CE |____/ | +____+ #
# +____+ | #
# | #
# | ____ #
# | ___| CE | #
# | / +____+ #
# | _____ / ____ #
# |______| PE |__/_____| CE | #
# | +_____+ \ +____+ #
# | \ ____ #
# | \___| CE | #
# | +____+ #
# | #
# | ____ #
# | ___| CE | #
# | / +____+ #
# | _____ / ____ #
# |______| PE |__/_____| CE | #
# +_____+ \ +____+ #
# \ ____ #
# \___| CE | #
# +____+ #
# #
# #
# In this figure we have: #
# CE - customer edge #
# PE - provider edge #
# P - provider #
# The following DUT(Cisco 6509) configuration was used: #
# #
# ip multicast-routing #
# mpls label protocol ldp #
# mpls traffic-eng tunnels #
# tag-switching tdp router-id Loopback100 force #
# #
# interface Loopback100 #
# ip address 100.0.0.1 255.255.255.255 #
# #
# router ospf 41 #
# log-adjacency-changes #
# network 170.1.1.0 0.0.0.255 area 0 #
# router ospf 42 #
# log-adjacency-changes #
# network 170.1.2.0 0.0.0.255 area 0 #
# #
# Interface connected to TX port1(1/1): #
# interface GigabitEthernet4/30 #
# no ip address #
# interface GigabitEthernet4/30.41 #
# encapsulation dot1Q 41 #
# mpls l2transport route 41.41.41.41 41 #
# interface GigabitEthernet4/30.42 #
# encapsulation dot1Q 42 #
# mpls l2transport route 41.41.41.42 42 #
# interface GigabitEthernet4/30.43 #
# encapsulation dot1Q 43 #
# mpls l2transport route 41.41.41.43 43 #
# #

A-18 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# Interface connected to RX port1(1/2): #


# interface GigabitEthernet4/32 #
# ip address 170.1.1.1 255.255.255.0 #
# ip ospf network broadcast #
# mpls label protocol ldp #
# tag-switching ip #
# #
# Interface connected to TX port2(1/3): #
# interface GigabitEthernet4/40 #
# no ip address #
# interface GigabitEthernet4/40.44 #
# encapsulation dot1Q 44 #
# mpls l2transport route 41.41.41.44 44 #
# interface GigabitEthernet4/40.45 #
# encapsulation dot1Q 45 #
# mpls l2transport route 41.41.41.45 44 #
# interface GigabitEthernet4/40.46 #
# encapsulation dot1Q 46 #
# mpls l2transport route 41.41.41.46 44 #
# #
# Interface connected to RX port2(1/4): #
# interface GigabitEthernet4/46 #
# ip address 170.1.2.1 255.255.255.0 #
# ip ospf network broadcast #
# mpls label protocol ldp #
# tag-switching ip #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester

# Set transmit and receive ports


set port_tx_list [list 1/1 1/3]
set port_rx_list [list 1/2 1/4]

# Set mac addresses for the interfaces on the RX ports


set rx_mac_init_list [list 0000.0000.0001 0000.0000.0002 ]

# Set CE parameters (used to configure the stream)


set ce_tx_mac_init_list [list ea.00.00.00.00.00 fa.00.00.00.00.00]
set ce_tx_mac_step_list [list 00.00.00.00.00.01 00.00.00.00.00.01]
set ce_tx_mac_count_list [list 3 3 ]
set ce_tx_ip_init_list [list 196.16.1.100 198.18.1.100]
set ce_tx_ip_step_list [list 0.0.0.1 0.0.0.1 ]
set ce_tx_ip_count_list [list 3 3 ]

set ce_rx_mac_init_list [list eb.00.00.00.00.00 fb.00.00.00.00.00]


set ce_rx_mac_step_list [list 00.00.00.00.00.01 00.00.00.00.00.01]
set ce_rx_mac_count_list [list 3 3 ]
set ce_rx_ip_init_list [list 197.17.1.100 199.19.1.100]
set ce_rx_ip_step_list [list 0.0.0.1 0.0.0.1 ]
set ce_rx_ip_count_list [list 3 3 ]

# Set DUT parameters (used to configure OSPF and LDP routers)


set dut_ldp_intf 100.0.0.1
set dut_intf_list [list 170.1.1.1 170.1.2.1 ]

# Set Provider parameters (used to configure OSPF and LDP routers)


set provider_ip_list [list 170.1.1.100 170.1.2.100 ]
set provider_prefix_list [list 24 24 ]

HLTAPI Commands, Release 2.80 Rev. B A-19


A IxNetwork/IxRouter Examples

# Set PE parameters (used to configure OSPF and LDP routers)


set pe_ip_list [list \
[list 41.41.41.41 41.41.41.42 41.41.41.43]\
[list 41.41.41.44 41.41.41.45 41.41.41.46]]
set pe_prefix_list [list [list 32 32 32] [list 32 32 32]]
set pe_vcid_init_list [list [list 41 42 43] [list 44 44 44]]
set pe_vlan_init_list [list [list 41 42 43] [list 44 45 46]]
set pe_vcid_step_list [list [list 1 1 1 ] [list 1 1 1 ]]
set pe_vcid_count_list [list [list 1 1 1 ] [list 1 1 1 ]]

# Set stream signature in order to provide data integrity check and


# packet group signature for latency stats
set stream_tx_signature_list [list 11223344 55667788 ]
set stream_tx_signature_offset_list [list 48 48 ]

set stream_tx_pgid_value_list [list [list 10 11 12] [list 20 21 22]]


set stream_tx_pgid_offset_list [list 52 52 ]

# Connect to the chassis,reset to factory defaults and


# take ownership of tx ports
set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_tx_list \
-username ixiaApiUser ]

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_tx_handle [list]


foreach port $port_tx_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_tx_handle $temp_port
}
}

# Connect to the chassis,reset to factory defaults and


# take ownership of rx ports
set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_rx_list \
-username ixiaApiUser ]

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_rx_handle [list ]


foreach port $port_rx_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_rx_handle $temp_port
}
}

set ospf_router_list ""


set ldp_router_list ""
set index -1

foreach {port_tx} $port_tx_handle {port_rx} $port_rx_handle {

incr index
########################################
# Configure TX interface in the test #
########################################
set interface_status [::ixia::interface_config \
-port_handle $port_tx \
-autonegotiation 1 \
-duplex full \
-speed ether100 \
-transmit_mode stream \

A-20 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-qos_stats 0 \
-port_rx_mode capture \
]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

########################################
# Configure RX interface in the test #
########################################
# When the stream is received on RX port, it is mpls encapsulated
# So if the data signature offset on transmition is $offset then
# 14 bytes for the mac header and 4 bytes for the mpls label must
# be added on receive port.
set interface_status [::ixia::interface_config \
-port_handle $port_rx \
-autonegotiation 1 \
-duplex full \
-speed ether100 \
-port_rx_mode packet_group \
-data_integrity 1 \
-integrity_signature \
[lindex $stream_tx_signature_list $index] \
-integrity_signature_offset \
[expr [lindex $stream_tx_signature_offset_list $index] + 18] \
-signature \
[lindex $stream_tx_signature_list $index] \
-signature_offset \
[expr [lindex $stream_tx_signature_offset_list $index] + 18] \
-pgid_offset \
[expr [lindex $stream_tx_pgid_offset_list $index] + 18] \
-transmit_mode stream ]

if {[keylget interface_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

#################################################
# Configure OSPFv2 Provider #
# #
#################################################
set ospf_neighbor_status [ixia::emulation_ospf_config \
-reset \
-port_handle $port_rx \
-session_type ospfv2 \
-mode create \
-count 1 \
-mac_address_init \
[lindex $rx_mac_init_list $index] \
-intf_ip_addr \
[lindex $provider_ip_list $index] \
-intf_prefix_length \
[lindex $provider_prefix_list $index] \
-neighbor_intf_ip_addr \
[lindex $dut_intf_list $index] \
-router_id \
[string map {/ "."} $port_rx].1 \
-area_id 0.0.0.0 \
-area_id_step 0.0.0.0 \
-area_type external-capable \
-authentication_mode null \
-dead_interval 40 \
-hello_interval 10 \
-interface_cost 10 \
-network_type broadcast \
-option_bits "0x02" ]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

set ospf_router_provider [keylget ospf_neighbor_status handle]


lappend ospf_router_list [keylget ospf_neighbor_status handle]

HLTAPI Commands, Release 2.80 Rev. B A-21


A IxNetwork/IxRouter Examples

#################################################
# Configure LDP Provider Router #
#################################################
set ldp_routers_status [ixia::emulation_ldp_config \
-reset \
-mode create \
-port_handle $port_rx \
-count 1 \
-intf_ip_addr \
[lindex $provider_ip_list $index] \
-intf_prefix_length \
[lindex $provider_prefix_list $index] \
-gateway_ip_addr \
[lindex $dut_intf_list $index] \
-mac_address_init \
[lindex $rx_mac_init_list $index] \
-lsr_id \
[string map {/ "."} $port_rx].1 \
-label_space 0 \
-label_adv unsolicited \
-peer_discovery link \
-hello_interval 5 \
-hello_hold_time 15 \
-keepalive_interval 10 \
-keepalive_holdtime 30 \
-discard_self_adv_fecs 0 \
-enable_l2vpn_vc_fecs 0 \
-enable_explicit_include_ip_fec 0 \
-enable_remote_connect 1 \
-enable_vc_group_matching 0 \
-targeted_hello_hold_time 45 \
-targeted_hello_interval 15 ]

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}

set ldp_router_provider [keylget ldp_routers_status handle]


lappend ldp_router_list [keylget ldp_routers_status handle]

for {set i 0} {$i < [llength [lindex $pe_ip_list $index]]} {incr i} {


######################################################
# #
# Configure OSPFv2 Provider Edge routers #
# #
######################################################
set route_config_status [::ixia::emulation_ospf_topology_route_config\
-mode create \
-handle $ospf_router_provider \
-type summary_routes \
-summary_number_of_prefix 1 \
-summary_prefix_start \
[lindex [lindex $pe_ip_list $index] $i] \
-summary_prefix_length \
[lindex [lindex $pe_prefix_list $index] $i] \
]

if {[keylget route_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget route_config_status log]"
}
#################################################
# Configure ipv4_prefix fec type routes #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $ldp_router_provider \
-fec_type ipv4_prefix \
-label_msg_type mapping \
-egress_label_mode nextlabel \
-num_lsps 1 \
-fec_ip_prefix_start \
[lindex [lindex $pe_ip_list $index] $i] \
-fec_ip_prefix_length \
[lindex [lindex $pe_prefix_list $index] $i] \

A-22 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-packing_enable 0 \
-label_value_start 3 \
]

#################################################
# Configure LDP Provider Edge Router #
#################################################
set ldp_routers_status [ixia::emulation_ldp_config \
-mode create \
-port_handle $port_rx \
-count 1 \
-intf_ip_addr \
[lindex $provider_ip_list $index] \
-intf_prefix_length \
[lindex $provider_prefix_list $index] \
-gateway_ip_addr \
[lindex $dut_intf_list $index] \
-loopback_ip_addr \
[lindex [lindex $pe_ip_list $index] $i] \
-mac_address_init \
[lindex $rx_mac_init_list $index] \
-lsr_id \
[lindex [lindex $pe_ip_list $index] $i] \
-remote_ip_addr $dut_ldp_intf \
-label_space 0 \
-peer_discovery targeted_martini \
-hello_interval 5 \
-hello_hold_time 15 \
-keepalive_interval 10 \
-keepalive_holdtime 30 \
-discard_self_adv_fecs 0 \
-enable_l2vpn_vc_fecs 1 \
-enable_explicit_include_ip_fec 0 \
-enable_remote_connect 1 \
-enable_vc_group_matching 0 \
-targeted_hello_hold_time 45 \
-targeted_hello_interval 15 ]

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}

set ldp_router_pe [keylget ldp_routers_status handle]


lappend ldp_router_list [keylget ldp_routers_status handle]
#################################################
# Configure vc ranges for LDP #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $ldp_router_pe \
-fec_type vc \
-fec_vc_type eth_vlan \
-fec_vc_group_id 1 \
-fec_vc_group_count 1 \
-fec_vc_cbit 0 \
-fec_vc_id_start \
[lindex [lindex $pe_vcid_init_list $index] $i] \
-fec_vc_id_step \
[lindex [lindex $pe_vcid_step_list $index] $i] \
-fec_vc_id_count \
[lindex [lindex $pe_vcid_count_list $index] $i] \
-fec_vc_intf_mtu_enable 1 \
-fec_vc_intf_mtu 1500 \
-fec_vc_intf_desc "ixia_ldp_vc" \
-packing_enable 0 \
-fec_vc_label_mode increment_label \
-fec_vc_label_value_start 16 \
-fec_vc_peer_address $dut_ldp_intf \
]

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}
}

HLTAPI Commands, Release 2.80 Rev. B A-23


A IxNetwork/IxRouter Examples

# Delete all the streams first


set traffic_status [ixia::traffic_config \
-mode reset \
-port_handle $port_tx ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

set rate_percent [expr 100 / [llength [lindex $pe_ip_list $index]]]


for {set i 0} {$i < [llength [lindex $pe_ip_list $index]]} {incr i} {

set traffic_configuration "ixia::traffic_config \


-mode create \
-port_handle $port_tx \
-length_mode fixed \
-frame_size 1024 \
-rate_percent $rate_percent \
-mac_src [lindex $ce_tx_mac_init_list $index] \
-mac_src_mode increment \
-mac_src_step [lindex $ce_tx_mac_step_list $index] \
-mac_src_count [lindex $ce_tx_mac_count_list $index] \
-mac_dst [lindex $ce_rx_mac_init_list $index] \
-mac_dst_mode increment \
-mac_dst_step [lindex $ce_rx_mac_step_list $index] \
-mac_dst_count [lindex $ce_rx_mac_count_list $index] \
-l3_protocol ipv4 \
-ip_src_addr [lindex $ce_tx_ip_init_list $index] \
-ip_src_mode increment \
-ip_src_count [lindex $ce_tx_ip_count_list $index] \
-ip_src_step [lindex $ce_tx_ip_step_list $index] \
-ip_dst_addr [lindex $ce_rx_ip_init_list $index] \
-ip_dst_mode increment \
-ip_dst_count [lindex $ce_rx_ip_count_list $index] \
-ip_dst_step [lindex $ce_rx_ip_step_list $index] \
-vlan_id [lindex [lindex $pe_vlan_init_list $index] $i]\
-vlan_id_mode fixed \
-enable_data_integrity 1 \
-integrity_signature \
[lindex $stream_tx_signature_list $index] \
-integrity_signature_offset \
[lindex $stream_tx_signature_offset_list $index] \
-signature \
[lindex $stream_tx_signature_list $index] \
-signature_offset \
[lindex $stream_tx_signature_offset_list $index] \
-pgid_value \
[lindex [lindex $stream_tx_pgid_value_list $index] $i] "

if {$i == [expr [llength [lindex $pe_ip_list $index]] - 1]} {


lappend traffic_configuration \
"-transmit_mode" "return_to_id" \
"-return_to_id" 1
}

set traffic_status [eval $traffic_configuration]

if {[keylget traffic_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget traffic_status log]"
}
}
}

# Start OSPF protocol


foreach {ospf_router} $ospf_router_list {
set ospf_control_status [ixia::emulation_ospf_control \
-handle $ospf_router \
-mode start ]

if {[keylget ospf_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_control_status log]"
}
}

A-24 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# Start LDP protocol


set ldp_control_status [ixia::emulation_ldp_control \
-port_handle $port_rx_handle \
-mode start ]

if {[keylget ldp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_control_status log]"
}

# Wait 100 seconds for the OSPF and LDP to learn routes and labels
after 100000

set port_handle [concat $port_tx_handle $port_rx_handle]

# Clear all statistics on ports


set traffic_status [ixia::traffic_control \
-action clear_stats \
-port_handle $port_handle ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

# Start traffic on TX ports


set traffic_status [ixia::traffic_control \
-action run \
-port_handle $port_tx_handle ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

# Procedure to print stats


proc post_stats {port_handle label key_list stat_key {stream ""}} {
puts -nonewline [format "%-30s" $label]

foreach port $port_handle {


if {$stream != ""} {
set key $port.stream.$stream.$stat_key
} else {
set key $port.$stat_key
}

if {[llength [keylget key_list $key]] > 1} {


puts -nonewline "[format "%-16s" N/A]"
} else {
puts -nonewline "[format "%-16s" [keylget key_list $key]]"
}
}
puts ""
}

# Wait for TX ports to send traffic


after 10000

# Stop traffic on the TX ports


set traffic_stop_status [ixia::traffic_control \
-port_handle $port_tx_handle \
-action stop ]
if {[keylget traffic_stop_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_stop_status log]"
}

###############################################################################
# Retrieve stats after stopped
###############################################################################
# Get aggregrate stats for all ports
set aggregate_stats [ixia::traffic_stats -port_handle $port_handle]
if {[keylget aggregate_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget aggregate_stats log]"
}

puts "\n********************* FINAL COUNT STATS ***********************"

HLTAPI Commands, Release 2.80 Rev. B A-25


A IxNetwork/IxRouter Examples

puts -nonewline "[format "%-30s" " "]"


foreach port $port_handle {
puts -nonewline "[format "%-16s" $port]"
}
puts ""
puts -nonewline "[format "%-30s" " "]"
foreach port $port_handle {
puts -nonewline "[format "%-16s" "-----"]"
}
puts ""

post_stats $port_handle "Elapsed Time" $aggregate_stats \


aggregate.tx.elapsed_time

post_stats $port_handle "Packets Tx" $aggregate_stats \


aggregate.tx.pkt_count

post_stats $port_handle "Bytes Tx" $aggregate_stats \


aggregate.tx.pkt_byte_count

post_stats $port_handle "Bits Tx" $aggregate_stats \


aggregate.tx.pkt_bit_count

post_stats $port_handle "Packets Rx" $aggregate_stats \


aggregate.rx.pkt_count

post_stats $port_handle "Collisions" $aggregate_stats \


aggregate.rx.collisions_count

post_stats $port_handle "Dribble Errors" $aggregate_stats \


aggregate.rx.dribble_errors_count

post_stats $port_handle "CRCs" $aggregate_stats \


aggregate.rx.crc_errors_count

post_stats $port_handle "Oversizes" $aggregate_stats \


aggregate.rx.oversize_count

post_stats $port_handle "Undersizes" $aggregate_stats \


aggregate.rx.undersize_count

post_stats $port_handle "Data Integrity Frames" $aggregate_stats \


aggregate.rx.data_int_frames_count

post_stats $port_handle "Data Integrity Error" $aggregate_stats \


aggregate.rx.data_int_errors_count

puts "***************************************************************\n"

############################################
# Get traffic statistics for all the PGIDs #
############################################

puts "\n********** LATENCY STATS (latency is in nanosecondes) *********"


puts [format "%8s %8s %15s %15s %8s %8s %8s" \
Port PGID PkCount BitRate MaxLat MinLat AvgLat]

set index -1
foreach {port_rx} $port_rx_handle {
incr index
foreach {pgid_index} [lindex $stream_tx_pgid_value_list $index] {
set pgid_statistics_list [ixia::traffic_stats \
-port_handle $port_rx \
-packet_group_id $pgid_index \
]

#############################
# Format the statistics #
#############################
puts [format "%8s %8d %15.1f %15.1f %8.1f %8.1f %8d" \
$port_rx $pgid_index \
[keylget pgid_statistics_list \
$port_rx.pgid.rx.pkt_count.$pgid_index] \

A-26 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

[keylget pgid_statistics_list \
$port_rx.pgid.rx.bit_rate.$pgid_index] \
[keylget pgid_statistics_list \
$port_rx.pgid.rx.max_latency.$pgid_index] \
[keylget pgid_statistics_list \
$port_rx.pgid.rx.min_latency.$pgid_index] \
[keylget pgid_statistics_list \
$port_rx.pgid.rx.avg_latency.$pgid_index] ]

}
}

# Clean up the connection


set cleanup_status [ixia::cleanup_session \
-port_handle $port_handle ]
if {[keylget cleanup_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget cleanup_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-27


A IxNetwork/IxRouter Examples

LDP (LDP_create_route_all.tcl)
################################################################################
# #
# Description: #
# This sample creates two LDP peers and configures ipv4_prefix, host_addr #
# and vc fec type routes on the first peer. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [keylget connect_status port_handle.$chassisIP.$port_list]

########################################
# Configure interface in the test #
# IPv4 #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

#################################################
# Configure 2 LDP peers on interface 1/10/1 #
#################################################
set ldp_routers_status [ixia::emulation_ldp_config \
-mode create \
-port_handle $port_handle \
-label_adv on_demand \
-peer_discovery targeted \
-count 2 \
-intf_ip_addr 11.1.1.2 \
-intf_prefix_length 24 \
-intf_ip_addr_step 0.0.1.0 \
-lsr_id 10.10.10.10 \
-label_space 60 \
-lsr_id_step 0.0.1.0 \
-mac_address_init 0000.0000.0001 \
-hello_interval 5 \
-hello_hold_time 10 \
-keepalive_interval 5 \
-keepalive_holdtime 10 \
-discard_self_adv_fecs 1 \
-enable_explicit_include_ip_fec 1 \
-enable_l2vpn_vc_fecs 1 \
-enable_remote_connect 1 \
-enable_vc_group_matching 1 \
-gateway_ip_addr 11.1.1.1 \
-gateway_ip_addr_step 0.0.1.0 \
-reset \
-targeted_hello_hold_time 22 \

A-28 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-targeted_hello_interval 10 \
-graceful_restart_enable 1 \
-recovery_time 66000 \
-reconnect_time 90000 ]

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}

set router_handle_list [keylget ldp_routers_status handle]

set router_handle [lindex $router_handle_list 0]

#################################################
# Configure ipv4_prefix fec type routes #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $router_handle \
-fec_type ipv4_prefix \
-label_msg_type mapping \
-egress_label_mode nextlabel \
-num_lsps 3 \
-fec_ip_prefix_start 123.0.0.1 \
-fec_ip_prefix_length 16 \
-packing_enable 1 \
-label_value_start 100 \
]

#################################################
# Configure host_addr fec type routes #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $router_handle \
-fec_type host_addr \
-label_msg_type request \
-egress_label_mode nextlabel \
-num_routes 5 \
-fec_host_addr 99.0.0.1 \
-fec_host_prefix_length 16 \
-hop_count_tlv_enable 1 \
-hop_count_value 25 \
-next_hop_peer_ip 122.0.0.1 \
-stale_timer_enable 1 \
-stale_request_time 200 \
]

#################################################
# Configure vc ranges for LDP #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $router_handle \
-fec_type vc \
-fec_vc_type eth_vlan \
-fec_vc_group_id 100 \
-fec_vc_group_count 10 \
-fec_vc_cbit 1 \
-fec_vc_id_start 12 \
-fec_vc_id_step 10 \
-fec_vc_id_count 100 \
-fec_vc_intf_mtu_enable 1 \
-fec_vc_intf_mtu 512 \
-fec_vc_intf_desc ixia_ldp_vc \
-packing_enable 1 \
-fec_vc_label_mode fixed_label \
-fec_vc_label_value_start 25 \
-fec_vc_peer_address 198.0.0.1 \
]

HLTAPI Commands, Release 2.80 Rev. B A-29


A IxNetwork/IxRouter Examples

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}

set lsp_handle [keylget ldp_routers_status lsp_handle]

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-30 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

L3VPN (L3VPN_OSPF_LDP_OSPF.tcl)
################################################################################
# #
# Description: #
# This sample creates a L3VPN setup. It uses two Ixia ports. One port is #
# used as a PE and P router. One port is used as CE router. #
# Streams are generated on both ports and then started. #
# #
# ------ ----- ----- ------ #
# | PE |-----| P |---------| DUT |--------| CE | #
# ------ ----- | ----- | ------ #
# | | #
# Ixia port 1 | Cisco 6500 | Ixia port 2 #
# #
# PE runs mBGP #
# P runs LDP and OSPF #
# CE runs OSPF #
#
# conf t
#
# ip cef
# ip vrf vpn901
# description vpn901
# rd 901:1
# route-target export 901:1
# route-target import 901:1
#
# ip multicast-routing
# mpls label protocol ldp
# mpls traffic-eng tunnels
# tag-switching tdp discovery directed-hello accept
#
# interface Loopback0
# ip address 110.0.110.1 255.255.255.255
# no ip directed-broadcast
#
# interface GigabitEthernet0/2
# no ip address
# no ip directed-broadcast
# load-interval 30
# duplex auto
# speed auto
# media-type rj45
# negotiation auto
#
# interface GigabitEthernet0/2.1
# description vpn901_ce
# encapsulation dot1Q 901
# ip vrf forwarding vpn901
# ip address 100.27.0.1 255.255.255.0
# no ip directed-broadcast
# no cdp enable
#
# interface GigabitEthernet0/3
# ip address 100.28.0.1 255.255.255.0
# no ip directed-broadcast
# ip ospf network broadcast
# load-interval 30
# duplex auto
# speed auto
# media-type rj45
# negotiation auto
# mpls label protocol ldp
# tag-switching ip
#
# router ospf 101 vrf vpn901
# log-adjacency-changes
# network 100.27.0.0 0.0.0.255 area 0
#
# router ospf 901
# mpls traffic-eng router-id Loopback0
# mpls traffic-eng area 0
# log-adjacency-changes

HLTAPI Commands, Release 2.80 Rev. B A-31


A IxNetwork/IxRouter Examples

# network 100.28.0.0 0.0.0.255 area 0


#
# router bgp 1
# no bgp default ipv4-unicast
# bgp log-neighbor-changes
# neighbor 110.0.110.100 remote-as 1
# neighbor 110.0.110.100 update-source Loopback0
#
# address-family vpnv4
# neighbor 110.0.110.100 activate
# neighbor 110.0.110.100 send-community extended
# exit-address-family
#
# address-family ipv4 vrf vpn901
# redistribute ospf 101 match internal external 1 external 2
# no synchronization
# exit-address-family
# end
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 1/1 1/2]

set pe_ip_address 110.0.110.100


set bgp_peer_ip 110.0.110.1

set p_ip_address 100.28.0.2


set p_prefix_len 24
set p_gateway_ip 100.28.0.1
set p_mac_address 0000.0002.0003

set ce_ip_address 100.27.0.2


set ce_prefix_len 24
set ce_gateway_ip 100.27.0.1
set ce_vlan_id 901
set ce_mac_address 0000.0001.0002

set bgp_router_id 1.2.3.4


set bgp_as 1
set ospf_router_id 1.2.3.4
set ospf_area_id 0.0.0.0
set p_lsr_id 1.2.3.4

set rd_target_type 0
set rd_admin_value 901
set rd_assign_value 1
set vrf_target_type "as"
set vrf_admin_value 901
set vrf_assign_value 1
set vrf_network 77.77.78.0
set vrf_prefix 255.255.255.0
set vrf_num_routes 2

set ospf_ce_router_id 5.6.7.8


set ospf_ce_area_id 0.0.0.0

set c_network1 67.67.68.0


set c_prefix_len1 24
set c_num_prefixes1 3

set c_network2 57.57.58.0


set c_prefix_len2 24
set c_num_prefixes2 2

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser]

A-32 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

set pe_port [lindex $port_handle 0]


set ce_port [lindex $port_handle 1]

# Initialize ports
set intf_status [::ixia::interface_config \
-port_handle "$pe_port $ce_port" \
-autonegotiation 1 \
-transmit_mode advanced ]

#################################################
# Configure OSPFv2 neighbor on P/PE port #
#################################################
set ospf_neighbor_status [ixia::emulation_ospf_config \
-port_handle $pe_port \
-reset \
-session_type ospfv2 \
-mode create \
-count 1 \
-mac_address_init $p_mac_address \
-intf_ip_addr $p_ip_address \
-intf_ip_addr_step 0.0.1.0 \
-router_id $ospf_router_id \
-router_id_step 0.0.1.0 \
-neighbor_intf_ip_addr $p_gateway_ip \
-neighbor_intf_ip_addr_step 0.0.1.0 \
-loopback_ip_addr $pe_ip_address \
-loopback_ip_addr_step 0.0.1.0 \
-area_id $ospf_area_id \
-area_id_step 0.0.0.1 \
-area_type external-capable \
-network_type broadcast ]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

set ospf_handle [keylget ospf_neighbor_status handle]


##################### End of OSPF PE configuration ##################

#############################################
# Configure LDP Neighbor on P/PE port #
#############################################
set ldp_routers_status [ixia::emulation_ldp_config \
-mode create \
-port_handle $pe_port \
-label_adv unsolicited \
-peer_discovery link \
-count 1 \
-intf_ip_addr $p_ip_address \
-intf_prefix_length $p_prefix_len \
-intf_ip_addr_step 0.0.1.0 \
-lsr_id $p_lsr_id \
-label_space 0 \
-lsr_id_step 0.0.1.0 \
-mac_address_init $p_mac_address \
-gateway_ip_addr $p_gateway_ip \
-gateway_ip_addr_step 0.0.1.0 \
-reset ]

HLTAPI Commands, Release 2.80 Rev. B A-33


A IxNetwork/IxRouter Examples

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}

set ldp_handle [keylget ldp_routers_status handle]

#################################################
# Configure ipv4_prefix fec type routes #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $ldp_handle \
-fec_type ipv4_prefix \
-label_msg_type mapping \
-fec_ip_prefix_start $pe_ip_address \
-fec_ip_prefix_length 32 \
-egress_label_mode imnull ]

##################### End of LDP PE configuration ##################

#############################################
# Configure BGP Neighbor on PE port #
#############################################
set bgp_router_status [ixia::emulation_bgp_config \
-mode reset \
-port_handle $pe_port \
-local_ip_addr $p_ip_address \
-remote_ip_addr $p_gateway_ip \
-local_addr_step 0.0.0.1 \
-local_loopback_ip_addr $pe_ip_address \
-remote_loopback_ip_addr $bgp_peer_ip \
-local_loopback_ip_addr_step 0.0.1.0 \
-count 1 \
-mac_address_start $p_mac_address \
-local_router_id $bgp_router_id \
-neighbor_type internal \
-ip_version 4 \
-local_as $bgp_as \
-local_as_mode fixed \
-active_connect_enable \
-ipv4_mpls_vpn_nlri ]

if {[keylget bgp_router_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget bgp_router_status log]"
}
set bgp_neighbor_handle [keylget bgp_router_status handles]

#############################################
# Configure L3 VPN Site on the BGP Neighbor #
#############################################
set bgp_route_range_status [::ixia::emulation_bgp_route_config \
-mode add \
-handle $bgp_neighbor_handle \
-ip_version 4 \
-prefix $vrf_network \
-prefix_step 1 \
-netmask $vrf_prefix \
-label_value 55 \
-num_sites 1 \
-num_routes $vrf_num_routes \
-label_step 1 \
-rd_type $rd_target_type \
-rd_admin_value $rd_admin_value \
-rd_assign_value $rd_assign_value \
-rd_admin_step 1 \
-rd_assign_step 1 \
-target_type $vrf_target_type \
-target $vrf_admin_value \
-target_assign $vrf_assign_value \
-import_target_type $vrf_target_type \
-import_target $vrf_admin_value \
-import_target_assign $vrf_assign_value \
-local_pref 0 \

A-34 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-next_hop_enable 1 \
-origin_route_enable \
-enable_traditional_nlri 1 \
-ipv4_mpls_vpn_nlri ]
if {[keylget bgp_route_range_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget bgp_route_range_status log]"
}
##################### End of iBGP PE configuration ##################

#############################################
# Configure OSPFv2 neighbor on CE port #
#############################################
set ospf_neighbor_status [ixia::emulation_ospf_config \
-port_handle $ce_port \
-reset \
-session_type ospfv2 \
-mode create \
-count 1 \
-mac_address_init $ce_mac_address \
-intf_ip_addr $ce_ip_address \
-intf_ip_addr_step 0.0.1.0 \
-router_id $ospf_ce_router_id \
-router_id_step 0.0.1.0 \
-neighbor_intf_ip_addr $ce_gateway_ip \
-neighbor_intf_ip_addr_step 0.0.1.0 \
-vlan_id $ce_vlan_id \
-area_id $ospf_ce_area_id \
-area_id_step 0.0.0.1 \
-area_type external-capable \
-network_type broadcast ]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

set ospf_ce_handle [keylget ospf_neighbor_status handle]

###############################################
# Configure two route ranges on OSPF neighbor #
###############################################
set ospf_route_status [::ixia::emulation_ospf_topology_route_config \
-mode create \
-handle $ospf_ce_handle \
-type summary_routes \
-summary_prefix_start $c_network1 \
-summary_prefix_step 1 \
-summary_prefix_length $c_prefix_len1 \
-summary_number_of_prefix $c_num_prefixes1 ]
if {[keylget ospf_route_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget ospf_route_status log]"
}
set ospf_route_status [::ixia::emulation_ospf_topology_route_config \
-mode create \
-handle $ospf_ce_handle \
-type summary_routes \
-summary_prefix_start $c_network2 \
-summary_prefix_step 1 \
-summary_prefix_length $c_prefix_len2 \
-summary_number_of_prefix $c_num_prefixes2 ]
if {[keylget ospf_route_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget ospf_route_status log]"
}
##################### End of OSPF CE configuration ##################

######################
# START OSPF (PE) on #
######################
set ospf_emulation_status [::ixia::emulation_ospf_control \
-handle $ospf_handle \
-mode start ]

HLTAPI Commands, Release 2.80 Rev. B A-35


A IxNetwork/IxRouter Examples

if {[keylget ospf_emulation_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_emulation_status log]"
}

######################
# START LDP on #
######################
set ldp_emulation_status [::ixia::emulation_ldp_control \
-handle $ldp_handle \
-mode start ]

if {[keylget ldp_emulation_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_emulation_status log]"
}

######################
# START OSPF (CE) on #
######################
set ospf_emulation_status [::ixia::emulation_ospf_control \
-handle $ospf_ce_handle \
-mode start ]

if {[keylget ospf_emulation_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_emulation_status log]"
}

after 40000

######################
# START BGP (PE) on #
######################
set bgp_emulation_status [::ixia::emulation_bgp_control \
-handle $bgp_neighbor_handle \
-mode start ]
if {[keylget bgp_emulation_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget bgp_emulation_status log]"
}

after 60000

#############################################
# Generate traffic on PE and CE ports #
#############################################
set stream_status [::ixia::l3vpn_generate_stream \
-pe_port_handle $pe_port \
-ce_port_handle $ce_port \
-stream_generation both \
-pe_label_protocol ldp \
-ce_routing_protocol ospf \
-reset \
-length_mode random \
-l3_length_min 128 \
-l3_length_max 1024 \
-enable_pgid 1 \
-pgid_value 1234 ]
if {[keylget stream_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget stream_status log]"
}

#############################################
# Start traffic on PE and CE ports #
#############################################
# Clear stats before sending traffic
set clear_stats_status [ixia::traffic_control \
-port_handle "$pe_port $ce_port" \
-action clear_stats ]
if {[keylget clear_stats_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget clear_stats_status log]"
}

A-36 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

set traffic_status [::ixia::traffic_control \


-port_handle "$pe_port $ce_port" \
-action sync_run ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

after 40000

#############################################
# Stop traffic on PE and CE ports #
#############################################
set traffic_status [::ixia::traffic_control \
-port_handle "$pe_port $ce_port" \
-action stop ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

after 5000

#############################################
# Print traffic stats #
#############################################
set pe_stats [ixia::traffic_stats -port_handle $pe_port -mode aggregate]
if {[keylget pe_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pe_stats log]"
}

set ce_stats [ixia::traffic_stats -port_handle $ce_port -mode aggregate]


if {[keylget ce_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget ce_stats log]"
}

set pe_transmit [keylget pe_stats $pe_port.aggregate.tx.pkt_count]


set ce_transmit [keylget ce_stats $ce_port.aggregate.tx.pkt_count]

set pe_stats [ixia::traffic_stats -port_handle $pe_port -packet_group_id 1234]


if {[keylget pe_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pe_stats log]"
}

set ce_stats [ixia::traffic_stats -port_handle $ce_port -packet_group_id 1234]


if {[keylget ce_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget ce_stats log]"
}

set pe_receive [keylget pe_stats $pe_port.pgid.rx.pkt_count.1234]


set ce_receive [keylget ce_stats $ce_port.pgid.rx.pkt_count.1234]

puts " PE port CE port"


puts "-------------------------------------------------------"
puts [format "Frames sent %12s %12s" \
$pe_transmit $ce_transmit]
puts [format "Frames received %12s %12s" \
$pe_receive $ce_receive]

HLTAPI Commands, Release 2.80 Rev. B A-37


A IxNetwork/IxRouter Examples

MLD (MLD_host_group.tcl)
################################################################################
# #
# Description: #
# This sample creates 10 MLD v2 hosts and a pool of two multicast groups, #
# then adds the groups in the pool to each MLD hosts. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1]

# Connect to the chassis, reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [keylget connect_status port_handle.$chassisIP.$port_list]

#################################################
# Configure 10 MLD hosts on interface 1/10/1 #
# MLD Version 2 #
#################################################
set mld_host_status [ixia::emulation_mld_config \
-mode create \
-port_handle $port_handle \
-mld_version v2 \
-count 10 \
-intf_ip_addr 30::31 \
-intf_prefix_len 64 \
-msg_interval 10 \
-max_groups_per_pkts 5 \
-unsolicited_report_interval 30 \
-general_query 1 \
-group_query 1 \
-max_response_control 1 \
-max_response_time 0 \
-ip_router_alert 1 \
-suppress_report 1 \
-mac_address_init 0000.0000.0001 \
-reset ]
if {[keylget mld_host_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget mld_host_status log]"
}

# get the MLD Host handle from keyed list


set mld_host_handle_list [keylget mld_host_status handle]

#####################################################################
# Configure 1 MLD groups on each MLD group on interface 1/10/1 #
# MLD Version 2 #
#####################################################################

set mld_group_status ""

A-38 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# Set multicast group


set multicast_group_status [::ixia::emulation_multicast_group_config \
-mode create \
-num_groups 2 \
-ip_addr_start FF15::1 \
-ip_addr_step 0::1 \
-ip_prefix_len 64 ]
if {[keylget multicast_group_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget multicast_group_status log]"
}

# Get the multicast group handle from keyed list


set multicast_group_handle [keylget multicast_group_status handle]

foreach mld_host_handle $mld_host_handle_list {

set single_mld_group_status [ixia::emulation_mld_group_config \


-mode create \
-session_handle $mld_host_handle \
-group_pool_handle $multicast_group_handle ]
if {[keylget single_mld_group_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget single_mld_group_status log]"
}

lappend mld_group_status $single_mld_group_status


}

######################
# START MLD #
######################
set mld_emulation_status [ixia::emulation_mld_control \
-mode start \
-port_handle $port_handle ]
if {[keylget mld_emulation_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget mld_emulation_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-39


A IxNetwork/IxRouter Examples

mVPN (MVPN_PIM-SM_OSPF_LDP.tcl)
################################################################################
# #
# Description: #
# This sample creates the following MVPN setup. #
# #
# #
# +-------+ #
# +--| MVRF1 | MVPN #
# +-----+ / +-------+ #
# +---| PE1 |-+ #
# +----+ / +-----+ \ +-------+ #
# | CE |---+ / +--| MVRF2 | MVPN #
# +----+ \ +-----+ +----------+ / +-------+ #
# --| DUT |---| Provider |--- #
# +----+ / +-----+ +----------+ \ +-------+ #
# | CE |---+ \ +--| MVRF1 | MVPN #
# +----+ \ +-----+ / +-------+ #
# +---| PE2 |-+ #
# +-----+ \ +-------+ #
# +--| MVRF2 | MVPN #
# +-------+ #
# #
# Protocols used: #
# Provider Side EGP - BGP #
# Provider Side IGP - OSPF #
# Provider Side MPLS Protocol - LDP #
# Provider Side Multicast Protocol - PIM/SM #
# Customer Side Multicast Protocol - PIM/SM #
# #
# DUT configuration: #
# ip vrf 500 #
# rd 1:500 #
# route-target export 1:500 #
# route-target import 1:500 #
# mdt default 239.1.1.1 #
# #
# ip vrf 501 #
# rd 1:501 #
# route-target export 1:501 #
# route-target import 1:501 #
# mdt default 239.1.1.2 #
# exit #
# #
# ip multicast-routing #
# ip multicast-routing vrf 500 #
# ip multicast-routing vrf 501 #
# mpls label protocol ldp #
# no mpls ldp logging neighbor-changes #
# #
# interface Loopback0 #
# ip address 111.111.111.111 255.255.255.255 #
# ip pim sparse-mode #
# #
# interface Loopback5 #
# ip address 5.5.5.5 255.255.255.0 #
# ip pim sparse-mode #
# #
# interface GigabitEthernet1/38 #
# description Provider #
# ip address 19.19.19.1 255.255.255.0 #
# ip pim sparse-mode #
# tag-switching ip #
# #
# interface GigabitEthernet1/37 #
# description CustomerSide #
# ip address 18.18.18.1 255.255.255.0 #
# ip pim sparse-mode #
# tag-switching ip #
# #
# interface GigabitEthernet1/37.500 #
# description CE1 #
# encapsulation dot1Q 500 #

A-40 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# ip vrf forwarding 500 #


# ip address 21.21.25.1 255.255.255.0 #
# ip pim sparse-mode #
# no cdp enable #
# #
# interface GigabitEthernet1/37.501 #
# description CE2 #
# encapsulation dot1Q 501 #
# ip vrf forwarding 501 #
# ip address 21.21.26.1 255.255.255.0 #
# ip pim sparse-mode #
# no cdp enable #
# #
# router ospf 1 #
# router-id 1.1.1.1 #
# log-adjacency-changes detail #
# network 111.111.111.111 0.0.0.0 area 0 #
# network 19.19.19.0 0.0.0.255 area 0 #
# network 18.18.18.0 0.0.0.255 area 0 #
# #
# router bgp 1 #
# bgp router-id 1.1.1.1 #
# bgp cluster-id 1684275457 #
# bgp log-neighbor-changes #
# neighbor 2.2.2.2 remote-as 1 #
# neighbor 2.2.2.2 update-source Loopback0 #
# neighbor 2.2.2.3 remote-as 1 #
# neighbor 2.2.2.3 update-source Loopback0 #
# #
# address-family vpnv4 #
# neighbor 2.2.2.2 activate #
# neighbor 2.2.2.2 send-community extended #
# neighbor 2.2.2.3 activate #
# neighbor 2.2.2.3 send-community extended #
# exit-address-family #
# #
# address-family ipv4 vrf 501 #
# no auto-summary #
# no synchronization #
# exit-address-family #
# #
# address-family ipv4 vrf 500 #
# no auto-summary #
# no synchronization #
# exit-address-family #
# exit #
# #
# ip pim rp-address 5.5.5.5 #
# ip pim vrf 500 rp-address 21.21.25.1 #
# ip pim vrf 501 rp-address 21.21.26.1 #
# #
# Module: #
# The sample was tested on a LM1000STXS4 module. #
# #
################################################################################

proc script_increment_ipv4_address {prefix intf_ip_addr_step} {

set temp_route_ip_addr_step [split $intf_ip_addr_step .]


set step_index 3
set octet_number 4
while {$octet_number >= 1} {
set single_octet_step [lindex $temp_route_ip_addr_step\
$step_index]
set one 0
if {[scan $prefix "%d.%d.%d.%d" a b c d] == 4} {
set one [format %u [expr {($a<<24)|($b<<16)|($c<<8)|$d}]]
}
set two [expr {$single_octet_step<<(8*(4-$octet_number))}]
set value [expr {$one + $two}]
if [catch {set prefix [format "%s.%s.%s.%s" \
[expr {(($value >> 24) & 0xff)}] \
[expr {(($value >> 16) & 0xff)}] \
[expr {(($value >> 8 ) & 0xff)}] \

HLTAPI Commands, Release 2.80 Rev. B A-41


A IxNetwork/IxRouter Examples

[expr {$value & 0xff}]]} prefix] {


set prefix 0.0.0.0
}

incr octet_number -1
incr step_index -1
}
return $prefix
}

proc script_increment_ipv4_net {ipAddress {netmask 24} {amount 1}} {


set ipVal 0
if {[scan $ipAddress "%d.%d.%d.%d" a b c d] == 4} {
set ipVal [format %u [expr {($a<<24)|($b<<16)|($c<<8)|$d}]]
}
set ipVal [mpexpr {($ipVal >> (32 - $netmask)) + $amount}]
set ipVal [mpexpr {($ipVal << (32 - $netmask)) & 0xFFFFFFFF}]
if [catch {set address [format "%s.%s.%s.%s" \
[expr {(($ipVal >> 24) & 0xff)}] \
[expr {(($ipVal >> 16) & 0xff)}] \
[expr {(($ipVal >> 8 ) & 0xff)}] \
[expr {$ipVal & 0xff}]]} address] {
set address 0.0.0.0
}
return $address
}

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 4/1 4/2]

# Provider Side parameters


set p_ip_addr_start 19.19.19.2
set p_ip_addr_step 0.0.0.0
set p_gw_addr 19.19.19.1
set p_ip_prefix 24
set p_rp_addr_start 5.5.5.5
set p_rp_addr_step 0.0.0.0

# Set PE Routers parameters


set pe_count 2
set pe_ip_addr_start 2.2.2.2
set pe_ip_addr_step 0.0.0.1
set pe_dut_ip_addr_start 111.111.111.111
set pe_dut_ip_addr_step 0.0.0.0
set pe_ip_prefix 32
set pe_as_number 1

# Set MVPN/MVRF parameters


set mvrf_count 2
set mvrf_unique 0
set rd_type as
set rd_number_start $pe_as_number
set rd_number_step 0
set rd_assigned_number_start 500
set rd_assigned_number_step 1

set mvpn_source_addr_start 88.0.0.1


set mvpn_source_addr_step 0.0.1.0
set mvpn_source_prefix 32
set mvpn_num_sources 1

set mvpn_group_addr_start 228.0.0.1


set mvpn_group_addr_step 1.0.0.0
set mvpn_group_prefix 32
set mvpn_num_groups 1

set mvpn_rp_addr_start 21.21.25.1


set mvpn_rp_addr_step 0.0.1.0

A-42 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

set mdt_group_addr_start 239.1.1.1


set mdt_group_addr_step 0.0.0.1
set mdt_group_prefix 32

# Set Customer CE Parameters


set ce_ip_addr_start 21.21.25.2
set ce_ip_addr_step 0.0.1.0
set ce_ip_prefix 24
set ce_gw_addr_start 21.21.25.1
set ce_gw_addr_step 0.0.1.0
set ce_vlan_id_start 500
set ce_vlan_id_step 1
set ce_rp_addr_start 21.21.25.1
set ce_rp_addr_step 0.0.1.0

if {$mvrf_unique} {
set ce_count [mpexpr $pe_count * $mvrf_count]
} else {
set ce_count $mvrf_count
}
set total_mvrf_count $ce_count

################################################################################
# Connect to the chassis, reset to factory defaults and take ownership
################################################################################
set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

################################################################################
# Configure interfaces in the test
################################################################################
set interface_status [::ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 0 \
-duplex full \
-speed ether1000 ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

set pe_port_handle [lindex $port_handle 0]


set ce_port_handle [lindex $port_handle 1]

################################################################################
# Configure BGP on PE Routers side
################################################################################
set bgp_routers_status [ixia::emulation_bgp_config \
-mode reset \
-port_handle $pe_port_handle \
-count $pe_count \
-local_ip_addr $p_ip_addr_start \
-remote_ip_addr $p_gw_addr \
-local_addr_step 0.0.0.0 \
-remote_addr_step 0.0.0.0 \
-local_loopback_ip_addr $pe_ip_addr_start \
-local_loopback_ip_addr_step $pe_ip_addr_step \
-remote_loopback_ip_addr $pe_dut_ip_addr_start \
-remote_loopback_ip_addr_step $pe_dut_ip_addr_step \
-local_router_id $pe_ip_addr_start \

HLTAPI Commands, Release 2.80 Rev. B A-43


A IxNetwork/IxRouter Examples

-neighbor_type internal \
-ip_version 4 \
-local_as $pe_as_number \
-active_connect_enable \
-ipv4_unicast_nlri \
-ipv4_multicast_nlri \
-ipv4_mpls_nlri \
-ipv4_mpls_vpn_nlri \
-ipv6_unicast_nlri \
-ipv6_multicast_nlri \
-ipv6_mpls_nlri \
-ipv6_mpls_vpn_nlri ]

if {[keylget bgp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget bgp_routers_status log]"
}
set pe_bgp_handles [keylget bgp_routers_status handles]

################################################################################
# Configure BGP mVRFs
################################################################################
set mvpn_source_address $mvpn_source_addr_start
set mvpn_group_address $mvpn_group_addr_start
set mdt_group_address $mdt_group_addr_start
set rd_number $rd_number_start
set rd_assigned_number $rd_assigned_number_start

foreach {bgp_neighbor} $pe_bgp_handles {


set mvpn_source_address_start $mvpn_source_address
for {set i 1} {$i <= $mvrf_count} {incr i} {
set bgp_route_range_status [::ixia::emulation_bgp_route_config \
-mode add \
-handle $bgp_neighbor \
-num_sites 1 \
-num_routes $mvpn_num_sources \
-max_route_ranges 1 \
-ip_version 4 \
-prefix $mvpn_source_address \
-prefix_step 1 \
-prefix_from $mvpn_source_prefix \
-prefix_to $mvpn_source_prefix \
-route_ip_addr_step 0.0.0.0 \
-netmask 255.255.255.255 \
-default_mdt_ip $mdt_group_address \
-default_mdt_ip_incr $mdt_group_addr_step \
-label_value 16 \
-label_step 0 \
-rd_admin_value $rd_number \
-rd_assign_value $rd_assigned_number \
-rd_type 0 \
-target_type as \
-target $rd_number \
-target_assign $rd_assigned_number \
-import_target_type as \
-import_target $rd_number \
-import_target_assign $rd_assigned_number \
-ipv4_unicast_nlri \
-ipv4_multicast_nlri \
-ipv4_mpls_nlri \
-ipv4_mpls_vpn_nlri \
-origin_route_enable \
-next_hop_set_mode same \
-next_hop_enable 1 ]

if {[keylget bgp_route_range_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget bgp_route_range_status log]"
}

set mvpn_source_address [script_increment_ipv4_address \


$mvpn_source_address $mvpn_source_addr_step]

set mvpn_group_address [script_increment_ipv4_address \


$mvpn_group_address $mvpn_group_addr_step]

A-44 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

set mdt_group_address [script_increment_ipv4_address \


$mdt_group_address $mdt_group_addr_step]

set rd_number [mpexpr $rd_number + $rd_number_step]


set rd_assigned_number [mpexpr $rd_assigned_number + \
$rd_assigned_number_step]
}
if {$mvrf_unique == 0} {
set mvpn_source_address $mvpn_source_address_start
set mvpn_group_address $mvpn_group_addr_start
set mdt_group_address $mdt_group_addr_start
set rd_number $rd_number_start
set rd_assigned_number $rd_assigned_number_start

for {set i 0} {$i < $mvpn_num_sources} {incr i} {


set mvpn_source_address [script_increment_ipv4_net \
$mvpn_source_address $mvpn_source_prefix]
}
}
}

################################################################################
# Create OSPFv2 Provider
################################################################################
set ospf_neighbor_status [ixia::emulation_ospf_config \
-port_handle $pe_port_handle \
-reset \
-session_type ospfv2 \
-mode create \
-count 1 \
-intf_ip_addr $p_ip_addr_start \
-intf_prefix_length $p_ip_prefix \
-neighbor_intf_ip_addr $p_gw_addr \
-router_id $p_ip_addr_start \
-area_id 0.0.0.0 \
-area_id_step 0.0.0.0 \
-area_type external-capable \
-authentication_mode null \
-dead_interval 40 \
-hello_interval 10 \
-interface_cost 10 \
-network_type broadcast \
-option_bits "0x02" ]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}
set provider_ospf_handle [keylget ospf_neighbor_status handle]

################################################################################
# Create OSPFv2 PE Routes
################################################################################
set route_config_status [::ixia::emulation_ospf_topology_route_config\
-mode create \
-handle $provider_ospf_handle \
-type summary_routes \
-summary_number_of_prefix $pe_count \
-summary_prefix_start $pe_ip_addr_start \
-summary_prefix_length $pe_ip_prefix ]

if {[keylget route_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget route_config_status log]"
}

################################################################################
# Create LDP Provider
################################################################################
set ldp_routers_status [ixia::emulation_ldp_config \
-reset \
-mode create \
-port_handle $pe_port_handle \
-count 1 \
-intf_ip_addr $p_ip_addr_start \

HLTAPI Commands, Release 2.80 Rev. B A-45


A IxNetwork/IxRouter Examples

-intf_prefix_length 24 \
-gateway_ip_addr $p_gw_addr \
-lsr_id $p_ip_addr_start \
-label_space 0 \
-label_adv unsolicited \
-peer_discovery link \
-hello_interval 5 \
-hello_hold_time 15 \
-keepalive_interval 10 \
-keepalive_holdtime 30 \
-discard_self_adv_fecs 0 \
-enable_l2vpn_vc_fecs 1 \
-enable_explicit_include_ip_fec 0 \
-enable_remote_connect 1 \
-enable_vc_group_matching 0 \
-targeted_hello_hold_time 45 \
-targeted_hello_interval 15 ]

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}
set provider_ldp_handle [keylget ldp_routers_status handle]

################################################################################
# Create LDP PE Routers
################################################################################
set pe_ip_address $pe_ip_addr_start
for {set i 0} {$i < $pe_count} {incr i} {
set route_config_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $provider_ldp_handle \
-fec_type ipv4_prefix \
-label_msg_type mapping \
-egress_label_mode nextlabel \
-num_lsps 1 \
-fec_ip_prefix_start $pe_ip_address \
-fec_ip_prefix_length 32 \
-packing_enable 0 \
-label_value_start 3 \
]

if {[keylget route_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget route_config_status log]"
}

set pe_ip_address [script_increment_ipv4_address \


$pe_ip_address $pe_ip_addr_step]
}

##############################################################################
# Configure PIM, P and PE neighbors
##############################################################################
set pim_config_status [::ixia::emulation_pim_config \
-mode create \
-reset \
-port_handle $pe_port_handle \
-count 1 \
-ip_version 4 \
-intf_ip_addr $p_ip_addr_start \
-intf_ip_addr_step $p_ip_addr_step \
-intf_ip_prefix_length $p_ip_prefix \
-dr_priority 0 \
-bidir_capable 0 \
-hello_interval 30 \
-hello_holdtime 105 \
-join_prune_interval 60 \
-join_prune_holdtime 180 \
-prune_delay_enable 1 \
-prune_delay 500 \
-override_interval 2500 \
-gateway_intf_ip_addr $p_gw_addr \
-gateway_intf_ip_addr_step 0.0.0.0 \
-prune_delay_tbit 0 \
-send_generation_id 1 \

A-46 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-generation_id_mode constant \
-mvpn_enable 1 \
-mvpn_pe_ip $pe_ip_addr_start \
-mvpn_pe_ip_incr $pe_ip_addr_step \
-mvpn_pe_count $pe_count \
-mvrf_count $mvrf_count \
-mvrf_unique 0 \
-default_mdt_ip $mdt_group_addr_start \
-default_mdt_ip_incr $mdt_group_addr_step ]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}
set provider_pim_handle [lindex [keylget pim_config_status handle] 0]
set pe_pim_handles [lrange [keylget pim_config_status handle] 1 end]

################################################################################
# Create PIM MVPN sources on each PE
################################################################################
set mvpn_rp_address $mvpn_rp_addr_start
set mvpn_source_address $mvpn_source_addr_start
set mvpn_group_address $mvpn_group_addr_start
foreach {pe_pim_handle} $pe_pim_handles {
# Create multicast source pool
set pim_config_status [::ixia::emulation_multicast_source_config \
-mode create \
-num_sources $mvpn_num_sources \
-ip_addr_start $mvpn_source_address \
-ip_addr_step $mvpn_source_addr_step \
-ip_prefix_len $mvpn_source_prefix \
]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}
set mvpn_source_pool_handle [keylget pim_config_status handle]

# Create multicast group pool


set pim_config_status [::ixia::emulation_multicast_group_config \
-mode create \
-num_groups $mvpn_num_groups \
-ip_addr_start $mvpn_group_address \
-ip_addr_step $mvpn_group_addr_step \
-ip_prefix_len $mvpn_group_prefix \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
set mvpn_group_pool_handle [keylget pim_config_status handle]

# Create PIM Source


set pim_config_status [::ixia::emulation_pim_group_config \
-mode create \
-session_handle $pe_pim_handle \
-group_pool_handle $mvpn_group_pool_handle \
-source_pool_handle $mvpn_source_pool_handle \
-rp_ip_addr $mvpn_rp_addr_start \
-rp_ip_addr_step $mvpn_rp_addr_step \
-group_pool_mode register \
-join_prune_aggregation_factor 10 \
-wildcard_group 1 \
-s_g_rpt_group 0 \
-rate_control 1 \
-interval 100 \
-join_prune_per_interval 99 \
-register_per_interval 101 \
-register_stop_per_interval 102 \
-flap_interval 60 \
-spt_switchover 0 \
-source_group_mapping fully_meshed \
-switch_over_interval 5 \
]

HLTAPI Commands, Release 2.80 Rev. B A-47


A IxNetwork/IxRouter Examples

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
if {$mvrf_unique == 0} {
set mvpn_group_address $mvpn_group_addr_start
for {set i 0} {$i < $mvpn_num_sources} {incr i} {
set mvpn_source_address [script_increment_ipv4_net \
$mvpn_source_address $mvpn_source_prefix]
}
} else {
for {set i 0} {$i < $mvrf_count} {incr i} {
set mvpn_group_address [script_increment_ipv4_address \
$mvpn_group_address $mvpn_group_addr_step]

set mvpn_source_address [script_increment_ipv4_address \


$mvpn_source_address $mvpn_source_addr_step]
}
}
set mvpn_rp_address [script_increment_ipv4_address \
$mvpn_rp_address $mvpn_rp_addr_step]
}

################################################################################
# Create PIM MDT sources on each PE
################################################################################
set mdt_source_address $pe_ip_addr_start
set mdt_source_addr_step $pe_ip_addr_step
set mdt_source_prefix $pe_ip_prefix
set mdt_num_sources 1
set mdt_group_address $mdt_group_addr_start
foreach {pe_pim_handle} $pe_pim_handles {
# Create multicat source
set pim_config_status [::ixia::emulation_multicast_source_config \
-mode create \
-num_sources $mdt_num_sources \
-ip_addr_start $mdt_source_address \
-ip_addr_step $mdt_source_addr_step \
-ip_prefix_len $mdt_source_prefix \
]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}
set mdt_source_pool_handle [keylget pim_config_status handle]

# Create multicast group


set pim_config_status [::ixia::emulation_multicast_group_config \
-mode create \
-num_groups $mvrf_count \
-ip_addr_start $mdt_group_address \
-ip_addr_step 0.0.0.0 \
-ip_prefix_len 32 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
set mdt_group_pool_handle [keylget pim_config_status handle]

# Create PIM Source


set pim_config_status [::ixia::emulation_pim_group_config \
-mode create \
-session_handle $pe_pim_handle \
-group_pool_handle $mdt_group_pool_handle \
-source_pool_handle $mdt_source_pool_handle \
-rp_ip_addr $p_rp_addr_start \
-rp_ip_addr_step 0.0.0.0 \
-group_pool_mode register \
-join_prune_aggregation_factor 10 \
-wildcard_group 1 \
-s_g_rpt_group 0 \
-rate_control 1 \
-interval 100 \
-join_prune_per_interval 99 \
-register_per_interval 101 \

A-48 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-register_stop_per_interval 102 \
-register_tx_iteration_gap 6000 \
-flap_interval 60 \
-spt_switchover 0 \
-source_group_mapping fully_meshed \
-switch_over_interval 5 \
-send_null_register 1 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

if {$mvrf_unique == 0} {
set mdt_group_address $mdt_group_addr_start
for {set i 0} {$i < $mdt_num_sources} {incr i} {
set mdt_source_address [script_increment_ipv4_net \
$mdt_source_address $mdt_source_prefix]
}
} else {
for {set i 0} {$i < $mvrf_count} {incr i} {
set mdt_group_address [script_increment_ipv4_address \
$mdt_group_address $mdt_group_addr_step]

set mvpn_source_address [script_increment_ipv4_address \


$mdt_source_address $mdt_source_addr_step]
}
}
}

################################################################################
# Create PIM Provider groups
################################################################################
set mdt_group_address $mdt_group_addr_start
for {set i 0} {$i < $total_mvrf_count} {incr i} {
set pim_config_status [::ixia::emulation_multicast_group_config \
-mode create \
-num_groups 1 \
-ip_addr_start $mdt_group_address \
-ip_addr_step 0.0.0.0 \
-ip_prefix_len 32 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
set mdt_group_pool_handle [keylget pim_config_status handle]

set pim_config_status [::ixia::emulation_pim_group_config \


-mode create \
-session_handle $provider_pim_handle \
-group_pool_handle $mdt_group_pool_handle \
-rp_ip_addr $p_rp_addr_start \
-rp_ip_addr_step 0.0.0.0 \
-join_prune_aggregation_factor 10 \
-s_g_rpt_group 0 \
-rate_control 1 \
-interval 100 \
-join_prune_per_interval 99 \
-register_per_interval 101 \
-register_stop_per_interval 102 \
-flap_interval 60 \
-spt_switchover 0 \
-source_group_mapping fully_meshed \
-switch_over_interval 5 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set mdt_group_address [script_increment_ipv4_address \


$mdt_group_address $mdt_group_addr_step]
}

HLTAPI Commands, Release 2.80 Rev. B A-49


A IxNetwork/IxRouter Examples

################################################################################
# Configure PIM CE Routers
################################################################################
set pim_config_status [::ixia::emulation_pim_config \
-mode create \
-reset \
-port_handle $ce_port_handle \
-count $ce_count \
-ip_version 4 \
-intf_ip_addr $ce_ip_addr_start \
-intf_ip_addr_step $ce_ip_addr_step \
-vlan_id $ce_vlan_id_start \
-vlan_id_step $ce_vlan_id_step \
-dr_priority 0 \
-bidir_capable 0 \
-hello_interval 30 \
-hello_holdtime 105 \
-join_prune_interval 60 \
-join_prune_holdtime 180 \
-prune_delay_enable 1 \
-prune_delay 500 \
-override_interval 2500 \
-gateway_intf_ip_addr $ce_gw_addr_start \
-gateway_intf_ip_addr_step $ce_gw_addr_step \
-prune_delay_tbit 0 \
-send_generation_id 1 \
-generation_id_mode constant ]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
set ce_pim_handles [keylget pim_config_status handle]

################################################################################
# Create CE PIM groups
################################################################################
set mvpn_source_address $mvpn_source_addr_start
set mvpn_group_address $mvpn_group_addr_start
set mvpn_rp_address $mvpn_rp_addr_start
foreach {ce_pim_handle} $ce_pim_handles {
set pim_config_status [::ixia::emulation_multicast_group_config \
-mode create \
-num_groups 1 \
-ip_addr_start $mvpn_group_address \
-ip_addr_step $mvpn_group_addr_step \
-ip_prefix_len $mvpn_group_prefix \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
set mvpn_group_pool_handle [keylget pim_config_status handle]
set pim_config_status [::ixia::emulation_pim_group_config \
-mode create \
-session_handle $ce_pim_handle \
-group_pool_handle $mvpn_group_pool_handle \
-rp_ip_addr $mvpn_rp_address \
-rp_ip_addr_step 0.0.0.0 \
-join_prune_aggregation_factor 10 \
-s_g_rpt_group 0 \
-rate_control 1 \
-interval 100 \
-join_prune_per_interval 99 \
-register_per_interval 101 \
-register_stop_per_interval 102 \
-flap_interval 60 \
-spt_switchover 0 \
-source_group_mapping fully_meshed \
-switch_over_interval 5 \
]

A-50 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set mvpn_rp_address [script_increment_ipv4_address \


$mvpn_rp_address $mvpn_rp_addr_step]

set mvpn_source_address [script_increment_ipv4_address \


$mvpn_source_address $mvpn_source_addr_step]

set mvpn_group_address [script_increment_ipv4_address \


$mvpn_group_address $mvpn_group_addr_step]
}

set mdt_group_address $mdt_group_addr_start


set pe_ip_address $pe_ip_addr_start
set mvpn_source_address $mvpn_source_addr_start
set mvpn_group_address $mvpn_group_addr_start
for {set i 0} {$i < $pe_count} {incr i} {
for {set j 0} {$j < $mvrf_count} {incr j} {
set traffic_status [ixia::traffic_config \
-mode create \
-port_handle $pe_port_handle \
-frame_size 100 \
-l3_protocol ipv4 \
-l4_protocol gre \
-ip_src_addr $pe_ip_address \
-ip_dst_addr $mdt_group_address \
-gre_version 0 \
-inner_protocol ipv4 \
-inner_ip_src_addr $mvpn_source_address \
-inner_ip_dst_addr $mvpn_group_address \
-rate_percent 10 \
-enable_time_stamp 0 \
-mac_dst_mode discovery ]

if {[keylget traffic_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget traffic_status log]"
}
set mvpn_group_address [script_increment_ipv4_address \
$mvpn_group_address $mvpn_group_addr_step]

set mvpn_source_address [script_increment_ipv4_address \


$mvpn_source_address $mvpn_source_addr_step]

set mdt_group_address [script_increment_ipv4_address \


$mdt_group_address $mdt_group_addr_step]

set pe_ip_address [script_increment_ipv4_address \


$pe_ip_address $pe_ip_addr_step]

if {$mvrf_unique == 0} {
set mdt_group_address $mdt_group_addr_start
set mvpn_group_address $mvpn_group_addr_start
set mvpn_source_address $mvpn_source_addr_start
for {set k 0} {$k < $mvpn_num_sources} {incr k} {
set mvpn_source_address [script_increment_ipv4_net \
$mvpn_source_address $mvpn_source_prefix]
}
}
}

set interface_status [::ixia::interface_config \


-port_handle $port_handle \
-arp_send_req 1 ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-51


A IxNetwork/IxRouter Examples

# Start BGP protocol


foreach {bgp_neighbor} $pe_bgp_handles {
set bgp_control_status [ixia::emulation_bgp_control \
-handle $bgp_neighbor \
-mode start ]

if {[keylget bgp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget bgp_control_status log]"
}
}

# Start OSPF protocol


set ospf_control_status [ixia::emulation_ospf_control \
-handle $provider_ospf_handle \
-mode start ]

if {[keylget ospf_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_control_status log]"
}

# Start LDP protocol


set ldp_control_status [ixia::emulation_ldp_control \
-port_handle $pe_port_handle \
-mode start ]

if {[keylget ldp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_control_status log]"
}

# Start PIM protocol


set pim_control_status [ixia::emulation_pim_control \
-handle $provider_pim_handle \
-mode start ]

if {[keylget pim_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_control_status log]"
}

foreach {pim_neighbor} $pe_pim_handles {


set pim_control_status [ixia::emulation_pim_control \
-handle $pim_neighbor \
-mode start ]

if {[keylget pim_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_control_status log]"
}
}

foreach {pim_neighbor} $ce_pim_handles {


set pim_control_status [ixia::emulation_pim_control \
-handle $pim_neighbor \
-mode start ]

if {[keylget pim_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_control_status log]"
}
}

# Wait 100 seconds for BGP sessions to establish


after 100000

set port_handle [concat $pe_port_handle $ce_port_handle]

# Clear all statistics on ports


set traffic_status [ixia::traffic_control \
-action clear_stats \
-port_handle $port_handle ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

A-52 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# Start traffic on TX ports


set traffic_status [ixia::traffic_control \
-action run \
-port_handle $pe_port_handle ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

# Procedure to print stats


proc post_stats {port_handle label key_list stat_key {stream ""}} {
puts -nonewline [format "%-30s" $label]

foreach port $port_handle {


if {$stream != ""} {
set key $port.stream.$stream.$stat_key
} else {
set key $port.$stat_key
}

if {[llength [keylget key_list $key]] > 1} {


puts -nonewline "[format "%-16s" N/A]"
} else {
puts -nonewline "[format "%-16s" [keylget key_list $key]]"
}
}
puts ""
}

# Wait for TX port to send traffic


after 10000

# Stop traffic on the TX port


set traffic_stop_status [ixia::traffic_control \
-port_handle $pe_port_handle \
-action stop ]
if {[keylget traffic_stop_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_stop_status log]"
}

###############################################################################
# Retrieve stats after stopped
###############################################################################
# Get aggregrate stats for all ports
set aggregate_stats [ixia::traffic_stats -port_handle $port_handle]
if {[keylget aggregate_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget aggregate_stats log]"
}

puts "\n************************* STATISTICS **************************"


puts -nonewline "[format "%-30s" " "]"
foreach port $port_handle {
puts -nonewline "[format "%-16s" $port]"
}
puts ""
puts -nonewline "[format "%-30s" " "]"
foreach port $port_handle {
puts -nonewline "[format "%-16s" "-----"]"
}
puts ""

post_stats $port_handle "Elapsed Time" $aggregate_stats \


aggregate.tx.elapsed_time

post_stats $port_handle "Packets Tx" $aggregate_stats \


aggregate.tx.pkt_count

post_stats $port_handle "Bytes Tx" $aggregate_stats \


aggregate.tx.pkt_byte_count

post_stats $port_handle "Bits Tx" $aggregate_stats \


aggregate.tx.pkt_bit_count

HLTAPI Commands, Release 2.80 Rev. B A-53


A IxNetwork/IxRouter Examples

post_stats $port_handle "Packets Rx" $aggregate_stats \


aggregate.rx.pkt_count

post_stats $port_handle "Collisions" $aggregate_stats \


aggregate.rx.collisions_count

post_stats $port_handle "Dribble Errors" $aggregate_stats \


aggregate.rx.dribble_errors_count

post_stats $port_handle "CRCs" $aggregate_stats \


aggregate.rx.crc_errors_count

post_stats $port_handle "Oversizes" $aggregate_stats \


aggregate.rx.oversize_count

post_stats $port_handle "Undersizes" $aggregate_stats \


aggregate.rx.undersize_count

post_stats $port_handle "Data Integrity Frames" $aggregate_stats \


aggregate.rx.data_int_frames_count

post_stats $port_handle "Data Integrity Error" $aggregate_stats \


aggregate.rx.data_int_errors_count

puts "***************************************************************\n"

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-54 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

MPLS 6PE (MPLS_6PE_OSPF_RIP.tcl)


################################################################################
# #
# Description: #
# This sample creates a 6PE setup. It uses two Ixia ports. One port is #
# used as a PE and P router. One port is used as CE router. #
# Streams are generated on both ports and then started. #
# #
# ------ ----- ----- ------ #
# | PE |-----| P |---------| DUT |--------| CE | #
# ------ ----- | ----- | ------ #
# | | #
# Ixia port 1 | Cisco 6500 | Ixia port 2 #
# #
# PE runs mBGP #
# P runs LDP and ISIS #
# CE runs ISIS (v6) #
# #
# Cisco configuration: #
# ipv6 cef distributed
#
# ipv6 unicast-routing
#
# mpls label protocol ldp
# mpls ipv6 source-interface Loopback901
#
# interface Loopback901
# ip address 110.0.110.1 255.255.255.255
#
# interface GigabitEthernet1/29
# no ip address
#
# interface GigabitEthernet1/29.1
# description vpn901_ce
# encapsulation dot1Q 901
# ipv6 address 20::/64
# ipv6 rip vpn901 enable
# ipv6 rip vpn901 default-information originate
#
# interface GigabitEthernet1/30
# description vpn901_pe
# ip address 100.28.0.1 255.255.255.0
# ip ospf network broadcast
# mpls label protocol ldp
# tag-switching ip
#
# router ospf 901
# mpls traffic-eng router-id Loopback901
# mpls traffic-eng area 0
# log-adjacency-changes
# network 100.28.0.0 0.0.0.255 area 0
#
# ipv6 router rip vpn901
# maximum-paths 1
# no split-horizon
# poison-reverse
#
# router bgp 1
# neighbor 110.0.110.100 remote-as 1
# neighbor 110.0.110.100 update-source Loopback901
#
# address-family ipv6
# neighbor 110.0.110.100 activate
# neighbor 110.0.110.100 send-label
# redistribute rip vpn901
# exit-address-family
# end

HLTAPI Commands, Release 2.80 Rev. B A-55


A IxNetwork/IxRouter Examples

# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 1/1 1/2]

set pe_ip_address 110.0.110.100


set bgp_peer_ip 110.0.110.1

set p_ip_address 100.28.0.2


set p_prefix_len 24
set p_gateway_ip 100.28.0.1
set p_mac_address 0000.0002.0003

set ce_ip_address 20::21


set ce_prefix_len 64
set ce_vlan_id 901
set ce_mac_address 0000.0001.0002

set bgp_router_id 1.2.3.4


set bgp_as 1
set ospf_router_id 1.2.3.4
set ospf_area_id 0.0.0.0
set p_lsr_id 1.2.3.4

set pe_adv_label_start 101


set pe_adv_network 30::0
set pe_adv_prefix_len 64
set pe_adv_num_routes 2

set c_network1 31::0


set c_prefix_len1 64
set c_num_prefixes1 3

set c_network2 32::0


set c_prefix_len2 64
set c_num_prefixes2 2

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser]

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

set pe_port [lindex $port_handle 0]


set ce_port [lindex $port_handle 1]

# Initialize ports
set intf_status [::ixia::interface_config \
-port_handle $pe_port \
-autonegotiation 1 \
-transmit_mode advanced \
-signature_offset 62 \
-pgid_offset 66 ]

A-56 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

set intf_status [::ixia::interface_config \


-port_handle $ce_port \
-autonegotiation 1 \
-transmit_mode advanced ]

#################################################
# Configure OSPFv2 neighbor on P/PE port #
#################################################
set ospf_neighbor_status [ixia::emulation_ospf_config \
-port_handle $pe_port \
-reset \
-session_type ospfv2 \
-mode create \
-count 1 \
-mac_address_init $p_mac_address \
-intf_ip_addr $p_ip_address \
-intf_ip_addr_step 0.0.1.0 \
-router_id $ospf_router_id \
-router_id_step 0.0.1.0 \
-neighbor_intf_ip_addr $p_gateway_ip \
-neighbor_intf_ip_addr_step 0.0.1.0 \
-loopback_ip_addr $pe_ip_address \
-loopback_ip_addr_step 0.0.1.0 \
-area_id $ospf_area_id \
-area_id_step 0.0.0.1 \
-area_type external-capable \
-network_type broadcast ]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

set ospf_handle [keylget ospf_neighbor_status handle]


##################### End of OSPF PE configuration ##################

#############################################
# Configure LDP Neighbor on P/PE port #
#############################################
set ldp_routers_status [ixia::emulation_ldp_config \
-mode create \
-port_handle $pe_port \
-label_adv unsolicited \
-peer_discovery link \
-count 1 \
-intf_ip_addr $p_ip_address \
-intf_prefix_length $p_prefix_len \
-intf_ip_addr_step 0.0.1.0 \
-lsr_id $p_lsr_id \
-label_space 0 \
-lsr_id_step 0.0.1.0 \
-mac_address_init $p_mac_address \
-gateway_ip_addr $p_gateway_ip \
-gateway_ip_addr_step 0.0.1.0 \
-reset ]

if {[keylget ldp_routers_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_routers_status log]"
}

set ldp_handle [keylget ldp_routers_status handle]

#################################################
# Configure ipv4_prefix fec type routes #
#################################################
set ldp_routers_status [ixia::emulation_ldp_route_config \
-mode create \
-handle $ldp_handle \
-fec_type ipv4_prefix \
-label_msg_type mapping \
-fec_ip_prefix_start $pe_ip_address \
-fec_ip_prefix_length 32 \
-egress_label_mode imnull ]

HLTAPI Commands, Release 2.80 Rev. B A-57


A IxNetwork/IxRouter Examples

##################### End of LDP PE configuration ##################

#############################################
# Configure BGP Neighbor on PE port #
#############################################
set bgp_router_status [ixia::emulation_bgp_config \
-mode reset \
-port_handle $pe_port \
-local_ip_addr $p_ip_address \
-remote_ip_addr $p_gateway_ip \
-local_addr_step 0.0.0.1 \
-local_loopback_ip_addr $pe_ip_address \
-remote_loopback_ip_addr $bgp_peer_ip \
-local_loopback_ip_addr_step 0.0.1.0 \
-count 1 \
-mac_address_start $p_mac_address \
-local_router_id $bgp_router_id \
-neighbor_type internal \
-ip_version 4 \
-local_as $bgp_as \
-local_as_mode fixed \
-active_connect_enable \
-ipv4_unicast_nlri \
-ipv4_mpls_vpn_nlri \
-ipv6_mpls_nlri ]

if {[keylget bgp_router_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget bgp_router_status log]"
}
set bgp_neighbor_handle [keylget bgp_router_status handles]

#############################################
# Configure L3 VPN Site on the BGP Neighbor #
#############################################
set bgp_route_range_status [::ixia::emulation_bgp_route_config \
-mode add \
-handle $bgp_neighbor_handle \
-ip_version 6 \
-prefix $pe_adv_network \
-prefix_step 1 \
-ipv6_prefix_length $pe_adv_prefix_len \
-label_value $pe_adv_label_start \
-num_sites 1 \
-num_routes $pe_adv_num_routes \
-label_step 1 \
-local_pref 0 \
-next_hop_enable 1 \
-origin_route_enable \
-enable_traditional_nlri 1 \
-ipv6_mpls_nlri ]
if {[keylget bgp_route_range_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget bgp_route_range_status log]"
}
##################### End of iBGP PE configuration ##################

#############################################
# Configure RIPng Neighbor on CE port #
#############################################
set rip_status [ixia::emulation_rip_config \
-port_handle $ce_port \
-mode create \
-reset \
-session_type ripng \
-intf_ip_addr $ce_ip_address \
-intf_prefix_length $ce_prefix_len \
-receive_type store \
-count 1 \
-vlan_id $ce_vlan_id \
-mac_address_init $ce_mac_address]

A-58 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget rip_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget rip_status log]"
}

set rip_router [keylget rip_status handle]

#############################################
# Configure two route ranges on RIP neighbor#
#############################################
set rip_status [ixia::emulation_rip_route_config \
-handle $rip_router \
-mode create \
-reset \
-num_prefixes $c_num_prefixes1 \
-prefix_start $c_network1 \
-prefix_length $c_prefix_len1 ]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}

set rip_status [ixia::emulation_rip_route_config \


-handle $rip_router \
-mode create \
-num_prefixes $c_num_prefixes2 \
-prefix_start $c_network2 \
-prefix_length $c_prefix_len2 ]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
##################### End of RIP CE configuration ##################

######################
# START OSPF (PE) on #
######################
set ospf_emulation_status [::ixia::emulation_ospf_control \
-handle $ospf_handle \
-mode start ]

if {[keylget ospf_emulation_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_emulation_status log]"
}

######################
# START LDP on #
######################
set ldp_emulation_status [::ixia::emulation_ldp_control \
-handle $ldp_handle \
-mode start ]

if {[keylget ldp_emulation_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ldp_emulation_status log]"
}

######################
# START RIPng on #
######################
set isis_emulation_status [ixia::emulation_rip_control \
-handle $rip_router \
-mode start ]

if {[keylget isis_emulation_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget isis_emulation_status log]"
}

after 40000

######################
# START BGP (PE) on #
######################
set bgp_emulation_status [::ixia::emulation_bgp_control \
-handle $bgp_neighbor_handle \
-mode start ]

HLTAPI Commands, Release 2.80 Rev. B A-59


A IxNetwork/IxRouter Examples

if {[keylget bgp_emulation_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget bgp_emulation_status log]"
}

after 30000

#############################################
# Create stream on CE ports #
#############################################
set traffic_status [::ixia::traffic_config \
-mode reset \
-port_handle $ce_port ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}
set traffic_status [::ixia::traffic_config \
-mode create \
-port_handle $ce_port \
-length_mode random \
-l3_length_min 128 \
-l3_length_max 1024 \
-enable_pgid 1 \
-pgid_value 1234 \
-l3_protocol ipv6 \
-ipv6_src_addr $c_network1 \
-ipv6_src_mode fixed \
-ipv6_dst_addr $pe_adv_network \
-ipv6_dst_mode fixed \
-mac_dst_mode discovery \
-vlan enable \
-vlan_id 901 \
-vlan_id_mode fixed ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

#############################################
# Start traffic on CE port #
#############################################
# Clear stats before sending traffic
set clear_stats_status [ixia::traffic_control \
-port_handle "$pe_port $ce_port" \
-action clear_stats ]
if {[keylget clear_stats_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget clear_stats_status log]"
}

set traffic_status [::ixia::traffic_control \


-port_handle $ce_port \
-action sync_run ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

after 40000

#############################################
# Stop traffic on CE port #
#############################################
set traffic_status [::ixia::traffic_control \
-port_handle $ce_port \
-action stop ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

after 5000

A-60 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

#############################################
# Print traffic stats #
#############################################
set ce_stats [ixia::traffic_stats -port_handle $ce_port -mode aggregate]
if {[keylget ce_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget ce_stats log]"
}

set ce_transmit [keylget ce_stats $ce_port.aggregate.tx.pkt_count]

set pe_stats [ixia::traffic_stats -port_handle $pe_port -packet_group_id 1234]


if {[keylget pe_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pe_stats log]"
}

set pe_receive [keylget pe_stats $pe_port.pgid.rx.pkt_count.1234]

puts " Sent Received"


puts "-------------------------------------------------------"
puts [format "Frames %12s %12s" \
$ce_transmit $pe_receive]

HLTAPI Commands, Release 2.80 Rev. B A-61


A IxNetwork/IxRouter Examples

OSPFv2 (OSPFv2_router_control.tcl)
################################################################################
# #
# Description: #
# This sample creates two OSPFv2 routers on two different ports. On the #
# first router it configures a router behind the session router. Then it #
# starts the routers on both ports. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1 10/2]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser]

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

set port_tx [lindex $port_handle 0]


set port_rx [lindex $port_handle 1]

########################################
# Configure interface in the test #
# #
# IPv4 #
########################################
set interface_status [::ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 1 \
-duplex full \
-speed ether1000]

if {[keylget interface_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

#################################################
# #
# Configure n OSPFv2 neighbors #
# #
#################################################

#### TX Port ####


set ospf_neighbor_status [ixia::emulation_ospf_config \
-port_handle $port_tx \
-reset \
-session_type ospfv2 \
-mode create \
-count 1 \
-mac_address_init 1000.0000.0001 \
-intf_ip_addr 100.1.1.1 \
-intf_ip_addr_step 0.0.1.0 \

A-62 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-router_id 1.1.1.1 \
-router_id_step 0.0.1.0 \
-neighbor_intf_ip_addr 100.1.1.2 \
-neighbor_intf_ip_addr_step 0.0.1.0 \
-vlan_id_step 5 \
-area_id 0.0.0.1 \
-area_id_step 0.0.0.1 \
-area_type external-capable \
-authentication_mode null \
-dead_interval 222 \
-hello_interval 333 \
-interface_cost 55 \
-lsa_discard_mode 1 \
-mtu 670 \
-network_type ptop \
-demand_circuit 1]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

set session_handle [keylget ospf_neighbor_status handle]

######################################################
# #
# Configure a single router behind a session router #
# #
######################################################
set route_config_status [::ixia::emulation_ospf_topology_route_config\
-mode create \
-handle $session_handle \
-type router \
-router_id 123.1.1.1 \
-router_abr 1 \
-router_asbr 1 \
-router_te 1 \
-interface_ip_address 22.0.0.1 \
-interface_ip_mask 255.255.0.0 \
]

if {[keylget route_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget route_config_status log]"
}

#### RX Port ####


set ospf_neighbor_status [ixia::emulation_ospf_config \
-port_handle $port_rx \
-reset \
-session_type ospfv2 \
-mode create \
-count 1 \
-mac_address_init 1000.0000.0002 \
-intf_ip_addr 100.1.1.2 \
-intf_ip_addr_step 0.0.1.0 \
-router_id 7.7.7.7 \
-router_id_step 0.0.1.0 \
-neighbor_intf_ip_addr 100.1.1.1 \
-neighbor_intf_ip_addr_step 0.0.1.0 \
-vlan_id_step 5 \
-area_id 0.0.0.1 \
-area_id_step 0.0.0.1 \
-area_type external-capable \
-authentication_mode null \
-dead_interval 222 \
-hello_interval 333 \
-interface_cost 55 \
-lsa_discard_mode 0 \

HLTAPI Commands, Release 2.80 Rev. B A-63


A IxNetwork/IxRouter Examples

-mtu 670 \
-network_type ptop \
-demand_circuit 1]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

#################################################
# #
# Start OSPFv2 neighbors #
# #
#################################################
set ospf_neighbor_status [ixia::emulation_ospf_control \
-handle $session_handle \
-port_handle $port_handle \
-mode start \
]

if {[keylget ospf_neighbor_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-64 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

OSPFv3 (OSPFv3_lsa_create_router.tcl)
################################################################################
# #
# Description: #
# This sample calls: #
# ::ixia::connect to connect to the chassis, reset to factory defaults #
# and take ownership. Configure interface in the test #
# #
# ::ixia::interface_config to configure interface in the test #
# #
# ::ixia::emulation_ospf_config to configure n OSPFv3 neighbors #
# #
# ::ixia::emulation_ospf_lsa_config to configure a Router LSA #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1 10/2]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser]

if {[keylget connect_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}
set port_tx [lindex $port_handle 0]
set port_rx [lindex $port_handle 1]

########################################
# Configure interface in the test #
# #
# IPv4 #
########################################
set interface_status [::ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 0 \
-duplex full \
-speed ether100]

if {[keylget interface_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

#################################################
# #
# Configure n OSPFv3 neighbors #
# #
#################################################

set ospf_neighbor_status [ixia::emulation_ospf_config \


-port_handle $port_tx \
-reset \
-session_type ospfv3 \
-mode create \

HLTAPI Commands, Release 2.80 Rev. B A-65


A IxNetwork/IxRouter Examples

-count 10 \
-intf_ip_addr 30::1 \
-intf_ip_addr_step 0:0:0:1::0 \
-router_id 30.1.1.1 \
-router_id_step 0.0.1.0 \
-instance_id 100 \
-instance_id_step 5 \
-vlan 1 \
-vlan_id 1000 \
-vlan_id_mode increment \
-vlan_id_step 2 \
-area_id 0.0.0.1 \
-area_id_step 0.0.0.1 \
-dead_interval 60 \
-hello_interval 20 \
-interface_cost 55 \
-lsa_discard_mode 1 \
-mtu 1500 \
-network_type broadcast \
-demand_circuit 1 ]

if {[keylget ospf_neighbor_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_neighbor_status log]"
}

#################################################
# #
# Create Router LSA #
# #
#################################################

# Extract the OSPF router handle


set ospf_handle_list [keylget ospf_neighbor_status handle]
foreach ospf_handle $ospf_handle_list {
set ospf_lsa_status [ixia::emulation_ospf_lsa_config \
-mode create \
-handle $ospf_handle \
-type router \
-adv_router_id 101.0.0.1 \
-link_state_id 202.0.0.1 \
-options 255 \
-router_abr 1 \
-router_asbr 1 \
-router_virtual_link_endpt 0 \
-router_link_mode create \
-router_link_id 0.0.0.10 \
-router_link_data 33.0.0.1 \
-router_link_type ptop \
-router_link_metric 100 ]

if {[keylget ospf_lsa_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_lsa_status log]"
}

set lsa_handle [keylget ospf_lsa_status lsa_handle]


set ospf_lsa_status [ixia::emulation_ospf_lsa_config \
-mode modify \
-handle $ospf_handle \
-lsa_handle $lsa_handle \
-adv_router_id 77.0.0.1 \
-link_state_id 88.0.0.1 ]

if {[keylget ospf_lsa_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget ospf_lsa_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-66 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

PIM (PIM_control.tcl)
################################################################################
# #
# Description: #
# This sample creates four PIM routers on two ports, starts, stops and #
# restarts the routers. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 2/3 2/4]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

##############################################################################
# Configure interface in the test
# IPv4
##############################################################################
set interface_status [::ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

set port1_handle [lindex $port_handle 0]


set port2_handle [lindex $port_handle 1]

##############################################################################
# Configure a PIM neighbor
##############################################################################
set pim_config_status [::ixia::emulation_pim_config \
-mode create \
-reset \
-port_handle $port1_handle \
-count 2 \
-ip_version 4 \
-intf_ip_addr 3.3.3.100 \
-intf_ip_addr_step 0.0.1.0 \
-intf_ip_prefix_length 24 \
-router_id 11.0.0.1 \
-router_id_step 0.0.0.1 \
-neighbor_intf_ip_addr 22.0.0.1 \
-dr_priority 10 \
-bidir_capable 0 \
-hello_interval 30 \
-hello_holdtime 40 \
-join_prune_interval 50 \

HLTAPI Commands, Release 2.80 Rev. B A-67


A IxNetwork/IxRouter Examples

-join_prune_holdtime 60 \
-prune_delay_enable 1 \
-prune_delay 600 \
-override_interval 700 \
-vlan 1 \
-vlan_id 300 \
-vlan_id_mode increment \
-vlan_id_step 2 \
-vlan_user_priority 7 \
-mac_address_init 0000.0000.0001 \
-gateway_intf_ip_addr 3.3.3.1 \
-gateway_intf_ip_addr_step 0.0.1.0 \
-prune_delay_tbit 1 \
-send_generation_id 1 \
-generation_id_mode random \
-writeFlag nowrite ]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}
set port1_session_handle [lindex [keylget pim_config_status handle] 0]

set pim_config_status [::ixia::emulation_multicast_source_config \


-mode create \
-num_sources 1 \
-ip_addr_start 101.0.0.1 \
-ip_addr_step 0.0.0.1 \
-ip_prefix_len 24 \
]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}

set source_pool_handle [keylget pim_config_status handle]

set pim_config_status [::ixia::emulation_multicast_group_config \


-mode create \
-num_groups 1 \
-ip_addr_start 225.0.0.1 \
-ip_addr_step 0.0.0.1 \
-ip_prefix_len 24 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set group_pool_handle [keylget pim_config_status handle]

set pim_config_status [::ixia::emulation_pim_group_config \


-mode create \
-session_handle $port1_session_handle \
-group_pool_handle $group_pool_handle \
-source_pool_handle $source_pool_handle \
-rp_ip_addr 44.0.0.1 \
-group_pool_mode send \
-join_prune_aggregation_factor 10 \
-wildcard_group 1 \
-s_g_rpt_group 0 \
-rate_control 1 \
-interval 100 \
-join_prune_per_interval 99 \
-register_per_interval 101 \
-register_stop_per_interval 102 \
-flap_interval 999 \
-spt_switchover 0 \
-source_group_mapping one_to_one \
-switch_over_interval 200 \
]

A-68 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set port1_group_member_handle [lindex [keylget pim_config_status handle] 0]

set pim_config_status [::ixia::emulation_pim_group_config \


-mode create \
-session_handle $port1_session_handle \
-group_pool_handle $group_pool_handle \
-source_pool_handle $source_pool_handle \
-rp_ip_addr 33.0.0.1 \
-group_pool_mode register \
-register_tx_iteration_gap 100 \
-register_udp_destination_port 44 \
-register_udp_source_port 55 \
-register_triggered_sg 0 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set pim_config_status [::ixia::emulation_pim_config \


-mode create \
-reset \
-port_handle $port2_handle \
-pim_mode sm \
-type remote_rp \
-count 2 \
-ip_version 4 \
-intf_ip_addr 3.3.3.1 \
-intf_ip_addr_step 0.0.1.0 \
-intf_ip_prefix_length 24 \
-router_id 12.0.0.1 \
-router_id_step 0.0.0.1 \
-neighbor_intf_ip_addr 22.0.0.1 \
-dr_priority 10 \
-bidir_capable 0 \
-hello_interval 30 \
-hello_holdtime 40 \
-join_prune_interval 50 \
-join_prune_holdtime 60 \
-prune_delay_enable 1 \
-prune_delay 600 \
-override_interval 700 \
-vlan 1 \
-vlan_id 300 \
-vlan_id_mode increment \
-vlan_id_step 2 \
-vlan_user_priority 7 \
-mac_address_init 0000.0000.0003 \
-gateway_intf_ip_addr 3.3.3.100 \
-gateway_intf_ip_addr_step 0.0.1.0 \
-prune_delay_tbit 1 \
-send_generation_id 1 \
-generation_id_mode random \
-writeFlag nowrite ]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}

set port2_session_handle [lindex [keylget pim_config_status handle] 0]

###############################################################
# Start the first PIM router per port. The second PIM router
# is enabled by default.
###############################################################
set pim_config_status [::ixia::emulation_pim_control \
-mode start \
-handle $port1_session_handle \
-flap_interval 300 \
-flap 1 \
]

HLTAPI Commands, Release 2.80 Rev. B A-69


A IxNetwork/IxRouter Examples

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set pim_config_status [::ixia::emulation_pim_control \


-mode start \
-handle $port2_session_handle \
]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}

#########################################################
# Stop the first PIM router per port
#########################################################
set pim_config_status [::ixia::emulation_pim_control \
-mode stop \
-handle $port1_session_handle \
-flap_interval 200 \
-flap 0 \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set pim_config_status [::ixia::emulation_pim_control \


-mode stop \
-handle $port2_session_handle \
]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}

#########################################################
# Stop PIM protocol on port_handle
#########################################################
set pim_config_status [::ixia::emulation_pim_control \
-mode stop \
-port_handle $port1_handle \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set pim_config_status [::ixia::emulation_pim_control \


-mode stop \
-port_handle $port2_handle \
]
if {[keylget pim_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget pim_config_status log]"
}

#########################################################
# Restart PIM protocol on port_handle
#########################################################
set pim_config_status [::ixia::emulation_pim_control \
-mode restart \
-port_handle $port1_handle \
]

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}

set pim_config_status [::ixia::emulation_pim_control \


-mode restart \
-port_handle $port2_handle \
]

A-70 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

if {[keylget pim_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pim_config_status log]"
}
return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-71


A IxNetwork/IxRouter Examples

RIP (RIP_route_advertise_withdraw.tcl)
################################################################################
# #
# Description: #
# This sample creates RIPv1, RIPv2 and RIPng routers and adds route ranges #
# to each router. Then it withdraws and advertises all route ranges. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list1 10/1
set port_list2 10/2
set port_list3 10/3

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list1 \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle1 [keylget connect_status port_handle.$chassisIP.$port_list1]

########################################
# Configure interface in the test #
# IPv4 #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle1 \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}
####################################################
# Configure interfaces and create RIP v1 sessions #
####################################################
set rip_status [ixia::emulation_rip_config \
-port_handle $port_handle1 \
-mode create \
-session_type ripv1 \
-reset \
-count 3 \
-intf_ip_addr 10.41.1.2 \
-neighbor_intf_ip_addr 10.41.1.1 \
-intf_prefix_length 24 \
-update_interval 50 \
-update_interval_offset 5 \
-update_mode no_horizon \
-mac_address_init 0000.0000.0001]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
set ripv1_routers [keylget rip_status handle]
set ripv1_route_ranges [list ]
set i 20

A-72 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

# Creates 2 route ranges for each router => a total of 6 route ranges
foreach ripv1_router $ripv1_routers {
# Create first route range
set rip_status [ixia::emulation_rip_route_config \
-handle $ripv1_router \
-mode create \
-reset \
-num_prefixes 5 \
-prefix_start $i.0.0.0 \
-prefix_length 8 \
-metric 2 \
]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripv1_route_ranges [keylget rip_status route_handle]
# Create second route range
set rip_status [ixia::emulation_rip_route_config \
-handle $ripv1_router \
-mode create \
-num_prefixes 5 \
-prefix_start [mpexpr $i + 5].0.0.0 \
-prefix_length 8 \
-metric 2 \
]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripv1_route_ranges [keylget rip_status route_handle]
incr i 10
}

set ripv1_list [lrange $ripv1_route_ranges 2 4]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list2 \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle2 [keylget connect_status port_handle.$chassisIP.$port_list2]

########################################
# Configure interface in the test #
# IPv4 #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle2 \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]
###################################################
# Configure interfaces and create RIPv2 sessions #
###################################################
set rip_status [ixia::emulation_rip_config \
-port_handle $port_handle2 \
-mode create \
-reset \
-intf_ip_addr 10.42.1.2 \
-neighbor_intf_ip_addr 10.42.1.1 \
-intf_prefix_length 24 \
-update_interval 50 \
-update_interval_offset 5 \
-update_mode poison_reverse \
-authentication_mode text \
-password abcde \
-send_type broadcast_v2 \
-receive_type v1_v2 \
-count 3 \
-mac_address_init 0000.0000.0004 ]

HLTAPI Commands, Release 2.80 Rev. B A-73


A IxNetwork/IxRouter Examples

if {[keylget rip_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget rip_status log]"
}

set ripv2_routers [keylget rip_status handle]

set ripv2_route_ranges [list ]


set i 100
foreach ripv2_router $ripv2_routers {
# Create first route range
set rip_status [ixia::emulation_rip_route_config \
-handle $ripv2_router \
-mode create \
-reset \
-num_prefixes 5 \
-prefix_start $i.10.0.0 \
-prefix_length 16 \
-metric 2 \
-next_hop 10.42.1.[mpexpr $i + 1] \
]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripv2_route_ranges [keylget rip_status route_handle]

# Create second route range


set rip_status [ixia::emulation_rip_route_config \
-handle $ripv2_router \
-mode create \
-num_prefixes 5 \
-prefix_start [mpexpr $i + 5].10.0.0 \
-prefix_length 16 \
-metric 2 \
-route_tag 100 \
-next_hop 10.42.1.[mpexpr $i + 50] \
]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripv2_route_ranges [keylget rip_status route_handle]
incr i
}

set ripv2_list [lrange $ripv2_route_ranges 2 4]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list3 \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle3 [keylget connect_status port_handle.$chassisIP.$port_list3]

########################################
# Configure interface in the test #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle3 \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]

###################################################
# Configure interfaces and create RIPng sessions #
###################################################

set ripng_status [ixia::emulation_rip_config \


-port_handle $port_handle3 \
-mode create \
-reset \

A-74 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

-session_type ripng \
-intf_ip_addr 30:30:30:30:1:1:1:1 \
-intf_prefix_length 64 \
-update_interval 50 \
-update_interval_offset 5 \
-update_mode no_horizon \
-receive_type store \
-interface_metric 2 \
-time_period 100 \
-num_routes_per_period 10 \
-router_id 20 \
-router_id_step 10 \
-count 3 \
-mac_address_init 0000.0000.0007]
if {[keylget ripng_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget ripng_status log]"
}

set ripng_routers [keylget ripng_status handle]

set ripng_route_ranges [list ]


set i 5

# Creates three route ranges for each router => a total of 9 routes
foreach ripng_router $ripng_routers {
# Create first route range
set rip_status [ixia::emulation_rip_route_config \
-handle $ripng_router \
-mode create \
-reset \
-num_prefixes 5 \
-prefix_start 10:$i:0:0:0:0:0:0 \
-prefix_length 32 \
-prefix_step 0:1000:0:0:0:0:0:0 \
-metric 2 \
-next_hop FE80:0:0:0:$i:$i:$i:$i \
]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripng_route_ranges [keylget rip_status route_handle]
# Create second route range
set rip_status [ixia::emulation_rip_route_config \
-handle $ripng_router \
-mode create \
-num_prefixes 5 \
-prefix_start 20:20:$i:$i:0:0:0:0 \
-prefix_length 64 \
-metric 2 \
-route_tag 100 \
-next_hop FE81:0:0:0:$i:$i:$i:$i \
]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripng_route_ranges [keylget rip_status route_handle]

# Create third route range


set rip_status [ixia::emulation_rip_route_config \
-handle $ripng_router \
-mode create \
-num_prefixes 5 \
-prefix_start 30:30:$i:0:0:0:0:0 \
-prefix_length 48 \
-metric 2 \
-route_tag 100 \
-next_hop FE82:0:0:0:$i:$i:$i:$i \
]

HLTAPI Commands, Release 2.80 Rev. B A-75


A IxNetwork/IxRouter Examples

if {[keylget rip_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget rip_status log]"
}
lappend ripng_route_ranges [keylget rip_status route_handle]

incr i
}

set ripng_list [lrange $ripng_route_ranges 2 6]

set rip_routes_list [concat \


$ripv1_list \
$ripv2_list \
$ripng_list ]

# Withdraw route ranges


set rip_status [ixia::emulation_rip_control -withdraw $rip_routes_list]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}

# Advertise route ranges


set rip_status [ixia::emulation_rip_control -advertise $rip_routes_list]
if {[keylget rip_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rip_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-76 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

RSVP (RSVP_tunnel_info.tcl)
################################################################################
# #
# Description: #
# This sample creates two RSVP neighbors on two different ports. One is #
# configured as Ingress LSR, the other as Egress LSR. Then the emulated #
# neighbors are started and tunnel info is displayed. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 10/1 10/2]

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

set ingress_port [lindex $port_handle 0]


set egress_port [lindex $port_handle 1]
##############################################################################
# Configure interface in the test
# IPv4
##############################################################################
set interface_status [::ixia::interface_config \
-port_handle $port_handle \
-autonegotiation 0 \
-duplex full \
-speed ether100 ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

##############################################################################
# Configure a RSVP neighbor on ingress_port
##############################################################################
set rsvp_config_status [::ixia::emulation_rsvp_config \
-mode create \
-reset \
-port_handle $ingress_port \
-count 1 \
-refresh_reduction 0 \
-reliable_delivery 0 \
-bundle_msgs 0 \
-hello_msgs 1 \
-hello_interval 200 \
-hello_retry_count 4 \
-refresh_interval 200 \
-srefresh_interval 300 \
-egress_label_mode nextlabel \
-path_state_refresh_timeout 77 \
-path_state_timeout_count 5 \
-record_route 1 \

HLTAPI Commands, Release 2.80 Rev. B A-77


A IxNetwork/IxRouter Examples

-resv_confirm 1 \
-resv_state_timeout_count 5 \
-resv_state_refresh_timeout 5 \
-min_label_value 20 \
-max_label_value 30 \
-vlan 1 \
-vlan_id 300 \
-vlan_id_mode fixed \
-vlan_id_step 2 \
-mac_address_init 0000.0000.0001 \
-intf_prefix_length 24 \
-ip_version 4 \
-intf_ip_addr 3.3.3.100 \
-intf_ip_addr_step 0.0.1.0 \
-neighbor_intf_ip_addr 3.3.3.1 \
-neighbor_intf_ip_addr_step 0.0.1.0 ]
if {[keylget rsvp_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rsvp_config_status log]"
}

set rsvp_handle_list [keylget rsvp_config_status handles]


set ingress_handle [lindex $rsvp_handle_list 0]

##############################################################################
# Configure a RSVP neighbor on ingress_port
##############################################################################
set rsvp_config_status [::ixia::emulation_rsvp_config \
-mode create \
-reset \
-port_handle $egress_port \
-count 1 \
-refresh_reduction 0 \
-reliable_delivery 0 \
-bundle_msgs 0 \
-hello_msgs 1 \
-hello_interval 200 \
-hello_retry_count 4 \
-refresh_interval 200 \
-srefresh_interval 300 \
-egress_label_mode nextlabel \
-path_state_refresh_timeout 77 \
-path_state_timeout_count 5 \
-record_route 1 \
-resv_confirm 1 \
-resv_state_timeout_count 5 \
-resv_state_refresh_timeout 5 \
-min_label_value 20 \
-max_label_value 30 \
-vlan 1 \
-vlan_id 300 \
-vlan_id_mode fixed \
-vlan_id_step 2 \
-mac_address_init 0000.0000.0002 \
-intf_prefix_length 24 \
-ip_version 4 \
-intf_ip_addr 3.3.3.1 \
-intf_ip_addr_step 0.0.1.0 \
-neighbor_intf_ip_addr 3.3.3.100 \
-neighbor_intf_ip_addr_step 0.0.1.0 ]
if {[keylget rsvp_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rsvp_config_status log]"
}

set rsvp_handle_list [keylget rsvp_config_status handles]


set egress_handle [lindex $rsvp_handle_list 0]

A-78 HLTAPI Commands, Release 2.80 Rev. B


IxNetwork/IxRouter Examples

################################################################################
# Configure a RSVP Destination Range along with Sender Range
# handle - retured from the previous call
# rsvp_behavior - rsvpIngress
################################################################################

set handleList [list]


set egress_ip_addr 2.2.2.100
set sender_ip_addr 4.4.4.100
set rro_ipv4_list {101.0.0.1 202.0.0.1}
set rro_label_list {11 22}
set rro_ctype_list {33 44}
set rro_flags_list {9 12}
set ero_ipv4_list {33.0.0.1 44.0.0.1}
set ero_as_num_list {33 44}
set ero_flags_list {9 11}
set ero_pfxlen_list {1 1}
set ero_loose_list {1 0}

# Add numDests Destination Ranges


set rsvp_tunnel_config_status [::ixia::emulation_rsvp_tunnel_config \
-mode create \
-handle $ingress_handle \
-rsvp_behavior rsvpIngress \
-count 3 \
-egress_ip_addr $egress_ip_addr \
-egress_ip_step 0.1.0.0 \
-ingress_ip_addr $sender_ip_addr \
-ingress_ip_step 0.1.0.0 \
-ingress_bandwidth 1000 \
-sender_tspec_token_bkt_rate 10 \
-sender_tspec_token_bkt_size 10 \
-sender_tspec_peak_data_rate 10 \
-sender_tspec_min_policed_size 5 \
-sender_tspec_max_pkt_size 580 \
-session_attr_bw_protect 1 \
-session_attr_se_style 1 \
-session_attr_local_protect 1 \
-session_attr_label_record 0 \
-session_attr_setup_priority 2 \
-session_attr_hold_priority 2 \
-session_attr_resource_affinities 1 \
-session_attr_ra_include_all 0x11223344 \
-lsp_id_start 100 \
-tunnel_id_start 5 \
-tunnel_id_count 2 \
-tunnel_id_step 10 \
-ero_mode loose \
-ero_dut_pfxlen 16 \
-rro 1 \
-rro_list_type label \
-rro_list_ipv4 $rro_ipv4_list \
-rro_list_label $rro_label_list \
-rro_list_flags $rro_flags_list \
-rro_list_ctype $rro_ctype_list \
-ero 1 \
-ero_list_type as \
-ero_list_loose $ero_loose_list \
-ero_list_ipv4 $ero_ipv4_list \
-ero_list_pfxlen $ero_pfxlen_list\
-ero_list_as_num $ero_as_num_list\
-fast_reroute 1 \
-fast_reroute_bandwidth 1000 \
-fast_reroute_exclude_any aabbccdd \
-fast_reroute_holding_priority 1 \
-fast_reroute_hop_limit 5 \
-fast_reroute_setup_priority 7 \
-one_to_one_backup 1 \
-send_detour 1 \
-plr_id 11.0.0.1 \
-avoid_node_id 22.0.0.1 \
-session_attr_name MyAttr ]

HLTAPI Commands, Release 2.80 Rev. B A-79


A IxNetwork/IxRouter Examples

if {[keylget rsvp_tunnel_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget rsvp_tunnel_config_status log]"
}

lappend handleList [keylget rsvp_tunnel_config_status tunnel_handle]

set rsvp_tunnel_config_status [::ixia::emulation_rsvp_tunnel_config \


-mode create \
-handle $egress_handle \
-rsvp_behavior rsvpEgress \
-count 3 \
-egress_ip_addr $egress_ip_addr \
-egress_ip_step 0.1.0.0 ]
if {[keylget rsvp_tunnel_config_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rsvp_tunnel_config_status log]"
}

set rsvp_control_status [::ixia::emulation_rsvp_control\


-mode start \
-port_handle $port_handle \
]

if {[keylget rsvp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget rsvp_control_status log]"
}

ixPuts "Wait for 2 seconds before getting the rsvp tunnelinfo"


ixia_sleep 2000
set rsvp_control_status [::ixia::emulation_rsvp_tunnel_info\
-port_handle $ingress_port \
-handle $ingress_handle \
]

if {[keylget rsvp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget rsvp_control_status log]"
}

puts "************** Tunnel Statistics ****************"


puts "total_lsp_count [keylget rsvp_control_status total_lsp_count]"
puts "inbound_lsp_count [keylget rsvp_control_status inbound_lsp_count]"
puts "outbound_lsp_count [keylget rsvp_control_status outbound_lsp_count]"
puts "outbound_up_count [keylget rsvp_control_status outbound_up_count]"
puts "outbound_down_count [keylget rsvp_control_status outbound_down_count]"
puts "label [keylget rsvp_control_status label]"

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-80 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

IxAccess Examples
IGMPoPPPoE (IGMPoPPPoE_traffic_mc_stats.tcl)
################################################################################
# #
# Description: #
# This sample configures a PPPoE tunnel with 5 sessions between the #
# SRC port and the DUT. Traffic is sent bidirectional. After that #
# multicast statistics are being retrieved. #
# #
# Module: #
# The sample was tested on a LM1000STXS4 module. #
# #
################################################################################

################################################################################
# DUT configuration: #
#
# conf t
# no aaa new-model
# vpdn enable
#
# # VPDN configuration 1:
# # # bba-group pppoe global
# # # virtual-template 27
# # # sessions per-vc limit 1000
# # # sessions per-mac limit 1000
# #
# # or
# #
# # VPDN configuration 2:
# vpdn-group 1
# accept-dialin
# protocol pppoe
# virtual-template 27
#
# ip multicast-routing
#
# ip local pool pppoe 16.16.16.2 16.16.16.254
#
# interface FastEthernet3/0
# no shut
# ip address 16.16.16.1 255.255.255.0
# ip pim dense-mode
# ip igmp version 2
# no ip route-cache cef
# no ip route-cache
# pppoe enable
# no shutdown
#
# interface FastEthernet4/0
# no shut
# ip address 18.18.18.1 255.255.255.0
# ip pim dense-mode
# ip igmp version 2
# no ip route-cache cef
# no ip route-cache
# no shutdown
#
# interface Virtual-Template27
# mtu 1492
# ip unnumbered FastEthernet3/0
# ip pim version 1
# ip pim dense-mode
# peer default ip address pool pppoe
# ppp ipcp address required
# no keepalive
# ppp max-bad-auth 20
# ppp timeout retry 10

HLTAPI Commands, Release 2.80 Rev. B A-81


A IxAccess Examples

#
# end
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 10.205.11.142


set port_list [list 2/3 2/4]
set sess_count 5

# Connect to the chassis, reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

set port_src_handle [lindex $port_handle 0]


set port_dst_handle [lindex $port_handle 1]

puts "Ixia port handles are $port_handle "

########################################
# Configure SRC interface in the test #
########################################
set interface_status [::ixia::interface_config \
-port_handle $port_src_handle \
-mode config \
-speed ether100 \
-phy_mode copper \
-autonegotiation 1 ]
if {[keylget interface_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

########################################
# Configure DST interface in the test #
########################################
set interface_status [::ixia::interface_config \
-port_handle $port_dst_handle \
-mode config \
-speed ether100 \
-phy_mode copper \
-autonegotiation 1 \
-intf_ip_addr 18.18.18.18 \
-gateway 18.18.18.1 \
-netmask 255.255.255.0 ]
if {[keylget interface_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

#########################################
# Configure sessions #
#########################################
set config_status [::ixia::pppox_config \
-port_handle $port_src_handle \
-protocol pppoe \
-encap ethernet_ii \
-num_sessions $sess_count \
-disconnect_rate 10 \

A-82 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

-auth_req_timeout 10 \
-enable_multicast 1 \
-mc_group_id testId001 \
-start_group_ip 227.7.7.7 \
-group_ip_count 2 \
-group_ip_step 0.1.0.0 \
-igmp_version IGMPv2 \
-watch_duration 60 ]

if {[keylget config_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget config_status log]"
}
set pppox_handle [keylget config_status handle]
puts "Ixia pppox_handle is $pppox_handle "

#########################################
# Connect sessions #
#########################################
set control_status [::ixia::pppox_control \
-handle $pppox_handle \
-action connect ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}
puts "Sessions going up..."

set pppoe_attempts 0
set pppoe_sessions_up 0
while {($pppoe_attempts < 5) && ($pppoe_sessions_up < $sess_count)} {
after 10000
set pppox_status [::ixia::pppox_stats \
-handle $pppox_handle \
-mode aggregate ]

if {[keylget pppox_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget pppox_status log]"
}
set aggregate_stats [keylget pppox_status aggregate]
set pppoe_sessions_up [keylget aggregate_stats sessions_up]
puts "pppoe_sessions_up=$pppoe_sessions_up"
incr pppoe_attempts
}

if {$pppoe_sessions_up < $sess_count} {


return "FAIL - $test_name - Not all sessions are up."
}

set traffic_status [::ixia::traffic_config \


-mode reset \
-port_handle $port_src_handle \
-emulation_src_handle $pppox_handle \
-ip_src_mode emulation ]

if {[keylget traffic_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget traffic_status log]"
}

set traffic_status [::ixia::traffic_config \


-mode reset \
-port_handle $port_dst_handle \
-emulation_dst_handle $pppox_handle \
-ip_dst_mode emulation ]

if {[keylget traffic_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget traffic_status log]"
}

#########################################
# Configure traffic #
#########################################
set traffic_status [::ixia::traffic_config \
-mode create \
-port_handle $port_src_handle \
-port_handle2 $port_dst_handle \

HLTAPI Commands, Release 2.80 Rev. B A-83


A IxAccess Examples

-bidirectional 1 \
-l3_protocol ipv4 \
-ip_src_mode emulation \
-ip_src_count $sess_count \
-emulation_src_handle $pppox_handle \
-ip_dst_mode fixed \
-ip_dst_addr 18.18.18.18 \
-l3_length 1000 \
-rate_percent 1 \
-transmit_mode continuous \
-mac_dst_mode discovery \
-ip_precedence 1 \
-ip_cost 0 \
-ip_delay 0 \
-ip_reliability 0 \
-ip_reserved 0 \
-ip_throughput 0 \
-enable_voice 1 \
-enable_data 1 \
-voice_tos 64 \
-data_tos 32 \
-duration 60 ]

if {[keylget traffic_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget traffic_status log]"
}

#########################################
# Clear traffic stats #
#########################################
set control_status [::ixia::traffic_control \
-port_handle $port_handle \
-action clear_stats ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}
puts "Starting to transmit traffic over tunnels..."

#########################################
# Start traffic #
#########################################
set control_status [::ixia::traffic_control \
-port_handle $port_handle \
-action run ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}

after 30000

#########################################
# Stop traffic #
#########################################
set control_status [::ixia::traffic_control \
-port_handle $port_handle \
-action stop ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}

#########################################
# Retrieve SRC aggregate traffic stats #
#########################################
set aggr_stats [::ixia::traffic_stats -port_handle $port_src_handle]
if {[keylget aggr_stats status] == $::FAILURE} {
return "FAIL - $test_name - [keylget aggr_stats log]"
}

set aggr_tx [keylget aggr_stats $port_src_handle.aggregate.tx.pkt_count ]


puts "Port $port_src_handle Tx count Results = $aggr_tx frames "

A-84 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

#########################################
# Retrieve DST aggregate traffic stats #
#########################################
set aggr_stats [::ixia::traffic_stats -port_handle $port_dst_handle]
if {[keylget aggr_stats status] == $::FAILURE} {
return "FAIL - $test_name - [keylget aggr_stats log]"
}

set aggr_rx [keylget aggr_stats $port_dst_handle.aggregate.rx.raw_pkt_count ]


puts "Port $port_dst_handle Rx count Results = $aggr_rx frames "

#########################################
# Retrieve aggregate session stats #
#########################################
set aggr_status [::ixia::pppox_stats \
-handle $pppox_handle \
-mode aggregate ]
if {[keylget aggr_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget aggr_status log]"
}

set sess_num [keylget aggr_status aggregate.num_sessions]


set sess_count_up [keylget aggr_status aggregate.connected]
set sess_min_setup [keylget aggr_status aggregate.min_setup_time]
set sess_max_setup [keylget aggr_status aggregate.max_setup_time]
set sess_avg_setup [keylget aggr_status aggregate.avg_setup_time]
puts "Ixia Test Results ... "
puts " Number of sessions = $sess_num "
puts " Number of connected sessions = $sess_count_up "
puts " Minimum Setup Time (ms) = $sess_min_setup "
puts " Maximum Setup Time (ms) = $sess_max_setup "
puts " Average Setup Time (ms) = $sess_avg_setup "

#########################################
# Retrieve multicast stats #
#########################################

# For best results, it is recomandable to use the entire port_handle.


# This is a requirement from IxAccess

set aggr_traffic_addr_stats [::ixia::traffic_stats \


-port_handle $port_handle\
-mode multicast \
-multicast_aggregationmc_address]
if {[keylget aggr_traffic_addr_stats status] == $::FAILURE} {
return "FAIL - $test_name - [keylget aggr_traffic_addr_stats log]"
}

set aggr_traffic_group_stats [::ixia::traffic_stats \


-port_handle $port_handle\
-mode multicast \
-multicast_aggregationmc_group]
if {[keylget aggr_traffic_group_stats status] == $::FAILURE} {
return "FAIL - $test_name - [keylget aggr_traffic_group_stats log]"
}

set aggr_traffic_tos_stats [::ixia::traffic_stats \


-port_handle $port_handle\
-mode multicast \
-multicast_aggregationtos ]
if {[keylget aggr_traffic_tos_stats status] == $::FAILURE} {
return "FAIL - $test_name - [keylget aggr_traffic_tos_stats log]"
}
puts "\n====Aggregate multicast stats by TOS====\n"
set tos_list [keylkeys aggr_traffic_tos_stats $port_src_handle.multicast.rx]
puts [format "%15s %15s %15s %15s %15s %15s" \
"tos |" \
"Packet count TX |" \
"Packet count RX |" \
"MIN delay (us)|" \
"MAX delay (us)|" \
"AVG delay (us)|" ]

HLTAPI Commands, Release 2.80 Rev. B A-85


A IxAccess Examples

foreach {_tos} $tos_list {


set key_rx $port_src_handle.multicast.rx.${_tos}
set key_tx $port_dst_handle.multicast.tx.${_tos}
puts [format "%13s %10s %17s %20s %20s %18s" \
$_tos \
[keylget aggr_traffic_tos_stats $key_tx.pkt_count] \
[keylget aggr_traffic_tos_stats $key_rx.pkt_count] \
[keylget aggr_traffic_tos_stats $key_rx.min_delay ] \
[keylget aggr_traffic_tos_stats $key_rx.max_delay ] \
[keylget aggr_traffic_tos_stats $key_rx.avg_delay ] ]
}
puts "\n====Aggregate multicast stats by Multicast Group ID====\n"

set group_list [keylkeys aggr_traffic_group_stats $port_src_handle.multicast.rx]

puts [format "%15s %15s %15s %15s %15s %15s" \


"Group Id |" \
"Packet count TX |" \
"Packet count RX |" \
"MIN delay (us)|" \
"MAX delay (us)|" \
"AVG delay (us)|" ]

foreach {_group} $group_list {


set key_rx $port_src_handle.multicast.rx.${_group}
set key_tx $port_dst_handle.multicast.tx.${_group}
puts [format "%13s %11s %16s %20s %20s %18s" \
$_group \
[keylget aggr_traffic_group_stats $key_tx.pkt_count] \
[keylget aggr_traffic_group_stats $key_rx.pkt_count] \
[keylget aggr_traffic_group_stats $key_rx.min_delay] \
[keylget aggr_traffic_group_stats $key_rx.max_delay] \
[keylget aggr_traffic_group_stats $key_rx.avg_delay] ]
}

puts "\n====Aggregate multicast stats by Multicast Address====\n"


set group_list [keylkeys aggr_traffic_addr_stats "$port_src_handle.multicast.rx"]

puts [format "%13s %11s %13s %15s %15s %15s %15s" \


"Group Id |" \
"Address |" \
"Packet count TX |" \
"Packet count RX |" \
"MIN delay (us)|" \
"MAX delay (us)|" \
"AVG delay (us)|" ]

foreach {_group} $group_list {


set addr_list [keylkeys aggr_traffic_addr_stats
"$port_src_handle.multicast.rx.$_group"]
puts [format "%11s" $_group]
foreach {_addr} $addr_list {
set key_rx "$port_src_handle.multicast.rx.$_group.${_addr}"
set key_tx "$port_dst_handle.multicast.tx.$_group.${_addr}"
puts [format "%23s %11s %16s %20s %20s %18s" \
$_addr \
[keylget aggr_traffic_addr_stats "$key_tx.pkt_count"] \
[keylget aggr_traffic_addr_stats "$key_rx.pkt_count"] \
[keylget aggr_traffic_addr_stats "$key_rx.min_delay"] \
[keylget aggr_traffic_addr_stats "$key_rx.max_delay"] \
[keylget aggr_traffic_addr_stats "$key_rx.avg_delay"] ]
}
}

#########################################
# Disconnect sessions #
#########################################
if {0} {
puts "Disconnecting $sess_count_up sessions. "
set control_status [::ixia::pppox_control \
-handle $pppox_handle \
-action disconnect ]
if {[keylget control_status status] != $::SUCCESS} {

A-86 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

return "FAIL - $test_name - [keylget control_status log]"


}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-87


A IxAccess Examples

L2PoE (L2TPoE_LNS_DUT_PPPoE_tos_traffic.tcl)
################################################################################
# #
# Description: #
# This sample configures a PPPoE tunnel with 100 sessions between the #
# first Ixia port and DUT , and 10 L2TP tunnels each with 10 sessions #
# between DUT and the other Ixia port. Traffic is sent between the two Ixia #
# ports. #
# Topology is the following: #
# #
# Access PPPoE L2TPoE Destination #
# Network -------- LAC (DUT) ---------- LNS ----------- Network #
# (Ixia Port1) (Cisco 7200) (Ixia Port2) (Ixia Port2) #
# #
# #
# Module: #
# The sample was tested on a LM1000STXS4 module. #
# #
################################################################################

################################################################################
# DUT configuration: #
# #
# no service pad
# service timestamps debug uptime
# service timestamps log uptime
# no service password-encryption
#
# aaa new-model
#
# aaa authentication login telnet enable
# aaa session-id common
# ip subnet-zero
# no ip gratuitous-arps
#
# ip cef
# vpdn enable
# vpdn ip udp ignore checksum
# vpdn search-order domain
#
# vpdn-group x00000
# request-dialin
# protocol l2tp
# domain x0
# initiate-to ip 12.80.0.2
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00001
# request-dialin
# protocol l2tp
# domain x1
# initiate-to ip 12.80.0.3
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00002
# request-dialin
# protocol l2tp
# domain x2
# initiate-to ip 12.80.0.4
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00003
# request-dialin
# protocol l2tp

A-88 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

# domain x3
# initiate-to ip 12.80.0.5
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00004
# request-dialin
# protocol l2tp
# domain x4
# initiate-to ip 12.80.0.6
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
#
# vpdn-group x00005
# request-dialin
# protocol l2tp
# domain x5
# initiate-to ip 12.80.0.7
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00006
# request-dialin
# protocol l2tp
# domain x6
# initiate-to ip 12.80.0.8
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00007
# request-dialin
# protocol l2tp
# domain x7
# initiate-to ip 12.80.0.9
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
#
# vpdn-group x00008
# request-dialin
# protocol l2tp
# domain x8
# initiate-to ip 12.80.0.10
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# vpdn-group x00009
# request-dialin
# protocol l2tp
# domain x9
# initiate-to ip 12.80.0.11
# local name lac
# l2tp tunnel password cisco
# l2tp tunnel timeout no-session 1
# exit
#
# bba-group pppoe global
# virtual-template 1
# exit
#
# interface FastEthernet3/0
# no ip address
# no ip mroute-cache
# duplex half
# pppoe enable group global

HLTAPI Commands, Release 2.80 Rev. B A-89


A IxAccess Examples

# no keepalive
# no shutdown
# exit
#
# interface FastEthernet5/0
# ip address 12.80.0.1 255.255.255.0
# no ip mroute-cache
# duplex half
# no keepalive
# no shutdown
# exit
#
# interface Virtual-Template1
# mtu 1458
# no ip address
# no logging event link-status
# no snmp trap link-status
# no keepalive
# ppp max-bad-auth 10
# ppp mtu adaptive
# ppp authentication chap pap
# ppp timeout retry 15
# ppp timeout authentication 15
# exit
#
# ip classless
# no ip http server
#
# line vty 0 16
# login authentication telnet
#
# end
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 4/2 4/4]

set session_count 100


set tunnel_count 10
set sessions_per_tunnel [expr $session_count / $tunnel_count]

# Connect to the chassis, reset to factory defaults and take ownership


set connect_status [::ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [list]


foreach port $port_list {
if {![catch {keylget connect_status port_handle.$chassisIP.$port} \
temp_port]} {
lappend port_handle $temp_port
}
}

set access_port [lindex $port_handle 0]


set network_port [lindex $port_handle 1]

A-90 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

################################################################################
# Configure access interface in the test
################################################################################
set interface_status [::ixia::interface_config \
-port_handle $access_port \
-mode config \
-speed ether100 \
-duplex half \
-phy_mode copper \
-autonegotiation 0 ]
if {[keylget interface_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

################################################################################
# Configure network interfaces in the test (one for each tunnel)
################################################################################
set port_handle_list ""
set intf_ip_addr_list ""
set gateway_list ""
set speed_list ""
set duplex_list ""
set auto_list ""
set phy_mode_list ""
set netmask_list ""
set src_mac_addr_list ""

for {set i 2} {$i <= [expr $tunnel_count + 1]} {incr i} {


lappend port_handle_list $network_port
lappend intf_ip_addr_list 12.80.0.$i
lappend gateway_list 12.80.0.1
lappend speed_list ether100
lappend duplex_list half
lappend phy_mode_list copper
lappend auto_list 0
lappend netmask_list 255.255.255.0
lappend src_mac_addr_list 00cd.00cd.[format "%04x" $i]
}

set interface_status [::ixia::interface_config \


-port_handle $port_handle_list \
-mode config \
-speed $speed_list \
-duplex $duplex_list \
-phy_mode $phy_mode_list \
-autonegotiation $auto_list \
-intf_ip_addr $intf_ip_addr_list \
-gateway $gateway_list \
-netmask $netmask_list \
-src_mac_addr $src_mac_addr_list]

if {[keylget interface_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget interface_status log]"
}

################################################################################
# Configure PPPoE on access port
################################################################################
# Each tunnel will have a corresponding domain x0 - x9
# Users will be cisco@x1 - cisco@x9
set ppp_domain_group {{{x% 1 0 9 1} {}}}
set config_status [::ixia::pppox_config \
-port_handle $access_port \
-protocol pppoe \
-encap ethernet_ii \
-num_sessions $session_count \
-disconnect_rate 10 \
-auth_req_timeout 10 \
-auth_mode chap \
-username cisco \
-password cisco \
-domain_group_map $ppp_domain_group ]

HLTAPI Commands, Release 2.80 Rev. B A-91


A IxAccess Examples

if {[keylget config_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget config_status log]"
}
set pppox_handle [keylget config_status handle]
puts "PPPoE handle is $pppox_handle "

################################################################################
# Configure L2TP on network port
################################################################################
# Each tunnel will have a corresponding domain x0 - x9
# Users will be cisco@x1 - cisco@x9
set l2tp_domain_group {{{x% 1 0 9 1} {}}}
set l2tp_status [::ixia::l2tp_config \
-port_handle $network_port \
-mode lns \
-l2_encap ethernet_ii \
-num_tunnels $tunnel_count \
-l2tp_src_addr 12.80.0.2 \
-l2tp_dst_addr 12.80.0.1 \
-sessions_per_tunnel $sessions_per_tunnel \
-l2tp_src_count $tunnel_count \
-l2tp_src_step 0.0.0.1 \
-l2tp_dst_step 0.0.0.0 \
-udp_src_port 1701 \
-udp_dst_port 1701 \
-tunnel_id_start 1 \
-session_id_start 1 \
-ppp_client_ip 54.0.0.2 \
-ppp_client_step 0.0.0.1 \
-ppp_server_ip 54.0.0.1 \
-tun_auth \
-hostname lac \
-secret cisco \
-tun_distribution next_tunnelfill_tunnel \
-domain_group_map $l2tp_domain_group \
-auth_mode chap \
-username cisco \
-password cisco \
-attempt_rate 10 ]

if {[keylget l2tp_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget l2tp_status log]"
}
set l2tp_handle [keylget l2tp_status handle]
puts "L2TP handle is $l2tp_handle "

################################################################################
# Connect sessions
################################################################################
set control_status [::ixia::pppox_control \
-handle $pppox_handle \
-action connect ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}

set control_status [::ixia::l2tp_control \


-handle $l2tp_handle \
-action connect ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}

puts "Waiting for sessions and tunnels to establish ..."

################################################################################
# Get PPPoE session aggregate statistics
################################################################################
set pppoe_attempts 0
set pppoe_sessions_up 0

A-92 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

while {($pppoe_attempts < 20) && ($pppoe_sessions_up < $session_count)} {


after 10000
set pppox_status [::ixia::pppox_stats \
-handle $pppox_handle \
-mode aggregate ]

if {[keylget pppox_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget pppox_status log]"
}
set aggregate_stats [keylget pppox_status aggregate]
set pppoe_sessions_up [keylget aggregate_stats sessions_up]
incr pppoe_attempts
}

set statList {
idle
connecting
num_sessions
connected
connect_success
sessions_up
success_setup_rate
min_setup_time
max_setup_time
avg_setup_time
}
puts "\n"
puts [format "%-41s" "[string repeat * 14] PPPoE STATS [string repeat * 14]"]
puts ""
puts [format "%-30s %-10s" Statistic Value]
puts [format "%-41s" [string repeat "-" 41]]
foreach {key} $statList {
if {![catch {keylget aggregate_stats $key}]} {
puts [format "%-30s %-10d" $key [keylget aggregate_stats $key]]
}

################################################################################
# Get L2TP session/tunnel aggregate statistics
################################################################################
set l2tp_attempts 0
set l2tp_tunnels_up 0
while {($l2tp_attempts < 20) && ($l2tp_tunnels_up < $tunnel_count)} {
after 10000
set l2tp_status [::ixia::l2tp_stats \
-handle $l2tp_handle \
-mode aggregate ]

if {[keylget l2tp_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget l2tp_status log]"
}
set aggregate_stats [keylget l2tp_status aggregate]
set l2tp_tunnels_up [keylget aggregate_stats tunnels_up]
incr l2tp_attempts
}

set statList {
idle
connecting
num_sessions
connected
connect_success
sessions_up
tunnels_up
tunnels_neg
success_setup_rate
min_setup_time
max_setup_time
avg_setup_time
}
puts "\n"
puts [format "%-41s" "[string repeat * 14] L2TPoE STATS [string repeat * 13]"]
puts ""

HLTAPI Commands, Release 2.80 Rev. B A-93


A IxAccess Examples

puts [format "%-30s %-10s" Statistic Value]


puts [format "%-41s" [string repeat "-" 41]]
foreach {key} $statList {
if {![catch {keylget aggregate_stats $key}]} {
puts [format "%-30s | %-10d" $key [keylget aggregate_stats $key]]
}
}
################################################################################
# Configure bidirectional traffic on access and network ports
################################################################################
set traffic_status [::ixia::traffic_config \
-mode create \
-port_handle $access_port \
-port_handle2 $network_port \
-bidirectional 1 \
-l3_protocol ipv4 \
-ip_src_mode emulation \
-emulation_src_handle $pppox_handle \
-ip_src_count $session_count \
-ip_dst_mode emulation \
-emulation_dst_handle $l2tp_handle \
-ip_dst_count $tunnel_count \
-l3_length 1000 \
-rate_percent 5 \
-transmit_mode continuous ]

if {[keylget traffic_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget traffic_status log]"
}

################################################################################
# Clear traffic stats
################################################################################
set control_status [::ixia::traffic_control \
-port_handle $port_handle \
-action clear_stats ]

if {[keylget control_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget control_status log]"
}

################################################################################
# Start traffic
################################################################################
set control_status [::ixia::traffic_control \
-port_handle $port_handle \
-action run ]

if {[keylget control_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget control_status log]"
}

after 60000

################################################################################
# Stop traffic
################################################################################
set control_status [::ixia::traffic_control \
-port_handle $port_handle \
-action stop ]

if {[keylget control_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget control_status log]"
}

###############################################################################
# Retrieve aggregate stats after traffic stopped
###############################################################################
set aggregate_stats [ixia::traffic_stats -port_handle $port_handle]
if {[keylget aggregate_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget aggregate_stats log]"
}

A-94 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

proc post_stats {port_handle label key_list stat_key {stream ""}} {


puts -nonewline [format "%-16s" $label]

foreach port $port_handle {


if {$stream != ""} {
set key $port.stream.$stream.$stat_key
} else {
set key $port.$stat_key
}

puts -nonewline "[format "%-16s" [keylget key_list $key]]"


}
puts ""
}

puts "\n******************* TX/RX STATS **********************"


puts "\t\t$access_port\t\t$network_port"
puts "\t\t-----\t\t-----"

post_stats $port_handle "Elapsed Time" $aggregate_stats \


aggregate.tx.elapsed_time
post_stats $port_handle "Packets Tx" $aggregate_stats aggregate.tx.pkt_count
post_stats $port_handle "Raw Packets Tx" $aggregate_stats \
aggregate.tx.raw_pkt_count
post_stats $port_handle "Bytes Tx" $aggregate_stats \
aggregate.tx.pkt_byte_count
post_stats $port_handle "Bits Tx" $aggregate_stats \
aggregate.tx.pkt_bit_count
post_stats $port_handle "Packets Rx" $aggregate_stats aggregate.rx.pkt_count
post_stats $port_handle "Raw Packets Rx" $aggregate_stats \
aggregate.rx.raw_pkt_count
post_stats $port_handle "Collisions" $aggregate_stats \
aggregate.rx.collisions_count
post_stats $port_handle "Dribble Errors" $aggregate_stats \
aggregate.rx.dribble_errors_count
post_stats $port_handle "CRCs" $aggregate_stats \
aggregate.rx.crc_errors_count
post_stats $port_handle "Oversizes" $aggregate_stats \
aggregate.rx.oversize_count
post_stats $port_handle "Undersizes" $aggregate_stats \
aggregate.rx.undersize_count
post_stats $port_handle "RX PCKTS TOS0" $aggregate_stats aggregate.rx.qos0_count
post_stats $port_handle "RX PCKTS TOS1" $aggregate_stats aggregate.rx.qos1_count
post_stats $port_handle "RX PCKTS TOS2" $aggregate_stats aggregate.rx.qos2_count
post_stats $port_handle "RX PCKTS TOS3" $aggregate_stats aggregate.rx.qos3_count
post_stats $port_handle "RX PCKTS TOS4" $aggregate_stats aggregate.rx.qos4_count
post_stats $port_handle "RX PCKTS TOS5" $aggregate_stats aggregate.rx.qos5_count
post_stats $port_handle "RX PCKTS TOS6" $aggregate_stats aggregate.rx.qos6_count
post_stats $port_handle "RX PCKTS TOS7" $aggregate_stats aggregate.rx.qos7_count
puts "******************************************************\n"

################################################################################
# Disconnect sessions
################################################################################
puts "Disconnecting sessions ... "
set control_status [::ixia::pppox_control \
-handle $pppox_handle \
-action disconnect ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}
set control_status [::ixia::pppox_control \
-handle $l2tp_handle \
-action disconnect ]
if {[keylget control_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget control_status log]"
}

set cleanup_status [::ixia::cleanup_session ]

HLTAPI Commands, Release 2.80 Rev. B A-95


A IxAccess Examples

if {[keylget cleanup_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget cleanup_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-96 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

L2TPv3 (L2TPv3_stats.tcl)
################################################################################
# #
# Description: #
# This sample sets up a L2TPv3 configuration, starts everything and gathers #
# some statistics. #
# #
# Module: #
# The sample was tested on a LM1000TXS4 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 2/3]

# Connect to the chassis, reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [keylget connect_status port_handle.$chassisIP.$port_list]

#################################################
# Configure one L2TPv3 control connection #
# group containing two tunnels #
#################################################
set l2tpv3_cc_status [ixia::l2tpv3_dynamic_cc_config \
-action create \
-port_handle $port_handle \
-cc_id_start 10 \
-cc_src_ip 101.100.100.11 \
-cc_ip_mode increment \
-cc_src_ip_step 0.0.0.1 \
-cc_ip_count 1 \
-cc_src_ip_subnet_mask 255.255.255.0 \
-cc_dst_ip 172.16.100.192 \
-cc_dst_ip_step 0.0.0.0 \
-gateway_ip 101.100.100.1 \
-gateway_ip_step 0.0.0.0 \
-router_identification_mode hostname \
-hostname ixia \
-hostname_suffix_start 1 \
-router_id_min 1000 \
-cookie_size 4 \
-retransmit_retries 15 \
-retransmit_timeout_max 8 \
-retransmit_timeout_min 1 \
-hidden 0 \
-authentication 0 \
-password ixia \
-hello_interval 15 \
-l2tp_variant cisco_variant \
-peer_host_name 7200 ]
if {[keylget l2tpv3_cc_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget l2tpv3_cc_status log]"
}
set cc_handle [keylget l2tpv3_cc_status handle]

HLTAPI Commands, Release 2.80 Rev. B A-97


A IxAccess Examples

#################################################
# Configure a L2TPv3 session group with one #
# pseudo-wire on the control connection group #
#################################################
set l2tpv3_session_status [ixia::l2tpv3_session_config \
-action create \
-cc_handle $cc_handle \
-vcid_start 100 \
-vcid_mode increment \
-vcid_step 1 \
-num_sessions 1 \
-pw_type dot1q_ethernet \
-mac_src 0000.2222.3333 \
-mac_src_step 0000.0000.0001 \
-mac_dst 0000.5555.6666 \
-mac_dst_step 0000.0000.0001 \
-vlan_id 20 ]
if {[keylget l2tpv3_session_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget l2tpv3_session_status log]"
}
set session_handle [keylget l2tpv3_session_status handle]

#################################################
# Setup tunnels #
#################################################
set l2tpv3_control_status [ixia::l2tpv3_control \
-action start \
-port_handle $port_handle ]

if {[keylget l2tpv3_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget l2tpv3_control_status log]"
}

#################################################
# Get statistics #
#################################################
set aggregate_stats [::ixia::l2tpv3_stats \
-mode aggregate \
-cc_handle $cc_handle ]

set cc_stats [::ixia::l2tpv3_stats \


-mode control_connection \
-cc_handle $cc_handle \
-cc_id 10 ]

set session_stats [::ixia::l2tpv3_stats \


-mode session \
-cc_handle $cc_handle \
-vcid 100 ]

puts "\n\n ----- Aggregate statistics -----\n"


foreach statName [keylkeys aggregate_stats aggregate] {
set statValue [keylget aggregate_stats aggregate.$statName]
puts [format "%31s %-20s" "aggregate.$statName" $statValue]
}

puts "\n\n ----- Control connection statistics -----\n"


foreach ccId [keylkeys cc_stats cc] {
foreach statName [keylkeys cc_stats cc.$ccId] {
set statValue [keylget cc_stats cc.$ccId.$statName]
puts [format "%31s %-20s" "cc.$ccId.$statName" $statValue]
}
}

puts "\n\n ----- Session statistics -----\n"


foreach vcid [keylkeys session_stats session] {
foreach statName [keylkeys session_stats session.$vcid] {
set statValue [keylget session_stats session.$vcid.$statName]
puts [format "%31s %-20s" "session.$vcid.$statName" $statValue]
}
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-98 HLTAPI Commands, Release 2.80 Rev. B


IxAccess Examples

PPPoE (PPPoE_session.tcl)
################################################################################
# #
# Description: #
# This sample configures a PPPoE tunnel with 5 sessions. #
# Then it connects to the DUT(Cisco7206) and retrieves a few statistics. #
# #
# Module: #
# The sample was tested on a LM1000STXS4 module. #
# #
################################################################################

################################################################################
# DUT configuration: #
# #
# aaa new-model #
# aaa authentication ppp default none #
# aaa session-id common #
# #
# vpdn enable #
# #
# bba-group pppoe global #
# virtual-template 1 #
# sessions per-vc limit 1000 #
# sessions per-mac limit 1000 #
# #
# interface Loopback1 #
# ip address 10.10.10.1 255.255.255.0 #
# #
# ip local pool pppoe 10.10.10.2 10.10.10.254 #
# #
# interface FastEthernet1/0 #
# no ip address #
# no ip route-cache cef #
# no ip route-cache #
# duplex half #
# pppoe enable #
# no shut #
# #
# interface Virtual-Template1 #
# mtu 1492 #
# ip unnumbered Loopback1 #
# peer default ip address pool pppoe #
# no keepalive #
# ppp max-bad-auth 20 #
# ppp timeout retry 10 #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 4/1]

# Connect to the chassis, reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [keylget connect_status port_handle.$chassisIP.$port_list]

################################################
# Configure session #
################################################
set pppox_config_status [ixia::pppox_config \
-port_handle $port_handle \

HLTAPI Commands, Release 2.80 Rev. B A-99


A IxAccess Examples

-protocol pppoe \
-encap ethernet_ii \
-num_sessions 5 \
-auth_req_timeout 10 \
-auth_mode none \
]

if {[keylget pppox_config_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pppox_config_status log]"
}

set pppox_handle [keylget pppox_config_status handle]

################################################
# Setup session #
################################################
set pppox_control_status [ixia::pppox_control \
-handle $pppox_handle \
-action connect \
]

if {[keylget pppox_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget pppox_control_status log]"
}

after 10000

################################################
# Stats #
################################################
set aggr_status [::ixia::pppox_stats \
-handle $pppox_handle \
-mode aggregate ]
if {[keylget aggr_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget aggr_status log]"
}

set sess_num [keylget aggr_status aggregate.num_sessions]


set sess_count_up [keylget aggr_status aggregate.connected]
set sess_min_setup [keylget aggr_status aggregate.min_setup_time]
set sess_max_setup [keylget aggr_status aggregate.max_setup_time]
set sess_avg_setup [keylget aggr_status aggregate.avg_setup_time]
puts "Ixia Test Results ... "
puts " Number of sessions = $sess_num "
puts " Number of connected sessions = $sess_count_up "
puts " Minimum Setup Time (ms) = $sess_min_setup "
puts " Maximum Setup Time (ms) = $sess_max_setup "
puts " Average Setup Time (ms) = $sess_avg_setup "

set session_status [::ixia::pppox_stats \


-handle $pppox_handle \
-mode session ]
if {[keylget session_status status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget session_status log]"
}
set sessionIdList [keylkeys session_status session]

puts "Ixia per session stats ... "


foreach sessid $sessionIdList {
if {![catch {set per_sess_ipcp_cfg_req_tx \
[keylget session_status \
session.${sessid}.ipcp_cfg_req_tx]}]} {
puts "Session $sessid IPCP CFG ReQ Tx Count =\
$per_sess_ipcp_cfg_req_tx "
} else {
puts "Session $sessid IPCP CFG ReQ Tx Count = N/A "
}
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

A-100 HLTAPI Commands, Release 2.80 Rev. B


IxOS Examples

IxOS Examples
DHCPv4 (DHCP_host_group.tcl)
################################################################################
# #
# Description: #
# This sample configures/modifies 1 group of DHCP subscribers on a port. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP 127.0.0.1


set port_list [list 10/1]

# Connect to the chassis, reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle [keylget connect_status port_handle.$chassisIP.$port_list]

#################################################
# Configure DHCP on the interface 1/4/1 #
#################################################
set dhcp_portHandle_status [ixia::emulation_dhcp_config \
-mode create \
-port_handle $port_handle \
-lease_time 100 \
-max_dhcp_msg_size 1000 \
-reset ]

if {[keylget dhcp_portHandle_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_portHandle_status log]"
}

# Get the DHCP port handle from the keyed list (a session handle)
set dhcp_portHandle [keylget dhcp_portHandle_status handle]

set dhcp_portHandle_status [ixia::emulation_dhcp_config \


-mode modify \
-handle $dhcp_portHandle \
-lease_time 200 \
-max_dhcp_msg_size 2000 ]

if {[keylget dhcp_portHandle_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_portHandle_status log]"
}

#####################################################################
# Configure one group on each session on the interface 1/4/1 #
#####################################################################

# Set dhcp group


set dhcp_group_status [::ixia::emulation_dhcp_group_config \
-mode create \
-mac_addr 00.10.95.22.11.09 \
-mac_addr_step 00.00.00.00.00.01 \
-num_sessions 10 \

HLTAPI Commands, Release 2.80 Rev. B A-101


A IxOS Examples

-handle $dhcp_portHandle \
-encap vc_mux \
-vci 0 \
-vpi 32 \
-vci_step 2 \
-vpi_step 3 \
-vci_count 5 \
-vpi_count 10 \
-sessions_per_vc 4 \
-pvc_incr_mode vci ]

if {[keylget dhcp_group_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_group_status log]"
}

# Get the group handle from keyed list


set dhcp_groupHandle [keylget dhcp_group_status handle]

set dhcp_group_status [::ixia::emulation_dhcp_group_config \


-mode modify \
-handle $dhcp_groupHandle \
-vci 1 \
-vpi 10 ]

if {[keylget dhcp_group_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_group_status log]"
}

######################
# START DHCP #
######################

set dhcp_control_status [::ixia::emulation_dhcp_control \


-port_handle $dhcp_portHandle \
-action bind \
-handle $dhcp_groupHandle ]

if {[keylget dhcp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_control_status log]"
}

# A delay is needed for seeing all the messages on the router


after 15000

set dhcp_control_status [::ixia::emulation_dhcp_control \


-port_handle $dhcp_portHandle \
-action renew \
-handle $dhcp_groupHandle ]

if {[keylget dhcp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_control_status log]"
}

######################
# DHCP STATISTICS #
######################

set dhcp_stats_status [::ixia::emulation_dhcp_stats \


-port_handle $dhcp_portHandle \
-handle $dhcp_groupHandle ]

if {[keylget dhcp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_control_status log]"
}

if {![catch {keylget dhcp_stats_status aggregate} dhcp_aggregate_stats]} {


ixPuts "dhcp aggregate stats = $dhcp_aggregate_stats"
}

if {![catch {keylget dhcp_stats_status group} dhcp_group_stats]} {


ixPuts "dhcp group stats = $dhcp_group_stats"
}

A-102 HLTAPI Commands, Release 2.80 Rev. B


IxOS Examples

set dhcp_stats_status [::ixia::emulation_dhcp_stats \


-port_handle $dhcp_portHandle \
-action clear ]

if {[keylget dhcp_control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget dhcp_control_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-103


A IxOS Examples

Traffic (Streams_IPv4_stats.tcl)
################################################################################
# #
# Description: #
# This sample creates three IPv4 streams on a port, starts the streams #
# and displays statistics about them. #
# #
# Module: #
# The sample was tested on a LM100TXS8 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester

########
# IpV4 #
########
set ipV4_port_list "2/3 2/4"
set ipV4_ixia_list "1.1.1.2 1.1.1.1"
set ipV4_gateway_list "1.1.1.1 1.1.1.2"
set ipV4_netmask_list "255.255.255.0 255.255.255.0"
set ipV4_mac_list "0000.debb.0001 0000.debb.0002"
set ipV4_version_list "4 4"
set ipV4_autoneg_list "1 1"
set ipV4_duplex_list "full full"
set ipV4_speed_list "ether100 ether100"

#################################################################################
# START TEST #
#################################################################################

# Connect to the chassis,reset to factory defaults and take ownership


set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $ipV4_port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_one [keylget connect_status \


port_handle.$chassisIP.[lindex $ipV4_port_list 0]]
set port_two [keylget connect_status \
port_handle.$chassisIP.[lindex $ipV4_port_list 1]]

set port_handle [list $port_one $port_two]

########################################
# Configure interface in the test #
# IPv4 #
########################################
set interface_status [ixia::interface_config \
-port_handle $port_handle \
-intf_ip_addr $ipV4_ixia_list \
-gateway $ipV4_gateway_list \
-netmask $ipV4_netmask_list \
-autonegotiation $ipV4_autoneg_list \
-duplex $ipV4_duplex_list \
-src_mac_addr $ipV4_mac_list \
-speed $ipV4_speed_list ]
if {[keylget interface_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget interface_status log]"
}

A-104 HLTAPI Commands, Release 2.80 Rev. B


IxOS Examples

########################################
# Stream configuration #
# IPv4 #
########################################
# Delete all the streams first
set traffic_status [ixia::traffic_config \
-mode reset \
-port_handle $port_handle ]

set stream_index_list ""

# Configure first stream on the IpV4 port


set traffic_status [ixia::traffic_config \
-mode create \
-port_handle $port_one \
-l3_protocol ipv4 \
-ip_src_addr [lindex $ipV4_ixia_list 0] \
-ip_dst_addr [lindex $ipV4_ixia_list 1] \
-l3_length 46 \
-rate_percent 50 \
-mac_dst_mode discovery \
-mac_src [lindex $ipV4_mac_list 0] ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

lappend stream_index_list [keylget traffic_status stream_id]

# Configure second stream on the IpV4 port


set traffic_status [ixia::traffic_config \
-mode create \
-port_handle $port_one \
-l3_protocol ipv4 \
-ip_src_addr [lindex $ipV4_ixia_list 0] \
-ip_dst_addr [lindex $ipV4_ixia_list 1] \
-l3_length 54 \
-rate_percent 50 \
-mac_dst_mode discovery \
-mac_src [lindex $ipV4_mac_list 0] ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

lappend stream_index_list [keylget traffic_status stream_id]

# Configure third stream on the IpV4 port


set traffic_status [ixia::traffic_config \
-mode create \
-port_handle $port_one \
-l3_protocol ipv4 \
-ip_src_addr [lindex $ipV4_ixia_list 0] \
-ip_dst_addr [lindex $ipV4_ixia_list 1] \
-l3_length 65 \
-rate_percent 50 \
-mac_dst_mode discovery \
-mac_src [lindex $ipV4_mac_list 0] ]
if {[keylget traffic_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_status log]"
}

lappend stream_index_list [keylget traffic_status stream_id]

########################################
# Traffic control #
########################################

# Clear stats before sending traffic


set clear_stats_status [ixia::traffic_control \
-port_handle $port_handle \
-action clear_stats ]
if {[keylget clear_stats_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget clear_stats_status log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-105


A IxOS Examples

# Start the traffic on TX port


set traffic_start_status [ixia::traffic_control\
-port_handle $port_one \
-action run ]
if {[keylget traffic_start_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_start_status log]"
}

# Sleep 5 seconds
ixia_sleep 5000

###############################################################################
# Retrieve stats while running
###############################################################################

# Get aggregrate stats for all ports


set aggregate_stats [ixia::traffic_stats -port_handle $port_handle]
if {[keylget aggregate_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget aggregate_stats log]"
}

# Get rateStats on the RX port - per stream


set rx_stream_stats [ixia::traffic_stats \
-port_handle $port_two \
-mode streams \
-stream [lindex $stream_index_list 0]]
if {[keylget rx_stream_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget rx_stream_stats log]"
}

proc post_stats {port_handle label key_list stat_key {stream ""}} {


puts -nonewline [format "%-16s" $label]

foreach port $port_handle {


if {$stream != ""} {
set key $port.stream.$stream.$stat_key
} else {
set key $port.$stat_key
}

puts -nonewline "[format "%-16s" [keylget key_list $key]]"


}
puts ""
}

puts "\n******************* RUNNING COUNT STATS **********************"


puts "\t\t$port_one\t\t$port_two"
puts "\t\t-----\t\t-----"

post_stats $port_handle "Elapsed Time" $aggregate_stats \


aggregate.tx.elapsed_time
post_stats $port_handle "Packets Tx" $aggregate_stats aggregate.tx.pkt_count
post_stats $port_handle "Bytes Tx" $aggregate_stats \
aggregate.tx.pkt_byte_count
post_stats $port_handle "Bits Tx" $aggregate_stats \
aggregate.tx.pkt_bit_count
post_stats $port_handle "Packets Rx" $aggregate_stats aggregate.rx.pkt_count
post_stats $port_handle "Collisions" $aggregate_stats \
aggregate.rx.collisions_count
post_stats $port_handle "Dribble Errors" $aggregate_stats \
aggregate.rx.dribble_errors_count
post_stats $port_handle "CRCs" $aggregate_stats \
aggregate.rx.crc_errors_count
post_stats $port_handle "Oversizes" $aggregate_stats \
aggregate.rx.oversize_count
post_stats $port_handle "Undersizes" $aggregate_stats \
aggregate.rx.undersize_count
post_stats $port_handle "RX PCKTS TOS0" $aggregate_stats aggregate.rx.qos0_count
post_stats $port_handle "RX PCKTS TOS1" $aggregate_stats aggregate.rx.qos1_count
post_stats $port_handle "RX PCKTS TOS2" $aggregate_stats aggregate.rx.qos2_count
post_stats $port_handle "RX PCKTS TOS3" $aggregate_stats aggregate.rx.qos3_count
post_stats $port_handle "RX PCKTS TOS4" $aggregate_stats aggregate.rx.qos4_count
post_stats $port_handle "RX PCKTS TOS5" $aggregate_stats aggregate.rx.qos5_count
post_stats $port_handle "RX PCKTS TOS6" $aggregate_stats aggregate.rx.qos6_count

A-106 HLTAPI Commands, Release 2.80 Rev. B


IxOS Examples

post_stats $port_handle "RX PCKTS TOS7" $aggregate_stats aggregate.rx.qos7_count


puts "******************************************************\n"

puts "\n******************* RUNNING RATE STATS ***********************"


puts "\t\t$port_one\t\t$port_two"
puts "\t\t-----\t\t-----"
post_stats $port_handle "Packets Tx" $aggregate_stats aggregate.tx.pkt_rate
post_stats $port_handle "Bytes Tx" $aggregate_stats \
aggregate.tx.pkt_byte_rate
post_stats $port_handle "Bits Tx" $aggregate_stats \
aggregate.tx.pkt_bit_rate
post_stats $port_handle "Packets Rx" $aggregate_stats aggregate.rx.pkt_rate
post_stats $port_handle "Collisions" $aggregate_stats \
aggregate.rx.collisions_rate
post_stats $port_handle "Dribble Errors" $aggregate_stats \
aggregate.rx.dribble_errors_rate
post_stats $port_handle "CRCs" $aggregate_stats \
aggregate.rx.crc_errors_rate
post_stats $port_handle "Oversizes" $aggregate_stats \
aggregate.rx.oversize_rate
post_stats $port_handle "Undersizes" $aggregate_stats \
aggregate.rx.undersize_rate
post_stats $port_handle "RX PCKTS TOS0" $aggregate_stats aggregate.rx.qos0_rate
post_stats $port_handle "RX PCKTS TOS1" $aggregate_stats aggregate.rx.qos1_rate
post_stats $port_handle "RX PCKTS TOS2" $aggregate_stats aggregate.rx.qos2_rate
post_stats $port_handle "RX PCKTS TOS3" $aggregate_stats aggregate.rx.qos3_rate
post_stats $port_handle "RX PCKTS TOS4" $aggregate_stats aggregate.rx.qos4_rate
post_stats $port_handle "RX PCKTS TOS5" $aggregate_stats aggregate.rx.qos5_rate
post_stats $port_handle "RX PCKTS TOS6" $aggregate_stats aggregate.rx.qos6_rate
post_stats $port_handle "RX PCKTS TOS7" $aggregate_stats aggregate.rx.qos7_rate
puts "******************************************************"

ixia_sleep 8000

# Stop traffic on the TX port


set traffic_stop_status [ixia::traffic_control \
-port_handle $port_one \
-action stop ]
if {[keylget traffic_stop_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget traffic_stop_status log]"
}

###############################################################################
# Retrieve stats after stopped
###############################################################################
# Get aggregrate stats for all ports
set aggregate_stats [ixia::traffic_stats -port_handle $port_handle]
if {[keylget aggregate_stats status] != $SUCCESS} {
return "FAIL - $test_name - [keylget aggregate_stats log]"
}

puts "\n\t\t########################"
puts "\t\t# STATIC STATS #"
puts "\t\t########################"
puts "\n******************* FINAL COUNT STATS **********************"
puts "\t\t$port_one\t\t$port_two"
puts "\t\t-----\t\t-----"

post_stats $port_handle "Elapsed Time" $aggregate_stats \


aggregate.tx.elapsed_time
post_stats $port_handle "Packets Tx" $aggregate_stats aggregate.tx.pkt_count
post_stats $port_handle "Bytes Tx" $aggregate_stats \
aggregate.tx.pkt_byte_count
post_stats $port_handle "Bits Tx" $aggregate_stats \
aggregate.tx.pkt_bit_count
post_stats $port_handle "Packets Rx" $aggregate_stats aggregate.rx.pkt_count
post_stats $port_handle "Collisions" $aggregate_stats \
aggregate.rx.collisions_count
post_stats $port_handle "Dribble Errors" $aggregate_stats \
aggregate.rx.dribble_errors_count
post_stats $port_handle "CRCs" $aggregate_stats \
aggregate.rx.crc_errors_count
post_stats $port_handle "Oversizes" $aggregate_stats \
aggregate.rx.oversize_count

HLTAPI Commands, Release 2.80 Rev. B A-107


A IxOS Examples

post_stats $port_handle "Undersizes" $aggregate_stats \


aggregate.rx.undersize_count
post_stats $port_handle "RX PCKTS TOS0" $aggregate_stats aggregate.rx.qos0_count
post_stats $port_handle "RX PCKTS TOS1" $aggregate_stats aggregate.rx.qos1_count
post_stats $port_handle "RX PCKTS TOS2" $aggregate_stats aggregate.rx.qos2_count
post_stats $port_handle "RX PCKTS TOS3" $aggregate_stats aggregate.rx.qos3_count
post_stats $port_handle "RX PCKTS TOS4" $aggregate_stats aggregate.rx.qos4_count
post_stats $port_handle "RX PCKTS TOS5" $aggregate_stats aggregate.rx.qos5_count
post_stats $port_handle "RX PCKTS TOS6" $aggregate_stats aggregate.rx.qos6_count
post_stats $port_handle "RX PCKTS TOS7" $aggregate_stats aggregate.rx.qos7_count
puts "******************************************************\n"

puts "\n******************* FINAL RATE STATS ***********************"


puts "\t\t$port_one\t\t$port_two"
puts "\t\t-----\t\t-----"
post_stats $port_handle "Packets Tx" $aggregate_stats aggregate.tx.pkt_rate
post_stats $port_handle "Bytes Tx" $aggregate_stats \
aggregate.tx.pkt_byte_rate
post_stats $port_handle "Bits Tx" $aggregate_stats \
aggregate.tx.pkt_bit_rate
post_stats $port_handle "Packets Rx" $aggregate_stats aggregate.rx.pkt_rate
post_stats $port_handle "Collisions" $aggregate_stats \
aggregate.rx.collisions_rate
post_stats $port_handle "Dribble Errors" $aggregate_stats \
aggregate.rx.dribble_errors_rate
post_stats $port_handle "CRCs" $aggregate_stats \
aggregate.rx.crc_errors_rate
post_stats $port_handle "Oversizes" $aggregate_stats \
aggregate.rx.oversize_rate
post_stats $port_handle "Undersizes" $aggregate_stats \
aggregate.rx.undersize_rate
post_stats $port_handle "RX PCKTS TOS0" $aggregate_stats aggregate.rx.qos0_rate
post_stats $port_handle "RX PCKTS TOS1" $aggregate_stats aggregate.rx.qos1_rate
post_stats $port_handle "RX PCKTS TOS2" $aggregate_stats aggregate.rx.qos2_rate
post_stats $port_handle "RX PCKTS TOS3" $aggregate_stats aggregate.rx.qos3_rate
post_stats $port_handle "RX PCKTS TOS4" $aggregate_stats aggregate.rx.qos4_rate
post_stats $port_handle "RX PCKTS TOS5" $aggregate_stats aggregate.rx.qos5_rate
post_stats $port_handle "RX PCKTS TOS6" $aggregate_stats aggregate.rx.qos6_rate
post_stats $port_handle "RX PCKTS TOS7" $aggregate_stats aggregate.rx.qos7_rate
puts "******************************************************"

foreach stream $stream_index_list {


# Get Stats on the RX port - per stream
set rx_stream_stats [ixia::traffic_stats \
-port_handle $port_two \
-mode streams \
-stream $stream ]

puts "\n********** PER-STREAM RATE STATS - STREAM $stream**********"


puts "\t\t$port_two"
puts "\t\t-----"
post_stats $port_two "Packets Rx" $rx_stream_stats rx.total_pkts \
$stream
post_stats $port_two "Bytes Rx" $rx_stream_stats rx.total_pkt_bytes \
$stream
post_stats $port_two "Bits Rate" $rx_stream_stats rx.total_pkt_bit_rate \
$stream
post_stats $port_two "Line Rate" $rx_stream_stats \
rx.line_rate_percentage $stream
post_stats $port_two "Average Delay" $rx_stream_stats rx.avg_delay \
$stream
post_stats $port_two "Min. Delay" $rx_stream_stats rx.min_delay \
$stream
post_stats $port_two "Max. Delay" $rx_stream_stats rx.max_delay \
$stream
puts "******************************************************\n"
}

A-108 HLTAPI Commands, Release 2.80 Rev. B


IxOS Examples

# Clean up the connection


set cleanup_status [ixia::cleanup_session \
-port_handle $port_handle ]
if {[keylget cleanup_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget cleanup_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-109


A IxLoad Examples

IxLoad Examples
FTP (FTP_basic_config.tcl)
################################################################################
# #
# Description: #
# This sample creates a FTP client and server basic configuration. #
# FTP traffic is sent from client side to server side. #
# At the end statistics are being retrieved. #
# #
# Module: #
# The sample was tested on a LM1000STXS4-256 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set tclServer winston-400t
set port_list [list 1/3 1/4]

set error ""


catch {
#####
# Connect to the chassis,reset to factory defaults and take ownership
#####
set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser \
-tcl_server $tclServer ]

if {[keylget connect_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle1 [keylget \


connect_status port_handle.$chassisIP.[lindex $port_list 0]]
set port_handle2 [keylget \
connect_status port_handle.$chassisIP.[lindex $port_list 1]]

#####################
# Client FTP config #
#####################
set ftp_client_conf [::ixia::emulation_ftp_config \
-property ftp \
-mode add \
-target client \
-port_handle $port_handle1 \
-mac_mapping_mode macip \
-source_port_from 1024 \
-source_port_to 65535 \
-dns_cache_timeout 35000 \
-grat_arp_enable 1 \
-congestion_notification_enable 1 \
-time_stamp_enable 1 \
-keep_alive_time 9 \
-keep_alive_probes 75 \
-keep_alive_interval 9600 \
-fin_timeout 60 \
-receive_buffer_size 4096 \
-transmit_buffer_size 4096 \
-syn_ack_retries 5 \
-syn_retries 5 \
-retransmit_retries 15 ]

A-110 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

if {[keylget ftp_client_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_conf log]"
}

####################
# Sever FTP config #
####################
set ftp_server_conf [::ixia::emulation_ftp_config \
-property ftp \
-mode add \
-target server \
-port_handle $port_handle2 \
-mac_mapping_mode macip ]

if {[keylget ftp_server_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_server_conf log]"
}

#########################
# Client network config #
#########################
set client_network_conf [::ixia::emulation_ftp_config \
-property network \
-mode add \
-handle [keylget ftp_client_conf handles] \
-ip_address_start 198.18.0.1 \
-network_mask 255.255.0.0 \
-ip_count 1 \
-ip_increment_step 0.0.0.1 \
-gateway 0.0.0.0 \
-mac_address_start 00:C6:12:00:01:00 \
-mac_increment_step 00:00:00:00:01:00 \
-grat_arp_enable 1 \
-mss_enable 1 \
-mss 1460 ]

if {[keylget client_network_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget client_network_conf log]"
}

#########################
# Server network config #
#########################
set server_network_conf [::ixia::emulation_ftp_config \
-property network \
-mode add \
-handle [keylget ftp_server_conf handles] \
-ip_address_start 198.18.0.101 \
-network_mask 255.255.0.0 \
-ip_count 10 \
-ip_increment_step 0.0.0.1 \
-grat_arp_enable 1 \
-mss_enable 1 \
-mss 1460 ]

if {[keylget server_network_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget server_network_conf log]"
}

#########################
# Client traffic config #
#########################
set ftp_client_traffic [::ixia::emulation_ftp_traffic_config \
-property traffic \
-mode add \
-target client ]

if {[keylget ftp_client_traffic status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_traffic log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-111


A IxLoad Examples

#########################
# Server traffic config #
#########################
set ftp_server_traffic [::ixia::emulation_ftp_traffic_config \
-property traffic \
-mode add \
-target server ]

if {[keylget ftp_server_traffic status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_server_traffic log]"
}

#######################
# Server agent config #
#######################
set ftp_server_agent [::ixia::emulation_ftp_traffic_config \
-property agent \
-mode add \
-handle [keylget ftp_server_traffic handles] \
-target server ]

if {[keylget ftp_server_agent status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_server_agent log]"
}

#######################
# Client agent config #
#######################
set ftp_client_agent [::ixia::emulation_ftp_traffic_config \
-property agent \
-mode add \
-handle [keylget ftp_client_traffic handles] \
-target client ]

if {[keylget ftp_client_agent status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_agent log]"
}

########################
# Client action config #
########################

### LOGIN ###


set ftp_client_action [::ixia::emulation_ftp_traffic_config \
-property action \
-mode add \
-handle [keylget ftp_client_agent handles] \
-command "login" \
-destination 198.18.0.101 \
-user_name root \
-password noreply@ixiacom.com \
-agent_handler [keylget ftp_server_agent handles] ]

if {[keylget ftp_client_action status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_action log]"
}

### THINK ###


set ftp_client_action [::ixia::emulation_ftp_traffic_config \
-property action \
-mode add \
-handle [keylget ftp_client_agent handles] \
-command "think" \
-arguments 5000 \
-agent_handler [keylget ftp_server_agent handles] ]

if {[keylget ftp_client_action status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_action log]"
}

A-112 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

### QUIT ###


set ftp_client_action [::ixia::emulation_ftp_traffic_config \
-property action \
-mode add \
-command "quit" \
-handle [keylget ftp_client_agent handles] \
-agent_handler [keylget ftp_server_agent handles] ]

if {[keylget ftp_client_action status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_action log]"
}

############################
# Client map configuration #
############################
set ftp_client_map [::ixia::emulation_ftp_control_config \
-property map \
-mode add \
-client_iterations 1 \
-target client \
-client_ftp_handle [keylget ftp_client_conf handles] \
-client_traffic_handle [keylget ftp_client_traffic handles] \
-objective_type users \
-ramp_up_type users_per_second \
-objective_value 10 \
-ramp_up_value 10 \
-client_sustain_time 43 \
-port_map_policy pairs \
-ramp_down_time 20 \
-client_offline_time 3 \
-client_total_time 64 \
-client_standby_time 0 ]

if {[keylget ftp_client_map status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_map log]"
}

############################
# Server map configuration #
############################
set ftp_server_map [::ixia::emulation_ftp_control_config \
-property map \
-mode add \
-target server \
-server_ftp_handle [keylget ftp_server_conf handles] \
-server_traffic_handle [keylget ftp_server_traffic handles] \
-server_sustain_time 65 \
-server_total_time 65 \
-server_iterations 1 \
-match_client_totaltime 1 ]

if {[keylget ftp_server_map status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_server_map log]"
}

set client_stats_list {
ftp_simulated_users \
ftp_concurrent_sessions \
ftp_connections \
ftp_transactions \
ftp_bytes \
ftp_control_conn_requested \
ftp_control_conn_established \
ftp_control_conn_failed \
ftp_control_conn_failed_rejected \
ftp_control_conn_failed_other \
ftp_control_conn_active \
ftp_data_conn_established \
ftp_data_conn_established_active_mode \
ftp_data_conn_requested_passive_mode \
ftp_data_conn_established_passive_mode \
ftp_data_conn_failed_passive_mode \
ftp_file_uploads_requested \
ftp_file_uploads_successful \

HLTAPI Commands, Release 2.80 Rev. B A-113


A IxLoad Examples

ftp_file_uploads_failed \
ftp_file_downloads_requested \
ftp_file_downloads_successful \
ftp_file_downloads_failed \
ftp_data_bytes_sent \
ftp_data_bytes_received \
ftp_control_connection_latency \
ftp_data_connection_latency_passive_mode \
ftp_data_connection_latency_passive_mode \
}

#####################
# Client statistics #
#####################
set ftp_client_stats [::ixia::emulation_ftp_stats \
-mode add \
-aggregation_type sum \
-stat_name $client_stats_list \
-stat_type client ]

if {[keylget ftp_client_stats status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_client_stats log]"
}

set server_stats_list {
ftp_control_conn_received \
ftp_control_conn_established \
ftp_control_conn_rejected \
ftp_control_conn_active \
ftp_data_conn_established \
ftp_data_conn_requested_active \
ftp_data_conn_established_active \
ftp_data_conn_failed_active \
ftp_data_conn_established_passive \
ftp_data_conn_active \
ftp_file_uploads_requested \
ftp_file_uploads_successful \
ftp_file_uploads_failed \
ftp_file_downloads_requested \
ftp_file_downloads_successful \
ftp_file_downloads_failed \
ftp_data_bytes_sent \
ftp_data_bytes_received \
ftp_control_bytes_sent \
ftp_control_bytes_received \
ftp_data_conn_latency \
}

#####################
# Server statistics #
#####################
set ftp_server_stats [::ixia::emulation_ftp_stats \
-mode add \
-aggregation_type sum \
-stat_name $server_stats_list \
-stat_type server ]

if {[keylget ftp_server_stats status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_server_stats log]"
}

#########################
# Control configuration #
#########################
set ftp_control [::ixia::emulation_ftp_control \
-mode add \
-map_handle [list [keylget ftp_client_map handles] \
[keylget ftp_server_map handles]] \
-results_dir_enable 1 \
-results_dir {/home/testuser/ftp_results_dir} \
-force_ownership_enable 1 \
-release_config_afterrun_enable 1 \
-reset_ports_enable 1 \
-stats_required 1 ]

A-114 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

if {[keylget ftp_control status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_control log]"
}

###############
# Start test
###
set ftp_control [::ixia::emulation_ftp_control \
-handle [keylget ftp_control handles] \
-mode start ]

if {[keylget ftp_control status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget ftp_control log]"
}

###################
# Get statistics
###
set client_stats_result [::ixia::emulation_ftp_stats \
-mode get \
-handle [keylget ftp_client_stats handles] ]

if {[keylget client_stats_result status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget client_stats_result log]"
}

set server_stats_result [::ixia::emulation_ftp_stats \


-mode get \
-handle [keylget ftp_server_stats handles] ]

if {[keylget server_stats_result status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget server_stats_result log]"
}

###########################
# Print client statistics #
###########################
ixPuts "CLIENT STATISTICS:"
foreach {stat_handle} [keylkeys client_stats_result] {
if {$stat_handle != "status"} {
set stat_handle_kl [keylget client_stats_result $stat_handle]
foreach {stat_type} [keylkeys stat_handle_kl] {
set stat_type_kl [keylget stat_handle_kl $stat_type]
foreach {stat_name} [keylkeys stat_type_kl] {
set stat_name_kl [keylget stat_type_kl $stat_name]
ixPuts -nonewline [format \
"%10s %10s %40s" $stat_handle $stat_type $stat_name]

set timestamp [lindex [lsort -dictionary \


[keylkeys stat_name_kl]] end]

ixPuts [format "%15s %15s" $timestamp \


[keylget stat_name_kl $timestamp]]

}
}
}
}

###########################
# Print server statistics #
###########################
ixPuts "SERVER STATISTICS:"
foreach {stat_handle} [keylkeys server_stats_result] {
if {$stat_handle != "status"} {
set stat_handle_kl [keylget server_stats_result $stat_handle]
foreach {stat_type} [keylkeys stat_handle_kl] {
set stat_type_kl [keylget stat_handle_kl $stat_type]
foreach {stat_name} [keylkeys stat_type_kl] {
set stat_name_kl [keylget stat_type_kl $stat_name]
ixPuts -nonewline [format \
"%10s %10s %40s" $stat_handle $stat_type $stat_name]

HLTAPI Commands, Release 2.80 Rev. B A-115


A IxLoad Examples

set timestamp [lindex [lsort -dictionary \


[keylkeys stat_name_kl]] end]

ixPuts [format "%15s %15s" $timestamp \


[keylget stat_name_kl $timestamp]]

}
}
}
}

} error

##################################################
# Disconnect and cleanup variables and sessions
###
::ixia::cleanup_session
if {$error != ""} {
ixPuts $error
} else {
return "SUCCESS - $test_name - [clock format [clock seconds]]"
}

A-116 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

HTTP (HTTP_emulated_router.tcl)
################################################################################
# #
# Description: #
# This sample creates a HTTP client and server configuration with emulated #
# routers between emulated networks and port.Client is simulating a GET #
# command.
# HTTP traffic is sent from clent side to server side. #
# At the end statistics are being retrieved. #
# #
# Module: #
# The sample was tested on a LM1000STXS4-256 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set tclServer windowsStation
set port_list [list 1/1 1/2]

set error ""


catch {
#####
# Connect to the chassis,reset to factory defaults and take ownership
#####
set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser \
-tcl_server $tclServer ]

if {[keylget connect_status status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle1 [keylget \


connect_status port_handle.$chassisIP.[lindex $port_list 0]]
set port_handle2 [keylget \
connect_status port_handle.$chassisIP.[lindex $port_list 1]]

#########################
# Configure HTTP client #
#########################
set http_client_conf [ixia::emulation_http_config \
-target client \
-property http \
-mode add \
-port_handle $port_handle1 \
-mac_mapping_mode macport \
-source_port_from 1024 \
-source_port_to 65535 \
-dns_cache_timeout 35000 \
-grat_arp_enable 1 \
-congestion_notification_enable 1 \
-time_stamp_enable 1 \
-keep_alive_time 9 \
-keep_alive_probes 75 \
-keep_alive_interval 9600 \
-fin_timeout 60 \
-receive_buffer_size 4096 \
-transmit_buffer_size 4096 \
-syn_ack_retries 5 \
-syn_retries 5 \
-retransmit_retries 15 ]

if {[keylget http_client_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_client_conf log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-117


A IxLoad Examples

########################################################
# adding a network range for http client configuration #
########################################################
set client_network_conf [ixia::emulation_http_config \
-handle [keylget http_client_conf handles] \
-property network \
-mode add \
-ip_address_start 10.10.10.1 \
-mac_address_start 90.a0.a5.22.c1.09 \
-network_mask 255.255.255.0 \
-gateway 0.0.0.0 \
-ip_count 30 \
-ip_increment_step 0.0.0.1 \
-mac_increment_step 00.00.00.00.00.01 ]

if {[keylget client_network_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget client_network_conf log]"
}

##########################
# adding two dns servers #
##########################

set client_dns_conf1 [::ixia::emulation_http_config \


-handle [keylget http_client_conf handles] \
-property dns \
-mode add \
-dns_server 10.10.10.254 \
-dns_suffix .ixiacom.com ]

if {[keylget client_dns_conf1 status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget client_dns_conf1 log]"
}

set client_dns_conf2 [::ixia::emulation_http_config \


-handle [keylget http_client_conf handles] \
-property dns \
-mode add \
-dns_server 10.10.10.253 \
-dns_suffix .ixiacom.com ]

if {[keylget client_dns_conf2 status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget client_dns_conf2 log]"
}

##########################################################
##ading emulated router router_address/macperport client #
##########################################################

set emulated_gatewayc [ixia::emulation_http_config \


-handle [keylget http_client_conf handles] \
-property router_addr \
-mode add \
-emulated_router_gateway 10.20.20.2 \
-emulated_router_subnet 255.255.255.0 \
-pool_ip_address_start 10.20.20.1 \
-pool_ip_count 1 \
-pool_mac_address_start 00.0b.0a.12.c1.12 \
-pool_network 255.255.255.0 \
-pool_vlan_enable 0 ]
if {[keylget emulated_gatewayc status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget emulated_gatewayc log]"
}

#####################################
# configuring a http client traffic #
#####################################
set http_client_traffic [::ixia::emulation_http_traffic_config \
-target client \
-property traffic \
-mode add ]

A-118 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

if {[keylget http_client_traffic status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_client_traffic log]"
}

################
# Client AGENT #
################
set http_client_agent [::ixia::emulation_http_traffic_config \
-property agent \
-handle [keylget http_client_traffic handles] \
-mode add \
-max_sessions 3 \
-http_version 1.0 \
-keep_alive 0 \
-max_persistent_requests 3 \
-follow_http_redirects 0 \
-cookie_support_enable 0 \
-http_proxy_enable 0 \
-https_proxy_enable 0 \
-ssl_enable 0 \
-browser_emulation ie6 ]

if {[keylget http_client_agent status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_client_agent log]"
}

#########################
# Configure HTTP server #
#########################

set http_server_conf [ixia::emulation_http_config \


-target server \
-property http \
-mode add \
-port_handle $port_handle2 \
-mac_mapping_mode macport \
-source_port_from 1024 \
-source_port_to 65535 \
-dns_cache_timeout 35000 \
-grat_arp_enable 1 \
-congestion_notification_enable 1 \
-time_stamp_enable 1 \
-keep_alive_time 9 \
-keep_alive_probes 75 \
-keep_alive_interval 9600 \
-fin_timeout 60 \
-receive_buffer_size 4096 \
-transmit_buffer_size 4096 \
-syn_ack_retries 5 \
-syn_retries 5 \
-retransmit_retries 15 ]

if {[keylget http_server_conf status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_server_conf log]"
}
#######################################################
#adding a network range for this server configuration #
#######################################################
set http_server_network [ixia::emulation_http_config \
-handle [keylget http_server_conf handles] \
-property network \
-mode add \
-ip_address_start 10.30.30.1 \
-mac_address_start 00.04.04.04.98.00 \
-gateway 0.0.0.0 \
-ip_count 4 \
-network_mask 255.255.255.0 \
-ip_increment_step 0.0.0.1 \
-mac_increment_step 00.00.00.00.00.01 ]

if {[keylget http_server_network status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_server_network log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-119


A IxLoad Examples

##########################################################
##ading emulated router router_address/macperport server #
##########################################################

set emulated_gateways [ixia::emulation_http_config \


-handle [keylget http_server_conf handles] \
-property router_addr \
-mode add \
-emulated_router_gateway 10.20.20.1 \
-emulated_router_subnet 255.255.255.0 \
-pool_ip_address_start 10.20.20.2 \
-pool_ip_count 1 \
-pool_mac_address_start 00.0a.0b.12.f1.12 \
-pool_network 255.255.255.0 \
-pool_vlan_enable 0 ]
if {[keylget emulated_gateways status] != $::SUCCESS} {
return "FAIL - $test_name - [keylget emulated_gateways log]"
}

#####################################
# configuring a http server traffic #
#####################################
set http_server_traffic [::ixia::emulation_http_traffic_config \
-target server \
-property traffic \
-mode add ]

if {[keylget http_server_traffic status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_server_traffic log]"
}

#####################################################################
# adding an http server agent that will receive http client traffic #
#####################################################################
set http_server_agent [::ixia::emulation_http_traffic_config \
-property agent \
-handle [keylget http_server_traffic handles] \
-mode add \
-http_port 80 ]

if {[keylget http_server_agent status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_server_agent log]"
}

# We have SUCCESS
# set some handy variables

set serverPageHandles [keylget http_server_agent page_handles]


set serverHeaderHandles [keylget http_server_agent header_handles]
set serverCookieListHandles [keylget http_server_agent cookielist_handles]
set serverCookieHandles1 [keylget http_server_agent \
[lindex $serverCookieListHandles 0].cookie_handles]
set serverCookieHandles2 [keylget http_server_agent \
[lindex $serverCookieListHandles 1].cookie_handles]

###############################
# CLIENT TRAFFIC AGENT ACTION #
###############################
set http_client_action [::ixia::emulation_http_traffic_type_config \
-property action \
-handle [keylget http_client_agent handles] \
-mode add \
-command get \
-destination [keylget http_server_agent handles] \
-page_handle [lindex $serverPageHandles 5] ]

if {[keylget http_client_action status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_client_action log]"
}

A-120 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

##########################################################
# map http client configuration with http client traffic #
##########################################################
set http_client_map [::ixia::emulation_http_control_config \
-target client \
-property map \
-mode add \
-client_iterations 1 \
-client_http_handle [keylget http_client_conf handles] \
-client_traffic_handle [keylget http_client_traffic handles] \
-objective_type users \
-objective_value 30 \
-ramp_up_type users_per_second \
-ramp_up_value 10 \
-client_sustain_time 43 \
-port_map_policy pairs \
-ramp_down_time 20 \
-client_offline_time 2 \
-client_total_time 43 \
-client_standby_time 0 ]

if {[keylget http_client_map status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_client_map log]"
}
####################################################
#map http server configuration with server traffic #
####################################################

set http_server_map [::ixia::emulation_http_control_config \


-target server \
-property map \
-mode add \
-server_http_handle [keylget http_server_conf handles] \
-server_traffic_handle [keylget http_server_traffic handles] \
-match_client_totaltime 1 ]

if {[keylget http_server_map status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_server_map log]"
}
#########################
#######STATISTICS########
#########################

################################################################
# create statistics for client.
###
set client_stats_list {
http_transactions
http_users_active
http_bytes_sent
http_bytes_received
http_cookies_received
http_cookies_sent
http_cookies_rejected
http_connect_time
http_cookies_rejected_path
http_cookies_rejected_domain
http_cookies_rejected_overflow
http_cookies_rejected_probabilistic
http_connect_time
}

set http_client_stat [::ixia::emulation_http_stats \


-mode add \
-aggregation_type sum \
-stat_name $client_stats_list \
-stat_type client \
-filter_type port \
-filter_value $port_handle1 ]

if {[keylget http_client_stat status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_client_stat log]"
}

HLTAPI Commands, Release 2.80 Rev. B A-121


A IxLoad Examples

set server_stats_list {
http_requests_received
http_requests_successful
http_requests_failed
http_sessions_rejected
http_session_timeouts
http_transactions_active
http_bytes_received
http_bytes_sent
http_cookies_received
http_cookies_sent
}

set http_server_stat [::ixia::emulation_http_stats \


-mode add \
-aggregation_type sum \
-stat_name $server_stats_list \
-stat_type server \
-filter_type port \
-filter_value $port_handle2 ]

if {[keylget http_server_stat status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_server_stat log]"
}
#################################################################
# Create a control configuration for client and server mappings #
#################################################################
set http_control [::ixia::emulation_http_control \
-mode add \
-map_handle [list [keylget http_client_map handles] \
[keylget http_server_map handles]] \
-results_dir_enable 1 \
-results_dir {http_results_dir} \
-force_ownership_enable 1 \
-release_config_afterrun_enable 1 \
-reset_ports_enable 1 \
-stats_required 1 ]

if {[keylget http_control status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_control log]"
}

###############
# Start test
###
set http_control [::ixia::emulation_http_control \
-handle [keylget http_control handles] \
-mode start ]

if {[keylget http_control status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget http_control log]"
}

###################
# Get statistics
###
set client_stats_result [::ixia::emulation_http_stats \
-mode get \
-handle [keylget http_client_stat handles] ]

if {[keylget client_stats_result status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget client_stats_result log]"
}

set server_stats_result [::ixia::emulation_http_stats \


-mode get \
-handle [keylget http_server_stat handles] ]

if {[keylget server_stats_result status] != $::SUCCESS} {


return "FAIL - $test_name - [keylget server_stats_result log]"
}

A-122 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

###########################
# Print client statistics #
###########################
ixPuts "CLIENT STATISTICS:"
foreach {stat_handle} [keylkeys client_stats_result] {
if {$stat_handle != "status"} {
set stat_handle_kl [keylget client_stats_result $stat_handle]
foreach {stat_type} [keylkeys stat_handle_kl] {
set stat_type_kl [keylget stat_handle_kl $stat_type]
foreach {stat_name} [keylkeys stat_type_kl] {
set stat_name_kl [keylget stat_type_kl $stat_name]
ixPuts -nonewline [format \
"%10s %10s %40s" $stat_handle $stat_type $stat_name]

set timestamp [lindex [lsort -dictionary \


[keylkeys stat_name_kl]] end]

ixPuts [format "%15s %15s" $timestamp \


[keylget stat_name_kl $timestamp]]

}
}
}
}

###########################
# Print server statistics #
###########################
ixPuts "SERVER STATISTICS:"
foreach {stat_handle} [keylkeys server_stats_result] {
if {$stat_handle != "status"} {
set stat_handle_kl [keylget server_stats_result $stat_handle]
foreach {stat_type} [keylkeys stat_handle_kl] {
set stat_type_kl [keylget stat_handle_kl $stat_type]
foreach {stat_name} [keylkeys stat_type_kl] {
set stat_name_kl [keylget stat_type_kl $stat_name]
ixPuts -nonewline [format \
"%10s %10s %40s" $stat_handle $stat_type $stat_name]

set timestamp [lindex [lsort -dictionary \


[keylkeys stat_name_kl]] end]

ixPuts [format "%15s %15s" $timestamp \


[keylget stat_name_kl $timestamp]]

}
}
}
}

} error

##################################################
# Disconnect and cleanup variables and sessions
###
::ixia::cleanup_session
if {$error != ""} {
ixPuts $error
} else {
return "SUCCESS - $test_name - [clock format [clock seconds]]"
}

HLTAPI Commands, Release 2.80 Rev. B A-123


A IxLoad Examples

TELNET (TELNET_basic_config.tcl)
################################################################################
# #
# Description: #
# This sample creates a Telnet client and server basic configuration. #
# Telnet traffic is sent from clent side to server side. #
# At the end statistics are being retrieved. #
# #
# Module: #
# The sample was tested on a LM1000STXS4-256 module. #
# #
################################################################################

package require Ixia

set test_name [info script]

set chassisIP sylvester


set port_list [list 4/1 4/2]

################################################################################
# Connect to the chassis, reset to factory defaults and take ownership
################################################################################
set connect_status [ixia::connect \
-reset \
-device $chassisIP \
-port_list $port_list \
-username ixiaApiUser ]
if {[keylget connect_status status] != $SUCCESS} {
return "FAIL - $test_name - [keylget connect_status log]"
}

set port_handle1 [keylget connect_status \


port_handle.$chassisIP.[lindex $port_list 0]]

set port_handle2 [keylget connect_status \


port_handle.$chassisIP.[lindex $port_list 1]]

################################################################################
# Client network
################################################################################
set client_network [ixia::emulation_telnet_config \
-target client \
-property telnet \
-mode add \
-port_handle $port_handle1 \
-mac_mapping_mode macip \
-source_port_from 1024 \
-source_port_to 65535 \
-dns_cache_timeout 35000 \
-grat_arp_enable 1 \
-congestion_notification_enable 1 \
-time_stamp_enable 1 \
-keep_alive_time 9 \
-keep_alive_probes 75 \
-keep_alive_interval 9600 \
-fin_timeout 60 \
-receive_buffer_size 4096 \
-transmit_buffer_size 4096 \
-syn_ack_retries 5 \
-syn_retries 5 \
-retransmit_retries 15 ]

if {[keylget client_network status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_network log]"
}

set client_network_handle [keylget client_network handles]

A-124 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

################################################################################
# Client network range
################################################################################
set client_network_range [ixia::emulation_telnet_config \
-handle $client_network_handle \
-property network \
-mode add \
-ip_address_start 20.0.1.1 \
-network_mask 255.255.0.0 \
-ip_count 100 \
-ip_increment_step 0.0.0.1 \
-gateway 0.0.0.0 \
-mac_address_start 00.01.01.01.01.00 \
-mac_increment_step 00.00.00.00.00.01 ]

if {[keylget client_network_range status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_network_range log]"
}

set client_network_range_handle [keylget client_network_range handles]

################################################################################
# Client DNS
################################################################################
set client_dns [::ixia::emulation_telnet_config \
-handle $client_network_handle \
-property dns \
-mode add \
-dns_server 20.0.2.1 \
-dns_suffix .ixiacom.com ]

if {[keylget client_dns status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_dns log]"
}
set client_dns_handle1 [keylget client_dns handles]

################################################################################
# Client DNS
################################################################################
set client_dns [::ixia::emulation_telnet_config \
-handle $client_network_handle \
-property dns \
-mode add \
-dns_server 20.0.2.2 \
-dns_suffix .ixiacom.com ]

if {[keylget client_dns status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_dns log]"
}
set client_dns_handle2 [keylget client_dns handles]

################################################################################
# Server network
################################################################################
set server_network [ixia::emulation_telnet_config \
-target server \
-property telnet \
-mode add \
-port_handle $port_handle2 \
-mac_mapping_mode macip \
-source_port_from 1024 \
-source_port_to 65535 \
-dns_cache_timeout 35000 \
-grat_arp_enable 1 \
-congestion_notification_enable 1 \
-time_stamp_enable 1 \
-keep_alive_time 9 \
-keep_alive_probes 75 \
-keep_alive_interval 9600 \
-fin_timeout 60 \
-receive_buffer_size 4096 \
-transmit_buffer_size 4096 \
-syn_ack_retries 5 \

HLTAPI Commands, Release 2.80 Rev. B A-125


A IxLoad Examples

-syn_retries 5 \
-retransmit_retries 15 ]

if {[keylget server_network status] != $SUCCESS} {


return "FAIL - $test_name - [keylget server_network log]"
}

set server_network_handle [keylget server_network handles]

################################################################################
# Server network range
################################################################################
set server_network_range [ixia::emulation_telnet_config \
-handle $server_network_handle \
-property network \
-mode add \
-ip_address_start 20.0.3.1 \
-ip_count 1 \
-network_mask 255.255.0.0 \
-gateway 0.0.0.0 \
-ip_increment_step 0.0.0.1 \
-mac_address_start 00.03.03.03.03.00 \
-mac_increment_step 00.00.00.00.00.01 \
]

if {[keylget server_network_range status] != $SUCCESS} {


return "FAIL - $test_name - [keylget server_network_range log]"
}

set server_network_range_handle [keylget server_network_range handles]

################################################################################
# Server traffic
################################################################################
set server_traffic [::ixia::emulation_telnet_traffic_config \
-target server \
-property traffic \
-mode add ]

if {[keylget server_traffic status] != $SUCCESS} {


return "FAIL - $test_name - [keylget server_traffic log]"
}

set server_traffic_handle [keylget server_traffic handles]

################################################################################
# Server traffic agent
################################################################################
set server_agent [::ixia::emulation_telnet_traffic_config \
-handle $server_traffic_handle \
-property agent \
-mode add \
-server_close_command exit \
-server_command_prompt # \
-echo_enable 1 \
-linemode_enable 1 \
-goahead_enable 0 \
-port 23 ]

if {[keylget server_agent status] != $SUCCESS} {


return "FAIL - $test_name - [keylget server_agent log]"
}

set server_agent_handle [keylget server_agent handles]

A-126 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

################################################################################
# Server traffic-network mapping
################################################################################
set server_map [::ixia::emulation_telnet_control_config \
-target server \
-property map \
-mode add \
-server_telnet_handle $server_network_handle \
-server_traffic_handle $server_traffic_handle \
-server_offline_time 10 \
-match_client_totaltime 1 ]

if {[keylget server_map status] != $SUCCESS} {


return "FAIL - $test_name - [keylget server_map log]"
}

set server_map_handle [keylget server_map handles]

################################################################################
# Client traffic
################################################################################
set client_traffic [::ixia::emulation_telnet_traffic_config \
-target client \
-property traffic \
-mode add ]

if {[keylget client_traffic status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_traffic log]"
}
set client_traffic_handle [keylget client_traffic handles]

################################################################################
# Client agent
################################################################################
set client_agent [::ixia::emulation_telnet_traffic_config \
-handle $client_traffic_handle \
-property agent \
-mode add \
-target client \
-options_enable 1 \
-default_command_prompt # \
-expect_timeout 10 ]

if {[keylget client_agent status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_agent log]"
}
set client_agent_handle [keylget client_agent handles]

################################################################################
# Client commands
################################################################################
set command_1 [::ixia::emulation_telnet_traffic_config \
-handle $client_agent_handle \
-property action \
-mode add \
-target client \
-command open \
-expect login: \
-server_ip 20.0.3.1 ]

if {[keylget command_1 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget command_1 log]"
}
set command_handle1 [keylget command_1 handles]

set command_2 [::ixia::emulation_telnet_traffic_config \


-handle $client_agent_handle \
-mode add \
-property action \
-target client \
-command login \
-send ixia \
-expect password: ]

HLTAPI Commands, Release 2.80 Rev. B A-127


A IxLoad Examples

if {[keylget command_2 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget command_2 log]"
}
set command_handle2 [keylget command_2 handles]

set command_3 [::ixia::emulation_telnet_traffic_config \


-handle $client_agent_handle \
-mode add \
-property action \
-target client \
-command password \
-send ixia \
-expect # ]

if {[keylget command_3 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget command_3 log]"
}
set command_handle3 [keylget command_3 handles]

set command_4 [::ixia::emulation_telnet_traffic_config \


-handle $client_agent_handle \
-mode add \
-target client \
-property action \
-command think \
-max_interval 10000 \
-min_interval 10000 ]

if {[keylget command_4 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget command_4 log]"
}
set command_handle4 [keylget command_4 handles]

set command_5 [::ixia::emulation_telnet_traffic_config \


-handle $client_agent_handle \
-mode add \
-property action \
-target client \
-command exit \
-send exit ]

if {[keylget command_5 status] != $SUCCESS} {


return "FAIL - $test_name - [keylget command_5 log]"
}
set command_handle5 [keylget command_5 handles]

################################################################################
# Client traffic-network mapping
################################################################################
set client_map [::ixia::emulation_telnet_control_config \
-target client \
-property map \
-mode add \
-client_iterations 1 \
-client_telnet_handle $client_network_handle \
-client_traffic_handle $client_traffic_handle \
-objective_type users \
-objective_value 100 \
-ramp_up_type users_per_second \
-ramp_up_value 1 \
-client_sustain_time 20 \
-port_map_policy pairs \
-ramp_down_time 20 \
-client_offline_time 0 \
-client_total_time 140 \
-client_standby_time 0 ]

if {[keylget client_map status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_map log]"
}
set client_map_handle [keylget client_map handles]

A-128 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

################################################################################
# Client and server mapping
################################################################################
set results_dir [pwd]/results/[clock seconds]
set control_status [::ixia::emulation_telnet_control \
-mode add \
-map_handle [list \
$client_map_handle $server_map_handle] \
-force_ownership_enable 1 \
-release_config_afterrun_enable 1 \
-reset_ports_enable 1 \
-stats_required 1 \
-results_dir_enable 1 \
-results_dir $results_dir ]

if {[keylget control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget control_status log]"
}

set test_handle [keylget control_status handles]

################################################################################
# Client statistics
################################################################################
set client_stats_list {
telnet_active_conn
telnet_total_conn_requested
telnet_total_conn_succeeded
telnet_total_conn_failed
telnet_total_bytes_sent
telnet_total_bytes_received
telnet_total_bytes_sent_and_received
}
set stats_result [::ixia::emulation_telnet_stats \
-mode add \
-aggregation_type sum \
-stat_name $client_stats_list \
-stat_type client ]

if {[keylget stats_result status] != $SUCCESS} {


return "FAIL - $test_name - [keylget stats_result log]"
}
set client_stat_handle [keylget stats_result handles]

################################################################################
# Server statitics
################################################################################
set server_stats_list {
telnet_active_conn
telnet_total_accepted_conn
telnet_total_bytes_sent
telnet_total_bytes_received
}

set stats_result [::ixia::emulation_telnet_stats \


-mode add \
-aggregation_type sum \
-stat_name $server_stats_list \
-stat_type server ]

if {[keylget stats_result status] != $SUCCESS} {


return "FAIL - $test_name - [keylget stats_result log]"
}
set server_stat_handle [keylget stats_result handles]

################################################################################
# Start test
################################################################################
set control_status [::ixia::emulation_telnet_control \
-handle $test_handle \
-mode start ]

HLTAPI Commands, Release 2.80 Rev. B A-129


A IxLoad Examples

if {[keylget control_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget control_status log]"
}

################################################################################
# Get statistics
################################################################################
set client_stats_result [::ixia::emulation_telnet_stats \
-mode get \
-handle $client_stat_handle ]

if {[keylget client_stats_result status] != $SUCCESS} {


return "FAIL - $test_name - [keylget client_stats_result log]"
}

set server_stats_result [::ixia::emulation_telnet_stats \


-mode get \
-handle $server_stat_handle ]

if {[keylget server_stats_result status] != $SUCCESS} {


return "FAIL - $test_name - [keylget server_stats_result log]"
}

################################################################################
# Print client statistics
################################################################################
puts "CLIENT STATISTICS:"
foreach {stat_handle} [keylkeys client_stats_result] {
if {$stat_handle != "status"} {
set stat_handle_kl [keylget client_stats_result $stat_handle]
foreach {stat_type} [keylkeys stat_handle_kl] {
set stat_type_kl [keylget stat_handle_kl $stat_type]
foreach {stat_name} [keylkeys stat_type_kl] {
set stat_name_kl [keylget stat_type_kl $stat_name]
puts -nonewline [format \
"%10s %10s %40s" $stat_handle $stat_type $stat_name]

set timestamp [lindex [lsort -dictionary \


[keylkeys stat_name_kl]] end]

puts [format "%15s %15s" $timestamp \


[keylget stat_name_kl $timestamp]]

}
}
}
}

################################################################################
# Print server statistics
################################################################################
puts "SERVER STATISTICS:"
foreach {stat_handle} [keylkeys server_stats_result] {
if {$stat_handle != "status"} {
set stat_handle_kl [keylget server_stats_result $stat_handle]
foreach {stat_type} [keylkeys stat_handle_kl] {
set stat_type_kl [keylget stat_handle_kl $stat_type]
foreach {stat_name} [keylkeys stat_type_kl] {
set stat_name_kl [keylget stat_type_kl $stat_name]
puts -nonewline [format \
"%10s %10s %40s" $stat_handle $stat_type $stat_name]

set timestamp [lindex [lsort -dictionary \


[keylkeys stat_name_kl]] end]

puts [format "%15s %15s" $timestamp \


[keylget stat_name_kl $timestamp]]

}
}
}
}

A-130 HLTAPI Commands, Release 2.80 Rev. B


IxLoad Examples

set cleanup_status [::ixia::cleanup_session ]

if {[keylget cleanup_status status] != $SUCCESS} {


return "FAIL - $test_name - [keylget cleanup_status log]"
}

return "SUCCESS - $test_name - [clock format [clock seconds]]"

HLTAPI Commands, Release 2.80 Rev. B A-131


A IxLoad Examples

A-132 HLTAPI Commands, Release 2.80 Rev. B

Вам также может понравиться