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]
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 if {($multipleStreams > 65535)} {
121 set numflows $multipleStreams
123 set multipleStreams increment
125 set multipleStreams singleValue
128 set fastConvergence True
129 set convergenceDuration [expr $duration/10]
133 # extract nested dictionaries
134 set trafficSpec_l2 [dict get $trafficSpec l2]
135 set trafficSpec_l3 [dict get $trafficSpec l3]
136 set trafficSpec_l4 [dict get $trafficSpec l4]
137 set trafficSpec_vlan [dict get $trafficSpec vlan]
139 set frameSize [dict get $trafficSpec_l2 framesize]
140 set srcMac [dict get $trafficSpec_l2 srcmac]
141 set dstMac [dict get $trafficSpec_l2 dstmac]
143 set srcPort [dict get $trafficSpec_l4 srcport]
144 set dstPort [dict get $trafficSpec_l4 dstport]
146 # Tested protocols: udp, tcp, gre
147 set proto [dict get $trafficSpec_l3 proto]
148 set proto [string tolower $proto]
149 set srcIp [dict get $trafficSpec_l3 srcip]
150 set dstIp [dict get $trafficSpec_l3 dstip]
153 if { [string compare $proto "tcp"] == 0 } {
158 set vxlan_enabled [dict exists $trafficSpec_l4 vni]
159 set geneve_enabled [dict exists $trafficSpec_l4 geneve_vni]
161 if { $vxlan_enabled } {
162 puts "VXLAN is enabled. Setting VXLAN variables"
163 set vni [dict get $trafficSpec_l4 vni]
164 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
165 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
166 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
167 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
168 set inner_proto [dict get $trafficSpec_l4 inner_proto]
169 set inner_proto [string tolower $inner_proto]
170 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
171 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
172 } elseif { $geneve_enabled } {
173 puts "GENEVE is enabled. Setting GENEVE variables"
174 set geneve_vni [dict get $trafficSpec_l4 geneve_vni]
175 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
176 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
177 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
178 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
179 set inner_proto [dict get $trafficSpec_l4 inner_proto]
180 set inner_proto [string tolower $inner_proto]
181 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
182 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
185 set gre_enabled False
186 if { [string compare $proto "gre"] == 0 } {
187 puts "GRE is enabled. Setting GRE variables"
190 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
191 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
192 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
193 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
194 set inner_proto [dict get $trafficSpec_l4 inner_proto]
195 set inner_proto [string tolower $inner_proto]
196 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
197 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
200 if {$frameSize < 68 } {
201 if {$rfc2544TestType == "back2back"} {
202 puts "INFO: Packet size too small, packet size will be \
203 increased to 68 for this test"
208 set VERSION [package require IxTclNetwork]
210 ###################################################################
211 ############################ Operation ############################
212 ###################################################################
214 puts "Connecting to IxNetwork machine..."
216 ixNet connect $::IxNserver -port $::IxNport -version $VERSION
218 puts "Connected to IxNetwork machine"
220 puts "Configuring IxNetwork machine..."
223 proc sg_commit {} {ixNet commit}
226 ixNet setSessionParameter version 6.30.701.16
227 ixNet execute newConfig
228 set ixNetSG_Stack(0) [ixNet getRoot]
231 # setting global options
233 set sg_top [ixNet getRoot]
234 ixNet setMultiAttrs $sg_top/availableHardware \
237 ixNet setMultiAttrs $sg_top/globals/preferences \
238 -connectPortsOnLoadConfig True \
239 -rebootPortsOnConnect False
240 ixNet setMultiAttrs $sg_top/globals/interfaces \
243 -sendSingleArpPerGateway True \
244 -sendSingleNsPerGateway True
245 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/checksums \
246 -dropRxL2FcsErrors False \
247 -correctTxL2FcsErrors False \
248 -alwaysCorrectWhenModifying True \
249 -correctTxChecksumOverIp False \
250 -correctTxIpv4Checksum False
251 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/rxRateLimit \
254 -units {kKilobitsPerSecond}
255 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/drop \
259 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/reorder \
264 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/duplicate \
269 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/bitError \
274 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delay \
277 -units {kMicroseconds}
278 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delayVariation \
281 -units {kMicroseconds} \
282 -distribution {kUniform} \
283 -exponentialMeanArrival 0 \
284 -gaussianStandardDeviation 0
285 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/customDelayVariation \
288 ixNet setMultiAttrs $sg_top/statistics \
289 -additionalFcoeStat2 fcoeInvalidFrames \
290 -csvLogPollIntervalMultiplier 1 \
292 -guardrailEnabled True \
293 -enableCsvLogging False \
294 -dataStorePollingIntervalMultiplier 1 \
295 -maxNumberOfStatsPerCustomGraph 16 \
296 -additionalFcoeStat1 fcoeInvalidDelimiter \
297 -timestampPrecision 3 \
298 -enableDataCenterSharedStats False \
299 -timeSynchronization syncTimeToTestStart \
300 -enableAutoDataStore False
301 ixNet setMultiAttrs $sg_top/statistics/measurementMode \
302 -measurementMode mixedMode
303 ixNet setMultiAttrs $sg_top/eventScheduler \
304 -licenseServerLocation {127.0.0.1}
305 ixNet setMultiAttrs $sg_top/traffic \
306 -destMacRetryCount 1 \
307 -maxTrafficGenerationQueries 500 \
308 -enableStaggeredTransmit False \
309 -learningFrameSize $frameSize \
311 -enableDestMacRetry True \
312 -enableMulticastScalingFactor False \
313 -destMacRetryDelay 5 \
314 -largeErrorThreshhold 2 \
315 -refreshLearnedInfoBeforeApply False \
316 -enableMinFrameSize False \
317 -macChangeOnFly False \
319 -enableInstantaneousStatsSupport False \
320 -learningFramesCount 10 \
321 -globalStreamControl continuous \
322 -displayMplsCurrentLabelValue False \
323 -mplsLabelLearningTimeout 30 \
324 -enableStaggeredStartDelay True \
325 -enableDataIntegrityCheck False \
326 -enableSequenceChecking False \
327 -globalStreamControlIterations 1 \
328 -enableStreamOrdering False \
329 -frameOrderingMode none \
330 -learningFramesRate 100
331 ixNet setMultiAttrs $sg_top/traffic/statistics/latency \
334 ixNet setMultiAttrs $sg_top/traffic/statistics/interArrivalTimeRate \
336 ixNet setMultiAttrs $sg_top/traffic/statistics/delayVariation \
338 -statisticsMode rxDelayVariationErrorsAndRate \
339 -latencyMode storeForward \
340 -largeSequenceNumberErrorThreshold 2
341 ixNet setMultiAttrs $sg_top/traffic/statistics/sequenceChecking \
343 -sequenceMode rxThreshold
344 ixNet setMultiAttrs $sg_top/traffic/statistics/advancedSequenceChecking \
346 -advancedSequenceThreshold 1
347 ixNet setMultiAttrs $sg_top/traffic/statistics/cpdpConvergence \
349 -dataPlaneJitterWindow 10485760 \
350 -dataPlaneThreshold 95 \
351 -enableDataPlaneEventsRateMonitor False \
352 -enableControlPlaneEvents False
353 ixNet setMultiAttrs $sg_top/traffic/statistics/packetLossDuration \
355 ixNet setMultiAttrs $sg_top/traffic/statistics/dataIntegrity \
357 ixNet setMultiAttrs $sg_top/traffic/statistics/errorStats \
359 ixNet setMultiAttrs $sg_top/traffic/statistics/prbs \
361 ixNet setMultiAttrs $sg_top/traffic/statistics/iptv \
363 ixNet setMultiAttrs $sg_top/traffic/statistics/l1Rates \
365 ixNet setMultiAttrs $sg_top/quickTest/globals \
366 -productLabel {Your switch/router name here} \
367 -serialNumber {Your switch/router serial number here} \
368 -version {Your firmware version here} \
370 -titlePageComments {} \
371 -maxLinesToDisplay 100 \
372 -enableCheckLinkState False \
373 -enableAbortIfLinkDown False \
374 -enableSwitchToStats True \
375 -enableCapture False \
376 -enableSwitchToResult True \
377 -enableGenerateReportAfterRun False \
378 -enableRebootCpu False \
379 -saveCaptureBeforeRun False \
381 -sleepTimeAfterReboot 10 \
382 -useDefaultRootPath False \
383 -outputRootPath $::output_dir
385 set sg_top [lindex [ixNet remapIds $sg_top] 0]
386 set ixNetSG_Stack(0) $sg_top
393 # configuring the object that corresponds to /vport:1
395 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
396 ixNet setMultiAttrs $sg_vport \
397 -transmitIgnoreLinkStatus False \
398 -txGapControlMode averageMode \
400 -connectedTo ::ixNet::OBJ-null \
401 -txMode interleaved \
403 -rxMode captureAndMeasure \
404 -name {10GE LAN - 001}
405 ixNet setMultiAttrs $sg_vport/l1Config \
406 -currentType tenGigLan
407 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
409 -flowControlDirectedAddress "01 80 C2 00 00 01" \
411 -autoInstrumentation endOfFrame \
412 -transmitClocking internal \
413 -txIgnoreRxLinkFaults False \
415 -enableLASIMonitoring False \
416 -enabledFlowControl True
417 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
421 -vendorSpecificInformation {00 00 00 00} \
422 -macAddress "00:00:00:00:00:00" \
426 -enableTlvOption False \
428 -organizationUniqueIdentifier {000000}
429 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
430 -supportDataCenterMode False \
431 -priorityGroupSize priorityGroupSize-8 \
433 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
434 -flowControlType ieee802.1Qbb \
435 -enablePFCPauseDelay False
436 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
438 -flowControlDirectedAddress "01 80 C2 00 00 01" \
440 -autoInstrumentation endOfFrame \
441 -transmitClocking internal \
442 -txIgnoreRxLinkFaults False \
444 -enableLASIMonitoring False \
445 -enabledFlowControl False
446 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
447 -supportDataCenterMode False \
448 -priorityGroupSize priorityGroupSize-8 \
450 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
451 -flowControlType ieee802.1Qbb \
452 -enablePFCPauseDelay False
453 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
457 -vendorSpecificInformation {00 00 00 00} \
458 -macAddress "00:00:00:00:00:00" \
462 -enableTlvOption False \
464 -organizationUniqueIdentifier {000000}
465 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
466 -sourceAddress1Mask {00:00:00:00:00:00} \
467 -destinationAddress1Mask {00:00:00:00:00:00} \
468 -sourceAddress2 {00:00:00:00:00:00} \
469 -pattern2OffsetType fromStartOfFrame \
472 -sourceAddress2Mask {00:00:00:00:00:00} \
473 -destinationAddress2 {00:00:00:00:00:00} \
474 -destinationAddress1 {00:00:00:00:00:00} \
475 -sourceAddress1 {00:00:00:00:00:00} \
477 -destinationAddress2Mask {00:00:00:00:00:00} \
481 -pattern1OffsetType fromStartOfFrame
482 ixNet setMultiAttrs $sg_vport/protocols/arp \
484 ixNet setMultiAttrs $sg_vport/protocols/bfd \
487 -packetsPerInterval 0
488 ixNet setMultiAttrs $sg_vport/protocols/bgp \
489 -autoFillUpDutIp False \
490 -disableReceivedUpdateValidation False \
491 -enableAdVplsPrefixLengthInBits False \
492 -enableExternalActiveConnect True \
493 -enableInternalActiveConnect True \
494 -enableVpnLabelExchangeOverLsp True \
497 -externalRetryDelay 120 \
499 -internalRetryDelay 120 \
501 -triggerVplsPwInitiation False
502 ixNet setMultiAttrs $sg_vport/protocols/cfm \
503 -enableOptionalLmFunctionality False \
504 -enableOptionalTlvValidation True \
508 -suppressErrorsOnAis True
509 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
511 ixNet setMultiAttrs $sg_vport/protocols/elmi \
513 ixNet setMultiAttrs $sg_vport/protocols/igmp \
518 -sendLeaveOnStop True \
519 -statsEnabled False \
521 ixNet setMultiAttrs $sg_vport/protocols/isis \
522 -allL1RbridgesMac "01:80:c2:00:00:40" \
523 -emulationType isisL3Routing \
525 -helloMulticastMac "01:80:c2:00:00:41" \
526 -lspMgroupPdusPerInterval 0 \
528 -rateControlInterval 0 \
529 -sendP2PHellosToUnicastMac True \
530 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
531 -spbHelloMulticastMac "09:00:2b:00:00:05" \
533 ixNet setMultiAttrs $sg_vport/protocols/lacp \
534 -enablePreservePartnerInfo False \
536 ixNet setMultiAttrs $sg_vport/protocols/ldp \
537 -enableDiscardSelfAdvFecs False \
538 -enableHelloJitter True \
539 -enableVpnLabelExchangeOverLsp True \
543 -keepAliveHoldTime 30 \
544 -keepAliveInterval 10 \
545 -p2mpCapabilityParam 1288 \
547 -targetedHelloInterval 15 \
548 -targetedHoldTime 45 \
549 -useTransportLabelsForMplsOam False
550 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
552 ixNet setMultiAttrs $sg_vport/protocols/lisp \
553 -burstIntervalInMs 0 \
555 -ipv4MapRegisterPacketsPerBurst 0 \
556 -ipv4MapRequestPacketsPerBurst 0 \
557 -ipv4SmrPacketsPerBurst 0 \
558 -ipv6MapRegisterPacketsPerBurst 0 \
559 -ipv6MapRequestPacketsPerBurst 0 \
560 -ipv6SmrPacketsPerBurst 0
561 ixNet setMultiAttrs $sg_vport/protocols/mld \
562 -enableDoneOnStop True \
564 -mldv2Report type143 \
569 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
571 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
572 -apsChannelType {00 02 } \
573 -bfdCcChannelType {00 07 } \
574 -delayManagementChannelType {00 05 } \
575 -enableHighPerformanceMode True \
577 -faultManagementChannelType {00 58 } \
578 -lossMeasurementChannelType {00 04 } \
579 -onDemandCvChannelType {00 09 } \
580 -pwStatusChannelType {00 0B } \
581 -y1731ChannelType {7F FA }
582 ixNet setMultiAttrs $sg_vport/protocols/ospf \
583 -enableDrOrBdr False \
585 -floodLinkStateUpdatesPerInterval 0 \
586 -rateControlInterval 0
587 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
589 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
590 -bsmFramePerInterval 0 \
591 -crpFramePerInterval 0 \
592 -dataMdtFramePerInterval 0 \
593 -denyGrePimIpPrefix {0.0.0.0/32} \
594 -enableDiscardJoinPruneProcessing False \
595 -enableRateControl False \
597 -helloMsgsPerInterval 0 \
599 -joinPruneMessagesPerInterval 0 \
600 -registerMessagesPerInterval 0 \
601 -registerStopMessagesPerInterval 0
602 ixNet setMultiAttrs $sg_vport/protocols/ping \
604 ixNet setMultiAttrs $sg_vport/protocols/rip \
606 ixNet setMultiAttrs $sg_vport/protocols/ripng \
608 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
609 -enableControlLspInitiationRate False \
610 -enableShowTimeValue False \
611 -enableVpnLabelExchangeOverLsp True \
613 -maxLspInitiationsPerSec 400 \
614 -useTransportLabelsForMplsOam False
615 ixNet setMultiAttrs $sg_vport/protocols/stp \
617 ixNet setMultiAttrs $sg_vport/rateControlParameters \
618 -maxRequestsPerBurst 1 \
619 -maxRequestsPerSec 250 \
620 -minRetryInterval 10 \
622 -sendInBursts False \
623 -sendRequestsAsFastAsPossible False
624 ixNet setMultiAttrs $sg_vport/capture \
625 -controlCaptureTrigger {} \
626 -controlCaptureFilter {} \
627 -hardwareEnabled False \
628 -softwareEnabled False \
629 -displayFiltersDataCapture {} \
630 -displayFiltersControlCapture {} \
631 -controlBufferSize 30 \
632 -controlBufferBehaviour bufferLiveNonCircular
633 ixNet setMultiAttrs $sg_vport/protocolStack/options \
634 -routerSolicitationDelay 1 \
635 -routerSolicitationInterval 4 \
636 -routerSolicitations 3 \
640 -ipv4RetransTime 3000 \
643 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
644 set ixNetSG_ref(2) $sg_vport
645 set ixNetSG_Stack(1) $sg_vport
648 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:1
650 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
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:2
666 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
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:3
682 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
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:4
698 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
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:5
714 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
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/l1Config/rxFilters/uds:6
730 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
731 ixNet setMultiAttrs $sg_uds \
732 -destinationAddressSelector anyAddr \
733 -customFrameSizeTo 0 \
734 -customFrameSizeFrom 0 \
736 -patternSelector anyPattern \
737 -sourceAddressSelector anyAddr \
741 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
744 # configuring the object that corresponds to /vport:1/protocols/static/lan:1
746 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
747 ixNet setMultiAttrs $sg_lan \
748 -atmEncapsulation ::ixNet::OBJ-null \
751 -enableIncrementMac False \
752 -enableIncrementVlan False \
753 -enableSiteId False \
756 -frEncapsulation ::ixNet::OBJ-null \
757 -incrementPerVcVlanMode noIncrement \
758 -incrementVlanMode noIncrement \
760 -macRangeMode normal \
763 -skipVlanIdZero True \
765 -trafficGroupId ::ixNet::OBJ-null \
770 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
773 # configuring the object that corresponds to /vport:2
775 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
776 ixNet setMultiAttrs $sg_vport \
777 -transmitIgnoreLinkStatus False \
778 -txGapControlMode averageMode \
780 -connectedTo ::ixNet::OBJ-null \
781 -txMode interleaved \
783 -rxMode captureAndMeasure \
784 -name {10GE LAN - 002}
785 ixNet setMultiAttrs $sg_vport/l1Config \
786 -currentType tenGigLan
787 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
789 -flowControlDirectedAddress "01 80 C2 00 00 01" \
791 -autoInstrumentation endOfFrame \
792 -transmitClocking internal \
793 -txIgnoreRxLinkFaults False \
795 -enableLASIMonitoring False \
796 -enabledFlowControl False
797 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
801 -vendorSpecificInformation {00 00 00 00} \
802 -macAddress "00:00:00:00:00:00" \
806 -enableTlvOption False \
808 -organizationUniqueIdentifier {000000}
809 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
810 -supportDataCenterMode False \
811 -priorityGroupSize priorityGroupSize-8 \
813 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
814 -flowControlType ieee802.1Qbb \
815 -enablePFCPauseDelay False
816 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
818 -flowControlDirectedAddress "01 80 C2 00 00 01" \
820 -autoInstrumentation endOfFrame \
821 -transmitClocking internal \
822 -txIgnoreRxLinkFaults False \
824 -enableLASIMonitoring False \
825 -enabledFlowControl False
826 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
827 -supportDataCenterMode False \
828 -priorityGroupSize priorityGroupSize-8 \
830 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
831 -flowControlType ieee802.1Qbb \
832 -enablePFCPauseDelay False
833 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
837 -vendorSpecificInformation {00 00 00 00} \
838 -macAddress "00:00:00:00:00:00" \
842 -enableTlvOption False \
844 -organizationUniqueIdentifier {000000}
845 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
846 -sourceAddress1Mask {00:00:00:00:00:00} \
847 -destinationAddress1Mask {00:00:00:00:00:00} \
848 -sourceAddress2 {00:00:00:00:00:00} \
849 -pattern2OffsetType fromStartOfFrame \
852 -sourceAddress2Mask {00:00:00:00:00:00} \
853 -destinationAddress2 {00:00:00:00:00:00} \
854 -destinationAddress1 {00:00:00:00:00:00} \
855 -sourceAddress1 {00:00:00:00:00:00} \
857 -destinationAddress2Mask {00:00:00:00:00:00} \
861 -pattern1OffsetType fromStartOfFrame
862 ixNet setMultiAttrs $sg_vport/protocols/arp \
864 ixNet setMultiAttrs $sg_vport/protocols/bfd \
867 -packetsPerInterval 0
868 ixNet setMultiAttrs $sg_vport/protocols/bgp \
869 -autoFillUpDutIp False \
870 -disableReceivedUpdateValidation False \
871 -enableAdVplsPrefixLengthInBits False \
872 -enableExternalActiveConnect True \
873 -enableInternalActiveConnect True \
874 -enableVpnLabelExchangeOverLsp True \
877 -externalRetryDelay 120 \
879 -internalRetryDelay 120 \
881 -triggerVplsPwInitiation False
882 ixNet setMultiAttrs $sg_vport/protocols/cfm \
883 -enableOptionalLmFunctionality False \
884 -enableOptionalTlvValidation True \
888 -suppressErrorsOnAis True
889 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
891 ixNet setMultiAttrs $sg_vport/protocols/elmi \
893 ixNet setMultiAttrs $sg_vport/protocols/igmp \
898 -sendLeaveOnStop True \
899 -statsEnabled False \
901 ixNet setMultiAttrs $sg_vport/protocols/isis \
902 -allL1RbridgesMac "01:80:c2:00:00:40" \
903 -emulationType isisL3Routing \
905 -helloMulticastMac "01:80:c2:00:00:41" \
906 -lspMgroupPdusPerInterval 0 \
908 -rateControlInterval 0 \
909 -sendP2PHellosToUnicastMac True \
910 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
911 -spbHelloMulticastMac "09:00:2b:00:00:05" \
913 ixNet setMultiAttrs $sg_vport/protocols/lacp \
914 -enablePreservePartnerInfo False \
916 ixNet setMultiAttrs $sg_vport/protocols/ldp \
917 -enableDiscardSelfAdvFecs False \
918 -enableHelloJitter True \
919 -enableVpnLabelExchangeOverLsp True \
923 -keepAliveHoldTime 30 \
924 -keepAliveInterval 10 \
925 -p2mpCapabilityParam 1288 \
927 -targetedHelloInterval 15 \
928 -targetedHoldTime 45 \
929 -useTransportLabelsForMplsOam False
930 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
932 ixNet setMultiAttrs $sg_vport/protocols/lisp \
933 -burstIntervalInMs 0 \
935 -ipv4MapRegisterPacketsPerBurst 0 \
936 -ipv4MapRequestPacketsPerBurst 0 \
937 -ipv4SmrPacketsPerBurst 0 \
938 -ipv6MapRegisterPacketsPerBurst 0 \
939 -ipv6MapRequestPacketsPerBurst 0 \
940 -ipv6SmrPacketsPerBurst 0
941 ixNet setMultiAttrs $sg_vport/protocols/mld \
942 -enableDoneOnStop True \
944 -mldv2Report type143 \
949 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
951 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
952 -apsChannelType {00 02 } \
953 -bfdCcChannelType {00 07 } \
954 -delayManagementChannelType {00 05 } \
955 -enableHighPerformanceMode True \
957 -faultManagementChannelType {00 58 } \
958 -lossMeasurementChannelType {00 04 } \
959 -onDemandCvChannelType {00 09 } \
960 -pwStatusChannelType {00 0B } \
961 -y1731ChannelType {7F FA }
962 ixNet setMultiAttrs $sg_vport/protocols/ospf \
963 -enableDrOrBdr False \
965 -floodLinkStateUpdatesPerInterval 0 \
966 -rateControlInterval 0
967 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
969 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
970 -bsmFramePerInterval 0 \
971 -crpFramePerInterval 0 \
972 -dataMdtFramePerInterval 0 \
973 -denyGrePimIpPrefix {0.0.0.0/32} \
974 -enableDiscardJoinPruneProcessing False \
975 -enableRateControl False \
977 -helloMsgsPerInterval 0 \
979 -joinPruneMessagesPerInterval 0 \
980 -registerMessagesPerInterval 0 \
981 -registerStopMessagesPerInterval 0
982 ixNet setMultiAttrs $sg_vport/protocols/ping \
984 ixNet setMultiAttrs $sg_vport/protocols/rip \
986 ixNet setMultiAttrs $sg_vport/protocols/ripng \
988 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
989 -enableControlLspInitiationRate False \
990 -enableShowTimeValue False \
991 -enableVpnLabelExchangeOverLsp True \
993 -maxLspInitiationsPerSec 400 \
994 -useTransportLabelsForMplsOam False
995 ixNet setMultiAttrs $sg_vport/protocols/stp \
997 ixNet setMultiAttrs $sg_vport/rateControlParameters \
998 -maxRequestsPerBurst 1 \
999 -maxRequestsPerSec 250 \
1000 -minRetryInterval 10 \
1002 -sendInBursts False \
1003 -sendRequestsAsFastAsPossible False
1004 ixNet setMultiAttrs $sg_vport/capture \
1005 -controlCaptureTrigger {} \
1006 -controlCaptureFilter {} \
1007 -hardwareEnabled False \
1008 -softwareEnabled False \
1009 -displayFiltersDataCapture {} \
1010 -displayFiltersControlCapture {} \
1011 -controlBufferSize 30 \
1012 -controlBufferBehaviour bufferLiveNonCircular
1013 ixNet setMultiAttrs $sg_vport/protocolStack/options \
1014 -routerSolicitationDelay 1 \
1015 -routerSolicitationInterval 4 \
1016 -routerSolicitations 3 \
1020 -ipv4RetransTime 3000 \
1023 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
1024 set ixNetSG_ref(10) $sg_vport
1025 set ixNetSG_Stack(1) $sg_vport
1028 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:1
1030 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
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:2
1046 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
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:3
1062 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
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:4
1078 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
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:5
1094 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
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/l1Config/rxFilters/uds:6
1110 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
1111 ixNet setMultiAttrs $sg_uds \
1112 -destinationAddressSelector anyAddr \
1113 -customFrameSizeTo 0 \
1114 -customFrameSizeFrom 0 \
1115 -error errAnyFrame \
1116 -patternSelector anyPattern \
1117 -sourceAddressSelector anyAddr \
1121 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1124 # configuring the object that corresponds to /vport:2/protocols/static/lan:1
1126 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
1127 ixNet setMultiAttrs $sg_lan \
1128 -atmEncapsulation ::ixNet::OBJ-null \
1131 -enableIncrementMac False \
1132 -enableIncrementVlan False \
1133 -enableSiteId False \
1136 -frEncapsulation ::ixNet::OBJ-null \
1137 -incrementPerVcVlanMode noIncrement \
1138 -incrementVlanMode noIncrement \
1140 -macRangeMode normal \
1143 -skipVlanIdZero True \
1145 -trafficGroupId ::ixNet::OBJ-null \
1150 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
1153 ### /availableHardware area
1157 # configuring the object that corresponds to /availableHardware/chassis"
1159 set sg_chassis [ixNet add $ixNetSG_Stack(0)/availableHardware chassis]
1160 ixNet setMultiAttrs $sg_chassis \
1164 -hostname $::chassis
1166 set sg_chassis [lindex [ixNet remapIds $sg_chassis] 0]
1167 set ixNetSG_Stack(1) $sg_chassis
1170 # configuring the object that corresponds to /availableHardware/chassis/card
1172 set sg_card $ixNetSG_Stack(1)/card:$::card
1173 ixNet setMultiAttrs $sg_card \
1174 -aggregationMode normal
1176 set sg_card [lindex [ixNet remapIds $sg_card] 0]
1177 set ixNetSG_ref(19) $sg_card
1178 set ixNetSG_Stack(2) $sg_card
1181 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:1
1183 set sg_aggregation $ixNetSG_Stack(2)/aggregation:1
1184 ixNet setMultiAttrs $sg_aggregation \
1187 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1190 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:2
1192 set sg_aggregation $ixNetSG_Stack(2)/aggregation:2
1193 ixNet setMultiAttrs $sg_aggregation \
1196 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1199 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:3
1201 set sg_aggregation $ixNetSG_Stack(2)/aggregation:3
1202 ixNet setMultiAttrs $sg_aggregation \
1205 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1208 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:4
1210 set sg_aggregation $ixNetSG_Stack(2)/aggregation:4
1211 ixNet setMultiAttrs $sg_aggregation \
1214 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1215 ixNet setMultiAttrs $ixNetSG_ref(2) \
1216 -connectedTo $ixNetSG_ref(19)/port:$::port1
1218 ixNet setMultiAttrs $ixNetSG_ref(10) \
1219 -connectedTo $ixNetSG_ref(19)/port:$::port2
1224 ### /impairment area
1228 # configuring the object that corresponds to /impairment/profile:3
1230 set sg_profile [ixNet add $ixNetSG_Stack(0)/impairment profile]
1231 ixNet setMultiAttrs $sg_profile \
1233 -name {Impairment Profile 1} \
1237 ixNet setMultiAttrs $sg_profile/checksums \
1238 -dropRxL2FcsErrors False \
1239 -correctTxL2FcsErrors False \
1240 -alwaysCorrectWhenModifying True \
1241 -correctTxChecksumOverIp False \
1242 -correctTxIpv4Checksum False
1243 ixNet setMultiAttrs $sg_profile/rxRateLimit \
1246 -units {kKilobitsPerSecond}
1247 ixNet setMultiAttrs $sg_profile/drop \
1251 ixNet setMultiAttrs $sg_profile/reorder \
1256 ixNet setMultiAttrs $sg_profile/duplicate \
1261 ixNet setMultiAttrs $sg_profile/bitError \
1266 ixNet setMultiAttrs $sg_profile/delay \
1269 -units {kMicroseconds}
1270 ixNet setMultiAttrs $sg_profile/delayVariation \
1273 -units {kMicroseconds} \
1274 -distribution {kUniform} \
1275 -exponentialMeanArrival 0 \
1276 -gaussianStandardDeviation 0
1277 ixNet setMultiAttrs $sg_profile/customDelayVariation \
1281 set sg_profile [lindex [ixNet remapIds $sg_profile] 0]
1282 set ixNetSG_Stack(1) $sg_profile
1285 # configuring the object that corresponds to /impairment/profile:3/fixedClassifier:1
1287 set sg_fixedClassifier [ixNet add $ixNetSG_Stack(1) fixedClassifier]
1289 set sg_fixedClassifier [lindex [ixNet remapIds $sg_fixedClassifier] 0]
1296 # configuring the object that corresponds to /traffic/trafficItem:1
1298 set sg_trafficItem [ixNet add $ixNetSG_Stack(0)/traffic trafficItem]
1299 ixNet setMultiAttrs $sg_trafficItem \
1300 -transportRsvpTePreference one \
1301 -trafficItemType l2L3 \
1302 -biDirectional $::biDirect \
1303 -mergeDestinations True \
1304 -hostsPerNetwork 1 \
1305 -transmitMode interleaved \
1307 -trafficType {ethernetVlan} \
1308 -interAsLdpPreference two \
1309 -allowSelfDestined False \
1311 -maxNumberOfVpnLabelStack 2 \
1312 -interAsBgpPreference one \
1314 -transportLdpPreference two \
1315 -egressEnabled False \
1316 -enableDynamicMplsLabelValues False \
1317 -routeMesh oneToOne \
1318 -name {Traffic Item 1} \
1319 -srcDestMesh oneToOne
1321 set sg_trafficItem [lindex [ixNet remapIds $sg_trafficItem] 0]
1322 set ixNetSG_ref(26) $sg_trafficItem
1323 set ixNetSG_Stack(1) $sg_trafficItem
1326 # configuring the object that corresponds to /traffic/trafficItem:1/endpointSet:1
1328 set sg_endpointSet [ixNet add $ixNetSG_Stack(1) endpointSet]
1329 ixNet setMultiAttrs $sg_endpointSet \
1330 -destinations [list $ixNetSG_ref(10)/protocols] \
1331 -destinationFilter {} \
1334 -sources [list $ixNetSG_ref(2)/protocols] \
1335 -name {EndpointSet-1}
1337 set sg_endpointSet [lindex [ixNet remapIds $sg_endpointSet] 0]
1340 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1
1342 set sg_configElement $ixNetSG_Stack(1)/configElement:1
1343 ixNet setMultiAttrs $sg_configElement \
1345 -preambleCustomSize 8 \
1346 -enableDisparityError False \
1347 -preambleFrameSizeMode auto \
1348 -destinationMacMode manual
1349 ixNet setMultiAttrs $sg_configElement/frameSize \
1357 -presetDistribution cisco \
1360 ixNet setMultiAttrs $sg_configElement/frameRate \
1361 -bitRateUnitsType bitsPerSec \
1363 -enforceMinimumInterPacketGap 0 \
1364 -type percentLineRate \
1365 -interPacketGapUnitsType nanoseconds
1366 ixNet setMultiAttrs $sg_configElement/framePayload \
1367 -type incrementByte \
1368 -customRepeat True \
1370 ixNet setMultiAttrs $sg_configElement/frameRateDistribution \
1371 -streamDistribution applyRateToAll \
1372 -portDistribution applyRateToAll
1373 ixNet setMultiAttrs $sg_configElement/transmissionControl \
1378 -interBurstGapUnits nanoseconds \
1382 -enableInterStreamGap False \
1383 -startDelayUnits bytes \
1385 -burstPacketCount 1 \
1386 -enableInterBurstGap False \
1389 set sg_configElement [lindex [ixNet remapIds $sg_configElement] 0]
1390 set ixNetSG_Stack(2) $sg_configElement
1393 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
1395 set sg_stack $ixNetSG_Stack(2)/stack:"ethernet-1"
1397 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1398 set ixNetSG_Stack(3) $sg_stack
1401 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.destinationAddress-1"
1403 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.destinationAddress-1"
1404 ixNet setMultiAttrs $sg_field \
1405 -singleValue {00:00:00:00:00:00} \
1407 -optionalEnabled True \
1409 -valueList {{00:00:00:00:00:00}} \
1410 -stepValue {00:00:00:00:00:00} \
1411 -fixedBits {00:00:00:00:00:00} \
1412 -fieldValue {00:00:00:00:00:00} \
1414 -randomMask {00:00:00:00:00:00} \
1415 -trackingEnabled False \
1416 -valueType singleValue \
1417 -activeFieldChoice False \
1418 -startValue {00:00:00:00:00:00} \
1421 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1424 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.sourceAddress-2"
1426 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.sourceAddress-2"
1427 ixNet setMultiAttrs $sg_field \
1428 -singleValue {00:00:00:00:00:00} \
1430 -optionalEnabled True \
1432 -valueList {{00:00:00:00:00:00}} \
1433 -stepValue {00:00:00:00:00:00} \
1434 -fixedBits {00:00:00:00:00:00} \
1435 -fieldValue {00:00:00:00:00:00} \
1437 -randomMask {00:00:00:00:00:00} \
1438 -trackingEnabled False \
1439 -valueType singleValue \
1440 -activeFieldChoice False \
1441 -startValue {00:00:00:00:00:00} \
1444 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1447 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.etherType-3"
1449 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.etherType-3"
1450 ixNet setMultiAttrs $sg_field \
1451 -singleValue {800} \
1453 -optionalEnabled True \
1455 -valueList {{0xFFFF}} \
1456 -stepValue {0xFFFF} \
1457 -fixedBits {0xFFFF} \
1460 -randomMask {0xFFFF} \
1461 -trackingEnabled False \
1462 -valueType singleValue \
1463 -activeFieldChoice False \
1464 -startValue {0xFFFF} \
1467 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1470 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
1472 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-2"
1474 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1475 set ixNetSG_Stack(3) $sg_stack
1478 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.version-1"
1480 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
1481 ixNet setMultiAttrs $sg_field \
1484 -optionalEnabled True \
1492 -trackingEnabled False \
1493 -valueType singleValue \
1494 -activeFieldChoice False \
1499 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.protocol-25"
1501 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
1502 ixNet setMultiAttrs $sg_field \
1503 -singleValue {$proto_value} \
1505 -optionalEnabled True \
1510 -fieldValue {$proto} \
1513 -trackingEnabled False \
1514 -valueType singleValue \
1515 -activeFieldChoice False \
1520 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.checksum-26"
1522 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
1523 ixNet setMultiAttrs $sg_field \
1526 -optionalEnabled True \
1534 -trackingEnabled False \
1535 -valueType singleValue \
1536 -activeFieldChoice False \
1541 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.srcIp-27"
1543 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
1544 ixNet setMultiAttrs $sg_field \
1545 -singleValue $srcIp \
1547 -optionalEnabled True \
1549 -valueList {{0.0.0.0}} \
1550 -stepValue {0.0.0.0} \
1551 -fixedBits {0.0.0.0} \
1552 -fieldValue $srcIp \
1554 -randomMask {0.0.0.0} \
1555 -trackingEnabled False \
1556 -valueType singleValue \
1557 -activeFieldChoice False \
1558 -startValue {0.0.0.0} \
1562 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.dstIp-28"
1564 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
1565 ixNet setMultiAttrs $sg_field \
1566 -singleValue $dstIp \
1568 -optionalEnabled True \
1570 -valueList {{0.0.0.0}} \
1571 -stepValue {0.0.0.0} \
1572 -fixedBits {0.0.0.0} \
1573 -fieldValue $dstIp \
1575 -randomMask {0.0.0.0} \
1576 -trackingEnabled False \
1577 -valueType singleValue \
1578 -activeFieldChoice False \
1579 -startValue {0.0.0.0} \
1582 #set sg_field [lindex [ixNet remapIds $sg_field] 0]
1585 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.options.pad-58"
1587 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
1588 ixNet setMultiAttrs $sg_field \
1591 -optionalEnabled False \
1599 -trackingEnabled False \
1600 -valueType singleValue \
1601 -activeFieldChoice False \
1605 # Suffix for stack names
1606 # This variable should be incremented after setting sg_stack like:
1607 # set sg_stack $ixNetSG_Stack(2)/stack:"protocolnamehere-$stack_number"
1612 if { [string compare $proto "udp"] == 0 } {
1613 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"
1615 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
1617 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1618 set ixNetSG_Stack(3) $sg_stack
1622 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.srcPort-1"
1624 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
1625 ixNet setMultiAttrs $sg_field \
1626 -singleValue $srcPort \
1628 -optionalEnabled True \
1633 -fieldValue {$srcPort} \
1636 -trackingEnabled False \
1637 -valueType singleValue \
1638 -activeFieldChoice False \
1643 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.dstPort-2"
1645 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
1646 ixNet setMultiAttrs $sg_field \
1647 -singleValue $dstPort \
1649 -optionalEnabled True \
1654 -fieldValue $dstPort \
1657 -trackingEnabled False \
1658 -valueType $multipleStreams \
1659 -activeFieldChoice False \
1661 -countValue $numflows
1664 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.length-3"
1666 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
1667 ixNet setMultiAttrs $sg_field \
1670 -optionalEnabled True \
1678 -trackingEnabled False \
1679 -valueType singleValue \
1680 -activeFieldChoice False \
1685 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.checksum-4"
1687 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
1688 ixNet setMultiAttrs $sg_field \
1691 -optionalEnabled True \
1699 -trackingEnabled False \
1700 -valueType singleValue \
1701 -activeFieldChoice False \
1704 } elseif { [string compare $proto "tcp"] == 0 } {
1706 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
1708 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1709 set ixNetSG_Stack(3) $sg_stack
1712 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
1713 ixNet setMultiAttrs $sg_field \
1714 -singleValue $srcPort \
1716 -optionalEnabled true \
1718 -valueList [list $srcPort] \
1721 -fieldValue $srcPort \
1724 -trackingEnabled false \
1725 -valueType singleValue \
1726 -activeFieldChoice false \
1730 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
1731 ixNet setMultiAttrs $sg_field \
1732 -singleValue $dstPort \
1734 -optionalEnabled true \
1736 -valueList [list $dstPort] \
1739 -fieldValue $dstPort \
1742 -trackingEnabled false \
1743 -valueType singleValue \
1744 -activeFieldChoice false \
1748 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
1749 ixNet setMultiAttrs $sg_field \
1752 -optionalEnabled true \
1754 -valueList [list 0x00000000] \
1755 -stepValue 0x00000000 \
1756 -fixedBits 0x00000000 \
1759 -randomMask 0x00000000 \
1760 -trackingEnabled false \
1761 -valueType singleValue \
1762 -activeFieldChoice false \
1763 -startValue 0x00000000 \
1766 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
1767 ixNet setMultiAttrs $sg_field \
1770 -optionalEnabled true \
1772 -valueList [list 0x00000000] \
1773 -stepValue 0x00000000 \
1774 -fixedBits 0x00000000 \
1777 -randomMask 0x00000000 \
1778 -trackingEnabled false \
1779 -valueType singleValue \
1780 -activeFieldChoice false \
1781 -startValue 0x00000000 \
1784 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
1785 ixNet setMultiAttrs $sg_field \
1788 -optionalEnabled true \
1790 -valueList [list 5] \
1796 -trackingEnabled false \
1797 -valueType singleValue \
1798 -activeFieldChoice false \
1802 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
1803 ixNet setMultiAttrs $sg_field \
1806 -optionalEnabled true \
1808 -valueList [list 0] \
1814 -trackingEnabled false \
1815 -valueType singleValue \
1816 -activeFieldChoice false \
1820 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
1821 ixNet setMultiAttrs $sg_field \
1824 -optionalEnabled true \
1826 -valueList [list 0] \
1832 -trackingEnabled false \
1833 -valueType singleValue \
1834 -activeFieldChoice false \
1838 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
1839 ixNet setMultiAttrs $sg_field \
1842 -optionalEnabled true \
1844 -valueList [list 0] \
1850 -trackingEnabled false \
1851 -valueType singleValue \
1852 -activeFieldChoice false \
1856 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
1857 ixNet setMultiAttrs $sg_field \
1860 -optionalEnabled true \
1862 -valueList [list 0] \
1868 -trackingEnabled false \
1869 -valueType singleValue \
1870 -activeFieldChoice false \
1874 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
1875 ixNet setMultiAttrs $sg_field \
1878 -optionalEnabled true \
1880 -valueList [list 0] \
1886 -trackingEnabled false \
1887 -valueType singleValue \
1888 -activeFieldChoice false \
1892 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
1893 ixNet setMultiAttrs $sg_field \
1896 -optionalEnabled true \
1898 -valueList [list 0] \
1904 -trackingEnabled false \
1905 -valueType singleValue \
1906 -activeFieldChoice false \
1910 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
1911 ixNet setMultiAttrs $sg_field \
1914 -optionalEnabled true \
1916 -valueList [list 0] \
1922 -trackingEnabled false \
1923 -valueType singleValue \
1924 -activeFieldChoice false \
1928 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
1929 ixNet setMultiAttrs $sg_field \
1932 -optionalEnabled true \
1934 -valueList [list 0] \
1940 -trackingEnabled false \
1941 -valueType singleValue \
1942 -activeFieldChoice false \
1946 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
1947 ixNet setMultiAttrs $sg_field \
1950 -optionalEnabled true \
1952 -valueList [list 0] \
1958 -trackingEnabled false \
1959 -valueType singleValue \
1960 -activeFieldChoice false \
1964 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
1965 ixNet setMultiAttrs $sg_field \
1968 -optionalEnabled true \
1970 -valueList [list 0] \
1976 -trackingEnabled false \
1977 -valueType singleValue \
1978 -activeFieldChoice false \
1982 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
1983 ixNet setMultiAttrs $sg_field \
1986 -optionalEnabled true \
1988 -valueList [list 0x0000] \
1993 -randomMask 0x0000 \
1994 -trackingEnabled false \
1995 -valueType singleValue \
1996 -activeFieldChoice false \
1997 -startValue 0x0000 \
2000 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
2001 ixNet setMultiAttrs $sg_field \
2004 -optionalEnabled true \
2006 -valueList [list 0x0000] \
2011 -randomMask 0x0000 \
2012 -trackingEnabled false \
2013 -valueType singleValue \
2014 -activeFieldChoice false \
2015 -startValue 0x0000 \
2018 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
2019 ixNet setMultiAttrs $sg_field \
2022 -optionalEnabled true \
2024 -valueList [list 0x0000] \
2029 -randomMask 0x0000 \
2030 -trackingEnabled false \
2031 -valueType singleValue \
2032 -activeFieldChoice false \
2033 -startValue 0x0000 \
2036 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2038 } elseif { [string compare $proto "gre"] == 0 } {
2040 set gre_enabled True
2043 if { $vxlan_enabled || $gre_enabled || $geneve_enabled } {
2044 # VXLAN and GRE have similar inner frame data so we set unique fields
2045 # for each protocol then set the common fields.
2049 if { $vxlan_enabled } {
2052 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"
2054 set sg_stack $ixNetSG_Stack(2)/stack:"vxlan-$stack_number"
2056 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2057 set ixNetSG_Stack(3) $sg_stack
2061 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.flags-1
2063 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.flags-1"
2064 ixNet setMultiAttrs $sg_field \
2067 -optionalEnabled true \
2068 -valueList [list 0x08] \
2076 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved-2
2078 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved-2"
2079 ixNet setMultiAttrs $sg_field \
2082 -optionalEnabled true \
2083 -valueList [list 0] \
2091 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.vni-3"
2093 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.vni-3"
2094 ixNet setMultiAttrs $sg_field \
2097 -optionalEnabled true \
2098 -valueList [list 1234] \
2105 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved8-4"
2107 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved8-4"
2108 ixNet setMultiAttrs $sg_field \
2111 -optionalEnabled true \
2112 -valueList [list 0] \
2119 } elseif { $geneve_enabled } {
2122 set sg_stack $ixNetSG_Stack(2)/stack:"geneve-$stack_number"
2124 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2125 set ixNetSG_Stack(3) $sg_stack
2128 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.version-1"
2129 ixNet setMultiAttrs $sg_field \
2132 -optionalEnabled true \
2133 -valueList [list 0x00] \
2140 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.optionsLength-2"
2141 ixNet setMultiAttrs $sg_field \
2144 -optionalEnabled true \
2145 -valueList [list 0x00] \
2153 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.flags-3"
2154 ixNet setMultiAttrs $sg_field \
2157 -optionalEnabled true \
2158 -valueList [list 0x00] \
2165 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.protocolType-4"
2166 ixNet setMultiAttrs $sg_field \
2169 -optionalEnabled true \
2170 -valueList [list 0x6558] \
2174 -randomMask 0x6558 \
2177 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.vni-5"
2178 ixNet setMultiAttrs $sg_field \
2181 -optionalEnabled true \
2182 -valueList [list 0] \
2189 } elseif { $gre_enabled } {
2190 puts "Setting GRE attributes"
2193 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"gre-3"
2195 set sg_stack $ixNetSG_Stack(2)/stack:"gre-$stack_number"
2197 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2198 set ixNetSG_Stack(3) $sg_stack
2201 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumPresent-1"
2202 ixNet setMultiAttrs $sg_field \
2205 -optionalEnabled true \
2206 -valueList [list 0] \
2209 -fieldValue "0:No\ Checksum" \
2213 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved1-2"
2214 ixNet setMultiAttrs $sg_field \
2217 -optionalEnabled true \
2218 -valueList [list 0] \
2225 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyPresent-3"
2226 ixNet setMultiAttrs $sg_field \
2229 -optionalEnabled true \
2230 -valueList [list 0] \
2233 -fieldValue "0:No\ Key\ field" \
2237 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequencePresent-4"
2238 ixNet setMultiAttrs $sg_field \
2241 -optionalEnabled true \
2242 -valueList [list 0] \
2245 -fieldValue "0:No\ sequence\ number\ field" \
2249 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved2-5"
2250 ixNet setMultiAttrs $sg_field \
2253 -optionalEnabled true \
2254 -valueList [list 0] \
2261 set sg_field $ixNetSG_Stack(3)/field:"gre.header.version-6"
2262 ixNet setMultiAttrs $sg_field \
2265 -optionalEnabled true \
2266 -valueList [list 0] \
2273 set sg_field $ixNetSG_Stack(3)/field:"gre.header.protocol-7"
2274 ixNet setMultiAttrs $sg_field \
2277 -optionalEnabled true \
2278 -valueList [list 0x0] \
2286 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.checksum-8"
2287 ixNet setMultiAttrs $sg_field \
2290 -optionalEnabled true \
2291 -valueList [list 0] \
2299 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.reserved-9"
2300 ixNet setMultiAttrs $sg_field \
2303 -optionalEnabled true \
2304 -valueList [list 0] \
2311 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.noChecksum-10"
2312 ixNet setMultiAttrs $sg_field \
2315 -optionalEnabled true \
2316 -valueList [list 0] \
2321 -activeFieldChoice true \
2324 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.key-11"
2325 ixNet setMultiAttrs $sg_field \
2328 -optionalEnabled true \
2329 -valueList [list 0] \
2336 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.noKey-12"
2337 ixNet setMultiAttrs $sg_field \
2340 -optionalEnabled true \
2341 -valueList [list 0] \
2346 -activeFieldChoice true \
2349 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.sequenceNum-13"
2350 ixNet setMultiAttrs $sg_field \
2353 -optionalEnabled true \
2354 -valueList [list 0] \
2361 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.noSequenceNum-14"
2362 ixNet setMultiAttrs $sg_field \
2365 -optionalEnabled true \
2366 -valueList [list 0] \
2371 -activeFieldChoice true \
2375 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2379 # Common fields for VXLAN and GRE
2380 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2381 set sg_stack $ixNetSG_Stack(2)/stack:"ethernetNoFCS-$stack_number"
2383 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2384 set ixNetSG_Stack(3) $sg_stack
2387 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.destinationAddress-1"
2388 ixNet setMultiAttrs $sg_field \
2389 -singleValue $inner_dstmac \
2391 -optionalEnabled true \
2392 -valueList [list 00:00:00:00:00:00] \
2393 -stepValue 00:00:00:00:00:00 \
2394 -fixedBits 00:00:00:00:00:00 \
2395 -fieldValue $inner_dstmac \
2396 -randomMask 00:00:00:00:00:00 \
2397 -startValue 00:00:00:00:00:00
2399 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.sourceAddress-2"
2400 ixNet setMultiAttrs $sg_field \
2401 -singleValue $inner_srcmac \
2403 -optionalEnabled true \
2404 -valueList [list 00:00:00:00:00:00] \
2405 -stepValue 00:00:00:00:00:00 \
2406 -fixedBits 00:00:00:00:00:00 \
2407 -fieldValue $inner_srcmac \
2408 -randomMask 00:00:00:00:00:00 \
2409 -startValue 00:00:00:00:00:00
2411 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.etherType-3"
2412 ixNet setMultiAttrs $sg_field \
2415 -optionalEnabled true \
2416 -valueList [list 0xFFFF] \
2421 -randomMask 0xFFFF \
2424 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-$stack_number"
2426 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2427 set ixNetSG_Stack(3) $sg_stack
2431 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-6"/field:"ipv4.header.version-1"/
2432 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
2433 ixNet setMultiAttrs $sg_field \
2436 -optionalEnabled true \
2437 -valueList [list 4] \
2444 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.headerLength-2"
2445 ixNet setMultiAttrs $sg_field \
2448 -optionalEnabled true \
2449 -valueList [list 0] \
2457 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.raw-3"
2458 ixNet setMultiAttrs $sg_field \
2461 -optionalEnabled true \
2462 -valueList [list 0] \
2469 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.precedence-4"
2470 ixNet setMultiAttrs $sg_field \
2473 -optionalEnabled true \
2474 -valueList [list 0] \
2477 -fieldValue "000\ Routine" \
2479 -activeFieldChoice true \
2482 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.delay-5"
2483 ixNet setMultiAttrs $sg_field \
2486 -optionalEnabled true \
2487 -valueList [list 0] \
2490 -fieldValue Normal \
2492 -activeFieldChoice true \
2495 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.throughput-6"
2496 ixNet setMultiAttrs $sg_field \
2499 -optionalEnabled true \
2500 -valueList [list 0] \
2503 -fieldValue Normal \
2505 -activeFieldChoice true \
2508 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.reliability-7"
2509 ixNet setMultiAttrs $sg_field \
2512 -optionalEnabled true \
2513 -valueList [list 0] \
2516 -fieldValue Normal \
2518 -activeFieldChoice true \
2521 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.monetary-8"
2522 ixNet setMultiAttrs $sg_field \
2525 -optionalEnabled true \
2526 -valueList [list 0] \
2529 -fieldValue Normal \
2531 -activeFieldChoice true \
2534 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.unused-9"
2535 ixNet setMultiAttrs $sg_field \
2538 -optionalEnabled true \
2539 -valueList [list 0] \
2544 -activeFieldChoice true \
2547 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.totalLength-18"
2548 ixNet setMultiAttrs $sg_field \
2551 -optionalEnabled true \
2552 -valueList [list 20] \
2560 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.identification-19"
2561 ixNet setMultiAttrs $sg_field \
2564 -optionalEnabled true \
2565 -valueList [list 0] \
2572 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.reserved-20"
2573 ixNet setMultiAttrs $sg_field \
2576 -optionalEnabled true \
2577 -valueList [list 0] \
2584 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.fragment-21"
2585 ixNet setMultiAttrs $sg_field \
2588 -optionalEnabled true \
2589 -valueList [list 0] \
2592 -fieldValue "May\ fragment" \
2596 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.lastFragment-22"
2597 ixNet setMultiAttrs $sg_field \
2600 -optionalEnabled true \
2601 -valueList [list 0] \
2604 -fieldValue "Last\ fragment" \
2608 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.fragmentOffset-23"
2609 ixNet setMultiAttrs $sg_field \
2612 -optionalEnabled true \
2613 -valueList [list 0] \
2620 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.ttl-24"
2621 ixNet setMultiAttrs $sg_field \
2624 -optionalEnabled true \
2625 -valueList [list 64] \
2632 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
2633 ixNet setMultiAttrs $sg_field \
2636 -optionalEnabled true \
2637 -valueList [list 61] \
2640 -fieldValue $inner_proto \
2645 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
2646 ixNet setMultiAttrs $sg_field \
2647 -singleValue 63355 \
2649 -optionalEnabled true \
2650 -valueList [list 0] \
2658 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
2659 ixNet setMultiAttrs $sg_field \
2660 -singleValue $inner_srcip \
2662 -optionalEnabled true \
2663 -valueList [list 0.0.0.0] \
2664 -stepValue 0.0.0.0 \
2665 -fixedBits 0.0.0.0 \
2666 -fieldValue $inner_srcip \
2667 -randomMask 0.0.0.0 \
2670 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
2671 ixNet setMultiAttrs $sg_field \
2672 -singleValue $inner_dstip \
2674 -optionalEnabled true \
2675 -valueList [list 0.0.0.0] \
2676 -stepValue 0.0.0.0 \
2677 -fixedBits 0.0.0.0 \
2678 -fieldValue $inner_dstip \
2679 -randomMask 0.0.0.0 \
2682 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
2683 ixNet setMultiAttrs $sg_field \
2686 -valueList [list 0] \
2694 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2696 if { [string compare $inner_proto "udp"] == 0 } {
2698 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
2700 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2701 set ixNetSG_Stack(3) $sg_stack
2704 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
2705 ixNet setMultiAttrs $sg_field \
2706 -singleValue $inner_srcport \
2708 -optionalEnabled true \
2709 -valueList [list 63] \
2712 -fieldValue $inner_srcport \
2717 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
2718 ixNet setMultiAttrs $sg_field \
2719 -singleValue $inner_dstport \
2721 -optionalEnabled true \
2722 -valueList [list 63] \
2725 -fieldValue $inner_dstport \
2730 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
2731 ixNet setMultiAttrs $sg_field \
2734 -optionalEnabled true \
2735 -valueList [list 8] \
2743 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
2744 ixNet setMultiAttrs $sg_field \
2747 -optionalEnabled true \
2748 -valueList [list 0] \
2756 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2760 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
2762 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2763 set ixNetSG_Stack(3) $sg_stack
2766 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
2767 ixNet setMultiAttrs $sg_field \
2768 -singleValue $inner_srcport \
2770 -optionalEnabled true \
2772 -valueList [list $inner_srcport] \
2775 -fieldValue $inner_srcport \
2778 -trackingEnabled false \
2779 -valueType singleValue \
2780 -activeFieldChoice false \
2784 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
2785 ixNet setMultiAttrs $sg_field \
2786 -singleValue $inner_dstport \
2788 -optionalEnabled true \
2790 -valueList [list $inner_dstport] \
2793 -fieldValue $inner_dstport \
2796 -trackingEnabled false \
2797 -valueType singleValue \
2798 -activeFieldChoice false \
2802 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
2803 ixNet setMultiAttrs $sg_field \
2806 -optionalEnabled true \
2808 -valueList [list 0x00000000] \
2809 -stepValue 0x00000000 \
2810 -fixedBits 0x00000000 \
2813 -randomMask 0x00000000 \
2814 -trackingEnabled false \
2815 -valueType singleValue \
2816 -activeFieldChoice false \
2817 -startValue 0x00000000 \
2820 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
2821 ixNet setMultiAttrs $sg_field \
2824 -optionalEnabled true \
2826 -valueList [list 0x00000000] \
2827 -stepValue 0x00000000 \
2828 -fixedBits 0x00000000 \
2831 -randomMask 0x00000000 \
2832 -trackingEnabled false \
2833 -valueType singleValue \
2834 -activeFieldChoice false \
2835 -startValue 0x00000000 \
2838 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
2839 ixNet setMultiAttrs $sg_field \
2842 -optionalEnabled true \
2844 -valueList [list 5] \
2850 -trackingEnabled false \
2851 -valueType singleValue \
2852 -activeFieldChoice false \
2856 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
2857 ixNet setMultiAttrs $sg_field \
2860 -optionalEnabled true \
2862 -valueList [list 0] \
2868 -trackingEnabled false \
2869 -valueType singleValue \
2870 -activeFieldChoice false \
2874 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
2875 ixNet setMultiAttrs $sg_field \
2878 -optionalEnabled true \
2880 -valueList [list 0] \
2886 -trackingEnabled false \
2887 -valueType singleValue \
2888 -activeFieldChoice false \
2892 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
2893 ixNet setMultiAttrs $sg_field \
2896 -optionalEnabled true \
2898 -valueList [list 0] \
2904 -trackingEnabled false \
2905 -valueType singleValue \
2906 -activeFieldChoice false \
2910 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
2911 ixNet setMultiAttrs $sg_field \
2914 -optionalEnabled true \
2916 -valueList [list 0] \
2922 -trackingEnabled false \
2923 -valueType singleValue \
2924 -activeFieldChoice false \
2928 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
2929 ixNet setMultiAttrs $sg_field \
2932 -optionalEnabled true \
2934 -valueList [list 0] \
2940 -trackingEnabled false \
2941 -valueType singleValue \
2942 -activeFieldChoice false \
2946 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
2947 ixNet setMultiAttrs $sg_field \
2950 -optionalEnabled true \
2952 -valueList [list 0] \
2958 -trackingEnabled false \
2959 -valueType singleValue \
2960 -activeFieldChoice false \
2964 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
2965 ixNet setMultiAttrs $sg_field \
2968 -optionalEnabled true \
2970 -valueList [list 0] \
2976 -trackingEnabled false \
2977 -valueType singleValue \
2978 -activeFieldChoice false \
2982 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
2983 ixNet setMultiAttrs $sg_field \
2986 -optionalEnabled true \
2988 -valueList [list 0] \
2994 -trackingEnabled false \
2995 -valueType singleValue \
2996 -activeFieldChoice false \
3000 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
3001 ixNet setMultiAttrs $sg_field \
3004 -optionalEnabled true \
3006 -valueList [list 0] \
3012 -trackingEnabled false \
3013 -valueType singleValue \
3014 -activeFieldChoice false \
3018 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
3019 ixNet setMultiAttrs $sg_field \
3022 -optionalEnabled true \
3024 -valueList [list 0] \
3030 -trackingEnabled false \
3031 -valueType singleValue \
3032 -activeFieldChoice false \
3036 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
3037 ixNet setMultiAttrs $sg_field \
3040 -optionalEnabled true \
3042 -valueList [list 0x0000] \
3047 -randomMask 0x0000 \
3048 -trackingEnabled false \
3049 -valueType singleValue \
3050 -activeFieldChoice false \
3051 -startValue 0x0000 \
3054 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
3055 ixNet setMultiAttrs $sg_field \
3058 -optionalEnabled true \
3060 -valueList [list 0x0000] \
3065 -randomMask 0x0000 \
3066 -trackingEnabled false \
3067 -valueType singleValue \
3068 -activeFieldChoice false \
3069 -startValue 0x0000 \
3072 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
3073 ixNet setMultiAttrs $sg_field \
3076 -optionalEnabled true \
3078 -valueList [list 0x0000] \
3083 -randomMask 0x0000 \
3084 -trackingEnabled false \
3085 -valueType singleValue \
3086 -activeFieldChoice false \
3087 -startValue 0x0000 \
3090 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3094 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-$stack_number"
3096 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3097 set ixNetSG_Stack(3) $sg_stack
3100 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3101 ixNet setMultiAttrs $sg_field \
3104 -optionalEnabled true \
3105 -valueList [list 0] \
3115 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"
3117 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-4"
3119 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3120 set ixNetSG_Stack(3) $sg_stack
3123 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"/field:"ethernet.fcs-1"
3125 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3126 ixNet setMultiAttrs $sg_field \
3129 -optionalEnabled True \
3137 -trackingEnabled False \
3138 -valueType singleValue \
3139 -activeFieldChoice False \
3143 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3146 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/transmissionDistribution
3148 set sg_transmissionDistribution $ixNetSG_Stack(2)/transmissionDistribution
3149 ixNet setMultiAttrs $sg_transmissionDistribution \
3152 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3155 # configuring the object that corresponds to /traffic/trafficItem:1/transmissionDistribution
3157 set sg_transmissionDistribution $ixNetSG_Stack(1)/transmissionDistribution
3158 ixNet setMultiAttrs $sg_transmissionDistribution \
3162 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3165 # configuring the object that corresponds to /traffic/trafficItem:1/tracking
3167 set sg_tracking $ixNetSG_Stack(1)/tracking
3168 ixNet setMultiAttrs $sg_tracking \
3170 -oneToOneMesh False \
3173 -fieldWidth thirtyTwoBits \
3174 -protocolOffset {Root.0}
3175 ixNet setMultiAttrs $sg_tracking/egress \
3176 -offset {Outer VLAN Priority (3 bits)} \
3178 -customOffsetBits 0 \
3179 -encapsulation {Ethernet} \
3181 ixNet setMultiAttrs $sg_tracking/latencyBin \
3183 -binLimits {1 1.42 2 2.82 4 5.66 8 11.32} \
3186 set sg_tracking [lindex [ixNet remapIds $sg_tracking] 0]
3187 set ixNetSG_Stack(2) $sg_tracking
3190 # Note: The scriptgen generated egress code were removed because we are not using
3191 # flow tracking in our tests.
3192 # Insert EGRESS lines here if needed
3196 # configuring the object that corresponds to /traffic/trafficItem:1/dynamicUpdate
3198 set sg_dynamicUpdate $ixNetSG_Stack(1)/dynamicUpdate
3199 ixNet setMultiAttrs $sg_dynamicUpdate \
3200 -enabledSessionAwareTrafficFields {} \
3201 -enabledDynamicUpdateFields {}
3203 set sg_dynamicUpdate [lindex [ixNet remapIds $sg_dynamicUpdate] 0]
3210 # configuring the object that corresponds to /quickTest/rfc2544throughput:1
3212 if {$rfc2544TestType == "throughput"} {
3213 set sg_rfc2544throughput [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544throughput]
3214 ixNet setMultiAttrs $sg_rfc2544throughput \
3215 -name {QuickTest1} \
3216 -mode existingMode \
3217 -inputParameters {{}}
3218 ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \
3220 -enableMinFrameSize False \
3221 -framesize $frameSize \
3222 -reportTputRateUnit mbps \
3223 -duration $duration \
3224 -numtrials $numTests \
3225 -trafficType constantLoading \
3227 -framesPerBurstGap 1 \
3229 -frameLossUnit {0} \
3230 -staggeredStart False \
3231 -framesizeList $frameSize \
3232 -frameSizeMode custom \
3233 -rateSelect percentMaxRate \
3234 -percentMaxRate 100 \
3236 -forceRegenerate False \
3237 -reportSequenceError False \
3240 -loadRateList $frameRate \
3241 -fixedLoadUnit percentMaxRate \
3243 -incrementLoadUnit percentMaxRate \
3244 -initialIncrementLoadRate 10 \
3245 -stepIncrementLoadRate 10 \
3246 -maxIncrementLoadRate 100 \
3247 -randomLoadUnit percentMaxRate \
3248 -minRandomLoadRate 10 \
3249 -maxRandomLoadRate 80 \
3250 -countRandomLoadRate 1 \
3254 -delayAfterTransmit 2 \
3255 -minRandomFrameSize 64 \
3256 -maxRandomFrameSize 1518 \
3257 -countRandomFrameSize 1 \
3258 -minIncrementFrameSize 64 \
3259 -stepIncrementFrameSize 64 \
3260 -maxIncrementFrameSize 1518 \
3261 -calculateLatency True \
3262 -latencyType storeForward \
3263 -calculateJitter False \
3264 -enableDataIntegrity False \
3265 -enableBackoffIteration False \
3266 -enableSaturationIteration False \
3267 -enableStopTestOnHighLoss False \
3268 -enableBackoffUseAs% False \
3269 -backoffIteration 1 \
3270 -saturationIteration 1 \
3271 -stopTestOnHighLoss 0 \
3272 -loadType $loadType \
3273 -stepLoadUnit percentMaxRate \
3274 -customLoadUnit percentMaxRate \
3275 -comboLoadUnit percentMaxRate \
3276 -binaryLoadUnit percentMaxRate \
3277 -initialBinaryLoadRate 100 \
3278 -minBinaryLoadRate 1 \
3279 -maxBinaryLoadRate 100 \
3280 -binaryResolution 1 \
3282 -binaryTolerance $tolerance \
3283 -binaryFrameLossUnit % \
3284 -comboFrameLossUnit % \
3285 -stepFrameLossUnit % \
3286 -initialStepLoadRate 10 \
3287 -maxStepLoadRate 100 \
3288 -stepStepLoadRate 10 \
3290 -initialComboLoadRate 10 \
3291 -maxComboLoadRate 100 \
3292 -minComboLoadRate 10 \
3293 -stepComboLoadRate 10 \
3294 -comboResolution 1 \
3297 -binarySearchType linear \
3298 -unchangedValueList {0} \
3299 -enableFastConvergence $fastConvergence \
3300 -fastConvergenceDuration $convergenceDuration \
3301 -fastConvergenceThreshold 10 \
3302 -framesizeFixedValue $frameSize \
3304 -unchangedInitial False \
3305 -generateTrackingOptionAggregationFiles False \
3306 -enableExtraIterations False \
3307 -extraIterationOffsets {10, -10} \
3308 -usePercentOffsets False \
3309 -imixDistribution weight \
3312 -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}}}} \
3313 -imixEnabled False \
3314 -imixTemplates none \
3315 -framesizeImixList $frameSize \
3316 -imixTrafficType {UNCHNAGED} \
3317 -mapType {oneToOne} \
3318 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3319 ixNet setMultiAttrs $sg_rfc2544throughput/learnFrames \
3320 -learnFrequency $learningFrequency \
3321 -learnNumFrames 10 \
3323 -learnWaitTime 1000 \
3324 -learnFrameSize $frameSize \
3325 -fastPathLearnFrameSize $frameSize \
3326 -learnWaitTimeBeforeTransmit 0 \
3327 -learnSendMacOnly False \
3328 -learnSendRouterSolicitation False \
3329 -fastPathEnable $fastPathEnable \
3331 -fastPathNumFrames 10
3332 ixNet setMultiAttrs $sg_rfc2544throughput/passCriteria \
3333 -passCriteriaLoadRateMode average \
3334 -passCriteriaLoadRateValue 100 \
3335 -passCriteriaLoadRateScale mbps \
3336 -enablePassFail False \
3337 -enableRatePassFail False \
3338 -enableLatencyPassFail False \
3339 -enableStandardDeviationPassFail False \
3340 -latencyThresholdValue 10 \
3341 -latencyThresholdScale us \
3342 -latencyThresholdMode average \
3343 -latencyVariationThresholdValue 0 \
3344 -latencyVariationThresholdScale us \
3345 -latencyVarThresholdMode average \
3346 -enableSequenceErrorsPassFail False \
3347 -seqErrorsThresholdValue 0 \
3348 -seqErrorsThresholdMode average \
3349 -enableDataIntegrityPassFail False \
3350 -dataErrorThresholdValue 0 \
3351 -dataErrorThresholdMode average
3353 set sg_rfc2544throughput [lindex [ixNet remapIds $sg_rfc2544throughput] 0]
3354 set ixNetSG_Stack(1) $sg_rfc2544throughput
3357 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/protocols
3359 set sg_protocols $ixNetSG_Stack(1)/protocols
3360 ixNet setMultiAttrs $sg_protocols \
3361 -protocolState default \
3362 -waitAfterStart 120 \
3365 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3368 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/trafficSelection:1
3370 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3371 ixNet setMultiAttrs $sg_trafficSelection \
3372 -id $ixNetSG_ref(26) \
3373 -includeMode inTest \
3374 -itemType trafficItem
3376 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3379 } elseif {$rfc2544TestType == "back2back"} {
3381 # configuring the object that corresponds to /quickTest/rfc2544back2back:2
3383 set sg_rfc2544back2back [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544back2back]
3384 ixNet setMultiAttrs $sg_rfc2544back2back \
3386 -mode existingMode \
3387 -inputParameters {{}}
3388 ixNet setMultiAttrs $sg_rfc2544back2back/testConfig \
3390 -framesize $frameSize \
3391 -reportTputRateUnit mbps \
3392 -rfc2544ImixDataQoS False \
3393 -detailedResultsEnabled True \
3394 -rfc2889ordering noOrdering \
3395 -floodedFramesEnabled False \
3396 -duration $duration \
3397 -numtrials $numTests \
3398 -trafficType constantLoading \
3400 -framesPerBurstGap 1 \
3402 -frameLossUnit {0} \
3403 -staggeredStart False \
3404 -framesizeList $frameSize \
3405 -frameSizeMode custom \
3406 -rateSelect percentMaxRate \
3407 -percentMaxRate 100 \
3409 -forceRegenerate False \
3410 -reportSequenceError False \
3413 -loadRateList $frameRate \
3417 -delayAfterTransmit 2 \
3418 -minRandomFrameSize 64 \
3419 -maxRandomFrameSize 1518 \
3420 -countRandomFrameSize 1 \
3421 -minIncrementFrameSize 64 \
3422 -stepIncrementFrameSize 64 \
3423 -maxIncrementFrameSize 1518 \
3424 -calculateLatency False \
3425 -calibrateLatency False \
3426 -latencyType cutThrough \
3427 -calculateJitter False \
3428 -enableDataIntegrity False \
3429 -loadType $loadType \
3430 -binaryFrameLossUnit % \
3431 -loadUnit percentMaxRate \
3432 -customLoadUnit percentMaxRate \
3433 -randomLoadUnit percentMaxRate \
3434 -incrementLoadUnit percentMaxRate \
3435 -binaryResolution 100 \
3437 -binaryTolerance $tolerance \
3438 -initialIncrementLoadRate 100 \
3439 -stepIncrementLoadRate 10 \
3440 -maxIncrementLoadRate 100 \
3441 -minRandomLoadRate 10 \
3442 -maxRandomLoadRate 80 \
3443 -countRandomLoadRate 1 \
3444 -numFrames {100000} \
3446 -enableMinFrameSize False \
3448 -generateTrackingOptionAggregationFiles False \
3449 -sendFullyMeshed False \
3450 -imixDistribution weight \
3453 -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}}}} \
3454 -imixEnabled False \
3455 -imixTemplates none \
3456 -framesizeImixList $frameSize \
3457 -imixTrafficType {UNCHNAGED} \
3458 -ipRatioMode fixed \
3459 -ipv4RatioList {10,25,50,75,90} \
3460 -ipv6RatioList {90,75,50,25,10} \
3461 -minIncrementIpv4Ratio {10} \
3462 -stepIncrementIpv4Ratio {10} \
3463 -maxIncrementIpv4Ratio {90} \
3464 -minIncrementIpv6Ratio {90} \
3465 -stepIncrementIpv6Ratio {-10} \
3466 -maxIncrementIpv6Ratio {10} \
3467 -minRandomIpv4Ratio {10} \
3468 -maxRandomIpv4Ratio {90} \
3469 -minRandomIpv6Ratio {90} \
3470 -maxRandomIpv6Ratio {10} \
3471 -countRandomIpRatio 1 \
3472 -mapType {oneToOne|manyToMany|fullMesh} \
3473 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3474 ixNet setMultiAttrs $sg_rfc2544back2back/learnFrames \
3475 -learnFrequency $learningFrequency \
3476 -learnNumFrames 10 \
3478 -learnWaitTime 1000 \
3479 -learnFrameSize 64 \
3480 -fastPathLearnFrameSize 64 \
3481 -learnWaitTimeBeforeTransmit 0 \
3482 -learnSendMacOnly False \
3483 -learnSendRouterSolicitation False \
3484 -fastPathEnable $fastPathEnable \
3486 -fastPathNumFrames 10
3487 ixNet setMultiAttrs $sg_rfc2544back2back/passCriteria \
3488 -passCriteriaLoadRateMode average \
3489 -passCriteriaLoadRateValue 100 \
3490 -passCriteriaLoadRateScale mbps \
3491 -enablePassFail False \
3492 -enableRatePassFail False \
3493 -enableLatencyPassFail False \
3494 -enableStandardDeviationPassFail False \
3495 -latencyThresholdValue 10 \
3496 -latencyThresholdScale us \
3497 -latencyThresholdMode average \
3498 -latencyVariationThresholdValue 0 \
3499 -latencyVariationThresholdScale us \
3500 -latencyVarThresholdMode average \
3501 -enableSequenceErrorsPassFail False \
3502 -seqErrorsThresholdValue 0 \
3503 -seqErrorsThresholdMode average \
3504 -enableDataIntegrityPassFail False \
3505 -dataErrorThresholdValue 0 \
3506 -dataErrorThresholdMode average \
3507 -enableFrameCountPassFail False \
3508 -passCriteriaFrameCountValue 100 \
3509 -passCriteriaFrameCountMode average
3511 set sg_rfc2544back2back [lindex [ixNet remapIds $sg_rfc2544back2back] 0]
3512 set ixNetSG_Stack(1) $sg_rfc2544back2back
3515 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/protocols
3517 set sg_protocols $ixNetSG_Stack(1)/protocols
3518 ixNet setMultiAttrs $sg_protocols \
3519 -protocolState default \
3520 -waitAfterStart 120 \
3523 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3526 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/trafficSelection:1
3528 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3529 ixNet setMultiAttrs $sg_trafficSelection \
3530 -id $ixNetSG_ref(26) \
3531 -includeMode inTest \
3532 -itemType trafficItem
3534 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3539 # getting and applying the RFC2544 test
3541 set root [ixNet getRoot]
3542 foreach traf_item [ixNet getList $root/traffic trafficItem] {
3543 ixNet exec generate $traf_item
3546 set qt [ixNet getList $root quickTest]
3547 if {$rfc2544TestType == "throughput"} {
3548 set rfc2544test [ixNet getList $qt rfc2544throughput]
3549 } elseif {$rfc2544TestType == "back2back"} {
3550 set rfc2544test [ixNet getList $qt rfc2544back2back]
3552 ixNet exec apply $rfc2544test
3556 # starting the RFC2544 Throughput test
3558 puts "Starting test..."
3559 ixNet exec start $rfc2544test
3562 proc waitForRfc2544Test { } {
3563 # Wait for- and return results of- RFC2544 quicktest.
3567 puts "Waiting for test to complete..."
3568 set result [ixNet exec waitForTest $rfc2544test]
3569 puts "Finished Test"