3 # Copyright (c) 2014, Ixia
4 # Copyright (c) 2015-2017, 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]
86 # RFC2544 to IXIA terminology mapping (it affects Ixia configuration inside this script):
90 set numTests [dict get $testSpec tests]
92 set tolerance [dict get $testSpec lossrate]
96 set frameRate [dict get $testSpec framerate]
101 set learningFrames True
103 if {$learningFrames} {
104 set learningFrequency oncePerTest
105 set fastPathEnable True
107 set learningFrequency never
108 set fastPathEnable False
111 set multipleStreams [dict get $testSpec multipleStreams]
112 if {($multipleStreams < 0)} {
113 set multipleStreams 0
117 if {$multipleStreams} {
118 set numflows $multipleStreams
119 set multipleStreams increment
121 set multipleStreams singleValue
124 set fastConvergence True
125 set convergenceDuration [expr $duration/10]
129 # extract nested dictionaries
130 set trafficSpec_l2 [dict get $trafficSpec l2]
131 set trafficSpec_l3 [dict get $trafficSpec l3]
132 set trafficSpec_l4 [dict get $trafficSpec l4]
133 set trafficSpec_vlan [dict get $trafficSpec vlan]
135 set frameSize [dict get $trafficSpec_l2 framesize]
136 set srcMac [dict get $trafficSpec_l2 srcmac]
137 set dstMac [dict get $trafficSpec_l2 dstmac]
139 set srcPort [dict get $trafficSpec_l4 srcport]
140 set dstPort [dict get $trafficSpec_l4 dstport]
142 # Tested protocols: udp, tcp, gre
143 set proto [dict get $trafficSpec_l3 proto]
144 set proto [string tolower $proto]
145 set srcIp [dict get $trafficSpec_l3 srcip]
146 set dstIp [dict get $trafficSpec_l3 dstip]
149 if { [string compare $proto "tcp"] == 0 } {
154 set vxlan_enabled [dict exists $trafficSpec_l4 vni]
155 set geneve_enabled [dict exists $trafficSpec_l4 geneve_vni]
157 if { $vxlan_enabled } {
158 puts "VXLAN is enabled. Setting VXLAN variables"
159 set vni [dict get $trafficSpec_l4 vni]
160 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
161 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
162 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
163 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
164 set inner_proto [dict get $trafficSpec_l4 inner_proto]
165 set inner_proto [string tolower $inner_proto]
166 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
167 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
168 } elseif { $geneve_enabled } {
169 puts "GENEVE is enabled. Setting GENEVE variables"
170 set geneve_vni [dict get $trafficSpec_l4 geneve_vni]
171 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
172 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
173 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
174 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
175 set inner_proto [dict get $trafficSpec_l4 inner_proto]
176 set inner_proto [string tolower $inner_proto]
177 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
178 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
181 set gre_enabled False
182 if { [string compare $proto "gre"] == 0 } {
183 puts "GRE is enabled. Setting GRE variables"
186 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
187 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
188 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
189 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
190 set inner_proto [dict get $trafficSpec_l4 inner_proto]
191 set inner_proto [string tolower $inner_proto]
192 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
193 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
196 if {$frameSize < 68 } {
197 if {$rfc2544TestType == "back2back"} {
198 puts "INFO: Packet size too small, packet size will be \
199 increased to 68 for this test"
204 set VERSION [package require IxTclNetwork]
206 ###################################################################
207 ############################ Operation ############################
208 ###################################################################
210 puts "Connecting to IxNetwork machine..."
212 ixNet connect $::IxNserver -port $::IxNport -version $VERSION
214 puts "Connected to IxNetwork machine"
216 puts "Configuring IxNetwork machine..."
219 proc sg_commit {} {ixNet commit}
222 ixNet setSessionParameter version 6.30.701.16
223 ixNet execute newConfig
224 set ixNetSG_Stack(0) [ixNet getRoot]
227 # setting global options
229 set sg_top [ixNet getRoot]
230 ixNet setMultiAttrs $sg_top/availableHardware \
233 ixNet setMultiAttrs $sg_top/globals/preferences \
234 -connectPortsOnLoadConfig True \
235 -rebootPortsOnConnect False
236 ixNet setMultiAttrs $sg_top/globals/interfaces \
239 -sendSingleArpPerGateway True \
240 -sendSingleNsPerGateway True
241 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/checksums \
242 -dropRxL2FcsErrors False \
243 -correctTxL2FcsErrors False \
244 -alwaysCorrectWhenModifying True \
245 -correctTxChecksumOverIp False \
246 -correctTxIpv4Checksum False
247 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/rxRateLimit \
250 -units {kKilobitsPerSecond}
251 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/drop \
255 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/reorder \
260 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/duplicate \
265 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/bitError \
270 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delay \
273 -units {kMicroseconds}
274 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delayVariation \
277 -units {kMicroseconds} \
278 -distribution {kUniform} \
279 -exponentialMeanArrival 0 \
280 -gaussianStandardDeviation 0
281 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/customDelayVariation \
284 ixNet setMultiAttrs $sg_top/statistics \
285 -additionalFcoeStat2 fcoeInvalidFrames \
286 -csvLogPollIntervalMultiplier 1 \
288 -guardrailEnabled True \
289 -enableCsvLogging False \
290 -dataStorePollingIntervalMultiplier 1 \
291 -maxNumberOfStatsPerCustomGraph 16 \
292 -additionalFcoeStat1 fcoeInvalidDelimiter \
293 -timestampPrecision 3 \
294 -enableDataCenterSharedStats False \
295 -timeSynchronization syncTimeToTestStart \
296 -enableAutoDataStore False
297 ixNet setMultiAttrs $sg_top/statistics/measurementMode \
298 -measurementMode mixedMode
299 ixNet setMultiAttrs $sg_top/eventScheduler \
300 -licenseServerLocation {127.0.0.1}
301 ixNet setMultiAttrs $sg_top/traffic \
302 -destMacRetryCount 1 \
303 -maxTrafficGenerationQueries 500 \
304 -enableStaggeredTransmit False \
305 -learningFrameSize $frameSize \
307 -enableDestMacRetry True \
308 -enableMulticastScalingFactor False \
309 -destMacRetryDelay 5 \
310 -largeErrorThreshhold 2 \
311 -refreshLearnedInfoBeforeApply False \
312 -enableMinFrameSize False \
313 -macChangeOnFly False \
315 -enableInstantaneousStatsSupport False \
316 -learningFramesCount 10 \
317 -globalStreamControl continuous \
318 -displayMplsCurrentLabelValue False \
319 -mplsLabelLearningTimeout 30 \
320 -enableStaggeredStartDelay True \
321 -enableDataIntegrityCheck False \
322 -enableSequenceChecking False \
323 -globalStreamControlIterations 1 \
324 -enableStreamOrdering False \
325 -frameOrderingMode none \
326 -learningFramesRate 100
327 ixNet setMultiAttrs $sg_top/traffic/statistics/latency \
330 ixNet setMultiAttrs $sg_top/traffic/statistics/interArrivalTimeRate \
332 ixNet setMultiAttrs $sg_top/traffic/statistics/delayVariation \
334 -statisticsMode rxDelayVariationErrorsAndRate \
335 -latencyMode storeForward \
336 -largeSequenceNumberErrorThreshold 2
337 ixNet setMultiAttrs $sg_top/traffic/statistics/sequenceChecking \
339 -sequenceMode rxThreshold
340 ixNet setMultiAttrs $sg_top/traffic/statistics/advancedSequenceChecking \
342 -advancedSequenceThreshold 1
343 ixNet setMultiAttrs $sg_top/traffic/statistics/cpdpConvergence \
345 -dataPlaneJitterWindow 10485760 \
346 -dataPlaneThreshold 95 \
347 -enableDataPlaneEventsRateMonitor False \
348 -enableControlPlaneEvents False
349 ixNet setMultiAttrs $sg_top/traffic/statistics/packetLossDuration \
351 ixNet setMultiAttrs $sg_top/traffic/statistics/dataIntegrity \
353 ixNet setMultiAttrs $sg_top/traffic/statistics/errorStats \
355 ixNet setMultiAttrs $sg_top/traffic/statistics/prbs \
357 ixNet setMultiAttrs $sg_top/traffic/statistics/iptv \
359 ixNet setMultiAttrs $sg_top/traffic/statistics/l1Rates \
361 ixNet setMultiAttrs $sg_top/quickTest/globals \
362 -productLabel {Your switch/router name here} \
363 -serialNumber {Your switch/router serial number here} \
364 -version {Your firmware version here} \
366 -titlePageComments {} \
367 -maxLinesToDisplay 100 \
368 -enableCheckLinkState False \
369 -enableAbortIfLinkDown False \
370 -enableSwitchToStats True \
371 -enableCapture False \
372 -enableSwitchToResult True \
373 -enableGenerateReportAfterRun False \
374 -enableRebootCpu False \
375 -saveCaptureBeforeRun False \
377 -sleepTimeAfterReboot 10 \
378 -useDefaultRootPath False \
379 -outputRootPath $::output_dir
381 set sg_top [lindex [ixNet remapIds $sg_top] 0]
382 set ixNetSG_Stack(0) $sg_top
389 # configuring the object that corresponds to /vport:1
391 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
392 ixNet setMultiAttrs $sg_vport \
393 -transmitIgnoreLinkStatus False \
394 -txGapControlMode averageMode \
396 -connectedTo ::ixNet::OBJ-null \
397 -txMode interleaved \
399 -rxMode captureAndMeasure \
400 -name {10GE LAN - 001}
401 ixNet setMultiAttrs $sg_vport/l1Config \
402 -currentType tenGigLan
403 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
405 -flowControlDirectedAddress "01 80 C2 00 00 01" \
407 -autoInstrumentation endOfFrame \
408 -transmitClocking internal \
409 -txIgnoreRxLinkFaults False \
411 -enableLASIMonitoring False \
412 -enabledFlowControl True
413 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
417 -vendorSpecificInformation {00 00 00 00} \
418 -macAddress "00:00:00:00:00:00" \
422 -enableTlvOption False \
424 -organizationUniqueIdentifier {000000}
425 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
426 -supportDataCenterMode False \
427 -priorityGroupSize priorityGroupSize-8 \
429 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
430 -flowControlType ieee802.1Qbb \
431 -enablePFCPauseDelay False
432 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
434 -flowControlDirectedAddress "01 80 C2 00 00 01" \
436 -autoInstrumentation endOfFrame \
437 -transmitClocking internal \
438 -txIgnoreRxLinkFaults False \
440 -enableLASIMonitoring False \
441 -enabledFlowControl False
442 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
443 -supportDataCenterMode False \
444 -priorityGroupSize priorityGroupSize-8 \
446 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
447 -flowControlType ieee802.1Qbb \
448 -enablePFCPauseDelay False
449 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
453 -vendorSpecificInformation {00 00 00 00} \
454 -macAddress "00:00:00:00:00:00" \
458 -enableTlvOption False \
460 -organizationUniqueIdentifier {000000}
461 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
462 -sourceAddress1Mask {00:00:00:00:00:00} \
463 -destinationAddress1Mask {00:00:00:00:00:00} \
464 -sourceAddress2 {00:00:00:00:00:00} \
465 -pattern2OffsetType fromStartOfFrame \
468 -sourceAddress2Mask {00:00:00:00:00:00} \
469 -destinationAddress2 {00:00:00:00:00:00} \
470 -destinationAddress1 {00:00:00:00:00:00} \
471 -sourceAddress1 {00:00:00:00:00:00} \
473 -destinationAddress2Mask {00:00:00:00:00:00} \
477 -pattern1OffsetType fromStartOfFrame
478 ixNet setMultiAttrs $sg_vport/protocols/arp \
480 ixNet setMultiAttrs $sg_vport/protocols/bfd \
483 -packetsPerInterval 0
484 ixNet setMultiAttrs $sg_vport/protocols/bgp \
485 -autoFillUpDutIp False \
486 -disableReceivedUpdateValidation False \
487 -enableAdVplsPrefixLengthInBits False \
488 -enableExternalActiveConnect True \
489 -enableInternalActiveConnect True \
490 -enableVpnLabelExchangeOverLsp True \
493 -externalRetryDelay 120 \
495 -internalRetryDelay 120 \
497 -triggerVplsPwInitiation False
498 ixNet setMultiAttrs $sg_vport/protocols/cfm \
499 -enableOptionalLmFunctionality False \
500 -enableOptionalTlvValidation True \
504 -suppressErrorsOnAis True
505 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
507 ixNet setMultiAttrs $sg_vport/protocols/elmi \
509 ixNet setMultiAttrs $sg_vport/protocols/igmp \
514 -sendLeaveOnStop True \
515 -statsEnabled False \
517 ixNet setMultiAttrs $sg_vport/protocols/isis \
518 -allL1RbridgesMac "01:80:c2:00:00:40" \
519 -emulationType isisL3Routing \
521 -helloMulticastMac "01:80:c2:00:00:41" \
522 -lspMgroupPdusPerInterval 0 \
524 -rateControlInterval 0 \
525 -sendP2PHellosToUnicastMac True \
526 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
527 -spbHelloMulticastMac "09:00:2b:00:00:05" \
529 ixNet setMultiAttrs $sg_vport/protocols/lacp \
530 -enablePreservePartnerInfo False \
532 ixNet setMultiAttrs $sg_vport/protocols/ldp \
533 -enableDiscardSelfAdvFecs False \
534 -enableHelloJitter True \
535 -enableVpnLabelExchangeOverLsp True \
539 -keepAliveHoldTime 30 \
540 -keepAliveInterval 10 \
541 -p2mpCapabilityParam 1288 \
543 -targetedHelloInterval 15 \
544 -targetedHoldTime 45 \
545 -useTransportLabelsForMplsOam False
546 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
548 ixNet setMultiAttrs $sg_vport/protocols/lisp \
549 -burstIntervalInMs 0 \
551 -ipv4MapRegisterPacketsPerBurst 0 \
552 -ipv4MapRequestPacketsPerBurst 0 \
553 -ipv4SmrPacketsPerBurst 0 \
554 -ipv6MapRegisterPacketsPerBurst 0 \
555 -ipv6MapRequestPacketsPerBurst 0 \
556 -ipv6SmrPacketsPerBurst 0
557 ixNet setMultiAttrs $sg_vport/protocols/mld \
558 -enableDoneOnStop True \
560 -mldv2Report type143 \
565 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
567 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
568 -apsChannelType {00 02 } \
569 -bfdCcChannelType {00 07 } \
570 -delayManagementChannelType {00 05 } \
571 -enableHighPerformanceMode True \
573 -faultManagementChannelType {00 58 } \
574 -lossMeasurementChannelType {00 04 } \
575 -onDemandCvChannelType {00 09 } \
576 -pwStatusChannelType {00 0B } \
577 -y1731ChannelType {7F FA }
578 ixNet setMultiAttrs $sg_vport/protocols/ospf \
579 -enableDrOrBdr False \
581 -floodLinkStateUpdatesPerInterval 0 \
582 -rateControlInterval 0
583 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
585 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
586 -bsmFramePerInterval 0 \
587 -crpFramePerInterval 0 \
588 -dataMdtFramePerInterval 0 \
589 -denyGrePimIpPrefix {0.0.0.0/32} \
590 -enableDiscardJoinPruneProcessing False \
591 -enableRateControl False \
593 -helloMsgsPerInterval 0 \
595 -joinPruneMessagesPerInterval 0 \
596 -registerMessagesPerInterval 0 \
597 -registerStopMessagesPerInterval 0
598 ixNet setMultiAttrs $sg_vport/protocols/ping \
600 ixNet setMultiAttrs $sg_vport/protocols/rip \
602 ixNet setMultiAttrs $sg_vport/protocols/ripng \
604 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
605 -enableControlLspInitiationRate False \
606 -enableShowTimeValue False \
607 -enableVpnLabelExchangeOverLsp True \
609 -maxLspInitiationsPerSec 400 \
610 -useTransportLabelsForMplsOam False
611 ixNet setMultiAttrs $sg_vport/protocols/stp \
613 ixNet setMultiAttrs $sg_vport/rateControlParameters \
614 -maxRequestsPerBurst 1 \
615 -maxRequestsPerSec 250 \
616 -minRetryInterval 10 \
618 -sendInBursts False \
619 -sendRequestsAsFastAsPossible False
620 ixNet setMultiAttrs $sg_vport/capture \
621 -controlCaptureTrigger {} \
622 -controlCaptureFilter {} \
623 -hardwareEnabled False \
624 -softwareEnabled False \
625 -displayFiltersDataCapture {} \
626 -displayFiltersControlCapture {} \
627 -controlBufferSize 30 \
628 -controlBufferBehaviour bufferLiveNonCircular
629 ixNet setMultiAttrs $sg_vport/protocolStack/options \
630 -routerSolicitationDelay 1 \
631 -routerSolicitationInterval 4 \
632 -routerSolicitations 3 \
636 -ipv4RetransTime 3000 \
639 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
640 set ixNetSG_ref(2) $sg_vport
641 set ixNetSG_Stack(1) $sg_vport
644 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:1
646 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
647 ixNet setMultiAttrs $sg_uds \
648 -destinationAddressSelector anyAddr \
649 -customFrameSizeTo 0 \
650 -customFrameSizeFrom 0 \
652 -patternSelector anyPattern \
653 -sourceAddressSelector anyAddr \
657 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
660 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:2
662 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
663 ixNet setMultiAttrs $sg_uds \
664 -destinationAddressSelector anyAddr \
665 -customFrameSizeTo 0 \
666 -customFrameSizeFrom 0 \
668 -patternSelector anyPattern \
669 -sourceAddressSelector anyAddr \
673 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
676 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:3
678 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
679 ixNet setMultiAttrs $sg_uds \
680 -destinationAddressSelector anyAddr \
681 -customFrameSizeTo 0 \
682 -customFrameSizeFrom 0 \
684 -patternSelector anyPattern \
685 -sourceAddressSelector anyAddr \
689 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
692 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:4
694 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
695 ixNet setMultiAttrs $sg_uds \
696 -destinationAddressSelector anyAddr \
697 -customFrameSizeTo 0 \
698 -customFrameSizeFrom 0 \
700 -patternSelector anyPattern \
701 -sourceAddressSelector anyAddr \
705 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
708 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:5
710 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
711 ixNet setMultiAttrs $sg_uds \
712 -destinationAddressSelector anyAddr \
713 -customFrameSizeTo 0 \
714 -customFrameSizeFrom 0 \
716 -patternSelector anyPattern \
717 -sourceAddressSelector anyAddr \
721 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
724 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:6
726 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
727 ixNet setMultiAttrs $sg_uds \
728 -destinationAddressSelector anyAddr \
729 -customFrameSizeTo 0 \
730 -customFrameSizeFrom 0 \
732 -patternSelector anyPattern \
733 -sourceAddressSelector anyAddr \
737 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
740 # configuring the object that corresponds to /vport:1/protocols/static/lan:1
742 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
743 ixNet setMultiAttrs $sg_lan \
744 -atmEncapsulation ::ixNet::OBJ-null \
747 -enableIncrementMac False \
748 -enableIncrementVlan False \
749 -enableSiteId False \
752 -frEncapsulation ::ixNet::OBJ-null \
753 -incrementPerVcVlanMode noIncrement \
754 -incrementVlanMode noIncrement \
756 -macRangeMode normal \
759 -skipVlanIdZero True \
761 -trafficGroupId ::ixNet::OBJ-null \
766 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
769 # configuring the object that corresponds to /vport:2
771 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
772 ixNet setMultiAttrs $sg_vport \
773 -transmitIgnoreLinkStatus False \
774 -txGapControlMode averageMode \
776 -connectedTo ::ixNet::OBJ-null \
777 -txMode interleaved \
779 -rxMode captureAndMeasure \
780 -name {10GE LAN - 002}
781 ixNet setMultiAttrs $sg_vport/l1Config \
782 -currentType tenGigLan
783 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
785 -flowControlDirectedAddress "01 80 C2 00 00 01" \
787 -autoInstrumentation endOfFrame \
788 -transmitClocking internal \
789 -txIgnoreRxLinkFaults False \
791 -enableLASIMonitoring False \
792 -enabledFlowControl False
793 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
797 -vendorSpecificInformation {00 00 00 00} \
798 -macAddress "00:00:00:00:00:00" \
802 -enableTlvOption False \
804 -organizationUniqueIdentifier {000000}
805 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
806 -supportDataCenterMode False \
807 -priorityGroupSize priorityGroupSize-8 \
809 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
810 -flowControlType ieee802.1Qbb \
811 -enablePFCPauseDelay False
812 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
814 -flowControlDirectedAddress "01 80 C2 00 00 01" \
816 -autoInstrumentation endOfFrame \
817 -transmitClocking internal \
818 -txIgnoreRxLinkFaults False \
820 -enableLASIMonitoring False \
821 -enabledFlowControl False
822 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
823 -supportDataCenterMode False \
824 -priorityGroupSize priorityGroupSize-8 \
826 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
827 -flowControlType ieee802.1Qbb \
828 -enablePFCPauseDelay False
829 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
833 -vendorSpecificInformation {00 00 00 00} \
834 -macAddress "00:00:00:00:00:00" \
838 -enableTlvOption False \
840 -organizationUniqueIdentifier {000000}
841 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
842 -sourceAddress1Mask {00:00:00:00:00:00} \
843 -destinationAddress1Mask {00:00:00:00:00:00} \
844 -sourceAddress2 {00:00:00:00:00:00} \
845 -pattern2OffsetType fromStartOfFrame \
848 -sourceAddress2Mask {00:00:00:00:00:00} \
849 -destinationAddress2 {00:00:00:00:00:00} \
850 -destinationAddress1 {00:00:00:00:00:00} \
851 -sourceAddress1 {00:00:00:00:00:00} \
853 -destinationAddress2Mask {00:00:00:00:00:00} \
857 -pattern1OffsetType fromStartOfFrame
858 ixNet setMultiAttrs $sg_vport/protocols/arp \
860 ixNet setMultiAttrs $sg_vport/protocols/bfd \
863 -packetsPerInterval 0
864 ixNet setMultiAttrs $sg_vport/protocols/bgp \
865 -autoFillUpDutIp False \
866 -disableReceivedUpdateValidation False \
867 -enableAdVplsPrefixLengthInBits False \
868 -enableExternalActiveConnect True \
869 -enableInternalActiveConnect True \
870 -enableVpnLabelExchangeOverLsp True \
873 -externalRetryDelay 120 \
875 -internalRetryDelay 120 \
877 -triggerVplsPwInitiation False
878 ixNet setMultiAttrs $sg_vport/protocols/cfm \
879 -enableOptionalLmFunctionality False \
880 -enableOptionalTlvValidation True \
884 -suppressErrorsOnAis True
885 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
887 ixNet setMultiAttrs $sg_vport/protocols/elmi \
889 ixNet setMultiAttrs $sg_vport/protocols/igmp \
894 -sendLeaveOnStop True \
895 -statsEnabled False \
897 ixNet setMultiAttrs $sg_vport/protocols/isis \
898 -allL1RbridgesMac "01:80:c2:00:00:40" \
899 -emulationType isisL3Routing \
901 -helloMulticastMac "01:80:c2:00:00:41" \
902 -lspMgroupPdusPerInterval 0 \
904 -rateControlInterval 0 \
905 -sendP2PHellosToUnicastMac True \
906 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
907 -spbHelloMulticastMac "09:00:2b:00:00:05" \
909 ixNet setMultiAttrs $sg_vport/protocols/lacp \
910 -enablePreservePartnerInfo False \
912 ixNet setMultiAttrs $sg_vport/protocols/ldp \
913 -enableDiscardSelfAdvFecs False \
914 -enableHelloJitter True \
915 -enableVpnLabelExchangeOverLsp True \
919 -keepAliveHoldTime 30 \
920 -keepAliveInterval 10 \
921 -p2mpCapabilityParam 1288 \
923 -targetedHelloInterval 15 \
924 -targetedHoldTime 45 \
925 -useTransportLabelsForMplsOam False
926 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
928 ixNet setMultiAttrs $sg_vport/protocols/lisp \
929 -burstIntervalInMs 0 \
931 -ipv4MapRegisterPacketsPerBurst 0 \
932 -ipv4MapRequestPacketsPerBurst 0 \
933 -ipv4SmrPacketsPerBurst 0 \
934 -ipv6MapRegisterPacketsPerBurst 0 \
935 -ipv6MapRequestPacketsPerBurst 0 \
936 -ipv6SmrPacketsPerBurst 0
937 ixNet setMultiAttrs $sg_vport/protocols/mld \
938 -enableDoneOnStop True \
940 -mldv2Report type143 \
945 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
947 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
948 -apsChannelType {00 02 } \
949 -bfdCcChannelType {00 07 } \
950 -delayManagementChannelType {00 05 } \
951 -enableHighPerformanceMode True \
953 -faultManagementChannelType {00 58 } \
954 -lossMeasurementChannelType {00 04 } \
955 -onDemandCvChannelType {00 09 } \
956 -pwStatusChannelType {00 0B } \
957 -y1731ChannelType {7F FA }
958 ixNet setMultiAttrs $sg_vport/protocols/ospf \
959 -enableDrOrBdr False \
961 -floodLinkStateUpdatesPerInterval 0 \
962 -rateControlInterval 0
963 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
965 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
966 -bsmFramePerInterval 0 \
967 -crpFramePerInterval 0 \
968 -dataMdtFramePerInterval 0 \
969 -denyGrePimIpPrefix {0.0.0.0/32} \
970 -enableDiscardJoinPruneProcessing False \
971 -enableRateControl False \
973 -helloMsgsPerInterval 0 \
975 -joinPruneMessagesPerInterval 0 \
976 -registerMessagesPerInterval 0 \
977 -registerStopMessagesPerInterval 0
978 ixNet setMultiAttrs $sg_vport/protocols/ping \
980 ixNet setMultiAttrs $sg_vport/protocols/rip \
982 ixNet setMultiAttrs $sg_vport/protocols/ripng \
984 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
985 -enableControlLspInitiationRate False \
986 -enableShowTimeValue False \
987 -enableVpnLabelExchangeOverLsp True \
989 -maxLspInitiationsPerSec 400 \
990 -useTransportLabelsForMplsOam False
991 ixNet setMultiAttrs $sg_vport/protocols/stp \
993 ixNet setMultiAttrs $sg_vport/rateControlParameters \
994 -maxRequestsPerBurst 1 \
995 -maxRequestsPerSec 250 \
996 -minRetryInterval 10 \
998 -sendInBursts False \
999 -sendRequestsAsFastAsPossible False
1000 ixNet setMultiAttrs $sg_vport/capture \
1001 -controlCaptureTrigger {} \
1002 -controlCaptureFilter {} \
1003 -hardwareEnabled False \
1004 -softwareEnabled False \
1005 -displayFiltersDataCapture {} \
1006 -displayFiltersControlCapture {} \
1007 -controlBufferSize 30 \
1008 -controlBufferBehaviour bufferLiveNonCircular
1009 ixNet setMultiAttrs $sg_vport/protocolStack/options \
1010 -routerSolicitationDelay 1 \
1011 -routerSolicitationInterval 4 \
1012 -routerSolicitations 3 \
1016 -ipv4RetransTime 3000 \
1019 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
1020 set ixNetSG_ref(10) $sg_vport
1021 set ixNetSG_Stack(1) $sg_vport
1024 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:1
1026 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
1027 ixNet setMultiAttrs $sg_uds \
1028 -destinationAddressSelector anyAddr \
1029 -customFrameSizeTo 0 \
1030 -customFrameSizeFrom 0 \
1031 -error errAnyFrame \
1032 -patternSelector anyPattern \
1033 -sourceAddressSelector anyAddr \
1037 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1040 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:2
1042 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
1043 ixNet setMultiAttrs $sg_uds \
1044 -destinationAddressSelector anyAddr \
1045 -customFrameSizeTo 0 \
1046 -customFrameSizeFrom 0 \
1047 -error errAnyFrame \
1048 -patternSelector anyPattern \
1049 -sourceAddressSelector anyAddr \
1053 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1056 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:3
1058 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
1059 ixNet setMultiAttrs $sg_uds \
1060 -destinationAddressSelector anyAddr \
1061 -customFrameSizeTo 0 \
1062 -customFrameSizeFrom 0 \
1063 -error errAnyFrame \
1064 -patternSelector anyPattern \
1065 -sourceAddressSelector anyAddr \
1069 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1072 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:4
1074 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
1075 ixNet setMultiAttrs $sg_uds \
1076 -destinationAddressSelector anyAddr \
1077 -customFrameSizeTo 0 \
1078 -customFrameSizeFrom 0 \
1079 -error errAnyFrame \
1080 -patternSelector anyPattern \
1081 -sourceAddressSelector anyAddr \
1085 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1088 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:5
1090 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
1091 ixNet setMultiAttrs $sg_uds \
1092 -destinationAddressSelector anyAddr \
1093 -customFrameSizeTo 0 \
1094 -customFrameSizeFrom 0 \
1095 -error errAnyFrame \
1096 -patternSelector anyPattern \
1097 -sourceAddressSelector anyAddr \
1101 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1104 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:6
1106 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
1107 ixNet setMultiAttrs $sg_uds \
1108 -destinationAddressSelector anyAddr \
1109 -customFrameSizeTo 0 \
1110 -customFrameSizeFrom 0 \
1111 -error errAnyFrame \
1112 -patternSelector anyPattern \
1113 -sourceAddressSelector anyAddr \
1117 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1120 # configuring the object that corresponds to /vport:2/protocols/static/lan:1
1122 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
1123 ixNet setMultiAttrs $sg_lan \
1124 -atmEncapsulation ::ixNet::OBJ-null \
1127 -enableIncrementMac False \
1128 -enableIncrementVlan False \
1129 -enableSiteId False \
1132 -frEncapsulation ::ixNet::OBJ-null \
1133 -incrementPerVcVlanMode noIncrement \
1134 -incrementVlanMode noIncrement \
1136 -macRangeMode normal \
1139 -skipVlanIdZero True \
1141 -trafficGroupId ::ixNet::OBJ-null \
1146 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
1149 ### /availableHardware area
1153 # configuring the object that corresponds to /availableHardware/chassis"
1155 set sg_chassis [ixNet add $ixNetSG_Stack(0)/availableHardware chassis]
1156 ixNet setMultiAttrs $sg_chassis \
1160 -hostname $::chassis
1162 set sg_chassis [lindex [ixNet remapIds $sg_chassis] 0]
1163 set ixNetSG_Stack(1) $sg_chassis
1166 # configuring the object that corresponds to /availableHardware/chassis/card
1168 set sg_card $ixNetSG_Stack(1)/card:$::card
1169 ixNet setMultiAttrs $sg_card \
1170 -aggregationMode normal
1172 set sg_card [lindex [ixNet remapIds $sg_card] 0]
1173 set ixNetSG_ref(19) $sg_card
1174 set ixNetSG_Stack(2) $sg_card
1177 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:1
1179 set sg_aggregation $ixNetSG_Stack(2)/aggregation:1
1180 ixNet setMultiAttrs $sg_aggregation \
1183 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1186 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:2
1188 set sg_aggregation $ixNetSG_Stack(2)/aggregation:2
1189 ixNet setMultiAttrs $sg_aggregation \
1192 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1195 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:3
1197 set sg_aggregation $ixNetSG_Stack(2)/aggregation:3
1198 ixNet setMultiAttrs $sg_aggregation \
1201 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1204 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:4
1206 set sg_aggregation $ixNetSG_Stack(2)/aggregation:4
1207 ixNet setMultiAttrs $sg_aggregation \
1210 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1211 ixNet setMultiAttrs $ixNetSG_ref(2) \
1212 -connectedTo $ixNetSG_ref(19)/port:$::port1
1214 ixNet setMultiAttrs $ixNetSG_ref(10) \
1215 -connectedTo $ixNetSG_ref(19)/port:$::port2
1220 ### /impairment area
1224 # configuring the object that corresponds to /impairment/profile:3
1226 set sg_profile [ixNet add $ixNetSG_Stack(0)/impairment profile]
1227 ixNet setMultiAttrs $sg_profile \
1229 -name {Impairment Profile 1} \
1233 ixNet setMultiAttrs $sg_profile/checksums \
1234 -dropRxL2FcsErrors False \
1235 -correctTxL2FcsErrors False \
1236 -alwaysCorrectWhenModifying True \
1237 -correctTxChecksumOverIp False \
1238 -correctTxIpv4Checksum False
1239 ixNet setMultiAttrs $sg_profile/rxRateLimit \
1242 -units {kKilobitsPerSecond}
1243 ixNet setMultiAttrs $sg_profile/drop \
1247 ixNet setMultiAttrs $sg_profile/reorder \
1252 ixNet setMultiAttrs $sg_profile/duplicate \
1257 ixNet setMultiAttrs $sg_profile/bitError \
1262 ixNet setMultiAttrs $sg_profile/delay \
1265 -units {kMicroseconds}
1266 ixNet setMultiAttrs $sg_profile/delayVariation \
1269 -units {kMicroseconds} \
1270 -distribution {kUniform} \
1271 -exponentialMeanArrival 0 \
1272 -gaussianStandardDeviation 0
1273 ixNet setMultiAttrs $sg_profile/customDelayVariation \
1277 set sg_profile [lindex [ixNet remapIds $sg_profile] 0]
1278 set ixNetSG_Stack(1) $sg_profile
1281 # configuring the object that corresponds to /impairment/profile:3/fixedClassifier:1
1283 set sg_fixedClassifier [ixNet add $ixNetSG_Stack(1) fixedClassifier]
1285 set sg_fixedClassifier [lindex [ixNet remapIds $sg_fixedClassifier] 0]
1292 # configuring the object that corresponds to /traffic/trafficItem:1
1294 set sg_trafficItem [ixNet add $ixNetSG_Stack(0)/traffic trafficItem]
1295 ixNet setMultiAttrs $sg_trafficItem \
1296 -transportRsvpTePreference one \
1297 -trafficItemType l2L3 \
1298 -biDirectional $::biDirect \
1299 -mergeDestinations True \
1300 -hostsPerNetwork 1 \
1301 -transmitMode interleaved \
1303 -trafficType {ethernetVlan} \
1304 -interAsLdpPreference two \
1305 -allowSelfDestined False \
1307 -maxNumberOfVpnLabelStack 2 \
1308 -interAsBgpPreference one \
1310 -transportLdpPreference two \
1311 -egressEnabled False \
1312 -enableDynamicMplsLabelValues False \
1313 -routeMesh oneToOne \
1314 -name {Traffic Item 1} \
1315 -srcDestMesh oneToOne
1317 set sg_trafficItem [lindex [ixNet remapIds $sg_trafficItem] 0]
1318 set ixNetSG_ref(26) $sg_trafficItem
1319 set ixNetSG_Stack(1) $sg_trafficItem
1322 # configuring the object that corresponds to /traffic/trafficItem:1/endpointSet:1
1324 set sg_endpointSet [ixNet add $ixNetSG_Stack(1) endpointSet]
1325 ixNet setMultiAttrs $sg_endpointSet \
1326 -destinations [list $ixNetSG_ref(10)/protocols] \
1327 -destinationFilter {} \
1330 -sources [list $ixNetSG_ref(2)/protocols] \
1331 -name {EndpointSet-1}
1333 set sg_endpointSet [lindex [ixNet remapIds $sg_endpointSet] 0]
1336 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1
1338 set sg_configElement $ixNetSG_Stack(1)/configElement:1
1339 ixNet setMultiAttrs $sg_configElement \
1341 -preambleCustomSize 8 \
1342 -enableDisparityError False \
1343 -preambleFrameSizeMode auto \
1344 -destinationMacMode manual
1345 ixNet setMultiAttrs $sg_configElement/frameSize \
1353 -presetDistribution cisco \
1356 ixNet setMultiAttrs $sg_configElement/frameRate \
1357 -bitRateUnitsType bitsPerSec \
1359 -enforceMinimumInterPacketGap 0 \
1360 -type percentLineRate \
1361 -interPacketGapUnitsType nanoseconds
1362 ixNet setMultiAttrs $sg_configElement/framePayload \
1363 -type incrementByte \
1364 -customRepeat True \
1366 ixNet setMultiAttrs $sg_configElement/frameRateDistribution \
1367 -streamDistribution applyRateToAll \
1368 -portDistribution applyRateToAll
1369 ixNet setMultiAttrs $sg_configElement/transmissionControl \
1374 -interBurstGapUnits nanoseconds \
1378 -enableInterStreamGap False \
1379 -startDelayUnits bytes \
1381 -burstPacketCount 1 \
1382 -enableInterBurstGap False \
1385 set sg_configElement [lindex [ixNet remapIds $sg_configElement] 0]
1386 set ixNetSG_Stack(2) $sg_configElement
1389 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
1391 set sg_stack $ixNetSG_Stack(2)/stack:"ethernet-1"
1393 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1394 set ixNetSG_Stack(3) $sg_stack
1397 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.destinationAddress-1"
1399 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.destinationAddress-1"
1400 ixNet setMultiAttrs $sg_field \
1401 -singleValue $dstMac \
1403 -optionalEnabled True \
1405 -valueList {{00:00:00:00:00:00}} \
1406 -stepValue {00:00:00:00:00:01} \
1407 -fixedBits {00:00:00:00:00:00} \
1408 -fieldValue $dstMac \
1410 -randomMask {00:00:00:00:00:00} \
1411 -trackingEnabled False \
1412 -valueType singleValue \
1413 -activeFieldChoice False \
1414 -startValue $dstMac \
1417 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1420 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.sourceAddress-2"
1422 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.sourceAddress-2"
1423 ixNet setMultiAttrs $sg_field \
1424 -singleValue $srcMac \
1426 -optionalEnabled True \
1428 -valueList {{00:00:00:00:00:00}} \
1429 -stepValue {00:00:00:00:00:00} \
1430 -fixedBits {00:00:00:00:00:00} \
1431 -fieldValue $srcMac \
1433 -randomMask {00:00:00:00:00:00} \
1434 -trackingEnabled False \
1435 -valueType singleValue \
1436 -activeFieldChoice False \
1437 -startValue $srcMac \
1440 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1443 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.etherType-3"
1445 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.etherType-3"
1446 ixNet setMultiAttrs $sg_field \
1447 -singleValue {800} \
1449 -optionalEnabled True \
1451 -valueList {{0xFFFF}} \
1452 -stepValue {0xFFFF} \
1453 -fixedBits {0xFFFF} \
1456 -randomMask {0xFFFF} \
1457 -trackingEnabled False \
1458 -valueType singleValue \
1459 -activeFieldChoice False \
1460 -startValue {0xFFFF} \
1463 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1466 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
1468 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-2"
1470 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1471 set ixNetSG_Stack(3) $sg_stack
1474 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.version-1"
1476 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
1477 ixNet setMultiAttrs $sg_field \
1480 -optionalEnabled True \
1488 -trackingEnabled False \
1489 -valueType singleValue \
1490 -activeFieldChoice False \
1495 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.protocol-25"
1497 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
1498 ixNet setMultiAttrs $sg_field \
1499 -singleValue {$proto_value} \
1501 -optionalEnabled True \
1506 -fieldValue {$proto} \
1509 -trackingEnabled False \
1510 -valueType singleValue \
1511 -activeFieldChoice False \
1516 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.checksum-26"
1518 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
1519 ixNet setMultiAttrs $sg_field \
1522 -optionalEnabled True \
1530 -trackingEnabled False \
1531 -valueType singleValue \
1532 -activeFieldChoice False \
1537 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.srcIp-27"
1539 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
1540 ixNet setMultiAttrs $sg_field \
1541 -singleValue $srcIp \
1543 -optionalEnabled True \
1545 -valueList {{0.0.0.0}} \
1546 -stepValue {0.0.0.0} \
1547 -fixedBits {0.0.0.0} \
1548 -fieldValue $srcIp \
1550 -randomMask {0.0.0.0} \
1551 -trackingEnabled False \
1552 -valueType singleValue \
1553 -activeFieldChoice False \
1554 -startValue {0.0.0.0} \
1558 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.dstIp-28"
1560 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
1561 ixNet setMultiAttrs $sg_field \
1562 -singleValue $dstIp \
1564 -optionalEnabled True \
1566 -valueList {{0.0.0.0}} \
1567 -stepValue {0.0.0.1} \
1568 -fixedBits {0.0.0.0} \
1569 -fieldValue $dstIp \
1571 -randomMask {0.0.0.0} \
1572 -trackingEnabled False \
1573 -valueType $multipleStreams \
1574 -activeFieldChoice False \
1575 -startValue $dstIp \
1576 -countValue $numflows
1578 #set sg_field [lindex [ixNet remapIds $sg_field] 0]
1581 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.options.pad-58"
1583 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
1584 ixNet setMultiAttrs $sg_field \
1587 -optionalEnabled False \
1595 -trackingEnabled False \
1596 -valueType singleValue \
1597 -activeFieldChoice False \
1601 # Suffix for stack names
1602 # This variable should be incremented after setting sg_stack like:
1603 # set sg_stack $ixNetSG_Stack(2)/stack:"protocolnamehere-$stack_number"
1608 if { [string compare $proto "udp"] == 0 } {
1609 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"
1611 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
1613 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1614 set ixNetSG_Stack(3) $sg_stack
1618 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.srcPort-1"
1620 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
1621 ixNet setMultiAttrs $sg_field \
1622 -singleValue $srcPort \
1624 -optionalEnabled True \
1629 -fieldValue $srcPort \
1632 -trackingEnabled False \
1633 -valueType singleValue \
1634 -activeFieldChoice False \
1635 -startValue $srcPort \
1639 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.dstPort-2"
1641 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
1642 ixNet setMultiAttrs $sg_field \
1643 -singleValue $dstPort \
1645 -optionalEnabled True \
1650 -fieldValue $dstPort \
1653 -trackingEnabled False \
1654 -valueType $multipleStreams \
1655 -activeFieldChoice False \
1657 -countValue $numflows
1660 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.length-3"
1662 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
1663 ixNet setMultiAttrs $sg_field \
1666 -optionalEnabled True \
1674 -trackingEnabled False \
1675 -valueType singleValue \
1676 -activeFieldChoice False \
1681 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.checksum-4"
1683 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
1684 ixNet setMultiAttrs $sg_field \
1687 -optionalEnabled True \
1695 -trackingEnabled False \
1696 -valueType singleValue \
1697 -activeFieldChoice False \
1700 } elseif { [string compare $proto "tcp"] == 0 } {
1702 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
1704 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1705 set ixNetSG_Stack(3) $sg_stack
1708 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
1709 ixNet setMultiAttrs $sg_field \
1710 -singleValue $srcPort \
1712 -optionalEnabled true \
1714 -valueList [list $srcPort] \
1717 -fieldValue $srcPort \
1720 -trackingEnabled false \
1721 -valueType singleValue \
1722 -activeFieldChoice false \
1726 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
1727 ixNet setMultiAttrs $sg_field \
1728 -singleValue $dstPort \
1730 -optionalEnabled true \
1732 -valueList [list $dstPort] \
1735 -fieldValue $dstPort \
1738 -trackingEnabled false \
1739 -valueType singleValue \
1740 -activeFieldChoice false \
1744 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
1745 ixNet setMultiAttrs $sg_field \
1748 -optionalEnabled true \
1750 -valueList [list 0x00000000] \
1751 -stepValue 0x00000000 \
1752 -fixedBits 0x00000000 \
1755 -randomMask 0x00000000 \
1756 -trackingEnabled false \
1757 -valueType singleValue \
1758 -activeFieldChoice false \
1759 -startValue 0x00000000 \
1762 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
1763 ixNet setMultiAttrs $sg_field \
1766 -optionalEnabled true \
1768 -valueList [list 0x00000000] \
1769 -stepValue 0x00000000 \
1770 -fixedBits 0x00000000 \
1773 -randomMask 0x00000000 \
1774 -trackingEnabled false \
1775 -valueType singleValue \
1776 -activeFieldChoice false \
1777 -startValue 0x00000000 \
1780 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
1781 ixNet setMultiAttrs $sg_field \
1784 -optionalEnabled true \
1786 -valueList [list 5] \
1792 -trackingEnabled false \
1793 -valueType singleValue \
1794 -activeFieldChoice false \
1798 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
1799 ixNet setMultiAttrs $sg_field \
1802 -optionalEnabled true \
1804 -valueList [list 0] \
1810 -trackingEnabled false \
1811 -valueType singleValue \
1812 -activeFieldChoice false \
1816 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
1817 ixNet setMultiAttrs $sg_field \
1820 -optionalEnabled true \
1822 -valueList [list 0] \
1828 -trackingEnabled false \
1829 -valueType singleValue \
1830 -activeFieldChoice false \
1834 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
1835 ixNet setMultiAttrs $sg_field \
1838 -optionalEnabled true \
1840 -valueList [list 0] \
1846 -trackingEnabled false \
1847 -valueType singleValue \
1848 -activeFieldChoice false \
1852 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
1853 ixNet setMultiAttrs $sg_field \
1856 -optionalEnabled true \
1858 -valueList [list 0] \
1864 -trackingEnabled false \
1865 -valueType singleValue \
1866 -activeFieldChoice false \
1870 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
1871 ixNet setMultiAttrs $sg_field \
1874 -optionalEnabled true \
1876 -valueList [list 0] \
1882 -trackingEnabled false \
1883 -valueType singleValue \
1884 -activeFieldChoice false \
1888 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
1889 ixNet setMultiAttrs $sg_field \
1892 -optionalEnabled true \
1894 -valueList [list 0] \
1900 -trackingEnabled false \
1901 -valueType singleValue \
1902 -activeFieldChoice false \
1906 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
1907 ixNet setMultiAttrs $sg_field \
1910 -optionalEnabled true \
1912 -valueList [list 0] \
1918 -trackingEnabled false \
1919 -valueType singleValue \
1920 -activeFieldChoice false \
1924 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
1925 ixNet setMultiAttrs $sg_field \
1928 -optionalEnabled true \
1930 -valueList [list 0] \
1936 -trackingEnabled false \
1937 -valueType singleValue \
1938 -activeFieldChoice false \
1942 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
1943 ixNet setMultiAttrs $sg_field \
1946 -optionalEnabled true \
1948 -valueList [list 0] \
1954 -trackingEnabled false \
1955 -valueType singleValue \
1956 -activeFieldChoice false \
1960 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
1961 ixNet setMultiAttrs $sg_field \
1964 -optionalEnabled true \
1966 -valueList [list 0] \
1972 -trackingEnabled false \
1973 -valueType singleValue \
1974 -activeFieldChoice false \
1978 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
1979 ixNet setMultiAttrs $sg_field \
1982 -optionalEnabled true \
1984 -valueList [list 0x0000] \
1989 -randomMask 0x0000 \
1990 -trackingEnabled false \
1991 -valueType singleValue \
1992 -activeFieldChoice false \
1993 -startValue 0x0000 \
1996 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
1997 ixNet setMultiAttrs $sg_field \
2000 -optionalEnabled true \
2002 -valueList [list 0x0000] \
2007 -randomMask 0x0000 \
2008 -trackingEnabled false \
2009 -valueType singleValue \
2010 -activeFieldChoice false \
2011 -startValue 0x0000 \
2014 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
2015 ixNet setMultiAttrs $sg_field \
2018 -optionalEnabled true \
2020 -valueList [list 0x0000] \
2025 -randomMask 0x0000 \
2026 -trackingEnabled false \
2027 -valueType singleValue \
2028 -activeFieldChoice false \
2029 -startValue 0x0000 \
2032 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2034 } elseif { [string compare $proto "gre"] == 0 } {
2036 set gre_enabled True
2039 if { $vxlan_enabled || $gre_enabled || $geneve_enabled } {
2040 # VXLAN and GRE have similar inner frame data so we set unique fields
2041 # for each protocol then set the common fields.
2045 if { $vxlan_enabled } {
2048 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"
2050 set sg_stack $ixNetSG_Stack(2)/stack:"vxlan-$stack_number"
2052 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2053 set ixNetSG_Stack(3) $sg_stack
2057 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.flags-1
2059 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.flags-1"
2060 ixNet setMultiAttrs $sg_field \
2063 -optionalEnabled true \
2064 -valueList [list 0x08] \
2072 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved-2
2074 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved-2"
2075 ixNet setMultiAttrs $sg_field \
2078 -optionalEnabled true \
2079 -valueList [list 0] \
2087 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.vni-3"
2089 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.vni-3"
2090 ixNet setMultiAttrs $sg_field \
2093 -optionalEnabled true \
2094 -valueList [list 1234] \
2101 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved8-4"
2103 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved8-4"
2104 ixNet setMultiAttrs $sg_field \
2107 -optionalEnabled true \
2108 -valueList [list 0] \
2115 } elseif { $geneve_enabled } {
2118 set sg_stack $ixNetSG_Stack(2)/stack:"geneve-$stack_number"
2120 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2121 set ixNetSG_Stack(3) $sg_stack
2124 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.version-1"
2125 ixNet setMultiAttrs $sg_field \
2128 -optionalEnabled true \
2129 -valueList [list 0x00] \
2136 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.optionsLength-2"
2137 ixNet setMultiAttrs $sg_field \
2140 -optionalEnabled true \
2141 -valueList [list 0x00] \
2149 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.flags-3"
2150 ixNet setMultiAttrs $sg_field \
2153 -optionalEnabled true \
2154 -valueList [list 0x00] \
2161 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.protocolType-4"
2162 ixNet setMultiAttrs $sg_field \
2165 -optionalEnabled true \
2166 -valueList [list 0x6558] \
2170 -randomMask 0x6558 \
2173 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.vni-5"
2174 ixNet setMultiAttrs $sg_field \
2177 -optionalEnabled true \
2178 -valueList [list 0] \
2185 } elseif { $gre_enabled } {
2186 puts "Setting GRE attributes"
2189 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"gre-3"
2191 set sg_stack $ixNetSG_Stack(2)/stack:"gre-$stack_number"
2193 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2194 set ixNetSG_Stack(3) $sg_stack
2197 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumPresent-1"
2198 ixNet setMultiAttrs $sg_field \
2201 -optionalEnabled true \
2202 -valueList [list 0] \
2205 -fieldValue "0:No\ Checksum" \
2209 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved1-2"
2210 ixNet setMultiAttrs $sg_field \
2213 -optionalEnabled true \
2214 -valueList [list 0] \
2221 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyPresent-3"
2222 ixNet setMultiAttrs $sg_field \
2225 -optionalEnabled true \
2226 -valueList [list 0] \
2229 -fieldValue "0:No\ Key\ field" \
2233 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequencePresent-4"
2234 ixNet setMultiAttrs $sg_field \
2237 -optionalEnabled true \
2238 -valueList [list 0] \
2241 -fieldValue "0:No\ sequence\ number\ field" \
2245 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved2-5"
2246 ixNet setMultiAttrs $sg_field \
2249 -optionalEnabled true \
2250 -valueList [list 0] \
2257 set sg_field $ixNetSG_Stack(3)/field:"gre.header.version-6"
2258 ixNet setMultiAttrs $sg_field \
2261 -optionalEnabled true \
2262 -valueList [list 0] \
2269 set sg_field $ixNetSG_Stack(3)/field:"gre.header.protocol-7"
2270 ixNet setMultiAttrs $sg_field \
2273 -optionalEnabled true \
2274 -valueList [list 0x0] \
2282 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.checksum-8"
2283 ixNet setMultiAttrs $sg_field \
2286 -optionalEnabled true \
2287 -valueList [list 0] \
2295 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.reserved-9"
2296 ixNet setMultiAttrs $sg_field \
2299 -optionalEnabled true \
2300 -valueList [list 0] \
2307 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.noChecksum-10"
2308 ixNet setMultiAttrs $sg_field \
2311 -optionalEnabled true \
2312 -valueList [list 0] \
2317 -activeFieldChoice true \
2320 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.key-11"
2321 ixNet setMultiAttrs $sg_field \
2324 -optionalEnabled true \
2325 -valueList [list 0] \
2332 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.noKey-12"
2333 ixNet setMultiAttrs $sg_field \
2336 -optionalEnabled true \
2337 -valueList [list 0] \
2342 -activeFieldChoice true \
2345 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.sequenceNum-13"
2346 ixNet setMultiAttrs $sg_field \
2349 -optionalEnabled true \
2350 -valueList [list 0] \
2357 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.noSequenceNum-14"
2358 ixNet setMultiAttrs $sg_field \
2361 -optionalEnabled true \
2362 -valueList [list 0] \
2367 -activeFieldChoice true \
2371 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2375 # Common fields for VXLAN and GRE
2376 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2377 set sg_stack $ixNetSG_Stack(2)/stack:"ethernetNoFCS-$stack_number"
2379 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2380 set ixNetSG_Stack(3) $sg_stack
2383 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.destinationAddress-1"
2384 ixNet setMultiAttrs $sg_field \
2385 -singleValue $inner_dstmac \
2387 -optionalEnabled true \
2388 -valueList [list 00:00:00:00:00:00] \
2389 -stepValue 00:00:00:00:00:00 \
2390 -fixedBits 00:00:00:00:00:00 \
2391 -fieldValue $inner_dstmac \
2392 -randomMask 00:00:00:00:00:00 \
2393 -startValue 00:00:00:00:00:00
2395 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.sourceAddress-2"
2396 ixNet setMultiAttrs $sg_field \
2397 -singleValue $inner_srcmac \
2399 -optionalEnabled true \
2400 -valueList [list 00:00:00:00:00:00] \
2401 -stepValue 00:00:00:00:00:00 \
2402 -fixedBits 00:00:00:00:00:00 \
2403 -fieldValue $inner_srcmac \
2404 -randomMask 00:00:00:00:00:00 \
2405 -startValue 00:00:00:00:00:00
2407 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.etherType-3"
2408 ixNet setMultiAttrs $sg_field \
2411 -optionalEnabled true \
2412 -valueList [list 0xFFFF] \
2417 -randomMask 0xFFFF \
2420 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-$stack_number"
2422 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2423 set ixNetSG_Stack(3) $sg_stack
2427 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-6"/field:"ipv4.header.version-1"/
2428 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
2429 ixNet setMultiAttrs $sg_field \
2432 -optionalEnabled true \
2433 -valueList [list 4] \
2440 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.headerLength-2"
2441 ixNet setMultiAttrs $sg_field \
2444 -optionalEnabled true \
2445 -valueList [list 0] \
2453 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.raw-3"
2454 ixNet setMultiAttrs $sg_field \
2457 -optionalEnabled true \
2458 -valueList [list 0] \
2465 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.precedence-4"
2466 ixNet setMultiAttrs $sg_field \
2469 -optionalEnabled true \
2470 -valueList [list 0] \
2473 -fieldValue "000\ Routine" \
2475 -activeFieldChoice true \
2478 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.delay-5"
2479 ixNet setMultiAttrs $sg_field \
2482 -optionalEnabled true \
2483 -valueList [list 0] \
2486 -fieldValue Normal \
2488 -activeFieldChoice true \
2491 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.throughput-6"
2492 ixNet setMultiAttrs $sg_field \
2495 -optionalEnabled true \
2496 -valueList [list 0] \
2499 -fieldValue Normal \
2501 -activeFieldChoice true \
2504 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.reliability-7"
2505 ixNet setMultiAttrs $sg_field \
2508 -optionalEnabled true \
2509 -valueList [list 0] \
2512 -fieldValue Normal \
2514 -activeFieldChoice true \
2517 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.monetary-8"
2518 ixNet setMultiAttrs $sg_field \
2521 -optionalEnabled true \
2522 -valueList [list 0] \
2525 -fieldValue Normal \
2527 -activeFieldChoice true \
2530 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.unused-9"
2531 ixNet setMultiAttrs $sg_field \
2534 -optionalEnabled true \
2535 -valueList [list 0] \
2540 -activeFieldChoice true \
2543 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.totalLength-18"
2544 ixNet setMultiAttrs $sg_field \
2547 -optionalEnabled true \
2548 -valueList [list 20] \
2556 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.identification-19"
2557 ixNet setMultiAttrs $sg_field \
2560 -optionalEnabled true \
2561 -valueList [list 0] \
2568 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.reserved-20"
2569 ixNet setMultiAttrs $sg_field \
2572 -optionalEnabled true \
2573 -valueList [list 0] \
2580 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.fragment-21"
2581 ixNet setMultiAttrs $sg_field \
2584 -optionalEnabled true \
2585 -valueList [list 0] \
2588 -fieldValue "May\ fragment" \
2592 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.lastFragment-22"
2593 ixNet setMultiAttrs $sg_field \
2596 -optionalEnabled true \
2597 -valueList [list 0] \
2600 -fieldValue "Last\ fragment" \
2604 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.fragmentOffset-23"
2605 ixNet setMultiAttrs $sg_field \
2608 -optionalEnabled true \
2609 -valueList [list 0] \
2616 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.ttl-24"
2617 ixNet setMultiAttrs $sg_field \
2620 -optionalEnabled true \
2621 -valueList [list 64] \
2628 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
2629 ixNet setMultiAttrs $sg_field \
2632 -optionalEnabled true \
2633 -valueList [list 61] \
2636 -fieldValue $inner_proto \
2641 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
2642 ixNet setMultiAttrs $sg_field \
2643 -singleValue 63355 \
2645 -optionalEnabled true \
2646 -valueList [list 0] \
2654 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
2655 ixNet setMultiAttrs $sg_field \
2656 -singleValue $inner_srcip \
2658 -optionalEnabled true \
2659 -valueList [list 0.0.0.0] \
2660 -stepValue 0.0.0.0 \
2661 -fixedBits 0.0.0.0 \
2662 -fieldValue $inner_srcip \
2663 -randomMask 0.0.0.0 \
2666 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
2667 ixNet setMultiAttrs $sg_field \
2668 -singleValue $inner_dstip \
2670 -optionalEnabled true \
2671 -valueList [list 0.0.0.0] \
2672 -stepValue 0.0.0.0 \
2673 -fixedBits 0.0.0.0 \
2674 -fieldValue $inner_dstip \
2675 -randomMask 0.0.0.0 \
2678 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
2679 ixNet setMultiAttrs $sg_field \
2682 -valueList [list 0] \
2690 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2692 if { [string compare $inner_proto "udp"] == 0 } {
2694 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
2696 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2697 set ixNetSG_Stack(3) $sg_stack
2700 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
2701 ixNet setMultiAttrs $sg_field \
2702 -singleValue $inner_srcport \
2704 -optionalEnabled true \
2705 -valueList [list 63] \
2708 -fieldValue $inner_srcport \
2713 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
2714 ixNet setMultiAttrs $sg_field \
2715 -singleValue $inner_dstport \
2717 -optionalEnabled true \
2718 -valueList [list 63] \
2721 -fieldValue $inner_dstport \
2726 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
2727 ixNet setMultiAttrs $sg_field \
2730 -optionalEnabled true \
2731 -valueList [list 8] \
2739 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
2740 ixNet setMultiAttrs $sg_field \
2743 -optionalEnabled true \
2744 -valueList [list 0] \
2752 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2756 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
2758 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2759 set ixNetSG_Stack(3) $sg_stack
2762 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
2763 ixNet setMultiAttrs $sg_field \
2764 -singleValue $inner_srcport \
2766 -optionalEnabled true \
2768 -valueList [list $inner_srcport] \
2771 -fieldValue $inner_srcport \
2774 -trackingEnabled false \
2775 -valueType singleValue \
2776 -activeFieldChoice false \
2780 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
2781 ixNet setMultiAttrs $sg_field \
2782 -singleValue $inner_dstport \
2784 -optionalEnabled true \
2786 -valueList [list $inner_dstport] \
2789 -fieldValue $inner_dstport \
2792 -trackingEnabled false \
2793 -valueType singleValue \
2794 -activeFieldChoice false \
2798 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
2799 ixNet setMultiAttrs $sg_field \
2802 -optionalEnabled true \
2804 -valueList [list 0x00000000] \
2805 -stepValue 0x00000000 \
2806 -fixedBits 0x00000000 \
2809 -randomMask 0x00000000 \
2810 -trackingEnabled false \
2811 -valueType singleValue \
2812 -activeFieldChoice false \
2813 -startValue 0x00000000 \
2816 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
2817 ixNet setMultiAttrs $sg_field \
2820 -optionalEnabled true \
2822 -valueList [list 0x00000000] \
2823 -stepValue 0x00000000 \
2824 -fixedBits 0x00000000 \
2827 -randomMask 0x00000000 \
2828 -trackingEnabled false \
2829 -valueType singleValue \
2830 -activeFieldChoice false \
2831 -startValue 0x00000000 \
2834 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
2835 ixNet setMultiAttrs $sg_field \
2838 -optionalEnabled true \
2840 -valueList [list 5] \
2846 -trackingEnabled false \
2847 -valueType singleValue \
2848 -activeFieldChoice false \
2852 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
2853 ixNet setMultiAttrs $sg_field \
2856 -optionalEnabled true \
2858 -valueList [list 0] \
2864 -trackingEnabled false \
2865 -valueType singleValue \
2866 -activeFieldChoice false \
2870 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
2871 ixNet setMultiAttrs $sg_field \
2874 -optionalEnabled true \
2876 -valueList [list 0] \
2882 -trackingEnabled false \
2883 -valueType singleValue \
2884 -activeFieldChoice false \
2888 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
2889 ixNet setMultiAttrs $sg_field \
2892 -optionalEnabled true \
2894 -valueList [list 0] \
2900 -trackingEnabled false \
2901 -valueType singleValue \
2902 -activeFieldChoice false \
2906 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
2907 ixNet setMultiAttrs $sg_field \
2910 -optionalEnabled true \
2912 -valueList [list 0] \
2918 -trackingEnabled false \
2919 -valueType singleValue \
2920 -activeFieldChoice false \
2924 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
2925 ixNet setMultiAttrs $sg_field \
2928 -optionalEnabled true \
2930 -valueList [list 0] \
2936 -trackingEnabled false \
2937 -valueType singleValue \
2938 -activeFieldChoice false \
2942 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
2943 ixNet setMultiAttrs $sg_field \
2946 -optionalEnabled true \
2948 -valueList [list 0] \
2954 -trackingEnabled false \
2955 -valueType singleValue \
2956 -activeFieldChoice false \
2960 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
2961 ixNet setMultiAttrs $sg_field \
2964 -optionalEnabled true \
2966 -valueList [list 0] \
2972 -trackingEnabled false \
2973 -valueType singleValue \
2974 -activeFieldChoice false \
2978 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
2979 ixNet setMultiAttrs $sg_field \
2982 -optionalEnabled true \
2984 -valueList [list 0] \
2990 -trackingEnabled false \
2991 -valueType singleValue \
2992 -activeFieldChoice false \
2996 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
2997 ixNet setMultiAttrs $sg_field \
3000 -optionalEnabled true \
3002 -valueList [list 0] \
3008 -trackingEnabled false \
3009 -valueType singleValue \
3010 -activeFieldChoice false \
3014 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
3015 ixNet setMultiAttrs $sg_field \
3018 -optionalEnabled true \
3020 -valueList [list 0] \
3026 -trackingEnabled false \
3027 -valueType singleValue \
3028 -activeFieldChoice false \
3032 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
3033 ixNet setMultiAttrs $sg_field \
3036 -optionalEnabled true \
3038 -valueList [list 0x0000] \
3043 -randomMask 0x0000 \
3044 -trackingEnabled false \
3045 -valueType singleValue \
3046 -activeFieldChoice false \
3047 -startValue 0x0000 \
3050 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
3051 ixNet setMultiAttrs $sg_field \
3054 -optionalEnabled true \
3056 -valueList [list 0x0000] \
3061 -randomMask 0x0000 \
3062 -trackingEnabled false \
3063 -valueType singleValue \
3064 -activeFieldChoice false \
3065 -startValue 0x0000 \
3068 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
3069 ixNet setMultiAttrs $sg_field \
3072 -optionalEnabled true \
3074 -valueList [list 0x0000] \
3079 -randomMask 0x0000 \
3080 -trackingEnabled false \
3081 -valueType singleValue \
3082 -activeFieldChoice false \
3083 -startValue 0x0000 \
3086 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3090 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-$stack_number"
3092 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3093 set ixNetSG_Stack(3) $sg_stack
3096 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3097 ixNet setMultiAttrs $sg_field \
3100 -optionalEnabled true \
3101 -valueList [list 0] \
3111 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"
3113 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-4"
3115 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3116 set ixNetSG_Stack(3) $sg_stack
3119 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"/field:"ethernet.fcs-1"
3121 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3122 ixNet setMultiAttrs $sg_field \
3125 -optionalEnabled True \
3133 -trackingEnabled False \
3134 -valueType singleValue \
3135 -activeFieldChoice False \
3139 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3142 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/transmissionDistribution
3144 set sg_transmissionDistribution $ixNetSG_Stack(2)/transmissionDistribution
3145 ixNet setMultiAttrs $sg_transmissionDistribution \
3148 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3151 # configuring the object that corresponds to /traffic/trafficItem:1/transmissionDistribution
3153 set sg_transmissionDistribution $ixNetSG_Stack(1)/transmissionDistribution
3154 ixNet setMultiAttrs $sg_transmissionDistribution \
3158 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3161 # configuring the object that corresponds to /traffic/trafficItem:1/tracking
3163 set sg_tracking $ixNetSG_Stack(1)/tracking
3164 ixNet setMultiAttrs $sg_tracking \
3166 -oneToOneMesh False \
3169 -fieldWidth thirtyTwoBits \
3170 -protocolOffset {Root.0}
3171 ixNet setMultiAttrs $sg_tracking/egress \
3172 -offset {Outer VLAN Priority (3 bits)} \
3174 -customOffsetBits 0 \
3175 -encapsulation {Ethernet} \
3177 ixNet setMultiAttrs $sg_tracking/latencyBin \
3179 -binLimits {1 1.42 2 2.82 4 5.66 8 11.32} \
3182 set sg_tracking [lindex [ixNet remapIds $sg_tracking] 0]
3183 set ixNetSG_Stack(2) $sg_tracking
3186 # Note: The scriptgen generated egress code were removed because we are not using
3187 # flow tracking in our tests.
3188 # Insert EGRESS lines here if needed
3192 # configuring the object that corresponds to /traffic/trafficItem:1/dynamicUpdate
3194 set sg_dynamicUpdate $ixNetSG_Stack(1)/dynamicUpdate
3195 ixNet setMultiAttrs $sg_dynamicUpdate \
3196 -enabledSessionAwareTrafficFields {} \
3197 -enabledDynamicUpdateFields {}
3199 set sg_dynamicUpdate [lindex [ixNet remapIds $sg_dynamicUpdate] 0]
3206 # configuring the object that corresponds to /quickTest/rfc2544throughput:1
3208 if {$rfc2544TestType == "throughput"} {
3209 set sg_rfc2544throughput [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544throughput]
3210 ixNet setMultiAttrs $sg_rfc2544throughput \
3211 -name {QuickTest1} \
3212 -mode existingMode \
3213 -inputParameters {{}}
3214 ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \
3216 -enableMinFrameSize False \
3217 -framesize $frameSize \
3218 -reportTputRateUnit mbps \
3219 -duration $duration \
3220 -numtrials $numTests \
3221 -trafficType constantLoading \
3223 -framesPerBurstGap 1 \
3225 -frameLossUnit {0} \
3226 -staggeredStart False \
3227 -framesizeList $frameSize \
3228 -frameSizeMode custom \
3229 -rateSelect percentMaxRate \
3230 -percentMaxRate 100 \
3232 -forceRegenerate False \
3233 -reportSequenceError False \
3236 -loadRateList $frameRate \
3237 -fixedLoadUnit percentMaxRate \
3239 -incrementLoadUnit percentMaxRate \
3240 -initialIncrementLoadRate 10 \
3241 -stepIncrementLoadRate 10 \
3242 -maxIncrementLoadRate 100 \
3243 -randomLoadUnit percentMaxRate \
3244 -minRandomLoadRate 10 \
3245 -maxRandomLoadRate 80 \
3246 -countRandomLoadRate 1 \
3250 -delayAfterTransmit 2 \
3251 -minRandomFrameSize 64 \
3252 -maxRandomFrameSize 1518 \
3253 -countRandomFrameSize 1 \
3254 -minIncrementFrameSize 64 \
3255 -stepIncrementFrameSize 64 \
3256 -maxIncrementFrameSize 1518 \
3257 -calculateLatency True \
3258 -latencyType storeForward \
3259 -calculateJitter False \
3260 -enableDataIntegrity False \
3261 -enableBackoffIteration False \
3262 -enableSaturationIteration False \
3263 -enableStopTestOnHighLoss False \
3264 -enableBackoffUseAs% False \
3265 -backoffIteration 1 \
3266 -saturationIteration 1 \
3267 -stopTestOnHighLoss 0 \
3268 -loadType $loadType \
3269 -stepLoadUnit percentMaxRate \
3270 -customLoadUnit percentMaxRate \
3271 -comboLoadUnit percentMaxRate \
3272 -binaryLoadUnit percentMaxRate \
3273 -initialBinaryLoadRate 100 \
3274 -minBinaryLoadRate 1 \
3275 -maxBinaryLoadRate 100 \
3276 -binaryResolution 1 \
3278 -binaryTolerance $tolerance \
3279 -binaryFrameLossUnit % \
3280 -comboFrameLossUnit % \
3281 -stepFrameLossUnit % \
3282 -initialStepLoadRate 10 \
3283 -maxStepLoadRate 100 \
3284 -stepStepLoadRate 10 \
3286 -initialComboLoadRate 10 \
3287 -maxComboLoadRate 100 \
3288 -minComboLoadRate 10 \
3289 -stepComboLoadRate 10 \
3290 -comboResolution 1 \
3293 -binarySearchType linear \
3294 -unchangedValueList {0} \
3295 -enableFastConvergence $fastConvergence \
3296 -fastConvergenceDuration $convergenceDuration \
3297 -fastConvergenceThreshold 10 \
3298 -framesizeFixedValue $frameSize \
3300 -unchangedInitial False \
3301 -generateTrackingOptionAggregationFiles False \
3302 -enableExtraIterations False \
3303 -extraIterationOffsets {10, -10} \
3304 -usePercentOffsets False \
3305 -imixDistribution weight \
3308 -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}}}} \
3309 -imixEnabled False \
3310 -imixTemplates none \
3311 -framesizeImixList $frameSize \
3312 -imixTrafficType {UNCHNAGED} \
3313 -mapType {oneToOne} \
3314 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3315 ixNet setMultiAttrs $sg_rfc2544throughput/learnFrames \
3316 -learnFrequency $learningFrequency \
3317 -learnNumFrames 10 \
3319 -learnWaitTime 1000 \
3320 -learnFrameSize $frameSize \
3321 -fastPathLearnFrameSize $frameSize \
3322 -learnWaitTimeBeforeTransmit 0 \
3323 -learnSendMacOnly False \
3324 -learnSendRouterSolicitation False \
3325 -fastPathEnable $fastPathEnable \
3327 -fastPathNumFrames 10
3328 ixNet setMultiAttrs $sg_rfc2544throughput/passCriteria \
3329 -passCriteriaLoadRateMode average \
3330 -passCriteriaLoadRateValue 100 \
3331 -passCriteriaLoadRateScale mbps \
3332 -enablePassFail False \
3333 -enableRatePassFail False \
3334 -enableLatencyPassFail False \
3335 -enableStandardDeviationPassFail False \
3336 -latencyThresholdValue 10 \
3337 -latencyThresholdScale us \
3338 -latencyThresholdMode average \
3339 -latencyVariationThresholdValue 0 \
3340 -latencyVariationThresholdScale us \
3341 -latencyVarThresholdMode average \
3342 -enableSequenceErrorsPassFail False \
3343 -seqErrorsThresholdValue 0 \
3344 -seqErrorsThresholdMode average \
3345 -enableDataIntegrityPassFail False \
3346 -dataErrorThresholdValue 0 \
3347 -dataErrorThresholdMode average
3349 set sg_rfc2544throughput [lindex [ixNet remapIds $sg_rfc2544throughput] 0]
3350 set ixNetSG_Stack(1) $sg_rfc2544throughput
3353 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/protocols
3355 set sg_protocols $ixNetSG_Stack(1)/protocols
3356 ixNet setMultiAttrs $sg_protocols \
3357 -protocolState default \
3358 -waitAfterStart 120 \
3361 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3364 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/trafficSelection:1
3366 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3367 ixNet setMultiAttrs $sg_trafficSelection \
3368 -id $ixNetSG_ref(26) \
3369 -includeMode inTest \
3370 -itemType trafficItem
3372 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3375 } elseif {$rfc2544TestType == "back2back"} {
3377 # configuring the object that corresponds to /quickTest/rfc2544back2back:2
3379 set sg_rfc2544back2back [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544back2back]
3380 ixNet setMultiAttrs $sg_rfc2544back2back \
3382 -mode existingMode \
3383 -inputParameters {{}}
3384 ixNet setMultiAttrs $sg_rfc2544back2back/testConfig \
3386 -framesize $frameSize \
3387 -reportTputRateUnit mbps \
3388 -rfc2544ImixDataQoS False \
3389 -detailedResultsEnabled True \
3390 -rfc2889ordering noOrdering \
3391 -floodedFramesEnabled False \
3392 -duration $duration \
3393 -numtrials $numTests \
3394 -trafficType constantLoading \
3396 -framesPerBurstGap 1 \
3398 -frameLossUnit {0} \
3399 -staggeredStart False \
3400 -framesizeList $frameSize \
3401 -frameSizeMode custom \
3402 -rateSelect percentMaxRate \
3403 -percentMaxRate 100 \
3405 -forceRegenerate False \
3406 -reportSequenceError False \
3409 -loadRateList $frameRate \
3413 -delayAfterTransmit 2 \
3414 -minRandomFrameSize 64 \
3415 -maxRandomFrameSize 1518 \
3416 -countRandomFrameSize 1 \
3417 -minIncrementFrameSize 64 \
3418 -stepIncrementFrameSize 64 \
3419 -maxIncrementFrameSize 1518 \
3420 -calculateLatency False \
3421 -calibrateLatency False \
3422 -latencyType cutThrough \
3423 -calculateJitter False \
3424 -enableDataIntegrity False \
3425 -loadType $loadType \
3426 -binaryFrameLossUnit % \
3427 -loadUnit percentMaxRate \
3428 -customLoadUnit percentMaxRate \
3429 -randomLoadUnit percentMaxRate \
3430 -incrementLoadUnit percentMaxRate \
3431 -binaryResolution 100 \
3433 -binaryTolerance $tolerance \
3434 -initialIncrementLoadRate 100 \
3435 -stepIncrementLoadRate 10 \
3436 -maxIncrementLoadRate 100 \
3437 -minRandomLoadRate 10 \
3438 -maxRandomLoadRate 80 \
3439 -countRandomLoadRate 1 \
3440 -numFrames {100000} \
3442 -enableMinFrameSize False \
3444 -generateTrackingOptionAggregationFiles False \
3445 -sendFullyMeshed False \
3446 -imixDistribution weight \
3449 -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}}}} \
3450 -imixEnabled False \
3451 -imixTemplates none \
3452 -framesizeImixList $frameSize \
3453 -imixTrafficType {UNCHNAGED} \
3454 -ipRatioMode fixed \
3455 -ipv4RatioList {10,25,50,75,90} \
3456 -ipv6RatioList {90,75,50,25,10} \
3457 -minIncrementIpv4Ratio {10} \
3458 -stepIncrementIpv4Ratio {10} \
3459 -maxIncrementIpv4Ratio {90} \
3460 -minIncrementIpv6Ratio {90} \
3461 -stepIncrementIpv6Ratio {-10} \
3462 -maxIncrementIpv6Ratio {10} \
3463 -minRandomIpv4Ratio {10} \
3464 -maxRandomIpv4Ratio {90} \
3465 -minRandomIpv6Ratio {90} \
3466 -maxRandomIpv6Ratio {10} \
3467 -countRandomIpRatio 1 \
3468 -mapType {oneToOne|manyToMany|fullMesh} \
3469 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3470 ixNet setMultiAttrs $sg_rfc2544back2back/learnFrames \
3471 -learnFrequency $learningFrequency \
3472 -learnNumFrames 10 \
3474 -learnWaitTime 1000 \
3475 -learnFrameSize 64 \
3476 -fastPathLearnFrameSize 64 \
3477 -learnWaitTimeBeforeTransmit 0 \
3478 -learnSendMacOnly False \
3479 -learnSendRouterSolicitation False \
3480 -fastPathEnable $fastPathEnable \
3482 -fastPathNumFrames 10
3483 ixNet setMultiAttrs $sg_rfc2544back2back/passCriteria \
3484 -passCriteriaLoadRateMode average \
3485 -passCriteriaLoadRateValue 100 \
3486 -passCriteriaLoadRateScale mbps \
3487 -enablePassFail False \
3488 -enableRatePassFail False \
3489 -enableLatencyPassFail False \
3490 -enableStandardDeviationPassFail False \
3491 -latencyThresholdValue 10 \
3492 -latencyThresholdScale us \
3493 -latencyThresholdMode average \
3494 -latencyVariationThresholdValue 0 \
3495 -latencyVariationThresholdScale us \
3496 -latencyVarThresholdMode average \
3497 -enableSequenceErrorsPassFail False \
3498 -seqErrorsThresholdValue 0 \
3499 -seqErrorsThresholdMode average \
3500 -enableDataIntegrityPassFail False \
3501 -dataErrorThresholdValue 0 \
3502 -dataErrorThresholdMode average \
3503 -enableFrameCountPassFail False \
3504 -passCriteriaFrameCountValue 100 \
3505 -passCriteriaFrameCountMode average
3507 set sg_rfc2544back2back [lindex [ixNet remapIds $sg_rfc2544back2back] 0]
3508 set ixNetSG_Stack(1) $sg_rfc2544back2back
3511 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/protocols
3513 set sg_protocols $ixNetSG_Stack(1)/protocols
3514 ixNet setMultiAttrs $sg_protocols \
3515 -protocolState default \
3516 -waitAfterStart 120 \
3519 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3522 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/trafficSelection:1
3524 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3525 ixNet setMultiAttrs $sg_trafficSelection \
3526 -id $ixNetSG_ref(26) \
3527 -includeMode inTest \
3528 -itemType trafficItem
3530 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3535 # getting and applying the RFC2544 test
3537 set root [ixNet getRoot]
3538 foreach traf_item [ixNet getList $root/traffic trafficItem] {
3539 ixNet exec generate $traf_item
3542 set qt [ixNet getList $root quickTest]
3543 if {$rfc2544TestType == "throughput"} {
3544 set rfc2544test [ixNet getList $qt rfc2544throughput]
3545 } elseif {$rfc2544TestType == "back2back"} {
3546 set rfc2544test [ixNet getList $qt rfc2544back2back]
3548 ixNet exec apply $rfc2544test
3552 # starting the RFC2544 Throughput test
3554 puts "Starting test..."
3555 ixNet exec start $rfc2544test
3558 proc waitForRfc2544Test { } {
3559 # Wait for- and return results of- RFC2544 quicktest.
3563 puts "Waiting for test to complete..."
3564 set result [ixNet exec waitForTest $rfc2544test]
3565 puts "Finished Test"