⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ns-intserv.tcl

📁 跑leach需要的
💻 TCL
字号:
## Copyright (c) Xerox Corporation 1997. All rights reserved.## License is granted to copy, to use, and to make and to use derivative# works for research and evaluation purposes, provided that Xerox is# acknowledged in all documentation pertaining to any such copy or# derivative work. Xerox grants no other licenses expressed or# implied. The Xerox trade name should not be used in any advertising# without its written permission. ## XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE# MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE# FOR ANY PARTICULAR PURPOSE.  The software is provided "as is" without# express or implied warranty of any kind.## These notices must be retained in any copies of any part of this# software. ## $Header: /nfs/jade/vint/CVSROOT/ns-2/tcl/lib/ns-intserv.tcl,v 1.11 2000/08/30 23:27:51 haoboy Exp $#defaultsQueue/SimpleIntServ set qlimit1_ 50Queue/SimpleIntServ set qlimit0_ 50Agent/SA set rate_ 0Agent/SA set bucket_ 0Agent/SA set packetSize_ 210ADC set backoff_ trueADC set dobump_ trueADC/MS set backoff_ falseADC set src_ -1ADC set dst_ -1ADC/MS set utilization_ 0.95ADC/MSPK set utilization_ 0.95ADC/Param set utilization_ 1.0ADC/HB set epsilon_ 0.7ADC/ACTO set s_ 0.002ADC/ACTO set dobump_ falseADC/ACTP set s_ 0.002ADC/ACTP set dobump_ falseEst/TimeWindow set T_ 3Est/ExpAvg set w_ 0.125Est set period_ 0.5ADC set bandwidth_ 0SALink set src_ -1SALink set dst_ -1Est set src_ -1Est set dst_ -1Class IntServLink -superclass  SimpleLinkIntServLink instproc init { src dst bw delay q arg {lltype "DelayLink"} } {		$self next $src $dst $bw $delay $q $lltype ; # SimpleLink ctor	$self instvar queue_ link_	$self instvar measclassifier_ signalmod_ adc_ est_ measmod_		set ns_ [Simulator instance]		#Create a suitable adc unit from larg with suitable params	set adctype [lindex $arg 3]	set adc_ [new ADC/$adctype]	$adc_ set bandwidth_ $bw	$adc_ set src_ [$src id]	$adc_ set dst_ [$dst id]		if { [lindex $arg 5] == "CL" } {		#Create a suitable est unit 		set esttype [lindex $arg 4]		set est_ [new Est/$esttype]		$est_ set src_ [$src id]		$est_ set dst_ [$dst id]		$adc_ attach-est $est_ 1				#Create a Measurement Module 		set measmod_ [new MeasureMod]		$measmod_ target $queue_		$adc_ attach-measmod $measmod_ 1	}		#Create the signalmodule	set signaltype [lindex $arg 2]	set signalmod_ [new $signaltype]	$signalmod_ set src_ [$src id]	$signalmod_ set dst_ [$dst id]	$signalmod_ attach-adc $adc_	$self add-to-head $signalmod_	#Create a measurement classifier to decide which packets to measure	$self create-meas-classifier	$signalmod_ target $measclassifier_		#Schedule to start the admission control object	$ns_ at 0.0 "$adc_ start"}IntServLink instproc buffersize { b } {	$self instvar est_ adc_	$est_ setbuf [set b]	$adc_ setbuf [set b]}#measClassifier is an instance of Classifier/Hash/Flow#for right now# FlowId 0 -> Best Effort traffic# FlowId non-zero -> Int Serv traffic IntServLink instproc create-meas-classifier {} {	$self instvar measclassifier_ measmod_ link_ queue_		set measclassifier_ [new Classifier/Hash/Fid 1 ]	#set slots for measclassifier	set slot [$measclassifier_ installNext $queue_]	$measclassifier_ set-hash auto 0 0 0 $slot 		#Currently measure all flows with fid.ne.0 alone	set slot [$measclassifier_ installNext $measmod_]	$measclassifier_ set default_ 1}IntServLink instproc trace-sig { f } {	$self instvar signalmod_ est_ adc_	$signalmod_ attach $f	$est_ attach $f	$adc_ attach $f	set ns [Simulator instance]	$ns at 0.0 "$signalmod_ add-trace"}#Helper  function to output link utilization and bw estimateIntServLink instproc trace-util { interval {f ""}} {	$self instvar est_	set ns [Simulator instance]	if { $f != "" } {		puts $f "[$ns now] [$est_ load-est] [$est_ link-utlzn]" 	}	$ns at [expr [$ns now]+$interval] "$self trace-util $interval $f" }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -