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 if { $vxlan_enabled } {
157 puts "VXLAN is enabled. Setting VXLAN variables"
158 set vni [dict get $trafficSpec_l4 vni]
159 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
160 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
161 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
162 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
163 set inner_proto [dict get $trafficSpec_l4 inner_proto]
164 set inner_proto [string tolower $inner_proto]
165 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
166 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
169 set gre_enabled False
170 if { [string compare $proto "gre"] == 0 } {
171 puts "GRE is enabled. Setting GRE variables"
174 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
175 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
176 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
177 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
178 set inner_proto [dict get $trafficSpec_l4 inner_proto]
179 set inner_proto [string tolower $inner_proto]
180 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
181 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
184 if {$frameSize < 68 } {
185 if {$rfc2544TestType == "back2back"} {
186 puts "WARNING: Packet size too small, packet size will be \
187 increased to 68 for this test"
192 set VERSION [package require IxTclNetwork]
194 ###################################################################
195 ############################ Operation ############################
196 ###################################################################
198 puts "Connecting to IxNetwork machine..."
200 ixNet connect $::IxNserver -port $::IxNport -version $VERSION
202 puts "Connected to IxNetwork machine"
204 puts "Configuring IxNetwork machine..."
207 proc sg_commit {} {ixNet commit}
210 ixNet setSessionParameter version 6.30.701.16
211 ixNet execute newConfig
212 set ixNetSG_Stack(0) [ixNet getRoot]
215 # setting global options
217 set sg_top [ixNet getRoot]
218 ixNet setMultiAttrs $sg_top/availableHardware \
221 ixNet setMultiAttrs $sg_top/globals/preferences \
222 -connectPortsOnLoadConfig True \
223 -rebootPortsOnConnect False
224 ixNet setMultiAttrs $sg_top/globals/interfaces \
227 -sendSingleArpPerGateway True \
228 -sendSingleNsPerGateway True
229 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/checksums \
230 -dropRxL2FcsErrors False \
231 -correctTxL2FcsErrors False \
232 -alwaysCorrectWhenModifying True \
233 -correctTxChecksumOverIp False \
234 -correctTxIpv4Checksum False
235 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/rxRateLimit \
238 -units {kKilobitsPerSecond}
239 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/drop \
243 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/reorder \
248 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/duplicate \
253 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/bitError \
258 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delay \
261 -units {kMicroseconds}
262 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delayVariation \
265 -units {kMicroseconds} \
266 -distribution {kUniform} \
267 -exponentialMeanArrival 0 \
268 -gaussianStandardDeviation 0
269 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/customDelayVariation \
272 ixNet setMultiAttrs $sg_top/statistics \
273 -additionalFcoeStat2 fcoeInvalidFrames \
274 -csvLogPollIntervalMultiplier 1 \
276 -guardrailEnabled True \
277 -enableCsvLogging False \
278 -dataStorePollingIntervalMultiplier 1 \
279 -maxNumberOfStatsPerCustomGraph 16 \
280 -additionalFcoeStat1 fcoeInvalidDelimiter \
281 -timestampPrecision 3 \
282 -enableDataCenterSharedStats False \
283 -timeSynchronization syncTimeToTestStart \
284 -enableAutoDataStore False
285 ixNet setMultiAttrs $sg_top/statistics/measurementMode \
286 -measurementMode mixedMode
287 ixNet setMultiAttrs $sg_top/eventScheduler \
288 -licenseServerLocation {127.0.0.1}
289 ixNet setMultiAttrs $sg_top/traffic \
290 -destMacRetryCount 1 \
291 -maxTrafficGenerationQueries 500 \
292 -enableStaggeredTransmit False \
293 -learningFrameSize $frameSize \
295 -enableDestMacRetry True \
296 -enableMulticastScalingFactor False \
297 -destMacRetryDelay 5 \
298 -largeErrorThreshhold 2 \
299 -refreshLearnedInfoBeforeApply False \
300 -enableMinFrameSize False \
301 -macChangeOnFly False \
303 -enableInstantaneousStatsSupport False \
304 -learningFramesCount 10 \
305 -globalStreamControl continuous \
306 -displayMplsCurrentLabelValue False \
307 -mplsLabelLearningTimeout 30 \
308 -enableStaggeredStartDelay True \
309 -enableDataIntegrityCheck False \
310 -enableSequenceChecking False \
311 -globalStreamControlIterations 1 \
312 -enableStreamOrdering False \
313 -frameOrderingMode none \
314 -learningFramesRate 100
315 ixNet setMultiAttrs $sg_top/traffic/statistics/latency \
318 ixNet setMultiAttrs $sg_top/traffic/statistics/interArrivalTimeRate \
320 ixNet setMultiAttrs $sg_top/traffic/statistics/delayVariation \
322 -statisticsMode rxDelayVariationErrorsAndRate \
323 -latencyMode storeForward \
324 -largeSequenceNumberErrorThreshold 2
325 ixNet setMultiAttrs $sg_top/traffic/statistics/sequenceChecking \
327 -sequenceMode rxThreshold
328 ixNet setMultiAttrs $sg_top/traffic/statistics/advancedSequenceChecking \
330 -advancedSequenceThreshold 1
331 ixNet setMultiAttrs $sg_top/traffic/statistics/cpdpConvergence \
333 -dataPlaneJitterWindow 10485760 \
334 -dataPlaneThreshold 95 \
335 -enableDataPlaneEventsRateMonitor False \
336 -enableControlPlaneEvents False
337 ixNet setMultiAttrs $sg_top/traffic/statistics/packetLossDuration \
339 ixNet setMultiAttrs $sg_top/traffic/statistics/dataIntegrity \
341 ixNet setMultiAttrs $sg_top/traffic/statistics/errorStats \
343 ixNet setMultiAttrs $sg_top/traffic/statistics/prbs \
345 ixNet setMultiAttrs $sg_top/traffic/statistics/iptv \
347 ixNet setMultiAttrs $sg_top/traffic/statistics/l1Rates \
349 ixNet setMultiAttrs $sg_top/quickTest/globals \
350 -productLabel {Your switch/router name here} \
351 -serialNumber {Your switch/router serial number here} \
352 -version {Your firmware version here} \
354 -titlePageComments {} \
355 -maxLinesToDisplay 100 \
356 -enableCheckLinkState False \
357 -enableAbortIfLinkDown False \
358 -enableSwitchToStats True \
359 -enableCapture False \
360 -enableSwitchToResult True \
361 -enableGenerateReportAfterRun False \
362 -enableRebootCpu False \
363 -saveCaptureBeforeRun False \
365 -sleepTimeAfterReboot 10 \
366 -useDefaultRootPath False \
367 -outputRootPath $::output_dir
369 set sg_top [lindex [ixNet remapIds $sg_top] 0]
370 set ixNetSG_Stack(0) $sg_top
377 # configuring the object that corresponds to /vport:1
379 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
380 ixNet setMultiAttrs $sg_vport \
381 -transmitIgnoreLinkStatus False \
382 -txGapControlMode averageMode \
384 -connectedTo ::ixNet::OBJ-null \
385 -txMode interleaved \
387 -rxMode captureAndMeasure \
388 -name {10GE LAN - 001}
389 ixNet setMultiAttrs $sg_vport/l1Config \
390 -currentType tenGigLan
391 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
393 -flowControlDirectedAddress "01 80 C2 00 00 01" \
395 -autoInstrumentation endOfFrame \
396 -transmitClocking internal \
397 -txIgnoreRxLinkFaults False \
399 -enableLASIMonitoring False \
400 -enabledFlowControl True
401 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
405 -vendorSpecificInformation {00 00 00 00} \
406 -macAddress "00:00:00:00:00:00" \
410 -enableTlvOption False \
412 -organizationUniqueIdentifier {000000}
413 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
414 -supportDataCenterMode False \
415 -priorityGroupSize priorityGroupSize-8 \
417 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
418 -flowControlType ieee802.1Qbb \
419 -enablePFCPauseDelay False
420 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
422 -flowControlDirectedAddress "01 80 C2 00 00 01" \
424 -autoInstrumentation endOfFrame \
425 -transmitClocking internal \
426 -txIgnoreRxLinkFaults False \
428 -enableLASIMonitoring False \
429 -enabledFlowControl False
430 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
431 -supportDataCenterMode False \
432 -priorityGroupSize priorityGroupSize-8 \
434 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
435 -flowControlType ieee802.1Qbb \
436 -enablePFCPauseDelay False
437 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
441 -vendorSpecificInformation {00 00 00 00} \
442 -macAddress "00:00:00:00:00:00" \
446 -enableTlvOption False \
448 -organizationUniqueIdentifier {000000}
449 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
450 -sourceAddress1Mask {00:00:00:00:00:00} \
451 -destinationAddress1Mask {00:00:00:00:00:00} \
452 -sourceAddress2 {00:00:00:00:00:00} \
453 -pattern2OffsetType fromStartOfFrame \
456 -sourceAddress2Mask {00:00:00:00:00:00} \
457 -destinationAddress2 {00:00:00:00:00:00} \
458 -destinationAddress1 {00:00:00:00:00:00} \
459 -sourceAddress1 {00:00:00:00:00:00} \
461 -destinationAddress2Mask {00:00:00:00:00:00} \
465 -pattern1OffsetType fromStartOfFrame
466 ixNet setMultiAttrs $sg_vport/protocols/arp \
468 ixNet setMultiAttrs $sg_vport/protocols/bfd \
471 -packetsPerInterval 0
472 ixNet setMultiAttrs $sg_vport/protocols/bgp \
473 -autoFillUpDutIp False \
474 -disableReceivedUpdateValidation False \
475 -enableAdVplsPrefixLengthInBits False \
476 -enableExternalActiveConnect True \
477 -enableInternalActiveConnect True \
478 -enableVpnLabelExchangeOverLsp True \
481 -externalRetryDelay 120 \
483 -internalRetryDelay 120 \
485 -triggerVplsPwInitiation False
486 ixNet setMultiAttrs $sg_vport/protocols/cfm \
487 -enableOptionalLmFunctionality False \
488 -enableOptionalTlvValidation True \
492 -suppressErrorsOnAis True
493 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
495 ixNet setMultiAttrs $sg_vport/protocols/elmi \
497 ixNet setMultiAttrs $sg_vport/protocols/igmp \
502 -sendLeaveOnStop True \
503 -statsEnabled False \
505 ixNet setMultiAttrs $sg_vport/protocols/isis \
506 -allL1RbridgesMac "01:80:c2:00:00:40" \
507 -emulationType isisL3Routing \
509 -helloMulticastMac "01:80:c2:00:00:41" \
510 -lspMgroupPdusPerInterval 0 \
512 -rateControlInterval 0 \
513 -sendP2PHellosToUnicastMac True \
514 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
515 -spbHelloMulticastMac "09:00:2b:00:00:05" \
517 ixNet setMultiAttrs $sg_vport/protocols/lacp \
518 -enablePreservePartnerInfo False \
520 ixNet setMultiAttrs $sg_vport/protocols/ldp \
521 -enableDiscardSelfAdvFecs False \
522 -enableHelloJitter True \
523 -enableVpnLabelExchangeOverLsp True \
527 -keepAliveHoldTime 30 \
528 -keepAliveInterval 10 \
529 -p2mpCapabilityParam 1288 \
531 -targetedHelloInterval 15 \
532 -targetedHoldTime 45 \
533 -useTransportLabelsForMplsOam False
534 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
536 ixNet setMultiAttrs $sg_vport/protocols/lisp \
537 -burstIntervalInMs 0 \
539 -ipv4MapRegisterPacketsPerBurst 0 \
540 -ipv4MapRequestPacketsPerBurst 0 \
541 -ipv4SmrPacketsPerBurst 0 \
542 -ipv6MapRegisterPacketsPerBurst 0 \
543 -ipv6MapRequestPacketsPerBurst 0 \
544 -ipv6SmrPacketsPerBurst 0
545 ixNet setMultiAttrs $sg_vport/protocols/mld \
546 -enableDoneOnStop True \
548 -mldv2Report type143 \
553 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
555 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
556 -apsChannelType {00 02 } \
557 -bfdCcChannelType {00 07 } \
558 -delayManagementChannelType {00 05 } \
559 -enableHighPerformanceMode True \
561 -faultManagementChannelType {00 58 } \
562 -lossMeasurementChannelType {00 04 } \
563 -onDemandCvChannelType {00 09 } \
564 -pwStatusChannelType {00 0B } \
565 -y1731ChannelType {7F FA }
566 ixNet setMultiAttrs $sg_vport/protocols/ospf \
567 -enableDrOrBdr False \
569 -floodLinkStateUpdatesPerInterval 0 \
570 -rateControlInterval 0
571 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
573 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
574 -bsmFramePerInterval 0 \
575 -crpFramePerInterval 0 \
576 -dataMdtFramePerInterval 0 \
577 -denyGrePimIpPrefix {0.0.0.0/32} \
578 -enableDiscardJoinPruneProcessing False \
579 -enableRateControl False \
581 -helloMsgsPerInterval 0 \
583 -joinPruneMessagesPerInterval 0 \
584 -registerMessagesPerInterval 0 \
585 -registerStopMessagesPerInterval 0
586 ixNet setMultiAttrs $sg_vport/protocols/ping \
588 ixNet setMultiAttrs $sg_vport/protocols/rip \
590 ixNet setMultiAttrs $sg_vport/protocols/ripng \
592 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
593 -enableControlLspInitiationRate False \
594 -enableShowTimeValue False \
595 -enableVpnLabelExchangeOverLsp True \
597 -maxLspInitiationsPerSec 400 \
598 -useTransportLabelsForMplsOam False
599 ixNet setMultiAttrs $sg_vport/protocols/stp \
601 ixNet setMultiAttrs $sg_vport/rateControlParameters \
602 -maxRequestsPerBurst 1 \
603 -maxRequestsPerSec 250 \
604 -minRetryInterval 10 \
606 -sendInBursts False \
607 -sendRequestsAsFastAsPossible False
608 ixNet setMultiAttrs $sg_vport/capture \
609 -controlCaptureTrigger {} \
610 -controlCaptureFilter {} \
611 -hardwareEnabled False \
612 -softwareEnabled False \
613 -displayFiltersDataCapture {} \
614 -displayFiltersControlCapture {} \
615 -controlBufferSize 30 \
616 -controlBufferBehaviour bufferLiveNonCircular
617 ixNet setMultiAttrs $sg_vport/protocolStack/options \
618 -routerSolicitationDelay 1 \
619 -routerSolicitationInterval 4 \
620 -routerSolicitations 3 \
624 -ipv4RetransTime 3000 \
627 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
628 set ixNetSG_ref(2) $sg_vport
629 set ixNetSG_Stack(1) $sg_vport
632 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:1
634 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
635 ixNet setMultiAttrs $sg_uds \
636 -destinationAddressSelector anyAddr \
637 -customFrameSizeTo 0 \
638 -customFrameSizeFrom 0 \
640 -patternSelector anyPattern \
641 -sourceAddressSelector anyAddr \
645 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
648 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:2
650 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
651 ixNet setMultiAttrs $sg_uds \
652 -destinationAddressSelector anyAddr \
653 -customFrameSizeTo 0 \
654 -customFrameSizeFrom 0 \
656 -patternSelector anyPattern \
657 -sourceAddressSelector anyAddr \
661 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
664 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:3
666 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
667 ixNet setMultiAttrs $sg_uds \
668 -destinationAddressSelector anyAddr \
669 -customFrameSizeTo 0 \
670 -customFrameSizeFrom 0 \
672 -patternSelector anyPattern \
673 -sourceAddressSelector anyAddr \
677 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
680 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:4
682 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
683 ixNet setMultiAttrs $sg_uds \
684 -destinationAddressSelector anyAddr \
685 -customFrameSizeTo 0 \
686 -customFrameSizeFrom 0 \
688 -patternSelector anyPattern \
689 -sourceAddressSelector anyAddr \
693 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
696 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:5
698 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
699 ixNet setMultiAttrs $sg_uds \
700 -destinationAddressSelector anyAddr \
701 -customFrameSizeTo 0 \
702 -customFrameSizeFrom 0 \
704 -patternSelector anyPattern \
705 -sourceAddressSelector anyAddr \
709 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
712 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:6
714 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
715 ixNet setMultiAttrs $sg_uds \
716 -destinationAddressSelector anyAddr \
717 -customFrameSizeTo 0 \
718 -customFrameSizeFrom 0 \
720 -patternSelector anyPattern \
721 -sourceAddressSelector anyAddr \
725 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
728 # configuring the object that corresponds to /vport:1/protocols/static/lan:1
730 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
731 ixNet setMultiAttrs $sg_lan \
732 -atmEncapsulation ::ixNet::OBJ-null \
735 -enableIncrementMac False \
736 -enableIncrementVlan False \
737 -enableSiteId False \
740 -frEncapsulation ::ixNet::OBJ-null \
741 -incrementPerVcVlanMode noIncrement \
742 -incrementVlanMode noIncrement \
744 -macRangeMode normal \
747 -skipVlanIdZero True \
749 -trafficGroupId ::ixNet::OBJ-null \
754 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
757 # configuring the object that corresponds to /vport:2
759 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
760 ixNet setMultiAttrs $sg_vport \
761 -transmitIgnoreLinkStatus False \
762 -txGapControlMode averageMode \
764 -connectedTo ::ixNet::OBJ-null \
765 -txMode interleaved \
767 -rxMode captureAndMeasure \
768 -name {10GE LAN - 002}
769 ixNet setMultiAttrs $sg_vport/l1Config \
770 -currentType tenGigLan
771 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
773 -flowControlDirectedAddress "01 80 C2 00 00 01" \
775 -autoInstrumentation endOfFrame \
776 -transmitClocking internal \
777 -txIgnoreRxLinkFaults False \
779 -enableLASIMonitoring False \
780 -enabledFlowControl False
781 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
785 -vendorSpecificInformation {00 00 00 00} \
786 -macAddress "00:00:00:00:00:00" \
790 -enableTlvOption False \
792 -organizationUniqueIdentifier {000000}
793 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
794 -supportDataCenterMode False \
795 -priorityGroupSize priorityGroupSize-8 \
797 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
798 -flowControlType ieee802.1Qbb \
799 -enablePFCPauseDelay False
800 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
802 -flowControlDirectedAddress "01 80 C2 00 00 01" \
804 -autoInstrumentation endOfFrame \
805 -transmitClocking internal \
806 -txIgnoreRxLinkFaults False \
808 -enableLASIMonitoring False \
809 -enabledFlowControl False
810 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
811 -supportDataCenterMode False \
812 -priorityGroupSize priorityGroupSize-8 \
814 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
815 -flowControlType ieee802.1Qbb \
816 -enablePFCPauseDelay False
817 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
821 -vendorSpecificInformation {00 00 00 00} \
822 -macAddress "00:00:00:00:00:00" \
826 -enableTlvOption False \
828 -organizationUniqueIdentifier {000000}
829 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
830 -sourceAddress1Mask {00:00:00:00:00:00} \
831 -destinationAddress1Mask {00:00:00:00:00:00} \
832 -sourceAddress2 {00:00:00:00:00:00} \
833 -pattern2OffsetType fromStartOfFrame \
836 -sourceAddress2Mask {00:00:00:00:00:00} \
837 -destinationAddress2 {00:00:00:00:00:00} \
838 -destinationAddress1 {00:00:00:00:00:00} \
839 -sourceAddress1 {00:00:00:00:00:00} \
841 -destinationAddress2Mask {00:00:00:00:00:00} \
845 -pattern1OffsetType fromStartOfFrame
846 ixNet setMultiAttrs $sg_vport/protocols/arp \
848 ixNet setMultiAttrs $sg_vport/protocols/bfd \
851 -packetsPerInterval 0
852 ixNet setMultiAttrs $sg_vport/protocols/bgp \
853 -autoFillUpDutIp False \
854 -disableReceivedUpdateValidation False \
855 -enableAdVplsPrefixLengthInBits False \
856 -enableExternalActiveConnect True \
857 -enableInternalActiveConnect True \
858 -enableVpnLabelExchangeOverLsp True \
861 -externalRetryDelay 120 \
863 -internalRetryDelay 120 \
865 -triggerVplsPwInitiation False
866 ixNet setMultiAttrs $sg_vport/protocols/cfm \
867 -enableOptionalLmFunctionality False \
868 -enableOptionalTlvValidation True \
872 -suppressErrorsOnAis True
873 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
875 ixNet setMultiAttrs $sg_vport/protocols/elmi \
877 ixNet setMultiAttrs $sg_vport/protocols/igmp \
882 -sendLeaveOnStop True \
883 -statsEnabled False \
885 ixNet setMultiAttrs $sg_vport/protocols/isis \
886 -allL1RbridgesMac "01:80:c2:00:00:40" \
887 -emulationType isisL3Routing \
889 -helloMulticastMac "01:80:c2:00:00:41" \
890 -lspMgroupPdusPerInterval 0 \
892 -rateControlInterval 0 \
893 -sendP2PHellosToUnicastMac True \
894 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
895 -spbHelloMulticastMac "09:00:2b:00:00:05" \
897 ixNet setMultiAttrs $sg_vport/protocols/lacp \
898 -enablePreservePartnerInfo False \
900 ixNet setMultiAttrs $sg_vport/protocols/ldp \
901 -enableDiscardSelfAdvFecs False \
902 -enableHelloJitter True \
903 -enableVpnLabelExchangeOverLsp True \
907 -keepAliveHoldTime 30 \
908 -keepAliveInterval 10 \
909 -p2mpCapabilityParam 1288 \
911 -targetedHelloInterval 15 \
912 -targetedHoldTime 45 \
913 -useTransportLabelsForMplsOam False
914 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
916 ixNet setMultiAttrs $sg_vport/protocols/lisp \
917 -burstIntervalInMs 0 \
919 -ipv4MapRegisterPacketsPerBurst 0 \
920 -ipv4MapRequestPacketsPerBurst 0 \
921 -ipv4SmrPacketsPerBurst 0 \
922 -ipv6MapRegisterPacketsPerBurst 0 \
923 -ipv6MapRequestPacketsPerBurst 0 \
924 -ipv6SmrPacketsPerBurst 0
925 ixNet setMultiAttrs $sg_vport/protocols/mld \
926 -enableDoneOnStop True \
928 -mldv2Report type143 \
933 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
935 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
936 -apsChannelType {00 02 } \
937 -bfdCcChannelType {00 07 } \
938 -delayManagementChannelType {00 05 } \
939 -enableHighPerformanceMode True \
941 -faultManagementChannelType {00 58 } \
942 -lossMeasurementChannelType {00 04 } \
943 -onDemandCvChannelType {00 09 } \
944 -pwStatusChannelType {00 0B } \
945 -y1731ChannelType {7F FA }
946 ixNet setMultiAttrs $sg_vport/protocols/ospf \
947 -enableDrOrBdr False \
949 -floodLinkStateUpdatesPerInterval 0 \
950 -rateControlInterval 0
951 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
953 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
954 -bsmFramePerInterval 0 \
955 -crpFramePerInterval 0 \
956 -dataMdtFramePerInterval 0 \
957 -denyGrePimIpPrefix {0.0.0.0/32} \
958 -enableDiscardJoinPruneProcessing False \
959 -enableRateControl False \
961 -helloMsgsPerInterval 0 \
963 -joinPruneMessagesPerInterval 0 \
964 -registerMessagesPerInterval 0 \
965 -registerStopMessagesPerInterval 0
966 ixNet setMultiAttrs $sg_vport/protocols/ping \
968 ixNet setMultiAttrs $sg_vport/protocols/rip \
970 ixNet setMultiAttrs $sg_vport/protocols/ripng \
972 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
973 -enableControlLspInitiationRate False \
974 -enableShowTimeValue False \
975 -enableVpnLabelExchangeOverLsp True \
977 -maxLspInitiationsPerSec 400 \
978 -useTransportLabelsForMplsOam False
979 ixNet setMultiAttrs $sg_vport/protocols/stp \
981 ixNet setMultiAttrs $sg_vport/rateControlParameters \
982 -maxRequestsPerBurst 1 \
983 -maxRequestsPerSec 250 \
984 -minRetryInterval 10 \
986 -sendInBursts False \
987 -sendRequestsAsFastAsPossible False
988 ixNet setMultiAttrs $sg_vport/capture \
989 -controlCaptureTrigger {} \
990 -controlCaptureFilter {} \
991 -hardwareEnabled False \
992 -softwareEnabled False \
993 -displayFiltersDataCapture {} \
994 -displayFiltersControlCapture {} \
995 -controlBufferSize 30 \
996 -controlBufferBehaviour bufferLiveNonCircular
997 ixNet setMultiAttrs $sg_vport/protocolStack/options \
998 -routerSolicitationDelay 1 \
999 -routerSolicitationInterval 4 \
1000 -routerSolicitations 3 \
1004 -ipv4RetransTime 3000 \
1007 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
1008 set ixNetSG_ref(10) $sg_vport
1009 set ixNetSG_Stack(1) $sg_vport
1012 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:1
1014 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
1015 ixNet setMultiAttrs $sg_uds \
1016 -destinationAddressSelector anyAddr \
1017 -customFrameSizeTo 0 \
1018 -customFrameSizeFrom 0 \
1019 -error errAnyFrame \
1020 -patternSelector anyPattern \
1021 -sourceAddressSelector anyAddr \
1025 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1028 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:2
1030 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
1031 ixNet setMultiAttrs $sg_uds \
1032 -destinationAddressSelector anyAddr \
1033 -customFrameSizeTo 0 \
1034 -customFrameSizeFrom 0 \
1035 -error errAnyFrame \
1036 -patternSelector anyPattern \
1037 -sourceAddressSelector anyAddr \
1041 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1044 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:3
1046 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
1047 ixNet setMultiAttrs $sg_uds \
1048 -destinationAddressSelector anyAddr \
1049 -customFrameSizeTo 0 \
1050 -customFrameSizeFrom 0 \
1051 -error errAnyFrame \
1052 -patternSelector anyPattern \
1053 -sourceAddressSelector anyAddr \
1057 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1060 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:4
1062 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
1063 ixNet setMultiAttrs $sg_uds \
1064 -destinationAddressSelector anyAddr \
1065 -customFrameSizeTo 0 \
1066 -customFrameSizeFrom 0 \
1067 -error errAnyFrame \
1068 -patternSelector anyPattern \
1069 -sourceAddressSelector anyAddr \
1073 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1076 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:5
1078 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
1079 ixNet setMultiAttrs $sg_uds \
1080 -destinationAddressSelector anyAddr \
1081 -customFrameSizeTo 0 \
1082 -customFrameSizeFrom 0 \
1083 -error errAnyFrame \
1084 -patternSelector anyPattern \
1085 -sourceAddressSelector anyAddr \
1089 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1092 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:6
1094 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
1095 ixNet setMultiAttrs $sg_uds \
1096 -destinationAddressSelector anyAddr \
1097 -customFrameSizeTo 0 \
1098 -customFrameSizeFrom 0 \
1099 -error errAnyFrame \
1100 -patternSelector anyPattern \
1101 -sourceAddressSelector anyAddr \
1105 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1108 # configuring the object that corresponds to /vport:2/protocols/static/lan:1
1110 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
1111 ixNet setMultiAttrs $sg_lan \
1112 -atmEncapsulation ::ixNet::OBJ-null \
1115 -enableIncrementMac False \
1116 -enableIncrementVlan False \
1117 -enableSiteId False \
1120 -frEncapsulation ::ixNet::OBJ-null \
1121 -incrementPerVcVlanMode noIncrement \
1122 -incrementVlanMode noIncrement \
1124 -macRangeMode normal \
1127 -skipVlanIdZero True \
1129 -trafficGroupId ::ixNet::OBJ-null \
1134 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
1137 ### /availableHardware area
1141 # configuring the object that corresponds to /availableHardware/chassis"
1143 set sg_chassis [ixNet add $ixNetSG_Stack(0)/availableHardware chassis]
1144 ixNet setMultiAttrs $sg_chassis \
1148 -hostname $::chassis
1150 set sg_chassis [lindex [ixNet remapIds $sg_chassis] 0]
1151 set ixNetSG_Stack(1) $sg_chassis
1154 # configuring the object that corresponds to /availableHardware/chassis/card
1156 set sg_card $ixNetSG_Stack(1)/card:$::card
1157 ixNet setMultiAttrs $sg_card \
1158 -aggregationMode normal
1160 set sg_card [lindex [ixNet remapIds $sg_card] 0]
1161 set ixNetSG_ref(19) $sg_card
1162 set ixNetSG_Stack(2) $sg_card
1165 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:1
1167 set sg_aggregation $ixNetSG_Stack(2)/aggregation:1
1168 ixNet setMultiAttrs $sg_aggregation \
1171 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1174 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:2
1176 set sg_aggregation $ixNetSG_Stack(2)/aggregation:2
1177 ixNet setMultiAttrs $sg_aggregation \
1180 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1183 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:3
1185 set sg_aggregation $ixNetSG_Stack(2)/aggregation:3
1186 ixNet setMultiAttrs $sg_aggregation \
1189 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1192 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:4
1194 set sg_aggregation $ixNetSG_Stack(2)/aggregation:4
1195 ixNet setMultiAttrs $sg_aggregation \
1198 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1199 ixNet setMultiAttrs $ixNetSG_ref(2) \
1200 -connectedTo $ixNetSG_ref(19)/port:$::port1
1202 ixNet setMultiAttrs $ixNetSG_ref(10) \
1203 -connectedTo $ixNetSG_ref(19)/port:$::port2
1208 ### /impairment area
1212 # configuring the object that corresponds to /impairment/profile:3
1214 set sg_profile [ixNet add $ixNetSG_Stack(0)/impairment profile]
1215 ixNet setMultiAttrs $sg_profile \
1217 -name {Impairment Profile 1} \
1221 ixNet setMultiAttrs $sg_profile/checksums \
1222 -dropRxL2FcsErrors False \
1223 -correctTxL2FcsErrors False \
1224 -alwaysCorrectWhenModifying True \
1225 -correctTxChecksumOverIp False \
1226 -correctTxIpv4Checksum False
1227 ixNet setMultiAttrs $sg_profile/rxRateLimit \
1230 -units {kKilobitsPerSecond}
1231 ixNet setMultiAttrs $sg_profile/drop \
1235 ixNet setMultiAttrs $sg_profile/reorder \
1240 ixNet setMultiAttrs $sg_profile/duplicate \
1245 ixNet setMultiAttrs $sg_profile/bitError \
1250 ixNet setMultiAttrs $sg_profile/delay \
1253 -units {kMicroseconds}
1254 ixNet setMultiAttrs $sg_profile/delayVariation \
1257 -units {kMicroseconds} \
1258 -distribution {kUniform} \
1259 -exponentialMeanArrival 0 \
1260 -gaussianStandardDeviation 0
1261 ixNet setMultiAttrs $sg_profile/customDelayVariation \
1265 set sg_profile [lindex [ixNet remapIds $sg_profile] 0]
1266 set ixNetSG_Stack(1) $sg_profile
1269 # configuring the object that corresponds to /impairment/profile:3/fixedClassifier:1
1271 set sg_fixedClassifier [ixNet add $ixNetSG_Stack(1) fixedClassifier]
1273 set sg_fixedClassifier [lindex [ixNet remapIds $sg_fixedClassifier] 0]
1280 # configuring the object that corresponds to /traffic/trafficItem:1
1282 set sg_trafficItem [ixNet add $ixNetSG_Stack(0)/traffic trafficItem]
1283 ixNet setMultiAttrs $sg_trafficItem \
1284 -transportRsvpTePreference one \
1285 -trafficItemType l2L3 \
1286 -biDirectional $::biDirect \
1287 -mergeDestinations True \
1288 -hostsPerNetwork 1 \
1289 -transmitMode interleaved \
1291 -trafficType {ethernetVlan} \
1292 -interAsLdpPreference two \
1293 -allowSelfDestined False \
1295 -maxNumberOfVpnLabelStack 2 \
1296 -interAsBgpPreference one \
1298 -transportLdpPreference two \
1299 -egressEnabled False \
1300 -enableDynamicMplsLabelValues False \
1301 -routeMesh oneToOne \
1302 -name {Traffic Item 1} \
1303 -srcDestMesh oneToOne
1305 set sg_trafficItem [lindex [ixNet remapIds $sg_trafficItem] 0]
1306 set ixNetSG_ref(26) $sg_trafficItem
1307 set ixNetSG_Stack(1) $sg_trafficItem
1310 # configuring the object that corresponds to /traffic/trafficItem:1/endpointSet:1
1312 set sg_endpointSet [ixNet add $ixNetSG_Stack(1) endpointSet]
1313 ixNet setMultiAttrs $sg_endpointSet \
1314 -destinations [list $ixNetSG_ref(10)/protocols] \
1315 -destinationFilter {} \
1318 -sources [list $ixNetSG_ref(2)/protocols] \
1319 -name {EndpointSet-1}
1321 set sg_endpointSet [lindex [ixNet remapIds $sg_endpointSet] 0]
1324 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1
1326 set sg_configElement $ixNetSG_Stack(1)/configElement:1
1327 ixNet setMultiAttrs $sg_configElement \
1329 -preambleCustomSize 8 \
1330 -enableDisparityError False \
1331 -preambleFrameSizeMode auto \
1332 -destinationMacMode manual
1333 ixNet setMultiAttrs $sg_configElement/frameSize \
1341 -presetDistribution cisco \
1344 ixNet setMultiAttrs $sg_configElement/frameRate \
1345 -bitRateUnitsType bitsPerSec \
1347 -enforceMinimumInterPacketGap 0 \
1348 -type percentLineRate \
1349 -interPacketGapUnitsType nanoseconds
1350 ixNet setMultiAttrs $sg_configElement/framePayload \
1351 -type incrementByte \
1352 -customRepeat True \
1354 ixNet setMultiAttrs $sg_configElement/frameRateDistribution \
1355 -streamDistribution applyRateToAll \
1356 -portDistribution applyRateToAll
1357 ixNet setMultiAttrs $sg_configElement/transmissionControl \
1362 -interBurstGapUnits nanoseconds \
1366 -enableInterStreamGap False \
1367 -startDelayUnits bytes \
1369 -burstPacketCount 1 \
1370 -enableInterBurstGap False \
1373 set sg_configElement [lindex [ixNet remapIds $sg_configElement] 0]
1374 set ixNetSG_Stack(2) $sg_configElement
1377 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
1379 set sg_stack $ixNetSG_Stack(2)/stack:"ethernet-1"
1381 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1382 set ixNetSG_Stack(3) $sg_stack
1385 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.destinationAddress-1"
1387 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.destinationAddress-1"
1388 ixNet setMultiAttrs $sg_field \
1389 -singleValue {00:00:00:00:00:00} \
1391 -optionalEnabled True \
1393 -valueList {{00:00:00:00:00:00}} \
1394 -stepValue {00:00:00:00:00:00} \
1395 -fixedBits {00:00:00:00:00:00} \
1396 -fieldValue {00:00:00:00:00:00} \
1398 -randomMask {00:00:00:00:00:00} \
1399 -trackingEnabled False \
1400 -valueType singleValue \
1401 -activeFieldChoice False \
1402 -startValue {00:00:00:00:00:00} \
1405 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1408 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.sourceAddress-2"
1410 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.sourceAddress-2"
1411 ixNet setMultiAttrs $sg_field \
1412 -singleValue {00:00:00:00:00:00} \
1414 -optionalEnabled True \
1416 -valueList {{00:00:00:00:00:00}} \
1417 -stepValue {00:00:00:00:00:00} \
1418 -fixedBits {00:00:00:00:00:00} \
1419 -fieldValue {00:00:00:00:00:00} \
1421 -randomMask {00:00:00:00:00:00} \
1422 -trackingEnabled False \
1423 -valueType singleValue \
1424 -activeFieldChoice False \
1425 -startValue {00:00:00:00:00:00} \
1428 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1431 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.etherType-3"
1433 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.etherType-3"
1434 ixNet setMultiAttrs $sg_field \
1435 -singleValue {800} \
1437 -optionalEnabled True \
1439 -valueList {{0xFFFF}} \
1440 -stepValue {0xFFFF} \
1441 -fixedBits {0xFFFF} \
1444 -randomMask {0xFFFF} \
1445 -trackingEnabled False \
1446 -valueType singleValue \
1447 -activeFieldChoice False \
1448 -startValue {0xFFFF} \
1451 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1454 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
1456 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-2"
1458 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1459 set ixNetSG_Stack(3) $sg_stack
1462 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.version-1"
1464 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
1465 ixNet setMultiAttrs $sg_field \
1468 -optionalEnabled True \
1476 -trackingEnabled False \
1477 -valueType singleValue \
1478 -activeFieldChoice False \
1483 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.protocol-25"
1485 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
1486 ixNet setMultiAttrs $sg_field \
1487 -singleValue {$proto_value} \
1489 -optionalEnabled True \
1494 -fieldValue {$proto} \
1497 -trackingEnabled False \
1498 -valueType singleValue \
1499 -activeFieldChoice False \
1504 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.checksum-26"
1506 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
1507 ixNet setMultiAttrs $sg_field \
1510 -optionalEnabled True \
1518 -trackingEnabled False \
1519 -valueType singleValue \
1520 -activeFieldChoice False \
1525 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.srcIp-27"
1527 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
1528 ixNet setMultiAttrs $sg_field \
1529 -singleValue $srcIp \
1531 -optionalEnabled True \
1533 -valueList {{0.0.0.0}} \
1534 -stepValue {0.0.0.0} \
1535 -fixedBits {0.0.0.0} \
1536 -fieldValue $srcIp \
1538 -randomMask {0.0.0.0} \
1539 -trackingEnabled False \
1540 -valueType singleValue \
1541 -activeFieldChoice False \
1542 -startValue {0.0.0.0} \
1546 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.dstIp-28"
1548 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
1549 ixNet setMultiAttrs $sg_field \
1550 -singleValue $dstIp \
1552 -optionalEnabled True \
1554 -valueList {{0.0.0.0}} \
1555 -stepValue {0.0.0.0} \
1556 -fixedBits {0.0.0.0} \
1557 -fieldValue $dstIp \
1559 -randomMask {0.0.0.0} \
1560 -trackingEnabled False \
1561 -valueType singleValue \
1562 -activeFieldChoice False \
1563 -startValue {0.0.0.0} \
1566 #set sg_field [lindex [ixNet remapIds $sg_field] 0]
1569 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.options.pad-58"
1571 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
1572 ixNet setMultiAttrs $sg_field \
1575 -optionalEnabled False \
1583 -trackingEnabled False \
1584 -valueType singleValue \
1585 -activeFieldChoice False \
1589 # Suffix for stack names
1590 # This variable should be incremented after setting sg_stack like:
1591 # set sg_stack $ixNetSG_Stack(2)/stack:"protocolnamehere-$stack_number"
1596 if { [string compare $proto "udp"] == 0 } {
1597 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"
1599 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
1601 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1602 set ixNetSG_Stack(3) $sg_stack
1606 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.srcPort-1"
1608 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
1609 ixNet setMultiAttrs $sg_field \
1610 -singleValue $srcPort \
1612 -optionalEnabled True \
1617 -fieldValue {$srcPort} \
1620 -trackingEnabled False \
1621 -valueType singleValue \
1622 -activeFieldChoice False \
1627 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.dstPort-2"
1629 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
1630 ixNet setMultiAttrs $sg_field \
1631 -singleValue $dstPort \
1633 -optionalEnabled True \
1638 -fieldValue $dstPort \
1641 -trackingEnabled False \
1642 -valueType $multipleStreams \
1643 -activeFieldChoice False \
1645 -countValue $numflows
1648 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.length-3"
1650 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
1651 ixNet setMultiAttrs $sg_field \
1654 -optionalEnabled True \
1662 -trackingEnabled False \
1663 -valueType singleValue \
1664 -activeFieldChoice False \
1669 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.checksum-4"
1671 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
1672 ixNet setMultiAttrs $sg_field \
1675 -optionalEnabled True \
1683 -trackingEnabled False \
1684 -valueType singleValue \
1685 -activeFieldChoice False \
1688 } elseif { [string compare $proto "tcp"] == 0 } {
1690 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
1692 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1693 set ixNetSG_Stack(3) $sg_stack
1696 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
1697 ixNet setMultiAttrs $sg_field \
1698 -singleValue $srcPort \
1700 -optionalEnabled true \
1702 -valueList [list $srcPort] \
1705 -fieldValue $srcPort \
1708 -trackingEnabled false \
1709 -valueType singleValue \
1710 -activeFieldChoice false \
1714 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
1715 ixNet setMultiAttrs $sg_field \
1716 -singleValue $dstPort \
1718 -optionalEnabled true \
1720 -valueList [list $dstPort] \
1723 -fieldValue $dstPort \
1726 -trackingEnabled false \
1727 -valueType singleValue \
1728 -activeFieldChoice false \
1732 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
1733 ixNet setMultiAttrs $sg_field \
1736 -optionalEnabled true \
1738 -valueList [list 0x00000000] \
1739 -stepValue 0x00000000 \
1740 -fixedBits 0x00000000 \
1743 -randomMask 0x00000000 \
1744 -trackingEnabled false \
1745 -valueType singleValue \
1746 -activeFieldChoice false \
1747 -startValue 0x00000000 \
1750 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
1751 ixNet setMultiAttrs $sg_field \
1754 -optionalEnabled true \
1756 -valueList [list 0x00000000] \
1757 -stepValue 0x00000000 \
1758 -fixedBits 0x00000000 \
1761 -randomMask 0x00000000 \
1762 -trackingEnabled false \
1763 -valueType singleValue \
1764 -activeFieldChoice false \
1765 -startValue 0x00000000 \
1768 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
1769 ixNet setMultiAttrs $sg_field \
1772 -optionalEnabled true \
1774 -valueList [list 5] \
1780 -trackingEnabled false \
1781 -valueType singleValue \
1782 -activeFieldChoice false \
1786 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
1787 ixNet setMultiAttrs $sg_field \
1790 -optionalEnabled true \
1792 -valueList [list 0] \
1798 -trackingEnabled false \
1799 -valueType singleValue \
1800 -activeFieldChoice false \
1804 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
1805 ixNet setMultiAttrs $sg_field \
1808 -optionalEnabled true \
1810 -valueList [list 0] \
1816 -trackingEnabled false \
1817 -valueType singleValue \
1818 -activeFieldChoice false \
1822 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
1823 ixNet setMultiAttrs $sg_field \
1826 -optionalEnabled true \
1828 -valueList [list 0] \
1834 -trackingEnabled false \
1835 -valueType singleValue \
1836 -activeFieldChoice false \
1840 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
1841 ixNet setMultiAttrs $sg_field \
1844 -optionalEnabled true \
1846 -valueList [list 0] \
1852 -trackingEnabled false \
1853 -valueType singleValue \
1854 -activeFieldChoice false \
1858 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
1859 ixNet setMultiAttrs $sg_field \
1862 -optionalEnabled true \
1864 -valueList [list 0] \
1870 -trackingEnabled false \
1871 -valueType singleValue \
1872 -activeFieldChoice false \
1876 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
1877 ixNet setMultiAttrs $sg_field \
1880 -optionalEnabled true \
1882 -valueList [list 0] \
1888 -trackingEnabled false \
1889 -valueType singleValue \
1890 -activeFieldChoice false \
1894 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
1895 ixNet setMultiAttrs $sg_field \
1898 -optionalEnabled true \
1900 -valueList [list 0] \
1906 -trackingEnabled false \
1907 -valueType singleValue \
1908 -activeFieldChoice false \
1912 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
1913 ixNet setMultiAttrs $sg_field \
1916 -optionalEnabled true \
1918 -valueList [list 0] \
1924 -trackingEnabled false \
1925 -valueType singleValue \
1926 -activeFieldChoice false \
1930 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
1931 ixNet setMultiAttrs $sg_field \
1934 -optionalEnabled true \
1936 -valueList [list 0] \
1942 -trackingEnabled false \
1943 -valueType singleValue \
1944 -activeFieldChoice false \
1948 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
1949 ixNet setMultiAttrs $sg_field \
1952 -optionalEnabled true \
1954 -valueList [list 0] \
1960 -trackingEnabled false \
1961 -valueType singleValue \
1962 -activeFieldChoice false \
1966 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
1967 ixNet setMultiAttrs $sg_field \
1970 -optionalEnabled true \
1972 -valueList [list 0x0000] \
1977 -randomMask 0x0000 \
1978 -trackingEnabled false \
1979 -valueType singleValue \
1980 -activeFieldChoice false \
1981 -startValue 0x0000 \
1984 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
1985 ixNet setMultiAttrs $sg_field \
1988 -optionalEnabled true \
1990 -valueList [list 0x0000] \
1995 -randomMask 0x0000 \
1996 -trackingEnabled false \
1997 -valueType singleValue \
1998 -activeFieldChoice false \
1999 -startValue 0x0000 \
2002 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
2003 ixNet setMultiAttrs $sg_field \
2006 -optionalEnabled true \
2008 -valueList [list 0x0000] \
2013 -randomMask 0x0000 \
2014 -trackingEnabled false \
2015 -valueType singleValue \
2016 -activeFieldChoice false \
2017 -startValue 0x0000 \
2020 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2022 } elseif { [string compare $proto "gre"] == 0 } {
2024 set gre_enabled True
2027 if { $vxlan_enabled || $gre_enabled } {
2028 # VXLAN and GRE have similar inner frame data so we set unique fields
2029 # for each protocol then set the common fields.
2033 if { $vxlan_enabled } {
2036 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"
2038 set sg_stack $ixNetSG_Stack(2)/stack:"vxlan-$stack_number"
2040 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2041 set ixNetSG_Stack(3) $sg_stack
2045 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.flags-1
2047 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.flags-1"
2048 ixNet setMultiAttrs $sg_field \
2051 -optionalEnabled true \
2052 -valueList [list 0x08] \
2060 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved-2
2062 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved-2"
2063 ixNet setMultiAttrs $sg_field \
2066 -optionalEnabled true \
2067 -valueList [list 0] \
2075 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.vni-3"
2077 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.vni-3"
2078 ixNet setMultiAttrs $sg_field \
2081 -optionalEnabled true \
2082 -valueList [list 1234] \
2089 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved8-4"
2091 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved8-4"
2092 ixNet setMultiAttrs $sg_field \
2095 -optionalEnabled true \
2096 -valueList [list 0] \
2103 } elseif { $gre_enabled } {
2104 puts "Setting GRE attributes"
2107 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"gre-3"
2109 set sg_stack $ixNetSG_Stack(2)/stack:"gre-$stack_number"
2111 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2112 set ixNetSG_Stack(3) $sg_stack
2115 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumPresent-1"
2116 ixNet setMultiAttrs $sg_field \
2119 -optionalEnabled true \
2120 -valueList [list 0] \
2123 -fieldValue "0:No\ Checksum" \
2127 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved1-2"
2128 ixNet setMultiAttrs $sg_field \
2131 -optionalEnabled true \
2132 -valueList [list 0] \
2139 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyPresent-3"
2140 ixNet setMultiAttrs $sg_field \
2143 -optionalEnabled true \
2144 -valueList [list 0] \
2147 -fieldValue "0:No\ Key\ field" \
2151 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequencePresent-4"
2152 ixNet setMultiAttrs $sg_field \
2155 -optionalEnabled true \
2156 -valueList [list 0] \
2159 -fieldValue "0:No\ sequence\ number\ field" \
2163 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved2-5"
2164 ixNet setMultiAttrs $sg_field \
2167 -optionalEnabled true \
2168 -valueList [list 0] \
2175 set sg_field $ixNetSG_Stack(3)/field:"gre.header.version-6"
2176 ixNet setMultiAttrs $sg_field \
2179 -optionalEnabled true \
2180 -valueList [list 0] \
2187 set sg_field $ixNetSG_Stack(3)/field:"gre.header.protocol-7"
2188 ixNet setMultiAttrs $sg_field \
2191 -optionalEnabled true \
2192 -valueList [list 0x0] \
2200 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.checksum-8"
2201 ixNet setMultiAttrs $sg_field \
2204 -optionalEnabled true \
2205 -valueList [list 0] \
2213 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.reserved-9"
2214 ixNet setMultiAttrs $sg_field \
2217 -optionalEnabled true \
2218 -valueList [list 0] \
2225 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.noChecksum-10"
2226 ixNet setMultiAttrs $sg_field \
2229 -optionalEnabled true \
2230 -valueList [list 0] \
2235 -activeFieldChoice true \
2238 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.key-11"
2239 ixNet setMultiAttrs $sg_field \
2242 -optionalEnabled true \
2243 -valueList [list 0] \
2250 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.noKey-12"
2251 ixNet setMultiAttrs $sg_field \
2254 -optionalEnabled true \
2255 -valueList [list 0] \
2260 -activeFieldChoice true \
2263 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.sequenceNum-13"
2264 ixNet setMultiAttrs $sg_field \
2267 -optionalEnabled true \
2268 -valueList [list 0] \
2275 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.noSequenceNum-14"
2276 ixNet setMultiAttrs $sg_field \
2279 -optionalEnabled true \
2280 -valueList [list 0] \
2285 -activeFieldChoice true \
2289 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2293 # Common fields for VXLAN and GRE
2294 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2295 set sg_stack $ixNetSG_Stack(2)/stack:"ethernetNoFCS-$stack_number"
2297 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2298 set ixNetSG_Stack(3) $sg_stack
2301 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.destinationAddress-1"
2302 ixNet setMultiAttrs $sg_field \
2303 -singleValue $inner_dstmac \
2305 -optionalEnabled true \
2306 -valueList [list 00:00:00:00:00:00] \
2307 -stepValue 00:00:00:00:00:00 \
2308 -fixedBits 00:00:00:00:00:00 \
2309 -fieldValue $inner_dstmac \
2310 -randomMask 00:00:00:00:00:00 \
2311 -startValue 00:00:00:00:00:00
2313 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.sourceAddress-2"
2314 ixNet setMultiAttrs $sg_field \
2315 -singleValue $inner_srcmac \
2317 -optionalEnabled true \
2318 -valueList [list 00:00:00:00:00:00] \
2319 -stepValue 00:00:00:00:00:00 \
2320 -fixedBits 00:00:00:00:00:00 \
2321 -fieldValue $inner_srcmac \
2322 -randomMask 00:00:00:00:00:00 \
2323 -startValue 00:00:00:00:00:00
2325 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.etherType-3"
2326 ixNet setMultiAttrs $sg_field \
2329 -optionalEnabled true \
2330 -valueList [list 0xFFFF] \
2335 -randomMask 0xFFFF \
2338 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-$stack_number"
2340 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2341 set ixNetSG_Stack(3) $sg_stack
2345 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-6"/field:"ipv4.header.version-1"/
2346 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
2347 ixNet setMultiAttrs $sg_field \
2350 -optionalEnabled true \
2351 -valueList [list 4] \
2358 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.headerLength-2"
2359 ixNet setMultiAttrs $sg_field \
2362 -optionalEnabled true \
2363 -valueList [list 0] \
2371 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.raw-3"
2372 ixNet setMultiAttrs $sg_field \
2375 -optionalEnabled true \
2376 -valueList [list 0] \
2383 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.precedence-4"
2384 ixNet setMultiAttrs $sg_field \
2387 -optionalEnabled true \
2388 -valueList [list 0] \
2391 -fieldValue "000\ Routine" \
2393 -activeFieldChoice true \
2396 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.delay-5"
2397 ixNet setMultiAttrs $sg_field \
2400 -optionalEnabled true \
2401 -valueList [list 0] \
2404 -fieldValue Normal \
2406 -activeFieldChoice true \
2409 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.throughput-6"
2410 ixNet setMultiAttrs $sg_field \
2413 -optionalEnabled true \
2414 -valueList [list 0] \
2417 -fieldValue Normal \
2419 -activeFieldChoice true \
2422 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.reliability-7"
2423 ixNet setMultiAttrs $sg_field \
2426 -optionalEnabled true \
2427 -valueList [list 0] \
2430 -fieldValue Normal \
2432 -activeFieldChoice true \
2435 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.monetary-8"
2436 ixNet setMultiAttrs $sg_field \
2439 -optionalEnabled true \
2440 -valueList [list 0] \
2443 -fieldValue Normal \
2445 -activeFieldChoice true \
2448 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.unused-9"
2449 ixNet setMultiAttrs $sg_field \
2452 -optionalEnabled true \
2453 -valueList [list 0] \
2458 -activeFieldChoice true \
2461 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.totalLength-18"
2462 ixNet setMultiAttrs $sg_field \
2465 -optionalEnabled true \
2466 -valueList [list 20] \
2474 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.identification-19"
2475 ixNet setMultiAttrs $sg_field \
2478 -optionalEnabled true \
2479 -valueList [list 0] \
2486 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.reserved-20"
2487 ixNet setMultiAttrs $sg_field \
2490 -optionalEnabled true \
2491 -valueList [list 0] \
2498 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.fragment-21"
2499 ixNet setMultiAttrs $sg_field \
2502 -optionalEnabled true \
2503 -valueList [list 0] \
2506 -fieldValue "May\ fragment" \
2510 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.lastFragment-22"
2511 ixNet setMultiAttrs $sg_field \
2514 -optionalEnabled true \
2515 -valueList [list 0] \
2518 -fieldValue "Last\ fragment" \
2522 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.fragmentOffset-23"
2523 ixNet setMultiAttrs $sg_field \
2526 -optionalEnabled true \
2527 -valueList [list 0] \
2534 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.ttl-24"
2535 ixNet setMultiAttrs $sg_field \
2538 -optionalEnabled true \
2539 -valueList [list 64] \
2546 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
2547 ixNet setMultiAttrs $sg_field \
2550 -optionalEnabled true \
2551 -valueList [list 61] \
2554 -fieldValue $inner_proto \
2559 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
2560 ixNet setMultiAttrs $sg_field \
2561 -singleValue 63355 \
2563 -optionalEnabled true \
2564 -valueList [list 0] \
2572 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
2573 ixNet setMultiAttrs $sg_field \
2574 -singleValue $inner_srcip \
2576 -optionalEnabled true \
2577 -valueList [list 0.0.0.0] \
2578 -stepValue 0.0.0.0 \
2579 -fixedBits 0.0.0.0 \
2580 -fieldValue $inner_srcip \
2581 -randomMask 0.0.0.0 \
2584 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
2585 ixNet setMultiAttrs $sg_field \
2586 -singleValue $inner_dstip \
2588 -optionalEnabled true \
2589 -valueList [list 0.0.0.0] \
2590 -stepValue 0.0.0.0 \
2591 -fixedBits 0.0.0.0 \
2592 -fieldValue $inner_dstip \
2593 -randomMask 0.0.0.0 \
2596 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
2597 ixNet setMultiAttrs $sg_field \
2600 -valueList [list 0] \
2608 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2610 if { [string compare $inner_proto "udp"] == 0 } {
2612 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
2614 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2615 set ixNetSG_Stack(3) $sg_stack
2618 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
2619 ixNet setMultiAttrs $sg_field \
2620 -singleValue $inner_srcport \
2622 -optionalEnabled true \
2623 -valueList [list 63] \
2626 -fieldValue $inner_srcport \
2631 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
2632 ixNet setMultiAttrs $sg_field \
2633 -singleValue $inner_dstport \
2635 -optionalEnabled true \
2636 -valueList [list 63] \
2639 -fieldValue $inner_dstport \
2644 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
2645 ixNet setMultiAttrs $sg_field \
2648 -optionalEnabled true \
2649 -valueList [list 8] \
2657 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
2658 ixNet setMultiAttrs $sg_field \
2661 -optionalEnabled true \
2662 -valueList [list 0] \
2670 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2674 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
2676 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2677 set ixNetSG_Stack(3) $sg_stack
2680 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
2681 ixNet setMultiAttrs $sg_field \
2682 -singleValue $inner_srcport \
2684 -optionalEnabled true \
2686 -valueList [list $inner_srcport] \
2689 -fieldValue $inner_srcport \
2692 -trackingEnabled false \
2693 -valueType singleValue \
2694 -activeFieldChoice false \
2698 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
2699 ixNet setMultiAttrs $sg_field \
2700 -singleValue $inner_dstport \
2702 -optionalEnabled true \
2704 -valueList [list $inner_dstport] \
2707 -fieldValue $inner_dstport \
2710 -trackingEnabled false \
2711 -valueType singleValue \
2712 -activeFieldChoice false \
2716 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
2717 ixNet setMultiAttrs $sg_field \
2720 -optionalEnabled true \
2722 -valueList [list 0x00000000] \
2723 -stepValue 0x00000000 \
2724 -fixedBits 0x00000000 \
2727 -randomMask 0x00000000 \
2728 -trackingEnabled false \
2729 -valueType singleValue \
2730 -activeFieldChoice false \
2731 -startValue 0x00000000 \
2734 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
2735 ixNet setMultiAttrs $sg_field \
2738 -optionalEnabled true \
2740 -valueList [list 0x00000000] \
2741 -stepValue 0x00000000 \
2742 -fixedBits 0x00000000 \
2745 -randomMask 0x00000000 \
2746 -trackingEnabled false \
2747 -valueType singleValue \
2748 -activeFieldChoice false \
2749 -startValue 0x00000000 \
2752 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
2753 ixNet setMultiAttrs $sg_field \
2756 -optionalEnabled true \
2758 -valueList [list 5] \
2764 -trackingEnabled false \
2765 -valueType singleValue \
2766 -activeFieldChoice false \
2770 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
2771 ixNet setMultiAttrs $sg_field \
2774 -optionalEnabled true \
2776 -valueList [list 0] \
2782 -trackingEnabled false \
2783 -valueType singleValue \
2784 -activeFieldChoice false \
2788 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
2789 ixNet setMultiAttrs $sg_field \
2792 -optionalEnabled true \
2794 -valueList [list 0] \
2800 -trackingEnabled false \
2801 -valueType singleValue \
2802 -activeFieldChoice false \
2806 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
2807 ixNet setMultiAttrs $sg_field \
2810 -optionalEnabled true \
2812 -valueList [list 0] \
2818 -trackingEnabled false \
2819 -valueType singleValue \
2820 -activeFieldChoice false \
2824 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
2825 ixNet setMultiAttrs $sg_field \
2828 -optionalEnabled true \
2830 -valueList [list 0] \
2836 -trackingEnabled false \
2837 -valueType singleValue \
2838 -activeFieldChoice false \
2842 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
2843 ixNet setMultiAttrs $sg_field \
2846 -optionalEnabled true \
2848 -valueList [list 0] \
2854 -trackingEnabled false \
2855 -valueType singleValue \
2856 -activeFieldChoice false \
2860 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
2861 ixNet setMultiAttrs $sg_field \
2864 -optionalEnabled true \
2866 -valueList [list 0] \
2872 -trackingEnabled false \
2873 -valueType singleValue \
2874 -activeFieldChoice false \
2878 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
2879 ixNet setMultiAttrs $sg_field \
2882 -optionalEnabled true \
2884 -valueList [list 0] \
2890 -trackingEnabled false \
2891 -valueType singleValue \
2892 -activeFieldChoice false \
2896 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
2897 ixNet setMultiAttrs $sg_field \
2900 -optionalEnabled true \
2902 -valueList [list 0] \
2908 -trackingEnabled false \
2909 -valueType singleValue \
2910 -activeFieldChoice false \
2914 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
2915 ixNet setMultiAttrs $sg_field \
2918 -optionalEnabled true \
2920 -valueList [list 0] \
2926 -trackingEnabled false \
2927 -valueType singleValue \
2928 -activeFieldChoice false \
2932 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
2933 ixNet setMultiAttrs $sg_field \
2936 -optionalEnabled true \
2938 -valueList [list 0] \
2944 -trackingEnabled false \
2945 -valueType singleValue \
2946 -activeFieldChoice false \
2950 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
2951 ixNet setMultiAttrs $sg_field \
2954 -optionalEnabled true \
2956 -valueList [list 0x0000] \
2961 -randomMask 0x0000 \
2962 -trackingEnabled false \
2963 -valueType singleValue \
2964 -activeFieldChoice false \
2965 -startValue 0x0000 \
2968 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
2969 ixNet setMultiAttrs $sg_field \
2972 -optionalEnabled true \
2974 -valueList [list 0x0000] \
2979 -randomMask 0x0000 \
2980 -trackingEnabled false \
2981 -valueType singleValue \
2982 -activeFieldChoice false \
2983 -startValue 0x0000 \
2986 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
2987 ixNet setMultiAttrs $sg_field \
2990 -optionalEnabled true \
2992 -valueList [list 0x0000] \
2997 -randomMask 0x0000 \
2998 -trackingEnabled false \
2999 -valueType singleValue \
3000 -activeFieldChoice false \
3001 -startValue 0x0000 \
3004 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3008 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-$stack_number"
3010 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3011 set ixNetSG_Stack(3) $sg_stack
3014 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3015 ixNet setMultiAttrs $sg_field \
3018 -optionalEnabled true \
3019 -valueList [list 0] \
3029 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"
3031 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-4"
3033 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3034 set ixNetSG_Stack(3) $sg_stack
3037 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"/field:"ethernet.fcs-1"
3039 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3040 ixNet setMultiAttrs $sg_field \
3043 -optionalEnabled True \
3051 -trackingEnabled False \
3052 -valueType singleValue \
3053 -activeFieldChoice False \
3057 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3060 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/transmissionDistribution
3062 set sg_transmissionDistribution $ixNetSG_Stack(2)/transmissionDistribution
3063 ixNet setMultiAttrs $sg_transmissionDistribution \
3066 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3069 # configuring the object that corresponds to /traffic/trafficItem:1/transmissionDistribution
3071 set sg_transmissionDistribution $ixNetSG_Stack(1)/transmissionDistribution
3072 ixNet setMultiAttrs $sg_transmissionDistribution \
3076 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3079 # configuring the object that corresponds to /traffic/trafficItem:1/tracking
3081 set sg_tracking $ixNetSG_Stack(1)/tracking
3082 ixNet setMultiAttrs $sg_tracking \
3084 -oneToOneMesh False \
3087 -fieldWidth thirtyTwoBits \
3088 -protocolOffset {Root.0}
3089 ixNet setMultiAttrs $sg_tracking/egress \
3090 -offset {Outer VLAN Priority (3 bits)} \
3092 -customOffsetBits 0 \
3093 -encapsulation {Ethernet} \
3095 ixNet setMultiAttrs $sg_tracking/latencyBin \
3097 -binLimits {1 1.42 2 2.82 4 5.66 8 11.32} \
3100 set sg_tracking [lindex [ixNet remapIds $sg_tracking] 0]
3101 set ixNetSG_Stack(2) $sg_tracking
3104 # Note: The scriptgen generated egress code were removed because we are not using
3105 # flow tracking in our tests.
3106 # Insert EGRESS lines here if needed
3110 # configuring the object that corresponds to /traffic/trafficItem:1/dynamicUpdate
3112 set sg_dynamicUpdate $ixNetSG_Stack(1)/dynamicUpdate
3113 ixNet setMultiAttrs $sg_dynamicUpdate \
3114 -enabledSessionAwareTrafficFields {} \
3115 -enabledDynamicUpdateFields {}
3117 set sg_dynamicUpdate [lindex [ixNet remapIds $sg_dynamicUpdate] 0]
3124 # configuring the object that corresponds to /quickTest/rfc2544throughput:1
3126 if {$rfc2544TestType == "throughput"} {
3127 set sg_rfc2544throughput [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544throughput]
3128 ixNet setMultiAttrs $sg_rfc2544throughput \
3129 -name {QuickTest1} \
3130 -mode existingMode \
3131 -inputParameters {{}}
3132 ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \
3134 -enableMinFrameSize False \
3135 -framesize $frameSize \
3136 -reportTputRateUnit mbps \
3137 -duration $duration \
3138 -numtrials $numTrials \
3139 -trafficType constantLoading \
3141 -framesPerBurstGap 1 \
3143 -frameLossUnit {0} \
3144 -staggeredStart False \
3145 -framesizeList $frameSize \
3146 -frameSizeMode custom \
3147 -rateSelect percentMaxRate \
3148 -percentMaxRate 100 \
3150 -forceRegenerate False \
3151 -reportSequenceError False \
3154 -loadRateList $frameRate \
3155 -fixedLoadUnit percentMaxRate \
3157 -incrementLoadUnit percentMaxRate \
3158 -initialIncrementLoadRate 10 \
3159 -stepIncrementLoadRate 10 \
3160 -maxIncrementLoadRate 100 \
3161 -randomLoadUnit percentMaxRate \
3162 -minRandomLoadRate 10 \
3163 -maxRandomLoadRate 80 \
3164 -countRandomLoadRate 1 \
3168 -delayAfterTransmit 2 \
3169 -minRandomFrameSize 64 \
3170 -maxRandomFrameSize 1518 \
3171 -countRandomFrameSize 1 \
3172 -minIncrementFrameSize 64 \
3173 -stepIncrementFrameSize 64 \
3174 -maxIncrementFrameSize 1518 \
3175 -calculateLatency True \
3176 -latencyType storeForward \
3177 -calculateJitter False \
3178 -enableDataIntegrity False \
3179 -enableBackoffIteration False \
3180 -enableSaturationIteration False \
3181 -enableStopTestOnHighLoss False \
3182 -enableBackoffUseAs% False \
3183 -backoffIteration 1 \
3184 -saturationIteration 1 \
3185 -stopTestOnHighLoss 0 \
3186 -loadType $loadType \
3187 -stepLoadUnit percentMaxRate \
3188 -customLoadUnit percentMaxRate \
3189 -comboLoadUnit percentMaxRate \
3190 -binaryLoadUnit percentMaxRate \
3191 -initialBinaryLoadRate 100 \
3192 -minBinaryLoadRate 1 \
3193 -maxBinaryLoadRate 100 \
3194 -binaryResolution 1 \
3196 -binaryTolerance $tolerance \
3197 -binaryFrameLossUnit % \
3198 -comboFrameLossUnit % \
3199 -stepFrameLossUnit % \
3200 -initialStepLoadRate 10 \
3201 -maxStepLoadRate 100 \
3202 -stepStepLoadRate 10 \
3204 -initialComboLoadRate 10 \
3205 -maxComboLoadRate 100 \
3206 -minComboLoadRate 10 \
3207 -stepComboLoadRate 10 \
3208 -comboResolution 1 \
3211 -binarySearchType linear \
3212 -unchangedValueList {0} \
3213 -enableFastConvergence $fastConvergence \
3214 -fastConvergenceDuration $convergenceDuration \
3215 -fastConvergenceThreshold 10 \
3216 -framesizeFixedValue $frameSize \
3218 -unchangedInitial False \
3219 -generateTrackingOptionAggregationFiles False \
3220 -enableExtraIterations False \
3221 -extraIterationOffsets {10, -10} \
3222 -usePercentOffsets False \
3223 -imixDistribution weight \
3226 -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}}}} \
3227 -imixEnabled False \
3228 -imixTemplates none \
3229 -framesizeImixList $frameSize \
3230 -imixTrafficType {UNCHNAGED} \
3231 -mapType {oneToOne} \
3232 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3233 ixNet setMultiAttrs $sg_rfc2544throughput/learnFrames \
3234 -learnFrequency $learningFrequency \
3235 -learnNumFrames 10 \
3237 -learnWaitTime 1000 \
3238 -learnFrameSize $frameSize \
3239 -fastPathLearnFrameSize $frameSize \
3240 -learnWaitTimeBeforeTransmit 0 \
3241 -learnSendMacOnly False \
3242 -learnSendRouterSolicitation False \
3243 -fastPathEnable $fastPathEnable \
3245 -fastPathNumFrames 10
3246 ixNet setMultiAttrs $sg_rfc2544throughput/passCriteria \
3247 -passCriteriaLoadRateMode average \
3248 -passCriteriaLoadRateValue 100 \
3249 -passCriteriaLoadRateScale mbps \
3250 -enablePassFail False \
3251 -enableRatePassFail False \
3252 -enableLatencyPassFail False \
3253 -enableStandardDeviationPassFail False \
3254 -latencyThresholdValue 10 \
3255 -latencyThresholdScale us \
3256 -latencyThresholdMode average \
3257 -latencyVariationThresholdValue 0 \
3258 -latencyVariationThresholdScale us \
3259 -latencyVarThresholdMode average \
3260 -enableSequenceErrorsPassFail False \
3261 -seqErrorsThresholdValue 0 \
3262 -seqErrorsThresholdMode average \
3263 -enableDataIntegrityPassFail False \
3264 -dataErrorThresholdValue 0 \
3265 -dataErrorThresholdMode average
3267 set sg_rfc2544throughput [lindex [ixNet remapIds $sg_rfc2544throughput] 0]
3268 set ixNetSG_Stack(1) $sg_rfc2544throughput
3271 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/protocols
3273 set sg_protocols $ixNetSG_Stack(1)/protocols
3274 ixNet setMultiAttrs $sg_protocols \
3275 -protocolState default \
3276 -waitAfterStart 120 \
3279 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3282 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/trafficSelection:1
3284 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3285 ixNet setMultiAttrs $sg_trafficSelection \
3286 -id $ixNetSG_ref(26) \
3287 -includeMode inTest \
3288 -itemType trafficItem
3290 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3293 } elseif {$rfc2544TestType == "back2back"} {
3295 # configuring the object that corresponds to /quickTest/rfc2544back2back:2
3297 set sg_rfc2544back2back [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544back2back]
3298 ixNet setMultiAttrs $sg_rfc2544back2back \
3300 -mode existingMode \
3301 -inputParameters {{}}
3302 ixNet setMultiAttrs $sg_rfc2544back2back/testConfig \
3304 -framesize $frameSize \
3305 -reportTputRateUnit mbps \
3306 -rfc2544ImixDataQoS False \
3307 -detailedResultsEnabled True \
3308 -rfc2889ordering noOrdering \
3309 -floodedFramesEnabled False \
3310 -duration $duration \
3311 -numtrials $numTrials \
3312 -trafficType constantLoading \
3314 -framesPerBurstGap 1 \
3316 -frameLossUnit {0} \
3317 -staggeredStart False \
3318 -framesizeList $frameSize \
3319 -frameSizeMode custom \
3320 -rateSelect percentMaxRate \
3321 -percentMaxRate 100 \
3323 -forceRegenerate False \
3324 -reportSequenceError False \
3327 -loadRateList $frameRate \
3331 -delayAfterTransmit 2 \
3332 -minRandomFrameSize 64 \
3333 -maxRandomFrameSize 1518 \
3334 -countRandomFrameSize 1 \
3335 -minIncrementFrameSize 64 \
3336 -stepIncrementFrameSize 64 \
3337 -maxIncrementFrameSize 1518 \
3338 -calculateLatency False \
3339 -calibrateLatency False \
3340 -latencyType cutThrough \
3341 -calculateJitter False \
3342 -enableDataIntegrity False \
3343 -loadType $loadType \
3344 -binaryFrameLossUnit % \
3345 -loadUnit percentMaxRate \
3346 -customLoadUnit percentMaxRate \
3347 -randomLoadUnit percentMaxRate \
3348 -incrementLoadUnit percentMaxRate \
3349 -binaryResolution 100 \
3351 -binaryTolerance $tolerance \
3352 -initialIncrementLoadRate 100 \
3353 -stepIncrementLoadRate 10 \
3354 -maxIncrementLoadRate 100 \
3355 -minRandomLoadRate 10 \
3356 -maxRandomLoadRate 80 \
3357 -countRandomLoadRate 1 \
3358 -numFrames {100000} \
3360 -enableMinFrameSize False \
3362 -generateTrackingOptionAggregationFiles False \
3363 -sendFullyMeshed False \
3364 -imixDistribution weight \
3367 -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}}}} \
3368 -imixEnabled False \
3369 -imixTemplates none \
3370 -framesizeImixList $frameSize \
3371 -imixTrafficType {UNCHNAGED} \
3372 -ipRatioMode fixed \
3373 -ipv4RatioList {10,25,50,75,90} \
3374 -ipv6RatioList {90,75,50,25,10} \
3375 -minIncrementIpv4Ratio {10} \
3376 -stepIncrementIpv4Ratio {10} \
3377 -maxIncrementIpv4Ratio {90} \
3378 -minIncrementIpv6Ratio {90} \
3379 -stepIncrementIpv6Ratio {-10} \
3380 -maxIncrementIpv6Ratio {10} \
3381 -minRandomIpv4Ratio {10} \
3382 -maxRandomIpv4Ratio {90} \
3383 -minRandomIpv6Ratio {90} \
3384 -maxRandomIpv6Ratio {10} \
3385 -countRandomIpRatio 1 \
3386 -mapType {oneToOne|manyToMany|fullMesh} \
3387 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3388 ixNet setMultiAttrs $sg_rfc2544back2back/learnFrames \
3389 -learnFrequency $learningFrequency \
3390 -learnNumFrames 10 \
3392 -learnWaitTime 1000 \
3393 -learnFrameSize 64 \
3394 -fastPathLearnFrameSize 64 \
3395 -learnWaitTimeBeforeTransmit 0 \
3396 -learnSendMacOnly False \
3397 -learnSendRouterSolicitation False \
3398 -fastPathEnable $fastPathEnable \
3400 -fastPathNumFrames 10
3401 ixNet setMultiAttrs $sg_rfc2544back2back/passCriteria \
3402 -passCriteriaLoadRateMode average \
3403 -passCriteriaLoadRateValue 100 \
3404 -passCriteriaLoadRateScale mbps \
3405 -enablePassFail False \
3406 -enableRatePassFail False \
3407 -enableLatencyPassFail False \
3408 -enableStandardDeviationPassFail False \
3409 -latencyThresholdValue 10 \
3410 -latencyThresholdScale us \
3411 -latencyThresholdMode average \
3412 -latencyVariationThresholdValue 0 \
3413 -latencyVariationThresholdScale us \
3414 -latencyVarThresholdMode average \
3415 -enableSequenceErrorsPassFail False \
3416 -seqErrorsThresholdValue 0 \
3417 -seqErrorsThresholdMode average \
3418 -enableDataIntegrityPassFail False \
3419 -dataErrorThresholdValue 0 \
3420 -dataErrorThresholdMode average \
3421 -enableFrameCountPassFail False \
3422 -passCriteriaFrameCountValue 100 \
3423 -passCriteriaFrameCountMode average
3425 set sg_rfc2544back2back [lindex [ixNet remapIds $sg_rfc2544back2back] 0]
3426 set ixNetSG_Stack(1) $sg_rfc2544back2back
3429 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/protocols
3431 set sg_protocols $ixNetSG_Stack(1)/protocols
3432 ixNet setMultiAttrs $sg_protocols \
3433 -protocolState default \
3434 -waitAfterStart 120 \
3437 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3440 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/trafficSelection:1
3442 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3443 ixNet setMultiAttrs $sg_trafficSelection \
3444 -id $ixNetSG_ref(26) \
3445 -includeMode inTest \
3446 -itemType trafficItem
3448 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3453 # getting and applying the RFC2544 test
3455 set root [ixNet getRoot]
3456 foreach traf_item [ixNet getList $root/traffic trafficItem] {
3457 ixNet exec generate $traf_item
3460 set qt [ixNet getList $root quickTest]
3461 if {$rfc2544TestType == "throughput"} {
3462 set rfc2544test [ixNet getList $qt rfc2544throughput]
3463 } elseif {$rfc2544TestType == "back2back"} {
3464 set rfc2544test [ixNet getList $qt rfc2544back2back]
3466 ixNet exec apply $rfc2544test
3470 # starting the RFC2544 Throughput test
3472 puts "Starting test..."
3473 ixNet exec start $rfc2544test
3476 proc waitForRfc2544Test { } {
3477 # Wait for- and return results of- RFC2544 quicktest.
3481 puts "Waiting for test to complete..."
3482 set result [ixNet exec waitForTest $rfc2544test]
3483 puts "Finished Test"