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

📄 test-suite-wireless-lan-ap1.tcl

📁 跑leach需要的
💻 TCL
字号:
# -*-	Mode:tcl; tcl-indent-level:8; tab-width:8; indent-tabs-mode:t -*-Agent/TCP set tcpTick_ 0.1# The default for tcpTick_ is being changed to reflect a changing reality.Agent/TCP set rfc2988_ false# The default for rfc2988_ is being changed to true.# FOR UPDATING GLOBAL DEFAULTS:Agent/TCP set windowInit_ 1# The default is being changed to 2.Agent/TCP set singledup_ 0# The default is being changed to 1## Copyright (c) 1998 University of Southern California.# All rights reserved.                                            #                                                                # Redistribution and use in source and binary forms are permitted# provided that the above copyright notice and this paragraph are# duplicated in all such forms and that any documentation, advertising# materials, and other materials related to such distribution and use# acknowledge that the software was developed by the University of# Southern California, Information Sciences Institute.  The name of the# University may not be used to endorse or promote products derived from# this software without specific prior written permission.# # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.# # $Header: /nfs/jade/vint/CVSROOT/ns-2/tcl/test/test-suite-wireless-lan-ap1.tcl,v 1.1 2003/09/23 00:46:35 aditi Exp $# This test suite is for validating wireless lans # To run all tests: test-all-wireless-lan-tora# to run individual test:## To view a list of available test to run with this script:# ns test-suite-wireless-lan.tcl#Class TestSuiteClass Test/ap -superclass TestSuite#wireless model using 802.11 APproc usage {} {	global argv0	puts stderr "usage: ns $argv0 <tests> "	puts "Valid Tests: ap"	exit 1}proc default_options {} {    global opt    set opt(chan)	Channel/WirelessChannel    set opt(prop)	Propagation/TwoRayGround    set opt(netif)	Phy/WirelessPhy    set opt(mac)	Mac/802_11    set opt(ifq)	Queue/DropTail/PriQueue    set opt(ll)		LL    set opt(ant)        Antenna/OmniAntenna    set opt(x)		670 ;# X dimension of the topography    set opt(y)		670;# Y dimension of the topography    set opt(ifqlen)	50	      ;# max packet in ifq    set opt(seed)	0.0    set opt(tr)		temp.rands    ;# trace file    set opt(lm)         "off"          ;# log movement}# =====================================================================# Other default settingsLL set mindelay_		50usLL set delay_			25usLL set bandwidth_		0	;# not usedAgent/Null set sport_		0Agent/Null set dport_		0Agent/CBR set sport_		0Agent/CBR set dport_		0Agent/TCPSink set sport_	0Agent/TCPSink set dport_	0Agent/TCP set sport_		0Agent/TCP set dport_		0Agent/TCP set packetSize_	1460Queue/DropTail/PriQueue set Prefer_Routing_Protocols    1# unity gain, omni-directional antennas# set up the antennas to be centered in the node and 1.5 meters above itAntenna/OmniAntenna set X_ 0Antenna/OmniAntenna set Y_ 0Antenna/OmniAntenna set Z_ 1.5Antenna/OmniAntenna set Gt_ 1.0Antenna/OmniAntenna set Gr_ 1.0# Initialize the SharedMedia interface with parameters to make# it work like the 914MHz Lucent WaveLAN DSSS radio interfacePhy/WirelessPhy set CPThresh_ 10.0Phy/WirelessPhy set CSThresh_ 1.559e-11Phy/WirelessPhy set RXThresh_ 3.652e-10Phy/WirelessPhy set Rb_ 2*1e6Phy/WirelessPhy set Pt_ 0.28183815Phy/WirelessPhy set freq_ 914e+6 Phy/WirelessPhy set L_ 1.0# =====================================================================TestSuite instproc init {} {	global opt tracefd topo chan prop 	global node_ god_ 	$self instvar ns_ testName_	set ns_         [new Simulator]	set topo	[new Topography]	set tracefd	[open $opt(tr) w]		$ns_ trace-all $tracefd	set opt(rp) $testName_	$topo load_flatgrid $opt(x) $opt(y)		#puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)"	#puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)"	#puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)"	#set god_ [create-god $opt(nn)]}Test/ap instproc init {} {	global opt node_ god_ chan topo	$self instvar ns_ testName_	set testName_       ap	set opt(nn)		3      	set opt(stop)       1.0	$self next	#	# Create God	#	set god_ [create-god $opt(nn)]	$ns_ node-config -adhocRouting AODV \			-llType $opt(ll) \			-macType $opt(mac) \			-ifqType $opt(ifq) \			-ifqLen $opt(ifqlen) \			-antType $opt(ant) \			-propType $opt(prop) \			-phyType $opt(netif) \			-channel [new $opt(chan)] \			-topoInstance $topo \			-agentTrace ON \			-routerTrace ON \			-macTrace OFF \			-toraDebug OFF \			-movementTrace OFF    	      for {set i 0} {$i < $opt(nn) } {incr i} {                  set node_($i) [$ns_ node]                  $node_($i) random-motion 0              ;# disable random motion                set mac_($i) [$node_($i) getMac 0]                $mac_($i) set dataRate_ 54Mb                $mac_($i) set basicRate_ 24Mb                $mac_($i) set RTSThreshold_ 3000                $node_($i) set X_ 0.0                $node_($i) set Y_ 0.0                $node_($i) set Z_ 0.0      }      # Tell everyone who the AP is      set AP_ADDR [$mac_(0) id]      for {set i 0} {$i < $opt(nn) } {incr i} {            $mac_($i) bss_id $AP_ADDR      }      puts "Load complete..."      $self  create-tcp-traffic 0 $node_(1) $node_(2) 0.0001      #      # Tell all the nodes when the simulation ends      #      for {set i 0} {$i < $opt(nn) } {incr i} {        $ns_ at $opt(stop).000000001 "$node_($i) reset";      }      $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;"      $ns_ at $opt(stop).1 "$self finish-ap"}Test/ap instproc run {} {	$self instvar ns_	puts "Starting Simulation..."	$ns_ run}TestSuite instproc finish-ap {} {	$self instvar ns_	global quiet opt tracefd	$ns_ flush-trace                #set tracefd	[open $opt(tr) r]        #set tracefd2    [open $opt(tr).w w]        #while { [eof $tracefd] == 0 } {	 #   set line [gets $tracefd]	 #   set items [split $line " "]	  #set time [lindex $items 1]	    	   # set times [split $time "."]	   # set time1 [lindex $times 0]	   # set time2 [lindex $times 1]	   # set newtime2 [string range $time2 0 2]	   # set time $time1.$newtime2	   # puts $line	   #	puts $items	   # set newline [lreplace $line 1 1 $time] 	   # puts $tracefd2 $newline	#}		close $tracefd	#close $tracefd2	#exec mv $opt(tr).w $opt(tr)	puts "finish.."	exit 0	}TestSuite instproc finish {} {	$self instvar ns_	global quiet	$ns_ flush-trace        #if { !$quiet } {        #        puts "running nam..."        #        exec nam temp.rands.nam &        #}	puts "finishing.."	exit 0}TestSuite instproc log-movement {} {	global ns	$self instvar logtimer_ ns_	set ns $ns_	source ../mobility/timer.tcl	Class LogTimer -superclass Timer	LogTimer instproc timeout {} {		global opt node_;		for {set i 0} {$i < $opt(nn)} {incr i} {			$node_($i) log-movement		}		$self sched 0.1	}	set logtimer_ [new LogTimer]	$logtimer_ sched 0.1}TestSuite instproc create-tcp-traffic {id src dst start} {    $self instvar ns_    set tcp_($id) [new Agent/TCP]    $tcp_($id) set class_ 2    set sink_($id) [new Agent/TCPSink]    $ns_ attach-agent $src $tcp_($id)    $ns_ attach-agent $dst $sink_($id)    $ns_ connect $tcp_($id) $sink_($id)    set ftp_($id) [new Application/FTP]    $ftp_($id) attach-agent $tcp_($id)    $ns_ at $start "$ftp_($id) start"    }TestSuite instproc create-udp-traffic {id src dst start} {    $self instvar ns_    set udp_($id) [new Agent/UDP]    $ns_ attach-agent $src $udp_($id)    set null_($id) [new Agent/Null]    $ns_ attach-agent $dst $null_($id)    set cbr_($id) [new Application/Traffic/CBR]    $cbr_($id) set packetSize_ 512    $cbr_($id) set interval_ 4.0    $cbr_($id) set random_ 1    $cbr_($id) set maxpkts_ 10000    $cbr_($id) attach-agent $udp_($id)    $ns_ connect $udp_($id) $null_($id)    $ns_ at $start "$cbr_($id) start"}proc runtest {arg} {	global quiet	set quiet 0	set b [llength $arg]	if {$b == 1} {		set test $arg	} elseif {$b == 2} {		set test [lindex $arg 0]		if {[lindex $arg 1] == "QUIET"} {			set quiet 1		}	} else {		usage	}	set t [new Test/$test]			$t run}global argv arg0default_optionsruntest $argv

⌨️ 快捷键说明

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