Stack Manage Rap I
Stack Manage Rap I
Stack Manage Rap I
Release 2.2
Part No. 913-0491-01 Rev. A
September 2008
Corporate
Headquarters
EMEA
Support: eurosupport@ixiacom.com
+44 1628 405797
online support form:
http://www.ixiacom.com/support/inquiry/
?location=emea
Asia Pacific
Japan
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
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
Table of Contents
Chapter 1
Chapter 2
Sub-commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Table of Contents
Chapter 3
Chapter 4
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
ATMPlugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-7
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
Table of Contents
Chapter 1:
This chapter provides a brief overview of the features and capabilities of the
Stack Manager Tcl API. It is organized into the following topics:
Available
Documentation
IxOS Support
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.
Feature
IxOS 5.00
Supported
Supported
Hardware Types:
Ethernet
1-1
Table 1-1.
Feature
IxOS 5.00
ATM
Supported
Supported
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:
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.
1-2
DHCP
IPSec
PPPoX
Jumbo frame support (via the MTU parameter added in Service Pack 4)
1-3
1-4
Chapter 2:
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:
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
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
Pictorially, this is shown in Figure 2-2, with the GUI equivalent on the right.
2-3
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
Commands as
objects
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 ...]
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
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]
2-5
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).
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>]
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
Chapter 3:
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
The Tcl program in Figure 3-1 demonstrates the simplest means of configuring
two port groups.
Figure 3-1.
#***************************************************************
#
# 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:
#
3-1
# 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
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
3-3
3-4
set CHR_OBJECT_INVALID
CHRAPI 112
3-5
3-6
3-7
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]
. . .
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
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"
. . .
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.
Steps 2 through 4 are repeated for each additional port group desired.
3-9
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
Chapter 4:
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:
Chapter 5, Stack Manager Plug-in Properties, lists and describes all of the Stack
Manager plug-ins:
4-1
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
userName
sessionName
inactivityTimeout
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 ]
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
4-3
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
checkLinkState
true
name
Test1
portGroupList
N/A
rebootPortBefore- false
Configure
userName
User
None.
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
Properties
Table 4-2.
ChassisConfig properties
Property
Default
Usage
chassisChain
N/A
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
createChassisChain
This sub-command creates the chassis chain using the configured chassis information. The format of the command is:
$test chassisConfig createChassisChain
4-5
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
chassis
Chassis
The Chassis object has the following members:
chassisId
chassisName
managementIp
typeName
speed
sequenceNumber
cardVector
master
Card
The Card object has the following members:
4-6
cardId
typeName
cardVersion
fpgaVersion
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
typeName
owner
linkSt
One of:
$::AptixiaClient::ChassisConfig::eLinkState::kLinkUp
$::AptixiaClient::ChassisConfig::eLinkState::kLinkLoopBack
$::AptixiaClient::ChassisConfig::eLinkState::kLinkpppUp
$::AptixiaClient::ChassisConfig::eLinkState::kLinkDown
speed
duplex
uniquePortNo
layer1Class
allowedLayer1Type
4-7
resetPortCpu
This sub-command resets the CPUs on list of ports. The format of the command
is:
$test chassisConfig resetPortCpu portSpecList
setBaseAddress
This sub-command sets the management base address for a chassis. The format
of the command is:
$test chassisConfig setBaseAddress chassisHostName
baseIpAddress
setFactoryDefaults
This sub-command resets a list of ports to their factory defaults. The format of
the command is:
$test chassisConfig setFactoryDefaults portSpecList
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
4-8
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
dns
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.
4-9
PortGroup
Description
The port group is used to hold all information pertaining to a port group:
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
name
portList
stack
4-10
N/A
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
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
interfaces
InterfaceInfo
The InterfaceInfo object has the following members:
ipAddress
macAddress
isConnectedInterface
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
gatewayMac
4-11
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
portList
Port
The Port object has the following members:
chassis
card
port
managementIp
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
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
ipAddressList
4-13
Stack
Description
The stack describes the network technology and encapsulations which compose
the stack:
Additional components which are stacked on each other to mimic a computers network configuration.
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]
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
newPlugin
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
Properties
None.
Sub-commands
None.
4-15
4-16
Chapter 5:
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:
5-1
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-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-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.
Property
Description
enabled
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.
Table 5-1.
Property
Description
autoNegotiate
speed
Table 5-2 describes the properties associated with the MAC Range object.
Table 5-2.
Property
Description
name
mac
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
5-3
Table 5-3 describes properties that are apply only to Ethernet ELM modules
(encrypting load modules):
Table 5-3.
Property
Description
negotiateMasterSlave
negotiationType
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.
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.
Parameter
Description
name
firstId
5-4
Table 5-5.
Parameter
Description
incrementStep
increment
uniqueCount
Priority
innerFirstId
innerIncrementStep
innerIncrement
innerUniqueCount
innerPriority
5-5
Table 5-5.
Parameter
Description
idIncrMode
etherType
5-6
ATMPlugin
Parameter
Description
enabled
true
name
encapsulation
mac
Value
1
Description:
VC Mux IPv4 Routed
10
VC Mux PPP
incrementBy
mtu
5-7
Property
Description
atmInterfaceType
cosetEnable
fillerCell
dataScrambling
atmPatternMatching When enabled, ATM pattern matching is true; when disable, ATM pattern matching is false.
Default is true
reassemblyTimeout
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.
Parameter
Description
name
VPI Properties:
vpiFirstId
5-8
Table 5-8.
Parameter
Description
vpiIncrementStep
vpiIncrement
vpiUniqueCount
VCI Properties:
vciFirstId
vciIncrementStep
vciIncrement
vciUniqueCount
5-9
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]
IpV4V6Plugin
Property
Description
rangeList
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
Property
Description
name
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.
Table 5-10.
Property
Description
AtmRange
PvcRange
generateStatistics
enabled
ipType
ipAddress
incrementBy
gatewayAddress
prefix
count
mss
dhcpSettings
5-11
Table 5-10.
Property
Description
addressAllocationMechanism
autoMacGeneration
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.
Property
Description
dhcpServerIp
timeOut
iaType
5-12
EmulatedRouterPlugin
Emulated router
192.168.36.2
192.168.36.3
192.168.36.4
192.168.36.5
10.10.10.1
Property
Description
rangeList
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.
Property
Description
name
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
5-13
Table 5-13.
Property
Description
PvcRange
generateStatistics
enabled
ipType
ipAddress
incrementBy
gatewayAddress
prefix
count
mss
autoMacGeneration
5-14
ImpairmentPlugin
Property
Description
addBandwidth
If true, enables bandwidth limiting, as indicated in the bandwidth and bandwidthUnits properties.
Default: false
addDelay
addDrop
addDuplicate
addReorder
If true, enables packet reordering by delaying selected packets as indicated in the reorder and gap properties.
Default: false
bandwidth
bandwidthUnits
delay
destinationPort
destinationIp
5-15
Table 5-14.
Property
Description
drop
duplicate
gap
global
jitter
protocol
randomizeSeed
reorder
seed
5-16
Table 5-14.
Property
Description
sourcePort
typeOfService
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.
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.
Property
Description
ipsecNetwork
ipsecPhase1
ipsecPhase2
ipsecTunnelSetup
5-17
IPSecNetwork Properties
Table 5-16 describes the IPSec Network properties.
Table 5-16.
Property
Description
testType
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
numEHCount
emulatedSubnet
emulatedSubnetSuffix
esnIncrementBy
5-18
protectedSubnet
protectedSubnetSuffix
Table 5-16.
Property
Description
psnIncrementBy
peerName
peerPublicIPType
peerPublicIP
singlePH
Property
Description
psk
lifeTime
ikeMode
hashAlgo
5-19
Table 5-17.
Property
Description
dhGroup
encAlgo
Parameter
Description
enablePFS
lifeTime
ahNespMode
encapMode
5-20
Table 5-18.
Parameter
Description
hashAlgo
pfsGroup
encAlgo
Parameter
Description
tunnelSweepSize
tunnelSetupTimeout
numRetries
5-21
Table 5-19.
PppoxPlugin
Parameter
Description
retryInterval
retryDelay
5-22
PppoxPlugin Properties
Table 5-20 describes the basic PPPoX plug-in properties.
Table 5-20.
Property
Description
enabled
role
Session Control:
numSessions
setupRate
enableThrottling
maxOutstandingSessi
ons
teardownRate
MacRange
VlanIdRange
5-23
Table 5-20.
Property
Description
PVC Range
PPPoX Objects:
pppoe
ppp
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
Parameter
Description
padiTimeout
padiRetries
padrTimeout
padrRetries
serviceName
acName
enableRedial
redialTimeout
redialMax
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.
Parameter
Description
lcpTimeout
lcpRetries
mtu
lcpTermTimeout
lcpTermRetries
useMagic
enableEchoRsp
enableEchoReq
echoReqInterval
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.
5-25
Parameter
Description
ncpType
clientBaseIp
clientIpIncr
serverBaseIp
serverIpIncr
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
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
5-26
ipv6PoolPrefix
ipv6PoolPrefixLen
ipv6AddrPrefixLen
Table 5-23.
Parameter
Description
ncpTimeout
ncpRetries
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.
Parameter
Description
PPP Authentication:
authType
authTimeout
authRetries
PAP:
papUser
papPassword
CHAP:
5-27
Table 5-24.
5-28
Parameter
Description
chapName
chapSecret
Services
The following sections describe the properties of the global services that you can
configure in Stack Manager:
RoutesPlugin
The Routes service allows the port group to be associated with a set of IPv4
routes.
set portGroup [$test portGroupList Get 0]
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]
...
Property
Usage
routes
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.
5-29
Table 5-26.
Property
Usage
protocol
targetType
destinationIp
gateway
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.
Property
Usage
domain
timeout
nameServerList
5-30
Table 5-27.
Property
Usage
searchList
hostList
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.
Property
Usage
nameServer
DnsSearch (DnsPlugin)
This object holds a single domain suffix. Table 5-29 describes the DNS Search
properties.
Table 5-29.
Property
Usage
search
5-31
DnsHost (DnsPlugin)
This object holds a single entry from a host name table. Table 5-30 describes the
DNS Host properties.
Table 5-30.
Property
Usage
hostIP
A hosts IP address.
The default value is 127.0.0.1.
hostName
alias1
alias2
5-32
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.
Property
Usage
tcp_ecn
tcp_fin_timeout
tcp_frto
Default: 0
tcp_keepalive_intvl
tcp_keepalive_probes
tcp_keepalive_time
tcp_retries1
tcp_retries2
tcp_rmem_min
tcp_rmem_default
tcp_rmem_max
tcp_stdurg
Default: false
5-33
Table 5-31.
Property
Usage
tcp_syn_retries
tcp_synack_retries
tcp_timestamps
tcp_window_scaling
tcp_wmem_min
tcp_wmem_default
tcp_wmem_max
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
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.
Property
all
Usage
If true, all traffic is enabled. All other fields are ignored.
Default: true
icmp
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
isis
mac
pppoecontrol
pppoenetwork
5-35
Table 5-32.
Property
Usage
tcp
udp
a.
5-36
Note that as of this writing, the UDP ports feature does not operate correctly when fragmented UDP packets are present.
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
M
maximum transmission unit (MTU) 5-3, 5-7
E
O
object
Chassis 4-9
Index-1
Index
Index-2