SpirentTestCenter API

download SpirentTestCenter API

of 43

Transcript of SpirentTestCenter API

SpirentTestCenter API

Spirent Confidential

SpirentTestCenter API

API Specification and TestCenter PL Command Set

Version 0.952Overview

2Refresher on Spirent TestCenter API

3Motivations for Spirent TestCenter PL

3TCPL Command Set

3Port Reservation and Setup Related Commands

3CreateAndReservePorts

3SetupPorts

3General Purpose Utility Commands

3ConfigObjectsParamsCommand

3GetObjects

3Basic Traffic Setup Related Commands

3CreateFrameLengthDistribution

3CreateGroupedStreamBlocks

3TrafficGroupModify

3Enhancement for automation for StreamBlock creation command

3Results Subscription Commands

Error! Bookmark not defined.SubscribeResultsViewCommand

Error! Bookmark not defined.ExportDbResultsCommand

3Multicast Setup Commands

3CreateMulticastIpv4Group

3CreateMulticastIpv6Goup

3CreateIgmpMldHostProtocol

3CreateIgmpMldQuerierProtocol

32544, 2889 and 3918 Related Commands

3Rfc2544SetupThroughputTestCommand

3Rfc2544SetupLatencyTestCommand

3Rfc2544SetupFrameLossTestCommand

3Rfc2544SetupBackToBackTestCommand

3Rfc2889SetupAddressCachingCapacityTestCommand

3Rfc2889SetupAddressLearningRateTestCommand

3Rfc2889SetupBroadcastFrameForwardingTestCommand

3Rfc2889SetupBroadcastFrameLatencyTestCommand

3Rfc2889SetupCongestionControlTestCommand

3Rfc2889SetupErroredFramesFilteringTestCommand

3Rfc2889SetupForwardingTestCommand

3Rfc2889SetupForwardPressureTestCommand

3Rfc2889SetupMaxForwardingRateTestCommand

3Rfc3918SetupAggregatedMulticastThroughputTestCommand

3Rfc3918SetupJoinLeaveLatencyTestCommand

3Rfc3918SetupMixedClassThroughputTestCommand

3Rfc3918SetupMulticastForwardingLatencyTestCommand

3Rfc3918SetupMulticastGroupCapacityTestCommand

3Rfc3918SetupScaledGroupForwardingTestCommand

3TestCenter API Enhancements

OverviewThis 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:

Initializes the Spirent TestCenter environment

shutdown

Shutdown and cleanup Spirent TestCenter API environment

connect

Connect to a given list of Spirent TestCenter chassis

disconnect

Disconnect from a given list of Spirent TestCenter chassis

reserve

Reserve a given list of Spirent TestCenter ports.

release

Release a given list of Spirent TestCenter ports

help

Provide help text for given configuration object, property or command

create

Create the specified object. Usually takes a parent object as a parameter.

get

Retrieve handle or detailed information for a given object or its property

set

Modify the value of a given property within a given object

perform

Invoked to perform an action i.e. run a Command

subscribe

A specific type of perform that is used to setup results subscription.

unsubscribe

A specific type of perform that is used to cleanup an existing subscription

apply

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.

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:

Simplify a vast majority of scripts leading to easier maintenance of scripts

Shorter and shallower learning curve for new Users

Consistency across the User base.

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:

Port reservation

Port setup

Endpoint (Host or Router) setup

Traffic Setup

RFC traffic tests

Multicast tests

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 SetPort Reservation and Setup Related CommandsNameCreateAndReservePorts

UsageThis command creates and reserves a list of ports.

SyntaxCreateAndReservePorts [-locationList ] | [-chassisList ] | [-slotList ]

Input parameters :

MandatoryThe mandatory input parameter one of the following: -locationList specifies a list of ports (csp) -chassisList specifies a list of ports -slotList specifies a list of slots

Optional-RevokeOwner

Revoke ownership, if port is reserved by some other User.

Output

Returns a list of port objects

Example

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}

NameSetupPorts

UsageThis command sets commonly used port parameters

SyntaxSetupPorts -portList [-media ] | [-autonegotiate ] | [-speed

Current stream block frame size if collection is empty.

- SearchMode < BINARY, STEP, COMBO>

Default value: BINARY

- RateLowerLimit Default value:1

- RateUpperLimit Default value:100

- RateStep Default value:10

- RateInitial Default value:100

- Resolution Default value:1

- Backoff Default value:50

OutputInserts a RFC 2544 Throughput test into the sequencer.

ExampleRfc2544SetupThroughputTestCommand \

-FrameSizeList 64 9216

NameRfc2544SetupLatencyTestCommand

UsageRfc2544SetupLatencyTest 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 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

All devices in case of empty handle list and no existing system traffic.

-DstDeviceList

empty

-TrafficPattern

Default value: MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:60

-LearningMode

Default value: AUTO

-FrameSizeList

Current stream block frame size if collection is empty.

-FrameSizeDistributionList < HandleList>

Current stream block frame size if collection is empty.

-LoadList Current stream block/port loads if collection is empty.

-LoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 2544 Latency test into the sequencer.

ExampleRfc2544SetupLatencyTestCommand \

-TrafficList port1 port2 port3 port4 \

-FrameSizeList 64 \

-LoadList 95 96 97 98 99 100

NameRfc2544SetupFrameLossTestCommand

UsageRfc2544SetupFrameLossTest 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 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

All devices in case of empty handle list and no existing system traffic.

-DstDeviceList

empty

-TrafficPattern

Default value: MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:60

-LearningMode

Default value: AUTO

-FrameSizeList

Current stream block frame size if collection is empty.

-FrameSizeDistributionList < HandleList>

Current stream block frame size if collection is empty.

-LoadList Default value :100, 90, 80, 70, 60, 50, 40, 30, 20, 10

-LoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 2544 Frame Loss Test into the sequencer.

ExampleRfc2544SetupFrameLossTestCommand \

-FrameSizeList 2048 4096 9216

NameRfc2544SetupBackToBackTestCommand

UsageRfc2544SetupBackToBackTest 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 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

All devices in case of empty handle list and no existing system traffic.

-DstDeviceList

empty

-TrafficPattern

Default value:MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:60

-LearningMode

Default value: AUTO

-FrameSizeList

Current stream block frame size if collection is empty.

-FrameSizeDistributionList < HandleList>

Current stream block frame size if collection is empty.

-LoadList Current stream block/port loads if collection is empty.

-LoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 2544 Back-To-Back test into the sequencer.

ExampleRfc2544SetupBackToBackTestCommand \

-TrafficList Vlan1000TrafficGroup \

-LoadList 100

NameRfc2889SetupAddressCachingCapacityTestCommand

UsageRfc2889SetupAddressCachingCapacityTest 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

Devices from even number ports in case of empty handle list.

-DstDeviceList

Devices from odd number ports in case of empty handle list.

-MonitorPortList

-TrafficPattern

Default value: PAIR

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

- FrameSize

Default value:64

- LearningRate Default value:1000

- InitialNumAddrs < integer > Default value:20480

- MinNumAddrs < integer > Default value:1

- MaxNumAddrs < integer > Default value:65536

- AgingTime < integer > Default value:15

OutputInserts a RFC 2889 Address Caching Capacity Test into the sequencer.

ExampleRfc2889SetupAddressCachingCapacityTestCommand \

-SrcDeviceList device1 device3 \

-DstDeviceList device2 device4 \

-MaxNumAddrs 16000000 \

-AgingTime 300

NameRfc2889SetupAddressLearningRateTestCommand

UsageRfc2889SetupAddressLearningRateTest 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

Devices from even number ports in case of empty handle list.

-DstDeviceList

Devices from odd number ports in case of empty handle list.

-MonitorPortList

-TrafficPattern

Default value: PAIR

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

- FrameSize

Default value:64

- MacAddrCount Default value:1

- InitialNumAddrs < integer > Default value:1488

- MinNumAddrs < integer > Default value:1488

- MaxNumAddrs < integer > Default value:14880

- AgingTime < integer > Default value:15

OutputInserts a RFC 2889 Address Learning Rate Test into the sequencer.

ExampleRfc2889SetupAddressLearningRateTestCommand \

-SrcDeviceList device1 \

-DstDeviceList device2 \

-InitialNumAddrs 1000000 \

-MaxNumAddrs 1000000 \

-AgingTime 300

NameRfc2889SetupBroadcastFrameForwardingTestCommand

UsageRfc2889SetupBroadcastFrameForwardingTest 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

First device in case of empty handle list.

-DstDeviceList

All remaining device in case of empty handle list.

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:30

-BurstSize

Default value: 1

-FrameSizeList

Default value: 64, 128, 256, 512, 1024, 1280, 1518

- SearchMode < BINARY, STEP, COMBO >

Default value: BINARY

- RateLowerLimit Default value:1

- RateUpperLimit Default value:100

- RateStep Default value:10

- RateInitial Default value:100

- Resolution Default value:1

OutputInserts a RFC 2889 Broadcast Frame Forwarding Test into the sequencer.

ExampleRfc2889SetupBroadcastFrameForwardingTestCommand \

-FrameSizeList 9000

NameRfc2889SetupBroadcastFrameLatencyTestCommand

UsageRfc2889SetupBroadcastFrameLatencyTest 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

First device in case of empty handle list.

-DstDeviceList

All remaining device in case of empty handle list.

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-FrameSizeList

Default value: 64, 128, 256, 512, 1024, 1280, 1518

OutputInserts a RFC 2889 Broadcast Frame Latency test into the sequencer.

ExampleRfc2889SetupBroadcastFrameLatencyTestCommand \

-LatencyType FIFO

NameRfc2889SetupCongestionControlTestCommand

UsageRfc2889SetupCongestionControlTest 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

Devices from even number ports in case of empty handle list.

-DstDeviceList

Devices from odd number ports in case of empty handle list.

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:30

-BurstSizeList

Default value: 1

-FrameSizeList

Default value: 64, 128, 256, 512, 1024, 1280, 1518

-LoadList Default value:10

-LoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 2889 Congestion Control Test into the sequencer.

ExampleRfc2889SetupCongestionControlTestCommand \

-FrameSizeList 64 \

-LoadSizeList 100

NameRfc2889SetupErroredFramesFilteringTestCommand

UsageRfc2889SetupErroredFramesFilteringTest 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 All devices in case of empty handle list.

-DstDeviceList empty

-TrafficPattern

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:30

-BurstSize

Default value: 1

-LoadList Default value:10

-LoadUnits Default value: PERCENT_LINE_RATE

- CrcSize Default value:64

- Undersize < integer > Default value:63

- Oversize < integer > Default value:1523

- EnableCrc Default value: TRUE

- EnableUndersize < bool > Default value: TRUE

- EnableOversize < bool > Default value: TRUE

OutputInserts a RFC 2889 Errored Frames Filtering Test into the sequencer.

ExampleRfc2889SetupErroredFramesFilteringTestCommand \

-EnableCrc TRUE \

-EnableUndersize TRUE \

-EnableOversize FALSE

NameRfc2889SetupForwardingTestCommand

UsageRfc2889SetupForwardingTest 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

All devices in case of empty handle list.

-DstDeviceList

empty

-MonitorPortList

-TrafficPattern

Default value: MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:60

-FrameSizeList

Default value: 64, 128, 256, 512, 1024, 1280, 1518

- SearchMode < BINARY, STEP, COMBO>

Default value: BINARY

- RateLowerLimit Default value:1

- RateUpperLimit Default value:100

- RateStep Default value:10

- RateInitial Default value:100

- Resolution Default value:1

OutputInserts a RFC 2889 Forwarding Test into the sequencer.

ExampleRfc2889SetupForwardingTestCommand \

-SrcDeviceList 10gigDevice \

-DstDeviceList device1 device2 device 10 \

-FrameSizeList 64 9000

NameRfc2889SetupForwardPressureTestCommand

UsageRfc2889SetupForwardPressureTest 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

All devices in case of empty handle list.

-DstDeviceList

empty

-TrafficPattern

Default value:MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:30

-FrameSizeList

Default value: 64, 128, 256, 512, 1024, 1280, 1518

OutputInserts a RFC 2889 Forward Pressure Test into the sequencer

ExampleRfc2889SetupForwardPressureTestCommand \

-SrcDeviceList device1 \

-DstDeviceList device2 \

-FrameSizeList 64

NameRfc2889SetupMaxForwardingRateTestCommand

UsageRfc2889SetupMaxForwardingRateTest 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

All devices in case of empty handle list.

-DstDeviceList

empty

-TrafficPattern

Default value:MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

Default Value:60

-FrameSizeList

Default value: 64, 128, 256, 512, 1024, 1280, 1518

-BurstSizeList

Default value: 641

-LoadList Default value: 10, 20, 30, 40, 50, 60, 70, 80 ,90 ,100

-LoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 2889 Max Forwarding Rate Test into the sequencer.

ExampleRfc2889SetupMaxForwardingRateTestCommand \

-NumOfTrials 10 \

-LatencyType LIFO \

-LoadList 80 90 100

NameRfc3918SetupAggregatedMulticastThroughputTestCommand

UsageRfc3918SetupAggregatedMulticastThroughputTest 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 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

First IP capable device in case of empty handle list and no existing multicast traffic.

-DstDeviceList

All remaining IP devices in case of empty handle list and no existing multicast traffic.

-MonitorPortList

-MulticastTrafficPattern

Default value: BACKBONE

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

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 DefaultValue: 0:0:0:1::0

- MulticastFrameSizeList

empty; current streamblock frame size if available, otherwiseIGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518

-MulticastFrameSizeDistributionList

empty; current streamblock frame size distribution

-MulticastGroupCountList

empty; current # multicast groups if available, otherwise 10

- SearchMode < BINARY, STEP, COMBO>

Default value: BINARY

- RateLowerLimit Default value:1

- RateUpperLimit Default value:100

- RateStep Default value:10

- RateInitial Default value:100

- Resolution Default value:1

- Backoff Default value:50

OutputInserts a RFC 3918 Aggregated Multicast Throughput test into the sequencer.

ExampleRfc3918SetupAggregatedMulticastThroughputTestCommand \

-MulticastGroupCountList 100 500 1000 \

-FrameSizeList 64 \

-SearchMode STEP

NameRfc3918SetupJoinLeaveLatencyTestCommand

UsageRfc3918SetupJoinLeaveLatencyTest 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 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

First IP capable device in case of empty handle list and no existing multicast traffic.

-DstDeviceList

All remaining IP devices in case of empty handle list and no existing multicast traffic.

-MonitorPortList

-MulticastTrafficPattern

Default value: BACKBONE

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

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 DefaultValue: 0:0:0:1::0

- MulticastFrameSizeList

empty; current streamblock frame size if available, otherwiseIGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518

-MulticastFrameSizeDistributionList

empty; current streamblock frame size distribution

-MulticastGroupCountList

empty; current # multicast groups if available, otherwise 10

-MulticastLoadList

empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

-MulticastLoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 3918 Join Leave Latency test into the sequencer.

ExampleRfc3918SetupJoinLeaveLatencyTestCommand \

-MulticastGroupCountList 10 100 1000 \

-MulticastLoadList 50 \

-MulticastFrameSizeList 64 \

-MulticastGroupIpAddrStep 2

NameRfc3918SetupMixedClassThroughputTestCommand

UsageRfc3918SetupMixedClassThroughput 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 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 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

First IP capable device in case of empty handle list and no existing multicast traffic.

-DstDeviceList

All remaining IP devices in case of empty handle list and no existing multicast traffic.

-MonitorPortList

-MulticastTrafficPattern

Default value: BACKBONE

-UnicastTrafficPattern

Default value: MESH

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

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 DefaultValue: 0:0:0:1::0

- MulticastFrameSizeList

empty; current streamblock frame size if available, otherwiseIGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518

-MulticastFrameSizeDistributionList

empty; current streamblock frame size distribution

-MulticastGroupCountList

empty; current # multicast groups if available, otherwise 10

-MulticastTrafficPercentageList

Default Value: 0, 10, 50, 90, 100

- SearchMode < BINARY, STEP, COMBO>

Default value: BINARY

- RateLowerLimit Default value:1

- RateUpperLimit Default value:100

- RateStep Default value:10

- RateInitial Default value:100

- Resolution Default value:1

- Backoff Default value:50

-UseSameFrameSizeForMulticastAndUnicast

Default Value: TRUE

-UnicastFrameSizeList

empty; use existing unicast streamblock size if available, otherwise

IGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518Note: This value is ignored when UseSameFrameSizeForMulticastAndUnicast is true.

-UnicastFrameDistributionList

empty; use existing unicast frame distributionNote: This value is ignored when UseSameFrameSizeForMulticastAndUnicast is true.

OutputInserts a RFC 3918 Mixed Class Throughput test into the sequencer.

ExampleRfc3918SetupMixedClassThroughputTestCommand \

-MulticastTrafficList MulticastTrafficGroup \

-UnicastTrafficList UnicastTrafficGroup \

-MulticastTrafficPercentageList 50 \

NameRfc3918SetupMulticastForwardingLatencyTestCommand

UsageRfc3918SetupMulticastForwardingLatency 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 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

First IP capable device in case of empty handle list and no existing multicast traffic.

-DstDeviceList

All remaining IP devices in case of empty handle list and no existing multicast traffic.

-MonitorPortList

-MulticastTrafficPattern

Default value: BACKBONE

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-LatencyBucketDistributionMode

Default value: LINEAR

-DurationMode

Default value: SECONDS

-Duration

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 DefaultValue: 0:0:0:1::0

- MulticastFrameSizeList

empty; current streamblock frame size if available, otherwiseIGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518

-MulticastFrameSizeDistributionList

empty; current streamblock frame size distribution

-MulticastGroupCountList

empty; current # multicast groups if available, otherwise 10

-MulticastLoadList

empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

-MulticastLoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 3918 Multicast Forwarding Latency test into the sequencer.

ExampleRfc3918SetupMulticastForwardingLatencyTestCommand \

-NumOfTrials 20 \

-LatencyBucketDistributionMode EXPONENTIAL

NameRfc3918SetupMulticastGroupCapacityTestCommand

UsageRfc3918SetupMulticastGroupCapacityTest 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 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

First IP capable device in case of empty handle list and no existing multicast traffic.

-DstDeviceList

All remaining IP devices in case of empty handle list and no existing multicast traffic.

-MonitorPortList

-MulticastTrafficPattern

Default value: BACKBONE

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

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 DefaultValue: 0:0:0:1::0

- MulticastFrameSizeList

empty; current streamblock frame size if available, otherwiseIGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518

-MulticastFrameSizeDistributionList

empty; current streamblock frame size distribution

-MulticastLoadList

empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

-MulticastLoadUnits Default value: PERCENT_LINE_RATE

-GroupSearchMode

Default value: STEP

- GroupSearchInitial Default value:10

- GroupSearchLowerLimit< integer > Default value:10

- GroupSearchUpperLimit< integer > Default value:100

- GroupSearchStep< integer > Default value:10

- GroupSearchResolution< integer > Default value:10

- GroupSearchBackoff Default value:50

OutputInserts a RFC 3918 Multicast Group Capacity test into the sequencer.

ExampleRfc3918SetupMulticastGroupCapacityTestCommand \

-MulticastTrafficList port1 \

-GroupSearchMode COMBO \

-GroupSearchInitial 100 \

-GroupSearchUpperLimit 1000 \

-GroupSearchStep 100

NameRfc3918SetupScaledGroupForwardingTestCommand

UsageRfc3918SetupScaledGroupForwardingTest 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 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

First IP capable device in case of empty handle list and no existing multicast traffic.

-DstDeviceList

All remaining IP devices in case of empty handle list and no existing multicast traffic.

-MonitorPortList

-MulticastTrafficPattern

Default value: BACKBONE

-NumOfTrials

Default value:1

-LatencyType

Default value: LILO.

-DurationMode

Default value: SECONDS

-Duration

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 DefaultValue: 0:0:0:1::0

- MulticastFrameSizeList

empty; current streamblock frame size if available, otherwiseIGMP: 64, 128, 256, 512, 1024, 1280, 1518

MLD: 128, 256, 512, 1024, 1280, 1518

-MulticastFrameSizeDistributionList

empty; current streamblock frame size distribution if available

-MulticastGroupCountList

empty; current # multicast groups if available, otherwise 10

-MulticastLoadList

empty; current streamblock/port loads if available, otherwise 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

-MulticastLoadUnits Default value: PERCENT_LINE_RATE

OutputInserts a RFC 3918 Scaled Group Forwarding test into the sequencer.

ExampleRfc3918SetupScaledGroupForwardingTestCommand \

-Duration 300 \

-MulticastGroupLoad 70 80 90 100

TestCenter API EnhancementsIn 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.

set dg [ stc::create EmulatedDeviceGenParams under $project ]

set ep [ stc::create DeviceGenEthIIIfParams under $dg - ]

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. StepPer 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).

The Device Wizard now supports a StepPer 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"

],

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] \

-LoadType FIXED \

-FixedLoad 100 \

-FixedLoadUnits PERCENT_LINE_RATE \

}

Spirent Confidential- 11 -

_1331041054.vsdtext

STC API

Wizards API

Spirent PL API

Scripting Adaption Layer

Language Specific Bindings