You are on page 1of 80

Aptixia Stack Manager API Guide

Release 2.2
Part No. 913-0491-01 Rev. A
September 2008

Copyright 2008 Ixia. All rights reserved.


This publication may not be copied, in whole or in part, without Ixias 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.22719.
Ixia, the Ixia logo, and all Ixia brand names and product names in this document are either trademarks or registered trademarks of
Ixia in the United States and/or other countries. All other trademarks belong to their respective owners.
The information herein is furnished for informational use only, is subject to change by Ixia without notice, and should not be construed as a commitment by Ixia. Ixia assumes no responsibility or liability for any errors or inaccuracies contained in this publication.

Corporate
Headquarters

Ixia Worldwide Headquarters


26601 W. Agoura Rd.
Calabasas, CA 91302
USA
+1 877 FOR IXIA (877 367 4942)
+1 818 871 1800 (International)
(FAX) +1 818 871 1805
sales@ixiacom.com

Web site: www.ixiacom.com


General: info@ixiacom.com
Investor Relations: ir@ixiacom.com
Training: training@ixiacom.com
Support: support@ixiacom.com
+1 877 367 4942
+1 818 871 1800 Option 1 (outside USA)
online support form:
http://www.ixiacom.com/support/inquiry/

EMEA

Ixia Europe Limited


One Globeside, Fieldhouse Lane
Marlow, SL7 1HZ
United Kingdom
+44 1628 405750

Support: eurosupport@ixiacom.com
+44 1628 405797
online support form:
http://www.ixiacom.com/support/inquiry/
?location=emea

FAX +44 1628 405790


salesemea@ixiacom.com

Asia Pacific

Japan

Asia Pacific Representative Office


210 Middle Road
#08-01 IOI Plaza
Singapore 188994
+65 6332 0126
Support-Field-Asia-Pacific@ixiacom.com

Support: Support-Field-AsiaPacific@ixiacom.com

Ixia KK
Aioi Sampo Shinjuku Building, 16th Floor
3-25-3 Yoyogi Shibuya-Ku
Tokyo 151-0053

Support: support@ixiacom.com

Japan
+81 3 5365 4690
(FAX) +81 3 3299 6263

+1 818 871 1800 (Option 1)


online support form:
http://www.ixiacom.com/support/inquiry/

+81 3 5365 4690


online support form:
http://www.ixiacom.com/support/inquiry/

ixiajapan@ixiacom.com

India

Ixia India
No. 508, 6th Main 6th Cross
ST Bed, Koramangala 4th Block
Bangalore 560 034
India

Support: support-india@ixiacom.com
+91 80 32918500
online support form:
http://www.ixiacom.com/support/inquiry/
?location=india

+91 80 25633570
(FAX) +91 80 25633487
ixiaindia@ixiacom.com
Part No. 913-0491-01 Rev. A
September 23, 2008

ii

Aptixia Stack Manager API Guide, Release 2.2

Table of Contents
Chapter 1

Introduction to the Stack Manager API

What Is Stack Manager? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1


Available Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
IxOS Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1

How To Use This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2


New In this Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

Chapter 2

Stack Manager API Overview

Stack Manager Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2


Building a stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
API command usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Commands as objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Destroying objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
List manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-6

Sub-commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6

Aptixia Stack Manager API Guide, Release 2.2

Table of Contents

Chapter 3

Sample Tcl Script

Sample Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1


Required Configuration Steps . . . . . . . . . . . . . . . . . . . . . . . 3-8
Initial Overhead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-8
Add the chassis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Create a port group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Add IP addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Repeat for more port groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Configure ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10

Chapter 4

Stack Manager API Command Listing

TestServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
ChassisConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
Chassis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9
PortGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
DoDToPortGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15

Chapter 5

Stack Manager Plug-in Properties

Network Technologies/Link Types . . . . . . . . . . . . . . . . . . . . 5-2


EthernetPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2
VLAN Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4

ATMPlugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-7

Aptixia Stack Manager API Guide, Release 2.2

Table of Contents

Encapsulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10
IpV4V6Plugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10
IpV4V6Range (IpV4V6Plugin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-10
DHCP Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-12

EmulatedRouter-Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
IpV4V6Range (IpV4V6Plugin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-13

ImpairmentPlugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
IPSecPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
Note for IxVPN Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-17
Plug-in Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-17
IPSecNetwork Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18
IPSec Phase 1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19
IPSec Phase 2 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-20
IPSec Tunnel Setup Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-21

PppoxPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22
Note for IxAccess Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-22
PppoxPlugin Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-23
PPPoE Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-24
PPP Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-25
PPP Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-27

Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29
RoutesPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29
Route (RoutesPlugin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-29

DnsPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-30
DnsNameServer (DnsPlugin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-31
DnsSearch (DnsPlugin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-31
DnsHost (DnsPlugin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-32

TCPPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-33
FilterPlugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-34
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-35

Aptixia Stack Manager API Guide, Release 2.2

Table of Contents

Aptixia Stack Manager API Guide, Release 2.2

Chapter 1:

Introduction to the Stack


Manager API

This chapter provides a brief overview of the features and capabilities of the
Stack Manager Tcl API. It is organized into the following topics:

What Is Stack Manager? on page 1-1

How To Use This Guide on page 1-2

New In this Release on page 1-2

What Is Stack Manager?


Stack Manager provides a centralized means for setting up Ixia ports to be used
in network test applications. The effect is to configure Ixia ports such that they
may be used as if they were stand-alone Linux hosts.
Stack Manager is a software application, complete with its own graphic user
interface and Tcl API. It is included with a growing number of Ixia test applications, including IxChariot, IxVerify, IxNetwork, and IxLoad.

Available
Documentation

IxOS Support

Documentation for Stack Manager is provided in the following manuals:

Stack Manager User Guide Describes all aspects of the product except for
the Tcl API.

Stack Manager API Guide Provides detailed information about the Stack
Manager Tcl API.

Table 1-1 describes the IxOS support for each Stack Manager feature.
Table 1-1.

IxOS support for Stack Manager features

Feature

IxOS 5.00

IxOS 5.10 SP5

Supported

Supported

Hardware Types:
Ethernet

Aptixia Stack Manager API Guide, Release 2.2

1-1

Introduction to the Stack Manager API


How To Use This Guide

Table 1-1.

IxOS support for Stack Manager features (Continued)

Feature

IxOS 5.00

IxOS 5.10 SP5

ATM

Supported

Supported

IPv4 and IPv6

Supported

Supported

Emulated Router

Supported

Supported

Impairment

Supported

Supported

PPPoX

Supported

Supported

IPSec

Not Supported

Supported

Routes

Supported

Supported

Filter

Supported

Supported

DNS

Supported

Supported

TCP

Supported

Supported

Encapsulations:

Services:

How To Use This Guide


This Tcl API guide is organized into the following chapters:

Chapter 2, Stack Manager API Overview Provides an overview of the


objects and API commands used to construct Tcl programs for Stack Manager.

Chapter 3, Sample Tcl Script Presents a sample Tcl script used to configure
two Ixia port groups.

Chapter 4, Stack Manager API Command Listing Describes all of the commands that are available for constructing a Stack Manager configuration.

Chapter 5, Stack Manager Plug-in Properties Describes the network stack


plug-ins provided by Stack Manager.

New In this Release


Stack Manager has been enhanced in this release to provide support for:

1-2

DHCP

IPSec

PPPoX

Stacked VLAN tags

MAC Address Ranges

Aptixia Stack Manager API Guide, Release 2.2

Introduction to the Stack Manager API


New In this Release

Enhanced Impairment options

Jumbo frame support (via the MTU parameter added in Service Pack 4)

EtherType option for VLANs

Aptixia Stack Manager API Guide, Release 2.2

1-3

Introduction to the Stack Manager API


New In this Release

1-4

Aptixia Stack Manager API Guide, Release 2.2

Chapter 2:

Stack Manager API


Overview

This chapter provides an overview of the objects and API commands used to
construct Tcl programs for Stack Manager. It is organized into the following topics:

Stack Manager Objects on page 2-2

Building a stack on page 2-3

API command usage on page 2-5

Aptixia Stack Manager API Guide, Release 2.2

2-1

Stack Manager API Overview


Stack Manager Objects

Stack Manager Objects


Figure 2-1 illustrates the organization of the steps and objects used in the construction of a complete stack manager control program.
Figure 2-1.

API Overview

Test

chassisConfig

portGroupList
(portGroup)

portList (StringList)

Stack

chassisChain (chassis)

globalPluginList

ATMPlugin

EthernetPlugin

Services
FilterPlugin

childrenList
(Encapsulations)

TCPPlugin

DnsPlugin
ImpairmentPlugin
RoutesPlugin
PPPoXPlugin

EmulatedRouterPlugin

IpV4V6Plugin

IPSecPlugin

The Test object holds all of the information that is pertinent to a Stack Manager
setup. The two top-level lists are:

2-2

chassisConfig and chassisChain (chassis) this list holds information about


Ixia chassis, from which ports will be assigned to port groups.

portGroupList (portGroup) and portList a list of port groups.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Overview


Building a stack

Two principal lists are associated with each portGroup:

Stack defines the network stack.

globalPluginList a list of plug-ins that correspond to the global services


associated with the stack.

The Stack is said to be instantiated with a networking technology (Ethernet or


ATM in the figure) and contains a childrenList property onto which network
stack plug-ins are hooked, including the Encapsulations shown in Figure 2-1.

Building a stack
The Stack Manager Tcl API has the ability to construct an branched non-cyclic
stack of arbitrary complexity, but it is important to understand how to add elements to levels of the stack. For example, we add an IP element to a newly
instantiated PortGroup via:
$portGroupA stack childrenList AddTail -itemtype
IpV4V6Plugin
set ipA [$portGroupA stack childrenList Get 0]

Pictorially, this is shown in Figure 2-2, with the GUI equivalent on the right.
Figure 2-2.

Stack construction

portGroupList
(portGroup)

portGroupA

Stack

portGroupA stack

EthernetPlugin
portGroupA stack childrenList
[0]

ipA
IpV4V6Plugin

We may now add a separate branch of the stack via:


$portGroupA stack childrenList AddTail -itemtype
ImpairmentPlugin
set impB [$portGroupA stack childrenList Get 1]

Pictorially, this is shown in Figure 2-2, with the GUI equivalent on the right.

Aptixia Stack Manager API Guide, Release 2.2

2-3

Stack Manager API Overview


Building a stack

Figure 2-3.

Stack construction - 2

portGroupList
(portGroup)

Stack

portGroupA

portGroupA stack

EthernetPlugin
portGroupA stack childrenList
[0]

[1]

ipA
IpV4V6Plugin
impB
ImpairmentPlugin

In order to add an IP element to the right of the bottom branch, we need to use the
childrenList of the impairment plug-in, as in:
$impB childrenList addTail -itemtype IpV4V6Plugin
set $ipB [$impB childrenList Get 0]

Pictorially, this is shown in Figure 2-2, with the GUI equivalent shown below.
Figure 2-4.

Stack construction - 3

portGroupList
(portGroup)

Stack

portGroupA

portGroupA stack

EthernetPlugin
portGroupA stack childrenList
[0]

ipA
IpV4V6Plugin
impB

[1]

ImpairmentPlugin

[0]

ipB

IpV4V6Plugin

impB childrenList

2-4

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Overview


API command usage

API command usage


The topics in this section describe the general rules and guidelines for using the
Stack Manager API:

Commands as
objects

Commands as objects on page 2-5

Destroying objects on page 2-5

Properties on page 2-5

Sub-commands on page 2-6

Exceptions on page 2-6

The Stack Manager API calls are structured in an object oriented manner. That is,
an object is created and its name is assigned to a Tcl variable. This variable is
then used as the name of a command. For example:
set testServer [::AptixiaClient::TestServer ...]
set session [$testServer OpenSession ...]

The top-level command ::AptixiaClient::TestServer generates and returns a new


TestServer object, which is assigned to the local Tcl variable $testServer. The
$testServer object is then used as a command; its OpenSession sub-command is
used to create a session object, which is saved in the $session variable.

Destroying objects

It is important that you destroy all objects at the end of the test, or before they are
re-assigned with new contents. For example:
$session destroy
$testServer destroy

Properties

Stack Manager API objects have properties and sub-commands, which will be
separately described. Properties are accessed using the Get and Set operators. For
example, in:
$chassisChain dns Set 192.168.5.117

The object $chassisChain has a dns property which is set to 192.168.5.117.


This same value may be read back using Get:
set dns [$chassisChain dns Get]

Properties which are lists require that the zero-based index be placed after the Get
or Set. For example:
set portGroup [$test portGroupList Get 0]

This obtains the first member of the portGroupList of the object $test.
Object properties may themselves be objects, in which case their properties may
be accessed as well. For example:
set chassis [$test chassisConfig chassisChain Get 0]

Aptixia Stack Manager API Guide, Release 2.2

2-5

Stack Manager API Overview


Sub-commands

The $test object has a property chassisConfig, which has a list property chassisChain. This statement assigns the object reference to $chassis.

List manipulation
In addition to the use of an index on Get and Set operations, the following additional sub-commands are available for use on lists:

Sub-commands

AddTail adds a list member to the end of the list. Nothing is returned.

Delete <index> deletes the list member at the <index>d position (zerobased).

Size returns the number of entries in the list.

Object may have sub-commands, which follows the name of the property. A variable number of arguments may follow the sub-command. For example:
set sesssion [$testServer OpenSession <arguments>]

The $testServer object has an OpenSession sub-command, which is invoked with


arguments unique to the sub-command.

Exceptions

None of the Stack Manager API commands return a success/failure return, unless
explicitly stated. Exceptions are raised when error occur. Raised events are listed
with each command, where applicable. Exceptions can be caught and handled by
Tcl code of the form:
set failed [ catch {
... block of code to catch an exception from ...
} rdata ]
if $failed {
... handle exception $rdata
} else {
... it worked ...
}

2-6

Aptixia Stack Manager API Guide, Release 2.2

Chapter 3:

Sample Tcl Script

This chapter describes a sample Tcl script used to configure two Ixia port groups,
which are connected back-to-back. It is organized into the following topics:

Sample Script on page 3-1

Required Configuration Steps on page 3-8

Sample Script
The Tcl program in Figure 3-1 demonstrates the simplest means of configuring
two port groups.
Figure 3-1.

Tcl Script to Configure Two Port Groups

#***************************************************************
#
# IxChariot API SDK
File: ChrSM_IPPluginTest.tcl
#
# This module contains code made available by Ixia on an AS IS
# basis. Any one receiving the module is considered to be
# licensed under Ixia copyrights to use the Ixia-provided
# source code in any way he or she deems fit, including copying
# it, compiling it, modifying it, and redistributing it, with
# or without modifications. No license under any Ixia patents
# or patent applications is to be implied from this copyright
# license.
#
# A user of the module should understand that Ixia cannot
# provide technical support for the module and will not be
# responsible for any consequences of use of the program.
#
# Any notices, including this one, are not to be removed from
# the module without the prior written consent of Ixia.
#
# For more information, contact:
#

Aptixia Stack Manager API Guide, Release 2.2

3-1

Sample Tcl Script


Sample Script

# Ixia
# 26601 W. Agoura Rd.
# Calabasas, CA 91302 USA
# Web:
http://www.ixiacom.com
# Phone: 818-871-1800
# Fax:
818-871-1805
#
# General Information:
#
e-mail: info@ixiacom.com
#
# Technical Support:
#
e-mail: support@ixiacom.com
#
#
# EXAMPLE: Ixia Endpoint Pairs Test
# This script creates and runs a test with ixia endpoint pairs
# using IP Plugin, then saves the test to a file.
#
# All attributes of this test are defined by this script.
#
#***************************************************************

#***************************************************************
# Data for test:
# Change these values for your network if desired.
#***************************************************************
set
set
set
set

testFile C:/Program Files/Ixia/IxChariot/Tests/chrSM_IPPluginTest.tst


pairCount 1
e1Addrs 172.16.1.1
e2Addrs 172.16.2.1

set
set
set
set
set

protocols TCP
scripts c:/Program Files/Ixia/IxChariot/Scripts/Response_Time.scr
timeout 5
maxWait 180
logFile pairsTest.log

set
set
set
set
set
set
set

CHASSIS1_IP 192.168.4.170
e1_mgmt 192.168.4.170;1;1
e2_mgmt 192.168.4.170;1;2
e1Mgmt 192.168.4.170 / 01 / 01
e2Mgmt 192.168.4.170 / 01 / 02
gateway1 172.16.2.1
gateway2 172.16.1.1

#***************************************************************
# Procedure to configure ixia port using Aptixia API
#***************************************************************
proc configureIxiaPorts {myHost myPort mySession e1_mgmt e2_mgmt} {
global CHASSIS1_IP e1Addrs e2Addrs gateway1 gateway2
# Start testServer and use the instance invoked by ixchariot
# ---------------------------------------------------------# This section of code sets

3-2

Aptixia Stack Manager API Guide, Release 2.2

Sample Tcl Script


Sample Script

# the server transaction context tc to a particular test server


#
set tc [::AptixiaClient::Core::Facility GetDefaultTransactionContext]
$tc Init $myHost $myPort
set ::mySesObj [::AptixiaClient::Session %AUTO% -transactioncontext $tc objectid $mySession]
#
# Get existing test from our test server session
#
set ::myTestId [$::mySesObj editableTest cget -objectid]
set ::myTest [::AptixiaClient::GenericTestModel %AUTO% -transactioncontext $tc
-objectid $::myTestId]
#
# Add some chassiss into the testmodel
# the chassiss are in the subobject pathway
#
#
chassisConfig -> chassisChain
#
$::myTest chassisConfig chassisChain AddTail
set ccObj [$::myTest chassisConfig chassisChain Get 0]
$ccObj dns Set $CHASSIS1_IP ;# set chassis name
$ccObj cableLength Set 3
$ccObj physicalChain Set false
###
# Set up first portgroup
set portSpec $e1_mgmt
set pg_idx [expr [$::myTest portGroupList Size] -2]
set pgObj [$::myTest portGroupList Get $pg_idx]
$pgObj name Set My first port group
$pgObj portList AddTail $portSpec
# Set up Ethernet Stack on My first port group - pgObj
$pgObj _Instantiate stack EthernetPlugin
$pgObj stack enabled Set true
$pgObj stack mac Set 00:00:00:00:01:01
# Set up IP plugin on My first port group - pgObj
$pgObj stack childrenList AddTail -itemtype IpV4V6Plugin
set ippObj [$pgObj stack childrenList Get 0]
$ippObj rangeList AddTail
set iprObj [$ippObj rangeList Get 0]
$iprObj enabled Set true
$iprObj ipType Set IPv4
$iprObj ipAddress Set $e1Addrs
$iprObj incrementBy Set 0.0.0.1
$iprObj prefix Set 16
$iprObj count Set 1
$iprObj gatewayAddress Set $gateway1

Aptixia Stack Manager API Guide, Release 2.2

3-3

Sample Tcl Script


Sample Script

# Add second chassis to the list


$::myTest
set ccObj
$ccObj
$ccObj
$ccObj
###

chassisConfig chassisChain AddTail


[$::myTest chassisConfig chassisChain Get 1]
dns Set $CHASSIS1_IP ;# set chassis name
cableLength Set 3
physicalChain Set false

# Set up second portgroup


set portSpec $e2_mgmt
set pg_idx [expr [$::myTest portGroupList Size] -1]
set pgObj1 [$::myTest portGroupList Get $pg_idx]
$pgObj1 name Set My Second Port Group
$pgObj1 portList AddTail $portSpec
# Set up Ethernet Stack on My second Port Group - pgObj1
$pgObj1 _Instantiate stack EthernetPlugin
$pgObj1 stack enabled Set true
$pgObj1 stack mac Set 00:00:00:00:02:02
# Set up IP plugin on My second Port Group - pgObj1
$pgObj1 stack childrenList AddTail -itemtype IpV4V6Plugin
set ippObj [$pgObj1 stack childrenList Get 0]
$ippObj rangeList AddTail
set iprObj [$ippObj rangeList Get 0]
$iprObj enabled Set true
$iprObj ipType Set IPv4
$iprObj ipAddress Set $e2Addrs
$iprObj incrementBy Set 0.0.0.1
$iprObj gatewayAddress Set $gateway2
$iprObj prefix Set 16
$iprObj count Set 1
# prompt $interactive hit return to TestConfigure
$::myTest TestConfigure ;# applied config on ports
# All enums for objects are pre-defined within the object class as
# read-only class variables, like
# kDeep kShallow etc...
set xml1 [lindex [$::myTest _GetXml \
$::AptixiaClient::XProtocolObject::eSerializationDepth::kDeep \
true] 0]
puts stdout $xml1
return $xml1
}
#***************************************************************
# Procedure to log errors if there is extended info
#***************************************************************
proc pLogError {handle code where} {
global logFile
# Define symbols for the errors were interested in.
set CHR_OPERATION_FAILED CHRAPI 108

3-4

Aptixia Stack Manager API Guide, Release 2.2

Sample Tcl Script


Sample Script

set CHR_OBJECT_INVALID

CHRAPI 112

# Something failed: show what happened.


puts $where failed: [chrApi getReturnMsg $code]
# See if there is extended error information available.
# Its is only meaningful for certain errors.
if {$code == $CHR_OPERATION_FAILED
|| $code == $CHR_OBJECT_INVALID} {
# Try to get the extended error information
set rc [catch {set info [chrCommonError getInfo \
$handle ALL]}]
if {$rc != 0} {
# We can ignore all non-success return codes here
# because most should not occur (the apis been
# initialized and the detail level is okay),
# and the NO_SUCH_VALUE return code here means
# there is no info available.
set info <None>
}
set logFile [open $logFile a+]
set timestamp [clock format [clock seconds]]
puts $logFile $timestamp $where failed
puts $logFile $timestamp $info
# Flush forces immediate write to file
flush $logFile
}
}
#***************************************************************
#
# Script main
#
# catch is used when there could be extended error information,
# so we can log what happened.
#***************************************************************
# Load the Chariot API.
#
# NOTE: If you are using Tcl Version 8.0.p5 or older
# then you will need to modify the following lines to load and
# use Chariot instead of ChariotExt. For example:
# load Chariot
# package require Chariot
lappend ::auto_path c:/Program\ Files/ixia/ixchariot/aptixia/lib/common/
tclclient
load ChariotExt
package require ChariotExt
package require AptixiaClient 2.0
# Create a new test.
puts Create the test...
set test [chrTest new]

Aptixia Stack Manager API Guide, Release 2.2

3-5

Sample Tcl Script


Sample Script

# Now get the current reference to the test server


puts Getting the test server reference
if {[catch {chrTest getTestServerSession $test myHost myPort mySession}]} {
pLogError $test $errorCode chrTest getTestServerSession $test myHost myPort
mySession
chrTest delete $test
return
}
# Set the test filename for saving later.
puts Set test filename...
if {[catch {chrTest set $test FILENAME $testFile}]} {
pLogError $test $errorCode chrTest set FILENAME
chrTest delete $test
return
}
# Define some pairs for the test.
for {set index 0} {$index < $pairCount} {incr index} {
# Create a pair.
puts Create a pair...
set pair [chrPair new]
# Set pair attributes from our lists.
puts Set pair atttributes...
chrPair set $pair COMMENT Pair [expr $index + 1]
chrPair set $pair E1_ADDR $e1Addrs
chrPair set $pair E2_ADDR $e2Addrs
chrPair set $pair USE_CONSOLE_E1 True
chrPair set $pair USE_SETUP_E1_E2 False
chrPair set $pair CONSOLE_E1_ADDR $e1Mgmt
chrPair set $pair SETUP_E1_E2_ADDR $e2Addrs
chrPair set $pair PROTOCOL $protocols

# Define a script for use by this pair.


# We need to check for errors with extended info here.
set script $scripts
if {[catch {chrPair useScript $pair $script}]} {
pLogError $pair $errorCode chrPair useScript
chrTest delete $test
return
}
# Add the pair to the test.
puts Add the pair to the test...
if {[catch {chrTest addPair $test $pair}]} {
pLogError $test $errorCode chrTest addPair
chrTest delete $test
return
}
}

3-6

Aptixia Stack Manager API Guide, Release 2.2

Sample Tcl Script


Sample Script

puts Configure ixia endpoints using AptIxia...


set myConfig [configureIxiaPorts $myHost $myPort $mySession $e1_mgmt $e2_mgmt]
puts Importing the ixia configuration...
if {[catch {chrTest set $test IXIA_NETWORK_CONFIGURATION $myConfig}]} {
pLogError $test $errorCode chrTest set $test IXIA_NETWORK_CONFIGURATION
chrTest delete $test
return
}

# The test is complete, so now we can run it.


puts Run the test...
if {[catch {chrTest start $test}]} {
pLogError $test $errorCode chrTest start
chrTest delete $test
return
}
# Wait for the test to stop.
# Well check in a loop here every 5 seconds
# then call it an error after two minutes if
# the test is still not stopped.
set timer 0
set isStopped 0
puts Waiting for the test to stop...
while {!$isStopped && $timer < $maxWait} {
set isStopped [chrTest isStopped $test $timeout]
if {!$isStopped} {
set timer [expr $timer + $timeout]
puts Waiting for test to stop... ($timer)
}
}
if {!$isStopped} {
# Show this as a timed out error
set rc CHRAPI 118
pLogError $test $rc chrTest isStopped
chrTest delete $test
return
}
# Save the test so we can show results later.
puts Save the test...
if {[catch {chrTest save $test}]} {
pLogError $test $errorCode chrTest save
return
}
chrTest delete $test
# Were finished!
return

Aptixia Stack Manager API Guide, Release 2.2

3-7

Sample Tcl Script


Required Configuration Steps

Required Configuration Steps


Six basic steps are needed to accomplish an Ixia network configuration. These
steps correspond to the comments within the source code.

Step 1: Initial Overhead

Step 2: Add the chassis

Step 3: Create a port group

Step 4: Add IP addresses

Step 5: Repeat for more port groups

Step 6: Configure ports

The descriptions of the configuration steps refer to the script that is presented in
Sample Script on page 3-1.

Step 1: Initial
Overhead

Step 1 involves performing a package require for the Aptixia package, defining
variables for the script, and then obtaining command instances for necessary test
items: session and test.
The package require statements appear near the beginning of main:
. . .
package require ChariotExt
package require AptixiaClient 2.0
. . .

Obtaining command instances for session and test are included in procedure
proc configureIxiaPorts:
. . .
set ::mySesObj [::AptixiaClient::Session %AUTO%
-transactioncontext $tc -objectid $mySession]
. . .
set ::myTest [::AptixiaClient::GenericTestModel %AUTO%
-transactioncontext $tc -objectid $::myTestId]
. . .

Step 2: Add the


chassis

Also in procedure proc configureIxiaPorts, the first chassis is added to the chassis chain associated with the test and its address is set into the DNS property:
# Add some chassis into the testmodel
#. . .
$::myTest chassisConfig chassisChain AddTail
set ccObj [$::myTest chassisConfig chassisChain Get 0]
$ccObj dns Set "$CHASSIS1_IP" ;# set chassis name
$ccObj cableLength Set 3
$ccObj physicalChain Set false
. . .

3-8

Aptixia Stack Manager API Guide, Release 2.2

Sample Tcl Script


Required Configuration Steps

Step 3: Create a
port group

The script creates the port groups required for the test, and assigns each a name:
. . .
# Set up first portgroup
set portSpec "$e1_mgmt"
set pg_idx [expr [$::myTest portGroupList Size] -2]
set pgObj [$::myTest portGroupList Get $pg_idx]
$pgObj name Set "My first port group"
$pgObj portList AddTail $portSpec
. . .

The script also associates each port group with a specific network technology. In
the case of the sample script, the network technology is Ethernet (EthernetPlugin).
. . .
# Set up Ethernet Stack on "My first port group" - pgObj
$pgObj _Instantiate stack "EthernetPlugin"
$pgObj stack enabled Set true
$pgObj stack mac Set "00:00:00:00:01:01"
. . .

Depending on the network technology chosen, different parameters may be set,


as described in Network Technologies/Link Types on page 5-2.

Step 4: Add IP
addresses

IPv4 and IPv6 addresses are added to the port group via the IpV4V6Plugin. This
component allows one or more ranges of IPv4 and IPv6 addresses to be assigned.
This is accomplished by the addition to the rangeList:
. . .
# Set up IP plugin on "My first port group" - pgObj
$pgObj stack childrenList AddTail -itemtype
"IpV4V6Plugin"
set ippObj [$pgObj stack childrenList Get 0]
$ippObj rangeList AddTail
set iprObj [$ippObj rangeList Get 0]
$iprObj enabled Set true
$iprObj ipType Set IPv4
$iprObj ipAddress Set $e1Addrs
$iprObj incrementBy Set 0.0.0.1
$iprObj prefix Set 16
$iprObj count Set 1
$iprObj gatewayAddress Set $gateway1
. . .

The fields in the range list element are described in IpV4V6Plugin on page 5-10.

Step 5: Repeat for


more port groups

Steps 2 through 4 are repeated for each additional port group desired.

Aptixia Stack Manager API Guide, Release 2.2

3-9

Sample Tcl Script


Required Configuration Steps

Step 6: Configure
ports

Step 6 runs the TestConfigure command, which sends the configuration information to the Ixia ports:
. . .
# prompt $interactive "hit return to TestConfigure"
$::myTest TestConfigure ;# applied config on ports
. . .

Following this, the script collects the XML code and returns it to the main program:
. . .
set xml1 [lindex [$::myTest _GetXml \
$::AptixiaClient::XProtocolObject:: \
eSerializationDepth::kDeep true] 0]
puts stdout $xml1
return $xml1
. . .

This is followed by the testing that is to be performed using the network configuration.

3-10

Aptixia Stack Manager API Guide, Release 2.2

Chapter 4:

Stack Manager API


Command Listing

The commands that you use to construct a Stack Manager configuration are listed
in this chapter. They are listed in the order that you will require their usage,
rather than alphabetically:

TestServer on page 4-2

Session on page 4-3

Test on page 4-4

ChassisConfig on page 4-5

Chassis on page 4-9

PortGroup on page 4-10

Stack on page 4-14

DoDToPortGroup on page 4-15

Chapter 5, Stack Manager Plug-in Properties, lists and describes all of the Stack
Manager plug-ins:

EthernetPlugin on page 5-2

ATMPlugin on page 5-7

IpV4V6Plugin on page 5-10

EmulatedRouter-Plugin on page 5-13

ImpairmentPlugin on page 5-15

IPSecPlugin on page 5-17

PppoxPlugin on page 5-22

RoutesPlugin on page 5-29

DnsPlugin on page 5-30

TCPPlugin on page 5-33

FilterPlugin on page 5-34

Aptixia Stack Manager API Guide, Release 2.2

4-1

Stack Manager API Command Listing


TestServer

TestServer

Description

The operation of the Stack Manager software requires the use of a test server that
normally operates in another process on your computer. This command finds that
process and returns the object to that server.
A new TestServer instance should be created through:
set testServer [::AptixiaClient::TestServer \
%AUTO% -objectid 1]

The %AUTO% argument causes the name of the test server instance to be given
a unique name of the form ::Aptixia::TestServerN, where N is unique. The
objectid 1 argument is required to be used in exactly that format.

Properties

None.

Sub-commands
OpenSession
This sub-command opens a session with the test server necessary in order to run
a test. The format of the command is:
set session [$testServer OpenSession \
appName
userName \
sessionName \
inactivityTimeout ]

4-2

appName

the name of the application being run.

userName

the name that will be used for port reservations. Other


users will be able to view this name when reserving ports.

sessionName

a name for the session.

inactivityTimeout

not currently implemented.

session

a returned reference to the created session.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


Session

Session
Description

A new Session instance should be created through the use of the TestServer on
page 4-2 command. It is a required component to run a test with the test server.

Properties

None.

Sub-commands
CreateTest
This sub-command creates a test. The format of the command is:
set test [$session CreateTest ]

where test is a returned reference to the created test.

ConfigureTest
This sub-command sends the Stack Manager configuration to the Ixia ports associated with all of the port groups in the session. The format of the command is:
$session ConfigureTest

DeconfigureTest
This sub-command releases the Stack Manager configuration from the Ixia ports
associated with all of the port groups in the session. The format of the command
is:
$session DeconfigureTest

Aptixia Stack Manager API Guide, Release 2.2

4-3

Stack Manager API Command Listing


Test

Test

Description

A new Test instance should be created through the use of the Session command.
It embodies all of the data items needed for stack and port configuration.

Properties

Sub-commands

4-4

Table 4-1.

Test properties

Property

Default

Usage

chassisConfig

N/A

A chassis configuration object, describing the


chassis chain associated with the test. See
ChassisConfig.

checkLinkState

true

If true, link state to all of the ports will be


checked before the test is allowed to start.

name

Test1

The name of the test.

portGroupList

N/A

A list of port groups defined for the test, each of


which is a PortGroup object.

rebootPortBefore- false
Configure

If true, all of the ports in the port group will be


rebooted before they are configured.

userName

The name of the user running the test.

User

None.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


ChassisConfig

ChassisConfig

Description

This object provides certain services related to chassis and port configuration. Of
particular interest is the construction of the chassis chain. A new chassis is normally added to the chain via:
$test chassisConfig chassisChain AddTail

Note: You need to call getChassisTopology before executing any of the


ChassisConfig subcommands that take an action (such as clearOwnership,
takeOwnership, and so forth).
See getChassisTopology on page 4-6.

Properties
Table 4-2.

ChassisConfig properties

Property

Default

Usage

chassisChain

N/A

A list of chassis in the chassis chain, each of


which is described in Chassis.

Sub-commands
clearOwnership
This sub-command clears the ownership associated with a set of ports and may
optionally force the clear operation. The format of the command is:
$::myTest chassisConfig ClearOwnership $portSpecList true

where true specifies that ownership is forced off,


and $portSpecList is populated using the following commands:
Set portSpecList
[::AptixiaClient::ChassisConfig:;StringVector %AUTO%]
Set portSpec "Chassis_IP;Slot;Port"
$portSpecList Append $portSpec

createChassisChain
This sub-command creates the chassis chain using the configured chassis information. The format of the command is:
$test chassisConfig createChassisChain

Aptixia Stack Manager API Guide, Release 2.2

4-5

Stack Manager API Command Listing


ChassisConfig

getChassisTopology
This sub-command retrieves the current chassis topology, along with card and
port information. The format of the command is:
set chassis [$test chassisConfig getChassisTopology
chassisHostName]

where:
chassisHostName

is the name of the chassis to return information for.

chassis

is a returned reference to a Chassis information structure.


See Chassis below.

Chassis
The Chassis object has the following members:
chassisId

Ixia Server allocates a unique numeric identifier to each


chassis used in a test.

chassisName

The name or IP address of the chassis.

managementIp

The management IP address for the chassis.

typeName

Describes the chassis type (string).

speed

The port speed, expressed in MHz.

sequenceNumber

The sequence number of the chassis in the chassis chain.

cardVector

A list of Card objects for cards in the chassis. See Card.

master

True if the chassis is the master in the chassis chain.

Card
The Card object has the following members:

4-6

cardId

Identifier for the card.

typeName

A string that describes the type of the card.

cardVersion

The version number of the card.

fpgaVersion

The version of the FPGA

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


ChassisConfig

getPortInformation
This sub-command retrieves the current port information for a set of ports. The
format of the command is:
set portInfo [$test chassisConfig getPortInformation
portSpecList]

where:
portInfo specifies a returned reference to a port information structure. See
PortVector on page 4-7.
portSpecList is populated using the following commands:
Set portSpecList
[::AptixiaClient::ChassisConfig:;StringVector %AUTO%]
Set portSpec "Chassis_IP;Slot;Port"
$portSpecList Append $portSpec

PortVector
A port vector is a list of Port objects. The Port object has the following members:
portAddr

A PortAddress object with the following members:


chassisHostName the name or IP address of the
chassis for the port.
cardId the one-based index of the card in the chassis.
portId the one-based index of the port on the card.

typeName

A string containing the type of the card.

owner

A string containing the name of the ports owner.

linkSt

One of:
$::AptixiaClient::ChassisConfig::eLinkState::kLinkUp
$::AptixiaClient::ChassisConfig::eLinkState::kLinkLoopBack
$::AptixiaClient::ChassisConfig::eLinkState::kLinkpppUp
$::AptixiaClient::ChassisConfig::eLinkState::kLinkDown

speed

The port speed, expressed in MHz.

duplex

Identifies the port duplex (half or full).

uniquePortNo

Identifier for the port node in a card.

layer1Class

Defines the layer 1 configuration type of the port.

allowedLayer1Type

Each layer 1 class maps to one of the layer 1 types: ATM


or Ethernet.

Aptixia Stack Manager API Guide, Release 2.2

4-7

Stack Manager API Command Listing


ChassisConfig

resetPortCpu
This sub-command resets the CPUs on list of ports. The format of the command
is:
$test chassisConfig resetPortCpu portSpecList

where portSpecList is populated using the following commands:


Set portSpecList
[::AptixiaClient::ChassisConfig:;StringVector %AUTO%]
Set portSpec "Chassis_IP;Slot;Port"
$portSpecList Append $portSpec

setBaseAddress
This sub-command sets the management base address for a chassis. The format
of the command is:
$test chassisConfig setBaseAddress chassisHostName
baseIpAddress

where chassisHostName is the name of the chassis to modify,


and baseIpAddress is the base IP address.

setFactoryDefaults
This sub-command resets a list of ports to their factory defaults. The format of
the command is:
$test chassisConfig setFactoryDefaults portSpecList

where portSpecList is populated using the following commands:


Set portSpecList
[::AptixiaClient::ChassisConfig:;StringVector %AUTO%]
Set portSpec "Chassis_IP;Slot;Port"
$portSpecList Append $portSpec

takeOwnership
This sub-command take ownership of a set of ports and may optionally force the
operation. The format of the command is:
$::myTest chassisConfig TakeOwnership $portSpecList true

where true specifies that ownership is forced,


and portSpecList is populated using the following commands:
Set portSpecList
[::AptixiaClient::ChassisConfig:;StringVector %AUTO%]
Set portSpec "Chassis_IP;Slot;Port"
$portSpecList Append $portSpec

4-8

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


Chassis

Chassis

Description

This object describes a chassis, which is part of the ChassisChain property of the
ChassisConfig object. A chassis is normally created and accessed via:
$test chassisConfig chassisChain AddTail
set chassis [$test chassicConfig chassisChain Get 0]

Properties
Table 4-3.

Sub-commands

Chassis properties

Property

Default

Usage

cableLength

If this chassis is physically chained to others


through sync in/sync out cables, physicalChain is
set to true, and this is not the first chassis, then
this should be set to the length of cable connecting the chassis to the previous chassis. Chassis
cables are sold in multiples of 3 feet.

dns

The IP address or host name of the chassis.

physicalChain

false

If true, then the chassis in the chain are connected through sync in/sync out cables. Chassis
must have been defined in their physical ordering,
with the first chassis as the Master.

None.

Aptixia Stack Manager API Guide, Release 2.2

4-9

Stack Manager API Command Listing


PortGroup

PortGroup

Description

The port group is used to hold all information pertaining to a port group:

Ports assigned to the group.

The network topology.

The stack of network encapsulations.

The list of global services supported by the port.

A port group is normally created and accessed via:


$test portGroupList AddTail
set portGroup [$test portGroupList Get 0]

Global plug-in elements are added to the globalPluginList via:


$portGroup globalPluginList AddTail -itemtype <type>
set plugin [$portGroup globalPluginList Get 0]

where <type> is one of the supported global services; for example RoutesPlugin.
All available plug-ins are described in Services.

Properties
Table 4-4.

PortGroup properties

Property

Default

Usage

globalPluginList

N/A

A list of service plug-ins. The available service


plug-ins are described in Services.

name

The name of the port group.

portList

A list of one or more ports, each of which is of the


form:
<chassisName/IP address>;<card#>;<port#>
where <chassisName/IP> is the name or IP
address of a chassis in the chain, <card#> is the
one-based card number in the chassis and
<port#> is the one-based port number on the
card.
Port specifications are separated by spaces. For
example:
ch1;1;1 ch1;1;2 ch1;1;3 ch1;1;4

stack

4-10

N/A

A description of the network stack, as described


in Stack.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


PortGroup

Sub-commands
GetAllIpAddresses
This sub-command returns the list of strings with the IP addresses associated
with the port group. The format of the command is:
set ipAddresses [$portGroup GetAllIpAddresses]
ipAddresses

A list of strings, each of which holds an individual IP


address.

GetInterfaceInfoForIps
This sub-command returns interface information for a list of IP addresses associated with the port group. The format of the command is:
set interfaces [$portGroup GetInterfaceInfoforIps
ipAddresses]
ipAddresses

A list of strings, each of which holds an individual IP


address.

interfaces

A list of InterfaceInfo objects, one for each interface used


by the IP addresses. See InterfaceInfo.

InterfaceInfo
The InterfaceInfo object has the following members:
ipAddress

The IP address on the interface.

macAddress

The MAC address associated with the interface.

isConnectedInterface

True if the interface is connected to the ports connector,


or false if it is an internal interface.

GetGatewayMacForIp
This sub-command returns interface information for a list of IP addresses associated with the port group. The format of the command is:
set gatewayMac [$portGroup GetGatewayMacForIp ipAddress]
ipAddress

An IP address in the port group.

gatewayMac

The returned MAC address associated with its gateway.

Aptixia Stack Manager API Guide, Release 2.2

4-11

Stack Manager API Command Listing


PortGroup

GetIpAddressInfo
This sub-command returns interface information for a list of IP addresses associated with the port group. The format of the command is:
set portList [$portGroup GetIpAddressInfo ipAddresses]
ipAddresses

A list of strings, each of which holds an individual IP


address.

portList

A list of Port objects, one for each IP address in


ipAddresses, with the information about the port that will
use the address. If an IP address does not have a port
associated with it, an empty string is placed in the list. See
Port.

Port
The Port object has the following members:
chassis

The name or IP address of the chassis associated with


the port.

card

The one-based index of the card in the chassis.

port

The one-based index of the port on the card.

managementIp

The management IP address for the port.

GetPorts
This sub-command returns information about each port in the port list. The format of the command is:
set portList [$portGroup GetPorts]
portList

4-12

A list of Port objects, one for each IP address in


ipAddresses, with the information about the port that will
use the address. If an IP address does not have a port
associated with it, an empty string is placed in the list. See
Port.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


PortGroup

GetTestIpAddress
This sub-command returns interface information for a list of IP addresses associated with the port group. The format of the command is:
set ipAddressList [$portGroup GetTestIpAddress portList]
portList

A list of one or more ports, each of which is of the form:


<chassisName/IP address>;<card#>;<port#>
where <chassisName/IP> is the name or IP address of a
chassis in the chain, <card#> is the one-based card number in the chassis and <port#> is the one-based port number on the card.
Port specifications are separated by spaces. For example:
ch1;1;1 ch1;1;2 ch1;1;3 ch1;1;4

ipAddressList

Aptixia Stack Manager API Guide, Release 2.2

A list of IP addresses used by the list of ports.

4-13

Stack Manager API Command Listing


Stack

Stack

Description

The stack describes the network technology and encapsulations which compose
the stack:

The bottom of the stack is always a networking technology. For example,


Ethernet or ATM.

Additional components which are stacked on each other to mimic a computers network configuration.

The bottom of the stack is instantiated accessed via:


$portGroup _Instantiate stack <plugin>
$portGroup stack <property> Set <value>

where <plugin> is one of the supported network technology plug-ins; for example EthernetPlugin or ATMPlugin. All available plug-ins are described in
Network Technologies/Link Types.
Additional stack elements are added to the childrenList and should be added
from the bottom-up. Stack elements are typically added via:
$portGroup stack childrenList AddTail -itemtype <type>
set stackObject [$portGroup stack childrenList Get 0]

where <type> is one of the supported stack encapsulations; for example


IpV4V6Plugin. All available plugin-ins are described in Encapsulations.
See Building a stack on page 2-3 for a description of building split stacks.

Properties
Table 4-5.

Stack properties

Property

Default

Usage

childrenList

N/A

A list of encapsulation plug-ins. The available encapsulation plug-ins are described in Encapsulations.

Sub-commands
InsertPluginParent
This sub-command may be used to insert a stack plug-in before this stack element, making it the parent. The format of the command is:
set newPlugin [$stackPlugin InsertPluginParent
pluginType]

4-14

pluginType

The name of the plug-in to insert. For example,


IpV4V6Plugin.

newPlugin

A reference to the newly created plug-in instance.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager API Command Listing


DoDToPortGroup

DoDToPortGroup

Description

A utility command may be used to download a specific file to all ports in a port
group. The format of the command is:
::AptixiaClient::Core::Facility::Util DodToPortGroup
$portGroup $filename
portGroup

A reference to a PortGroup.

filename

The name of a local file to be downloaded on each port in


the port group.

Properties

None.

Sub-commands

None.

Aptixia Stack Manager API Guide, Release 2.2

4-15

Stack Manager API Command Listing


DoDToPortGroup

4-16

Aptixia Stack Manager API Guide, Release 2.2

Chapter 5:

Stack Manager Plug-in


Properties

This chapter describes the properties of the network stack plug-ins provided by
Stack Manager. A Stack Manager plug-in is a modular component that defines a
specific type of service or encapsulation. Figure 2-1 on page 2-2 illustrates the
organization of the various plug-ins within the overall structure of the Stack
Manager API.
This chapter is organized into the following topics:

Network Technologies/Link Types on page 5-2

Encapsulations on page 5-10

Services on page 5-29

Aptixia Stack Manager API Guide, Release 2.2

5-1

Stack Manager Plug-in Properties


Network Technologies/Link Types

Network Technologies/Link
Types
This section describes the plug-ins available to be used as lowest level stack elements. The bottom of the stack is instantiated via:
$portGroup _Instantiate stack <plugin>
$portGroup stack <property> Set <value>

EthernetPlugin

The Ethernet plug-in corresponds to all CPU-based Ixia Ethernet ports. The
Ethernet plug-in properties are described in the following tables:

Table 5-1 on page 5-2 - Standard Ethernet Plug-in Properties

Table 5-2 on page 5-3 - Ethernet Plug-in Properties for MAC Range

Table 5-3 on page 5-4 - Ethernet Plug-in Properties for ELM Modules

Table 5-4 on page 5-4 - DualPhy Plug-in Properties

Table 5-5 on page 5-4 - VLAN Plug-in Properties

Table 5-1 describes the standard properties associated with the Ethernet plug-in.
See also, Table 5-3 on page 5-4 and Table 5-4 on page 5-4 for additional properties.
Table 5-1.

Standard Ethernet Plug-in Properties

Property

Description

enabled

Specifies whether the Ethernet plug-in is enabled.


Default:

5-2

true

macRangeList

The list of MAC ranges. See Table 5-2 on page 5-3 for
details.

vlanRangeList

The list of VLAN ranges. See Table 5-5 on page 5-4 for
details.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


EthernetPlugin

Table 5-1.

Standard Ethernet Plug-in Properties (Continued)

Property

Description

autoNegotiate

Indicates whether the port should auto-negotiate its


speed with the DUT.
Default: true

speed

If autoNegotiate is false, the desired interface speed.


One of:
::AptixiaClient::EthernetPlugin::k10FD
(10 Mbps full-duplex)
::AptixiaClient::EthernetPlugin::k10HD
(10 Mbps half-duplex)
::AptixiaClient::EthernetPlugin::k100FD
(100 Mbps full-duplex)
::AptixiaClient::EthernetPlugin::k100HD
(100 Mbps half-duplex)
::AptixiaClient::EthernetPlugin::k1000
(1 Gbps)
::AptixiaClient::EthernetPlugin::k10000
(10 Gbps)
Default: ::AptixiaClient::EthernetPlugin::k100FD

Table 5-2 describes the properties associated with the MAC Range object.
Table 5-2.

Ethernet Plug-in Properties for MAC Range

Property

Description

name

A symbolic name associated with this range of MAC


addresses.
Default:

mac

The specification for the first MAC address that will be


associated with the first interface in the port group. Additional
MAC addresses will be formed by adding the IncrementBy
value to this value for each new interface.
Default:

incrementBy

aa:bb:cc:00:00:00

The value by which the MAC address is incremented for additional MAC values.
Default:

mtu

mac-

00:00:00:00:00:01

The maximum transmission unit for the interfaces created with


this range.
The default value is 1500, the minimum is 500, and the
maximum is 9500.

Aptixia Stack Manager API Guide, Release 2.2

5-3

Stack Manager Plug-in Properties


EthernetPlugin

Table 5-3 describes properties that are apply only to Ethernet ELM modules
(encrypting load modules):
Table 5-3.

Ethernet Plug-in Properties for ELM Modules

Property

Description

negotiateMasterSlave

If true, the master/slave part of the Ethernet connection


is negotiated.
Default: false

negotiationType

If negotiateMasterSlave is false, then this indicates the


position that a port should maintain in the connection.
One of:
master use the copper connection.
slave use the fiber connection.
Default: master

Table 5-4 describes additional properties that are available and apply only to
Ethernet modules which support both fiber and copper connections:
Table 5-4.

DualPhy Plug-in Properties

Property

Default

Description

medium

copper

One of:
copper use the copper connection.
fiber use the fiber connection.
auto use Auto Mode to set the connection type.
Default: copper

VLAN Properties
Stack Manager supports VLAN stacking, in addition to the standard VLAN technology defined under the IEEE 802.1Q. Stack Manager refers to the first VLAN
tag as the outer VLAN and the stacked VLAN tag as the inner VLAN.
Table 5-5 describes the VLAN properties.
Table 5-5.

VLAN Plug-in Properties

Parameter

Description

name

A symbolic name associated with this range of VLANs.


When a VLAN range is created, Stack Manager
generates a unique name for the range. A VLAN range
can be referred by Emulated Router and IP ranges.

Outer VLAN Configuration:


enable

When enabled, the outer VLAN range is included in the


configuration.

firstId

The first VLAN ID to be used for the outer VLAN tag.


The default is 1 and the maximum value is 4094.

5-4

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


EthernetPlugin

Table 5-5.

VLAN Plug-in Properties (Continued)

Parameter

Description

incrementStep

How often a new outer VLAN ID is generated. For


example, a value of 10 will cause a new VLAN ID to be
used in blocks of 10 IP addresses.
The default is 1and the maximum value is
1000000000.

increment

The value to be added to the outer VLAN ID for each


new assignment.
The default is 1 and the maximum value is 4094.

uniqueCount

The number of unique outer VLAN IDs that will be


created.
The default is 4094, the minimum value is 1, and the
maximum value is 4094.

Priority

The 802.1Q priority for the outer VLAN. The minimum


value is zero; the maximum value is 7.

Inner VLAN Configuration:


innerEnable

When enabled, the inner VLAN range is included in the


configuration.

innerFirstId

The first VLAN ID to be used for the inner VLAN tag.


The default is 1 and the maximum value is 4094.

innerIncrementStep

How often a new inner VLAN ID is generated. For


example, a value of 10 will cause a new VLAN ID to be
used in blocks of 10 IP addresses.
The default is 1and the maximum value is
1000000000.

innerIncrement

The value to be added to the inner VLAN ID for each


new assignment.
The default is 1 and the maximum value is 4094.

innerUniqueCount

The number of unique inner VLAN IDs that will be


created.
The default is 4094, the minimum value is 1, and the
maximum value is 4094.

innerPriority

The 802.1Q priority for the inner VLAN. The minimum


value is zero; the maximum value is 7.

VLAN ID Increment Mode:

Aptixia Stack Manager API Guide, Release 2.2

5-5

Stack Manager Plug-in Properties


EthernetPlugin

Table 5-5.

VLAN Plug-in Properties (Continued)

Parameter

Description

idIncrMode

The Method used to increment VLAN IDs:


0 Outer First. The outer VLAN ID is incremented
first. When the unique count is reached, the inner
VLAN ID is incremented.
1 Inner First. The inner VLAN ID is incremented
first. When the unique count is reached, the outer
VLAN ID is incremented.
2 Both. Both VLAN IDs are incremented at the
same time.
Refer to the Stack Manager User Guide for examples
of each of the increment modes.

etherType

The EtherType value:

5-6

0x8_g0 _APS (0x8100)


0x88A8 802.1AD (0x88A8)
0x9_g0 VLAN TAG (0x9100)
0x92g0 VLAN TAG (0x9200)

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


ATMPlugin

ATMPlugin

The ATM plug-in corresponds to all CPU-based Ixia ATM ports.


Table 5-6 describes the basic ATM Range properties.
Table 5-6.

ATM Range Plug-in Properties

Parameter

Description

enabled

Specifies whether the ATM plug-in is enabled.


Default:

true

name

A symbolic name associated with this ATM range. Each


range name must be unique.

encapsulation

The type of ATM encapsulation to be used. The choices


are:

mac

Value
1

Description:
VC Mux IPv4 Routed

VC Mux Bridged Ethernet (FCS)

VC Mux Bridged Ethernet (no FCS)

VC Mux IPv6 Routed

LLC Routed AAL5 Snap

LLC Bridged Ethernet (FCS)

LLC Bridged Ethernet (no FCS)

LLC Encap PPP

10

VC Mux PPP

The starting MAC address for the range. The first


interface from the range will have this MAC address.
Additional MAC addresses will be formed by adding the
incrementBy value to this value for each new interface.
The default value is aa:bb:cc:00:00:00

incrementBy

The value to be added to the MAC address between


assignments.
The default value is 00:00:00:00:00:01

mtu

The maximum transmission unit for the interfaces


created with this range.
The default value is 1500, the minimum is 500, and the
maximum is 9500.

Aptixia Stack Manager API Guide, Release 2.2

5-7

Stack Manager Plug-in Properties


ATMPlugin

Table 5-7 describes the advanced ATM plug-in properties.


Table 5-7.

Advanced ATM Plug-in Properties

Property

Description

atmInterfaceType

The ATM interface, one of:


kUNI - UNI interface
kNNI - NNI interface
Default is kUNI

cosetEnable

If true, enables the Coset algorithm to be used with the


Header Error Control (HEC).
Default is false

fillerCell

SONET frame transmission is continuous even when data


or control messages are not being transmitted. The cell
type to be transmitted during those intervals should be
one of:
kIdle Idle Cell
(VPI/VCI = 0 and CLP = 1)
kUnassigned Unassigned Cell
(VPI/VCI = 0 and CLP = 0)
Default is kUnassigned

dataScrambling

If enabled, data is scrambled with the x43 + 1 polynomial.


Note: The ATM cell header is not scrambled.

atmPatternMatching When enabled, ATM pattern matching is true; when disable, ATM pattern matching is false.
Default is true
reassemblyTimeout

Sets the value for the Reassembly Timeout, in seconds. It


is the period of time 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 is 10
Minimum is 0
Maximum is 100

The Permanent Virtual Channel (PVC) range defines VPI and VCI parameters
for each reserved resource. Table 5-8 describes the PVC Range properties.
Table 5-8.

PVC Range Plug-in Properties

Parameter

Description

name

A symbolic name associated with this PVC Range.


Each range name must be unique.

VPI Properties:
vpiFirstId

The first VPI Id that will be assigned to an interface in


the port group.
Valid values: 0 - 255. Default value: 0.

5-8

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


ATMPlugin

Table 5-8.

PVC Range Plug-in Properties (Continued)

Parameter

Description

vpiIncrementStep

Specifies the number of addresses assigned to one


VPI value. When this number is reached, an increment
operation is initiated.
Valid values: 0 - 65535. Default value: 1.

vpiIncrement

When the increment operation is triggered, the


previous VPI Id is incremented using this value.
Valid values: 0 - 256. Default value: 1

vpiUniqueCount

The total number of distinct VPI values. When this


number is reached, the next VPI value is reset to
vpiFirstId.
Valid values: 0 - 256. Default value: 1.

VCI Properties:
vciFirstId

The first VCI Id that will be assigned to an interface in


the port group.
Valid values: 32 - 65535. Default value: 32.

vciIncrementStep

Specifies the number of addresses assigned to one


VCI value. When this number is reached, an increment
operation is initiated.
Valid values: 0 - 65502. Default value: 1.

vciIncrement

When the increment operation is triggered, the


previous VCI Id is incremented using this value.
Valid values: 0 - 65502. Default value: 1

vciUniqueCount

Total number of VCI distinct values. When this number


is reached, the next VCI value is reset to First VCI Id.
Default values: 0 - 65502. Default value: 4063.

PVC Increment Mode:


PVC Increment Mode

The PVC Increment mode may take the following


values:
0 - VCI First
1 - VPI First
2 - Both
Refer to the Stack Manager User Guide for examples
of each of the increment modes.

Aptixia Stack Manager API Guide, Release 2.2

5-9

Stack Manager Plug-in Properties


Encapsulations

Encapsulations
Stack elements other than the Network Technologies/Link Types are added to the
PortGroups childrenList and should be added from the bottom-up. Stack elements are typically added via:
$portGroup stack childrenList AddTail -itemtype <type>
set lastIdx \
[expr [$portGroup stack childrenList Size] -1]
set encap [$portGroup stack childrenList Get $lastIdx]

where <type> is one of the supported stack encapsulations.


The properties for the supported stack encapsulations are described in the following sections:

IpV4V6Plugin

IpV4V6Plugin on page 5-10

EmulatedRouter-Plugin on page 5-13

ImpairmentPlugin on page 5-15

IPSecPlugin on page 5-17

PppoxPlugin on page 5-22

This plug-in has two properties, as described in Table 5-9.


Table 5-9.

IPv4v6 Plug-in Properties

Property

Description

rangeList

A list of IPv4/IPv6 address ranges. Each range is described in


IpV4V6Range (IpV4V6Plugin) on page 5-10.

dhcp

The DHCP object for the IP plug-in. The properties for the DHCP
object are described in DHCP Settings on page 5-12.

IpV4V6Range (IpV4V6Plugin)
Each range can hold a range of IPv4 or IPv6 addresses, as dictated by its ipType
property. Table 5-10 describes the IpV4V6Range properties.
Table 5-10.

5-10

IPv4v6 Range Plug-in Properties

Property

Description

name

A symbolic name for this range of IP addresses.

MacRange

The MAC range (from the Ethernet plugin) with which this
IP range is associated. Valid for Ethernet only.

VlanIdRange

The VLAN range (from the Ethernet plugin) with which this
IP range is associated. Valid for Ethernet only.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


IpV4V6Plugin

Table 5-10.

IPv4v6 Range Plug-in Properties (Continued)

Property

Description

AtmRange

The name of ATM range (from the ATM plugin) used by


the IP range. Valid for ATM only.

PvcRange

The name of PVC range (from the ATM plugin) used by IP


range. Valid for ATM only.

generateStatistics

If this value is true, statistics will be generated for this


range.
The default is false.

enabled

If this value is true, the range is included in the


configuration.
The default is true.

ipType

Indicates whether the address is an IPv4 or IPv6 address.


One of:
IPv4
IPv6
The default is IPv4.

ipAddress

The first IP address in the range.


The default is 10.10.10.2.

incrementBy

The value to be added to the address for each new IP


address assignment.
The default is 0.0.0.1.

gatewayAddress

The gateway address for the address range.


The default is 10.10.10.1.
Notes:
This option is not applicable when IP is stacked on
Emulated Router.
If the protocol is IPv6, the gateway field adds a default
route to this gateway for the range (unless the gateway
is 0::0, in which case the route is not added).

prefix

The length of the host mask for the address.


The default is 24.

count

The number of addresses in the range.


The default is 1.

mss

Maximum Segment Size - defines the maximum length of


the data:
TCP MSS = MTU - TCP header size - IP header size.
Theoretically, this value can be as large as 65495, but
such a large value is never used. For Ethernet the maximum value for MSS is 1460.
The default is 536 and the minimum is 0.

dhcpSettings

Aptixia Stack Manager API Guide, Release 2.2

An object representing properties used by DHCP. Refer to


DHCP Settings on page 5-12 for details.

5-11

Stack Manager Plug-in Properties


IpV4V6Plugin

Table 5-10.

IPv4v6 Range Plug-in Properties (Continued)

Property

Description

addressAllocationMechanism

Indicates how the addresses are assigned. The options


are:
static
dhcp
The default is static.
Refer to DHCP Settings on page 5-12 for a description of
the DHCP properties.

autoMacGeneration

If set, MAC addresses will be auto-generated based on


the IP address. Valid for Ethernet only.
The default is 0.

DHCP Settings
IP addresses can be allocated statically or dynamically. When dynamic allocation
is chosen, you can set the DHCP properties described in Table 5-11.
Table 5-11.

DHCP Plug-in Properties

Property

Description

dhcpServerIp

The IP address of the DHCP Server from which DHCP


responses should be honored. If you leave the IP
address set to 0.0.0.0, Stack Manager uses the
services of the first DHCP server that responds to the
DHCP Discover message.
The default is 0.0.0.0

timeOut

The time-out value, in seconds.


The default is 10 and the minimum is 1.
Note: You may need to increase this value for tests
that dynamically allocate a large number of IP address.

iaType

The IA (Identify Association) Type option is specific to


DHCPv6. There are three IA Type options:
IANA - Assigns permanent addresses.
IATA - Assigns temporary addresses.
IAPD - Requests the IPv6 prefix delegation mechanism to dynamically assign prefixes.
(Refer to RFC 3315 for information about DHCPv6.
Refer to RFC 3769 for more information about IPv6
Prefix Delegation.)

DHCP Usage Limitations

5-12

Reserved IP Addresses Stack Manager cannot use IP addresses in the


10.0.0.0 /16 range for DHCP address allocation. IxOS reserves this range of
addresses for use in the Ixia chassis VNIC network. Therefore, you need to
ensure that your DHCP server will not allocate addresses from this range.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


EmulatedRouter-Plugin

EmulatedRouterPlugin

Number of IP Addresses Stack Manager can dynamically allocate (through


a DHCP server) a maximum of 8,000 IP addresses in a single Ixia network
configuration.

An emulated router is a construct which allows the simulation of internal IP


addresses which are routed within the Ixia port. In the four IP addresses:
192.168.36.2-5 are routed through an emulated router whose addresses are
192.168.36.1 on one side and 10.10.10.1 on the other. This is illustrated in Figure
5-1.
Figure 5-1.

Emulated router
192.168.36.2

192.168.36.3

192.168.36.4

192.168.36.5

10.10.10.1

The EmulatedRouter plug-in has one property, as described in Table 5-12.


Table 5-12.

Emulated Router Plug-in Properties

Property

Description

rangeList

A list of IPv4/IPv6 address ranges. Each range is described in


IpV4V6Range (IpV4V6Plugin) on page 5-10.

The EmulatedRouter plug-in uses the same IpV4V6Range properties as does the
IpV4V6Plugin, with the exception of DHCP properties which are not used in the
EmulatedRouter plug-in.

IpV4V6Range (IpV4V6Plugin)
Each range can hold a range of IPv4 or IPv6 addresses, as dictated by its ipType
property. Table 5-13 describes the IpV4V6Range properties.
Table 5-13.

IPv4v6 Range Plug-in Properties

Property

Description

name

A symbolic name for this range of IP addresses.

MacRange

The MAC range (from the Ethernet plugin) with which this
IP range is associated. Valid for Ethernet only.

VlanIdRange

The VLAN range (from the Ethernet plugin) with which this
IP range is associated. Valid for Ethernet only.

AtmRange

The name of ATM range (from the ATM plugin) used by


the IP range. Valid for ATM only.

Aptixia Stack Manager API Guide, Release 2.2

5-13

Stack Manager Plug-in Properties


EmulatedRouter-Plugin

Table 5-13.

IPv4v6 Range Plug-in Properties (Continued)

Property

Description

PvcRange

The name of PVC range (from the ATM plugin) used by IP


range. Valid for ATM only.

generateStatistics

If this value is true, statistics will be generated for this


range.
The default is false.

enabled

If this value is true, the range is included in the


configuration.
The default is true.

ipType

Indicates whether the address is an IPv4 or IPv6 address.


One of:
IPv4
IPv6
The default is IPv4.

ipAddress

The first IP address in the range.


The default is 10.10.10.2.

incrementBy

The value to be added to the address for each new IP


address assignment.
The default is 0.0.0.1.

gatewayAddress

The gateway address for the address range.


The default is 10.10.10.1.
Note: If the Protocol is IPv6, the Gateway field adds a
default route to this gateway for the range (unless the
gateway is 0::0, in which case the route is not added).

prefix

The length of the host mask for the address.


The default is 24.

count

The number of addresses in the range.


The default is 1.

mss

Maximum Segment Size - defines the maximum length of


the data:
TCP MSS = MTU - TCP header size - IP header size.
Theoretically, this value can be as large as 65495, but
such a large value is never used. For Ethernet the maximum value for MSS is 1460.
The default is 536 and the minimum is 0.

autoMacGeneration

If set, MAC addresses will be auto-generated based on


the IP address. Valid for Ethernet only.
The default is 0.

5-14

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


ImpairmentPlugin

ImpairmentPlugin

Impairment is a means by which errors are deliberately introduced into a traffic


stream, so as to test DUTs susceptibility to error conditions.
Table 5-14 describes the Impairment plug-in properties.
Table 5-14.

Impairment Plug-in Properties

Property

Description

addBandwidth

If true, enables bandwidth limiting, as indicated in the bandwidth and bandwidthUnits properties.
Default: false

addDelay

If true, enables the insertion of latency errors. Each packet is


delayed as per the delay and jitter properties.
Default: true

addDrop

If true, enables the dropping of a percentage of packets as


indicated in the drop property.
Default: false

addDuplicate

If true, enables the duplication of packets, as indicated in the


duplicate property.
Default: false

addReorder

If true, enables packet reordering by delaying selected packets as indicated in the reorder and gap properties.
Default: false

bandwidth

Related to the addBandwidth property. The maximum bandwidth in bandwidthUnits units.


Default: 100

bandwidthUnits

Related to the addBandwidth property. The units associated


with the bandwidth property. One of:
::AptixiaClient::ImpairmentPlugin::kbps kilo bits per second.
::AptixiaClient::ImpairmentPlugin::kBps kilo bytes per
second.
::AptixiaClient::ImpairmentPlugin::mbps mega bits per
second.
::AptixiaClient::ImpairmentPlugin::mBps mega bytes per
second.
Default: ::AptixiaClient::ImpairmentPlugin::kbps

delay

Related to the addDelay property. Specifies the delay for


each packet, in ms.
Default: 1

destinationPort

The destination port number to filter by.


Default: 0

destinationIp

Used if global is set to false. A value of any indicates that all


destinations are affected. Otherwise, enter an IPv4 or IPv6
address along with /prefix-length for a subnet.
Default: any

Aptixia Stack Manager API Guide, Release 2.2

5-15

Stack Manager Plug-in Properties


ImpairmentPlugin

Table 5-14.

Impairment Plug-in Properties (Continued)

Property

Description

drop

Related to the addDrop property. The percentage of dropped


packets.
Default: 1

duplicate

Related to the addDuplicate property. The percentage of


duplicated packets.
Default: 1

gap

Related to the addReorder property. Specifies how frequently


a packet is to be delayed. One packet every reorder packets.
Default: 1

global

If true, the impairments indicated by the add* properties are


applied to all IP interfaces in the stack elements above the
impairment plug-in. If false, then the impairment is filtered by
the values of the sourcePort, destinationPort, protocol and
typeOfService properties.
Default: true

jitter

Related to the addDelay property. Specifies the jitter value. A


random value from 0 ms to this value is added or subtracted
from the delay specified in the previous options.
Default: 0

protocol

Used if global is set to false. The type of protocol to apply the


impairment to. One of:
any
IP
ICMP
IP-TCP
IP-UDP
IPv6
ICMPv6
Default: any

randomizeSeed

If true, then unique patterns will be generated for each run.


Otherwise, repeatable patterns will be used based on seed.
Default: false

reorder

Related to the addReorder property. Specifies how long the


packets is to be delayed.
Default: 1

seed

If randomizeSeed is false, then this value will be used for the


random seed on all runs.
Default: 1

5-16

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


IPSecPlugin

Table 5-14.

Impairment Plug-in Properties (Continued)

Property

Description

sourcePort

The source port number to filter by.


Default: 0

typeOfService

Used if global is set to false. Indicates the Type of Service to


apply the impairment to. One of:
any
Minimum Cost (0x02)
Maximum Reliability (0x04)
Maximum Throughput (0x08)
Minimum Delay (0x10)
Default: any

IPSecPlugin

IPSec (IP Security) is a method for securing IP traffic at the network layer using
encryption or authentication of all IP packets. You can use the Stack Manager
IPSec plugin to simulate IPSec tunnels and protected host subnets on demand.

Note for IxVPN Users


The API functions described here for IPSec are a reflection of the functions available in the Stack Manager GUI, as described in the Stack Manager User Guide.
The functions of the IPSec plug-in are a subset of those available in IxVPN.
IxVPN is a stand-alone product that allows the control plane and data plane performance of IxVPN Gateways to be measured. The subset available in Stack
Manager allows you to set up IxVPN tunnels over which you can send other
types of test traffic. Many of the features available in IxVPN are not reflected in
the plug-in. Please refer to the IxVPN User Guide for a full explanation of all of
the features available in the plug-in and in IxVPN as a whole. Note that the
IxVPN Tcl Guide should not be used; its organization differs from this API and
will not be useful.

Plug-in Properties
The IPSecPlugin configures IPSec interfaces and creates IKE-based IPSec tunnels. This plug-in has four properties, as listed in Table 5-15.
Table 5-15.

IPSec Plug-in Properties

Property

Description

ipsecNetwork

Refer to IPSecNetwork Properties on page 5-18.

ipsecPhase1

Refer to IPSec Phase 1 Properties on page 5-19.

ipsecPhase2

Refer to IPSec Phase 2 Properties on page 5-20.

ipsecTunnelSetup

Refer to IPSec Tunnel Setup Properties on page 5-21.

Aptixia Stack Manager API Guide, Release 2.2

5-17

Stack Manager Plug-in Properties


IPSecPlugin

IPSecNetwork Properties
Table 5-16 describes the IPSec Network properties.
Table 5-16.

IPSec Network Plug-in Properties

Property

Description

testType

The type of test that this encapsulation will support:


p2d - Port to DUT
p2p - Port to Port
If you are setting up a back-to-back test, select the
Port to Port option.

Role

The role that this port group will play in the test:
Initiator
Responder
The role must be Initiator in a Port-to-DUT test.

emulatedSubnetIpType

Specifies the IP version to be used in the test:


IPv4
IPv6

numEHCount

The total number of hosts to be created for each


emulated subnet. The default value is 1, the minimum
value is 1, the maximum value is 253.

emulatedSubnet

The base address to be used for enumerating all the


emulated subnets in the range. The default value is
40.0.0.0.

emulatedSubnetSuffix

The length (in bits) of the subnet mask to be applied to


all the addresses created in the range. The default is
24 (255.255.255.0).

esnIncrementBy

The increment to be used for enumerating all the


emulated subnets in the range. The default value is
0.0.1.0.
Note: The incrementBy value must be the same on
the initiator side and the responder side. If there is a
mismatch (0.0.1.1 versus 0.0.1.0, for example), the
tunnels will come up but the traffic will fail.

5-18

protectedSubnet

The base address to be used for enumerating all the


protected subnets in the range. The default value is
70.0.0.0.

protectedSubnetSuffix

The length (in bits) of the subnet mask to be applied to


all the addresses created in the range. The default
value is 16 (255.255.0.0).

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


IPSecPlugin

Table 5-16.

IPSec Network Plug-in Properties (Continued)

Property

Description

psnIncrementBy

The increment to be used for enumerating all the


protected subnets in the range. The default value is
0.0.1.0.
Note: The incrementBy value must be the same on
the initiator side and the responder side. If there is a
mismatch (0.0.1.1 versus 0.0.1.0, for example), the
tunnels will come up but the traffic will fail.

peerName

Name of the peer for tunnel creation.

peerPublicIPType

The IP version to be used for describing the range:


IPv4
IPv6

peerPublicIP

The public IP address of the peer.

singlePH

Indicates whether or not this is a single protected host


on the responder side. The default is false.
Note that this parameter is valid only for Port-to-DUT
tests.

IPSec Phase 1 Properties


Table 5-17 describes the IPSec IKE (Internet Key Exchange) Phase 1 properties.
Table 5-17.

IPSec IKE Phase 1 Plug-in Properties

Property

Description

psk

Specifies the pre shared key.


The default is ixvpn.

lifeTime

Specifies the lifetime, in seconds.


The default is 3600.

ikeMode

Specifies the IKE mode of communications for


phase 1. The choices are:
main - Main Mode
aggressive - Aggressive Mode
The default is Main Mode.

hashAlgo

Specifies the hashing algorithm. The choices are:


md5 - HMAC-MD5
sha1 - HMAC-SHA1
The default is md5.

Aptixia Stack Manager API Guide, Release 2.2

5-19

Stack Manager Plug-in Properties


IPSecPlugin

Table 5-17.

IPSec IKE Phase 1 Plug-in Properties (Continued)

Property

Description

dhGroup

Specifies the DH Group. The public-private


cryptography used to create the shared secret uses an
algorithm called Diffie-Hellman. DH Groups are
different bit length selections used in this calculation.
The choices are:
DH-1
DH-2
DH-5
DH-14
DH-15
DH-16
The default is DH-2.

encAlgo

Specifies the encryption algorithm used to protect


communications during phase 1 and phase 2 message
exchange. The choices are:
DES
3-DES
AES-128
AES-192
AES-256
The default is 3-DES.

IPSec Phase 2 Properties


Table 5-18 describes the IPSec IKE Phase 2 properties.
Table 5-18.

IPSec IKE Phase 2 Plug-in Properties

Parameter

Description

enablePFS

If checked, enables PFS (perfect forward secrecy).


The default value is false.

lifeTime

Specifies the lifetime, in seconds. The default value is


28800.

ahNespMode

Specifies the AH (Authentication Header) and ESP


(Encapsulating Security Payload) options. The choices
are:
AHOnly - AH only
ESPOnly - ESP only
BothEHnESP - both AH and ESP
The default is ESPOnly.

encapMode

Specifies the encapsulation mode. There is only one


option:
tunnel - Tunnel Mode

5-20

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


IPSecPlugin

Table 5-18.

IPSec IKE Phase 2 Plug-in Properties (Continued)

Parameter

Description

hashAlgo

Specifies the hashing algorithm. The choices are:


md5 - HMAC-MD5
sha1 - HMAC-SHA1
The default is md5.

pfsGroup

Specifies the PFS (Perfect Forward Secrecy) Group.


The choices are:
DH-1
DH-2
DH-5
DH-14
DH-15
DH-16
The default is DH-2.

encAlgo

Specifies the encryption algorithm. The choices are:


NULL
DES
3-DES
AES-128
AES-192
AES-256
The default is 3-DES.

IPSec Tunnel Setup Properties


Table 5-19 describes the IPSec Tunnel Setup properties.
Table 5-19.

IPSec Tunnel Setup Plug-in Properties

Parameter

Description

tunnelSweepSize

Tunnel Sweep Size - The number of tunnels to be


attempted in one sweep. The default is 10, the
minimum is 1, the maximum is 100.
Note: Care should be taken when setting this value.
Not all DUTs can support a large sweep size and if the
setting exceeds what the DUT supports, tunnels may
fail to come up.

tunnelSetupTimeout

Setup Timeout - The number of seconds to wait before


declaring that a tunnel setup attempt has failed. The
default is 30, the minimum is 1, the maximum is 600.

numRetries

Number of Retries - The number of permissible retries


when tunnel negotiation times out. The default is 0, the
minimum is 0, the maximum is 100.

Aptixia Stack Manager API Guide, Release 2.2

5-21

Stack Manager Plug-in Properties


PppoxPlugin

Table 5-19.

PppoxPlugin

IPSec Tunnel Setup Plug-in Properties (Continued)

Parameter

Description

retryInterval

Retry Interval - The number of seconds to wait before


retrying the tunnel creation. The default is 10, the
minimum is 1, the maximum is 60.

retryDelay

Increment Retry Interval - Specifies the desired delay


between subsequent attempts, specified in seconds.
The default is 10, the minimum is 1, the maximum is
60.

PPPoX refers to several methods of encapsulating PPP over an Ethernet or ATM


link. Stack Manager supports the following stacking models:

PPPoE - PPP over Ethernet (PPPoE) has four implementations:


PPP over Ethernet
PPP over Ethernet over VLAN
PPP over Ethernet over Q-in-Q (stacked VLAN)

PPPoA - PPP over ATM (using LLC and VCMux encapsulations)

Note for IxAccess Users


The API functions described here for PPPoX are a reflection of the functions
available in the Stack Manager GUI, as described in the Stack Manager User
Guide. The functions of this plug-in are a subset of those available in IxAccess.
IxAccess is a stand-alone product that allows the control plane and data plane
performance of Access Concentrators to be measured. The subset available in
Stack Manager allows you to set up PPPoX tunnels over which you can send
other types of test traffic. Many of the features available in IxAccess are not
reflected in the plug-in. Please refer to the IxAccess User Guide for a full explanation of all of the features available in the plug-in and in IxAccess as a whole.
Note that the IxAccess Tcl Guide should not be used; its organization differs
from this API and will not be useful.
The PppoxPlugin properties are described in the following sections:

5-22

PppoxPlugin Properties on page 5-23

PPPoE Object on page 5-24

PPP Object on page 5-25

PPP Authentication on page 5-27

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


PppoxPlugin

PppoxPlugin Properties
Table 5-20 describes the basic PPPoX plug-in properties.
Table 5-20.

PPPoX Plug-in Properties

Property

Description

enabled

Enables or disables the plugin in its entirety.

role

Indicates whether the protocol stack functions as a


PPP client or PPP server. The choices are:
client - the protocol stack functions as a PPP client.
server - the protocol stack functions as a PPP
server.

Session Control:
numSessions

Number of PPP sessions to establish. The minimum


is 1, the maximum is 32000.

setupRate

The number of PPP sessions to set up, per second.


The default is 100, the minimum is 1, the maximum is
300.

enableThrottling

If true, the setup of PPP sessions is throttled once the


number of outstanding sessions reaches the value
indicated in Max Outstanding Sessions. '
The default value is true.

maxOutstandingSessi
ons

The maximum number of PPP sessions that can be


outstanding at any given time.
The default is 1000, the minimum is 1, and the
maximum is 32000.

teardownRate

The number of PPP sessions to teardown, per


second.
The default is 100, the minimum is 1, and the
maximum is 300.

Interface Range Setup:


AtmRange

The ATM Range to use from the underlying Hardware


plugin. This identifies the specific interface or
interfaces over which the PPPoX frame is
encapsulated.

MacRange

The MAC Range to use from the underlying Hardware


plugin. This identifies the specific interface or
interfaces over which the PPPoX frame is
encapsulated.

VlanIdRange

If Ethernet is the hardware type, select a VLAN Range


Name from the drop-down list. This associates the
PPPoX frame with a specific VLAN.

Aptixia Stack Manager API Guide, Release 2.2

5-23

Stack Manager Plug-in Properties


PppoxPlugin

Table 5-20.

PPPoX Plug-in Properties (Continued)

Property

Description

PVC Range

The PVC Range to use from the underlying Hardware


plugin. This associates the PPPoX frame with a
specific PVC.

PPPoX Objects:
pppoe

The object that configures PPPoE-specific properties.


Refer toPPPoE Object on page 5-24 for details.

ppp

The object that configures PPP-specific properties.


Refer to PPP Object on page 5-25 and PPP
Authentication on page 5-27 for details.

PPPoE Object
PPPoE (Point-to-Point Protocol over Ethernet) is a network protocol for encapsulating PPP frames within Ethernet frames. It provides standard PPP features,
including authentication, encryption, and compression.
Table 5-21 describes the properties of the PPPoE object.
Table 5-21.

5-24

PPPoE Plug-in Properties

Parameter

Description

padiTimeout

Timeout value for a PADI (PPPoE Active Discovery


Initiation) frame. in seconds. The minimum value is 1,
the default value is 10, and the maximum is 65535.

padiRetries

Number of PADI retries. The minimum value is 1, the


default value is 5, and the maximum is 65535.

padrTimeout

Timeout for a PADR (PPPoE Active Discovery


Request) frame, in seconds. The minimum value is 1,
the default value is 10, and the maximum is 65535.

padrRetries

Number of PADR retries. The minimum value is 1, the


default value is 5, and the maximum is 65535.

serviceName

Access Concentrator Service Name. Maximum length


is 256 characters.

acName

Access Concentrator Name. Maximum length is 256


characters.

enableRedial

If true, PPPoE redial is enabled. The default value is


false.

redialTimeout

PPPoE redial timeout, in seconds. The minimum value


is 1, the default value is 10, and the maximum is
65535.

redialMax

Maximum number of PPPoE redials. The minimum


value is 1, the default value is 20

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


PppoxPlugin

PPP Object
PPP uses the Link Control Protocol (LCP) to establish, configure, maintain, and
terminate point-to-point connections.
Table 5-22 describes the LCP properties of the PPP object.
Table 5-22.

PPP Plug-in Properties for LCP

Parameter

Description

lcpTimeout

The Timeout value for the LCP phase, in seconds. The


default is 15, the minimum is 1, and the maximum is
65535.

lcpRetries

The permissible number of retries for the LCP phase.


The default is 5, the minimum is 1, and the maximum is
65535.

mtu

The Maximum Transmit Unit (MTU) for PPP. The


default value is 1492, the minimum value is 32, and the
maximum value is 13312.

lcpTermTimeout

The Timeout value for LCP termination, in seconds.


The default is 5, the minimum is 1, and the maximum
is 65535.

lcpTermRetries

The permissible number of LCP Termination Retries.


The default value is 5, the minimum value is 1, and the
maximum is 65535.

useMagic

If true, PPP detects looped links using magic numbers.


When a node sends PPP LCP messages, these
messages may include a magic number. If a line is
looped, the node receives an LCP message with its
own magic number, instead of receiving a message
with the peer's magic number.
The default value is true.

enableEchoRsp

If true, LCP uses echo replies as a keepalive for the


link. The default value is true.

enableEchoReq

If true, LCP uses echo requests as a keepalive for the


link. The default value is false.

echoReqInterval

The keep-alive interval, in seconds. The default is 60,


the minimum is 1, and the maximum is 3600.

PPP uses the Network Control Protocol (NCP) during in the PPP link connection
process to establish and configure various network-layer protocols, including IP,
IPX, and AppleTalk. Stack Manager supports the IPv4 and IPv6 network-layer
protocols.

Aptixia Stack Manager API Guide, Release 2.2

5-25

Stack Manager Plug-in Properties


PppoxPlugin

Table 5-23 describes the LCP properties of the PPP object.


Table 5-23.

PPP Plug-in Properties for NCP

Parameter

Description

ncpType

The IP address type (IPv4 or IPv6) for Network Control


Protocol. The choices are:
IPv4
IPv6

clientBaseIp

The base IP address to be assigned to the PPP client.

clientIpIncr

The PPP client IP address increment value, used in


conjunction with the Client IP parameter. The default
value is 0.0.0.1.

serverBaseIp

The base IP address to be assigned to the PPP server.

serverIpIncr

The PPP server IP address increment value, used in


conjunction with the Server IP parameter. The default
value is 0.0.0.0.

clientBaseIID

The base Link Local Identifier for the PPP client. Valid
for IPv6 only. The default value is
00:11:11:11:00:00:00:01.
Valid for IPv6 only.

clientIIDIncr

Client link local identifier increment value, used in


conjunction with the IPv6 Client IP address. The
default value is ::1, and the minimum value is ::1.
Valid for IPv6 only.

serverBaseIID

The base Link Local Identifier for the PPP server. Valid
for IPv6 only. The default value is
00:11:22:11:00:00:00:01.
Valid for IPv6 only.

serverIIDIncr

Server link local identifier increment value, used in


conjunction with the IPv6 Server IP address. The
default value is ::1, the minimum value is ::1, and the
maximum value is ::1.
Valid for IPv6 only.

5-26

ipv6PoolPrefix

Pool prefix for the IPv6 IP pool. The default value is


1:1:1::

ipv6PoolPrefixLen

Pool prefix length. The difference between the Address


Prefix Length and this value determines the size of the
IPv6 IP pool. The default value is 48, the minimum
value is 1, and the maximum is 127.

ipv6AddrPrefixLen

Address prefix length. The difference between this


value and the Pool Prefix Length value determines the
size of the IPv6 IP pool. The default value is 64, the
minimum value is 1.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


PppoxPlugin

Table 5-23.

PPP Plug-in Properties for NCP (Continued)

Parameter

Description

ncpTimeout

The Timeout value for the NCP phase, in seconds. The


default is 15, the minimum is 1, and the maximum is
65535.

ncpRetries

The permissible number of NCP retries. The default


is 5, the minimum is 1, and the maximum is 65535.

PPP Authentication
The PPP protocol suite includes the use of an optional authentication protocol.
During basic link setup by LCP, devices can negotiate the use of an authentication protocol. Once the LCP link is set up, a series of authentication messages are
sent to verify the identity of the device initiating the link. Only if authentication
is successful can the link configuration proceed. The PPP suite defines two
authentication protocols: the Password Authentication Protocol (PAP) and Challenge Handshake Authentication Protocol (CHAP).
Table 5-24 describes the authentication properties of the PPP object.
Table 5-24.

PPP Plug-in Properties - Authentication

Parameter

Description

PPP Authentication:
authType

The authentication type to use during link setup. The


choices are:
none
pap
chap
papOrChap
The default value is none.

authTimeout

The timeout value for PPP authentication, in seconds.


The default is 15, the minimum is 1, and the maximum
is 65535.

authRetries

The permissible number of PPP authentication retries.


The default is 5, the minimum is 1, and the maximum
is 65535.

PAP:
papUser

The user name for PAP authentication. The default


value is user. The maximum length of the string is 256
characters.

papPassword

The password for PAP authentication. The default


value is password. The maximum length of the string is
256 characters.

CHAP:

Aptixia Stack Manager API Guide, Release 2.2

5-27

Stack Manager Plug-in Properties


PppoxPlugin

Table 5-24.

5-28

PPP Plug-in Properties - Authentication (Continued)

Parameter

Description

chapName

The user name for CHAP authentication. The default


value is user. The maximum length of the string is 256
characters.

chapSecret

The secret for CHAP authentication. The default value


is secret. The maximum length of the string is 256
characters.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


Services

Services
The following sections describe the properties of the global services that you can
configure in Stack Manager:

RoutesPlugin

RoutesPlugin on page 5-29

DnsPlugin on page 5-30

TCPPlugin on page 5-33

FilterPlugin on page 5-34

The Routes service allows the port group to be associated with a set of IPv4
routes.
set portGroup [$test portGroupList Get 0]

Global plug-in elements are added to the PortGroup globalPluginList via:


$portGroup globalPluginList AddTail -itemtype <type>
set lastIdx \
[expr [$portGroup globalPluginList Size] -1]
set routes [$portGroup globalPluginList Get $lastIdx]

where <type> is one of the supported global services. A route is added to the set
of routes via:
set routes_idx 0
$routes routes AddTail
set route [$routes routes Get $routes_idx]
$route targetType Set net
$route destinationIp Set 192.168.5.0
$route mask Set 255.255.255.0
$route gateway Set 10.0.0.1
set routes_idx [incr $routes_idx]
...

Table 5-25 describes the Routes plug-in properties.


Table 5-25.

Routes Plug-in Properties

Property

Usage

routes

A list of routes, each described in Route (RoutesPlugin).

Route (RoutesPlugin)
This object describes a single route in a routing table. Table 5-26 describes the
properties associated with a route in the routing table.

Aptixia Stack Manager API Guide, Release 2.2

5-29

Stack Manager Plug-in Properties


DnsPlugin

Table 5-26.

Routes Plug-in Properties for Routing Table

Property

Usage

protocol

The IP protocol version for which the route is configured. The


choices are:
IPv4
IPv6
The default value is IPv4.

targetType

The type of route target to be used. The choices are:


net an entire network whose size is indicated in the Mask
column.
host a single host.
The default value is net.

destinationIp

Depending on the value of Target, either a network or host


address.
The default value is 10.10.0.0.

gateway

The gateway address for the entry.


The default value is 10.10.10.1.

prefixLength

If Target is set to net, the network prefix length to use for the
network mask.
The default value is 24.

DnsPlugin

The DNS service allows the application to use symbolic host names, which are
resolved at run time by the Ixia ports in a group.
Table 5-27 describes the DNS service plug-in properties.
Table 5-27.

DNS Plug-in Properties

Property

Usage

domain

The DNS domain for the host.


The default value is a null string.
Most queries for names within this domain can use short
names relative to the local domain. If no domain entry is
present, the domain is determined from the local host name
returned by gethostname(). The domain part is taken to
be everything after the first period character. if the host name
does not contain a domain part, the root domain is assumed.

timeout

The number of seconds that resolver will wait for a response


from a remote name server, before retrying from another.
The default is 5 and the minimum is 1 second.

nameServerList

5-30

A list of DnsNameServer (DnsPlugin) objects used to hold


the IP addresses of the DNS name servers.

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


DnsPlugin

Table 5-27.

DNS Plug-in Properties (Continued)

Property

Usage

searchList

A list of DnsSearch (DnsPlugin) objects used to hold the list


of domain suffixes.

hostList

A list of DnsHost (DnsPlugin) objects used to hold the list of


pre-defined hosts.

DnsNameServer (DnsPlugin)
This object holds a single IP address to be used as a name server. Table 5-28
describes the DNS name server properties.
Table 5-28.

DNS Plug-in Properties for NameServer

Property

Usage

nameServer

An IP address of a name server.


The default is 127.0.0.1.
Up to MAXNS name servers may be listed, one per keyword (see
<resolv.h>). If there are multiple servers, the resolver library queries them in the order listed. If no nameserver entries are
present, the default is to use the name server on the local
machine.

DnsSearch (DnsPlugin)
This object holds a single domain suffix. Table 5-29 describes the DNS Search
properties.
Table 5-29.

DNS Plug-in Properties for DNS Search

Property

Usage

search

A search list for host-name lookups.


The default is Untitled.
The search list is normally determined from the local domain
name. By default, it contains only the local domain name. This may
be changed by listing the desired domain search path following the
search keyword with spaces or tabs separating the names. The
search list is limited to six domains with a total of 256 characters.

Aptixia Stack Manager API Guide, Release 2.2

5-31

Stack Manager Plug-in Properties


DnsPlugin

DnsHost (DnsPlugin)
This object holds a single entry from a host name table. Table 5-30 describes the
DNS Host properties.
Table 5-30.

DNS Plug-in Properties for DNS Host

Property

Usage

hostIP

A hosts IP address.
The default value is 127.0.0.1.

hostName

The name of the host that corresponds to the IP address.


The default value is localhost.

alias1

Another name associated with the IP address.


This property has no default value.

alias2

Another name associated with the IP address.


This property has no default value.

5-32

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


TCPPlugin

TCPPlugin

The TCP service allows you to access the low-level parameters associated with
TCP transmission.
Table 5-31 describes the TCP plug-in properties.
Table 5-31.

TCP Plug-in Properties

Property

Usage

tcp_ecn

If enabled, the client or server uses bits from the


Type of Service (TOS) field and the TCP packet
headers Reserved field to support Explicit Congestion Notification (ECN).
Default: false

tcp_fin_timeout

Time the client or server waits to receive a final


FIN before closing a socket. A FIN Timeout is
usually used to prevent denial-of-service attacks.
Default: 60

tcp_frto
Default: 0
tcp_keepalive_intvl

Interval between repeated keep-alive probes.


Default: 75

tcp_keepalive_probes

Number of keep-alive probes sent out before


determining that a link is down.
Default: 9

tcp_keepalive_time

If a link has no activity on it for the time specified


for keep-alive Time, keep-alive probes are sent to
determine if the link is still up.
Default: 7200

tcp_retries1

Number of attempts to re-transmit a packet on an


established connection before giving up
Default: 3

tcp_retries2

Number of attempts to re-transmit a packet on in


established state before giving up.
Default: 15

tcp_rmem_min
tcp_rmem_default
tcp_rmem_max

Size of the receive buffer. This parameter affects


the TCP receive window size. If you increase the
size of the receive buffer, the receive window is
enlarged. If you are experiencing high latency on
your test network, you can increase the size of
the receive buffer to improve the throughput.
Defaults:
tcp_rmem_min 4096
tcp_rmem_default 87380
tcp_rmem_max 174760

tcp_stdurg
Default: false

Aptixia Stack Manager API Guide, Release 2.2

5-33

Stack Manager Plug-in Properties


FilterPlugin

Table 5-31.

TCP Plug-in Properties (Continued)

Property

Usage

tcp_syn_retries

Number of times an un-acknowledged SYN for an


active TCP connection will be re-transmitted.
Default: 5

tcp_synack_retries

Number of times an un-acknowledged SYN-ACK


for a passive TCP connection will be re-transmitted.
Default: 5

tcp_timestamps

If enabled, the client or server inserts a timestamp into each packet.


Default: true

tcp_window_scaling

Enable RFC 1323 TCP window scaling.


Default: true

tcp_wmem_min
tcp_wmem_default
tcp_wmem_max

Size of the transmit buffer. This parameter affects


the TCP transmit window size. If you increase the
size of the transmit buffer, the transmit window is
enlarged. If you are experiencing high latency on
your test network, you can increase the size of
the transmit buffer to improve the throughput.
Default:
tcp_wmem_min 4096
tcp_wmem_default 16384
tcp_wmem_max 131072

FilterPlugin

Ixia ports have the unique ability to filter network traffic received on the port so
as to only look at particular packets of interest. This allows the ports CPU to
ignore irrelevant traffic and concentrate on efficient test operation. The filters are
set up with the FilterPlugin.
Depending on the placement of Ixia ports within a test network, a port may see a
great deal of network traffic not related to the test information.
A filter must be set up on a receiving port group so as to only allow significant
test traffic to pass. Failure to do this will potentially overwhelm the ports CPU
and cause it not to receive important traffic.
The options in the FilterPlugin indicate which packet types, protocols and port
numbers to allow through the filter and into the ports CPU. If a packet matches
any of the criteria in the dialog, then the packet is allowed through. The filters
are applied in the order shown; that is:

5-34

MAC Types

IP Protocols

ICMP Types

UDP Ports

TCP Ports

Aptixia Stack Manager API Guide, Release 2.2

Stack Manager Plug-in Properties


FilterPlugin

This means, for example, that if MAC Types includes IP (0x800), then the IP
Protocols, UDP Ports and TCP Ports fields are ignored any IP packet will be
accepted through the filter. Similarly, if IP Protocols includes TCP (6), then the
TCP Ports field will be irrelevant.

Properties
Table 5-32 describes the Filter plug-in properties.
Table 5-32.

Filter Plug-in Properties

Property
all

Usage
If true, all traffic is enabled. All other fields are ignored.
Default: true

icmp

A list of comma separated ICMP type names or numbers to


enable. Numbers are expressed in decimal or 0x<hex digits>
format.. Ranges may be separated by a dash ( - ). A blank
entry signifies no ICMP type filtering.
Default:

initialAction

One of:
reset The filters described on this screen will replace all
those currently configured in the port.
merge The filters described on this screen will be
merged with those already configured on the port.
Default: reset

ip

A list of comma separated IP protocol names or numbers to


enable. Numbers are expressed in decimal or 0x<hex digits>
format. Ranges may be separated by a dash ( - ). A blank entry
signifies no IP protocol filtering.
Default:

isis

If true, traffic related to the IS-IS routing protocol is passed.


Default: false

mac

A list of semi-color separated MAC type names or numbers to


enable. Numbers are expressed in decimal or 0x<hex digits>
format. Ranges may be separated by a dash ( - ). A blank entry
signifies no MAC type filtering.
Default:

pppoecontrol

If true, traffic related to PPPoE Discovery and control messages is passed.


Default: false

pppoenetwork

If true, network PPPoE traffic is enabled.


Default: false

Aptixia Stack Manager API Guide, Release 2.2

5-35

Stack Manager Plug-in Properties


FilterPlugin

Table 5-32.

Filter Plug-in Properties (Continued)

Property

Usage

tcp

A list of comma separated TCP source or destination protocol


names or port numbers to enable. Numbers are expressed in
decimal or 0x<hex digits> format. Ranges may be separated
by a dash ( - ). A blank entry signifies no UDP port filtering.
Default:

udp

A list of comma separated UDP source or destination protocol


names or port numbers to enable. Numbers are expressed in
decimal or 0x<hex digits> format. Ranges may be separated
by a dash ( - ). A blank entry signifies no UDP port filtering.a
Default:

a.

5-36

Note that as of this writing, the UDP ports feature does not operate correctly when fragmented UDP packets are present.

Aptixia Stack Manager API Guide, Release 2.2

Index
A
API
command listing 4-14-15
command usage 2-5
exceptions 2-6
list manipulation 2-6
objects, destroying 2-5
objects, overview 2-2
properties, described 2-5
stack, building a 2-3
sub-commands, described 2-6
ATM plug-in 5-7
C
Chassis (object) 4-9
chassisChain 2-2, 4-5
ChassisConfig 2-2, 4-4, 4-5
childrenList 4-14
clearOwnership 4-5
ConfigureTest 4-3
createChassisChain 4-5
CreateTest 4-3
D
DeconfigureTest 4-3
DHCP properties 5-12
Diffie-Hellman 5-20
DNS plug-in 5-30
DoDToPortGroup 4-15

Ethernet plug-in 5-2


F
Filter plug-in 5-34
G
GetAllIpAddresses 4-11
getChassisTopology 4-6
GetGatewayMacForIp 4-11
GetInterfaceInfoForIps 4-11
GetIpAddressInfo 4-12
getPortInformation 4-7
GetPorts 4-12
GetTestIpAddress 4-13
globalPluginList 2-3
I
Impairment plug-in 5-15
InsertPluginParent 4-14
IPSec plug-in 5-17
IPv4v6 plug-in 5-10, 5-13
IxOS support 1-1
J
jumbo frames. See maximum transmission unit 5-3,
5-7

M
maximum transmission unit (MTU) 5-3, 5-7
E

Emulated Router plug-in 5-13


encapsulations 5-105-27

Aptixia Stack Manager API Guide, Release 2.2

O
object
Chassis 4-9

Index-1

Index

ChassisConfig 2-2, 4-5


DoDToPortGroup 4-15
PortGroup 4-10
Session 4-3
Stack 2-3, 4-14
Test 2-2, 4-4
TestServer 4-2
OpenSession 4-2
P
plug-in
ATM 5-7
EmulatedRouterPlugin 5-13
Ethernet 5-2
ImpairmentPlugin 5-15
IPSecPlugin 5-17
IpV4V6Plugin 5-10
PppoxPlugin 5-22
plug-in properties 5-15-36
Port (object) 4-12
PortGroup 4-10
portGroupList 2-2, 4-4
portList 2-2
PortVector 4-7
PPPoX plug-in 5-22
R
resetPortCpu 4-8
Routes plug-in 5-29
S
services
DNS 5-30
FilterPlugin 5-34
RoutesPlugin 5-29
TCP 5-33
Session 4-3
setBaseAddress 4-8
setFactoryDefaults 4-8
Stack (object) 2-3, 4-14
stack, building a 2-3
T
takeOwnership 4-8
TCP plug-in 5-33
Test (object) 2-2, 4-4
TestServer 4-2
V
VLAN properties 5-4

Index-2

Aptixia Stack Manager API Guide, Release 2.2