3 # Copyright (c) 2014, Ixia
4 # Copyright (c) 2015-2016, Intel Corporation
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
11 # 1. Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
14 # 2. Redistributions in binary form must reproduce the above copyright
15 # notice, this list of conditions and the following disclaimer in the
16 # documentation and/or other materials provided with the distribution.
18 # 3. Neither the name of the copyright holder nor the names of its
19 # contributors may be used to endorse or promote products derived
20 # from this software without specific prior written permission.
22 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 # POSSIBILITY OF SUCH DAMAGE.
35 # This file is a modified version of a script generated by Ixia
38 lappend auto_path [list $lib_path]
40 ###################################################################
41 ########################## Configuration ##########################
42 ###################################################################
44 # verify that the IXIA chassis spec is given
46 set reqVars [list "machine" "port" "user" "chassis" "card" "port1" "port2" "output_dir" "bidir"]
49 foreach var $reqVars {
50 set var_ns [namespace which -variable "$var"]
51 if { [string compare $var_ns ""] == 0 } {
52 errorMsg "The '$var' variable is undefined. Did you set it?"
57 # machine configuration
59 set ::IxNserver $machine
63 # change to windows path format and append directory
64 set output_dir [string map {"/" "\\"} $output_dir]
65 set output_dir "$output_dir\\rfctests"
66 puts "Output directory is $output_dir"
68 proc startRfc2544Test { testSpec trafficSpec } {
69 # Start RFC2544 quicktest.
71 # Configure global variables. See documentation on 'global' for more
72 # information on why this is necessary
73 # https://www.tcl.tk/man/tcl8.5/tutorial/Tcl13.html
75 global sg_rfc2544throughput
76 global sg_rfc2544back2back
80 set rfc2544TestType [dict get $testSpec rfc2544TestType]
82 set binary [dict get $testSpec binary]
84 set duration [dict get $testSpec duration]
87 set numTrials [dict get $testSpec trials]
89 set tolerance [dict get $testSpec lossrate]
93 set frameRate [dict get $testSpec framerate]
98 set learningFrames True
100 if {$learningFrames} {
101 set learningFrequency oncePerTest
102 set fastPathEnable True
104 set learningFrequency never
105 set fastPathEnable False
108 set multipleStreams [dict get $testSpec multipleStreams]
109 if {($multipleStreams < 0)} {
110 set multipleStreams 0
114 if {$multipleStreams} {
115 if {($multipleStreams > 65535)} {
118 set numflows $multipleStreams
120 set multipleStreams increment
122 set multipleStreams singleValue
125 set fastConvergence True
126 set convergenceDuration [expr $duration/10]
130 # extract nested dictionaries
131 set trafficSpec_l2 [dict get $trafficSpec l2]
132 set trafficSpec_l3 [dict get $trafficSpec l3]
133 set trafficSpec_l4 [dict get $trafficSpec l4]
134 set trafficSpec_vlan [dict get $trafficSpec vlan]
136 set frameSize [dict get $trafficSpec_l2 framesize]
137 set srcMac [dict get $trafficSpec_l2 srcmac]
138 set dstMac [dict get $trafficSpec_l2 dstmac]
140 set srcPort [dict get $trafficSpec_l4 srcport]
141 set dstPort [dict get $trafficSpec_l4 dstport]
143 set proto [dict get $trafficSpec_l3 proto]
144 set proto [string tolower $proto]
145 set srcIp [dict get $trafficSpec_l3 srcip]
146 set dstIp [dict get $trafficSpec_l3 dstip]
149 set vxlan_enabled [dict exists $trafficSpec_l4 vni]
150 if { $vxlan_enabled } {
151 puts "VXLAN is enabled. Setting VXLAN variables"
152 set vni [dict get $trafficSpec_l4 vni]
153 set inner_srcmac [dict get $trafficSpec_l4 inner_srcmac]
154 set inner_dstmac [dict get $trafficSpec_l4 inner_dstmac]
155 set inner_srcip [dict get $trafficSpec_l4 inner_srcip]
156 set inner_dstip [dict get $trafficSpec_l4 inner_dstip]
157 set inner_proto [dict get $trafficSpec_l4 inner_proto]
158 set inner_proto [string tolower $inner_proto]
159 set inner_srcport [dict get $trafficSpec_l4 inner_srcport]
160 set inner_dstport [dict get $trafficSpec_l4 inner_dstport]
163 if {$frameSize < 68 } {
164 if {$rfc2544TestType == "back2back"} {
165 puts "WARNING: Packet size too small, packet size will be \
166 increased to 68 for this test"
171 set VERSION [package require IxTclNetwork]
173 ###################################################################
174 ############################ Operation ############################
175 ###################################################################
177 puts "Connecting to IxNetwork machine..."
179 ixNet connect $::IxNserver -port $::IxNport -version $VERSION
181 puts "Connected to IxNetwork machine"
183 puts "Configuring IxNetwork machine..."
186 proc sg_commit {} {ixNet commit}
189 ixNet setSessionParameter version 6.30.701.16
190 ixNet execute newConfig
191 set ixNetSG_Stack(0) [ixNet getRoot]
194 # setting global options
196 set sg_top [ixNet getRoot]
197 ixNet setMultiAttrs $sg_top/availableHardware \
200 ixNet setMultiAttrs $sg_top/globals/preferences \
201 -connectPortsOnLoadConfig True \
202 -rebootPortsOnConnect False
203 ixNet setMultiAttrs $sg_top/globals/interfaces \
206 -sendSingleArpPerGateway True \
207 -sendSingleNsPerGateway True
208 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/checksums \
209 -dropRxL2FcsErrors False \
210 -correctTxL2FcsErrors False \
211 -alwaysCorrectWhenModifying True \
212 -correctTxChecksumOverIp False \
213 -correctTxIpv4Checksum False
214 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/rxRateLimit \
217 -units {kKilobitsPerSecond}
218 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/drop \
222 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/reorder \
227 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/duplicate \
232 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/bitError \
237 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delay \
240 -units {kMicroseconds}
241 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/delayVariation \
244 -units {kMicroseconds} \
245 -distribution {kUniform} \
246 -exponentialMeanArrival 0 \
247 -gaussianStandardDeviation 0
248 ixNet setMultiAttrs $sg_top/impairment/defaultProfile/customDelayVariation \
251 ixNet setMultiAttrs $sg_top/statistics \
252 -additionalFcoeStat2 fcoeInvalidFrames \
253 -csvLogPollIntervalMultiplier 1 \
255 -guardrailEnabled True \
256 -enableCsvLogging False \
257 -dataStorePollingIntervalMultiplier 1 \
258 -maxNumberOfStatsPerCustomGraph 16 \
259 -additionalFcoeStat1 fcoeInvalidDelimiter \
260 -timestampPrecision 3 \
261 -enableDataCenterSharedStats False \
262 -timeSynchronization syncTimeToTestStart \
263 -enableAutoDataStore False
264 ixNet setMultiAttrs $sg_top/statistics/measurementMode \
265 -measurementMode mixedMode
266 ixNet setMultiAttrs $sg_top/eventScheduler \
267 -licenseServerLocation {127.0.0.1}
268 ixNet setMultiAttrs $sg_top/traffic \
269 -destMacRetryCount 1 \
270 -maxTrafficGenerationQueries 500 \
271 -enableStaggeredTransmit False \
272 -learningFrameSize $frameSize \
274 -enableDestMacRetry True \
275 -enableMulticastScalingFactor False \
276 -destMacRetryDelay 5 \
277 -largeErrorThreshhold 2 \
278 -refreshLearnedInfoBeforeApply False \
279 -enableMinFrameSize False \
280 -macChangeOnFly False \
282 -enableInstantaneousStatsSupport False \
283 -learningFramesCount 10 \
284 -globalStreamControl continuous \
285 -displayMplsCurrentLabelValue False \
286 -mplsLabelLearningTimeout 30 \
287 -enableStaggeredStartDelay True \
288 -enableDataIntegrityCheck False \
289 -enableSequenceChecking False \
290 -globalStreamControlIterations 1 \
291 -enableStreamOrdering False \
292 -frameOrderingMode none \
293 -learningFramesRate 100
294 ixNet setMultiAttrs $sg_top/traffic/statistics/latency \
297 ixNet setMultiAttrs $sg_top/traffic/statistics/interArrivalTimeRate \
299 ixNet setMultiAttrs $sg_top/traffic/statistics/delayVariation \
301 -statisticsMode rxDelayVariationErrorsAndRate \
302 -latencyMode storeForward \
303 -largeSequenceNumberErrorThreshold 2
304 ixNet setMultiAttrs $sg_top/traffic/statistics/sequenceChecking \
306 -sequenceMode rxThreshold
307 ixNet setMultiAttrs $sg_top/traffic/statistics/advancedSequenceChecking \
309 -advancedSequenceThreshold 1
310 ixNet setMultiAttrs $sg_top/traffic/statistics/cpdpConvergence \
312 -dataPlaneJitterWindow 10485760 \
313 -dataPlaneThreshold 95 \
314 -enableDataPlaneEventsRateMonitor False \
315 -enableControlPlaneEvents False
316 ixNet setMultiAttrs $sg_top/traffic/statistics/packetLossDuration \
318 ixNet setMultiAttrs $sg_top/traffic/statistics/dataIntegrity \
320 ixNet setMultiAttrs $sg_top/traffic/statistics/errorStats \
322 ixNet setMultiAttrs $sg_top/traffic/statistics/prbs \
324 ixNet setMultiAttrs $sg_top/traffic/statistics/iptv \
326 ixNet setMultiAttrs $sg_top/traffic/statistics/l1Rates \
328 ixNet setMultiAttrs $sg_top/quickTest/globals \
329 -productLabel {Your switch/router name here} \
330 -serialNumber {Your switch/router serial number here} \
331 -version {Your firmware version here} \
333 -titlePageComments {} \
334 -maxLinesToDisplay 100 \
335 -enableCheckLinkState False \
336 -enableAbortIfLinkDown False \
337 -enableSwitchToStats True \
338 -enableCapture False \
339 -enableSwitchToResult True \
340 -enableGenerateReportAfterRun False \
341 -enableRebootCpu False \
342 -saveCaptureBeforeRun False \
344 -sleepTimeAfterReboot 10 \
345 -useDefaultRootPath False \
346 -outputRootPath $::output_dir
348 set sg_top [lindex [ixNet remapIds $sg_top] 0]
349 set ixNetSG_Stack(0) $sg_top
356 # configuring the object that corresponds to /vport:1
358 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
359 ixNet setMultiAttrs $sg_vport \
360 -transmitIgnoreLinkStatus False \
361 -txGapControlMode averageMode \
363 -connectedTo ::ixNet::OBJ-null \
364 -txMode interleaved \
366 -rxMode captureAndMeasure \
367 -name {10GE LAN - 001}
368 ixNet setMultiAttrs $sg_vport/l1Config \
369 -currentType tenGigLan
370 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
372 -flowControlDirectedAddress "01 80 C2 00 00 01" \
374 -autoInstrumentation endOfFrame \
375 -transmitClocking internal \
376 -txIgnoreRxLinkFaults False \
378 -enableLASIMonitoring False \
379 -enabledFlowControl True
380 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
384 -vendorSpecificInformation {00 00 00 00} \
385 -macAddress "00:00:00:00:00:00" \
389 -enableTlvOption False \
391 -organizationUniqueIdentifier {000000}
392 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
393 -supportDataCenterMode False \
394 -priorityGroupSize priorityGroupSize-8 \
396 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
397 -flowControlType ieee802.1Qbb \
398 -enablePFCPauseDelay False
399 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
401 -flowControlDirectedAddress "01 80 C2 00 00 01" \
403 -autoInstrumentation endOfFrame \
404 -transmitClocking internal \
405 -txIgnoreRxLinkFaults False \
407 -enableLASIMonitoring False \
408 -enabledFlowControl False
409 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
410 -supportDataCenterMode False \
411 -priorityGroupSize priorityGroupSize-8 \
413 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
414 -flowControlType ieee802.1Qbb \
415 -enablePFCPauseDelay False
416 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
420 -vendorSpecificInformation {00 00 00 00} \
421 -macAddress "00:00:00:00:00:00" \
425 -enableTlvOption False \
427 -organizationUniqueIdentifier {000000}
428 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
429 -sourceAddress1Mask {00:00:00:00:00:00} \
430 -destinationAddress1Mask {00:00:00:00:00:00} \
431 -sourceAddress2 {00:00:00:00:00:00} \
432 -pattern2OffsetType fromStartOfFrame \
435 -sourceAddress2Mask {00:00:00:00:00:00} \
436 -destinationAddress2 {00:00:00:00:00:00} \
437 -destinationAddress1 {00:00:00:00:00:00} \
438 -sourceAddress1 {00:00:00:00:00:00} \
440 -destinationAddress2Mask {00:00:00:00:00:00} \
444 -pattern1OffsetType fromStartOfFrame
445 ixNet setMultiAttrs $sg_vport/protocols/arp \
447 ixNet setMultiAttrs $sg_vport/protocols/bfd \
450 -packetsPerInterval 0
451 ixNet setMultiAttrs $sg_vport/protocols/bgp \
452 -autoFillUpDutIp False \
453 -disableReceivedUpdateValidation False \
454 -enableAdVplsPrefixLengthInBits False \
455 -enableExternalActiveConnect True \
456 -enableInternalActiveConnect True \
457 -enableVpnLabelExchangeOverLsp True \
460 -externalRetryDelay 120 \
462 -internalRetryDelay 120 \
464 -triggerVplsPwInitiation False
465 ixNet setMultiAttrs $sg_vport/protocols/cfm \
466 -enableOptionalLmFunctionality False \
467 -enableOptionalTlvValidation True \
471 -suppressErrorsOnAis True
472 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
474 ixNet setMultiAttrs $sg_vport/protocols/elmi \
476 ixNet setMultiAttrs $sg_vport/protocols/igmp \
481 -sendLeaveOnStop True \
482 -statsEnabled False \
484 ixNet setMultiAttrs $sg_vport/protocols/isis \
485 -allL1RbridgesMac "01:80:c2:00:00:40" \
486 -emulationType isisL3Routing \
488 -helloMulticastMac "01:80:c2:00:00:41" \
489 -lspMgroupPdusPerInterval 0 \
491 -rateControlInterval 0 \
492 -sendP2PHellosToUnicastMac True \
493 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
494 -spbHelloMulticastMac "09:00:2b:00:00:05" \
496 ixNet setMultiAttrs $sg_vport/protocols/lacp \
497 -enablePreservePartnerInfo False \
499 ixNet setMultiAttrs $sg_vport/protocols/ldp \
500 -enableDiscardSelfAdvFecs False \
501 -enableHelloJitter True \
502 -enableVpnLabelExchangeOverLsp True \
506 -keepAliveHoldTime 30 \
507 -keepAliveInterval 10 \
508 -p2mpCapabilityParam 1288 \
510 -targetedHelloInterval 15 \
511 -targetedHoldTime 45 \
512 -useTransportLabelsForMplsOam False
513 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
515 ixNet setMultiAttrs $sg_vport/protocols/lisp \
516 -burstIntervalInMs 0 \
518 -ipv4MapRegisterPacketsPerBurst 0 \
519 -ipv4MapRequestPacketsPerBurst 0 \
520 -ipv4SmrPacketsPerBurst 0 \
521 -ipv6MapRegisterPacketsPerBurst 0 \
522 -ipv6MapRequestPacketsPerBurst 0 \
523 -ipv6SmrPacketsPerBurst 0
524 ixNet setMultiAttrs $sg_vport/protocols/mld \
525 -enableDoneOnStop True \
527 -mldv2Report type143 \
532 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
534 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
535 -apsChannelType {00 02 } \
536 -bfdCcChannelType {00 07 } \
537 -delayManagementChannelType {00 05 } \
538 -enableHighPerformanceMode True \
540 -faultManagementChannelType {00 58 } \
541 -lossMeasurementChannelType {00 04 } \
542 -onDemandCvChannelType {00 09 } \
543 -pwStatusChannelType {00 0B } \
544 -y1731ChannelType {7F FA }
545 ixNet setMultiAttrs $sg_vport/protocols/ospf \
546 -enableDrOrBdr False \
548 -floodLinkStateUpdatesPerInterval 0 \
549 -rateControlInterval 0
550 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
552 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
553 -bsmFramePerInterval 0 \
554 -crpFramePerInterval 0 \
555 -dataMdtFramePerInterval 0 \
556 -denyGrePimIpPrefix {0.0.0.0/32} \
557 -enableDiscardJoinPruneProcessing False \
558 -enableRateControl False \
560 -helloMsgsPerInterval 0 \
562 -joinPruneMessagesPerInterval 0 \
563 -registerMessagesPerInterval 0 \
564 -registerStopMessagesPerInterval 0
565 ixNet setMultiAttrs $sg_vport/protocols/ping \
567 ixNet setMultiAttrs $sg_vport/protocols/rip \
569 ixNet setMultiAttrs $sg_vport/protocols/ripng \
571 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
572 -enableControlLspInitiationRate False \
573 -enableShowTimeValue False \
574 -enableVpnLabelExchangeOverLsp True \
576 -maxLspInitiationsPerSec 400 \
577 -useTransportLabelsForMplsOam False
578 ixNet setMultiAttrs $sg_vport/protocols/stp \
580 ixNet setMultiAttrs $sg_vport/rateControlParameters \
581 -maxRequestsPerBurst 1 \
582 -maxRequestsPerSec 250 \
583 -minRetryInterval 10 \
585 -sendInBursts False \
586 -sendRequestsAsFastAsPossible False
587 ixNet setMultiAttrs $sg_vport/capture \
588 -controlCaptureTrigger {} \
589 -controlCaptureFilter {} \
590 -hardwareEnabled False \
591 -softwareEnabled False \
592 -displayFiltersDataCapture {} \
593 -displayFiltersControlCapture {} \
594 -controlBufferSize 30 \
595 -controlBufferBehaviour bufferLiveNonCircular
596 ixNet setMultiAttrs $sg_vport/protocolStack/options \
597 -routerSolicitationDelay 1 \
598 -routerSolicitationInterval 4 \
599 -routerSolicitations 3 \
603 -ipv4RetransTime 3000 \
606 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
607 set ixNetSG_ref(2) $sg_vport
608 set ixNetSG_Stack(1) $sg_vport
611 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:1
613 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
614 ixNet setMultiAttrs $sg_uds \
615 -destinationAddressSelector anyAddr \
616 -customFrameSizeTo 0 \
617 -customFrameSizeFrom 0 \
619 -patternSelector anyPattern \
620 -sourceAddressSelector anyAddr \
624 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
627 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:2
629 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
630 ixNet setMultiAttrs $sg_uds \
631 -destinationAddressSelector anyAddr \
632 -customFrameSizeTo 0 \
633 -customFrameSizeFrom 0 \
635 -patternSelector anyPattern \
636 -sourceAddressSelector anyAddr \
640 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
643 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:3
645 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
646 ixNet setMultiAttrs $sg_uds \
647 -destinationAddressSelector anyAddr \
648 -customFrameSizeTo 0 \
649 -customFrameSizeFrom 0 \
651 -patternSelector anyPattern \
652 -sourceAddressSelector anyAddr \
656 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
659 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:4
661 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
662 ixNet setMultiAttrs $sg_uds \
663 -destinationAddressSelector anyAddr \
664 -customFrameSizeTo 0 \
665 -customFrameSizeFrom 0 \
667 -patternSelector anyPattern \
668 -sourceAddressSelector anyAddr \
672 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
675 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:5
677 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
678 ixNet setMultiAttrs $sg_uds \
679 -destinationAddressSelector anyAddr \
680 -customFrameSizeTo 0 \
681 -customFrameSizeFrom 0 \
683 -patternSelector anyPattern \
684 -sourceAddressSelector anyAddr \
688 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
691 # configuring the object that corresponds to /vport:1/l1Config/rxFilters/uds:6
693 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
694 ixNet setMultiAttrs $sg_uds \
695 -destinationAddressSelector anyAddr \
696 -customFrameSizeTo 0 \
697 -customFrameSizeFrom 0 \
699 -patternSelector anyPattern \
700 -sourceAddressSelector anyAddr \
704 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
707 # configuring the object that corresponds to /vport:1/protocols/static/lan:1
709 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
710 ixNet setMultiAttrs $sg_lan \
711 -atmEncapsulation ::ixNet::OBJ-null \
714 -enableIncrementMac False \
715 -enableIncrementVlan False \
716 -enableSiteId False \
719 -frEncapsulation ::ixNet::OBJ-null \
720 -incrementPerVcVlanMode noIncrement \
721 -incrementVlanMode noIncrement \
723 -macRangeMode normal \
726 -skipVlanIdZero True \
728 -trafficGroupId ::ixNet::OBJ-null \
733 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
736 # configuring the object that corresponds to /vport:2
738 set sg_vport [ixNet add $ixNetSG_Stack(0) vport]
739 ixNet setMultiAttrs $sg_vport \
740 -transmitIgnoreLinkStatus False \
741 -txGapControlMode averageMode \
743 -connectedTo ::ixNet::OBJ-null \
744 -txMode interleaved \
746 -rxMode captureAndMeasure \
747 -name {10GE LAN - 002}
748 ixNet setMultiAttrs $sg_vport/l1Config \
749 -currentType tenGigLan
750 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan \
752 -flowControlDirectedAddress "01 80 C2 00 00 01" \
754 -autoInstrumentation endOfFrame \
755 -transmitClocking internal \
756 -txIgnoreRxLinkFaults False \
758 -enableLASIMonitoring False \
759 -enabledFlowControl False
760 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/oam \
764 -vendorSpecificInformation {00 00 00 00} \
765 -macAddress "00:00:00:00:00:00" \
769 -enableTlvOption False \
771 -organizationUniqueIdentifier {000000}
772 ixNet setMultiAttrs $sg_vport/l1Config/tenGigLan/fcoe \
773 -supportDataCenterMode False \
774 -priorityGroupSize priorityGroupSize-8 \
776 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
777 -flowControlType ieee802.1Qbb \
778 -enablePFCPauseDelay False
779 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan \
781 -flowControlDirectedAddress "01 80 C2 00 00 01" \
783 -autoInstrumentation endOfFrame \
784 -transmitClocking internal \
785 -txIgnoreRxLinkFaults False \
787 -enableLASIMonitoring False \
788 -enabledFlowControl False
789 ixNet setMultiAttrs $sg_vport/l1Config/fortyGigLan/fcoe \
790 -supportDataCenterMode False \
791 -priorityGroupSize priorityGroupSize-8 \
793 -pfcPriorityGroups {0 1 2 3 4 5 6 7} \
794 -flowControlType ieee802.1Qbb \
795 -enablePFCPauseDelay False
796 ixNet setMultiAttrs $sg_vport/l1Config/OAM \
800 -vendorSpecificInformation {00 00 00 00} \
801 -macAddress "00:00:00:00:00:00" \
805 -enableTlvOption False \
807 -organizationUniqueIdentifier {000000}
808 ixNet setMultiAttrs $sg_vport/l1Config/rxFilters/filterPalette \
809 -sourceAddress1Mask {00:00:00:00:00:00} \
810 -destinationAddress1Mask {00:00:00:00:00:00} \
811 -sourceAddress2 {00:00:00:00:00:00} \
812 -pattern2OffsetType fromStartOfFrame \
815 -sourceAddress2Mask {00:00:00:00:00:00} \
816 -destinationAddress2 {00:00:00:00:00:00} \
817 -destinationAddress1 {00:00:00:00:00:00} \
818 -sourceAddress1 {00:00:00:00:00:00} \
820 -destinationAddress2Mask {00:00:00:00:00:00} \
824 -pattern1OffsetType fromStartOfFrame
825 ixNet setMultiAttrs $sg_vport/protocols/arp \
827 ixNet setMultiAttrs $sg_vport/protocols/bfd \
830 -packetsPerInterval 0
831 ixNet setMultiAttrs $sg_vport/protocols/bgp \
832 -autoFillUpDutIp False \
833 -disableReceivedUpdateValidation False \
834 -enableAdVplsPrefixLengthInBits False \
835 -enableExternalActiveConnect True \
836 -enableInternalActiveConnect True \
837 -enableVpnLabelExchangeOverLsp True \
840 -externalRetryDelay 120 \
842 -internalRetryDelay 120 \
844 -triggerVplsPwInitiation False
845 ixNet setMultiAttrs $sg_vport/protocols/cfm \
846 -enableOptionalLmFunctionality False \
847 -enableOptionalTlvValidation True \
851 -suppressErrorsOnAis True
852 ixNet setMultiAttrs $sg_vport/protocols/eigrp \
854 ixNet setMultiAttrs $sg_vport/protocols/elmi \
856 ixNet setMultiAttrs $sg_vport/protocols/igmp \
861 -sendLeaveOnStop True \
862 -statsEnabled False \
864 ixNet setMultiAttrs $sg_vport/protocols/isis \
865 -allL1RbridgesMac "01:80:c2:00:00:40" \
866 -emulationType isisL3Routing \
868 -helloMulticastMac "01:80:c2:00:00:41" \
869 -lspMgroupPdusPerInterval 0 \
871 -rateControlInterval 0 \
872 -sendP2PHellosToUnicastMac True \
873 -spbAllL1BridgesMac "09:00:2b:00:00:05" \
874 -spbHelloMulticastMac "09:00:2b:00:00:05" \
876 ixNet setMultiAttrs $sg_vport/protocols/lacp \
877 -enablePreservePartnerInfo False \
879 ixNet setMultiAttrs $sg_vport/protocols/ldp \
880 -enableDiscardSelfAdvFecs False \
881 -enableHelloJitter True \
882 -enableVpnLabelExchangeOverLsp True \
886 -keepAliveHoldTime 30 \
887 -keepAliveInterval 10 \
888 -p2mpCapabilityParam 1288 \
890 -targetedHelloInterval 15 \
891 -targetedHoldTime 45 \
892 -useTransportLabelsForMplsOam False
893 ixNet setMultiAttrs $sg_vport/protocols/linkOam \
895 ixNet setMultiAttrs $sg_vport/protocols/lisp \
896 -burstIntervalInMs 0 \
898 -ipv4MapRegisterPacketsPerBurst 0 \
899 -ipv4MapRequestPacketsPerBurst 0 \
900 -ipv4SmrPacketsPerBurst 0 \
901 -ipv6MapRegisterPacketsPerBurst 0 \
902 -ipv6MapRequestPacketsPerBurst 0 \
903 -ipv6SmrPacketsPerBurst 0
904 ixNet setMultiAttrs $sg_vport/protocols/mld \
905 -enableDoneOnStop True \
907 -mldv2Report type143 \
912 ixNet setMultiAttrs $sg_vport/protocols/mplsOam \
914 ixNet setMultiAttrs $sg_vport/protocols/mplsTp \
915 -apsChannelType {00 02 } \
916 -bfdCcChannelType {00 07 } \
917 -delayManagementChannelType {00 05 } \
918 -enableHighPerformanceMode True \
920 -faultManagementChannelType {00 58 } \
921 -lossMeasurementChannelType {00 04 } \
922 -onDemandCvChannelType {00 09 } \
923 -pwStatusChannelType {00 0B } \
924 -y1731ChannelType {7F FA }
925 ixNet setMultiAttrs $sg_vport/protocols/ospf \
926 -enableDrOrBdr False \
928 -floodLinkStateUpdatesPerInterval 0 \
929 -rateControlInterval 0
930 ixNet setMultiAttrs $sg_vport/protocols/ospfV3 \
932 ixNet setMultiAttrs $sg_vport/protocols/pimsm \
933 -bsmFramePerInterval 0 \
934 -crpFramePerInterval 0 \
935 -dataMdtFramePerInterval 0 \
936 -denyGrePimIpPrefix {0.0.0.0/32} \
937 -enableDiscardJoinPruneProcessing False \
938 -enableRateControl False \
940 -helloMsgsPerInterval 0 \
942 -joinPruneMessagesPerInterval 0 \
943 -registerMessagesPerInterval 0 \
944 -registerStopMessagesPerInterval 0
945 ixNet setMultiAttrs $sg_vport/protocols/ping \
947 ixNet setMultiAttrs $sg_vport/protocols/rip \
949 ixNet setMultiAttrs $sg_vport/protocols/ripng \
951 ixNet setMultiAttrs $sg_vport/protocols/rsvp \
952 -enableControlLspInitiationRate False \
953 -enableShowTimeValue False \
954 -enableVpnLabelExchangeOverLsp True \
956 -maxLspInitiationsPerSec 400 \
957 -useTransportLabelsForMplsOam False
958 ixNet setMultiAttrs $sg_vport/protocols/stp \
960 ixNet setMultiAttrs $sg_vport/rateControlParameters \
961 -maxRequestsPerBurst 1 \
962 -maxRequestsPerSec 250 \
963 -minRetryInterval 10 \
965 -sendInBursts False \
966 -sendRequestsAsFastAsPossible False
967 ixNet setMultiAttrs $sg_vport/capture \
968 -controlCaptureTrigger {} \
969 -controlCaptureFilter {} \
970 -hardwareEnabled False \
971 -softwareEnabled False \
972 -displayFiltersDataCapture {} \
973 -displayFiltersControlCapture {} \
974 -controlBufferSize 30 \
975 -controlBufferBehaviour bufferLiveNonCircular
976 ixNet setMultiAttrs $sg_vport/protocolStack/options \
977 -routerSolicitationDelay 1 \
978 -routerSolicitationInterval 4 \
979 -routerSolicitations 3 \
983 -ipv4RetransTime 3000 \
986 set sg_vport [lindex [ixNet remapIds $sg_vport] 0]
987 set ixNetSG_ref(10) $sg_vport
988 set ixNetSG_Stack(1) $sg_vport
991 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:1
993 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:1
994 ixNet setMultiAttrs $sg_uds \
995 -destinationAddressSelector anyAddr \
996 -customFrameSizeTo 0 \
997 -customFrameSizeFrom 0 \
999 -patternSelector anyPattern \
1000 -sourceAddressSelector anyAddr \
1004 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1007 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:2
1009 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:2
1010 ixNet setMultiAttrs $sg_uds \
1011 -destinationAddressSelector anyAddr \
1012 -customFrameSizeTo 0 \
1013 -customFrameSizeFrom 0 \
1014 -error errAnyFrame \
1015 -patternSelector anyPattern \
1016 -sourceAddressSelector anyAddr \
1020 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1023 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:3
1025 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:3
1026 ixNet setMultiAttrs $sg_uds \
1027 -destinationAddressSelector anyAddr \
1028 -customFrameSizeTo 0 \
1029 -customFrameSizeFrom 0 \
1030 -error errAnyFrame \
1031 -patternSelector anyPattern \
1032 -sourceAddressSelector anyAddr \
1036 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1039 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:4
1041 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:4
1042 ixNet setMultiAttrs $sg_uds \
1043 -destinationAddressSelector anyAddr \
1044 -customFrameSizeTo 0 \
1045 -customFrameSizeFrom 0 \
1046 -error errAnyFrame \
1047 -patternSelector anyPattern \
1048 -sourceAddressSelector anyAddr \
1052 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1055 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:5
1057 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:5
1058 ixNet setMultiAttrs $sg_uds \
1059 -destinationAddressSelector anyAddr \
1060 -customFrameSizeTo 0 \
1061 -customFrameSizeFrom 0 \
1062 -error errAnyFrame \
1063 -patternSelector anyPattern \
1064 -sourceAddressSelector anyAddr \
1068 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1071 # configuring the object that corresponds to /vport:2/l1Config/rxFilters/uds:6
1073 set sg_uds $ixNetSG_Stack(1)/l1Config/rxFilters/uds:6
1074 ixNet setMultiAttrs $sg_uds \
1075 -destinationAddressSelector anyAddr \
1076 -customFrameSizeTo 0 \
1077 -customFrameSizeFrom 0 \
1078 -error errAnyFrame \
1079 -patternSelector anyPattern \
1080 -sourceAddressSelector anyAddr \
1084 set sg_uds [lindex [ixNet remapIds $sg_uds] 0]
1087 # configuring the object that corresponds to /vport:2/protocols/static/lan:1
1089 set sg_lan [ixNet add $ixNetSG_Stack(1)/protocols/static lan]
1090 ixNet setMultiAttrs $sg_lan \
1091 -atmEncapsulation ::ixNet::OBJ-null \
1094 -enableIncrementMac False \
1095 -enableIncrementVlan False \
1096 -enableSiteId False \
1099 -frEncapsulation ::ixNet::OBJ-null \
1100 -incrementPerVcVlanMode noIncrement \
1101 -incrementVlanMode noIncrement \
1103 -macRangeMode normal \
1106 -skipVlanIdZero True \
1108 -trafficGroupId ::ixNet::OBJ-null \
1113 set sg_lan [lindex [ixNet remapIds $sg_lan] 0]
1116 ### /availableHardware area
1120 # configuring the object that corresponds to /availableHardware/chassis"
1122 set sg_chassis [ixNet add $ixNetSG_Stack(0)/availableHardware chassis]
1123 ixNet setMultiAttrs $sg_chassis \
1127 -hostname $::chassis
1129 set sg_chassis [lindex [ixNet remapIds $sg_chassis] 0]
1130 set ixNetSG_Stack(1) $sg_chassis
1133 # configuring the object that corresponds to /availableHardware/chassis/card
1135 set sg_card $ixNetSG_Stack(1)/card:$::card
1136 ixNet setMultiAttrs $sg_card \
1137 -aggregationMode normal
1139 set sg_card [lindex [ixNet remapIds $sg_card] 0]
1140 set ixNetSG_ref(19) $sg_card
1141 set ixNetSG_Stack(2) $sg_card
1144 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:1
1146 set sg_aggregation $ixNetSG_Stack(2)/aggregation:1
1147 ixNet setMultiAttrs $sg_aggregation \
1150 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1153 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:2
1155 set sg_aggregation $ixNetSG_Stack(2)/aggregation:2
1156 ixNet setMultiAttrs $sg_aggregation \
1159 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1162 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:3
1164 set sg_aggregation $ixNetSG_Stack(2)/aggregation:3
1165 ixNet setMultiAttrs $sg_aggregation \
1168 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1171 # configuring the object that corresponds to /availableHardware/chassis/card/aggregation:4
1173 set sg_aggregation $ixNetSG_Stack(2)/aggregation:4
1174 ixNet setMultiAttrs $sg_aggregation \
1177 set sg_aggregation [lindex [ixNet remapIds $sg_aggregation] 0]
1178 ixNet setMultiAttrs $ixNetSG_ref(2) \
1179 -connectedTo $ixNetSG_ref(19)/port:$::port1
1181 ixNet setMultiAttrs $ixNetSG_ref(10) \
1182 -connectedTo $ixNetSG_ref(19)/port:$::port2
1187 ### /impairment area
1191 # configuring the object that corresponds to /impairment/profile:3
1193 set sg_profile [ixNet add $ixNetSG_Stack(0)/impairment profile]
1194 ixNet setMultiAttrs $sg_profile \
1196 -name {Impairment Profile 1} \
1200 ixNet setMultiAttrs $sg_profile/checksums \
1201 -dropRxL2FcsErrors False \
1202 -correctTxL2FcsErrors False \
1203 -alwaysCorrectWhenModifying True \
1204 -correctTxChecksumOverIp False \
1205 -correctTxIpv4Checksum False
1206 ixNet setMultiAttrs $sg_profile/rxRateLimit \
1209 -units {kKilobitsPerSecond}
1210 ixNet setMultiAttrs $sg_profile/drop \
1214 ixNet setMultiAttrs $sg_profile/reorder \
1219 ixNet setMultiAttrs $sg_profile/duplicate \
1224 ixNet setMultiAttrs $sg_profile/bitError \
1229 ixNet setMultiAttrs $sg_profile/delay \
1232 -units {kMicroseconds}
1233 ixNet setMultiAttrs $sg_profile/delayVariation \
1236 -units {kMicroseconds} \
1237 -distribution {kUniform} \
1238 -exponentialMeanArrival 0 \
1239 -gaussianStandardDeviation 0
1240 ixNet setMultiAttrs $sg_profile/customDelayVariation \
1244 set sg_profile [lindex [ixNet remapIds $sg_profile] 0]
1245 set ixNetSG_Stack(1) $sg_profile
1248 # configuring the object that corresponds to /impairment/profile:3/fixedClassifier:1
1250 set sg_fixedClassifier [ixNet add $ixNetSG_Stack(1) fixedClassifier]
1252 set sg_fixedClassifier [lindex [ixNet remapIds $sg_fixedClassifier] 0]
1259 # configuring the object that corresponds to /traffic/trafficItem:1
1261 set sg_trafficItem [ixNet add $ixNetSG_Stack(0)/traffic trafficItem]
1262 ixNet setMultiAttrs $sg_trafficItem \
1263 -transportRsvpTePreference one \
1264 -trafficItemType l2L3 \
1265 -biDirectional $::biDirect \
1266 -mergeDestinations True \
1267 -hostsPerNetwork 1 \
1268 -transmitMode interleaved \
1270 -trafficType {ethernetVlan} \
1271 -interAsLdpPreference two \
1272 -allowSelfDestined False \
1274 -maxNumberOfVpnLabelStack 2 \
1275 -interAsBgpPreference one \
1277 -transportLdpPreference two \
1278 -egressEnabled False \
1279 -enableDynamicMplsLabelValues False \
1280 -routeMesh oneToOne \
1281 -name {Traffic Item 1} \
1282 -srcDestMesh oneToOne
1284 set sg_trafficItem [lindex [ixNet remapIds $sg_trafficItem] 0]
1285 set ixNetSG_ref(26) $sg_trafficItem
1286 set ixNetSG_Stack(1) $sg_trafficItem
1289 # configuring the object that corresponds to /traffic/trafficItem:1/endpointSet:1
1291 set sg_endpointSet [ixNet add $ixNetSG_Stack(1) endpointSet]
1292 ixNet setMultiAttrs $sg_endpointSet \
1293 -destinations [list $ixNetSG_ref(10)/protocols] \
1294 -destinationFilter {} \
1297 -sources [list $ixNetSG_ref(2)/protocols] \
1298 -name {EndpointSet-1}
1300 set sg_endpointSet [lindex [ixNet remapIds $sg_endpointSet] 0]
1303 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1
1305 set sg_configElement $ixNetSG_Stack(1)/configElement:1
1306 ixNet setMultiAttrs $sg_configElement \
1308 -preambleCustomSize 8 \
1309 -enableDisparityError False \
1310 -preambleFrameSizeMode auto \
1311 -destinationMacMode manual
1312 ixNet setMultiAttrs $sg_configElement/frameSize \
1320 -presetDistribution cisco \
1323 ixNet setMultiAttrs $sg_configElement/frameRate \
1324 -bitRateUnitsType bitsPerSec \
1326 -enforceMinimumInterPacketGap 0 \
1327 -type percentLineRate \
1328 -interPacketGapUnitsType nanoseconds
1329 ixNet setMultiAttrs $sg_configElement/framePayload \
1330 -type incrementByte \
1331 -customRepeat True \
1333 ixNet setMultiAttrs $sg_configElement/frameRateDistribution \
1334 -streamDistribution applyRateToAll \
1335 -portDistribution applyRateToAll
1336 ixNet setMultiAttrs $sg_configElement/transmissionControl \
1341 -interBurstGapUnits nanoseconds \
1345 -enableInterStreamGap False \
1346 -startDelayUnits bytes \
1348 -burstPacketCount 1 \
1349 -enableInterBurstGap False \
1352 set sg_configElement [lindex [ixNet remapIds $sg_configElement] 0]
1353 set ixNetSG_Stack(2) $sg_configElement
1356 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"
1358 set sg_stack $ixNetSG_Stack(2)/stack:"ethernet-1"
1360 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1361 set ixNetSG_Stack(3) $sg_stack
1364 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.destinationAddress-1"
1366 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.destinationAddress-1"
1367 ixNet setMultiAttrs $sg_field \
1368 -singleValue {00:00:00:00:00:00} \
1370 -optionalEnabled True \
1372 -valueList {{00:00:00:00:00:00}} \
1373 -stepValue {00:00:00:00:00:00} \
1374 -fixedBits {00:00:00:00:00:00} \
1375 -fieldValue {00:00:00:00:00:00} \
1377 -randomMask {00:00:00:00:00:00} \
1378 -trackingEnabled False \
1379 -valueType singleValue \
1380 -activeFieldChoice False \
1381 -startValue {00:00:00:00:00:00} \
1384 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1387 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.sourceAddress-2"
1389 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.sourceAddress-2"
1390 ixNet setMultiAttrs $sg_field \
1391 -singleValue {00:00:00:00:00:00} \
1393 -optionalEnabled True \
1395 -valueList {{00:00:00:00:00:00}} \
1396 -stepValue {00:00:00:00:00:00} \
1397 -fixedBits {00:00:00:00:00:00} \
1398 -fieldValue {00:00:00:00:00:00} \
1400 -randomMask {00:00:00:00:00:00} \
1401 -trackingEnabled False \
1402 -valueType singleValue \
1403 -activeFieldChoice False \
1404 -startValue {00:00:00:00:00:00} \
1407 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1410 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernet-1"/field:"ethernet.header.etherType-3"
1412 set sg_field $ixNetSG_Stack(3)/field:"ethernet.header.etherType-3"
1413 ixNet setMultiAttrs $sg_field \
1414 -singleValue {800} \
1416 -optionalEnabled True \
1418 -valueList {{0xFFFF}} \
1419 -stepValue {0xFFFF} \
1420 -fixedBits {0xFFFF} \
1423 -randomMask {0xFFFF} \
1424 -trackingEnabled False \
1425 -valueType singleValue \
1426 -activeFieldChoice False \
1427 -startValue {0xFFFF} \
1430 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1433 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"
1435 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-2"
1437 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1438 set ixNetSG_Stack(3) $sg_stack
1441 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.version-1"
1443 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
1444 ixNet setMultiAttrs $sg_field \
1447 -optionalEnabled True \
1455 -trackingEnabled False \
1456 -valueType singleValue \
1457 -activeFieldChoice False \
1462 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.protocol-25"
1464 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
1465 ixNet setMultiAttrs $sg_field \
1468 -optionalEnabled True \
1473 -fieldValue {$proto} \
1476 -trackingEnabled False \
1477 -valueType singleValue \
1478 -activeFieldChoice False \
1483 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.checksum-26"
1485 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
1486 ixNet setMultiAttrs $sg_field \
1489 -optionalEnabled True \
1497 -trackingEnabled False \
1498 -valueType singleValue \
1499 -activeFieldChoice False \
1504 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.srcIp-27"
1506 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
1507 ixNet setMultiAttrs $sg_field \
1508 -singleValue $srcIp \
1510 -optionalEnabled True \
1512 -valueList {{0.0.0.0}} \
1513 -stepValue {0.0.0.0} \
1514 -fixedBits {0.0.0.0} \
1515 -fieldValue $srcIp \
1517 -randomMask {0.0.0.0} \
1518 -trackingEnabled False \
1519 -valueType singleValue \
1520 -activeFieldChoice False \
1521 -startValue {0.0.0.0} \
1525 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.dstIp-28"
1527 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
1528 ixNet setMultiAttrs $sg_field \
1529 -singleValue $dstIp \
1531 -optionalEnabled True \
1533 -valueList {{0.0.0.0}} \
1534 -stepValue {0.0.0.0} \
1535 -fixedBits {0.0.0.0} \
1536 -fieldValue $dstIp \
1538 -randomMask {0.0.0.0} \
1539 -trackingEnabled False \
1540 -valueType singleValue \
1541 -activeFieldChoice False \
1542 -startValue {0.0.0.0} \
1545 #set sg_field [lindex [ixNet remapIds $sg_field] 0]
1548 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-2"/field:"ipv4.header.options.pad-58"
1550 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
1551 ixNet setMultiAttrs $sg_field \
1554 -optionalEnabled False \
1562 -trackingEnabled False \
1563 -valueType singleValue \
1564 -activeFieldChoice False \
1569 if { [string compare $proto "udp"] == 0 } {
1570 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"
1572 set sg_stack $ixNetSG_Stack(2)/stack:"udp-3"
1574 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1575 set ixNetSG_Stack(3) $sg_stack
1578 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.srcPort-1"
1580 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
1581 ixNet setMultiAttrs $sg_field \
1582 -singleValue $srcPort \
1584 -optionalEnabled True \
1589 -fieldValue {$srcPort} \
1592 -trackingEnabled False \
1593 -valueType singleValue \
1594 -activeFieldChoice False \
1599 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.dstPort-2"
1601 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
1602 ixNet setMultiAttrs $sg_field \
1603 -singleValue $dstPort \
1605 -optionalEnabled True \
1610 -fieldValue $dstPort \
1613 -trackingEnabled False \
1614 -valueType $multipleStreams \
1615 -activeFieldChoice False \
1617 -countValue $numflows
1620 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.length-3"
1622 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
1623 ixNet setMultiAttrs $sg_field \
1626 -optionalEnabled True \
1634 -trackingEnabled False \
1635 -valueType singleValue \
1636 -activeFieldChoice False \
1641 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"udp-3"/field:"udp.header.checksum-4"
1643 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
1644 ixNet setMultiAttrs $sg_field \
1647 -optionalEnabled True \
1655 -trackingEnabled False \
1656 -valueType singleValue \
1657 -activeFieldChoice False \
1662 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.srcPort-1"
1663 ixNet setMultiAttrs $sg_field \
1664 -singleValue $srcPort \
1666 -optionalEnabled true \
1668 -valueList [list $srcPort] \
1671 -fieldValue $srcPort \
1674 -trackingEnabled false \
1675 -valueType singleValue \
1676 -activeFieldChoice false \
1680 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.dstPort-2"
1681 ixNet setMultiAttrs $sg_field \
1682 -singleValue $dstPort \
1684 -optionalEnabled true \
1686 -valueList [list $dstPort] \
1689 -fieldValue $dstPort \
1692 -trackingEnabled false \
1693 -valueType singleValue \
1694 -activeFieldChoice false \
1698 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.sequenceNumber-3"
1699 ixNet setMultiAttrs $sg_field \
1702 -optionalEnabled true \
1704 -valueList [list 0x00000000] \
1705 -stepValue 0x00000000 \
1706 -fixedBits 0x00000000 \
1709 -randomMask 0x00000000 \
1710 -trackingEnabled false \
1711 -valueType singleValue \
1712 -activeFieldChoice false \
1713 -startValue 0x00000000 \
1716 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.acknowledgementNumber-4"
1717 ixNet setMultiAttrs $sg_field \
1720 -optionalEnabled true \
1722 -valueList [list 0x00000000] \
1723 -stepValue 0x00000000 \
1724 -fixedBits 0x00000000 \
1727 -randomMask 0x00000000 \
1728 -trackingEnabled false \
1729 -valueType singleValue \
1730 -activeFieldChoice false \
1731 -startValue 0x00000000 \
1734 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.dataOffset-5"
1735 ixNet setMultiAttrs $sg_field \
1738 -optionalEnabled true \
1740 -valueList [list 5] \
1746 -trackingEnabled false \
1747 -valueType singleValue \
1748 -activeFieldChoice false \
1752 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.reserved-6"
1753 ixNet setMultiAttrs $sg_field \
1756 -optionalEnabled true \
1758 -valueList [list 0] \
1764 -trackingEnabled false \
1765 -valueType singleValue \
1766 -activeFieldChoice false \
1770 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.ecn.nsBit-7"
1771 ixNet setMultiAttrs $sg_field \
1774 -optionalEnabled true \
1776 -valueList [list 0] \
1782 -trackingEnabled false \
1783 -valueType singleValue \
1784 -activeFieldChoice false \
1788 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.ecn.cwrBit-8"
1789 ixNet setMultiAttrs $sg_field \
1792 -optionalEnabled true \
1794 -valueList [list 0] \
1800 -trackingEnabled false \
1801 -valueType singleValue \
1802 -activeFieldChoice false \
1806 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.ecn.ecnEchoBit-9"
1807 ixNet setMultiAttrs $sg_field \
1810 -optionalEnabled true \
1812 -valueList [list 0] \
1818 -trackingEnabled false \
1819 -valueType singleValue \
1820 -activeFieldChoice false \
1824 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.controlBits.urgBit-10"
1825 ixNet setMultiAttrs $sg_field \
1828 -optionalEnabled true \
1830 -valueList [list 0] \
1836 -trackingEnabled false \
1837 -valueType singleValue \
1838 -activeFieldChoice false \
1842 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.controlBits.ackBit-11"
1843 ixNet setMultiAttrs $sg_field \
1846 -optionalEnabled true \
1848 -valueList [list 0] \
1854 -trackingEnabled false \
1855 -valueType singleValue \
1856 -activeFieldChoice false \
1860 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.controlBits.pshBit-12"
1861 ixNet setMultiAttrs $sg_field \
1864 -optionalEnabled true \
1866 -valueList [list 0] \
1872 -trackingEnabled false \
1873 -valueType singleValue \
1874 -activeFieldChoice false \
1878 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.controlBits.rstBit-13"
1879 ixNet setMultiAttrs $sg_field \
1882 -optionalEnabled true \
1884 -valueList [list 0] \
1890 -trackingEnabled false \
1891 -valueType singleValue \
1892 -activeFieldChoice false \
1896 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.controlBits.synBit-14"
1897 ixNet setMultiAttrs $sg_field \
1900 -optionalEnabled true \
1902 -valueList [list 0] \
1908 -trackingEnabled false \
1909 -valueType singleValue \
1910 -activeFieldChoice false \
1914 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.controlBits.finBit-15"
1915 ixNet setMultiAttrs $sg_field \
1918 -optionalEnabled true \
1920 -valueList [list 0] \
1926 -trackingEnabled false \
1927 -valueType singleValue \
1928 -activeFieldChoice false \
1932 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.window-16"
1933 ixNet setMultiAttrs $sg_field \
1936 -optionalEnabled true \
1938 -valueList [list 0x0000] \
1943 -randomMask 0x0000 \
1944 -trackingEnabled false \
1945 -valueType singleValue \
1946 -activeFieldChoice false \
1947 -startValue 0x0000 \
1950 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.checksum-17"
1951 ixNet setMultiAttrs $sg_field \
1954 -optionalEnabled true \
1956 -valueList [list 0x0000] \
1961 -randomMask 0x0000 \
1962 -trackingEnabled false \
1963 -valueType singleValue \
1964 -activeFieldChoice false \
1965 -startValue 0x0000 \
1968 set sg_field $ixNetSG_Stack(2)/stack:"tcp-3"/field:"tcp.header.urgentPtr-18"
1969 ixNet setMultiAttrs $sg_field \
1972 -optionalEnabled true \
1974 -valueList [list 0x0000] \
1979 -randomMask 0x0000 \
1980 -trackingEnabled false \
1981 -valueType singleValue \
1982 -activeFieldChoice false \
1983 -startValue 0x0000 \
1986 set sg_field [lindex [ixNet remapIds $sg_field] 0]
1989 if { $vxlan_enabled } {
1992 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"
1994 set sg_stack $ixNetSG_Stack(2)/stack:"vxlan-4"
1996 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
1997 set ixNetSG_Stack(3) $sg_stack
2000 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.flags-1
2002 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.flags-1"
2003 ixNet setMultiAttrs $sg_field \
2006 -optionalEnabled true \
2007 -valueList [list 0x08] \
2015 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved-2
2017 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved-2"
2018 ixNet setMultiAttrs $sg_field \
2021 -optionalEnabled true \
2022 -valueList [list 0] \
2030 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.vni-3"
2032 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.vni-3"
2033 ixNet setMultiAttrs $sg_field \
2036 -optionalEnabled true \
2037 -valueList [list 1234] \
2045 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"vxlan-4"/field:"vxlan.header.reserved8-4"
2047 set sg_field $ixNetSG_Stack(3)/field:"vxlan.header.reserved8-4"
2048 ixNet setMultiAttrs $sg_field \
2051 -optionalEnabled true \
2052 -valueList [list 0] \
2059 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2060 set sg_field $ixNetSG_Stack(2)/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.destinationAddress-1"
2061 ixNet setMultiAttrs $sg_field \
2062 -singleValue $inner_dstmac \
2064 -optionalEnabled true \
2065 -valueList [list 00:00:00:00:00:00] \
2066 -stepValue 00:00:00:00:00:00 \
2067 -fixedBits 00:00:00:00:00:00 \
2068 -fieldValue $inner_dstmac \
2069 -randomMask 00:00:00:00:00:00 \
2070 -startValue 00:00:00:00:00:00
2072 set sg_field $ixNetSG_Stack(2)/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.sourceAddress-2"
2073 ixNet setMultiAttrs $sg_field \
2074 -singleValue $inner_srcmac \
2076 -optionalEnabled true \
2077 -valueList [list 00:00:00:00:00:00] \
2078 -stepValue 00:00:00:00:00:00 \
2079 -fixedBits 00:00:00:00:00:00 \
2080 -fieldValue $inner_srcmac \
2081 -randomMask 00:00:00:00:00:00 \
2082 -startValue 00:00:00:00:00:00
2084 set sg_field $ixNetSG_Stack(2)/stack:"ethernetNoFCS-5"/field:"ethernetNoFCS.header.etherType-3"
2085 ixNet setMultiAttrs $sg_field \
2088 -optionalEnabled true \
2089 -valueList [list 0xFFFF] \
2094 -randomMask 0xFFFF \
2097 set sg_stack $ixNetSG_Stack(2)/stack:"ipv4-6"
2099 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2100 set ixNetSG_Stack(3) $sg_stack
2103 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"ipv4-6"/field:"ipv4.header.version-1"/
2104 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.version-1"
2105 ixNet setMultiAttrs $sg_field \
2108 -optionalEnabled true \
2109 -valueList [list 4] \
2116 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.headerLength-2"
2117 ixNet setMultiAttrs $sg_field \
2120 -optionalEnabled true \
2121 -valueList [list 0] \
2129 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.raw-3"
2130 ixNet setMultiAttrs $sg_field \
2133 -optionalEnabled true \
2134 -valueList [list 0] \
2141 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.precedence-4"
2142 ixNet setMultiAttrs $sg_field \
2145 -optionalEnabled true \
2146 -valueList [list 0] \
2149 -fieldValue "000\ Routine" \
2151 -activeFieldChoice true \
2154 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.delay-5"
2155 ixNet setMultiAttrs $sg_field \
2158 -optionalEnabled true \
2159 -valueList [list 0] \
2162 -fieldValue Normal \
2164 -activeFieldChoice true \
2167 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.throughput-6"
2168 ixNet setMultiAttrs $sg_field \
2171 -optionalEnabled true \
2172 -valueList [list 0] \
2175 -fieldValue Normal \
2177 -activeFieldChoice true \
2180 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.reliability-7"
2181 ixNet setMultiAttrs $sg_field \
2184 -optionalEnabled true \
2185 -valueList [list 0] \
2188 -fieldValue Normal \
2190 -activeFieldChoice true \
2193 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.monetary-8"
2194 ixNet setMultiAttrs $sg_field \
2197 -optionalEnabled true \
2198 -valueList [list 0] \
2201 -fieldValue Normal \
2203 -activeFieldChoice true \
2206 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.priority.tos.unused-9"
2207 ixNet setMultiAttrs $sg_field \
2210 -optionalEnabled true \
2211 -valueList [list 0] \
2216 -activeFieldChoice true \
2219 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.totalLength-18"
2220 ixNet setMultiAttrs $sg_field \
2223 -optionalEnabled true \
2224 -valueList [list 20] \
2232 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.identification-19"
2233 ixNet setMultiAttrs $sg_field \
2236 -optionalEnabled true \
2237 -valueList [list 0] \
2244 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.reserved-20"
2245 ixNet setMultiAttrs $sg_field \
2248 -optionalEnabled true \
2249 -valueList [list 0] \
2256 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.fragment-21"
2257 ixNet setMultiAttrs $sg_field \
2260 -optionalEnabled true \
2261 -valueList [list 0] \
2264 -fieldValue "May\ fragment" \
2268 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.flags.lastFragment-22"
2269 ixNet setMultiAttrs $sg_field \
2272 -optionalEnabled true \
2273 -valueList [list 0] \
2276 -fieldValue "Last\ fragment" \
2280 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.fragmentOffset-23"
2281 ixNet setMultiAttrs $sg_field \
2284 -optionalEnabled true \
2285 -valueList [list 0] \
2292 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.ttl-24"
2293 ixNet setMultiAttrs $sg_field \
2296 -optionalEnabled true \
2297 -valueList [list 64] \
2304 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.protocol-25"
2305 ixNet setMultiAttrs $sg_field \
2308 -optionalEnabled true \
2309 -valueList [list 61] \
2312 -fieldValue $inner_proto \
2317 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.checksum-26"
2318 ixNet setMultiAttrs $sg_field \
2319 -singleValue 63355 \
2321 -optionalEnabled true \
2322 -valueList [list 0] \
2330 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.srcIp-27"
2331 ixNet setMultiAttrs $sg_field \
2332 -singleValue $inner_srcip \
2334 -optionalEnabled true \
2335 -valueList [list 0.0.0.0] \
2336 -stepValue 0.0.0.0 \
2337 -fixedBits 0.0.0.0 \
2338 -fieldValue $inner_srcip \
2339 -randomMask 0.0.0.0 \
2342 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.dstIp-28"
2343 ixNet setMultiAttrs $sg_field \
2344 -singleValue $inner_dstip \
2346 -optionalEnabled true \
2347 -valueList [list 0.0.0.0] \
2348 -stepValue 0.0.0.0 \
2349 -fixedBits 0.0.0.0 \
2350 -fieldValue $inner_dstip \
2351 -randomMask 0.0.0.0 \
2354 set sg_field $ixNetSG_Stack(3)/field:"ipv4.header.options.pad-58"
2355 ixNet setMultiAttrs $sg_field \
2358 -valueList [list 0] \
2366 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2368 if { [string compare $inner_proto "udp"] == 0 } {
2370 set sg_stack $ixNetSG_Stack(2)/stack:"udp-7"
2372 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2373 set ixNetSG_Stack(3) $sg_stack
2375 set sg_field $ixNetSG_Stack(3)/field:"udp.header.srcPort-1"
2376 ixNet setMultiAttrs $sg_field \
2377 -singleValue $inner_srcport \
2379 -optionalEnabled true \
2380 -valueList [list 63] \
2383 -fieldValue $inner_srcport \
2388 set sg_field $ixNetSG_Stack(3)/field:"udp.header.dstPort-2"
2389 ixNet setMultiAttrs $sg_field \
2390 -singleValue $inner_dstport \
2392 -optionalEnabled true \
2393 -valueList [list 63] \
2396 -fieldValue $inner_dstport \
2401 set sg_field $ixNetSG_Stack(3)/field:"udp.header.length-3"
2402 ixNet setMultiAttrs $sg_field \
2405 -optionalEnabled true \
2406 -valueList [list 8] \
2414 set sg_field $ixNetSG_Stack(3)/field:"udp.header.checksum-4"
2415 ixNet setMultiAttrs $sg_field \
2418 -optionalEnabled true \
2419 -valueList [list 0] \
2427 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2431 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.srcPort-1"
2432 ixNet setMultiAttrs $sg_field \
2433 -singleValue $inner_srcport \
2435 -optionalEnabled true \
2437 -valueList [list $inner_srcport] \
2440 -fieldValue $inner_srcport \
2443 -trackingEnabled false \
2444 -valueType singleValue \
2445 -activeFieldChoice false \
2449 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.dstPort-2"
2450 ixNet setMultiAttrs $sg_field \
2451 -singleValue $inner_dstport \
2453 -optionalEnabled true \
2455 -valueList [list $inner_dstport] \
2458 -fieldValue $inner_dstport \
2461 -trackingEnabled false \
2462 -valueType singleValue \
2463 -activeFieldChoice false \
2467 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.sequenceNumber-3"
2468 ixNet setMultiAttrs $sg_field \
2471 -optionalEnabled true \
2473 -valueList [list 0x00000000] \
2474 -stepValue 0x00000000 \
2475 -fixedBits 0x00000000 \
2478 -randomMask 0x00000000 \
2479 -trackingEnabled false \
2480 -valueType singleValue \
2481 -activeFieldChoice false \
2482 -startValue 0x00000000 \
2485 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.acknowledgementNumber-4"
2486 ixNet setMultiAttrs $sg_field \
2489 -optionalEnabled true \
2491 -valueList [list 0x00000000] \
2492 -stepValue 0x00000000 \
2493 -fixedBits 0x00000000 \
2496 -randomMask 0x00000000 \
2497 -trackingEnabled false \
2498 -valueType singleValue \
2499 -activeFieldChoice false \
2500 -startValue 0x00000000 \
2503 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.dataOffset-5"
2504 ixNet setMultiAttrs $sg_field \
2507 -optionalEnabled true \
2509 -valueList [list 5] \
2515 -trackingEnabled false \
2516 -valueType singleValue \
2517 -activeFieldChoice false \
2521 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.reserved-6"
2522 ixNet setMultiAttrs $sg_field \
2525 -optionalEnabled true \
2527 -valueList [list 0] \
2533 -trackingEnabled false \
2534 -valueType singleValue \
2535 -activeFieldChoice false \
2539 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.ecn.nsBit-7"
2540 ixNet setMultiAttrs $sg_field \
2543 -optionalEnabled true \
2545 -valueList [list 0] \
2551 -trackingEnabled false \
2552 -valueType singleValue \
2553 -activeFieldChoice false \
2557 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.ecn.cwrBit-8"
2558 ixNet setMultiAttrs $sg_field \
2561 -optionalEnabled true \
2563 -valueList [list 0] \
2569 -trackingEnabled false \
2570 -valueType singleValue \
2571 -activeFieldChoice false \
2575 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.ecn.ecnEchoBit-9"
2576 ixNet setMultiAttrs $sg_field \
2579 -optionalEnabled true \
2581 -valueList [list 0] \
2587 -trackingEnabled false \
2588 -valueType singleValue \
2589 -activeFieldChoice false \
2593 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.controlBits.urgBit-10"
2594 ixNet setMultiAttrs $sg_field \
2597 -optionalEnabled true \
2599 -valueList [list 0] \
2605 -trackingEnabled false \
2606 -valueType singleValue \
2607 -activeFieldChoice false \
2611 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.controlBits.ackBit-11"
2612 ixNet setMultiAttrs $sg_field \
2615 -optionalEnabled true \
2617 -valueList [list 0] \
2623 -trackingEnabled false \
2624 -valueType singleValue \
2625 -activeFieldChoice false \
2629 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.controlBits.pshBit-12"
2630 ixNet setMultiAttrs $sg_field \
2633 -optionalEnabled true \
2635 -valueList [list 0] \
2641 -trackingEnabled false \
2642 -valueType singleValue \
2643 -activeFieldChoice false \
2647 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.controlBits.rstBit-13"
2648 ixNet setMultiAttrs $sg_field \
2651 -optionalEnabled true \
2653 -valueList [list 0] \
2659 -trackingEnabled false \
2660 -valueType singleValue \
2661 -activeFieldChoice false \
2665 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.controlBits.synBit-14"
2666 ixNet setMultiAttrs $sg_field \
2669 -optionalEnabled true \
2671 -valueList [list 0] \
2677 -trackingEnabled false \
2678 -valueType singleValue \
2679 -activeFieldChoice false \
2683 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.controlBits.finBit-15"
2684 ixNet setMultiAttrs $sg_field \
2687 -optionalEnabled true \
2689 -valueList [list 0] \
2695 -trackingEnabled false \
2696 -valueType singleValue \
2697 -activeFieldChoice false \
2701 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.window-16"
2702 ixNet setMultiAttrs $sg_field \
2705 -optionalEnabled true \
2707 -valueList [list 0x0000] \
2712 -randomMask 0x0000 \
2713 -trackingEnabled false \
2714 -valueType singleValue \
2715 -activeFieldChoice false \
2716 -startValue 0x0000 \
2719 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.checksum-17"
2720 ixNet setMultiAttrs $sg_field \
2723 -optionalEnabled true \
2725 -valueList [list 0x0000] \
2730 -randomMask 0x0000 \
2731 -trackingEnabled false \
2732 -valueType singleValue \
2733 -activeFieldChoice false \
2734 -startValue 0x0000 \
2737 set sg_field $ixNetSG_Stack(2)/stack:"tcp-7"/field:"tcp.header.urgentPtr-18"
2738 ixNet setMultiAttrs $sg_field \
2741 -optionalEnabled true \
2743 -valueList [list 0x0000] \
2748 -randomMask 0x0000 \
2749 -trackingEnabled false \
2750 -valueType singleValue \
2751 -activeFieldChoice false \
2752 -startValue 0x0000 \
2755 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2760 set sg_field $ixNetSG_Stack(2)/stack:"fcs-8"/field:"ethernet.fcs-1"
2761 ixNet setMultiAttrs $sg_field \
2764 -optionalEnabled true \
2765 -valueList [list 0] \
2775 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"
2777 set sg_stack $ixNetSG_Stack(2)/stack:"fcs-4"
2779 set sg_stack [lindex [ixNet remapIds $sg_stack] 0]
2780 set ixNetSG_Stack(3) $sg_stack
2783 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/stack:"fcs-4"/field:"ethernet.fcs-1"
2785 set sg_field $ixNetSG_Stack(3)/field:"ethernet.fcs-1"
2786 ixNet setMultiAttrs $sg_field \
2789 -optionalEnabled True \
2797 -trackingEnabled False \
2798 -valueType singleValue \
2799 -activeFieldChoice False \
2803 set sg_field [lindex [ixNet remapIds $sg_field] 0]
2806 # configuring the object that corresponds to /traffic/trafficItem:1/configElement:1/transmissionDistribution
2808 set sg_transmissionDistribution $ixNetSG_Stack(2)/transmissionDistribution
2809 ixNet setMultiAttrs $sg_transmissionDistribution \
2812 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
2815 # configuring the object that corresponds to /traffic/trafficItem:1/transmissionDistribution
2817 set sg_transmissionDistribution $ixNetSG_Stack(1)/transmissionDistribution
2818 ixNet setMultiAttrs $sg_transmissionDistribution \
2822 set sg_transmissionDistribution [lindex [ixNet remapIds $sg_transmissionDistribution] 0]
2825 # configuring the object that corresponds to /traffic/trafficItem:1/tracking
2827 set sg_tracking $ixNetSG_Stack(1)/tracking
2828 ixNet setMultiAttrs $sg_tracking \
2830 -oneToOneMesh False \
2833 -fieldWidth thirtyTwoBits \
2834 -protocolOffset {Root.0}
2835 ixNet setMultiAttrs $sg_tracking/egress \
2836 -offset {Outer VLAN Priority (3 bits)} \
2838 -customOffsetBits 0 \
2839 -encapsulation {Ethernet} \
2841 ixNet setMultiAttrs $sg_tracking/latencyBin \
2843 -binLimits {1 1.42 2 2.82 4 5.66 8 11.32} \
2846 set sg_tracking [lindex [ixNet remapIds $sg_tracking] 0]
2847 set ixNetSG_Stack(2) $sg_tracking
2850 # Note: The scriptgen generated egress code were removed because we are not using
2851 # flow tracking in our tests.
2852 # Insert EGRESS lines here if needed
2856 # configuring the object that corresponds to /traffic/trafficItem:1/dynamicUpdate
2858 set sg_dynamicUpdate $ixNetSG_Stack(1)/dynamicUpdate
2859 ixNet setMultiAttrs $sg_dynamicUpdate \
2860 -enabledSessionAwareTrafficFields {} \
2861 -enabledDynamicUpdateFields {}
2863 set sg_dynamicUpdate [lindex [ixNet remapIds $sg_dynamicUpdate] 0]
2870 # configuring the object that corresponds to /quickTest/rfc2544throughput:1
2872 if {$rfc2544TestType == "throughput"} {
2873 set sg_rfc2544throughput [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544throughput]
2874 ixNet setMultiAttrs $sg_rfc2544throughput \
2875 -name {QuickTest1} \
2876 -mode existingMode \
2877 -inputParameters {{}}
2878 ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \
2880 -enableMinFrameSize False \
2881 -framesize $frameSize \
2882 -reportTputRateUnit mbps \
2883 -duration $duration \
2884 -numtrials $numTrials \
2885 -trafficType constantLoading \
2887 -framesPerBurstGap 1 \
2889 -frameLossUnit {0} \
2890 -staggeredStart False \
2891 -framesizeList $frameSize \
2892 -frameSizeMode custom \
2893 -rateSelect percentMaxRate \
2894 -percentMaxRate 100 \
2896 -forceRegenerate False \
2897 -reportSequenceError False \
2900 -loadRateList $frameRate \
2901 -fixedLoadUnit percentMaxRate \
2903 -incrementLoadUnit percentMaxRate \
2904 -initialIncrementLoadRate 10 \
2905 -stepIncrementLoadRate 10 \
2906 -maxIncrementLoadRate 100 \
2907 -randomLoadUnit percentMaxRate \
2908 -minRandomLoadRate 10 \
2909 -maxRandomLoadRate 80 \
2910 -countRandomLoadRate 1 \
2914 -delayAfterTransmit 2 \
2915 -minRandomFrameSize 64 \
2916 -maxRandomFrameSize 1518 \
2917 -countRandomFrameSize 1 \
2918 -minIncrementFrameSize 64 \
2919 -stepIncrementFrameSize 64 \
2920 -maxIncrementFrameSize 1518 \
2921 -calculateLatency True \
2922 -latencyType storeForward \
2923 -calculateJitter False \
2924 -enableDataIntegrity False \
2925 -enableBackoffIteration False \
2926 -enableSaturationIteration False \
2927 -enableStopTestOnHighLoss False \
2928 -enableBackoffUseAs% False \
2929 -backoffIteration 1 \
2930 -saturationIteration 1 \
2931 -stopTestOnHighLoss 0 \
2932 -loadType $loadType \
2933 -stepLoadUnit percentMaxRate \
2934 -customLoadUnit percentMaxRate \
2935 -comboLoadUnit percentMaxRate \
2936 -binaryLoadUnit percentMaxRate \
2937 -initialBinaryLoadRate 100 \
2938 -minBinaryLoadRate 1 \
2939 -maxBinaryLoadRate 100 \
2940 -binaryResolution 1 \
2942 -binaryTolerance $tolerance \
2943 -binaryFrameLossUnit % \
2944 -comboFrameLossUnit % \
2945 -stepFrameLossUnit % \
2946 -initialStepLoadRate 10 \
2947 -maxStepLoadRate 100 \
2948 -stepStepLoadRate 10 \
2950 -initialComboLoadRate 10 \
2951 -maxComboLoadRate 100 \
2952 -minComboLoadRate 10 \
2953 -stepComboLoadRate 10 \
2954 -comboResolution 1 \
2957 -binarySearchType linear \
2958 -unchangedValueList {0} \
2959 -enableFastConvergence $fastConvergence \
2960 -fastConvergenceDuration $convergenceDuration \
2961 -fastConvergenceThreshold 10 \
2962 -framesizeFixedValue $frameSize \
2964 -unchangedInitial False \
2965 -generateTrackingOptionAggregationFiles False \
2966 -enableExtraIterations False \
2967 -extraIterationOffsets {10, -10} \
2968 -usePercentOffsets False \
2969 -imixDistribution weight \
2972 -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}}}} \
2973 -imixEnabled False \
2974 -imixTemplates none \
2975 -framesizeImixList $frameSize \
2976 -imixTrafficType {UNCHNAGED} \
2977 -mapType {oneToOne} \
2978 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
2979 ixNet setMultiAttrs $sg_rfc2544throughput/learnFrames \
2980 -learnFrequency $learningFrequency \
2981 -learnNumFrames 10 \
2983 -learnWaitTime 1000 \
2984 -learnFrameSize $frameSize \
2985 -fastPathLearnFrameSize $frameSize \
2986 -learnWaitTimeBeforeTransmit 0 \
2987 -learnSendMacOnly False \
2988 -learnSendRouterSolicitation False \
2989 -fastPathEnable $fastPathEnable \
2991 -fastPathNumFrames 10
2992 ixNet setMultiAttrs $sg_rfc2544throughput/passCriteria \
2993 -passCriteriaLoadRateMode average \
2994 -passCriteriaLoadRateValue 100 \
2995 -passCriteriaLoadRateScale mbps \
2996 -enablePassFail False \
2997 -enableRatePassFail False \
2998 -enableLatencyPassFail False \
2999 -enableStandardDeviationPassFail False \
3000 -latencyThresholdValue 10 \
3001 -latencyThresholdScale us \
3002 -latencyThresholdMode average \
3003 -latencyVariationThresholdValue 0 \
3004 -latencyVariationThresholdScale us \
3005 -latencyVarThresholdMode average \
3006 -enableSequenceErrorsPassFail False \
3007 -seqErrorsThresholdValue 0 \
3008 -seqErrorsThresholdMode average \
3009 -enableDataIntegrityPassFail False \
3010 -dataErrorThresholdValue 0 \
3011 -dataErrorThresholdMode average
3013 set sg_rfc2544throughput [lindex [ixNet remapIds $sg_rfc2544throughput] 0]
3014 set ixNetSG_Stack(1) $sg_rfc2544throughput
3017 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/protocols
3019 set sg_protocols $ixNetSG_Stack(1)/protocols
3020 ixNet setMultiAttrs $sg_protocols \
3021 -protocolState default \
3022 -waitAfterStart 120 \
3025 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3028 # configuring the object that corresponds to /quickTest/rfc2544throughput:1/trafficSelection:1
3030 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3031 ixNet setMultiAttrs $sg_trafficSelection \
3032 -id $ixNetSG_ref(26) \
3033 -includeMode inTest \
3034 -itemType trafficItem
3036 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3039 } elseif {$rfc2544TestType == "back2back"} {
3041 # configuring the object that corresponds to /quickTest/rfc2544back2back:2
3043 set sg_rfc2544back2back [ixNet add $ixNetSG_Stack(0)/quickTest rfc2544back2back]
3044 ixNet setMultiAttrs $sg_rfc2544back2back \
3046 -mode existingMode \
3047 -inputParameters {{}}
3048 ixNet setMultiAttrs $sg_rfc2544back2back/testConfig \
3050 -framesize $frameSize \
3051 -reportTputRateUnit mbps \
3052 -rfc2544ImixDataQoS False \
3053 -detailedResultsEnabled True \
3054 -rfc2889ordering noOrdering \
3055 -floodedFramesEnabled False \
3056 -duration $duration \
3057 -numtrials $numTrials \
3058 -trafficType constantLoading \
3060 -framesPerBurstGap 1 \
3062 -frameLossUnit {0} \
3063 -staggeredStart False \
3064 -framesizeList $frameSize \
3065 -frameSizeMode custom \
3066 -rateSelect percentMaxRate \
3067 -percentMaxRate 100 \
3069 -forceRegenerate False \
3070 -reportSequenceError False \
3073 -loadRateList $frameRate \
3077 -delayAfterTransmit 2 \
3078 -minRandomFrameSize 64 \
3079 -maxRandomFrameSize 1518 \
3080 -countRandomFrameSize 1 \
3081 -minIncrementFrameSize 64 \
3082 -stepIncrementFrameSize 64 \
3083 -maxIncrementFrameSize 1518 \
3084 -calculateLatency False \
3085 -calibrateLatency False \
3086 -latencyType cutThrough \
3087 -calculateJitter False \
3088 -enableDataIntegrity False \
3089 -loadType $loadType \
3090 -binaryFrameLossUnit % \
3091 -loadUnit percentMaxRate \
3092 -customLoadUnit percentMaxRate \
3093 -randomLoadUnit percentMaxRate \
3094 -incrementLoadUnit percentMaxRate \
3095 -binaryResolution 100 \
3097 -binaryTolerance $tolerance \
3098 -initialIncrementLoadRate 100 \
3099 -stepIncrementLoadRate 10 \
3100 -maxIncrementLoadRate 100 \
3101 -minRandomLoadRate 10 \
3102 -maxRandomLoadRate 80 \
3103 -countRandomLoadRate 1 \
3104 -numFrames {100000} \
3106 -enableMinFrameSize False \
3108 -generateTrackingOptionAggregationFiles False \
3109 -sendFullyMeshed False \
3110 -imixDistribution weight \
3113 -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}}}} \
3114 -imixEnabled False \
3115 -imixTemplates none \
3116 -framesizeImixList $frameSize \
3117 -imixTrafficType {UNCHNAGED} \
3118 -ipRatioMode fixed \
3119 -ipv4RatioList {10,25,50,75,90} \
3120 -ipv6RatioList {90,75,50,25,10} \
3121 -minIncrementIpv4Ratio {10} \
3122 -stepIncrementIpv4Ratio {10} \
3123 -maxIncrementIpv4Ratio {90} \
3124 -minIncrementIpv6Ratio {90} \
3125 -stepIncrementIpv6Ratio {-10} \
3126 -maxIncrementIpv6Ratio {10} \
3127 -minRandomIpv4Ratio {10} \
3128 -maxRandomIpv4Ratio {90} \
3129 -minRandomIpv6Ratio {90} \
3130 -maxRandomIpv6Ratio {10} \
3131 -countRandomIpRatio 1 \
3132 -mapType {oneToOne|manyToMany|fullMesh} \
3133 -supportedTrafficTypes {mac,ipv4,ipv6,ipmix}
3134 ixNet setMultiAttrs $sg_rfc2544back2back/learnFrames \
3135 -learnFrequency $learningFrequency \
3136 -learnNumFrames 10 \
3138 -learnWaitTime 1000 \
3139 -learnFrameSize 64 \
3140 -fastPathLearnFrameSize 64 \
3141 -learnWaitTimeBeforeTransmit 0 \
3142 -learnSendMacOnly False \
3143 -learnSendRouterSolicitation False \
3144 -fastPathEnable $fastPathEnable \
3146 -fastPathNumFrames 10
3147 ixNet setMultiAttrs $sg_rfc2544back2back/passCriteria \
3148 -passCriteriaLoadRateMode average \
3149 -passCriteriaLoadRateValue 100 \
3150 -passCriteriaLoadRateScale mbps \
3151 -enablePassFail False \
3152 -enableRatePassFail False \
3153 -enableLatencyPassFail False \
3154 -enableStandardDeviationPassFail False \
3155 -latencyThresholdValue 10 \
3156 -latencyThresholdScale us \
3157 -latencyThresholdMode average \
3158 -latencyVariationThresholdValue 0 \
3159 -latencyVariationThresholdScale us \
3160 -latencyVarThresholdMode average \
3161 -enableSequenceErrorsPassFail False \
3162 -seqErrorsThresholdValue 0 \
3163 -seqErrorsThresholdMode average \
3164 -enableDataIntegrityPassFail False \
3165 -dataErrorThresholdValue 0 \
3166 -dataErrorThresholdMode average \
3167 -enableFrameCountPassFail False \
3168 -passCriteriaFrameCountValue 100 \
3169 -passCriteriaFrameCountMode average
3171 set sg_rfc2544back2back [lindex [ixNet remapIds $sg_rfc2544back2back] 0]
3172 set ixNetSG_Stack(1) $sg_rfc2544back2back
3175 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/protocols
3177 set sg_protocols $ixNetSG_Stack(1)/protocols
3178 ixNet setMultiAttrs $sg_protocols \
3179 -protocolState default \
3180 -waitAfterStart 120 \
3183 set sg_protocols [lindex [ixNet remapIds $sg_protocols] 0]
3186 # configuring the object that corresponds to /quickTest/rfc2544back2back:2/trafficSelection:1
3188 set sg_trafficSelection [ixNet add $ixNetSG_Stack(1) trafficSelection]
3189 ixNet setMultiAttrs $sg_trafficSelection \
3190 -id $ixNetSG_ref(26) \
3191 -includeMode inTest \
3192 -itemType trafficItem
3194 set sg_trafficSelection [lindex [ixNet remapIds $sg_trafficSelection] 0]
3199 # getting and applying the RFC2544 test
3201 set root [ixNet getRoot]
3202 foreach traf_item [ixNet getList $root/traffic trafficItem] {
3203 ixNet exec generate $traf_item
3206 set qt [ixNet getList $root quickTest]
3207 if {$rfc2544TestType == "throughput"} {
3208 set rfc2544test [ixNet getList $qt rfc2544throughput]
3209 } elseif {$rfc2544TestType == "back2back"} {
3210 set rfc2544test [ixNet getList $qt rfc2544back2back]
3212 ixNet exec apply $rfc2544test
3216 # starting the RFC2544 Throughput test
3218 puts "Starting test..."
3219 ixNet exec start $rfc2544test
3222 proc waitForRfc2544Test { } {
3223 # Wait for- and return results of- RFC2544 quicktest.
3227 puts "Waiting for test to complete..."
3228 set result [ixNet exec waitForTest $rfc2544test]
3229 puts "Finished Test"