亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mechanisms.tcl

?? 對IEEE 802.11e里的分布式信道接入算法EDCA進行改進
?? TCL
?? 第 1 頁 / 共 2 頁
字號:
## RTMechanisms: routines for the router mechanisms paper## this file contains primarily the support routines# to manage the flows.  The policies defined by the# tests are found in rtm_tests.tcl## conventions:# 	procs of the form "do_..."  are run periodically#	instvars starting with Capitals are constants#Class RTMechanismssource rtm_tests.tclsource rtm_link.tclRTMechanisms instproc tcp_ref_bw { mtu rtt droprate } {	if { $rtt == 0 || $droprate == 0 } {		return "none"	}	$self vprint 9 "mtu: $mtu rtt: $rtt droprate: $droprate"	set result [expr 1.22 * $mtu / ($rtt*sqrt($droprate))]	set sqrt [expr sqrt($droprate) ]	$self vprint 9 "sqrt: $sqrt result $result"	return [expr 1.22 * $mtu / ($rtt*sqrt($droprate))]}RTMechanisms instproc frac { num denom } {	if { $denom == 0 } {		return 0.0	}	return [expr double($num) / $denom]}RTMechanisms instproc vprint args {	$self instvar verbose_	set level [lindex $args 0]	set a [lrange $args 1 end]	if { $level <= $verbose_ } {		$self instvar ns_		puts "[$ns_ now] $a"		flush stdout	}}## mmetric: maxmetric or minmetric in the ok box#	op: one of "max" or "min"#	flows: list of flows#RTMechanisms instproc mmetric { op flows } {	$self instvar okboxfm_	set tot_bdrops [$okboxfm_ set bdrops_] ; # total bytes dropped	set tot_pdrops [$okboxfm_ set pdrops_] ; # total pkts dropped	set tot_ebdrops [$okboxfm_ set ebdrops_] ; # bytes dropped early (unforced)	set tot_epdrops [$okboxfm_ set epdrops_] ; # pkts drooped early (unforced)	set tot_fpdrops [expr $tot_pdrops - $tot_epdrops] ; 						# pkts dropped (forced)	set tot_fbdrops [expr $tot_bdrops - $tot_ebdrops] ; 						# bytes dropped (forced)	if { $op == "max" } {		set op ">"		set metric -1.0	} elseif { $op == "min" } {		set op "<"		set metric 1000000	}	set flow "none"	set unforced_frac [$self frac $tot_epdrops $tot_pdrops]	set forced_frac [expr 1 - $unforced_frac ]	foreach f $flows {		set fepdrops [$f set epdrops_]		set fpdrops [$f set pdrops_]		set fbdrops [$f set bdrops_]		set febdrops [$f set ebdrops_]					set forced_metric [$self frac [expr $fbdrops - $febdrops] $tot_fbdrops]		set unforced_metric [$self frac $fepdrops $tot_epdrops]		set fmetric [expr $forced_frac * $forced_metric + \			$unforced_frac * $unforced_metric]		if { [expr $fmetric $op $metric] } {			set metric $fmetric			set flow $f		}	}	return "$flow $metric"}RTMechanisms instproc setstate { flow reason bandwidth droprate } { 	$self instvar state_ ns_	$self vprint 1 "SETSTATE: flow: $flow NEWSTATE (reason:$reason, bw: $bandwidth, droprate: $droprate)"	set state_($flow,reason) $reason	set state_($flow,bandwidth) $bandwidth	set state_($flow,droprate) $droprate	set state_($flow,ctime) [$ns_ now]}# set new allotment in pboxRTMechanisms instproc pallot allotment {	$self instvar badclass_ goodclass_	$self instvar Maxallot_	$self vprint 0 "PALLOT: Allots: pbox: $allotment, okbox: [expr $Maxallot_ - $allotment]"	$badclass_ newallot $allotment	$goodclass_ newallot [expr $Maxallot_ - $allotment]}# add a flow to the flow history array (for unresponsive test)RTMechanisms instproc fhist-add { flow droprate bandwidth } {	$self instvar hist_next_ Hist_max_	$self instvar flowhist_	# circular history buffer	incr hist_next_	if { $hist_next_ >= $Hist_max_ } {		set hist_next_ 0	}	set flowhist_($hist_next_,name) $flow	set flowhist_($hist_next_,droprate) $droprate	set flowhist_($hist_next_,bandwidth) $bandwidth	$self vprint 1 "HISTORY ADDITION: flow: $flow, droprate: $droprate, bw: $bandwidth"	return $hist_next_}# find entry in hist buffer with lowest droprate, return its index# used for unresponsive testRTMechanisms instproc fhist-mindroprate flow {	$self instvar Hist_max_	$self instvar flowhist_	set dr 100000000	set idx -1	for { set i 0 } { $i < $Hist_max_ } { incr i } {		if { [info exists flowhist_($i,name)] &&		     $flowhist_($i,name) == $flow &&		     $flowhist_($i,droprate) < $dr } {			set dr $flowhist_($i,droprate)			set idx $i		}	}	$self vprint 1 "HISTORY MINDR SEARCH (flow: $flow): hmax: $Hist_max_, index: $idx"	return $idx}RTMechanisms instproc print_good_and_bad { label } {	$self instvar ns_	$self instvar okboxfm_ pboxfm_	$self instvar badclass_	set now [$ns_ now]	set ballot [$badclass_ allot]	puts [format "time %5.1f $label goodflows: [$okboxfm_ flows], badflows: [$pboxfm_ flows] (allot %4.2f, droprate: ??)" $now $ballot]}RTMechanisms instproc print_allot_change { oallot nallot } {	puts [format "pbox allotment changed from %6.5f to %6.5f" $oallot $nallot]}## move a flow to the bad box# ie penalize a flow#RTMechanisms instproc penalize { badflow guideline_bw } {	$self instvar npenalty_ badslot_ cbqlink_	$self instvar badclass_	$self instvar okboxfm_ pboxfm_	$self instvar Max_cbw_	$self vprint 1 "penalizing flow $badflow, guideline bw: $guideline_bw"	incr npenalty_	set classifier [$cbqlink_ classifier]	#	# add the bad flow to the cbq/mechanisms classifier	# the underlying object (badcl_) is already in $badslot_	#	set src [$badflow set src_]	set dst [$badflow set dst_]	set fid [$badflow set flowid_]	$classifier set-hash auto $src $dst $fid $badslot_	#	# remove flow record from ok fmon	# add it to pbox f mon	#	set okcl [$okboxfm_ classifier]	set okslot [$okcl del-hash $src $dst $fid]	$okcl clear $okslot	set bcl [$pboxfm_ classifier]	set bslot [$bcl installNext $badflow]	$badflow reset	$bcl set-hash auto $src $dst $fid $bslot	#	# reallocate allotment	#	set new_pbw [expr 0.5 * $guideline_bw * $npenalty_ ]	$self vprint 1 "npenalty $npenalty_ guideline_bw $guideline_bw"	if { $new_pbw > $Max_cbw_ } {		set $new_pbw $Max_cbw_	}	$self instvar badclass_	# link bw is in bits/sec	set bw [expr [[$cbqlink_ link] set bandwidth_] / 8.0]	$self vprint 1 "new_pbw $new_pbw bw $bw" 	set nallot [expr $new_pbw / $bw]	$self pallot $nallot	$self vprint 2 "penalize done.."}## move a flow to the good box# ie stop penalizing a flow#RTMechanisms instproc unpenalize goodflow {	$self instvar npenalty_ badslot_ badhead_ cbqlink_	$self instvar okboxfm_ pboxfm_	$self instvar badclass_	incr npenalty_ -1	set classifier [$cbqlink_ classifier]	$self vprint 0 "UNPENALIZE flow $goodflow"	#	# delete the bad flow from the cbq/mechanisms classifier	# this flow will return to the "default" case in the classifier	# do not "clear" the entry, as that would lose the reference	# to $badclass_ in the CBQ classifier	#	set src [$goodflow set src_]	set dst [$goodflow set dst_]	set fid [$goodflow set flowid_]	$classifier del-hash $src $dst $fid	#	# remove flow record from pbox fmon	# add it to okbox box fmon	#	set pcl [$pboxfm_ classifier]	set pslot [$pcl del-hash $src $dst $fid]	$pcl clear $pslot	set gcl [$okboxfm_ classifier]	set gslot [$gcl installNext $goodflow]	$goodflow reset	$gcl set-hash auto $src $dst $fid $gslot	#	# reallocate allotment	#	set bw [expr [[$cbqlink_ link] set bandwidth_] / 8.0]	set oallot [$badclass_ allot]	set cbw [expr $oallot * $bw]	set new_cbw [expr $npenalty_ * $cbw / ($npenalty_ + 1)]	set nallot [expr $new_cbw / $bw]	$self pallot $nallot	$self vprint 2 "unpenalize done..."}# Check if bandwidth in penalty box should be adjusted.# basen on some change in npenalty_RTMechanisms instproc checkbw_fair guideline_bw {	$self instvar badclass_	$self instvar npenalty_ cbqlink_	if { $guideline_bw == "none" } {		return "ok"	}	set new_cbw [expr 0.5 * $guideline_bw * $npenalty_]	set link_bw [expr [[$cbqlink_ link] set bandwidth_] / 8.0]	set old_allot [$badclass_ allot]	set class_bw [expr $old_allot * $link_bw]	if { $new_cbw < $class_bw } {		set new_allot [expr $new_cbw / $link_bw]		return $new_allot	}	return "ok"}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡的电影网站| 国产精品伦一区| 在线成人高清不卡| 久久久精品影视| 亚洲大片免费看| 国产成人免费视频网站| 欧美日韩中文字幕精品| 欧美国产日产图区| 青椒成人免费视频| 91官网在线免费观看| 精品不卡在线视频| 亚洲不卡在线观看| 99久久精品久久久久久清纯| 日韩色在线观看| 亚洲一区二区三区四区中文字幕| 懂色一区二区三区免费观看| 欧美猛男gaygay网站| 国产精品免费丝袜| 国产在线精品不卡| 日韩精品一区二区三区在线| 欧美电影影音先锋| 久久亚洲一区二区三区明星换脸 | 欧美在线观看你懂的| 欧美电视剧在线看免费| 亚洲国产日产av| 欧美日韩日日摸| 亚洲裸体xxx| 成人毛片老司机大片| 国产校园另类小说区| 久草热8精品视频在线观看| 制服丝袜av成人在线看| 亚洲地区一二三色| 欧美三级电影一区| 亚洲电影在线播放| 91麻豆精品91久久久久同性| 亚洲综合图片区| 欧美色偷偷大香| 亚州成人在线电影| 91精品免费在线观看| 日本亚洲欧美天堂免费| 欧美一级久久久| 精品在线免费观看| 国产午夜精品美女毛片视频| 国产麻豆成人传媒免费观看| 久久这里只有精品首页| 国产精品99久久久久久有的能看| 久久综合一区二区| 国产精品一级片| 自拍视频在线观看一区二区| 色婷婷综合激情| 日韩成人免费电影| 亚洲精品一区二区三区四区高清| 精品无码三级在线观看视频| 久久婷婷综合激情| 成人av免费观看| 亚洲另类一区二区| 欧美精品xxxxbbbb| 国内精品伊人久久久久av一坑 | 色噜噜狠狠一区二区三区果冻| 99久久久国产精品| 亚洲欧洲中文日韩久久av乱码| 欧美一级免费观看| 亚洲视频 欧洲视频| 国产成人福利片| 久久久久97国产精华液好用吗| 七七婷婷婷婷精品国产| 欧美卡1卡2卡| 调教+趴+乳夹+国产+精品| 99国产精品国产精品久久| 国产精品成人在线观看| 亚洲风情在线资源站| 95精品视频在线| 石原莉奈在线亚洲二区| 久久久精品国产免大香伊| 97久久超碰国产精品电影| 日本一不卡视频| 国产精品免费丝袜| 欧美一区二区在线播放| 成人久久18免费网站麻豆 | 色综合久久久久网| 日韩在线卡一卡二| 国产精品网友自拍| 91精品国产丝袜白色高跟鞋| 成人av在线电影| 日韩精品欧美精品| 亚洲免费成人av| 精品噜噜噜噜久久久久久久久试看 | 91麻豆蜜桃一区二区三区| 日本人妖一区二区| 亚洲欧美怡红院| 精品av久久707| 欧美福利视频一区| 色视频成人在线观看免| 国产馆精品极品| 美女诱惑一区二区| 香蕉成人伊视频在线观看| 国产精品女主播在线观看| 日韩精品综合一本久道在线视频| 色综合视频一区二区三区高清| 国内偷窥港台综合视频在线播放| 亚洲h精品动漫在线观看| 亚洲日本va午夜在线影院| 国产亚洲制服色| 欧美一区二区大片| 777奇米四色成人影色区| 一本大道av伊人久久综合| 成人av电影观看| 粉嫩在线一区二区三区视频| 久久国产人妖系列| 美国精品在线观看| 日本网站在线观看一区二区三区| 亚洲高清免费在线| 亚洲成人自拍网| 亚洲午夜在线电影| 亚洲福利视频三区| 亚洲成人免费看| 午夜国产精品一区| 手机精品视频在线观看| 午夜成人在线视频| 日本大胆欧美人术艺术动态| 五月婷婷激情综合网| 日韩电影在线一区二区三区| 亚洲午夜国产一区99re久久| 亚洲一区二区视频在线观看| 亚洲综合免费观看高清完整版| 尤物在线观看一区| 亚洲午夜免费电影| 日本不卡一区二区三区| 麻豆成人91精品二区三区| 久久成人免费网站| 粉嫩aⅴ一区二区三区四区五区| 成人午夜私人影院| 一本一道综合狠狠老| 欧美天堂一区二区三区| 欧美一级欧美三级| 久久精品亚洲麻豆av一区二区 | 国产精品美女久久久久久| 国产精品国产自产拍在线| 中文字幕一区二区在线观看| 尤物视频一区二区| 美女视频黄久久| 国产91丝袜在线观看| 91片黄在线观看| 欧美精品一卡二卡| 久久综合久久综合久久| 中文字幕在线不卡一区| 丝袜国产日韩另类美女| 另类小说一区二区三区| 处破女av一区二区| 91久久国产最好的精华液| 欧美一区二区久久| 国产精品丝袜在线| 亚洲国产成人porn| 丁香婷婷综合五月| 欧美精品乱人伦久久久久久| 久久久www成人免费毛片麻豆| 自拍偷拍欧美激情| 久久精品国产秦先生| 91视频xxxx| 精品国精品自拍自在线| 亚洲人成网站精品片在线观看| 日本中文字幕不卡| 99精品国产99久久久久久白柏| 欧美老人xxxx18| 国产精品第一页第二页第三页| 日本视频免费一区| 色菇凉天天综合网| 久久亚洲一区二区三区明星换脸 | 色欧美片视频在线观看在线视频| 日韩欧美在线一区二区三区| 国产精品九色蝌蚪自拍| 久久99久久99| 欧美日韩国产成人在线免费| 日本一区二区三区久久久久久久久不 | 欧美丰满少妇xxxxx高潮对白| 国产视频911| 奇米影视在线99精品| 在线观看亚洲a| 国产精品情趣视频| 激情av综合网| 日韩一区二区三区免费看| 一区二区免费在线播放| va亚洲va日韩不卡在线观看| 精品粉嫩超白一线天av| 日韩av电影免费观看高清完整版 | 日本v片在线高清不卡在线观看| 99视频精品在线| 国产网站一区二区| 久久狠狠亚洲综合| 欧美一区二区播放| 亚洲电影欧美电影有声小说| 色综合中文字幕国产| 久久久久久99精品| 久久国产尿小便嘘嘘尿| 欧美一区二区三区四区在线观看| 亚洲福利视频导航| 欧美日韩不卡视频| 亚洲成人免费在线观看| 欧美日韩精品三区| 午夜一区二区三区在线观看|