3 # Copyright (c) 2014, Ixia
4 # Copyright (c) 2015-2016, Intel Corporation
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
11 # 1. Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
14 # 2. Redistributions in binary form must reproduce the above copyright
15 # notice, this list of conditions and the following disclaimer in the
16 # documentation and/or other materials provided with the distribution.
18 # 3. Neither the name of the copyright holder nor the names of its
19 # contributors may be used to endorse or promote products derived
20 # from this software without specific prior written permission.
22 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 # POSSIBILITY OF SUCH DAMAGE.
35 # This file is a modified version of a script generated by Ixia
38 lappend auto_path [list $lib_path]
40 ###################################################################
41 ########################## Configuration ##########################
42 ###################################################################
44 # verify that the IXIA chassis spec is given
46 set reqVars [list "machine" "port" "user" "chassis" "card" "port1" "port2" "output_dir" "bidir"]
49 foreach var $reqVars {
50 set var_ns [namespace which -variable "$var"]
51 if { [string compare $var_ns ""] == 0 } {
52 errorMsg "The '$var' variable is undefined. Did you set it?"
57 # machine configuration
59 set ::IxNserver $machine
63 # change to windows path format and append directory
64 set output_dir [string map {"/" "\\"} $output_dir]
65 set output_dir "$output_dir\\rfctests"
66 puts "Output directory is $output_dir"
68 proc startRfc2544Test { testSpec trafficSpec } {
69 # Start RFC2544 quicktest.
71 # Configure global variables. See documentation on 'global' for more
72 # information on why this is necessary
73 # https://www.tcl.tk/man/tcl8.5/tutorial/Tcl13.html
75 global sg_rfc2544throughput
76 global sg_rfc2544back2back
80 set rfc2544TestType [dict get $testSpec rfc2544TestType]
82 set binary [dict get $testSpec binary]
84 set duration [dict get $testSpec duration]
87 set numTrials [dict get $testSpec trials]
89 set tolerance [dict get $testSpec lossrate]
93 set frameRate [dict get $testSpec framerate]
98 set learningFrames True
100 if {$learningFrames} {
101 set learningFrequency oncePerTest
102 set fastPathEnable True
104 set learningFrequency never
105 set fastPathEnable False
108 set multipleStreams [dict get $testSpec multipleStreams]
109 if {($multipleStreams < 0)} {
110 set multipleStreams 0
114 if {$multipleStreams} {
115 if {($multipleStreams > 65535)} {
118 set numflows $multipleStreams
120 set multipleStreams increment
122 set multipleStreams singleValue
125 set fastConvergence True
126 set convergenceDuration [expr $duration/10]
130 # extract nested dictionaries
131 set trafficSpec_l2 [dict get $trafficSpec l2]
132 set trafficSpec_l3 [dict get $trafficSpec l3]
133 set trafficSpec_l4 [dict get $trafficSpec l4]
134 set trafficSpec_vlan [dict get $trafficSpec vlan]
136 set frameSize [dict get $trafficSpec_l2 framesize]
137 set srcMac [dict get $trafficSpec_l2 srcmac]
138 set dstMac [dict get $trafficSpec_l2 dstmac]
140 set srcPort [dict get $trafficSpec_l4 srcport]
141 set dstPort [dict get $trafficSpec_l4 dstport]
143 # Tested protocols: udp, tcp, gre
144 set proto [dict get $trafficSpec_l3 proto]
145 set proto [string tolower $proto]
146 set srcIp [dict get $trafficSpec_l3 srcip]
147 set dstIp [dict get $trafficSpec_l3 dstip]
150 if { [string compare $proto "tcp"] == 0 } {
155 set vxlan_enabled [dict exists $trafficSpec_l4 vni]
156 set geneve_enabled [dict exists $trafficSpec_l4 geneve_vni]
158 if { $vxlan_enabled } {
159 puts "VXLAN is enabled. Setting VXLAN variables"
160 set vni [dict get $trafficSpec_l4 vni]
161 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
162 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
163 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
164 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
165 set inner_proto [dict get $trafficSpec_l4 inner_proto]
166 set inner_proto [string tolower $inner_proto]
167 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
168 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
169 } elseif { $geneve_enabled } {
170 puts "GENEVE is enabled. Setting GENEVE variables"
171 set geneve_vni [dict get $trafficSpec_l4 geneve_vni]
172 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
173 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
174 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
175 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
176 set inner_proto [dict get $trafficSpec_l4 inner_proto]
177 set inner_proto [string tolower $inner_proto]
178 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
179 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
182 set gre_enabled False
183 if { [string compare $proto "gre"] == 0 } {
184 puts "GRE is enabled. Setting GRE variables"
187 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
188 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
189 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
190 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
191 set inner_proto [dict get $trafficSpec_l4 inner_proto]
192 set inner_proto [string tolower $inner_proto]
193 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
194 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
197 if {$frameSize < 68 } {
198 if {$rfc2544TestType == "back2back"} {
199 puts "INFO: Packet size too small, packet size will be \
200 increased to 68 for this test"
205 set VERSION [package require IxTclNetwork]
207 ###################################################################
208 ############################ Operation ############################
209 ###################################################################
211 puts "Connecting to IxNetwork machine..."
213 ixNet connect $::IxNserver -port $::IxNport -version $VERSION
215 puts "Connected to IxNetwork machine"
217 puts "Configuring IxNetwork machine..."
220 proc sg_commit {} {ixNet commit}
223 ixNet setSessionParameter version 6.30.701.16
224 ixNet execute newConfig
225 set ixNetSG_Stack(0) [ixNet getRoot]
228 # setting global options
230 set sg_top [ixNet getRoot]
231 ixNet setMultiAttrs $sg_top/availableHardware \
234 ixNet setMultiAttrs $sg_top/globals/preferences \
235 -connectPortsOnLoadConfig True \
236 -rebootPortsOnConnect False
237 ixNet setMultiAttrs $sg_top/globals/interfaces \
240 -sendSingleArpPerGateway True \
241 -sendSingleNsPerGateway True
242 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/checksums \
243 -dropRxL2FcsErrors False \
244 -correctTxL2FcsErrors False \
245 -alwaysCorrectWhenModifying True \
246 -correctTxChecksumOverIp False \
247 -correctTxIpv4Checksum False
248 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/rxRateLimit \
251 -units {kKilobitsPerSecond}
252 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/drop \
256 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/reorder \
261 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/duplicate \
266 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/bitError \
271 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delay \
274 -units {kMicroseconds}
275 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delayVariation \
278 -units {kMicroseconds} \
279 -distribution {kUniform} \
280 -exponentialMeanArrival 0 \
281 -gaussianStandardDeviation 0
282 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/customDelayVariation \
285 ixNet setMultiAttrs $sg_top/statistics \
286 -additionalFcoeStat2 fcoeInvalidFrames \
287 -csvLogPollIntervalMultiplier 1 \
289 -guardrailEnabled True \
290 -enableCsvLogging False \
291 -dataStorePollingIntervalMultiplier 1 \
292 -maxNumberOfStatsPerCustomGraph 16 \
293 -additionalFcoeStat1 fcoeInvalidDelimiter \
294 -timestampPrecision 3 \
295 -enableDataCenterSharedStats False \
296 -timeSynchronization syncTimeToTestStart \
297 -enableAutoDataStore False
298 ixNet setMultiAttrs $sg_top/statistics/measurementMode \
299 -measurementMode mixedMode
300 ixNet setMultiAttrs $sg_top/eventScheduler \
301 -licenseServerLocation {127.0.0.1}
302 ixNet setMultiAttrs $sg_top/traffic \
303 -destMacRetryCount 1 \
304 -maxTrafficGenerationQueries 500 \
305 -enableStaggeredTransmit False \
306 -learningFrameSize $frameSize \
308 -enableDestMacRetry True \
309 -enableMulticastScalingFactor False \
310 -destMacRetryDelay 5 \
311 -largeErrorThreshhold 2 \
312 -refreshLearnedInfoBeforeApply False \
313 -enableMinFrameSize False \
314 -macChangeOnFly False \
316 -enableInstantaneousStatsSupport False \
317 -learningFramesCount 10 \
318 -globalStreamControl continuous \
319 -displayMplsCurrentLabelValue False \
320 -mplsLabelLearningTimeout 30 \
321 -enableStaggeredStartDelay True \
322 -enableDataIntegrityCheck False \
323 -enableSequenceChecking False \
324 -globalStreamControlIterations 1 \
325 -enableStreamOrdering False \
326 -frameOrderingMode none \
327 -learningFramesRate 100
328 ixNet setMultiAttrs $sg_top/traffic/statistics/latency \
331 ixNet setMultiAttrs $sg_top/traffic/statistics/interArrivalTimeRate \
333 ixNet setMultiAttrs $sg_top/traffic/statistics/delayVariation \
335 -statisticsMode rxDelayVariationErrorsAndRate \
336 -latencyMode storeForward \
337 -largeSequenceNumberErrorThreshold 2
338 ixNet setMultiAttrs $sg_top/traffic/statistics/sequenceChecking \
340 -sequenceMode rxThreshold
341 ixNet setMultiAttrs $sg_top/traffic/statistics/advancedSequenceChecking \
343 -advancedSequenceThreshold 1
344 ixNet setMultiAttrs $sg_top/traffic/statistics/cpdpConvergence \
346 -dataPlaneJitterWindow 10485760 \
347 -dataPlaneThreshold 95 \
348 -enableDataPlaneEventsRateMonitor False \
349 -enableControlPlaneEvents False
350 ixNet setMultiAttrs $sg_top/traffic/statistics/packetLossDuration \
352 ixNet setMultiAttrs $sg_top/traffic/statistics/dataIntegrity \
354 ixNet setMultiAttrs $sg_top/traffic/statistics/errorStats \
356 ixNet setMultiAttrs $sg_top/traffic/statistics/prbs \
358 ixNet setMultiAttrs $sg_top/traffic/statistics/iptv \
360 ixNet setMultiAttrs $sg_top/traffic/statistics/l1Rates \
362 ixNet setMultiAttrs $sg_top/quickTest/globals \
363 -productLabel {Your switch/router name here} \
364 -serialNumber {Your switch/router serial number here} \
365 -version {Your firmware version here} \
367 -titlePageComments {} \
368 -maxLinesToDisplay 100 \
369 -enableCheckLinkState False \
370 -enableAbortIfLinkDown False \
371 -enableSwitchToStats True \
372 -enableCapture False \
373 -enableSwitchToResult True \
374 -enableGenerateReportAfterRun False \
375 -enableRebootCpu False \
376 -saveCaptureBeforeRun False \
378 -sleepTimeAfterReboot 10 \
379 -useDefaultRootPath False \
380 -outputRootPath $::output_dir
382 set sg_top [lindex [ixNet remapIds $sg_top] 0]
383 set ixNetSG_Stack(0) $sg_top
390 # configuring the object that corresponds to /vport:1
392 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
393 ixNet setMultiAttrs $sg_vport \
394 -transmitIgnoreLinkStatus False \
395 -txGapControlMode averageMode \
397 -connectedTo ::ixNet::OBJ-null \
398 -txMode interleaved \
400 -rxMode captureAndMeasure \
401 -name {10GE LAN - 001}
402 ixNet setMultiAttrs $sg_vport/l1Config \
403 -currentType tenGigLan
404 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
406 -flowControlDirectedAddress "01 80 C2 00 00 01" \
408 -autoInstrumentation endOfFrame \
409 -transmitClocking internal \
410 -txIgnoreRxLinkFaults False \
412 -enableLASIMonitoring False \
413 -enabledFlowControl True
414 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
418 -vendorSpecificInformation {00 00 00 00} \
419 -macAddress "00:00:00:00:00:00" \
423 -enableTlvOption False \
425 -organizationUniqueIdentifier {000000}
426 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
427 -supportDataCenterMode False \
428 -priorityGroupSize priorityGroupSize-8 \
430 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
431 -flowControlType ieee802.1Qbb \
432 -enablePFCPauseDelay False
433 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
435 -flowControlDirectedAddress "01 80 C2 00 00 01" \
437 -autoInstrumentation endOfFrame \
438 -transmitClocking internal \
439 -txIgnoreRxLinkFaults False \
441 -enableLASIMonitoring False \
442 -enabledFlowControl False
443 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
444 -supportDataCenterMode False \
445 -priorityGroupSize priorityGroupSize-8 \
447 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
448 -flowControlType ieee802.1Qbb \
449 -enablePFCPauseDelay False
450 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
454 -vendorSpecificInformation {00 00 00 00} \
455 -macAddress "00:00:00:00:00:00" \
459 -enableTlvOption False \
461 -organizationUniqueIdentifier {000000}
462 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
463 -sourceAddress1Mask {00:00:00:00:00:00} \
464 -destinationAddress1Mask {00:00:00:00:00:00} \
465 -sourceAddress2 {00:00:00:00:00:00} \
466 -pattern2OffsetType fromStartOfFrame \
469 -sourceAddress2Mask {00:00:00:00:00:00} \
470 -destinationAddress2 {00:00:00:00:00:00} \
471 -destinationAddress1 {00:00:00:00:00:00} \
472 -sourceAddress1 {00:00:00:00:00:00} \
474 -destinationAddress2Mask {00:00:00:00:00:00} \
478 -pattern1OffsetType fromStartOfFrame
479 ixNet setMultiAttrs $sg_vport/protocols/arp \
481 ixNet setMultiAttrs $sg_vport/protocols/bfd \
484 -packetsPerInterval 0
485 ixNet setMultiAttrs $sg_vport/protocols/bgp \
486 -autoFillUpDutIp False \
487 -disableReceivedUpdateValidation False \
488 -enableAdVplsPrefixLengthInBits False \
489 -enableExternalActiveConnect True \
490 -enableInternalActiveConnect True \
491 -enableVpnLabelExchangeOverLsp True \
494 -externalRetryDelay 120 \
496 -internalRetryDelay 120 \
498 -triggerVplsPwInitiation False
499 ixNet setMultiAttrs $sg_vport/protocols/cfm \
500 -enableOptionalLmFunctionality False \
501 -enableOptionalTlvValidation True \
505 -suppressErrorsOnAis True
506 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
508 ixNet setMultiAttrs $sg_vport/protocols/elmi \
510 ixNet setMultiAttrs $sg_vport/protocols/igmp \
515 -sendLeaveOnStop True \
516 -statsEnabled False \
518 ixNet setMultiAttrs $sg_vport/protocols/isis \
519 -allL1RbridgesMac "01:80:c2:00:00:40" \
520 -emulationType isisL3Routing \
522 -helloMulticastMac "01:80:c2:00:00:41" \
523 -lspMgroupPdusPerInterval 0 \
525 -rateControlInterval 0 \
526 -sendP2PHellosToUnicastMac True \
527 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
528 -spbHelloMulticastMac "09:00:2b:00:00:05" \
530 ixNet setMultiAttrs $sg_vport/protocols/lacp \
531 -enablePreservePartnerInfo False \
533 ixNet setMultiAttrs $sg_vport/protocols/ldp \
534 -enableDiscardSelfAdvFecs False \
535 -enableHelloJitter True \
536 -enableVpnLabelExchangeOverLsp True \
540 -keepAliveHoldTime 30 \
541 -keepAliveInterval 10 \
542 -p2mpCapabilityParam 1288 \
544 -targetedHelloInterval 15 \
545 -targetedHoldTime 45 \
546 -useTransportLabelsForMplsOam False
547 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
549 ixNet setMultiAttrs $sg_vport/protocols/lisp \
550 -burstIntervalInMs 0 \
552 -ipv4MapRegisterPacketsPerBurst 0 \
553 -ipv4MapRequestPacketsPerBurst 0 \
554 -ipv4SmrPacketsPerBurst 0 \
555 -ipv6MapRegisterPacketsPerBurst 0 \
556 -ipv6MapRequestPacketsPerBurst 0 \
557 -ipv6SmrPacketsPerBurst 0
558 ixNet setMultiAttrs $sg_vport/protocols/mld \
559 -enableDoneOnStop True \
561 -mldv2Report type143 \
566 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
568 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
569 -apsChannelType {00 02 } \
570 -bfdCcChannelType {00 07 } \
571 -delayManagementChannelType {00 05 } \
572 -enableHighPerformanceMode True \
574 -faultManagementChannelType {00 58 } \
575 -lossMeasurementChannelType {00 04 } \
576 -onDemandCvChannelType {00 09 } \
577 -pwStatusChannelType {00 0B } \
578 -y1731ChannelType {7F FA }
579 ixNet setMultiAttrs $sg_vport/protocols/ospf \
580 -enableDrOrBdr False \
582 -floodLinkStateUpdatesPerInterval 0 \
583 -rateControlInterval 0
584 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
586 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
587 -bsmFramePerInterval 0 \
588 -crpFramePerInterval 0 \
589 -dataMdtFramePerInterval 0 \
590 -denyGrePimIpPrefix {0.0.0.0/32} \
591 -enableDiscardJoinPruneProcessing False \
592 -enableRateControl False \
594 -helloMsgsPerInterval 0 \
596 -joinPruneMessagesPerInterval 0 \
597 -registerMessagesPerInterval 0 \
598 -registerStopMessagesPerInterval 0
599 ixNet setMultiAttrs $sg_vport/protocols/ping \
601 ixNet setMultiAttrs $sg_vport/protocols/rip \
603 ixNet setMultiAttrs $sg_vport/protocols/ripng \
605 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
606 -enableControlLspInitiationRate False \
607 -enableShowTimeValue False \
608 -enableVpnLabelExchangeOverLsp True \
610 -maxLspInitiationsPerSec 400 \
611 -useTransportLabelsForMplsOam False
612 ixNet setMultiAttrs $sg_vport/protocols/stp \
614 ixNet setMultiAttrs $sg_vport/rateControlParameters \
615 -maxRequestsPerBurst 1 \
616 -maxRequestsPerSec 250 \
617 -minRetryInterval 10 \
619 -sendInBursts False \
620 -sendRequestsAsFastAsPossible False
621 ixNet setMultiAttrs $sg_vport/capture \
622 -controlCaptureTrigger {} \
623 -controlCaptureFilter {} \
624 -hardwareEnabled False \
625 -softwareEnabled False \
626 -displayFiltersDataCapture {} \
627 -displayFiltersControlCapture {} \
628 -controlBufferSize 30 \
629 -controlBufferBehaviour bufferLiveNonCircular
630 ixNet setMultiAttrs $sg_vport/protocolStack/options \
631 -routerSolicitationDelay 1 \
632 -routerSolicitationInterval 4 \
633 -routerSolicitations 3 \
637 -ipv4RetransTime 3000 \
640 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
641 set ixNetSG_ref(2) $sg_vport
642 set ixNetSG_Stack(1) $sg_vport
645 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:1
647 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
648 ixNet setMultiAttrs $sg_uds \
649 -destinationAddressSelector anyAddr \
650 -customFrameSizeTo 0 \
651 -customFrameSizeFrom 0 \
653 -patternSelector anyPattern \
654 -sourceAddressSelector anyAddr \
658 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
661 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:2
663 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
664 ixNet setMultiAttrs $sg_uds \
665 -destinationAddressSelector anyAddr \
666 -customFrameSizeTo 0 \
667 -customFrameSizeFrom 0 \
669 -patternSelector anyPattern \
670 -sourceAddressSelector anyAddr \
674 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
677 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:3
679 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
680 ixNet setMultiAttrs $sg_uds \
681 -destinationAddressSelector anyAddr \
682 -customFrameSizeTo 0 \
683 -customFrameSizeFrom 0 \
685 -patternSelector anyPattern \
686 -sourceAddressSelector anyAddr \
690 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
693 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:4
695 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
696 ixNet setMultiAttrs $sg_uds \
697 -destinationAddressSelector anyAddr \
698 -customFrameSizeTo 0 \
699 -customFrameSizeFrom 0 \
701 -patternSelector anyPattern \
702 -sourceAddressSelector anyAddr \
706 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
709 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:5
711 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
712 ixNet setMultiAttrs $sg_uds \
713 -destinationAddressSelector anyAddr \
714 -customFrameSizeTo 0 \
715 -customFrameSizeFrom 0 \
717 -patternSelector anyPattern \
718 -sourceAddressSelector anyAddr \
722 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
725 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:6
727 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
728 ixNet setMultiAttrs $sg_uds \
729 -destinationAddressSelector anyAddr \
730 -customFrameSizeTo 0 \
731 -customFrameSizeFrom 0 \
733 -patternSelector anyPattern \
734 -sourceAddressSelector anyAddr \
738 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
741 # configuring the object that corresponds to /vport:1/protocols/static/lan:1
743 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
744 ixNet setMultiAttrs $sg_lan \
745 -atmEncapsulation ::ixNet::OBJ-null \
748 -enableIncrementMac False \
749 -enableIncrementVlan False \
750 -enableSiteId False \
753 -frEncapsulation ::ixNet::OBJ-null \
754 -incrementPerVcVlanMode noIncrement \
755 -incrementVlanMode noIncrement \
757 -macRangeMode normal \
760 -skipVlanIdZero True \
762 -trafficGroupId ::ixNet::OBJ-null \
767 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
770 # configuring the object that corresponds to /vport:2
772 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
773 ixNet setMultiAttrs $sg_vport \
774 -transmitIgnoreLinkStatus False \
775 -txGapControlMode averageMode \
777 -connectedTo ::ixNet::OBJ-null \
778 -txMode interleaved \
780 -rxMode captureAndMeasure \
781 -name {10GE LAN - 002}
782 ixNet setMultiAttrs $sg_vport/l1Config \
783 -currentType tenGigLan
784 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
786 -flowControlDirectedAddress "01 80 C2 00 00 01" \
788 -autoInstrumentation endOfFrame \
789 -transmitClocking internal \
790 -txIgnoreRxLinkFaults False \
792 -enableLASIMonitoring False \
793 -enabledFlowControl False
794 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
798 -vendorSpecificInformation {00 00 00 00} \
799 -macAddress "00:00:00:00:00:00" \
803 -enableTlvOption False \
805 -organizationUniqueIdentifier {000000}
806 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
807 -supportDataCenterMode False \
808 -priorityGroupSize priorityGroupSize-8 \
810 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
811 -flowControlType ieee802.1Qbb \
812 -enablePFCPauseDelay False
813 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
815 -flowControlDirectedAddress "01 80 C2 00 00 01" \
817 -autoInstrumentation endOfFrame \
818 -transmitClocking internal \
819 -txIgnoreRxLinkFaults False \
821 -enableLASIMonitoring False \
822 -enabledFlowControl False
823 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
824 -supportDataCenterMode False \
825 -priorityGroupSize priorityGroupSize-8 \
827 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
828 -flowControlType ieee802.1Qbb \
829 -enablePFCPauseDelay False
830 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
834 -vendorSpecificInformation {00 00 00 00} \
835 -macAddress "00:00:00:00:00:00" \
839 -enableTlvOption False \
841 -organizationUniqueIdentifier {000000}
842 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
843 -sourceAddress1Mask {00:00:00:00:00:00} \
844 -destinationAddress1Mask {00:00:00:00:00:00} \
845 -sourceAddress2 {00:00:00:00:00:00} \
846 -pattern2OffsetType fromStartOfFrame \
849 -sourceAddress2Mask {00:00:00:00:00:00} \
850 -destinationAddress2 {00:00:00:00:00:00} \
851 -destinationAddress1 {00:00:00:00:00:00} \
852 -sourceAddress1 {00:00:00:00:00:00} \
854 -destinationAddress2Mask {00:00:00:00:00:00} \
858 -pattern1OffsetType fromStartOfFrame
859 ixNet setMultiAttrs $sg_vport/protocols/arp \
861 ixNet setMultiAttrs $sg_vport/protocols/bfd \
864 -packetsPerInterval 0
865 ixNet setMultiAttrs $sg_vport/protocols/bgp \
866 -autoFillUpDutIp False \
867 -disableReceivedUpdateValidation False \
868 -enableAdVplsPrefixLengthInBits False \
869 -enableExternalActiveConnect True \
870 -enableInternalActiveConnect True \
871 -enableVpnLabelExchangeOverLsp True \
874 -externalRetryDelay 120 \
876 -internalRetryDelay 120 \
878 -triggerVplsPwInitiation False
879 ixNet setMultiAttrs $sg_vport/protocols/cfm \
880 -enableOptionalLmFunctionality False \
881 -enableOptionalTlvValidation True \
885 -suppressErrorsOnAis True
886 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
888 ixNet setMultiAttrs $sg_vport/protocols/elmi \
890 ixNet setMultiAttrs $sg_vport/protocols/igmp \
895 -sendLeaveOnStop True \
896 -statsEnabled False \
898 ixNet setMultiAttrs $sg_vport/protocols/isis \
899 -allL1RbridgesMac "01:80:c2:00:00:40" \
900 -emulationType isisL3Routing \
902 -helloMulticastMac "01:80:c2:00:00:41" \
903 -lspMgroupPdusPerInterval 0 \
905 -rateControlInterval 0 \
906 -sendP2PHellosToUnicastMac True \
907 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
908 -spbHelloMulticastMac "09:00:2b:00:00:05" \
910 ixNet setMultiAttrs $sg_vport/protocols/lacp \
911 -enablePreservePartnerInfo False \
913 ixNet setMultiAttrs $sg_vport/protocols/ldp \
914 -enableDiscardSelfAdvFecs False \
915 -enableHelloJitter True \
916 -enableVpnLabelExchangeOverLsp True \
920 -keepAliveHoldTime 30 \
921 -keepAliveInterval 10 \
922 -p2mpCapabilityParam 1288 \
924 -targetedHelloInterval 15 \
925 -targetedHoldTime 45 \
926 -useTransportLabelsForMplsOam False
927 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
929 ixNet setMultiAttrs $sg_vport/protocols/lisp \
930 -burstIntervalInMs 0 \
932 -ipv4MapRegisterPacketsPerBurst 0 \
933 -ipv4MapRequestPacketsPerBurst 0 \
934 -ipv4SmrPacketsPerBurst 0 \
935 -ipv6MapRegisterPacketsPerBurst 0 \
936 -ipv6MapRequestPacketsPerBurst 0 \
937 -ipv6SmrPacketsPerBurst 0
938 ixNet setMultiAttrs $sg_vport/protocols/mld \
939 -enableDoneOnStop True \
941 -mldv2Report type143 \
946 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
948 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
949 -apsChannelType {00 02 } \
950 -bfdCcChannelType {00 07 } \
951 -delayManagementChannelType {00 05 } \
952 -enableHighPerformanceMode True \
954 -faultManagementChannelType {00 58 } \
955 -lossMeasurementChannelType {00 04 } \
956 -onDemandCvChannelType {00 09 } \
957 -pwStatusChannelType {00 0B } \
958 -y1731ChannelType {7F FA }
959 ixNet setMultiAttrs $sg_vport/protocols/ospf \
960 -enableDrOrBdr False \
962 -floodLinkStateUpdatesPerInterval 0 \
963 -rateControlInterval 0
964 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
966 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
967 -bsmFramePerInterval 0 \
968 -crpFramePerInterval 0 \
969 -dataMdtFramePerInterval 0 \
970 -denyGrePimIpPrefix {0.0.0.0/32} \
971 -enableDiscardJoinPruneProcessing False \
972 -enableRateControl False \
974 -helloMsgsPerInterval 0 \
976 -joinPruneMessagesPerInterval 0 \
977 -registerMessagesPerInterval 0 \
978 -registerStopMessagesPerInterval 0
979 ixNet setMultiAttrs $sg_vport/protocols/ping \
981 ixNet setMultiAttrs $sg_vport/protocols/rip \
983 ixNet setMultiAttrs $sg_vport/protocols/ripng \
985 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
986 -enableControlLspInitiationRate False \
987 -enableShowTimeValue False \
988 -enableVpnLabelExchangeOverLsp True \
990 -maxLspInitiationsPerSec 400 \
991 -useTransportLabelsForMplsOam False
992 ixNet setMultiAttrs $sg_vport/protocols/stp \
994 ixNet setMultiAttrs $sg_vport/rateControlParameters \
995 -maxRequestsPerBurst 1 \
996 -maxRequestsPerSec 250 \
997 -minRetryInterval 10 \
999 -sendInBursts False \
1000 -sendRequestsAsFastAsPossible False
1001 ixNet setMultiAttrs $sg_vport/capture \
1002 -controlCaptureTrigger {} \
1003 -controlCaptureFilter {} \
1004 -hardwareEnabled False \
1005 -softwareEnabled False \
1006 -displayFiltersDataCapture {} \
1007 -displayFiltersControlCapture {} \
1008 -controlBufferSize 30 \
1009 -controlBufferBehaviour bufferLiveNonCircular
1010 ixNet setMultiAttrs $sg_vport/protocolStack/options \
1011 -routerSolicitationDelay 1 \
1012 -routerSolicitationInterval 4 \
1013 -routerSolicitations 3 \
1017 -ipv4RetransTime 3000 \
1020 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
1021 set ixNetSG_ref(10) $sg_vport
1022 set ixNetSG_Stack(1) $sg_vport
1025 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:1
1027 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
1028 ixNet setMultiAttrs $sg_uds \
1029 -destinationAddressSelector anyAddr \
1030 -customFrameSizeTo 0 \
1031 -customFrameSizeFrom 0 \
1032 -error errAnyFrame \
1033 -patternSelector anyPattern \
1034 -sourceAddressSelector anyAddr \
1038 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1041 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:2
1043 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
1044 ixNet setMultiAttrs $sg_uds \
1045 -destinationAddressSelector anyAddr \
1046 -customFrameSizeTo 0 \
1047 -customFrameSizeFrom 0 \
1048 -error errAnyFrame \
1049 -patternSelector anyPattern \
1050 -sourceAddressSelector anyAddr \
1054 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1057 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:3
1059 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
1060 ixNet setMultiAttrs $sg_uds \
1061 -destinationAddressSelector anyAddr \
1062 -customFrameSizeTo 0 \
1063 -customFrameSizeFrom 0 \
1064 -error errAnyFrame \
1065 -patternSelector anyPattern \
1066 -sourceAddressSelector anyAddr \
1070 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1073 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:4
1075 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
1076 ixNet setMultiAttrs $sg_uds \
1077 -destinationAddressSelector anyAddr \
1078 -customFrameSizeTo 0 \
1079 -customFrameSizeFrom 0 \
1080 -error errAnyFrame \
1081 -patternSelector anyPattern \
1082 -sourceAddressSelector anyAddr \
1086 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1089 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:5
1091 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
1092 ixNet setMultiAttrs $sg_uds \
1093 -destinationAddressSelector anyAddr \
1094 -customFrameSizeTo 0 \
1095 -customFrameSizeFrom 0 \
1096 -error errAnyFrame \
1097 -patternSelector anyPattern \
1098 -sourceAddressSelector anyAddr \
1102 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1105 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:6
1107 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
1108 ixNet setMultiAttrs $sg_uds \
1109 -destinationAddressSelector anyAddr \
1110 -customFrameSizeTo 0 \
1111 -customFrameSizeFrom 0 \
1112 -error errAnyFrame \
1113 -patternSelector anyPattern \
1114 -sourceAddressSelector anyAddr \
1118 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1121 # configuring the object that corresponds to /vport:2/protocols/static/lan:1
1123 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
1124 ixNet setMultiAttrs $sg_lan \
1125 -atmEncapsulation ::ixNet::OBJ-null \
1128 -enableIncrementMac False \
1129 -enableIncrementVlan False \
1130 -enableSiteId False \
1133 -frEncapsulation ::ixNet::OBJ-null \
1134 -incrementPerVcVlanMode noIncrement \
1135 -incrementVlanMode noIncrement \
1137 -macRangeMode normal \
1140 -skipVlanIdZero True \
1142 -trafficGroupId ::ixNet::OBJ-null \
1147 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
1150 ### /availableHardware area
1154 # configuring the object that corresponds to /availableHardware/chassis"
1156 set sg_chassis [ixNet add $ixNetSG_Stack(0)/availableHardware chassis]
1157 ixNet setMultiAttrs $sg_chassis \
1161 -hostname $::chassis
1163 set sg_chassis [lindex [ixNet remapIds $sg_chassis] 0]
1164 set ixNetSG_Stack(1) $sg_chassis
1167 # configuring the object that corresponds to /availableHardware/chassis/card
1169 set sg_card $ixNetSG_Stack(1)/card:$::card
1170 ixNet setMultiAttrs $sg_card \
1171 -aggregationMode normal
1173 set sg_card [lindex [ixNet remapIds $sg_card] 0]
1174 set ixNetSG_ref(19) $sg_card
1175 set ixNetSG_Stack(2) $sg_card
1178 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:1
1180 set sg_aggregation $ixNetSG_Stack(2)/aggregation:1
1181 ixNet setMultiAttrs $sg_aggregation \
1184 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1187 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:2
1189 set sg_aggregation $ixNetSG_Stack(2)/aggregation:2
1190 ixNet setMultiAttrs $sg_aggregation \
1193 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1196 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:3
1198 set sg_aggregation $ixNetSG_Stack(2)/aggregation:3
1199 ixNet setMultiAttrs $sg_aggregation \
1202 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1205 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:4
1207 set sg_aggregation $ixNetSG_Stack(2)/aggregation:4
1208 ixNet setMultiAttrs $sg_aggregation \
1211 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1212 ixNet setMultiAttrs $ixNetSG_ref(2) \
1213 -connectedTo $ixNetSG_ref(19)/port:$::port1
1215 ixNet setMultiAttrs $ixNetSG_ref(10) \
1216 -connectedTo $ixNetSG_ref(19)/port:$::port2
1221 ### /impairment area
1225 # configuring the object that corresponds to /impairment/profile:3
1227 set sg_profile [ixNet add $ixNetSG_Stack(0)/impairment profile]
1228 ixNet setMultiAttrs $sg_profile \
1230 -name {Impairment Profile 1} \
1234 ixNet setMultiAttrs $sg_profile/checksums \
1235 -dropRxL2FcsErrors False \
1236 -correctTxL2FcsErrors False \
1237 -alwaysCorrectWhenModifying True \
1238 -correctTxChecksumOverIp False \
1239 -correctTxIpv4Checksum False
1240 ixNet setMultiAttrs $sg_profile/rxRateLimit \
1243 -units {kKilobitsPerSecond}
1244 ixNet setMultiAttrs $sg_profile/drop \
1248 ixNet setMultiAttrs $sg_profile/reorder \
1253 ixNet setMultiAttrs $sg_profile/duplicate \
1258 ixNet setMultiAttrs $sg_profile/bitError \
1263 ixNet setMultiAttrs $sg_profile/delay \
1266 -units {kMicroseconds}
1267 ixNet setMultiAttrs $sg_profile/delayVariation \
1270 -units {kMicroseconds} \
1271 -distribution {kUniform} \
1272 -exponentialMeanArrival 0 \
1273 -gaussianStandardDeviation 0
1274 ixNet setMultiAttrs $sg_profile/customDelayVariation \
1278 set sg_profile [lindex [ixNet remapIds $sg_profile] 0]
1279 set ixNetSG_Stack(1) $sg_profile
1282 # configuring the object that corresponds to /impairment/profile:3/fixedClassifier:1
1284 set sg_fixedClassifier [ixNet add $ixNetSG_Stack(1) fixedClassifier]
1286 set sg_fixedClassifier [lindex [ixNet remapIds $sg_fixedClassifier] 0]
1293 # configuring the object that corresponds to /traffic/trafficItem:1
1295 set sg_trafficItem [ixNet add $ixNetSG_Stack(0)/traffic trafficItem]
1296 ixNet setMultiAttrs $sg_trafficItem \
1297 -transportRsvpTePreference one \
1298 -trafficItemType l2L3 \
1299 -biDirectional $::biDirect \
1300 -mergeDestinations True \
1301 -hostsPerNetwork 1 \
1302 -transmitMode interleaved \
1304 -trafficType {ethernetVlan} \
1305 -interAsLdpPreference two \
1306 -allowSelfDestined False \
1308 -maxNumberOfVpnLabelStack 2 \
1309 -interAsBgpPreference one \
1311 -transportLdpPreference two \
1312 -egressEnabled False \
1313 -enableDynamicMplsLabelValues False \
1314 -routeMesh oneToOne \
1315 -name {Traffic Item 1} \
1316 -srcDestMesh oneToOne
1318 set sg_trafficItem [lindex [ixNet remapIds $sg_trafficItem] 0]
1319 set ixNetSG_ref(26) $sg_trafficItem
1320 set ixNetSG_Stack(1) $sg_trafficItem
1323 # configuring the object that corresponds to /traffic/trafficItem:1/endpointSet:1
1325 set sg_endpointSet [ixNet add $ixNetSG_Stack(1) endpointSet]
1326 ixNet setMultiAttrs $sg_endpointSet \
1327 -destinations [list $ixNetSG_ref(10)/protocols] \
1328 -destinationFilter {} \
1331 -sources [list $ixNetSG_ref(2)/protocols] \
1332 -name {EndpointSet-1}
1334 set sg_endpointSet [lindex [ixNet remapIds $sg_endpointSet] 0]
1337 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1
1339 set sg_configElement $ixNetSG_Stack(1)/configElement:1
1340 ixNet setMultiAttrs $sg_configElement \
1342 -preambleCustomSize 8 \
1343 -enableDisparityError False \
1344 -preambleFrameSizeMode auto \
1345 -destinationMacMode manual
1346 ixNet setMultiAttrs $sg_configElement/frameSize \
1354 -presetDistribution cisco \
1357 ixNet setMultiAttrs $sg_configElement/frameRate \
1358 -bitRateUnitsType bitsPerSec \
1360 -enforceMinimumInterPacketGap 0 \
1361 -type percentLineRate \
1362 -interPacketGapUnitsType nanoseconds
1363 ixNet setMultiAttrs $sg_configElement/framePayload \
1364 -type incrementByte \
1365 -customRepeat True \
1367 ixNet setMultiAttrs $sg_configElement/frameRateDistribution \
1368 -streamDistribution applyRateToAll \
1369 -portDistribution applyRateToAll
1370 ixNet setMultiAttrs $sg_configElement/transmissionControl \
1375 -interBurstGapUnits nanoseconds \
1379 -enableInterStreamGap False \
1380 -startDelayUnits bytes \
1382 -burstPacketCount 1 \
1383 -enableInterBurstGap False \
1386 set sg_configElement [lindex [ixNet remapIds $sg_configElement] 0]
1387 set ixNetSG_Stack(2) $sg_configElement
1390 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
1392 set sg_stack $ixNetSG_Stack(2)/stack:"ethernet-1"
1394 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1395 set ixNetSG_Stack(3) $sg_stack
1398 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.destinationAddress-1"
1400 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.destinationAddress-1"
1401 ixNet setMultiAttrs $sg_field \
1402 -singleValue {00:00:00:00:00:00} \
1404 -optionalEnabled True \
1406 -valueList {{00:00:00:00:00:00}} \
1407 -stepValue {00:00:00:00:00:00} \
1408 -fixedBits {00:00:00:00:00:00} \
1409 -fieldValue {00:00:00:00:00:00} \
1411 -randomMask {00:00:00:00:00:00} \
1412 -trackingEnabled False \
1413 -valueType singleValue \
1414 -activeFieldChoice False \
1415 -startValue {00:00:00:00:00:00} \
1418 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1421 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.sourceAddress-2"
1423 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.sourceAddress-2"
1424 ixNet setMultiAttrs $sg_field \
1425 -singleValue {00:00:00:00:00:00} \
1427 -optionalEnabled True \
1429 -valueList {{00:00:00:00:00:00}} \
1430 -stepValue {00:00:00:00:00:00} \
1431 -fixedBits {00:00:00:00:00:00} \
1432 -fieldValue {00:00:00:00:00:00} \
1434 -randomMask {00:00:00:00:00:00} \
1435 -trackingEnabled False \
1436 -valueType singleValue \
1437 -activeFieldChoice False \
1438 -startValue {00:00:00:00:00:00} \
1441 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1444 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.etherType-3"
1446 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.etherType-3"
1447 ixNet setMultiAttrs $sg_field \
1448 -singleValue {800} \
1450 -optionalEnabled True \
1452 -valueList {{0xFFFF}} \
1453 -stepValue {0xFFFF} \
1454 -fixedBits {0xFFFF} \
1457 -randomMask {0xFFFF} \
1458 -trackingEnabled False \
1459 -valueType singleValue \
1460 -activeFieldChoice False \
1461 -startValue {0xFFFF} \
1464 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1467 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
1469 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-2"
1471 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1472 set ixNetSG_Stack(3) $sg_stack
1475 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.version-1"
1477 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
1478 ixNet setMultiAttrs $sg_field \
1481 -optionalEnabled True \
1489 -trackingEnabled False \
1490 -valueType singleValue \
1491 -activeFieldChoice False \
1496 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.protocol-25"
1498 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
1499 ixNet setMultiAttrs $sg_field \
1500 -singleValue {$proto_value} \
1502 -optionalEnabled True \
1507 -fieldValue {$proto} \
1510 -trackingEnabled False \
1511 -valueType singleValue \
1512 -activeFieldChoice False \
1517 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.checksum-26"
1519 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
1520 ixNet setMultiAttrs $sg_field \
1523 -optionalEnabled True \
1531 -trackingEnabled False \
1532 -valueType singleValue \
1533 -activeFieldChoice False \
1538 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.srcIp-27"
1540 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
1541 ixNet setMultiAttrs $sg_field \
1542 -singleValue $srcIp \
1544 -optionalEnabled True \
1546 -valueList {{0.0.0.0}} \
1547 -stepValue {0.0.0.0} \
1548 -fixedBits {0.0.0.0} \
1549 -fieldValue $srcIp \
1551 -randomMask {0.0.0.0} \
1552 -trackingEnabled False \
1553 -valueType singleValue \
1554 -activeFieldChoice False \
1555 -startValue {0.0.0.0} \
1559 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.dstIp-28"
1561 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
1562 ixNet setMultiAttrs $sg_field \
1563 -singleValue $dstIp \
1565 -optionalEnabled True \
1567 -valueList {{0.0.0.0}} \
1568 -stepValue {0.0.0.0} \
1569 -fixedBits {0.0.0.0} \
1570 -fieldValue $dstIp \
1572 -randomMask {0.0.0.0} \
1573 -trackingEnabled False \
1574 -valueType singleValue \
1575 -activeFieldChoice False \
1576 -startValue {0.0.0.0} \
1579 #set sg_field [lindex [ixNet remapIds $sg_field] 0]
1582 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.options.pad-58"
1584 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
1585 ixNet setMultiAttrs $sg_field \
1588 -optionalEnabled False \
1596 -trackingEnabled False \
1597 -valueType singleValue \
1598 -activeFieldChoice False \
1602 # Suffix for stack names
1603 # This variable should be incremented after setting sg_stack like:
1604 # set sg_stack $ixNetSG_Stack(2)/stack:"protocolnamehere-$stack_number"
1609 if { [string compare $proto "udp"] == 0 } {
1610 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"
1612 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
1614 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1615 set ixNetSG_Stack(3) $sg_stack
1619 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.srcPort-1"
1621 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
1622 ixNet setMultiAttrs $sg_field \
1623 -singleValue $srcPort \
1625 -optionalEnabled True \
1630 -fieldValue {$srcPort} \
1633 -trackingEnabled False \
1634 -valueType singleValue \
1635 -activeFieldChoice False \
1640 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.dstPort-2"
1642 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
1643 ixNet setMultiAttrs $sg_field \
1644 -singleValue $dstPort \
1646 -optionalEnabled True \
1651 -fieldValue $dstPort \
1654 -trackingEnabled False \
1655 -valueType $multipleStreams \
1656 -activeFieldChoice False \
1658 -countValue $numflows
1661 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.length-3"
1663 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
1664 ixNet setMultiAttrs $sg_field \
1667 -optionalEnabled True \
1675 -trackingEnabled False \
1676 -valueType singleValue \
1677 -activeFieldChoice False \
1682 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.checksum-4"
1684 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
1685 ixNet setMultiAttrs $sg_field \
1688 -optionalEnabled True \
1696 -trackingEnabled False \
1697 -valueType singleValue \
1698 -activeFieldChoice False \
1701 } elseif { [string compare $proto "tcp"] == 0 } {
1703 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
1705 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1706 set ixNetSG_Stack(3) $sg_stack
1709 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
1710 ixNet setMultiAttrs $sg_field \
1711 -singleValue $srcPort \
1713 -optionalEnabled true \
1715 -valueList [list $srcPort] \
1718 -fieldValue $srcPort \
1721 -trackingEnabled false \
1722 -valueType singleValue \
1723 -activeFieldChoice false \
1727 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
1728 ixNet setMultiAttrs $sg_field \
1729 -singleValue $dstPort \
1731 -optionalEnabled true \
1733 -valueList [list $dstPort] \
1736 -fieldValue $dstPort \
1739 -trackingEnabled false \
1740 -valueType singleValue \
1741 -activeFieldChoice false \
1745 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
1746 ixNet setMultiAttrs $sg_field \
1749 -optionalEnabled true \
1751 -valueList [list 0x00000000] \
1752 -stepValue 0x00000000 \
1753 -fixedBits 0x00000000 \
1756 -randomMask 0x00000000 \
1757 -trackingEnabled false \
1758 -valueType singleValue \
1759 -activeFieldChoice false \
1760 -startValue 0x00000000 \
1763 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
1764 ixNet setMultiAttrs $sg_field \
1767 -optionalEnabled true \
1769 -valueList [list 0x00000000] \
1770 -stepValue 0x00000000 \
1771 -fixedBits 0x00000000 \
1774 -randomMask 0x00000000 \
1775 -trackingEnabled false \
1776 -valueType singleValue \
1777 -activeFieldChoice false \
1778 -startValue 0x00000000 \
1781 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
1782 ixNet setMultiAttrs $sg_field \
1785 -optionalEnabled true \
1787 -valueList [list 5] \
1793 -trackingEnabled false \
1794 -valueType singleValue \
1795 -activeFieldChoice false \
1799 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
1800 ixNet setMultiAttrs $sg_field \
1803 -optionalEnabled true \
1805 -valueList [list 0] \
1811 -trackingEnabled false \
1812 -valueType singleValue \
1813 -activeFieldChoice false \
1817 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
1818 ixNet setMultiAttrs $sg_field \
1821 -optionalEnabled true \
1823 -valueList [list 0] \
1829 -trackingEnabled false \
1830 -valueType singleValue \
1831 -activeFieldChoice false \
1835 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
1836 ixNet setMultiAttrs $sg_field \
1839 -optionalEnabled true \
1841 -valueList [list 0] \
1847 -trackingEnabled false \
1848 -valueType singleValue \
1849 -activeFieldChoice false \
1853 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
1854 ixNet setMultiAttrs $sg_field \
1857 -optionalEnabled true \
1859 -valueList [list 0] \
1865 -trackingEnabled false \
1866 -valueType singleValue \
1867 -activeFieldChoice false \
1871 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
1872 ixNet setMultiAttrs $sg_field \
1875 -optionalEnabled true \
1877 -valueList [list 0] \
1883 -trackingEnabled false \
1884 -valueType singleValue \
1885 -activeFieldChoice false \
1889 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
1890 ixNet setMultiAttrs $sg_field \
1893 -optionalEnabled true \
1895 -valueList [list 0] \
1901 -trackingEnabled false \
1902 -valueType singleValue \
1903 -activeFieldChoice false \
1907 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
1908 ixNet setMultiAttrs $sg_field \
1911 -optionalEnabled true \
1913 -valueList [list 0] \
1919 -trackingEnabled false \
1920 -valueType singleValue \
1921 -activeFieldChoice false \
1925 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
1926 ixNet setMultiAttrs $sg_field \
1929 -optionalEnabled true \
1931 -valueList [list 0] \
1937 -trackingEnabled false \
1938 -valueType singleValue \
1939 -activeFieldChoice false \
1943 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
1944 ixNet setMultiAttrs $sg_field \
1947 -optionalEnabled true \
1949 -valueList [list 0] \
1955 -trackingEnabled false \
1956 -valueType singleValue \
1957 -activeFieldChoice false \
1961 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
1962 ixNet setMultiAttrs $sg_field \
1965 -optionalEnabled true \
1967 -valueList [list 0] \
1973 -trackingEnabled false \
1974 -valueType singleValue \
1975 -activeFieldChoice false \
1979 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
1980 ixNet setMultiAttrs $sg_field \
1983 -optionalEnabled true \
1985 -valueList [list 0x0000] \
1990 -randomMask 0x0000 \
1991 -trackingEnabled false \
1992 -valueType singleValue \
1993 -activeFieldChoice false \
1994 -startValue 0x0000 \
1997 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
1998 ixNet setMultiAttrs $sg_field \
2001 -optionalEnabled true \
2003 -valueList [list 0x0000] \
2008 -randomMask 0x0000 \
2009 -trackingEnabled false \
2010 -valueType singleValue \
2011 -activeFieldChoice false \
2012 -startValue 0x0000 \
2015 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
2016 ixNet setMultiAttrs $sg_field \
2019 -optionalEnabled true \
2021 -valueList [list 0x0000] \
2026 -randomMask 0x0000 \
2027 -trackingEnabled false \
2028 -valueType singleValue \
2029 -activeFieldChoice false \
2030 -startValue 0x0000 \
2033 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2035 } elseif { [string compare $proto "gre"] == 0 } {
2037 set gre_enabled True
2040 if { $vxlan_enabled || $gre_enabled || $geneve_enabled } {
2041 # VXLAN and GRE have similar inner frame data so we set unique fields
2042 # for each protocol then set the common fields.
2046 if { $vxlan_enabled } {
2049 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"
2051 set sg_stack $ixNetSG_Stack(2)/stack:"vxlan-$stack_number"
2053 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2054 set ixNetSG_Stack(3) $sg_stack
2058 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.flags-1
2060 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.flags-1"
2061 ixNet setMultiAttrs $sg_field \
2064 -optionalEnabled true \
2065 -valueList [list 0x08] \
2073 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved-2
2075 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved-2"
2076 ixNet setMultiAttrs $sg_field \
2079 -optionalEnabled true \
2080 -valueList [list 0] \
2088 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.vni-3"
2090 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.vni-3"
2091 ixNet setMultiAttrs $sg_field \
2094 -optionalEnabled true \
2095 -valueList [list 1234] \
2102 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved8-4"
2104 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved8-4"
2105 ixNet setMultiAttrs $sg_field \
2108 -optionalEnabled true \
2109 -valueList [list 0] \
2116 } elseif { $geneve_enabled } {
2119 set sg_stack $ixNetSG_Stack(2)/stack:"geneve-$stack_number"
2121 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2122 set ixNetSG_Stack(3) $sg_stack
2125 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.version-1"
2126 ixNet setMultiAttrs $sg_field \
2129 -optionalEnabled true \
2130 -valueList [list 0x00] \
2137 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.optionsLength-2"
2138 ixNet setMultiAttrs $sg_field \
2141 -optionalEnabled true \
2142 -valueList [list 0x00] \
2150 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.flags-3"
2151 ixNet setMultiAttrs $sg_field \
2154 -optionalEnabled true \
2155 -valueList [list 0x00] \
2162 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.protocolType-4"
2163 ixNet setMultiAttrs $sg_field \
2166 -optionalEnabled true \
2167 -valueList [list 0x6558] \
2171 -randomMask 0x6558 \
2174 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.vni-5"
2175 ixNet setMultiAttrs $sg_field \
2178 -optionalEnabled true \
2179 -valueList [list 0] \
2186 } elseif { $gre_enabled } {
2187 puts "Setting GRE attributes"
2190 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"gre-3"
2192 set sg_stack $ixNetSG_Stack(2)/stack:"gre-$stack_number"
2194 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2195 set ixNetSG_Stack(3) $sg_stack
2198 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumPresent-1"
2199 ixNet setMultiAttrs $sg_field \
2202 -optionalEnabled true \
2203 -valueList [list 0] \
2206 -fieldValue "0:No\ Checksum" \
2210 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved1-2"
2211 ixNet setMultiAttrs $sg_field \
2214 -optionalEnabled true \
2215 -valueList [list 0] \
2222 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyPresent-3"
2223 ixNet setMultiAttrs $sg_field \
2226 -optionalEnabled true \
2227 -valueList [list 0] \
2230 -fieldValue "0:No\ Key\ field" \
2234 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequencePresent-4"
2235 ixNet setMultiAttrs $sg_field \
2238 -optionalEnabled true \
2239 -valueList [list 0] \
2242 -fieldValue "0:No\ sequence\ number\ field" \
2246 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved2-5"
2247 ixNet setMultiAttrs $sg_field \
2250 -optionalEnabled true \
2251 -valueList [list 0] \
2258 set sg_field $ixNetSG_Stack(3)/field:"gre.header.version-6"
2259 ixNet setMultiAttrs $sg_field \
2262 -optionalEnabled true \
2263 -valueList [list 0] \
2270 set sg_field $ixNetSG_Stack(3)/field:"gre.header.protocol-7"
2271 ixNet setMultiAttrs $sg_field \
2274 -optionalEnabled true \
2275 -valueList [list 0x0] \
2283 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.checksum-8"
2284 ixNet setMultiAttrs $sg_field \
2287 -optionalEnabled true \
2288 -valueList [list 0] \
2296 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.reserved-9"
2297 ixNet setMultiAttrs $sg_field \
2300 -optionalEnabled true \
2301 -valueList [list 0] \
2308 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.noChecksum-10"
2309 ixNet setMultiAttrs $sg_field \
2312 -optionalEnabled true \
2313 -valueList [list 0] \
2318 -activeFieldChoice true \
2321 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.key-11"
2322 ixNet setMultiAttrs $sg_field \
2325 -optionalEnabled true \
2326 -valueList [list 0] \
2333 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.noKey-12"
2334 ixNet setMultiAttrs $sg_field \
2337 -optionalEnabled true \
2338 -valueList [list 0] \
2343 -activeFieldChoice true \
2346 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.sequenceNum-13"
2347 ixNet setMultiAttrs $sg_field \
2350 -optionalEnabled true \
2351 -valueList [list 0] \
2358 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.noSequenceNum-14"
2359 ixNet setMultiAttrs $sg_field \
2362 -optionalEnabled true \
2363 -valueList [list 0] \
2368 -activeFieldChoice true \
2372 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2376 # Common fields for VXLAN and GRE
2377 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2378 set sg_stack $ixNetSG_Stack(2)/stack:"ethernetNoFCS-$stack_number"
2380 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2381 set ixNetSG_Stack(3) $sg_stack
2384 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.destinationAddress-1"
2385 ixNet setMultiAttrs $sg_field \
2386 -singleValue $inner_dstmac \
2388 -optionalEnabled true \
2389 -valueList [list 00:00:00:00:00:00] \
2390 -stepValue 00:00:00:00:00:00 \
2391 -fixedBits 00:00:00:00:00:00 \
2392 -fieldValue $inner_dstmac \
2393 -randomMask 00:00:00:00:00:00 \
2394 -startValue 00:00:00:00:00:00
2396 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.sourceAddress-2"
2397 ixNet setMultiAttrs $sg_field \
2398 -singleValue $inner_srcmac \
2400 -optionalEnabled true \
2401 -valueList [list 00:00:00:00:00:00] \
2402 -stepValue 00:00:00:00:00:00 \
2403 -fixedBits 00:00:00:00:00:00 \
2404 -fieldValue $inner_srcmac \
2405 -randomMask 00:00:00:00:00:00 \
2406 -startValue 00:00:00:00:00:00
2408 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.etherType-3"
2409 ixNet setMultiAttrs $sg_field \
2412 -optionalEnabled true \
2413 -valueList [list 0xFFFF] \
2418 -randomMask 0xFFFF \
2421 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-$stack_number"
2423 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2424 set ixNetSG_Stack(3) $sg_stack
2428 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-6"/field:"ipv4.header.version-1"/
2429 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
2430 ixNet setMultiAttrs $sg_field \
2433 -optionalEnabled true \
2434 -valueList [list 4] \
2441 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.headerLength-2"
2442 ixNet setMultiAttrs $sg_field \
2445 -optionalEnabled true \
2446 -valueList [list 0] \
2454 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.raw-3"
2455 ixNet setMultiAttrs $sg_field \
2458 -optionalEnabled true \
2459 -valueList [list 0] \
2466 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.precedence-4"
2467 ixNet setMultiAttrs $sg_field \
2470 -optionalEnabled true \
2471 -valueList [list 0] \
2474 -fieldValue "000\ Routine" \
2476 -activeFieldChoice true \
2479 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.delay-5"
2480 ixNet setMultiAttrs $sg_field \
2483 -optionalEnabled true \
2484 -valueList [list 0] \
2487 -fieldValue Normal \
2489 -activeFieldChoice true \
2492 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.throughput-6"
2493 ixNet setMultiAttrs $sg_field \
2496 -optionalEnabled true \
2497 -valueList [list 0] \
2500 -fieldValue Normal \
2502 -activeFieldChoice true \
2505 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.reliability-7"
2506 ixNet setMultiAttrs $sg_field \
2509 -optionalEnabled true \
2510 -valueList [list 0] \
2513 -fieldValue Normal \
2515 -activeFieldChoice true \
2518 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.monetary-8"
2519 ixNet setMultiAttrs $sg_field \
2522 -optionalEnabled true \
2523 -valueList [list 0] \
2526 -fieldValue Normal \
2528 -activeFieldChoice true \
2531 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.unused-9"
2532 ixNet setMultiAttrs $sg_field \
2535 -optionalEnabled true \
2536 -valueList [list 0] \
2541 -activeFieldChoice true \
2544 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.totalLength-18"
2545 ixNet setMultiAttrs $sg_field \
2548 -optionalEnabled true \
2549 -valueList [list 20] \
2557 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.identification-19"
2558 ixNet setMultiAttrs $sg_field \
2561 -optionalEnabled true \
2562 -valueList [list 0] \
2569 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.reserved-20"
2570 ixNet setMultiAttrs $sg_field \
2573 -optionalEnabled true \
2574 -valueList [list 0] \
2581 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.fragment-21"
2582 ixNet setMultiAttrs $sg_field \
2585 -optionalEnabled true \
2586 -valueList [list 0] \
2589 -fieldValue "May\ fragment" \
2593 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.lastFragment-22"
2594 ixNet setMultiAttrs $sg_field \
2597 -optionalEnabled true \
2598 -valueList [list 0] \
2601 -fieldValue "Last\ fragment" \
2605 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.fragmentOffset-23"
2606 ixNet setMultiAttrs $sg_field \
2609 -optionalEnabled true \
2610 -valueList [list 0] \
2617 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.ttl-24"
2618 ixNet setMultiAttrs $sg_field \
2621 -optionalEnabled true \
2622 -valueList [list 64] \
2629 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
2630 ixNet setMultiAttrs $sg_field \
2633 -optionalEnabled true \
2634 -valueList [list 61] \
2637 -fieldValue $inner_proto \
2642 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
2643 ixNet setMultiAttrs $sg_field \
2644 -singleValue 63355 \
2646 -optionalEnabled true \
2647 -valueList [list 0] \
2655 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
2656 ixNet setMultiAttrs $sg_field \
2657 -singleValue $inner_srcip \
2659 -optionalEnabled true \
2660 -valueList [list 0.0.0.0] \
2661 -stepValue 0.0.0.0 \
2662 -fixedBits 0.0.0.0 \
2663 -fieldValue $inner_srcip \
2664 -randomMask 0.0.0.0 \
2667 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
2668 ixNet setMultiAttrs $sg_field \
2669 -singleValue $inner_dstip \
2671 -optionalEnabled true \
2672 -valueList [list 0.0.0.0] \
2673 -stepValue 0.0.0.0 \
2674 -fixedBits 0.0.0.0 \
2675 -fieldValue $inner_dstip \
2676 -randomMask 0.0.0.0 \
2679 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
2680 ixNet setMultiAttrs $sg_field \
2683 -valueList [list 0] \
2691 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2693 if { [string compare $inner_proto "udp"] == 0 } {
2695 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
2697 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2698 set ixNetSG_Stack(3) $sg_stack
2701 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
2702 ixNet setMultiAttrs $sg_field \
2703 -singleValue $inner_srcport \
2705 -optionalEnabled true \
2706 -valueList [list 63] \
2709 -fieldValue $inner_srcport \
2714 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
2715 ixNet setMultiAttrs $sg_field \
2716 -singleValue $inner_dstport \
2718 -optionalEnabled true \
2719 -valueList [list 63] \
2722 -fieldValue $inner_dstport \
2727 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
2728 ixNet setMultiAttrs $sg_field \
2731 -optionalEnabled true \
2732 -valueList [list 8] \
2740 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
2741 ixNet setMultiAttrs $sg_field \
2744 -optionalEnabled true \
2745 -valueList [list 0] \
2753 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2757 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
2759 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2760 set ixNetSG_Stack(3) $sg_stack
2763 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
2764 ixNet setMultiAttrs $sg_field \
2765 -singleValue $inner_srcport \
2767 -optionalEnabled true \
2769 -valueList [list $inner_srcport] \
2772 -fieldValue $inner_srcport \
2775 -trackingEnabled false \
2776 -valueType singleValue \
2777 -activeFieldChoice false \
2781 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
2782 ixNet setMultiAttrs $sg_field \
2783 -singleValue $inner_dstport \
2785 -optionalEnabled true \
2787 -valueList [list $inner_dstport] \
2790 -fieldValue $inner_dstport \
2793 -trackingEnabled false \
2794 -valueType singleValue \
2795 -activeFieldChoice false \
2799 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
2800 ixNet setMultiAttrs $sg_field \
2803 -optionalEnabled true \
2805 -valueList [list 0x00000000] \
2806 -stepValue 0x00000000 \
2807 -fixedBits 0x00000000 \
2810 -randomMask 0x00000000 \
2811 -trackingEnabled false \
2812 -valueType singleValue \
2813 -activeFieldChoice false \
2814 -startValue 0x00000000 \
2817 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
2818 ixNet setMultiAttrs $sg_field \
2821 -optionalEnabled true \
2823 -valueList [list 0x00000000] \
2824 -stepValue 0x00000000 \
2825 -fixedBits 0x00000000 \
2828 -randomMask 0x00000000 \
2829 -trackingEnabled false \
2830 -valueType singleValue \
2831 -activeFieldChoice false \
2832 -startValue 0x00000000 \
2835 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
2836 ixNet setMultiAttrs $sg_field \
2839 -optionalEnabled true \
2841 -valueList [list 5] \
2847 -trackingEnabled false \
2848 -valueType singleValue \
2849 -activeFieldChoice false \
2853 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
2854 ixNet setMultiAttrs $sg_field \
2857 -optionalEnabled true \
2859 -valueList [list 0] \
2865 -trackingEnabled false \
2866 -valueType singleValue \
2867 -activeFieldChoice false \
2871 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
2872 ixNet setMultiAttrs $sg_field \
2875 -optionalEnabled true \
2877 -valueList [list 0] \
2883 -trackingEnabled false \
2884 -valueType singleValue \
2885 -activeFieldChoice false \
2889 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
2890 ixNet setMultiAttrs $sg_field \
2893 -optionalEnabled true \
2895 -valueList [list 0] \
2901 -trackingEnabled false \
2902 -valueType singleValue \
2903 -activeFieldChoice false \
2907 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
2908 ixNet setMultiAttrs $sg_field \
2911 -optionalEnabled true \
2913 -valueList [list 0] \
2919 -trackingEnabled false \
2920 -valueType singleValue \
2921 -activeFieldChoice false \
2925 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
2926 ixNet setMultiAttrs $sg_field \
2929 -optionalEnabled true \
2931 -valueList [list 0] \
2937 -trackingEnabled false \
2938 -valueType singleValue \
2939 -activeFieldChoice false \
2943 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
2944 ixNet setMultiAttrs $sg_field \
2947 -optionalEnabled true \
2949 -valueList [list 0] \
2955 -trackingEnabled false \
2956 -valueType singleValue \
2957 -activeFieldChoice false \
2961 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
2962 ixNet setMultiAttrs $sg_field \
2965 -optionalEnabled true \
2967 -valueList [list 0] \
2973 -trackingEnabled false \
2974 -valueType singleValue \
2975 -activeFieldChoice false \
2979 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
2980 ixNet setMultiAttrs $sg_field \
2983 -optionalEnabled true \
2985 -valueList [list 0] \
2991 -trackingEnabled false \
2992 -valueType singleValue \
2993 -activeFieldChoice false \
2997 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
2998 ixNet setMultiAttrs $sg_field \
3001 -optionalEnabled true \
3003 -valueList [list 0] \
3009 -trackingEnabled false \
3010 -valueType singleValue \
3011 -activeFieldChoice false \
3015 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
3016 ixNet setMultiAttrs $sg_field \
3019 -optionalEnabled true \
3021 -valueList [list 0] \
3027 -trackingEnabled false \
3028 -valueType singleValue \
3029 -activeFieldChoice false \
3033 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
3034 ixNet setMultiAttrs $sg_field \
3037 -optionalEnabled true \
3039 -valueList [list 0x0000] \
3044 -randomMask 0x0000 \
3045 -trackingEnabled false \
3046 -valueType singleValue \
3047 -activeFieldChoice false \
3048 -startValue 0x0000 \
3051 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
3052 ixNet setMultiAttrs $sg_field \
3055 -optionalEnabled true \
3057 -valueList [list 0x0000] \
3062 -randomMask 0x0000 \
3063 -trackingEnabled false \
3064 -valueType singleValue \
3065 -activeFieldChoice false \
3066 -startValue 0x0000 \
3069 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
3070 ixNet setMultiAttrs $sg_field \
3073 -optionalEnabled true \
3075 -valueList [list 0x0000] \
3080 -randomMask 0x0000 \
3081 -trackingEnabled false \
3082 -valueType singleValue \
3083 -activeFieldChoice false \
3084 -startValue 0x0000 \
3087 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3091 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-$stack_number"
3093 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3094 set ixNetSG_Stack(3) $sg_stack
3097 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3098 ixNet setMultiAttrs $sg_field \
3101 -optionalEnabled true \
3102 -valueList [list 0] \
3112 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"
3114 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-4"
3116 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3117 set ixNetSG_Stack(3) $sg_stack
3120 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"/field:"ethernet.fcs-1"
3122 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3123 ixNet setMultiAttrs $sg_field \
3126 -optionalEnabled True \
3134 -trackingEnabled False \
3135 -valueType singleValue \
3136 -activeFieldChoice False \
3140 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3143 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/transmissionDistribution
3145 set sg_transmissionDistribution $ixNetSG_Stack(2)/transmissionDistribution
3146 ixNet setMultiAttrs $sg_transmissionDistribution \
3149 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3152 # configuring the object that corresponds to /traffic/trafficItem:1/transmissionDistribution
3154 set sg_transmissionDistribution $ixNetSG_Stack(1)/transmissionDistribution
3155 ixNet setMultiAttrs $sg_transmissionDistribution \
3159 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3162 # configuring the object that corresponds to /traffic/trafficItem:1/tracking
3164 set sg_tracking $ixNetSG_Stack(1)/tracking
3165 ixNet setMultiAttrs $sg_tracking \
3167 -oneToOneMesh False \
3170 -fieldWidth thirtyTwoBits \
3171 -protocolOffset {Root.0}
3172 ixNet setMultiAttrs $sg_tracking/egress \
3173 -offset {Outer VLAN Priority (3 bits)} \
3175 -customOffsetBits 0 \
3176 -encapsulation {Ethernet} \
3178 ixNet setMultiAttrs $sg_tracking/latencyBin \
3180 -binLimits {1 1.42 2 2.82 4 5.66 8 11.32} \
3183 set sg_tracking [lindex [ixNet remapIds $sg_tracking] 0]
3184 set ixNetSG_Stack(2) $sg_tracking
3187 # Note: The scriptgen generated egress code were removed because we are not using
3188 # flow tracking in our tests.
3189 # Insert EGRESS lines here if needed
3193 # configuring the object that corresponds to /traffic/trafficItem:1/dynamicUpdate
3195 set sg_dynamicUpdate $ixNetSG_Stack(1)/dynamicUpdate
3196 ixNet setMultiAttrs $sg_dynamicUpdate \
3197 -enabledSessionAwareTrafficFields {} \
3198 -enabledDynamicUpdateFields {}
3200 set sg_dynamicUpdate [lindex [ixNet remapIds $sg_dynamicUpdate] 0]
3207 # configuring the object that corresponds to /quickTest/rfc2544throughput:1
3209 if {$rfc2544TestType == "throughput"} {
3210 set sg_rfc2544throughput [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544throughput]
3211 ixNet setMultiAttrs $sg_rfc2544throughput \
3212 -name {QuickTest1} \
3213 -mode existingMode \
3214 -inputParameters {{}}
3215 ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \
3217 -enableMinFrameSize False \
3218 -framesize $frameSize \
3219 -reportTputRateUnit mbps \
3220 -duration $duration \
3221 -numtrials $numTrials \
3222 -trafficType constantLoading \
3224 -framesPerBurstGap 1 \
3226 -frameLossUnit {0} \
3227 -staggeredStart False \
3228 -framesizeList $frameSize \
3229 -frameSizeMode custom \
3230 -rateSelect percentMaxRate \
3231 -percentMaxRate 100 \
3233 -forceRegenerate False \
3234 -reportSequenceError False \
3237 -loadRateList $frameRate \
3238 -fixedLoadUnit percentMaxRate \
3240 -incrementLoadUnit percentMaxRate \
3241 -initialIncrementLoadRate 10 \
3242 -stepIncrementLoadRate 10 \
3243 -maxIncrementLoadRate 100 \
3244 -randomLoadUnit percentMaxRate \
3245 -minRandomLoadRate 10 \
3246 -maxRandomLoadRate 80 \
3247 -countRandomLoadRate 1 \
3251 -delayAfterTransmit 2 \
3252 -minRandomFrameSize 64 \
3253 -maxRandomFrameSize 1518 \
3254 -countRandomFrameSize 1 \
3255 -minIncrementFrameSize 64 \
3256 -stepIncrementFrameSize 64 \
3257 -maxIncrementFrameSize 1518 \
3258 -calculateLatency True \
3259 -latencyType storeForward \
3260 -calculateJitter False \
3261 -enableDataIntegrity False \
3262 -enableBackoffIteration False \
3263 -enableSaturationIteration False \
3264 -enableStopTestOnHighLoss False \
3265 -enableBackoffUseAs% False \
3266 -backoffIteration 1 \
3267 -saturationIteration 1 \
3268 -stopTestOnHighLoss 0 \
3269 -loadType $loadType \
3270 -stepLoadUnit percentMaxRate \
3271 -customLoadUnit percentMaxRate \
3272 -comboLoadUnit percentMaxRate \
3273 -binaryLoadUnit percentMaxRate \
3274 -initialBinaryLoadRate 100 \
3275 -minBinaryLoadRate 1 \
3276 -maxBinaryLoadRate 100 \
3277 -binaryResolution 1 \
3279 -binaryTolerance $tolerance \
3280 -binaryFrameLossUnit % \
3281 -comboFrameLossUnit % \
3282 -stepFrameLossUnit % \
3283 -initialStepLoadRate 10 \
3284 -maxStepLoadRate 100 \
3285 -stepStepLoadRate 10 \
3287 -initialComboLoadRate 10 \
3288 -maxComboLoadRate 100 \
3289 -minComboLoadRate 10 \
3290 -stepComboLoadRate 10 \
3291 -comboResolution 1 \
3294 -binarySearchType linear \
3295 -unchangedValueList {0} \
3296 -enableFastConvergence $fastConvergence \
3297 -fastConvergenceDuration $convergenceDuration \
3298 -fastConvergenceThreshold 10 \
3299 -framesizeFixedValue $frameSize \
3301 -unchangedInitial False \
3302 -generateTrackingOptionAggregationFiles False \
3303 -enableExtraIterations False \
3304 -extraIterationOffsets {10, -10} \
3305 -usePercentOffsets False \
3306 -imixDistribution weight \
3309 -imixData {{{{64}{{TOS S:0 S:0 S:0 S:0 S:0} S:0}{1 40}}{{128}{{TOS S:0 S:0 S:0 S:0 S:0} S:0}{1 30}}{{256}{{TOS S:0 S:0 S:0 S:0 S:0} S:0}{1 30}}}} \
3310 -imixEnabled False \
3311 -imixTemplates none \
3312 -framesizeImixList $frameSize \
3313 -imixTrafficType {UNCHNAGED} \
3314 -mapType {oneToOne} \
3315 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3316 ixNet setMultiAttrs $sg_rfc2544throughput/learnFrames \
3317 -learnFrequency $learningFrequency \
3318 -learnNumFrames 10 \
3320 -learnWaitTime 1000 \
3321 -learnFrameSize $frameSize \
3322 -fastPathLearnFrameSize $frameSize \
3323 -learnWaitTimeBeforeTransmit 0 \
3324 -learnSendMacOnly False \
3325 -learnSendRouterSolicitation False \
3326 -fastPathEnable $fastPathEnable \
3328 -fastPathNumFrames 10
3329 ixNet setMultiAttrs $sg_rfc2544throughput/passCriteria \
3330 -passCriteriaLoadRateMode average \
3331 -passCriteriaLoadRateValue 100 \
3332 -passCriteriaLoadRateScale mbps \
3333 -enablePassFail False \
3334 -enableRatePassFail False \
3335 -enableLatencyPassFail False \
3336 -enableStandardDeviationPassFail False \
3337 -latencyThresholdValue 10 \
3338 -latencyThresholdScale us \
3339 -latencyThresholdMode average \
3340 -latencyVariationThresholdValue 0 \
3341 -latencyVariationThresholdScale us \
3342 -latencyVarThresholdMode average \
3343 -enableSequenceErrorsPassFail False \
3344 -seqErrorsThresholdValue 0 \
3345 -seqErrorsThresholdMode average \
3346 -enableDataIntegrityPassFail False \
3347 -dataErrorThresholdValue 0 \
3348 -dataErrorThresholdMode average
3350 set sg_rfc2544throughput [lindex [ixNet remapIds $sg_rfc2544throughput] 0]
3351 set ixNetSG_Stack(1) $sg_rfc2544throughput
3354 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/protocols
3356 set sg_protocols $ixNetSG_Stack(1)/protocols
3357 ixNet setMultiAttrs $sg_protocols \
3358 -protocolState default \
3359 -waitAfterStart 120 \
3362 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3365 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/trafficSelection:1
3367 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3368 ixNet setMultiAttrs $sg_trafficSelection \
3369 -id $ixNetSG_ref(26) \
3370 -includeMode inTest \
3371 -itemType trafficItem
3373 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3376 } elseif {$rfc2544TestType == "back2back"} {
3378 # configuring the object that corresponds to /quickTest/rfc2544back2back:2
3380 set sg_rfc2544back2back [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544back2back]
3381 ixNet setMultiAttrs $sg_rfc2544back2back \
3383 -mode existingMode \
3384 -inputParameters {{}}
3385 ixNet setMultiAttrs $sg_rfc2544back2back/testConfig \
3387 -framesize $frameSize \
3388 -reportTputRateUnit mbps \
3389 -rfc2544ImixDataQoS False \
3390 -detailedResultsEnabled True \
3391 -rfc2889ordering noOrdering \
3392 -floodedFramesEnabled False \
3393 -duration $duration \
3394 -numtrials $numTrials \
3395 -trafficType constantLoading \
3397 -framesPerBurstGap 1 \
3399 -frameLossUnit {0} \
3400 -staggeredStart False \
3401 -framesizeList $frameSize \
3402 -frameSizeMode custom \
3403 -rateSelect percentMaxRate \
3404 -percentMaxRate 100 \
3406 -forceRegenerate False \
3407 -reportSequenceError False \
3410 -loadRateList $frameRate \
3414 -delayAfterTransmit 2 \
3415 -minRandomFrameSize 64 \
3416 -maxRandomFrameSize 1518 \
3417 -countRandomFrameSize 1 \
3418 -minIncrementFrameSize 64 \
3419 -stepIncrementFrameSize 64 \
3420 -maxIncrementFrameSize 1518 \
3421 -calculateLatency False \
3422 -calibrateLatency False \
3423 -latencyType cutThrough \
3424 -calculateJitter False \
3425 -enableDataIntegrity False \
3426 -loadType $loadType \
3427 -binaryFrameLossUnit % \
3428 -loadUnit percentMaxRate \
3429 -customLoadUnit percentMaxRate \
3430 -randomLoadUnit percentMaxRate \
3431 -incrementLoadUnit percentMaxRate \
3432 -binaryResolution 100 \
3434 -binaryTolerance $tolerance \
3435 -initialIncrementLoadRate 100 \
3436 -stepIncrementLoadRate 10 \
3437 -maxIncrementLoadRate 100 \
3438 -minRandomLoadRate 10 \
3439 -maxRandomLoadRate 80 \
3440 -countRandomLoadRate 1 \
3441 -numFrames {100000} \
3443 -enableMinFrameSize False \
3445 -generateTrackingOptionAggregationFiles False \
3446 -sendFullyMeshed False \
3447 -imixDistribution weight \
3450 -imixData {{{{64}{{TOS S:0 S:0 S:0 S:0 S:0} S:0}{1 40}}{{128}{{TOS S:0 S:0 S:0 S:0 S:0} S:0}{1 30}}{{256}{{TOS S:0 S:0 S:0 S:0 S:0} S:0}{1 30}}}} \
3451 -imixEnabled False \
3452 -imixTemplates none \
3453 -framesizeImixList $frameSize \
3454 -imixTrafficType {UNCHNAGED} \
3455 -ipRatioMode fixed \
3456 -ipv4RatioList {10,25,50,75,90} \
3457 -ipv6RatioList {90,75,50,25,10} \
3458 -minIncrementIpv4Ratio {10} \
3459 -stepIncrementIpv4Ratio {10} \
3460 -maxIncrementIpv4Ratio {90} \
3461 -minIncrementIpv6Ratio {90} \
3462 -stepIncrementIpv6Ratio {-10} \
3463 -maxIncrementIpv6Ratio {10} \
3464 -minRandomIpv4Ratio {10} \
3465 -maxRandomIpv4Ratio {90} \
3466 -minRandomIpv6Ratio {90} \
3467 -maxRandomIpv6Ratio {10} \
3468 -countRandomIpRatio 1 \
3469 -mapType {oneToOne|manyToMany|fullMesh} \
3470 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3471 ixNet setMultiAttrs $sg_rfc2544back2back/learnFrames \
3472 -learnFrequency $learningFrequency \
3473 -learnNumFrames 10 \
3475 -learnWaitTime 1000 \
3476 -learnFrameSize 64 \
3477 -fastPathLearnFrameSize 64 \
3478 -learnWaitTimeBeforeTransmit 0 \
3479 -learnSendMacOnly False \
3480 -learnSendRouterSolicitation False \
3481 -fastPathEnable $fastPathEnable \
3483 -fastPathNumFrames 10
3484 ixNet setMultiAttrs $sg_rfc2544back2back/passCriteria \
3485 -passCriteriaLoadRateMode average \
3486 -passCriteriaLoadRateValue 100 \
3487 -passCriteriaLoadRateScale mbps \
3488 -enablePassFail False \
3489 -enableRatePassFail False \
3490 -enableLatencyPassFail False \
3491 -enableStandardDeviationPassFail False \
3492 -latencyThresholdValue 10 \
3493 -latencyThresholdScale us \
3494 -latencyThresholdMode average \
3495 -latencyVariationThresholdValue 0 \
3496 -latencyVariationThresholdScale us \
3497 -latencyVarThresholdMode average \
3498 -enableSequenceErrorsPassFail False \
3499 -seqErrorsThresholdValue 0 \
3500 -seqErrorsThresholdMode average \
3501 -enableDataIntegrityPassFail False \
3502 -dataErrorThresholdValue 0 \
3503 -dataErrorThresholdMode average \
3504 -enableFrameCountPassFail False \
3505 -passCriteriaFrameCountValue 100 \
3506 -passCriteriaFrameCountMode average
3508 set sg_rfc2544back2back [lindex [ixNet remapIds $sg_rfc2544back2back] 0]
3509 set ixNetSG_Stack(1) $sg_rfc2544back2back
3512 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/protocols
3514 set sg_protocols $ixNetSG_Stack(1)/protocols
3515 ixNet setMultiAttrs $sg_protocols \
3516 -protocolState default \
3517 -waitAfterStart 120 \
3520 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3523 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/trafficSelection:1
3525 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3526 ixNet setMultiAttrs $sg_trafficSelection \
3527 -id $ixNetSG_ref(26) \
3528 -includeMode inTest \
3529 -itemType trafficItem
3531 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3536 # getting and applying the RFC2544 test
3538 set root [ixNet getRoot]
3539 foreach traf_item [ixNet getList $root/traffic trafficItem] {
3540 ixNet exec generate $traf_item
3543 set qt [ixNet getList $root quickTest]
3544 if {$rfc2544TestType == "throughput"} {
3545 set rfc2544test [ixNet getList $qt rfc2544throughput]
3546 } elseif {$rfc2544TestType == "back2back"} {
3547 set rfc2544test [ixNet getList $qt rfc2544back2back]
3549 ixNet exec apply $rfc2544test
3553 # starting the RFC2544 Throughput test
3555 puts "Starting test..."
3556 ixNet exec start $rfc2544test
3559 proc waitForRfc2544Test { } {
3560 # Wait for- and return results of- RFC2544 quicktest.
3564 puts "Waiting for test to complete..."
3565 set result [ixNet exec waitForTest $rfc2544test]
3566 puts "Finished Test"