SpirentTestCenter API

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 43

Spirent Confidential

SpirentTestCenter API API Specification and TestCenter PL Command Set Version 0.95

Overview......................................................................................................................................... 2 Refresher on Spirent TestCenter API............................................................................................. 2 Motivations for Spirent TestCenter PL............................................................................................ 3 TCPL Command Set....................................................................................................................... 4 Port Reservation and Setup Related Commands.......................................................................4 CreateAndReservePorts......................................................................................................... 4 SetupPorts.............................................................................................................................. 4 General Purpose Utility Commands............................................................................................ 5 ConfigPropertiesCommand.................................................................................................... 5 GetObjects............................................................................................................................. 6 Basic Traffic Setup Related Commands.....................................................................................6 CreateFrameLengthDistribution............................................................................................. 6 CreateGroupedStreamBlocks................................................................................................. 7 TrafficGroupModify................................................................................................................. 8 Enhancement for automation for StreamBlock creation command.........................................9 Results Subscription Commands..............................................................................................10 SubscribeResultsViewCommand......................................................................................... 11 ExportDbResultsCommand.................................................................................................. 13 Multicast Setup Commands...................................................................................................... 14 CreateMulticastIpv4Group ................................................................................................... 14 CreateMulticastIpv6Goup .................................................................................................... 14 CreateIgmpMldHostProtocol................................................................................................ 15 CreateIgmpMldQuerierProtocol............................................................................................16 2544, 2889 and 3918 Related Commands...............................................................................16 Rfc2544SetupThroughputTestCommand.............................................................................16 Rfc2544SetupLatencyTestCommand...................................................................................18 Rfc2544SetupFrameLossTestCommand.............................................................................19 Rfc2544SetupBackToBackTestCommand...........................................................................20 Rfc2889SetupAddressCachingCapacityTestCommand.......................................................21 Rfc2889SetupAddressLearningRateTestCommand.............................................................22 Rfc2889SetupBroadcastFrameForwardingTestCommand...................................................23 Rfc2889SetupBroadcastFrameLatencyTestCommand........................................................24 Rfc2889SetupCongestionControlTestCommand..................................................................25 Rfc2889SetupErroredFramesFilteringTestCommand...........................................................26 Rfc2889SetupForwardingTestCommand.............................................................................27 Rfc2889SetupForwardPressureTestCommand....................................................................28 Rfc2889SetupMaxForwardingRateTestCommand...............................................................29 Rfc3918SetupAggregatedMulticastThroughputTestCommand............................................30 Rfc3918SetupJoinLeaveLatencyTestCommand..................................................................31 Rfc3918SetupMixedClassThroughputTestCommand..........................................................33 Rfc3918SetupMulticastForwardingLatencyTestCommand...................................................35 Rfc3918SetupMulticastGroupCapacityTestCommand.........................................................36 Rfc3918SetupScaledGroupForwardingTestCommand.........................................................38 TestCenter API Enhancements..................................................................................................... 39

Spirent Confidential

-1-

Spirent Confidential

Overview
This document describes the concepts and specifics of the Spirent TestCenter Presentation Layer (TCPL for short in this document). The TCPL is designed to add a new layer of functionality that simplifies some of the most common scripting tasks performed by Users. The TCPL is not designed or intended to be a replacement for the existing Spirent TestCenter API. The TestCenter API provides easy and effective ways of configuring and running every feature supported by Spirent TestCenter. The TCPL can be thought of as new set of mini-wizards for further simplifying the most commonly used operations within the superset supported by the existing API.

Refresher on Spirent TestCenter API


Spirent TestCenter API provides the following primary commands: - init: o Initializes the Spirent TestCenter environment - shutdown o Shutdown and cleanup Spirent TestCenter API environment - connect o Connect to a given list of Spirent TestCenter chassis - disconnect o Disconnect from a given list of Spirent TestCenter chassis - reserve o Reserve a given list of Spirent TestCenter ports. - release o Release a given list of Spirent TestCenter ports - help o Provide help text for given configuration object, property or command - create o Create the specified object. Usually takes a parent object as a parameter. - get o Retrieve handle or detailed information for a given object or its property - set o Modify the value of a given property within a given object - perform o Invoked to perform an action i.e. run a Command - subscribe o A specific type of perform that is used to setup results subscription. - unsubscribe o A specific type of perform that is used to cleanup an existing subscription - apply o A specific type of perform to force the API to update hardware configuration The basic commands supported by TestCenter have are a compact, concise set intended to provide a simple starting point that can be further explored using the help command.

Spirent Confidential

-2-

Spirent Confidential

Motivations for Spirent TestCenter PL


Spirent TestCenter PL (or TCPL) aims to take tasks performed by a large majority of our User base via scripting routines (i.e. functions/methods) and move it within the TestCenter API. There are several good reasons for doing so: o Simplify a vast majority of scripts leading to easier maintenance of scripts o Shorter and shallower learning curve for new Users o Consistency across the User base. o And more

Figure: Block diagram depicting the role of the Presentation Layer within TestCenter Architecture The TCPL is an evolving, growing set. The initial set under implementation covers some of the most commonly used features: o Port reservation o Port setup o Endpoint (Host or Router) setup o Traffic Setup o RFC traffic tests o Multicast tests

Spirent Confidential

-3-

Spirent Confidential

Other protocols will be added in the near future as the demand steps up. Each TCPL feature is available as a single command with input parameters. The goal is to keep input parameters as concise as possible, assuming reasonable defaults where possible. Users seeking more fine grained control can use the API to directly manipulate configuration where the TCPL cannot be applied.

TCPL Command Set


Port Reservation and Setup Related Commands
Name CreateAndReservePorts Usage Syntax This command creates and reserves a list of ports. CreateAndReservePorts [-locationList <LocationList>] | [-chassisList <ChassisList>] | [-slotList <SlotList>]

Input parameters : Mandatory The mandatory input parameter one of the following: -locationList <LocationList> specifies a list of ports (csp) -chassisList <ChassisList> specifies a list of ports -slotList <SlotList> specifies a list of slots -RevokeOwner Revoke ownership, if port is reserved by some other User. Returns a list of port objects Reserve Ports: ReservePorts -locationList {//1.0.0.1/1/1 //1.0.0.1/1/2} Reserve Chassis: ReservePorts -chassisList {//1.0.0.1} Reserve Slot: ReservePorts -slotList {//1.0.0.1/1}

Optional Output Example

Name SetupPorts Usage Syntax This command sets commonly used port parameters SetupPorts -portList <portList> [-media <default| copper| fiber>] |

Spirent Confidential

-4-

Spirent Confidential

[-autonegotiate <0|1>] | [-speed <default | SPEED_10M | SPEED_100M | SPEED_1G | Speed_10G] [-duplex HALF|FULL] [-mtu <0-16383>] Input parameters : Mandatory Optional The mandatory input parameter is: -portList <PortList> The optional parameters are described below: -media copper|fiber Specifies the media type as copper or fiber -autonegotiate 0|1 If set to 1, auto negotiate the port parameters. If set to 0, manually configure port parameters. -speed SPEED_10M|SPEED_100M|SPEED_1G| SPEED_10G Specifies the port speed -duplex HALF|FULL Specifies the port as half or full duplex. -mtu <0-16383> Specifies the port MTU size. None. SetupPorts -portList {port1} -media copper -autonegotiate 1 -speed SPEED_10M -duplex full -flowcontrol 1 -mtu 1500

Output Example

General Purpose Utility Commands


Name ConfigPropertiesCommand Usage Input parameters : Mandatory Optional Output Example None stc::perform ConfigProperties \ objectlist [stc::get project1 children-port] \ propertylist \ {\ generator.generatorConfig.schedulingMode generator.generatorConfig.durationMode } Configure multiple objects properties at once. ( Objects must all be the same type. ) ObjectList: the list of objects to be configured PropertyList: the list of property name/value pairs. DAN syntax is allowed. ObjectList PropertyList

RATE_BASED \ CONTINUOUS \

Spirent Confidential

-5-

Spirent Confidential

Name GetObjects Usage Input parameters : Returns a list of objects matching input parameters RootList Limits scope of search to objects under the specified roots. Defaults to system if unspecified Class Type of object to get. Condition a conditional expression used to filter the returned list of objects. l-operand is the property name. operator is either = or != r-operand is a string literal Example: RouterId != 10.0.0.1 Class Condition RootList ObjectList list of object handles that were gotten set devices [ stc::perform GetObjects \ rootlist project1 \ class EmulatedDevice \ condition RouterId != 10.0.0.1 ]

Mandatory Optional Output Example

Basic Traffic Setup Related Commands


Name CreateFrameLengthDistribution Usage Input parameters : Mandatory -DistributionName: name for the frame length distribution to be created -Slots: distribution slot configuration <Fixed:FrameLength | Random:MinFrameLength~MaxFrameLength>:<weight> -FrameLengthDistribution: Handle of the created frame length distribution object FrameLengthDistributionCreate \ -DistributionName "IMix 1" \ -Slots "Fixed:1518:20,Random:64~512:30,Fixed:40:50" Create a frame length distribution.

Output Example

Spirent Confidential

-6-

Spirent Confidential

Name Usage CreateGroupedStreamBlocks Create stream block(s) associated to a traffic group. New group and/or subgroup objects will automatically be created if there are no pre-existing group and/or subgroup with matching names. If group and/or subgroup with matching names already pre-exist, then the newly created stream block(s) will be appended to pre-existing group and/or subgroup.

Input parameters : Mandatory -Group: name of high-level group that the stream block(s) created will be part of -Subgroup: name of sub-Group under high-level group -SrcBinding: Traffic source endpoints -DstBinding: Traffic destination endpoints -ExpandToPorts: Expand to create individually configurable stream blocks under each port -TrafficPattern: Traffic source-destination endpoint pairing method (MESH, BACKBONE, or PAIR) -FrameLengthDistribution: Frame length distribution to be used when frame length mode is IMix -EndpointMapping: Pairing method for individual endpoints contained within endpoint blocks -EnableStreamOnlyGeneration: Create uniquely trackable frames for each traffic path -EnableBidirectionalTraffic: Generate streams from destination endpoints to source endpoints as well -EqualRxPortDistribution: RFC2889-style Rx port interleave to avoid congestion -EnableTxPortSendingTrafficToSelf: Allow Tx port to transmit traffic to itself -EnableControlPlane: Allow streams to respond to control plane packets -InsertSig: Insert unique identifier for each stream -FrameLengthMode: Frame length variation method -FixedFrameLength: Frame length value for FIXED frame length mode -MinFrameLength: Minimum frame length value for variable frame length modes (INCR, DECR, RANDOM) -MaxFrameLength: Maximum frame length value for variable frame length modes (INCR, DECR, RANDOM) -StepFrameLength: Frame length interval value for INCR/DECR frame length modes -FillType: Frame payload pattern variation method -ConstantFillPattern: Value to use as payload pattern for CONST fill type -BurstSize: Number of frames per burst when in PRIORITY_BASED scheduling mode -InterFrameGap: Gap between frames within a burst when in PRIORITY_BASED scheduling mode -LoadUnit: Unit of stream block rate/load -Load: Rate value of stream block -StartDelay: Byte gap delay before transmitting first frame when in

Optional

Spirent Confidential

-7-

Spirent Confidential

PRIORITY_BASED scheduling mode -Priority: Precedence level of frames from this stream block when in PRIORITY_BASED scheduling mode -EnableFcsErrorInsertion: Insert frame checksum errors for every frame -ShowAllHeaders: Store entire protocol stack in FrameConfig -AllowInvalidHeaders: Allow custom arrangement of protocol stack, disregarding normal stack ordering -AutoSelectTunnel: Automatically assign tunnel paths for tunneled traffic -ByPassSimpleIpSubnetChecking: Use destination endpoint MAC address directly if endpoints are under same subnet and if gateway address is 0.0.0.0 -FrameConfig: Frame protocol stack configuration. Please see additional details in Ehancement for automation for StreamBlock creation command Output -StreamBlocks: Handle list of stream blocks created -GroupCollection: Handle of group collection (group) -TrafficGroup: Handle of traffic group (subgroup) TrafficGroupCreate \ -Group "VLAN" \ -Subgroup "1000" \ -ExpandToPorts TRUE \ -TrafficPattern MESH \ -SrcBinding "$intf1 $intf3 $intf5" \ -DstBinding "$intf2 $intf4 $intf6" \ -FrameLengthDistribution $IMix_1 \ -FrameLengthMode IMIX \ -LoadUnit FRAMES_PER_SECOND \ -Load 12345 TrafficGroupModify Usage Modify properties of stream block(s) associated with specified traffic group(s). Group and subgroup names are used to find stream block(s). If subgroup name is not provided for a given group, then all stream block(s) under the group will be modified.

Example

Name

Input parameters : Mandatory Optional Traffic group and/or stream block with at least one property for modification TrafficGroups: Names of traffic groups under which stream blocks are to be modified AdditionalStreamBlocks: Stream blocks to be modified in addition to those under the traffic groups specified FrameLengthDistribution: Frame length distribution to be used when frame length mode is IMix -EndpointMapping: Pairing method for individual endpoints contained within endpoint blocks -EnableStreamOnlyGeneration: Create uniquely trackable frames for each traffic path -EnableBidirectionalTraffic: Generate streams from destination endpoints

Spirent Confidential

-8-

Spirent Confidential

to source endpoints as well -EqualRxPortDistribution: RFC2889-style Rx port interleave to avoid congestion -EnableTxPortSendingTrafficToSelf: Allow Tx port to transmit traffic to itself -EnableControlPlane: Allow streams to respond to control plane packets -InsertSig: Insert unique identifier for each stream -FrameLengthMode: Frame length variation method -FixedFrameLength: Frame length value for FIXED frame length mode -MinFrameLength: Minimum frame length value for variable frame length modes (INCR, DECR, RANDOM) -MaxFrameLength: Maximum frame length value for variable frame length modes (INCR, DECR, RANDOM) -StepFrameLength: Frame length interval value for INCR/DECR frame length modes -FillType: Frame payload pattern variation method -ConstantFillPattern: Value to use as payload pattern for CONST fill type -BurstSize: Number of frames per burst when in PRIORITY_BASED scheduling mode -InterFrameGap: Gap between frames within a burst when in PRIORITY_BASED scheduling mode -LoadUnit: Unit of stream block rate/load -Load: Rate value of stream block -StartDelay: Byte gap delay before transmitting first frame when in PRIORITY_BASED scheduling mode -Priority: Precedence level of frames from this stream block when in PRIORITY_BASED scheduling mode -EnableFcsErrorInsertion: Insert frame checksum errors for every frame -ShowAllHeaders: Store entire protocol stack in FrameConfig -AllowInvalidHeaders: Allow custom arrangement of protocol stack, disregarding normal stack ordering -AutoSelectTunnel: Automatically assign tunnel paths for tunneled traffic -ByPassSimpleIpSubnetChecking: Use destination endpoint MAC address directly if endpoints are under same subnet and gateway address is 0.0.0.0 Note: Please see Ehancement for automation for StreamBlock creation command for additional details on how to modify FrameConfig fields. Output -ModifiedStreamBlocks: Handle list of stream blocks modified -ModifiedGroups: Handle list of group collection (group) modified -ModifiedSubgroups: Handle list of traffic group (subgroup) modified TrafficGroupModify \ -TrafficGroups "VLAN:1000,VLAN:500,Multicast,Group1:Subgroup3" \ -AdditionalStreamBlocks "streamblock3 streamblock5" \ -FrameLengthMode FIXED \ -FixedFrameLength 512 \ -Load 35.0 \ -LoadUnit PERCENT_LINE_RATE

Example

Name Usage Enhancement for automation for StreamBlock creation command This allows the user to assign the traffic attributes (ie. Ip address, vlan

Spirent Confidential

-9-

Spirent Confidential

priority) when creating the streamblock Output Example StreamBlock Handle 1.To create a raw stream block with default information and IP source address 10.10.10.10 stc::create StreamBlock IPv4.sourceAddr 10.10.10.10 2.To create a bound stream block with vlan priority 010 stc::create StreamBlock srcBinding $vlanIf1 dstBinding $vlanIf2 Vlan.pri 010 3.To create and initialize a raw stream block with protocol stack EthernetII/Vlan/Vlan/IPv4/Tcp, where the second VLANs ID is 200 and IPv4s TTL is 255 Stc:create StreamBlock frameConfig EthernetII Vlan Vlan Ipv6 Tcp Vlan.2.id 200 Ipv4.ttl 255 4.To modify IP source address of an existing raw stream block with default information to 50.40.30.20 stc:config $streamblock IPv4.sourceAddr 50.40.30.20

Results Subscription Commands

Spirent Confidential

- 10 -

Spirent Confidential

Name SubscribeResultsViewCommand Usage Input parameters : Mandatory Optional -TempalteUri Template for subscribe. -FileNamePrefix Filename prefix to export to CSV. -ExportFormat <CSV, BINARY> CSV is default output export format. If user does not provide parameter then export will not be performed. -WaitTime <double> Default value is 3 seconds. This is wait time between subscribe results and export results to provide enough time for results to be populated. -RecordsPerPage <integer> If provided, It will override the template value. -Interval <integer> If provided, It will override the template value. This is IL notification interval time in seconds. Only active page data for result view will be exported. ResultDataSet output property will be default output. All other output properties will have values when export format is binary. -ResultDataSet <handle> Handle to the subscribed Result View - TableNames <string vector> Names of the exported table - TableColumnCount <integer vector> Number of columns for each table in TableNames - TableColumnNames <string vector> Comma separated name of columns for each table in TableNames - TableColumnValues <string vector> Example Comma separated values of counters for each table in TableNames. stc::perform SubscribeResultsView \ -TemplateUri "/Result Views/StreamResults/Detailed Stream Results.xml" This command will provide Users the ability to subscribe to a run-time Result View already defined by a Result View Template XML file.

Limitations Output Output properties

Spirent Confidential

- 11 -

Spirent Confidential

Spirent Confidential

- 12 -

Spirent Confidential

Name ExportDbResultsCommand Usage This command will save test results and export aggregated results to CSV file. User will be able to provide the aggregation attribute. User can export result on saved result db file by providing ResultDbFile parameter. When user is using Field option then user does not need to provide template Uri parameter. Input parameters : Mandatory -Field <VlanId, VlanPriority, SrcMAC, DestMac, SrcIPv4, DestIpv4, SrcIPv6, DestIPv6, IPV4_TOS, IPv4_DiffServ > User will be able to select up to six field as aggregation field for export. User must provide at least one field. -format <CSV, BINARY> CSV is default output export format. -ResultFileName <filename> User can provide filename prefix for output. Field name will be appended to exported file name. -ResultDbFile If user provides the result db file then command will not save EOT results and user provided result db will be used instead. - StartIndex <integer> Start index from which to export result data. - TotalCount <integer> Total results from Start index to export. If Total count is zero then all data will be exported. -GetResultCount <bool> GetCount will return number of results per table in output parameter TableResultCount Exported result for provided field in selected format. All output properties will have values when export format is binary. - TableNames <string vector> Names of the exported table - TableColumnCount <integer vector> Number of columns for each table in TableNames - TableColumnNames <string vector> Comma separated name of columns for each table in TableNames - TableColumnValues <string vector> Comma separated values of counters for each table in TableNames. - TableResultCount <string vector>
Spirent Confidential

Optional

Output Output properties

- 13 -

Limitations

Number of results available for each table in TableNames. None.

Spirent Confidential

Multicast Setup Commands


Name

CreateMulticastIpv4Group
Usage Syntax This command creates IPv4 multicast groups that can be used by traffic streams CreateMulticastIpv4Group [-groupCount <1-65535>] [-groupIpStep <IpAddress>] [-ipStart <IpAddress>] [-ipStep <IpAddress>] [-ipCount <0-65535>]

Input parameters : Mandatory Optional The mandatory input parameter, <ipVersion>, specifies the IP version of the multicast addresses to create. The optional parameters are described below: GroupCount <1-65535> Specifies the number of multicast group objects to create. Default is 1 GroupIpStep <IpAddress> Specifies the IpAddress Step per group object. GroupIpStep can be null, which indicates the next multicast IP should be used. Default is null. IpStart <IpAddress> Specifies a starting multicast IP address. IpStep <IpAddress> Specifies a multicast step IP address. IpCount <1-65535> Specifies the number of multicast IP addresses in the range. Default is 1 Output -ReturnList Object handles to the multicast group blocks

Example

CreateMulticastIpv4Group -IpCount 3 -IpStart 225.0.0.1 -IpStep 0.0.0.1 The above example creates an IPv4 multicast group with the addresses 225.0.0.1, 225.0.0.2, and 225.0.0.3.

Name

CreateMulticastIpv6Goup
Usage Syntax This command creates IPv6multicast groups that can be used by traffic streams CreateMulticastIpv6Group [-groupCount <1-65535>] [-groupIpStep <Ipv6dress>] [-ipStart <Ipv6dress>]

Spirent Confidential

- 14 -

Spirent Confidential

[-ipStep <Ipv6dress>] [-ipCount <0-65535>] Input parameters : Mandatory Optional The optional parameters are described below: GroupCount <1-65535> Specifies the number of multicast group objects to create. Default is 1 GroupIpStep <IpAddress> Specifies the IpAddress Step per group object. GroupIpStep can be null, which indicates the next multicast IP should be used. Default is null. IpStart <IpAddress> Specifies a starting multicast IP address. IpStep <IpAddress> Specifies a multicast step IP address. IpCount <1-65535> Specifies the number of multicast IP addresses in the range. Default is 1 Output -ReturnList Object handles to the multicast group blocks

Example

CreateMulticastIpv6Group -IpCount 3 -IpStart ff1e::1 -IpStep ::1 The above example creates an IPv4 multicast group with the addresses ff1e::1, ff1e::2, and ff1e::3

Name CreateIgmpMldHostProtocol Usage Syntax Input parameters : Mandatory Optional -DeviceList { <device> } Secifies a list of emulated devices on which to enable IGMP/MLD The optional parameters are described below: Version <IGMPV1 | IGMPV2 | IGMPV3 | MLDV1 | MLDV2> Specifies the IGMP/MLD version to emulate. GroupList {<multicastGroupHandle>...} Specifies a list of multicast group handles which will be added to the group membership for the specified devices. Output -ReturnList This command enables a device to run the IGMP/MLD protocol. CreateIgmpMldHostProtocol [-version <IGMPV1 | IGMPV2 | IGMPV3 | MLDV1 | MLDV2>] [-grpMembers {<multicastGrpHandle>...}]

Spirent Confidential

- 15 -

Spirent Confidential

Object handles to the created IgmpHostConfig/MldHostConfig objects Example CreateIgmpMldHostProtocol -Version IGMP_V2 \ DeviceList emulateddevice1 -GroupList [list ipv4Group1 ipv4group2 ipv4group3] The above example enables IGMPv2 on emulateddevice1 and also creates group memberships to the multicast groups in ipv4group1, ipv4group2, and ipv4group3. The SubscribedGroups relation will be automatically created.

Name CreateIgmpMldQuerierProtocol Usage Syntax Input parameters : Mandatory Optional Output -DeviceList { <device> }, specifies a list of emulated devices on which to enable IGMP/MLD -Version <IGMP_V1 | IGMP_V2 | IGMP_V3 | MLD_V1 | MLD_V2> Specifies the IGMP/MLD version to emulate. -ReturnList Object handles to the created IgmpRouterConfig/MldRouterConfig objects Example CreateIgmpMldQuerierProtocol \ -Version IGMP_V2 This command enables a device to emulate an IGMP/MLD queries. CreateIgmpMldQuerierProtocol -DeviceList [ list device1 ]

-DeviceList emulateddevice1 The above example enables IGMPv2 querier on emulateddevice1.

2544, 2889 and 3918 Related Commands


Name Rfc2544SetupThroughputTestCommand Usage Rfc2544SetupThroughputTest command sets up a throughput test using

Spirent Confidential

- 16 -

Spirent Confidential

all existing system traffic. If no existing traffic exists in the system, then the user may specify src/dst devices and a traffic pattern. If no src/dst devices are specified, then this command will attempt to build traffic using existing system devices. Note: Setup will fail if there are less than two existing devices in the system. Input parameters Mandatory Optional -TrafficList <HandleList> All system traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> All devices in case of empty handle list and no existing system traffic. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH> Default value:MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 -LearningMode <AUTO, L2_LEARNING, L3_LEARNING> Default value: AUTO -FrameSizeList <integer collection> Current stream block frame size if collection is empty. -FrameSizeDistributionList < HandleList> Current stream block frame size if collection is empty. - SearchMode < BINARY, STEP, COMBO> Default value: BINARY - RateLowerLimit <double> Default value:1 - RateUpperLimit <double> Default value:100 - RateStep <double> Default value:10 - RateInitial <double> Default value:100 - Resolution <double> Default value:1 - Backoff <double> Default value:50

Spirent Confidential

- 17 -

Spirent Confidential

Output Example

Inserts a RFC 2544 Throughput test into the sequencer. Rfc2544SetupThroughputTestCommand \ -FrameSizeList 64 9216

Name Rfc2544SetupLatencyTestCommand Usage Rfc2544SetupLatencyTest command sets up a latency test using all existing system traffic. If no existing traffic exists in the system, then the user may specify src/dst devices and a traffic pattern. If no src/dst devices are specified, then this command will attempt to build traffic using existing system devices. Note: Setup will fail if there are less than two existing devices in the system. Input parameters Mandatory Optional -TrafficList <HandleList> All system traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> All devices in case of empty handle list and no existing system traffic. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH> Default value: MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 -LearningMode <AUTO, L2_LEARNING, L3_LEARNING> Default value: AUTO -FrameSizeList <integer collection> Current stream block frame size if collection is empty. -FrameSizeDistributionList < HandleList>

Spirent Confidential

- 18 -

Spirent Confidential

Current stream block frame size if collection is empty. -LoadList <double collection> Current stream block/port loads if collection is empty. -LoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 2544 Latency test into the sequencer. Rfc2544SetupLatencyTestCommand \ -TrafficList port1 port2 port3 port4 \ -FrameSizeList 64 \ -LoadList 95 96 97 98 99 100

Name Rfc2544SetupFrameLossTestCommand Usage Rfc2544SetupFrameLossTest command sets up a frame loss test using all existing system traffic. If no existing traffic exists in the system, then the user may specify src/dst devices and a traffic pattern. If no src/dst devices are specified, then this command will attempt to build traffic using existing system devices. Note: Setup will fail if there are less than two existing devices in the system. Input parameters Mandatory Optional -TrafficList <HandleList> All system traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> All devices in case of empty handle list and no existing system traffic. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH> Default value: MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double>

Spirent Confidential

- 19 -

Spirent Confidential

Default Value:60 -LearningMode <AUTO, L2_LEARNING, L3_LEARNING> Default value: AUTO -FrameSizeList <integer collection> Current stream block frame size if collection is empty. -FrameSizeDistributionList < HandleList> Current stream block frame size if collection is empty. -LoadList <double collection> Default value :100, 90, 80, 70, 60, 50, 40, 30, 20, 10 -LoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 2544 Frame Loss Test into the sequencer. Rfc2544SetupFrameLossTestCommand \ -FrameSizeList 2048 4096 9216

Name Rfc2544SetupBackToBackTestCommand Usage Rfc2544SetupBackToBackTest command sets up a back-to-back test using all existing system traffic if present. If no existing traffic exists in the system, then the user may specify src/dst devices and a traffic pattern. If no src/dst devices are specified, then this command will attempt to build traffic using existing system devices. Note: Setup will fail if there are less than two existing devices in the system. Input parameters Mandatory Optional -TrafficList <HandleList> All system traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> All devices in case of empty handle list and no existing system traffic. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH>

Spirent Confidential

- 20 -

Spirent Confidential

Default value:MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 -LearningMode <AUTO, L2_LEARNING, L3_LEARNING> Default value: AUTO -FrameSizeList <integer collection> Current stream block frame size if collection is empty. -FrameSizeDistributionList < HandleList> Current stream block frame size if collection is empty. -LoadList <double collection> Current stream block/port loads if collection is empty. -LoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 2544 Back-To-Back test into the sequencer. Rfc2544SetupBackToBackTestCommand \ -TrafficList Vlan1000TrafficGroup \ -LoadList 100

Name Rfc2889SetupAddressCachingCapacityTestCommand Usage Rfc2889SetupAddressCachingCapacityTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create port pair traffic between the even and odd port devices. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList>

Spirent Confidential

- 21 -

Spirent Confidential

Devices from even number ports in case of empty handle list. -DstDeviceList <HandleList> Devices from odd number ports in case of empty handle list. -MonitorPortList <HandleList> -TrafficPattern <PAIR, BACKBONE> Default value: PAIR -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. - FrameSize <integer> Default value:64 - LearningRate <integer> Default value:1000 - InitialNumAddrs < integer > Default value:20480 - MinNumAddrs < integer > Default value:1 - MaxNumAddrs < integer > Default value:65536 - AgingTime < integer > Default value:15 Inserts a RFC 2889 Address Caching Capacity Test into the sequencer. Rfc2889SetupAddressCachingCapacityTestCommand \ -SrcDeviceList device1 device3 \ -DstDeviceList device2 device4 \ -MaxNumAddrs 16000000 \ -AgingTime 300

Output Example

Name Rfc2889SetupAddressLearningRateTestCommand Usage Rfc2889SetupAddressLearningRateTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create port pair traffic between the even and odd port devices. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> Devices from even number ports in case of empty handle list. -DstDeviceList <HandleList>

Spirent Confidential

- 22 -

Spirent Confidential

Devices from odd number ports in case of empty handle list. -MonitorPortList <HandleList> -TrafficPattern <PAIR, BACKBONE> Default value: PAIR -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. - FrameSize <integer> Default value:64 - MacAddrCount <integer> Default value:1 - InitialNumAddrs < integer > Default value:1488 - MinNumAddrs < integer > Default value:1488 - MaxNumAddrs < integer > Default value:14880 - AgingTime < integer > Default value:15 Inserts a RFC 2889 Address Learning Rate Test into the sequencer. Rfc2889SetupAddressLearningRateTestCommand \ -SrcDeviceList device1 \ -DstDeviceList device2 \ -InitialNumAddrs 1000000 \ -MaxNumAddrs 1000000 \ -AgingTime 300

Output Example

Name Rfc2889SetupBroadcastFrameForwardingTestCommand Usage Rfc2889SetupBroadcastFrameForwardingTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create broadcast traffic between the devices on the first Ethernet port and all other devices. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> First device in case of empty handle list. -DstDeviceList <HandleList> All remaining device in case of empty handle list. -NumOfTrials <integer>

Spirent Confidential

- 23 -

Spirent Confidential

Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:30 -BurstSize <interger collection> Default value: 1 -FrameSizeList <integer collection> Default value: 64, 128, 256, 512, 1024, 1280, 1518 - SearchMode < BINARY, STEP, COMBO > Default value: BINARY - RateLowerLimit <double> Default value:1 - RateUpperLimit <double> Default value:100 - RateStep <double> Default value:10 - RateInitial <double> Default value:100 - Resolution <double> Default value:1 Inserts a RFC 2889 Broadcast Frame Forwarding Test into the sequencer. Rfc2889SetupBroadcastFrameForwardingTestCommand \ -FrameSizeList 9000

Output Example

Name Rfc2889SetupBroadcastFrameLatencyTestCommand Usage Rfc2889SetupBroadcastFrameLatencyTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create broadcast traffic between the devices on the first Ethernet port and all other devices. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> First device in case of empty handle list. -DstDeviceList <HandleList> All remaining device in case of empty handle list. -NumOfTrials <integer>

Spirent Confidential

- 24 -

Spirent Confidential

Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -FrameSizeList <integer collection> Output Example Default value: 64, 128, 256, 512, 1024, 1280, 1518 Inserts a RFC 2889 Broadcast Frame Latency test into the sequencer. Rfc2889SetupBroadcastFrameLatencyTestCommand \ -LatencyType FIFO

Name Rfc2889SetupCongestionControlTestCommand Usage Rfc2889SetupCongestionControlTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create congestion control traffic between the devices on each set of four Ethernet ports. Note: setup will fail if there are less than four Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> Devices from even number ports in case of empty handle list. -DstDeviceList <HandleList> Devices from odd number ports in case of empty handle list. -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:30 -BurstSizeList <interger collection> Default value: 1 -FrameSizeList <integer collection> Default value: 64, 128, 256, 512, 1024, 1280, 1518

Spirent Confidential

- 25 -

Spirent Confidential

-LoadList <double collection> Default value:10 -LoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 2889 Congestion Control Test into the sequencer. Rfc2889SetupCongestionControlTestCommand \ -FrameSizeList 64 \ -LoadSizeList 100 Rfc2889SetupErroredFramesFilteringTestCommand Usage Rfc2889SetupErroredFramesFilteringTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create full-mesh traffic between the devices on all Ethernet ports. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> All devices in case of empty handle list. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH> -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:30 -BurstSize <interger collection> Default value: 1 -LoadList <double collection>

Name

Spirent Confidential

- 26 -

Spirent Confidential

Default value:10 -LoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Default value: PERCENT_LINE_RATE - CrcSize <integer> Default value:64 - Undersize < integer > Default value:63 - Oversize < integer > Default value:1523 - EnableCrc <bool > Default value: TRUE - EnableUndersize < bool > Default value: TRUE - EnableOversize < bool > Default value: TRUE Inserts a RFC 2889 Errored Frames Filtering Test into the sequencer. Rfc2889SetupErroredFramesFilteringTestCommand \ -EnableCrc TRUE \ -EnableUndersize TRUE \ -EnableOversize FALSE

Output Example

Name Rfc2889SetupForwardingTestCommand Usage Rfc2889SetupForwardingTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create full-mesh traffic between the devices on all Ethernet ports. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> All devices in case of empty handle list. -DstDeviceList <HandleList> empty -MonitorPortList <HandleList> -TrafficPattern <PAIR, BACKBONE, MESH> Default value: MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO>

Spirent Confidential

- 27 -

Spirent Confidential

Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 -FrameSizeList <integer collection> Default value: 64, 128, 256, 512, 1024, 1280, 1518 - SearchMode < BINARY, STEP, COMBO> Default value: BINARY - RateLowerLimit <double> Default value:1 - RateUpperLimit <double> Default value:100 - RateStep <double> Default value:10 - RateInitial <double> Default value:100 - Resolution <double> Default value:1 Inserts a RFC 2889 Forwarding Test into the sequencer. Rfc2889SetupForwardingTestCommand \ -SrcDeviceList 10gigDevice \ -DstDeviceList device1 device2 device 10 \ -FrameSizeList 64 9000

Output Example

Name Rfc2889SetupForwardPressureTestCommand Usage Rfc2889SetupForwardPressureTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create full-mesh traffic between the devices on all Ethernet ports. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> All devices in case of empty handle list. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH> Default value:MESH

Spirent Confidential

- 28 -

Spirent Confidential

-NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:30 -FrameSizeList <integer collection> Output Example Default value: 64, 128, 256, 512, 1024, 1280, 1518 Inserts a RFC 2889 Forward Pressure Test into the sequencer Rfc2889SetupForwardPressureTestCommand \ -SrcDeviceList device1 \ -DstDeviceList device2 \ -FrameSizeList 64

Name Rfc2889SetupMaxForwardingRateTestCommand Usage Rfc2889SetupMaxForwardingRateTest commands will use existing Ethernet based devices [2889 is an Ethernet ONLY test package] to automatically configure test traffic in the absence of user specified traffic. If multiple VLAN's are present, automatically created traffic will not cross VLAN boundaries. If no devices are specified, this command will create full-mesh traffic between the devices on all Ethernet ports. Note: setup will fail if there are less than two Ethernet devices on separate ports in the system. Input parameters Mandatory Optional -SrcDeviceList <HandleList> All devices in case of empty handle list. -DstDeviceList <HandleList> empty -TrafficPattern <PAIR, BACKBONE, MESH> Default value:MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO>

Spirent Confidential

- 29 -

Spirent Confidential

Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 -FrameSizeList <integer collection> Default value: 64, 128, 256, 512, 1024, 1280, 1518 -BurstSizeList <integer collection> Default value: 641 -LoadList <double collection> Default value: 10, 20, 30, 40, 50, 60, 70, 80 ,90 ,100 -LoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 2889 Max Forwarding Rate Test into the sequencer. Rfc2889SetupMaxForwardingRateTestCommand \ -NumOfTrials 10 \ -LatencyType LIFO \ -LoadList 80 90 100

Name Rfc3918SetupAggregatedMulticastThroughputTestCommand Usage Rfc3918SetupAggregatedMulticastThroughputTest will use an existing multicast configuration if present; otherwise it will create one using any IP/IPv6 existing devices in the system. Note: setup will fail if there are less than two IP or IPv6 devices. Input parameters Mandatory Optional -MulticastTrafficList <HandleList> All system multicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> First IP capable device in case of empty handle list and no existing multicast traffic. -DstDeviceList <HandleList> All remaining IP devices in case of empty handle list and no existing multicast traffic. -MonitorPortList <HandleList> -MulticastTrafficPattern <BACKBONE, MESH>

Spirent Confidential

- 30 -

Spirent Confidential

Default value: BACKBONE -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 - MulticastClientVersion < IGMP_V1,IGMP_V2, IGMP_V3, MLD_V1, MLD_V2> Default value: IGMP_V2 - MulticastGroupIpAddrBase < IP address > Default Value:225.0.0.1 - MulticastGroupIpAddrStep < integer > Default Value: 1 - MulticastGroupIpAddrPortStep < IP address > Default Value: 0.1.0.0 - MulticastGroupIpv6AddrBase< IPv6 address > Default Value: ff1e::1 - MulticastGroupIpv6AddStep< integer > Default Value: 1 - MulticastGroupIpv6AddrPortStep<IPv6addres > DefaultValue: 0:0:0:1::0 - MulticastFrameSizeList <integer collection> empty; current streamblock frame size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 -MulticastFrameSizeDistributionList <HandleList> empty; current streamblock frame size distribution -MulticastGroupCountList <integer collection> empty; current # multicast groups if available, otherwise 10 - SearchMode < BINARY, STEP, COMBO> Default value: BINARY - RateLowerLimit <double> Default value:1 - RateUpperLimit <double> Default value:100 - RateStep <double> Default value:10 - RateInitial <double> Default value:100 - Resolution <double> Default value:1 - Backoff <double> Default value:50 Inserts a RFC 3918 Aggregated Multicast Throughput test into the sequencer. Rfc3918SetupAggregatedMulticastThroughputTestCommand \ -MulticastGroupCountList 100 500 1000 \ -FrameSizeList 64 \ -SearchMode STEP

Output Example

Name Rfc3918SetupJoinLeaveLatencyTestCommand Usage Rfc3918SetupJoinLeaveLatencyTest will use an existing multicast

Spirent Confidential

- 31 -

Spirent Confidential

configuration if present; otherwise it will create one using any IP/IPv6 existing devices in the system. Note: setup will fail if there are less than two IP or IPv6 devices. Input parameters Mandatory Optional -MulticastTrafficList <HandleList> All system multicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> First IP capable device in case of empty handle list and no existing multicast traffic. -DstDeviceList <HandleList> All remaining IP devices in case of empty handle list and no existing multicast traffic. -MonitorPortList <HandleList> -MulticastTrafficPattern <BACKBONE, MESH> Default value: BACKBONE -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 - MulticastClientVersion < IGMP_V1,IGMP_V2, IGMP_V3, MLD_V1, MLD_V2> Default value: IGMP_V2 - MulticastGroupIpAddrBase < IP address > Default Value:225.0.0.1 - MulticastGroupIpAddrStep < integer > Default Value: 1 - MulticastGroupIpAddrPortStep < IP address > Default Value: 0.1.0.0 - MulticastGroupIpv6AddrBase< IPv6 address > Default Value: ff1e::1 - MulticastGroupIpv6AddStep< integer > Default Value: 1 - MulticastGroupIpv6AddrPortStep<IPv6addres > DefaultValue: 0:0:0:1::0 - MulticastFrameSizeList <integer collection> empty; current streamblock frame size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 -MulticastFrameSizeDistributionList <HandleList> empty; current streamblock frame size distribution

Spirent Confidential

- 32 -

Spirent Confidential

-MulticastGroupCountList <integer collection> empty; current # multicast groups if available, otherwise 10 -MulticastLoadList<double collection> empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 -MulticastLoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 3918 Join Leave Latency test into the sequencer. Rfc3918SetupJoinLeaveLatencyTestCommand \ -MulticastGroupCountList 10 100 1000 \ -MulticastLoadList 50 \ -MulticastFrameSizeList 64 \ -MulticastGroupIpAddrStep 2

Name Rfc3918SetupMixedClassThroughputTestCommand Usage Rfc3918SetupMixedClassThroughput will use an existing multicast configuration if present; otherwise it will create one using any IP/IPv6 existing devices in the system. Note: setup will fail if there are less than two IP or IPv6 devices. Additionally, unicast traffic is required for this test. If there is no existing unicast traffic in the system, this command will create full-mesh traffic between all multicast receivers. Note: setup will fail if there are less than two IP or IPv6 devices. Input parameters Mandatory Optional -MulticastTrafficList <HandleList> All system multicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -UnicastTrafficList <HandleList> All system unicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> First IP capable device in case of empty handle list and no existing multicast traffic. -DstDeviceList <HandleList> All remaining IP devices in case of empty handle list and no existing multicast traffic. -MonitorPortList <HandleList> -MulticastTrafficPattern <BACKBONE, MESH>

Spirent Confidential

- 33 -

Spirent Confidential

Default value: BACKBONE -UnicastTrafficPattern <BACKBONE, MESH> Default value: MESH -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 - MulticastClientVersion < IGMP_V1,IGMP_V2, IGMP_V3, MLD_V1, MLD_V2> Default value: IGMP_V2 - MulticastGroupIpAddrBase < IP address > Default Value:225.0.0.1 - MulticastGroupIpAddrStep < integer > Default Value: 1 - MulticastGroupIpAddrPortStep < IP address > Default Value: 0.1.0.0 - MulticastGroupIpv6AddrBase< IPv6 address > Default Value: ff1e::1 - MulticastGroupIpv6AddStep< integer > Default Value: 1 - MulticastGroupIpv6AddrPortStep<IPv6addres > DefaultValue: 0:0:0:1::0 - MulticastFrameSizeList <integer collection> empty; current streamblock frame size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 -MulticastFrameSizeDistributionList <HandleList> empty; current streamblock frame size distribution -MulticastGroupCountList <integer collection> empty; current # multicast groups if available, otherwise 10 -MulticastTrafficPercentageList <double collection> Default Value: 0, 10, 50, 90, 100 - SearchMode < BINARY, STEP, COMBO> Default value: BINARY - RateLowerLimit <double> Default value:1 - RateUpperLimit <double> Default value:100 - RateStep <double> Default value:10 - RateInitial <double> Default value:100 - Resolution <double> Default value:1 - Backoff <double> Default value:50 -UseSameFrameSizeForMulticastAndUnicast<bool> Default Value: TRUE -UnicastFrameSizeList <integer collection>

Spirent Confidential

- 34 -

Spirent Confidential

empty; use existing unicast streamblock size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 Note: This value is ignored when UseSameFrameSizeForMulticastAndUnicast is true. -UnicastFrameDistributionList <HandleList> empty; use existing unicast frame distribution Note: This value is ignored when UseSameFrameSizeForMulticastAndUnicast is true. Inserts a RFC 3918 Mixed Class Throughput test into the sequencer. Rfc3918SetupMixedClassThroughputTestCommand \ -MulticastTrafficList MulticastTrafficGroup \ -UnicastTrafficList UnicastTrafficGroup \ -MulticastTrafficPercentageList 50 \

Output Example

Name Rfc3918SetupMulticastForwardingLatencyTestCommand Usage Rfc3918SetupMulticastForwardingLatency will use an existing multicast configuration if present; otherwise it will create one using any IP/IPv6 existing devices in the system. Note: setup will fail if there are less than two IP or IPv6 devices. Input parameters Mandatory Optional -MulticastTrafficList <HandleList> All system multicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> First IP capable device in case of empty handle list and no existing multicast traffic. -DstDeviceList <HandleList> All remaining IP devices in case of empty handle list and no existing multicast traffic. -MonitorPortList <HandleList> -MulticastTrafficPattern <BACKBONE, MESH> Default value: BACKBONE -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -LatencyBucketDistributionMode <EXPONENTIAL, LINEAR>

Spirent Confidential

- 35 -

Spirent Confidential

Default value: LINEAR -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 - MulticastClientVersion < IGMP_V1,IGMP_V2, IGMP_V3, MLD_V1, MLD_V2> Default value: IGMP_V2 - MulticastGroupIpAddrBase < IP address > Default Value:225.0.0.1 - MulticastGroupIpAddrStep < integer > Default Value: 1 - MulticastGroupIpAddrPortStep < IP address > Default Value: 0.1.0.0 - MulticastGroupIpv6AddrBase< IPv6 address > Default Value: ff1e::1 - MulticastGroupIpv6AddStep< integer > Default Value: 1 - MulticastGroupIpv6AddrPortStep<IPv6addres > DefaultValue: 0:0:0:1::0 - MulticastFrameSizeList <integer collection> empty; current streamblock frame size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 -MulticastFrameSizeDistributionList <HandleList> empty; current streamblock frame size distribution -MulticastGroupCountList <integer collection> empty; current # multicast groups if available, otherwise 10 -MulticastLoadList<double collection> empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 -MulticastLoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 3918 Multicast Forwarding Latency test into the sequencer. Rfc3918SetupMulticastForwardingLatencyTestCommand \ -NumOfTrials 20 \ -LatencyBucketDistributionMode EXPONENTIAL

Name Rfc3918SetupMulticastGroupCapacityTestCommand Usage Rfc3918SetupMulticastGroupCapacityTest will use an existing multicast configuration if present; otherwise it will create one using any IP/IPv6 existing devices in the system. Note: setup will fail if there are less than two IP or IPv6 devices. Input parameters Mandatory

Spirent Confidential

- 36 -

Spirent Confidential

Optional

-MulticastTrafficList <HandleList> All system multicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> First IP capable device in case of empty handle list and no existing multicast traffic. -DstDeviceList <HandleList> All remaining IP devices in case of empty handle list and no existing multicast traffic. -MonitorPortList <HandleList> -MulticastTrafficPattern <BACKBONE, MESH> Default value: BACKBONE -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO. -DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 - MulticastClientVersion < IGMP_V1,IGMP_V2, IGMP_V3, MLD_V1, MLD_V2> Default value: IGMP_V2 - MulticastGroupIpAddrBase < IP address > Default Value:225.0.0.1 - MulticastGroupIpAddrStep < integer > Default Value: 1 - MulticastGroupIpAddrPortStep < IP address > Default Value: 0.1.0.0 - MulticastGroupIpv6AddrBase< IPv6 address > Default Value: ff1e::1 - MulticastGroupIpv6AddStep< integer > Default Value: 1 - MulticastGroupIpv6AddrPortStep<IPv6addres > DefaultValue: 0:0:0:1::0 - MulticastFrameSizeList <integer collection> empty; current streamblock frame size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 -MulticastFrameSizeDistributionList <HandleList> empty; current streamblock frame size distribution -MulticastLoadList<double collection> empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 -MulticastLoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND>

Spirent Confidential

- 37 -

Spirent Confidential

Default value: PERCENT_LINE_RATE -GroupSearchMode <BINARY, STEP, COMBO> Default value: STEP - GroupSearchInitial<integer> Default value:10 - GroupSearchLowerLimit< integer > Default value:10 - GroupSearchUpperLimit< integer > Default value:100 - GroupSearchStep< integer > Default value:10 - GroupSearchResolution< integer > Default value:10 - GroupSearchBackoff<double> Default value:50 Inserts a RFC 3918 Multicast Group Capacity test into the sequencer. Rfc3918SetupMulticastGroupCapacityTestCommand \ -MulticastTrafficList port1 \ -GroupSearchMode COMBO \ -GroupSearchInitial 100 \ -GroupSearchUpperLimit 1000 \ -GroupSearchStep 100

Output Example

Name Rfc3918SetupScaledGroupForwardingTestCommand Usage Rfc3918SetupScaledGroupForwardingTest will use an existing multicast configuration if present; otherwise it will create one using any IP/IPv6 existing devices in the system. Note: setup will fail if there are less than two IP or IPv6 devices. Input parameters Mandatory Optional -MulticastTrafficList <HandleList> All system multicast traffic will be included in case of empty handle list. Handle may be any of the following types: Project, GroupCollection, TrafficGroup, Port, or StreamBlock. -SrcDeviceList <HandleList> First IP capable device in case of empty handle list and no existing multicast traffic. -DstDeviceList <HandleList> All remaining IP devices in case of empty handle list and no existing multicast traffic. -MonitorPortList <HandleList> -MulticastTrafficPattern <BACKBONE, MESH> Default value: BACKBONE -NumOfTrials <integer> Default value:1 -LatencyType <FIFO, LIFO, LILO, FILO> Default value: LILO.

Spirent Confidential

- 38 -

Spirent Confidential

-DurationMode <SECONDS, BURSTS> Default value: SECONDS -Duration <double> Default Value:60 - MulticastClientVersion < IGMP_V1,IGMP_V2, IGMP_V3, MLD_V1, MLD_V2> Default value: IGMP_V2 - MulticastGroupIpAddrBase < IP address > Default Value:225.0.0.1 - MulticastGroupIpAddrStep < integer > Default Value: 1 - MulticastGroupIpAddrPortStep < IP address > Default Value: 0.1.0.0 - MulticastGroupIpv6AddrBase< IPv6 address > Default Value: ff1e::1 - MulticastGroupIpv6AddStep< integer > Default Value: 1 - MulticastGroupIpv6AddrPortStep<IPv6addres > DefaultValue: 0:0:0:1::0 - MulticastFrameSizeList <integer collection> empty; current streamblock frame size if available, otherwise IGMP: 64, 128, 256, 512, 1024, 1280, 1518 MLD: 128, 256, 512, 1024, 1280, 1518 -MulticastFrameSizeDistributionList <HandleList> empty; current streamblock frame size distribution if available -MulticastGroupCountList <integer collection> empty; current # multicast groups if available, otherwise 10 -MulticastLoadList<double collection> empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 -MulticastLoadUnits <PERCENT_LINE_RATE, MEGABITS_PER_SECOND, KILOBITS_PER_SECOND, BITS_PER_SECOND> Output Example Default value: PERCENT_LINE_RATE Inserts a RFC 3918 Scaled Group Forwarding test into the sequencer. Rfc3918SetupScaledGroupForwardingTestCommand \ -Duration 300 \ -MulticastGroupLoad 70 80 90 100

TestCenter API Enhancements


In addition to an evolving list of TCPL commands, TestCenter API is being enhanced for improved usability of existing Wizard commands. Several valuable TestCenter wizards operate on Wizard specific objects that have to be explicitly created before the Wizard Command may be invoked. e.g.

Spirent Confidential

- 39 -

Spirent Confidential

set dg [ stc::create EmulatedDeviceGenParams under $project ] set ep [ stc::create DeviceGenEthIIIfParams under $dg -<prop> <value> ] stc::perform DevGenConfigExpand GenParams $dg While this does work and is widely used, its also understood that this can be inconvenient in several use-cases especially the most simple ones. Therefore, we are adding the ability to pass in a map or dictionary style data structure to Wizard commands. Here are some examples of how existing Wizards can be invoked using this scheme: Creating Traffic stc::create Project \ -add { \ {StreamBlock -TrafficPattern MESH -SrcBinding $VlanIntfs(0) -vlan.pri 011 \ -FrameLengthMode IMIX -AffiliationFramelengthDistribution-Targets $IMix1 \ -Load 20 -LoadUnit PERCENT_LINE_RATE \ }\ {StreamBlock -TrafficPattern MESH -SrcBinding $VlanIntfs(1) \ -Load 1 -LoadUnit PERCENT_LINE_RATE \ -FrameLengthMode FIXED -FixedFrameLength 9000 -add { \ {RangeModifier -OffsetReference eth1.vlans.Vlan.pri -ModifierMode INCR -RecycleCount 3 -Data 000 -StepValue 001 -Mask 111} }\ }\ } Creating Devices In order to make it easier to use the Device Wizard with this API enhancement, a few additional changes to the Device Wizard were made. 1. Implicit determination of DeviceGenTopLevelIf and DeviceGenStackedOnIf relationships based on the creation order of DeviceGen___IfParams objects. Previously when using the Device Wizard it was necessary to setup DeviceGenTopLevelIf and DeviceGenStackedOnIf relationships to specify how the interface stack was built up. Now the Device Wizard will automatically determine the interface stack from the creation order of the DeviceGen___IfParams objects. In order for this to work, the DeviceGen___IfParams objects MUST be created bottom up from the interface closest to the wire. For example if you were creating a device with IPv4 over Ethernet, you would need to create the DeviceGenEthIIIfParams object before the DeviceGenIpv4IfParams object. 2. <PropertyId>StepPer<LinkToId> syntax added as an easier way of setting up DeviceGenLinkedStep objects Previously when using the Device Wizard if you wanted to increment a field with a Port or Vlan you needed to create DeviceGenLinkedStep objects under the object and set the PropertyId in the DeviceGenLinkedStep to the property that is incrementing and the LinkToId to the loop increment ID to step with (e.g. Port, VlanIf1, VlanIf2, etc).

Spirent Confidential

- 40 -

Spirent Confidential

The Device Wizard now supports a <PropertyId>StepPer<LinkToId> syntax as an easier way of creating DeviceGenLinkedStep objects under a Device Wizard parameters object. Using this syntax for example to set the IPv4 address to increment when stepping between ports you would set the AddrStepPerPort property on the DeviceGenIpv4IfParams object. To increment the IPv4 address with the VLAN you would set the AddrStepPerVlanIf1 property. 3. Ability to create EmulatedDeviceGenParams in the perform DeviceGenConfigExpand command. Previously if you wanted to use the Device Wizard, you needed to create an EmulatedDeviceGenParams object and pass it to the perform DeviceGenConfigExpand. After the command completed, you then needed to delete the EmulatedDeviceGenParams. To make this easier, you can now create an EmulatedDeviceGenParams object in the perform DeviceGenConfigExpand and it will be used as the parameters for the expansion. After the command completes, the parameters objects will automatically be deleted. This example (TCL) creates RIP devices on multiple ports where each port has 2 VLANs and each VLAN has 2 IP networks. stc::perform DeviceGenConfigExpand EmulatedDeviceGenParams [list \ -Port $portList \ -Role "Router" \ -RouterId 192.0.0.1 \ -RouterIdStep 0.0.0.1 \ -Count 2 \ -BlockMode ONE_DEVICE_PER_BLOCK \ -DeviceGenEthIIIfParams { \ -SrcMac "00:10:94:01:00:01" \ }\ -DeviceGenVlanIfParams { \ -Count 2 -VlanId 2000 -IdStep 1 \ }\ -DeviceGenIpv4IfParams { \ -PrefixLength 24 \ -Addr "192.169.0.1" -Gateway "192.169.0.3" AddrStepPerPort 0.1.0.0 \ -AddrStepPerVlanIf1 0.0.1.0 \ }\ -RipDeviceGenProtocolParams { \ }\ ] Here is the same example in perl. $stc->perform(DeviceGenConfigExpand, EmulatedDeviceGenParams => [ Port => @portList, Role => "Router", RouterId => 192.0.0.1, RouterIdStep => 0.0.0.1, Count => 2, BlockMode => ONE_DEVICE_PER_BLOCK , DeviceGenEthIIIfParams => [ SrcMac => "00:10:94:01:00:01" ],

Spirent Confidential

- 41 -

Spirent Confidential

DeviceGenVlanIfParams =>[ Count => 2, VlanId => 2000, IdStep => 1 ], DeviceGenIpv4IfParams => [ PrefixLength => 24, Addr => "192.169.0.1", Gateway =>"192.169.0.3", AddrStepPerPort => 0.1.0.0, AddrStepPerVlanIf1 => 0.0.1.0 ], RipDeviceGenProtocolParams => [ ] ] ); Turbo iteration RFC 2544 throughput test with existing Stream Blocks stc::create Rfc2544ThroughputConfig \ -FrameSizeIterationMode CUSTOM \ -CustomFrameSizeList [list 64 9000] \ -LearningMode L3_LEARNING \ -SearchMode BINARY \ -RateInitial 100 \ -Resolution 0.1 \ -Rfc2544StreamBlockProfile { \ -StreamBlockList [$streamBlockList] } -TimeToTestConfig { \ -EnableTurboIteration TRUE \ -TruboDuration 10 \ -EnableConditionalResultsWaitCommand TRUE \ }

RFC 3918 example running Group Capacity and Scaled Group Forwarding with a common topology stc::create Rfc3918TestConfig \ -MulticastStreamBlockBinding-Target $mcastStreamBlockList \ -MulticastMonitorPortBinding-Target [lindex $portList end] \ -DurationMode SECONDS \ -Duration 300 \ -MulticastClientVersion IGMP_V2 \ -MulticastFrameSizeMode FIXED \ -FixedMulticastFrameSize 128 \ -LatencyType LILO \ -Rfc3918MulticastGroupCapacityTestCaseConfig { \ -GroupSearchMode COMBO \ -GroupSearchInitial 100 \ -GroupSearchStep 100 \ -GroupSearchUpperLimit 1000 \ -GroupSearchResolution 10 \ } -Rfc3918MulticastScaledGroupForwardingTestCaseConfig { \ -GroupCountType CUSTOM \ -CustomGroupCountList [list 100 200 300 400 500] \

Spirent Confidential

- 42 -

Spirent Confidential

-LoadType FIXED \ -FixedLoad 100 \ -FixedLoadUnits PERCENT_LINE_RATE \ }

Spirent Confidential

- 43 -

You might also like