3 # Copyright (c) 2014, Ixia
4 # Copyright (c) 2015-2018, Intel Corporation, Tieto
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]
88 set L3ValueType singleValue
90 set L4ValueType singleValue
93 # RFC2544 to IXIA terminology mapping (it affects Ixia configuration inside this script):
97 set numTests [dict get $testSpec tests]
99 set tolerance [dict get $testSpec lossrate]
103 set frameRate [dict get $testSpec framerate]
108 set learningFrames True
110 if {$learningFrames} {
111 set learningFrequency oncePerTest
112 set fastPathEnable True
114 set learningFrequency never
115 set fastPathEnable False
118 set multipleStreams [dict get $testSpec multipleStreams]
119 set streamType [dict get $testSpec streamType]
121 if {($multipleStreams < 0)} {
122 set multipleStreams 0
125 if {$multipleStreams} {
126 if {($streamType == "L2")} {
127 set L2CountValue $multipleStreams
129 } elseif {($streamType == "L3")} {
130 set L3ValueType increment
131 set L3CountValue $multipleStreams
133 set L4ValueType increment
134 set L4CountValue $multipleStreams
138 set fastConvergence True
139 set convergenceDuration [expr $duration/10]
143 # extract nested dictionaries
144 set trafficSpec_l2 [dict get $trafficSpec l2]
145 set trafficSpec_l3 [dict get $trafficSpec l3]
146 set trafficSpec_l4 [dict get $trafficSpec l4]
147 set trafficSpec_vlan [dict get $trafficSpec vlan]
149 set frameSize [dict get $trafficSpec_l2 framesize]
150 set srcMac [dict get $trafficSpec_l2 srcmac]
151 set dstMac [dict get $trafficSpec_l2 dstmac]
153 set srcPort [dict get $trafficSpec_l4 srcport]
154 set dstPort [dict get $trafficSpec_l4 dstport]
156 # Tested protocols: udp, tcp, gre
157 set proto [dict get $trafficSpec_l3 proto]
158 set proto [string tolower $proto]
159 set srcIp [dict get $trafficSpec_l3 srcip]
160 set dstIp [dict get $trafficSpec_l3 dstip]
163 if { [string compare $proto "tcp"] == 0 } {
168 set vxlan_enabled [dict exists $trafficSpec_l4 vni]
169 set geneve_enabled [dict exists $trafficSpec_l4 geneve_vni]
171 if { $vxlan_enabled } {
172 puts "VXLAN is enabled. Setting VXLAN variables"
173 set vni [dict get $trafficSpec_l4 vni]
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]
182 } elseif { $geneve_enabled } {
183 puts "GENEVE is enabled. Setting GENEVE variables"
184 set geneve_vni [dict get $trafficSpec_l4 geneve_vni]
185 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
186 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
187 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
188 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
189 set inner_proto [dict get $trafficSpec_l4 inner_proto]
190 set inner_proto [string tolower $inner_proto]
191 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
192 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
195 set gre_enabled False
196 if { [string compare $proto "gre"] == 0 } {
197 puts "GRE is enabled. Setting GRE variables"
200 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
201 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
202 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
203 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
204 set inner_proto [dict get $trafficSpec_l4 inner_proto]
205 set inner_proto [string tolower $inner_proto]
206 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
207 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
210 if {$frameSize < 68 } {
211 if {$rfc2544TestType == "back2back"} {
212 puts "INFO: Packet size too small, packet size will be \
213 increased to 68 for this test"
218 set VERSION [package require IxTclNetwork]
220 ###################################################################
221 ############################ Operation ############################
222 ###################################################################
224 puts "Connecting to IxNetwork machine..."
226 ixNet connect $::IxNserver -port $::IxNport -version $VERSION
228 puts "Connected to IxNetwork machine"
230 puts "Configuring IxNetwork machine..."
233 proc sg_commit {} {ixNet commit}
236 ixNet setSessionParameter version 6.30.701.16
237 ixNet execute newConfig
238 set ixNetSG_Stack(0) [ixNet getRoot]
241 # setting global options
243 set sg_top [ixNet getRoot]
244 ixNet setMultiAttrs $sg_top/availableHardware \
247 ixNet setMultiAttrs $sg_top/globals/preferences \
248 -connectPortsOnLoadConfig True \
249 -rebootPortsOnConnect False
250 ixNet setMultiAttrs $sg_top/globals/interfaces \
253 -sendSingleArpPerGateway True \
254 -sendSingleNsPerGateway True
255 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/checksums \
256 -dropRxL2FcsErrors False \
257 -correctTxL2FcsErrors False \
258 -alwaysCorrectWhenModifying True \
259 -correctTxChecksumOverIp False \
260 -correctTxIpv4Checksum False
261 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/rxRateLimit \
264 -units {kKilobitsPerSecond}
265 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/drop \
269 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/reorder \
274 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/duplicate \
279 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/bitError \
284 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delay \
287 -units {kMicroseconds}
288 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delayVariation \
291 -units {kMicroseconds} \
292 -distribution {kUniform} \
293 -exponentialMeanArrival 0 \
294 -gaussianStandardDeviation 0
295 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/customDelayVariation \
298 ixNet setMultiAttrs $sg_top/statistics \
299 -additionalFcoeStat2 fcoeInvalidFrames \
300 -csvLogPollIntervalMultiplier 1 \
302 -guardrailEnabled True \
303 -enableCsvLogging False \
304 -dataStorePollingIntervalMultiplier 1 \
305 -maxNumberOfStatsPerCustomGraph 16 \
306 -additionalFcoeStat1 fcoeInvalidDelimiter \
307 -timestampPrecision 3 \
308 -enableDataCenterSharedStats False \
309 -timeSynchronization syncTimeToTestStart \
310 -enableAutoDataStore False
311 ixNet setMultiAttrs $sg_top/statistics/measurementMode \
312 -measurementMode mixedMode
313 ixNet setMultiAttrs $sg_top/eventScheduler \
314 -licenseServerLocation {127.0.0.1}
315 ixNet setMultiAttrs $sg_top/traffic \
316 -destMacRetryCount 1 \
317 -maxTrafficGenerationQueries 500 \
318 -enableStaggeredTransmit False \
319 -learningFrameSize $frameSize \
321 -enableDestMacRetry True \
322 -enableMulticastScalingFactor False \
323 -destMacRetryDelay 5 \
324 -largeErrorThreshhold 2 \
325 -refreshLearnedInfoBeforeApply False \
326 -enableMinFrameSize False \
327 -macChangeOnFly False \
329 -enableInstantaneousStatsSupport False \
330 -learningFramesCount 10 \
331 -globalStreamControl continuous \
332 -displayMplsCurrentLabelValue False \
333 -mplsLabelLearningTimeout 30 \
334 -enableStaggeredStartDelay True \
335 -enableDataIntegrityCheck False \
336 -enableSequenceChecking False \
337 -globalStreamControlIterations 1 \
338 -enableStreamOrdering False \
339 -frameOrderingMode none \
340 -learningFramesRate 100
341 ixNet setMultiAttrs $sg_top/traffic/statistics/latency \
344 ixNet setMultiAttrs $sg_top/traffic/statistics/interArrivalTimeRate \
346 ixNet setMultiAttrs $sg_top/traffic/statistics/delayVariation \
348 -statisticsMode rxDelayVariationErrorsAndRate \
349 -latencyMode storeForward \
350 -largeSequenceNumberErrorThreshold 2
351 ixNet setMultiAttrs $sg_top/traffic/statistics/sequenceChecking \
353 -sequenceMode rxThreshold
354 ixNet setMultiAttrs $sg_top/traffic/statistics/advancedSequenceChecking \
356 -advancedSequenceThreshold 1
357 ixNet setMultiAttrs $sg_top/traffic/statistics/cpdpConvergence \
359 -dataPlaneJitterWindow 10485760 \
360 -dataPlaneThreshold 95 \
361 -enableDataPlaneEventsRateMonitor False \
362 -enableControlPlaneEvents False
363 ixNet setMultiAttrs $sg_top/traffic/statistics/packetLossDuration \
365 ixNet setMultiAttrs $sg_top/traffic/statistics/dataIntegrity \
367 ixNet setMultiAttrs $sg_top/traffic/statistics/errorStats \
369 ixNet setMultiAttrs $sg_top/traffic/statistics/prbs \
371 ixNet setMultiAttrs $sg_top/traffic/statistics/iptv \
373 ixNet setMultiAttrs $sg_top/traffic/statistics/l1Rates \
375 ixNet setMultiAttrs $sg_top/quickTest/globals \
376 -productLabel {Your switch/router name here} \
377 -serialNumber {Your switch/router serial number here} \
378 -version {Your firmware version here} \
380 -titlePageComments {} \
381 -maxLinesToDisplay 100 \
382 -enableCheckLinkState False \
383 -enableAbortIfLinkDown False \
384 -enableSwitchToStats True \
385 -enableCapture False \
386 -enableSwitchToResult True \
387 -enableGenerateReportAfterRun False \
388 -enableRebootCpu False \
389 -saveCaptureBeforeRun False \
391 -sleepTimeAfterReboot 10 \
392 -useDefaultRootPath False \
393 -outputRootPath $::output_dir
395 set sg_top [lindex [ixNet remapIds $sg_top] 0]
396 set ixNetSG_Stack(0) $sg_top
403 # configuring the object that corresponds to /vport:1
405 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
406 ixNet setMultiAttrs $sg_vport \
407 -transmitIgnoreLinkStatus False \
408 -txGapControlMode averageMode \
410 -connectedTo ::ixNet::OBJ-null \
411 -txMode interleaved \
413 -rxMode captureAndMeasure \
414 -name {10GE LAN - 001}
415 ixNet setMultiAttrs $sg_vport/l1Config \
416 -currentType tenGigLan
417 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
419 -flowControlDirectedAddress "01 80 C2 00 00 01" \
421 -autoInstrumentation endOfFrame \
422 -transmitClocking internal \
423 -txIgnoreRxLinkFaults False \
425 -enableLASIMonitoring False \
426 -enabledFlowControl True
427 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
431 -vendorSpecificInformation {00 00 00 00} \
432 -macAddress "00:00:00:00:00:00" \
436 -enableTlvOption False \
438 -organizationUniqueIdentifier {000000}
439 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
440 -supportDataCenterMode False \
441 -priorityGroupSize priorityGroupSize-8 \
443 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
444 -flowControlType ieee802.1Qbb \
445 -enablePFCPauseDelay False
446 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
448 -flowControlDirectedAddress "01 80 C2 00 00 01" \
450 -autoInstrumentation endOfFrame \
451 -transmitClocking internal \
452 -txIgnoreRxLinkFaults False \
454 -enableLASIMonitoring False \
455 -enabledFlowControl False
456 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
457 -supportDataCenterMode False \
458 -priorityGroupSize priorityGroupSize-8 \
460 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
461 -flowControlType ieee802.1Qbb \
462 -enablePFCPauseDelay False
463 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
467 -vendorSpecificInformation {00 00 00 00} \
468 -macAddress "00:00:00:00:00:00" \
472 -enableTlvOption False \
474 -organizationUniqueIdentifier {000000}
475 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
476 -sourceAddress1Mask {00:00:00:00:00:00} \
477 -destinationAddress1Mask {00:00:00:00:00:00} \
478 -sourceAddress2 {00:00:00:00:00:00} \
479 -pattern2OffsetType fromStartOfFrame \
482 -sourceAddress2Mask {00:00:00:00:00:00} \
483 -destinationAddress2 {00:00:00:00:00:00} \
484 -destinationAddress1 {00:00:00:00:00:00} \
485 -sourceAddress1 {00:00:00:00:00:00} \
487 -destinationAddress2Mask {00:00:00:00:00:00} \
491 -pattern1OffsetType fromStartOfFrame
492 ixNet setMultiAttrs $sg_vport/protocols/arp \
494 ixNet setMultiAttrs $sg_vport/protocols/bfd \
497 -packetsPerInterval 0
498 ixNet setMultiAttrs $sg_vport/protocols/bgp \
499 -autoFillUpDutIp False \
500 -disableReceivedUpdateValidation False \
501 -enableAdVplsPrefixLengthInBits False \
502 -enableExternalActiveConnect True \
503 -enableInternalActiveConnect True \
504 -enableVpnLabelExchangeOverLsp True \
507 -externalRetryDelay 120 \
509 -internalRetryDelay 120 \
511 -triggerVplsPwInitiation False
512 ixNet setMultiAttrs $sg_vport/protocols/cfm \
513 -enableOptionalLmFunctionality False \
514 -enableOptionalTlvValidation True \
518 -suppressErrorsOnAis True
519 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
521 ixNet setMultiAttrs $sg_vport/protocols/elmi \
523 ixNet setMultiAttrs $sg_vport/protocols/igmp \
528 -sendLeaveOnStop True \
529 -statsEnabled False \
531 ixNet setMultiAttrs $sg_vport/protocols/isis \
532 -allL1RbridgesMac "01:80:c2:00:00:40" \
533 -emulationType isisL3Routing \
535 -helloMulticastMac "01:80:c2:00:00:41" \
536 -lspMgroupPdusPerInterval 0 \
538 -rateControlInterval 0 \
539 -sendP2PHellosToUnicastMac True \
540 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
541 -spbHelloMulticastMac "09:00:2b:00:00:05" \
543 ixNet setMultiAttrs $sg_vport/protocols/lacp \
544 -enablePreservePartnerInfo False \
546 ixNet setMultiAttrs $sg_vport/protocols/ldp \
547 -enableDiscardSelfAdvFecs False \
548 -enableHelloJitter True \
549 -enableVpnLabelExchangeOverLsp True \
553 -keepAliveHoldTime 30 \
554 -keepAliveInterval 10 \
555 -p2mpCapabilityParam 1288 \
557 -targetedHelloInterval 15 \
558 -targetedHoldTime 45 \
559 -useTransportLabelsForMplsOam False
560 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
562 ixNet setMultiAttrs $sg_vport/protocols/lisp \
563 -burstIntervalInMs 0 \
565 -ipv4MapRegisterPacketsPerBurst 0 \
566 -ipv4MapRequestPacketsPerBurst 0 \
567 -ipv4SmrPacketsPerBurst 0 \
568 -ipv6MapRegisterPacketsPerBurst 0 \
569 -ipv6MapRequestPacketsPerBurst 0 \
570 -ipv6SmrPacketsPerBurst 0
571 ixNet setMultiAttrs $sg_vport/protocols/mld \
572 -enableDoneOnStop True \
574 -mldv2Report type143 \
579 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
581 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
582 -apsChannelType {00 02 } \
583 -bfdCcChannelType {00 07 } \
584 -delayManagementChannelType {00 05 } \
585 -enableHighPerformanceMode True \
587 -faultManagementChannelType {00 58 } \
588 -lossMeasurementChannelType {00 04 } \
589 -onDemandCvChannelType {00 09 } \
590 -pwStatusChannelType {00 0B } \
591 -y1731ChannelType {7F FA }
592 ixNet setMultiAttrs $sg_vport/protocols/ospf \
593 -enableDrOrBdr False \
595 -floodLinkStateUpdatesPerInterval 0 \
596 -rateControlInterval 0
597 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
599 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
600 -bsmFramePerInterval 0 \
601 -crpFramePerInterval 0 \
602 -dataMdtFramePerInterval 0 \
603 -denyGrePimIpPrefix {0.0.0.0/32} \
604 -enableDiscardJoinPruneProcessing False \
605 -enableRateControl False \
607 -helloMsgsPerInterval 0 \
609 -joinPruneMessagesPerInterval 0 \
610 -registerMessagesPerInterval 0 \
611 -registerStopMessagesPerInterval 0
612 ixNet setMultiAttrs $sg_vport/protocols/ping \
614 ixNet setMultiAttrs $sg_vport/protocols/rip \
616 ixNet setMultiAttrs $sg_vport/protocols/ripng \
618 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
619 -enableControlLspInitiationRate False \
620 -enableShowTimeValue False \
621 -enableVpnLabelExchangeOverLsp True \
623 -maxLspInitiationsPerSec 400 \
624 -useTransportLabelsForMplsOam False
625 ixNet setMultiAttrs $sg_vport/protocols/stp \
627 ixNet setMultiAttrs $sg_vport/rateControlParameters \
628 -maxRequestsPerBurst 1 \
629 -maxRequestsPerSec 250 \
630 -minRetryInterval 10 \
632 -sendInBursts False \
633 -sendRequestsAsFastAsPossible False
634 ixNet setMultiAttrs $sg_vport/capture \
635 -controlCaptureTrigger {} \
636 -controlCaptureFilter {} \
637 -hardwareEnabled False \
638 -softwareEnabled False \
639 -displayFiltersDataCapture {} \
640 -displayFiltersControlCapture {} \
641 -controlBufferSize 30 \
642 -controlBufferBehaviour bufferLiveNonCircular
643 ixNet setMultiAttrs $sg_vport/protocolStack/options \
644 -routerSolicitationDelay 1 \
645 -routerSolicitationInterval 4 \
646 -routerSolicitations 3 \
650 -ipv4RetransTime 3000 \
653 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
654 set ixNetSG_ref(2) $sg_vport
655 set ixNetSG_Stack(1) $sg_vport
658 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:1
660 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
661 ixNet setMultiAttrs $sg_uds \
662 -destinationAddressSelector anyAddr \
663 -customFrameSizeTo 0 \
664 -customFrameSizeFrom 0 \
666 -patternSelector anyPattern \
667 -sourceAddressSelector anyAddr \
671 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
674 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:2
676 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
677 ixNet setMultiAttrs $sg_uds \
678 -destinationAddressSelector anyAddr \
679 -customFrameSizeTo 0 \
680 -customFrameSizeFrom 0 \
682 -patternSelector anyPattern \
683 -sourceAddressSelector anyAddr \
687 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
690 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:3
692 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
693 ixNet setMultiAttrs $sg_uds \
694 -destinationAddressSelector anyAddr \
695 -customFrameSizeTo 0 \
696 -customFrameSizeFrom 0 \
698 -patternSelector anyPattern \
699 -sourceAddressSelector anyAddr \
703 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
706 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:4
708 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
709 ixNet setMultiAttrs $sg_uds \
710 -destinationAddressSelector anyAddr \
711 -customFrameSizeTo 0 \
712 -customFrameSizeFrom 0 \
714 -patternSelector anyPattern \
715 -sourceAddressSelector anyAddr \
719 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
722 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:5
724 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
725 ixNet setMultiAttrs $sg_uds \
726 -destinationAddressSelector anyAddr \
727 -customFrameSizeTo 0 \
728 -customFrameSizeFrom 0 \
730 -patternSelector anyPattern \
731 -sourceAddressSelector anyAddr \
735 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
738 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:6
740 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
741 ixNet setMultiAttrs $sg_uds \
742 -destinationAddressSelector anyAddr \
743 -customFrameSizeTo 0 \
744 -customFrameSizeFrom 0 \
746 -patternSelector anyPattern \
747 -sourceAddressSelector anyAddr \
751 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
754 # configuring the object that corresponds to /vport:1/protocols/static/lan:1
756 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
757 ixNet setMultiAttrs $sg_lan \
758 -atmEncapsulation ::ixNet::OBJ-null \
759 -count $L2CountValue \
761 -enableIncrementMac $L2Increment \
762 -enableIncrementVlan False \
763 -enableSiteId False \
766 -frEncapsulation ::ixNet::OBJ-null \
767 -incrementPerVcVlanMode noIncrement \
768 -incrementVlanMode noIncrement \
770 -macRangeMode normal \
773 -skipVlanIdZero True \
775 -trafficGroupId ::ixNet::OBJ-null \
780 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
783 # configuring the object that corresponds to /vport:2
785 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
786 ixNet setMultiAttrs $sg_vport \
787 -transmitIgnoreLinkStatus False \
788 -txGapControlMode averageMode \
790 -connectedTo ::ixNet::OBJ-null \
791 -txMode interleaved \
793 -rxMode captureAndMeasure \
794 -name {10GE LAN - 002}
795 ixNet setMultiAttrs $sg_vport/l1Config \
796 -currentType tenGigLan
797 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
799 -flowControlDirectedAddress "01 80 C2 00 00 01" \
801 -autoInstrumentation endOfFrame \
802 -transmitClocking internal \
803 -txIgnoreRxLinkFaults False \
805 -enableLASIMonitoring False \
806 -enabledFlowControl False
807 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
811 -vendorSpecificInformation {00 00 00 00} \
812 -macAddress "00:00:00:00:00:00" \
816 -enableTlvOption False \
818 -organizationUniqueIdentifier {000000}
819 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
820 -supportDataCenterMode False \
821 -priorityGroupSize priorityGroupSize-8 \
823 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
824 -flowControlType ieee802.1Qbb \
825 -enablePFCPauseDelay False
826 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
828 -flowControlDirectedAddress "01 80 C2 00 00 01" \
830 -autoInstrumentation endOfFrame \
831 -transmitClocking internal \
832 -txIgnoreRxLinkFaults False \
834 -enableLASIMonitoring False \
835 -enabledFlowControl False
836 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
837 -supportDataCenterMode False \
838 -priorityGroupSize priorityGroupSize-8 \
840 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
841 -flowControlType ieee802.1Qbb \
842 -enablePFCPauseDelay False
843 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
847 -vendorSpecificInformation {00 00 00 00} \
848 -macAddress "00:00:00:00:00:00" \
852 -enableTlvOption False \
854 -organizationUniqueIdentifier {000000}
855 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
856 -sourceAddress1Mask {00:00:00:00:00:00} \
857 -destinationAddress1Mask {00:00:00:00:00:00} \
858 -sourceAddress2 {00:00:00:00:00:00} \
859 -pattern2OffsetType fromStartOfFrame \
862 -sourceAddress2Mask {00:00:00:00:00:00} \
863 -destinationAddress2 {00:00:00:00:00:00} \
864 -destinationAddress1 {00:00:00:00:00:00} \
865 -sourceAddress1 {00:00:00:00:00:00} \
867 -destinationAddress2Mask {00:00:00:00:00:00} \
871 -pattern1OffsetType fromStartOfFrame
872 ixNet setMultiAttrs $sg_vport/protocols/arp \
874 ixNet setMultiAttrs $sg_vport/protocols/bfd \
877 -packetsPerInterval 0
878 ixNet setMultiAttrs $sg_vport/protocols/bgp \
879 -autoFillUpDutIp False \
880 -disableReceivedUpdateValidation False \
881 -enableAdVplsPrefixLengthInBits False \
882 -enableExternalActiveConnect True \
883 -enableInternalActiveConnect True \
884 -enableVpnLabelExchangeOverLsp True \
887 -externalRetryDelay 120 \
889 -internalRetryDelay 120 \
891 -triggerVplsPwInitiation False
892 ixNet setMultiAttrs $sg_vport/protocols/cfm \
893 -enableOptionalLmFunctionality False \
894 -enableOptionalTlvValidation True \
898 -suppressErrorsOnAis True
899 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
901 ixNet setMultiAttrs $sg_vport/protocols/elmi \
903 ixNet setMultiAttrs $sg_vport/protocols/igmp \
908 -sendLeaveOnStop True \
909 -statsEnabled False \
911 ixNet setMultiAttrs $sg_vport/protocols/isis \
912 -allL1RbridgesMac "01:80:c2:00:00:40" \
913 -emulationType isisL3Routing \
915 -helloMulticastMac "01:80:c2:00:00:41" \
916 -lspMgroupPdusPerInterval 0 \
918 -rateControlInterval 0 \
919 -sendP2PHellosToUnicastMac True \
920 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
921 -spbHelloMulticastMac "09:00:2b:00:00:05" \
923 ixNet setMultiAttrs $sg_vport/protocols/lacp \
924 -enablePreservePartnerInfo False \
926 ixNet setMultiAttrs $sg_vport/protocols/ldp \
927 -enableDiscardSelfAdvFecs False \
928 -enableHelloJitter True \
929 -enableVpnLabelExchangeOverLsp True \
933 -keepAliveHoldTime 30 \
934 -keepAliveInterval 10 \
935 -p2mpCapabilityParam 1288 \
937 -targetedHelloInterval 15 \
938 -targetedHoldTime 45 \
939 -useTransportLabelsForMplsOam False
940 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
942 ixNet setMultiAttrs $sg_vport/protocols/lisp \
943 -burstIntervalInMs 0 \
945 -ipv4MapRegisterPacketsPerBurst 0 \
946 -ipv4MapRequestPacketsPerBurst 0 \
947 -ipv4SmrPacketsPerBurst 0 \
948 -ipv6MapRegisterPacketsPerBurst 0 \
949 -ipv6MapRequestPacketsPerBurst 0 \
950 -ipv6SmrPacketsPerBurst 0
951 ixNet setMultiAttrs $sg_vport/protocols/mld \
952 -enableDoneOnStop True \
954 -mldv2Report type143 \
959 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
961 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
962 -apsChannelType {00 02 } \
963 -bfdCcChannelType {00 07 } \
964 -delayManagementChannelType {00 05 } \
965 -enableHighPerformanceMode True \
967 -faultManagementChannelType {00 58 } \
968 -lossMeasurementChannelType {00 04 } \
969 -onDemandCvChannelType {00 09 } \
970 -pwStatusChannelType {00 0B } \
971 -y1731ChannelType {7F FA }
972 ixNet setMultiAttrs $sg_vport/protocols/ospf \
973 -enableDrOrBdr False \
975 -floodLinkStateUpdatesPerInterval 0 \
976 -rateControlInterval 0
977 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
979 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
980 -bsmFramePerInterval 0 \
981 -crpFramePerInterval 0 \
982 -dataMdtFramePerInterval 0 \
983 -denyGrePimIpPrefix {0.0.0.0/32} \
984 -enableDiscardJoinPruneProcessing False \
985 -enableRateControl False \
987 -helloMsgsPerInterval 0 \
989 -joinPruneMessagesPerInterval 0 \
990 -registerMessagesPerInterval 0 \
991 -registerStopMessagesPerInterval 0
992 ixNet setMultiAttrs $sg_vport/protocols/ping \
994 ixNet setMultiAttrs $sg_vport/protocols/rip \
996 ixNet setMultiAttrs $sg_vport/protocols/ripng \
998 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
999 -enableControlLspInitiationRate False \
1000 -enableShowTimeValue False \
1001 -enableVpnLabelExchangeOverLsp True \
1003 -maxLspInitiationsPerSec 400 \
1004 -useTransportLabelsForMplsOam False
1005 ixNet setMultiAttrs $sg_vport/protocols/stp \
1007 ixNet setMultiAttrs $sg_vport/rateControlParameters \
1008 -maxRequestsPerBurst 1 \
1009 -maxRequestsPerSec 250 \
1010 -minRetryInterval 10 \
1012 -sendInBursts False \
1013 -sendRequestsAsFastAsPossible False
1014 ixNet setMultiAttrs $sg_vport/capture \
1015 -controlCaptureTrigger {} \
1016 -controlCaptureFilter {} \
1017 -hardwareEnabled False \
1018 -softwareEnabled False \
1019 -displayFiltersDataCapture {} \
1020 -displayFiltersControlCapture {} \
1021 -controlBufferSize 30 \
1022 -controlBufferBehaviour bufferLiveNonCircular
1023 ixNet setMultiAttrs $sg_vport/protocolStack/options \
1024 -routerSolicitationDelay 1 \
1025 -routerSolicitationInterval 4 \
1026 -routerSolicitations 3 \
1030 -ipv4RetransTime 3000 \
1033 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
1034 set ixNetSG_ref(10) $sg_vport
1035 set ixNetSG_Stack(1) $sg_vport
1038 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:1
1040 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
1041 ixNet setMultiAttrs $sg_uds \
1042 -destinationAddressSelector anyAddr \
1043 -customFrameSizeTo 0 \
1044 -customFrameSizeFrom 0 \
1045 -error errAnyFrame \
1046 -patternSelector anyPattern \
1047 -sourceAddressSelector anyAddr \
1051 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1054 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:2
1056 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
1057 ixNet setMultiAttrs $sg_uds \
1058 -destinationAddressSelector anyAddr \
1059 -customFrameSizeTo 0 \
1060 -customFrameSizeFrom 0 \
1061 -error errAnyFrame \
1062 -patternSelector anyPattern \
1063 -sourceAddressSelector anyAddr \
1067 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1070 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:3
1072 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
1073 ixNet setMultiAttrs $sg_uds \
1074 -destinationAddressSelector anyAddr \
1075 -customFrameSizeTo 0 \
1076 -customFrameSizeFrom 0 \
1077 -error errAnyFrame \
1078 -patternSelector anyPattern \
1079 -sourceAddressSelector anyAddr \
1083 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1086 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:4
1088 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
1089 ixNet setMultiAttrs $sg_uds \
1090 -destinationAddressSelector anyAddr \
1091 -customFrameSizeTo 0 \
1092 -customFrameSizeFrom 0 \
1093 -error errAnyFrame \
1094 -patternSelector anyPattern \
1095 -sourceAddressSelector anyAddr \
1099 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1102 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:5
1104 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
1105 ixNet setMultiAttrs $sg_uds \
1106 -destinationAddressSelector anyAddr \
1107 -customFrameSizeTo 0 \
1108 -customFrameSizeFrom 0 \
1109 -error errAnyFrame \
1110 -patternSelector anyPattern \
1111 -sourceAddressSelector anyAddr \
1115 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1118 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:6
1120 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
1121 ixNet setMultiAttrs $sg_uds \
1122 -destinationAddressSelector anyAddr \
1123 -customFrameSizeTo 0 \
1124 -customFrameSizeFrom 0 \
1125 -error errAnyFrame \
1126 -patternSelector anyPattern \
1127 -sourceAddressSelector anyAddr \
1131 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1134 # configuring the object that corresponds to /vport:2/protocols/static/lan:1
1136 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
1137 ixNet setMultiAttrs $sg_lan \
1138 -atmEncapsulation ::ixNet::OBJ-null \
1139 -count $L2CountValue \
1141 -enableIncrementMac $L2Increment \
1142 -enableIncrementVlan False \
1143 -enableSiteId False \
1146 -frEncapsulation ::ixNet::OBJ-null \
1147 -incrementPerVcVlanMode noIncrement \
1148 -incrementVlanMode noIncrement \
1150 -macRangeMode normal \
1153 -skipVlanIdZero True \
1155 -trafficGroupId ::ixNet::OBJ-null \
1160 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
1163 ### /availableHardware area
1167 # configuring the object that corresponds to /availableHardware/chassis"
1169 set sg_chassis [ixNet add $ixNetSG_Stack(0)/availableHardware chassis]
1170 ixNet setMultiAttrs $sg_chassis \
1174 -hostname $::chassis
1176 set sg_chassis [lindex [ixNet remapIds $sg_chassis] 0]
1177 set ixNetSG_Stack(1) $sg_chassis
1180 # configuring the object that corresponds to /availableHardware/chassis/card
1182 set sg_card $ixNetSG_Stack(1)/card:$::card
1183 ixNet setMultiAttrs $sg_card \
1184 -aggregationMode normal
1186 set sg_card [lindex [ixNet remapIds $sg_card] 0]
1187 set ixNetSG_ref(19) $sg_card
1188 set ixNetSG_Stack(2) $sg_card
1191 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:1
1193 set sg_aggregation $ixNetSG_Stack(2)/aggregation:1
1194 ixNet setMultiAttrs $sg_aggregation \
1197 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1200 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:2
1202 set sg_aggregation $ixNetSG_Stack(2)/aggregation:2
1203 ixNet setMultiAttrs $sg_aggregation \
1206 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1209 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:3
1211 set sg_aggregation $ixNetSG_Stack(2)/aggregation:3
1212 ixNet setMultiAttrs $sg_aggregation \
1215 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1218 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:4
1220 set sg_aggregation $ixNetSG_Stack(2)/aggregation:4
1221 ixNet setMultiAttrs $sg_aggregation \
1224 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1225 ixNet setMultiAttrs $ixNetSG_ref(2) \
1226 -connectedTo $ixNetSG_ref(19)/port:$::port1
1228 ixNet setMultiAttrs $ixNetSG_ref(10) \
1229 -connectedTo $ixNetSG_ref(19)/port:$::port2
1234 ### /impairment area
1238 # configuring the object that corresponds to /impairment/profile:3
1240 set sg_profile [ixNet add $ixNetSG_Stack(0)/impairment profile]
1241 ixNet setMultiAttrs $sg_profile \
1243 -name {Impairment Profile 1} \
1247 ixNet setMultiAttrs $sg_profile/checksums \
1248 -dropRxL2FcsErrors False \
1249 -correctTxL2FcsErrors False \
1250 -alwaysCorrectWhenModifying True \
1251 -correctTxChecksumOverIp False \
1252 -correctTxIpv4Checksum False
1253 ixNet setMultiAttrs $sg_profile/rxRateLimit \
1256 -units {kKilobitsPerSecond}
1257 ixNet setMultiAttrs $sg_profile/drop \
1261 ixNet setMultiAttrs $sg_profile/reorder \
1266 ixNet setMultiAttrs $sg_profile/duplicate \
1271 ixNet setMultiAttrs $sg_profile/bitError \
1276 ixNet setMultiAttrs $sg_profile/delay \
1279 -units {kMicroseconds}
1280 ixNet setMultiAttrs $sg_profile/delayVariation \
1283 -units {kMicroseconds} \
1284 -distribution {kUniform} \
1285 -exponentialMeanArrival 0 \
1286 -gaussianStandardDeviation 0
1287 ixNet setMultiAttrs $sg_profile/customDelayVariation \
1291 set sg_profile [lindex [ixNet remapIds $sg_profile] 0]
1292 set ixNetSG_Stack(1) $sg_profile
1295 # configuring the object that corresponds to /impairment/profile:3/fixedClassifier:1
1297 set sg_fixedClassifier [ixNet add $ixNetSG_Stack(1) fixedClassifier]
1299 set sg_fixedClassifier [lindex [ixNet remapIds $sg_fixedClassifier] 0]
1306 # configuring the object that corresponds to /traffic/trafficItem:1
1308 set sg_trafficItem [ixNet add $ixNetSG_Stack(0)/traffic trafficItem]
1309 ixNet setMultiAttrs $sg_trafficItem \
1310 -transportRsvpTePreference one \
1311 -trafficItemType l2L3 \
1312 -biDirectional $::biDirect \
1313 -mergeDestinations True \
1314 -hostsPerNetwork 1 \
1315 -transmitMode interleaved \
1317 -trafficType {ethernetVlan} \
1318 -interAsLdpPreference two \
1319 -allowSelfDestined False \
1321 -maxNumberOfVpnLabelStack 2 \
1322 -interAsBgpPreference one \
1324 -transportLdpPreference two \
1325 -egressEnabled False \
1326 -enableDynamicMplsLabelValues False \
1327 -routeMesh oneToOne \
1328 -name {Traffic Item 1} \
1329 -srcDestMesh oneToOne
1331 set sg_trafficItem [lindex [ixNet remapIds $sg_trafficItem] 0]
1332 set ixNetSG_ref(26) $sg_trafficItem
1333 set ixNetSG_Stack(1) $sg_trafficItem
1336 # configuring the object that corresponds to /traffic/trafficItem:1/endpointSet:1
1338 set sg_endpointSet [ixNet add $ixNetSG_Stack(1) endpointSet]
1339 ixNet setMultiAttrs $sg_endpointSet \
1340 -destinations [list $ixNetSG_ref(10)/protocols] \
1341 -destinationFilter {} \
1344 -sources [list $ixNetSG_ref(2)/protocols] \
1345 -name {EndpointSet-1}
1347 set sg_endpointSet [lindex [ixNet remapIds $sg_endpointSet] 0]
1350 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1
1352 set sg_configElement $ixNetSG_Stack(1)/configElement:1
1353 ixNet setMultiAttrs $sg_configElement \
1355 -preambleCustomSize 8 \
1356 -enableDisparityError False \
1357 -preambleFrameSizeMode auto \
1358 -destinationMacMode manual
1359 ixNet setMultiAttrs $sg_configElement/frameSize \
1367 -presetDistribution cisco \
1370 ixNet setMultiAttrs $sg_configElement/frameRate \
1371 -bitRateUnitsType bitsPerSec \
1373 -enforceMinimumInterPacketGap 0 \
1374 -type percentLineRate \
1375 -interPacketGapUnitsType nanoseconds
1376 ixNet setMultiAttrs $sg_configElement/framePayload \
1377 -type incrementByte \
1378 -customRepeat True \
1380 ixNet setMultiAttrs $sg_configElement/frameRateDistribution \
1381 -streamDistribution applyRateToAll \
1382 -portDistribution applyRateToAll
1383 ixNet setMultiAttrs $sg_configElement/transmissionControl \
1388 -interBurstGapUnits nanoseconds \
1392 -enableInterStreamGap False \
1393 -startDelayUnits bytes \
1395 -burstPacketCount 1 \
1396 -enableInterBurstGap False \
1399 set sg_configElement [lindex [ixNet remapIds $sg_configElement] 0]
1400 set ixNetSG_Stack(2) $sg_configElement
1403 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
1405 set sg_stack $ixNetSG_Stack(2)/stack:"ethernet-1"
1407 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1408 set ixNetSG_Stack(3) $sg_stack
1411 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.destinationAddress-1"
1413 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.destinationAddress-1"
1414 ixNet setMultiAttrs $sg_field \
1415 -singleValue $dstMac \
1417 -optionalEnabled True \
1419 -valueList {{00:00:00:00:00:00}} \
1420 -stepValue {00:00:00:00:00:01} \
1421 -fixedBits {00:00:00:00:00:00} \
1422 -fieldValue $dstMac \
1424 -randomMask {00:00:00:00:00:00} \
1425 -trackingEnabled False \
1426 -valueType singleValue \
1427 -activeFieldChoice False \
1428 -startValue $dstMac \
1431 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1434 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.sourceAddress-2"
1436 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.sourceAddress-2"
1437 ixNet setMultiAttrs $sg_field \
1438 -singleValue $srcMac \
1440 -optionalEnabled True \
1442 -valueList {{00:00:00:00:00:00}} \
1443 -stepValue {00:00:00:00:00:00} \
1444 -fixedBits {00:00:00:00:00:00} \
1445 -fieldValue $srcMac \
1447 -randomMask {00:00:00:00:00:00} \
1448 -trackingEnabled False \
1449 -valueType singleValue \
1450 -activeFieldChoice False \
1451 -startValue $srcMac \
1454 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1457 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.etherType-3"
1459 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.etherType-3"
1460 ixNet setMultiAttrs $sg_field \
1461 -singleValue {800} \
1463 -optionalEnabled True \
1465 -valueList {{0xFFFF}} \
1466 -stepValue {0xFFFF} \
1467 -fixedBits {0xFFFF} \
1470 -randomMask {0xFFFF} \
1471 -trackingEnabled False \
1472 -valueType singleValue \
1473 -activeFieldChoice False \
1474 -startValue {0xFFFF} \
1477 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1480 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
1482 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-2"
1484 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1485 set ixNetSG_Stack(3) $sg_stack
1488 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.version-1"
1490 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
1491 ixNet setMultiAttrs $sg_field \
1494 -optionalEnabled True \
1502 -trackingEnabled False \
1503 -valueType singleValue \
1504 -activeFieldChoice False \
1509 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.protocol-25"
1511 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
1512 ixNet setMultiAttrs $sg_field \
1513 -singleValue {$proto_value} \
1515 -optionalEnabled True \
1520 -fieldValue {$proto} \
1523 -trackingEnabled False \
1524 -valueType singleValue \
1525 -activeFieldChoice False \
1530 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.checksum-26"
1532 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
1533 ixNet setMultiAttrs $sg_field \
1536 -optionalEnabled True \
1544 -trackingEnabled False \
1545 -valueType increment \
1546 -activeFieldChoice False \
1551 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.srcIp-27"
1553 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
1554 ixNet setMultiAttrs $sg_field \
1555 -singleValue $srcIp \
1557 -optionalEnabled True \
1559 -valueList {{0.0.0.0}} \
1560 -stepValue {0.0.0.0} \
1561 -fixedBits {0.0.0.0} \
1562 -fieldValue $srcIp \
1564 -randomMask {0.0.0.0} \
1565 -trackingEnabled False \
1566 -valueType singleValue \
1567 -activeFieldChoice False \
1568 -startValue {0.0.0.0} \
1572 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.dstIp-28"
1574 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
1575 ixNet setMultiAttrs $sg_field \
1576 -singleValue $dstIp \
1578 -optionalEnabled True \
1580 -valueList {{0.0.0.0}} \
1581 -stepValue {0.0.0.1} \
1582 -fixedBits {0.0.0.0} \
1583 -fieldValue $dstIp \
1585 -randomMask {0.0.0.0} \
1586 -trackingEnabled False \
1587 -valueType $L3ValueType \
1588 -activeFieldChoice False \
1589 -startValue $dstIp \
1590 -countValue $L3CountValue
1592 #set sg_field [lindex [ixNet remapIds $sg_field] 0]
1595 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.options.pad-58"
1597 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
1598 ixNet setMultiAttrs $sg_field \
1601 -optionalEnabled False \
1609 -trackingEnabled False \
1610 -valueType singleValue \
1611 -activeFieldChoice False \
1615 # Suffix for stack names
1616 # This variable should be incremented after setting sg_stack like:
1617 # set sg_stack $ixNetSG_Stack(2)/stack:"protocolnamehere-$stack_number"
1622 if { [string compare $proto "udp"] == 0 } {
1623 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"
1625 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
1627 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1628 set ixNetSG_Stack(3) $sg_stack
1632 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.srcPort-1"
1634 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
1635 ixNet setMultiAttrs $sg_field \
1636 -singleValue $srcPort \
1638 -optionalEnabled True \
1643 -fieldValue $srcPort \
1646 -trackingEnabled False \
1647 -valueType singleValue \
1648 -activeFieldChoice False \
1649 -startValue $srcPort \
1653 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.dstPort-2"
1655 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
1656 ixNet setMultiAttrs $sg_field \
1657 -singleValue $dstPort \
1659 -optionalEnabled True \
1664 -fieldValue $dstPort \
1667 -trackingEnabled False \
1668 -valueType $L4ValueType \
1669 -activeFieldChoice False \
1670 -startValue $dstPort \
1671 -countValue $L4CountValue
1674 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.length-3"
1676 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
1677 ixNet setMultiAttrs $sg_field \
1680 -optionalEnabled True \
1688 -trackingEnabled False \
1689 -valueType singleValue \
1690 -activeFieldChoice False \
1695 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.checksum-4"
1697 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
1698 ixNet setMultiAttrs $sg_field \
1701 -optionalEnabled True \
1709 -trackingEnabled False \
1710 -valueType singleValue \
1711 -activeFieldChoice False \
1714 } elseif { [string compare $proto "tcp"] == 0 } {
1716 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
1718 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1719 set ixNetSG_Stack(3) $sg_stack
1722 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
1723 ixNet setMultiAttrs $sg_field \
1724 -singleValue $srcPort \
1726 -optionalEnabled true \
1728 -valueList [list $srcPort] \
1731 -fieldValue $srcPort \
1734 -trackingEnabled false \
1735 -valueType singleValue \
1736 -activeFieldChoice false \
1740 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
1741 ixNet setMultiAttrs $sg_field \
1742 -singleValue $dstPort \
1744 -optionalEnabled true \
1746 -valueList [list $dstPort] \
1749 -fieldValue $dstPort \
1752 -trackingEnabled false \
1753 -valueType singleValue \
1754 -activeFieldChoice false \
1758 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
1759 ixNet setMultiAttrs $sg_field \
1762 -optionalEnabled true \
1764 -valueList [list 0x00000000] \
1765 -stepValue 0x00000000 \
1766 -fixedBits 0x00000000 \
1769 -randomMask 0x00000000 \
1770 -trackingEnabled false \
1771 -valueType singleValue \
1772 -activeFieldChoice false \
1773 -startValue 0x00000000 \
1776 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
1777 ixNet setMultiAttrs $sg_field \
1780 -optionalEnabled true \
1782 -valueList [list 0x00000000] \
1783 -stepValue 0x00000000 \
1784 -fixedBits 0x00000000 \
1787 -randomMask 0x00000000 \
1788 -trackingEnabled false \
1789 -valueType singleValue \
1790 -activeFieldChoice false \
1791 -startValue 0x00000000 \
1794 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
1795 ixNet setMultiAttrs $sg_field \
1798 -optionalEnabled true \
1800 -valueList [list 5] \
1806 -trackingEnabled false \
1807 -valueType singleValue \
1808 -activeFieldChoice false \
1812 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
1813 ixNet setMultiAttrs $sg_field \
1816 -optionalEnabled true \
1818 -valueList [list 0] \
1824 -trackingEnabled false \
1825 -valueType singleValue \
1826 -activeFieldChoice false \
1830 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
1831 ixNet setMultiAttrs $sg_field \
1834 -optionalEnabled true \
1836 -valueList [list 0] \
1842 -trackingEnabled false \
1843 -valueType singleValue \
1844 -activeFieldChoice false \
1848 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
1849 ixNet setMultiAttrs $sg_field \
1852 -optionalEnabled true \
1854 -valueList [list 0] \
1860 -trackingEnabled false \
1861 -valueType singleValue \
1862 -activeFieldChoice false \
1866 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
1867 ixNet setMultiAttrs $sg_field \
1870 -optionalEnabled true \
1872 -valueList [list 0] \
1878 -trackingEnabled false \
1879 -valueType singleValue \
1880 -activeFieldChoice false \
1884 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
1885 ixNet setMultiAttrs $sg_field \
1888 -optionalEnabled true \
1890 -valueList [list 0] \
1896 -trackingEnabled false \
1897 -valueType singleValue \
1898 -activeFieldChoice false \
1902 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
1903 ixNet setMultiAttrs $sg_field \
1906 -optionalEnabled true \
1908 -valueList [list 0] \
1914 -trackingEnabled false \
1915 -valueType singleValue \
1916 -activeFieldChoice false \
1920 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
1921 ixNet setMultiAttrs $sg_field \
1924 -optionalEnabled true \
1926 -valueList [list 0] \
1932 -trackingEnabled false \
1933 -valueType singleValue \
1934 -activeFieldChoice false \
1938 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
1939 ixNet setMultiAttrs $sg_field \
1942 -optionalEnabled true \
1944 -valueList [list 0] \
1950 -trackingEnabled false \
1951 -valueType singleValue \
1952 -activeFieldChoice false \
1956 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
1957 ixNet setMultiAttrs $sg_field \
1960 -optionalEnabled true \
1962 -valueList [list 0] \
1968 -trackingEnabled false \
1969 -valueType singleValue \
1970 -activeFieldChoice false \
1974 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
1975 ixNet setMultiAttrs $sg_field \
1978 -optionalEnabled true \
1980 -valueList [list 0] \
1986 -trackingEnabled false \
1987 -valueType singleValue \
1988 -activeFieldChoice false \
1992 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
1993 ixNet setMultiAttrs $sg_field \
1996 -optionalEnabled true \
1998 -valueList [list 0x0000] \
2003 -randomMask 0x0000 \
2004 -trackingEnabled false \
2005 -valueType singleValue \
2006 -activeFieldChoice false \
2007 -startValue 0x0000 \
2010 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
2011 ixNet setMultiAttrs $sg_field \
2014 -optionalEnabled true \
2016 -valueList [list 0x0000] \
2021 -randomMask 0x0000 \
2022 -trackingEnabled false \
2023 -valueType singleValue \
2024 -activeFieldChoice false \
2025 -startValue 0x0000 \
2028 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
2029 ixNet setMultiAttrs $sg_field \
2032 -optionalEnabled true \
2034 -valueList [list 0x0000] \
2039 -randomMask 0x0000 \
2040 -trackingEnabled false \
2041 -valueType singleValue \
2042 -activeFieldChoice false \
2043 -startValue 0x0000 \
2046 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2048 } elseif { [string compare $proto "gre"] == 0 } {
2050 set gre_enabled True
2053 if { $vxlan_enabled || $gre_enabled || $geneve_enabled } {
2054 # VXLAN and GRE have similar inner frame data so we set unique fields
2055 # for each protocol then set the common fields.
2059 if { $vxlan_enabled } {
2062 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"
2064 set sg_stack $ixNetSG_Stack(2)/stack:"vxlan-$stack_number"
2066 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2067 set ixNetSG_Stack(3) $sg_stack
2071 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.flags-1
2073 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.flags-1"
2074 ixNet setMultiAttrs $sg_field \
2077 -optionalEnabled true \
2078 -valueList [list 0x08] \
2086 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved-2
2088 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved-2"
2089 ixNet setMultiAttrs $sg_field \
2092 -optionalEnabled true \
2093 -valueList [list 0] \
2101 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.vni-3"
2103 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.vni-3"
2104 ixNet setMultiAttrs $sg_field \
2107 -optionalEnabled true \
2108 -valueList [list 1234] \
2115 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved8-4"
2117 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved8-4"
2118 ixNet setMultiAttrs $sg_field \
2121 -optionalEnabled true \
2122 -valueList [list 0] \
2129 } elseif { $geneve_enabled } {
2132 set sg_stack $ixNetSG_Stack(2)/stack:"geneve-$stack_number"
2134 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2135 set ixNetSG_Stack(3) $sg_stack
2138 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.version-1"
2139 ixNet setMultiAttrs $sg_field \
2142 -optionalEnabled true \
2143 -valueList [list 0x00] \
2150 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.optionsLength-2"
2151 ixNet setMultiAttrs $sg_field \
2154 -optionalEnabled true \
2155 -valueList [list 0x00] \
2163 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.flags-3"
2164 ixNet setMultiAttrs $sg_field \
2167 -optionalEnabled true \
2168 -valueList [list 0x00] \
2175 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.protocolType-4"
2176 ixNet setMultiAttrs $sg_field \
2179 -optionalEnabled true \
2180 -valueList [list 0x6558] \
2184 -randomMask 0x6558 \
2187 set sg_field $ixNetSG_Stack(3)/field:"geneve.header.vni-5"
2188 ixNet setMultiAttrs $sg_field \
2191 -optionalEnabled true \
2192 -valueList [list 0] \
2199 } elseif { $gre_enabled } {
2200 puts "Setting GRE attributes"
2203 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"gre-3"
2205 set sg_stack $ixNetSG_Stack(2)/stack:"gre-$stack_number"
2207 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2208 set ixNetSG_Stack(3) $sg_stack
2211 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumPresent-1"
2212 ixNet setMultiAttrs $sg_field \
2215 -optionalEnabled true \
2216 -valueList [list 0] \
2219 -fieldValue "0:No\ Checksum" \
2223 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved1-2"
2224 ixNet setMultiAttrs $sg_field \
2227 -optionalEnabled true \
2228 -valueList [list 0] \
2235 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyPresent-3"
2236 ixNet setMultiAttrs $sg_field \
2239 -optionalEnabled true \
2240 -valueList [list 0] \
2243 -fieldValue "0:No\ Key\ field" \
2247 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequencePresent-4"
2248 ixNet setMultiAttrs $sg_field \
2251 -optionalEnabled true \
2252 -valueList [list 0] \
2255 -fieldValue "0:No\ sequence\ number\ field" \
2259 set sg_field $ixNetSG_Stack(3)/field:"gre.header.reserved2-5"
2260 ixNet setMultiAttrs $sg_field \
2263 -optionalEnabled true \
2264 -valueList [list 0] \
2271 set sg_field $ixNetSG_Stack(3)/field:"gre.header.version-6"
2272 ixNet setMultiAttrs $sg_field \
2275 -optionalEnabled true \
2276 -valueList [list 0] \
2283 set sg_field $ixNetSG_Stack(3)/field:"gre.header.protocol-7"
2284 ixNet setMultiAttrs $sg_field \
2287 -optionalEnabled true \
2288 -valueList [list 0x0] \
2296 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.checksum-8"
2297 ixNet setMultiAttrs $sg_field \
2300 -optionalEnabled true \
2301 -valueList [list 0] \
2309 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.withChecksum.reserved-9"
2310 ixNet setMultiAttrs $sg_field \
2313 -optionalEnabled true \
2314 -valueList [list 0] \
2321 set sg_field $ixNetSG_Stack(3)/field:"gre.header.checksumHolder.noChecksum-10"
2322 ixNet setMultiAttrs $sg_field \
2325 -optionalEnabled true \
2326 -valueList [list 0] \
2331 -activeFieldChoice true \
2334 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.key-11"
2335 ixNet setMultiAttrs $sg_field \
2338 -optionalEnabled true \
2339 -valueList [list 0] \
2346 set sg_field $ixNetSG_Stack(3)/field:"gre.header.keyHolder.noKey-12"
2347 ixNet setMultiAttrs $sg_field \
2350 -optionalEnabled true \
2351 -valueList [list 0] \
2356 -activeFieldChoice true \
2359 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.sequenceNum-13"
2360 ixNet setMultiAttrs $sg_field \
2363 -optionalEnabled true \
2364 -valueList [list 0] \
2371 set sg_field $ixNetSG_Stack(3)/field:"gre.header.sequenceHolder.noSequenceNum-14"
2372 ixNet setMultiAttrs $sg_field \
2375 -optionalEnabled true \
2376 -valueList [list 0] \
2381 -activeFieldChoice true \
2385 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2389 # Common fields for VXLAN and GRE
2390 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2391 set sg_stack $ixNetSG_Stack(2)/stack:"ethernetNoFCS-$stack_number"
2393 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2394 set ixNetSG_Stack(3) $sg_stack
2397 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.destinationAddress-1"
2398 ixNet setMultiAttrs $sg_field \
2399 -singleValue $inner_dstmac \
2401 -optionalEnabled true \
2402 -valueList [list 00:00:00:00:00:00] \
2403 -stepValue 00:00:00:00:00:00 \
2404 -fixedBits 00:00:00:00:00:00 \
2405 -fieldValue $inner_dstmac \
2406 -randomMask 00:00:00:00:00:00 \
2407 -startValue 00:00:00:00:00:00
2409 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.sourceAddress-2"
2410 ixNet setMultiAttrs $sg_field \
2411 -singleValue $inner_srcmac \
2413 -optionalEnabled true \
2414 -valueList [list 00:00:00:00:00:00] \
2415 -stepValue 00:00:00:00:00:00 \
2416 -fixedBits 00:00:00:00:00:00 \
2417 -fieldValue $inner_srcmac \
2418 -randomMask 00:00:00:00:00:00 \
2419 -startValue 00:00:00:00:00:00
2421 set sg_field $ixNetSG_Stack(3)/field:"ethernetNoFCS.header.etherType-3"
2422 ixNet setMultiAttrs $sg_field \
2425 -optionalEnabled true \
2426 -valueList [list 0xFFFF] \
2431 -randomMask 0xFFFF \
2434 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-$stack_number"
2436 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2437 set ixNetSG_Stack(3) $sg_stack
2441 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-6"/field:"ipv4.header.version-1"/
2442 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
2443 ixNet setMultiAttrs $sg_field \
2446 -optionalEnabled true \
2447 -valueList [list 4] \
2454 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.headerLength-2"
2455 ixNet setMultiAttrs $sg_field \
2458 -optionalEnabled true \
2459 -valueList [list 0] \
2467 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.raw-3"
2468 ixNet setMultiAttrs $sg_field \
2471 -optionalEnabled true \
2472 -valueList [list 0] \
2479 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.precedence-4"
2480 ixNet setMultiAttrs $sg_field \
2483 -optionalEnabled true \
2484 -valueList [list 0] \
2487 -fieldValue "000\ Routine" \
2489 -activeFieldChoice true \
2492 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.delay-5"
2493 ixNet setMultiAttrs $sg_field \
2496 -optionalEnabled true \
2497 -valueList [list 0] \
2500 -fieldValue Normal \
2502 -activeFieldChoice true \
2505 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.throughput-6"
2506 ixNet setMultiAttrs $sg_field \
2509 -optionalEnabled true \
2510 -valueList [list 0] \
2513 -fieldValue Normal \
2515 -activeFieldChoice true \
2518 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.reliability-7"
2519 ixNet setMultiAttrs $sg_field \
2522 -optionalEnabled true \
2523 -valueList [list 0] \
2526 -fieldValue Normal \
2528 -activeFieldChoice true \
2531 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.monetary-8"
2532 ixNet setMultiAttrs $sg_field \
2535 -optionalEnabled true \
2536 -valueList [list 0] \
2539 -fieldValue Normal \
2541 -activeFieldChoice true \
2544 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.unused-9"
2545 ixNet setMultiAttrs $sg_field \
2548 -optionalEnabled true \
2549 -valueList [list 0] \
2554 -activeFieldChoice true \
2557 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.totalLength-18"
2558 ixNet setMultiAttrs $sg_field \
2561 -optionalEnabled true \
2562 -valueList [list 20] \
2570 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.identification-19"
2571 ixNet setMultiAttrs $sg_field \
2574 -optionalEnabled true \
2575 -valueList [list 0] \
2582 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.reserved-20"
2583 ixNet setMultiAttrs $sg_field \
2586 -optionalEnabled true \
2587 -valueList [list 0] \
2594 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.fragment-21"
2595 ixNet setMultiAttrs $sg_field \
2598 -optionalEnabled true \
2599 -valueList [list 0] \
2602 -fieldValue "May\ fragment" \
2606 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.lastFragment-22"
2607 ixNet setMultiAttrs $sg_field \
2610 -optionalEnabled true \
2611 -valueList [list 0] \
2614 -fieldValue "Last\ fragment" \
2618 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.fragmentOffset-23"
2619 ixNet setMultiAttrs $sg_field \
2622 -optionalEnabled true \
2623 -valueList [list 0] \
2630 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.ttl-24"
2631 ixNet setMultiAttrs $sg_field \
2634 -optionalEnabled true \
2635 -valueList [list 64] \
2642 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
2643 ixNet setMultiAttrs $sg_field \
2646 -optionalEnabled true \
2647 -valueList [list 61] \
2650 -fieldValue $inner_proto \
2655 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
2656 ixNet setMultiAttrs $sg_field \
2657 -singleValue 63355 \
2659 -optionalEnabled true \
2660 -valueList [list 0] \
2668 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
2669 ixNet setMultiAttrs $sg_field \
2670 -singleValue $inner_srcip \
2672 -optionalEnabled true \
2673 -valueList [list 0.0.0.0] \
2674 -stepValue 0.0.0.0 \
2675 -fixedBits 0.0.0.0 \
2676 -fieldValue $inner_srcip \
2677 -randomMask 0.0.0.0 \
2680 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
2681 ixNet setMultiAttrs $sg_field \
2682 -singleValue $inner_dstip \
2684 -optionalEnabled true \
2685 -valueList [list 0.0.0.0] \
2686 -stepValue 0.0.0.0 \
2687 -fixedBits 0.0.0.0 \
2688 -fieldValue $inner_dstip \
2689 -randomMask 0.0.0.0 \
2692 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
2693 ixNet setMultiAttrs $sg_field \
2696 -valueList [list 0] \
2704 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2706 if { [string compare $inner_proto "udp"] == 0 } {
2708 set sg_stack $ixNetSG_Stack(2)/stack:"udp-$stack_number"
2710 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2711 set ixNetSG_Stack(3) $sg_stack
2714 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
2715 ixNet setMultiAttrs $sg_field \
2716 -singleValue $inner_srcport \
2718 -optionalEnabled true \
2719 -valueList [list 63] \
2722 -fieldValue $inner_srcport \
2727 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
2728 ixNet setMultiAttrs $sg_field \
2729 -singleValue $inner_dstport \
2731 -optionalEnabled true \
2732 -valueList [list 63] \
2735 -fieldValue $inner_dstport \
2740 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
2741 ixNet setMultiAttrs $sg_field \
2744 -optionalEnabled true \
2745 -valueList [list 8] \
2753 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
2754 ixNet setMultiAttrs $sg_field \
2757 -optionalEnabled true \
2758 -valueList [list 0] \
2766 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2770 set sg_stack $ixNetSG_Stack(2)/stack:"tcp-$stack_number"
2772 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2773 set ixNetSG_Stack(3) $sg_stack
2776 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.srcPort-1"
2777 ixNet setMultiAttrs $sg_field \
2778 -singleValue $inner_srcport \
2780 -optionalEnabled true \
2782 -valueList [list $inner_srcport] \
2785 -fieldValue $inner_srcport \
2788 -trackingEnabled false \
2789 -valueType singleValue \
2790 -activeFieldChoice false \
2794 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dstPort-2"
2795 ixNet setMultiAttrs $sg_field \
2796 -singleValue $inner_dstport \
2798 -optionalEnabled true \
2800 -valueList [list $inner_dstport] \
2803 -fieldValue $inner_dstport \
2806 -trackingEnabled false \
2807 -valueType singleValue \
2808 -activeFieldChoice false \
2812 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.sequenceNumber-3"
2813 ixNet setMultiAttrs $sg_field \
2816 -optionalEnabled true \
2818 -valueList [list 0x00000000] \
2819 -stepValue 0x00000000 \
2820 -fixedBits 0x00000000 \
2823 -randomMask 0x00000000 \
2824 -trackingEnabled false \
2825 -valueType singleValue \
2826 -activeFieldChoice false \
2827 -startValue 0x00000000 \
2830 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.acknowledgementNumber-4"
2831 ixNet setMultiAttrs $sg_field \
2834 -optionalEnabled true \
2836 -valueList [list 0x00000000] \
2837 -stepValue 0x00000000 \
2838 -fixedBits 0x00000000 \
2841 -randomMask 0x00000000 \
2842 -trackingEnabled false \
2843 -valueType singleValue \
2844 -activeFieldChoice false \
2845 -startValue 0x00000000 \
2848 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.dataOffset-5"
2849 ixNet setMultiAttrs $sg_field \
2852 -optionalEnabled true \
2854 -valueList [list 5] \
2860 -trackingEnabled false \
2861 -valueType singleValue \
2862 -activeFieldChoice false \
2866 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.reserved-6"
2867 ixNet setMultiAttrs $sg_field \
2870 -optionalEnabled true \
2872 -valueList [list 0] \
2878 -trackingEnabled false \
2879 -valueType singleValue \
2880 -activeFieldChoice false \
2884 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.nsBit-7"
2885 ixNet setMultiAttrs $sg_field \
2888 -optionalEnabled true \
2890 -valueList [list 0] \
2896 -trackingEnabled false \
2897 -valueType singleValue \
2898 -activeFieldChoice false \
2902 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.cwrBit-8"
2903 ixNet setMultiAttrs $sg_field \
2906 -optionalEnabled true \
2908 -valueList [list 0] \
2914 -trackingEnabled false \
2915 -valueType singleValue \
2916 -activeFieldChoice false \
2920 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.ecn.ecnEchoBit-9"
2921 ixNet setMultiAttrs $sg_field \
2924 -optionalEnabled true \
2926 -valueList [list 0] \
2932 -trackingEnabled false \
2933 -valueType singleValue \
2934 -activeFieldChoice false \
2938 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.urgBit-10"
2939 ixNet setMultiAttrs $sg_field \
2942 -optionalEnabled true \
2944 -valueList [list 0] \
2950 -trackingEnabled false \
2951 -valueType singleValue \
2952 -activeFieldChoice false \
2956 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.ackBit-11"
2957 ixNet setMultiAttrs $sg_field \
2960 -optionalEnabled true \
2962 -valueList [list 0] \
2968 -trackingEnabled false \
2969 -valueType singleValue \
2970 -activeFieldChoice false \
2974 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.pshBit-12"
2975 ixNet setMultiAttrs $sg_field \
2978 -optionalEnabled true \
2980 -valueList [list 0] \
2986 -trackingEnabled false \
2987 -valueType singleValue \
2988 -activeFieldChoice false \
2992 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.rstBit-13"
2993 ixNet setMultiAttrs $sg_field \
2996 -optionalEnabled true \
2998 -valueList [list 0] \
3004 -trackingEnabled false \
3005 -valueType singleValue \
3006 -activeFieldChoice false \
3010 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.synBit-14"
3011 ixNet setMultiAttrs $sg_field \
3014 -optionalEnabled true \
3016 -valueList [list 0] \
3022 -trackingEnabled false \
3023 -valueType singleValue \
3024 -activeFieldChoice false \
3028 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.controlBits.finBit-15"
3029 ixNet setMultiAttrs $sg_field \
3032 -optionalEnabled true \
3034 -valueList [list 0] \
3040 -trackingEnabled false \
3041 -valueType singleValue \
3042 -activeFieldChoice false \
3046 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.window-16"
3047 ixNet setMultiAttrs $sg_field \
3050 -optionalEnabled true \
3052 -valueList [list 0x0000] \
3057 -randomMask 0x0000 \
3058 -trackingEnabled false \
3059 -valueType singleValue \
3060 -activeFieldChoice false \
3061 -startValue 0x0000 \
3064 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.checksum-17"
3065 ixNet setMultiAttrs $sg_field \
3068 -optionalEnabled true \
3070 -valueList [list 0x0000] \
3075 -randomMask 0x0000 \
3076 -trackingEnabled false \
3077 -valueType singleValue \
3078 -activeFieldChoice false \
3079 -startValue 0x0000 \
3082 set sg_field $ixNetSG_Stack(3)/field:"tcp.header.urgentPtr-18"
3083 ixNet setMultiAttrs $sg_field \
3086 -optionalEnabled true \
3088 -valueList [list 0x0000] \
3093 -randomMask 0x0000 \
3094 -trackingEnabled false \
3095 -valueType singleValue \
3096 -activeFieldChoice false \
3097 -startValue 0x0000 \
3100 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3104 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-$stack_number"
3106 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3107 set ixNetSG_Stack(3) $sg_stack
3110 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3111 ixNet setMultiAttrs $sg_field \
3114 -optionalEnabled true \
3115 -valueList [list 0] \
3125 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"
3127 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-4"
3129 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
3130 set ixNetSG_Stack(3) $sg_stack
3133 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"/field:"ethernet.fcs-1"
3135 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
3136 ixNet setMultiAttrs $sg_field \
3139 -optionalEnabled True \
3147 -trackingEnabled False \
3148 -valueType singleValue \
3149 -activeFieldChoice False \
3153 set sg_field [lindex [ixNet remapIds $sg_field] 0]
3156 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/transmissionDistribution
3158 set sg_transmissionDistribution $ixNetSG_Stack(2)/transmissionDistribution
3159 ixNet setMultiAttrs $sg_transmissionDistribution \
3162 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3165 # configuring the object that corresponds to /traffic/trafficItem:1/transmissionDistribution
3167 set sg_transmissionDistribution $ixNetSG_Stack(1)/transmissionDistribution
3168 ixNet setMultiAttrs $sg_transmissionDistribution \
3172 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
3175 # configuring the object that corresponds to /traffic/trafficItem:1/tracking
3177 set sg_tracking $ixNetSG_Stack(1)/tracking
3178 ixNet setMultiAttrs $sg_tracking \
3180 -oneToOneMesh False \
3183 -fieldWidth thirtyTwoBits \
3184 -protocolOffset {Root.0}
3185 ixNet setMultiAttrs $sg_tracking/egress \
3186 -offset {Outer VLAN Priority (3 bits)} \
3188 -customOffsetBits 0 \
3189 -encapsulation {Ethernet} \
3191 ixNet setMultiAttrs $sg_tracking/latencyBin \
3193 -binLimits {1 1.42 2 2.82 4 5.66 8 11.32} \
3196 set sg_tracking [lindex [ixNet remapIds $sg_tracking] 0]
3197 set ixNetSG_Stack(2) $sg_tracking
3200 # Note: The scriptgen generated egress code were removed because we are not using
3201 # flow tracking in our tests.
3202 # Insert EGRESS lines here if needed
3206 # configuring the object that corresponds to /traffic/trafficItem:1/dynamicUpdate
3208 set sg_dynamicUpdate $ixNetSG_Stack(1)/dynamicUpdate
3209 ixNet setMultiAttrs $sg_dynamicUpdate \
3210 -enabledSessionAwareTrafficFields {} \
3211 -enabledDynamicUpdateFields {}
3213 set sg_dynamicUpdate [lindex [ixNet remapIds $sg_dynamicUpdate] 0]
3220 # configuring the object that corresponds to /quickTest/rfc2544throughput:1
3222 if {$rfc2544TestType == "throughput"} {
3223 set sg_rfc2544throughput [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544throughput]
3224 ixNet setMultiAttrs $sg_rfc2544throughput \
3225 -name {QuickTest1} \
3226 -mode existingMode \
3227 -inputParameters {{}}
3228 ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \
3230 -enableMinFrameSize False \
3231 -framesize $frameSize \
3232 -reportTputRateUnit mbps \
3233 -duration $duration \
3234 -numtrials $numTests \
3235 -trafficType constantLoading \
3237 -framesPerBurstGap 1 \
3239 -frameLossUnit {0} \
3240 -staggeredStart False \
3241 -framesizeList $frameSize \
3242 -frameSizeMode custom \
3243 -rateSelect percentMaxRate \
3244 -percentMaxRate 100 \
3246 -forceRegenerate False \
3247 -reportSequenceError False \
3250 -loadRateList $frameRate \
3251 -fixedLoadUnit percentMaxRate \
3253 -incrementLoadUnit percentMaxRate \
3254 -initialIncrementLoadRate 10 \
3255 -stepIncrementLoadRate 10 \
3256 -maxIncrementLoadRate 100 \
3257 -randomLoadUnit percentMaxRate \
3258 -minRandomLoadRate 10 \
3259 -maxRandomLoadRate 80 \
3260 -countRandomLoadRate 1 \
3264 -delayAfterTransmit 2 \
3265 -minRandomFrameSize 64 \
3266 -maxRandomFrameSize 1518 \
3267 -countRandomFrameSize 1 \
3268 -minIncrementFrameSize 64 \
3269 -stepIncrementFrameSize 64 \
3270 -maxIncrementFrameSize 1518 \
3271 -calculateLatency True \
3272 -latencyType storeForward \
3273 -calculateJitter False \
3274 -enableDataIntegrity False \
3275 -enableBackoffIteration False \
3276 -enableSaturationIteration False \
3277 -enableStopTestOnHighLoss False \
3278 -enableBackoffUseAs% False \
3279 -backoffIteration 1 \
3280 -saturationIteration 1 \
3281 -stopTestOnHighLoss 0 \
3282 -loadType $loadType \
3283 -stepLoadUnit percentMaxRate \
3284 -customLoadUnit percentMaxRate \
3285 -comboLoadUnit percentMaxRate \
3286 -binaryLoadUnit percentMaxRate \
3287 -initialBinaryLoadRate 100 \
3288 -minBinaryLoadRate 1 \
3289 -maxBinaryLoadRate 100 \
3290 -binaryResolution 1 \
3292 -binaryTolerance $tolerance \
3293 -binaryFrameLossUnit % \
3294 -comboFrameLossUnit % \
3295 -stepFrameLossUnit % \
3296 -initialStepLoadRate 10 \
3297 -maxStepLoadRate 100 \
3298 -stepStepLoadRate 10 \
3300 -initialComboLoadRate 10 \
3301 -maxComboLoadRate 100 \
3302 -minComboLoadRate 10 \
3303 -stepComboLoadRate 10 \
3304 -comboResolution 1 \
3307 -binarySearchType linear \
3308 -unchangedValueList {0} \
3309 -enableFastConvergence $fastConvergence \
3310 -fastConvergenceDuration $convergenceDuration \
3311 -fastConvergenceThreshold 10 \
3312 -framesizeFixedValue $frameSize \
3314 -unchangedInitial False \
3315 -generateTrackingOptionAggregationFiles False \
3316 -enableExtraIterations False \
3317 -extraIterationOffsets {10, -10} \
3318 -usePercentOffsets False \
3319 -imixDistribution weight \
3322 -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}}}} \
3323 -imixEnabled False \
3324 -imixTemplates none \
3325 -framesizeImixList $frameSize \
3326 -imixTrafficType {UNCHNAGED} \
3327 -mapType {oneToOne} \
3328 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3329 ixNet setMultiAttrs $sg_rfc2544throughput/learnFrames \
3330 -learnFrequency $learningFrequency \
3331 -learnNumFrames 10 \
3333 -learnWaitTime 1000 \
3334 -learnFrameSize $frameSize \
3335 -fastPathLearnFrameSize $frameSize \
3336 -learnWaitTimeBeforeTransmit 0 \
3337 -learnSendMacOnly False \
3338 -learnSendRouterSolicitation False \
3339 -fastPathEnable $fastPathEnable \
3341 -fastPathNumFrames 10
3342 ixNet setMultiAttrs $sg_rfc2544throughput/passCriteria \
3343 -passCriteriaLoadRateMode average \
3344 -passCriteriaLoadRateValue 100 \
3345 -passCriteriaLoadRateScale mbps \
3346 -enablePassFail False \
3347 -enableRatePassFail False \
3348 -enableLatencyPassFail False \
3349 -enableStandardDeviationPassFail False \
3350 -latencyThresholdValue 10 \
3351 -latencyThresholdScale us \
3352 -latencyThresholdMode average \
3353 -latencyVariationThresholdValue 0 \
3354 -latencyVariationThresholdScale us \
3355 -latencyVarThresholdMode average \
3356 -enableSequenceErrorsPassFail False \
3357 -seqErrorsThresholdValue 0 \
3358 -seqErrorsThresholdMode average \
3359 -enableDataIntegrityPassFail False \
3360 -dataErrorThresholdValue 0 \
3361 -dataErrorThresholdMode average
3363 set sg_rfc2544throughput [lindex [ixNet remapIds $sg_rfc2544throughput] 0]
3364 set ixNetSG_Stack(1) $sg_rfc2544throughput
3367 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/protocols
3369 set sg_protocols $ixNetSG_Stack(1)/protocols
3370 ixNet setMultiAttrs $sg_protocols \
3371 -protocolState default \
3372 -waitAfterStart 120 \
3375 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3378 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/trafficSelection:1
3380 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3381 ixNet setMultiAttrs $sg_trafficSelection \
3382 -id $ixNetSG_ref(26) \
3383 -includeMode inTest \
3384 -itemType trafficItem
3386 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3389 } elseif {$rfc2544TestType == "back2back"} {
3391 # configuring the object that corresponds to /quickTest/rfc2544back2back:2
3393 set sg_rfc2544back2back [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544back2back]
3394 ixNet setMultiAttrs $sg_rfc2544back2back \
3396 -mode existingMode \
3397 -inputParameters {{}}
3398 ixNet setMultiAttrs $sg_rfc2544back2back/testConfig \
3400 -framesize $frameSize \
3401 -reportTputRateUnit mbps \
3402 -rfc2544ImixDataQoS False \
3403 -detailedResultsEnabled True \
3404 -rfc2889ordering noOrdering \
3405 -floodedFramesEnabled False \
3406 -duration $duration \
3407 -numtrials $numTests \
3408 -trafficType constantLoading \
3410 -framesPerBurstGap 1 \
3412 -frameLossUnit {0} \
3413 -staggeredStart False \
3414 -framesizeList $frameSize \
3415 -frameSizeMode custom \
3416 -rateSelect percentMaxRate \
3417 -percentMaxRate 100 \
3419 -forceRegenerate False \
3420 -reportSequenceError False \
3423 -loadRateList $frameRate \
3427 -delayAfterTransmit 2 \
3428 -minRandomFrameSize 64 \
3429 -maxRandomFrameSize 1518 \
3430 -countRandomFrameSize 1 \
3431 -minIncrementFrameSize 64 \
3432 -stepIncrementFrameSize 64 \
3433 -maxIncrementFrameSize 1518 \
3434 -calculateLatency False \
3435 -calibrateLatency False \
3436 -latencyType cutThrough \
3437 -calculateJitter False \
3438 -enableDataIntegrity False \
3439 -loadType $loadType \
3440 -binaryFrameLossUnit % \
3441 -loadUnit percentMaxRate \
3442 -customLoadUnit percentMaxRate \
3443 -randomLoadUnit percentMaxRate \
3444 -incrementLoadUnit percentMaxRate \
3445 -binaryResolution 100 \
3447 -binaryTolerance $tolerance \
3448 -initialIncrementLoadRate 100 \
3449 -stepIncrementLoadRate 10 \
3450 -maxIncrementLoadRate 100 \
3451 -minRandomLoadRate 10 \
3452 -maxRandomLoadRate 80 \
3453 -countRandomLoadRate 1 \
3454 -numFrames {100000} \
3456 -enableMinFrameSize False \
3458 -generateTrackingOptionAggregationFiles False \
3459 -sendFullyMeshed False \
3460 -imixDistribution weight \
3463 -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}}}} \
3464 -imixEnabled False \
3465 -imixTemplates none \
3466 -framesizeImixList $frameSize \
3467 -imixTrafficType {UNCHNAGED} \
3468 -ipRatioMode fixed \
3469 -ipv4RatioList {10,25,50,75,90} \
3470 -ipv6RatioList {90,75,50,25,10} \
3471 -minIncrementIpv4Ratio {10} \
3472 -stepIncrementIpv4Ratio {10} \
3473 -maxIncrementIpv4Ratio {90} \
3474 -minIncrementIpv6Ratio {90} \
3475 -stepIncrementIpv6Ratio {-10} \
3476 -maxIncrementIpv6Ratio {10} \
3477 -minRandomIpv4Ratio {10} \
3478 -maxRandomIpv4Ratio {90} \
3479 -minRandomIpv6Ratio {90} \
3480 -maxRandomIpv6Ratio {10} \
3481 -countRandomIpRatio 1 \
3482 -mapType {oneToOne|manyToMany|fullMesh} \
3483 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3484 ixNet setMultiAttrs $sg_rfc2544back2back/learnFrames \
3485 -learnFrequency $learningFrequency \
3486 -learnNumFrames 10 \
3488 -learnWaitTime 1000 \
3489 -learnFrameSize 64 \
3490 -fastPathLearnFrameSize 64 \
3491 -learnWaitTimeBeforeTransmit 0 \
3492 -learnSendMacOnly False \
3493 -learnSendRouterSolicitation False \
3494 -fastPathEnable $fastPathEnable \
3496 -fastPathNumFrames 10
3497 ixNet setMultiAttrs $sg_rfc2544back2back/passCriteria \
3498 -passCriteriaLoadRateMode average \
3499 -passCriteriaLoadRateValue 100 \
3500 -passCriteriaLoadRateScale mbps \
3501 -enablePassFail False \
3502 -enableRatePassFail False \
3503 -enableLatencyPassFail False \
3504 -enableStandardDeviationPassFail False \
3505 -latencyThresholdValue 10 \
3506 -latencyThresholdScale us \
3507 -latencyThresholdMode average \
3508 -latencyVariationThresholdValue 0 \
3509 -latencyVariationThresholdScale us \
3510 -latencyVarThresholdMode average \
3511 -enableSequenceErrorsPassFail False \
3512 -seqErrorsThresholdValue 0 \
3513 -seqErrorsThresholdMode average \
3514 -enableDataIntegrityPassFail False \
3515 -dataErrorThresholdValue 0 \
3516 -dataErrorThresholdMode average \
3517 -enableFrameCountPassFail False \
3518 -passCriteriaFrameCountValue 100 \
3519 -passCriteriaFrameCountMode average
3521 set sg_rfc2544back2back [lindex [ixNet remapIds $sg_rfc2544back2back] 0]
3522 set ixNetSG_Stack(1) $sg_rfc2544back2back
3525 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/protocols
3527 set sg_protocols $ixNetSG_Stack(1)/protocols
3528 ixNet setMultiAttrs $sg_protocols \
3529 -protocolState default \
3530 -waitAfterStart 120 \
3533 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3536 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/trafficSelection:1
3538 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3539 ixNet setMultiAttrs $sg_trafficSelection \
3540 -id $ixNetSG_ref(26) \
3541 -includeMode inTest \
3542 -itemType trafficItem
3544 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3549 # getting and applying the RFC2544 test
3551 set root [ixNet getRoot]
3552 foreach traf_item [ixNet getList $root/traffic trafficItem] {
3553 ixNet exec generate $traf_item
3556 set qt [ixNet getList $root quickTest]
3557 if {$rfc2544TestType == "throughput"} {
3558 set rfc2544test [ixNet getList $qt rfc2544throughput]
3559 } elseif {$rfc2544TestType == "back2back"} {
3560 set rfc2544test [ixNet getList $qt rfc2544back2back]
3562 ixNet exec apply $rfc2544test
3566 # starting the RFC2544 Throughput test
3568 puts "Starting test..."
3569 ixNet exec start $rfc2544test
3572 proc waitForRfc2544Test { } {
3573 # Wait for- and return results of- RFC2544 quicktest.
3577 puts "Waiting for test to complete..."
3578 set result [ixNet exec waitForTest $rfc2544test]
3579 puts "Finished Test"