SpirentTestCenter API
-
Upload
dappinsatish -
Category
Documents
-
view
113 -
download
7
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