Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.94 KB | None | 0 0
  1. #======================================================================
  2. # Define options
  3. #======================================================================
  4. set val(chan) Channel/WirelessChannel ;# channel type
  5. set val(prop) Propagation/TwoRayGround ;# radio-propagation model
  6. set val(ant) Antenna/OmniAntenna ;# Antenna type
  7. set val(ll) LL ;# Link layer type
  8. set val(ifq) CMUPriQueue ;# Interface queue type #CMUPriQueue - DSR olsr dsdv #Queue/DropTail/PriQueue - aodv
  9. set val(ifqlen) 50 ;# max packet in ifq
  10. set val(netif) Phy/WirelessPhy ;# network interface type
  11. set val(mac) Mac/802_11 ;# MAC type
  12. set val(rp) DSR ;# ad-hoc routing protocol
  13. set val(nn) 42 ;# number of mobilenodes
  14. set val(vel) 28 ;# number of mobilenodes
  15. set val(x) 600 ;
  16. set val(y) 200 ;# x-y simulation's area
  17. set val(semente) 289 ;
  18. set val(carga) "load_scen/load_n$val(nn)" ;
  19. set val(mobilidade) "mob_scen/scen_v$val(vel)_n$val(nn)";
  20.  
  21.  
  22. #======================================================================
  23. # New ns2 instance
  24. #======================================================================
  25. set ns_ [new Simulator]
  26.  
  27. #======================================================================
  28. # Define trace files
  29. #======================================================================
  30. set tracefd [open out.tr w]
  31. $ns_ trace-all $tracefd
  32. #set namtrace [open movemement.nam w]
  33. #$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
  34.  
  35. #======================================================================
  36. # Define Topology
  37. #======================================================================
  38. set topo [new Topography]
  39. $topo load_flatgrid $val(x) $val(y)
  40.  
  41.  
  42. set god_ [create-god $val(nn)]
  43.  
  44. #======================================================================
  45. # Configure nodes
  46. #======================================================================
  47. $ns_ node-config -adhocRouting $val(rp) \
  48. -llType $val(ll) \
  49. -macType $val(mac) \
  50. -ifqType $val(ifq) \
  51. -ifqLen $val(ifqlen) \
  52. -antType $val(ant) \
  53. -propType $val(prop) \
  54. -phyType $val(netif) \
  55. -channelType $val(chan) \
  56. -topoInstance $topo \
  57. -agentTrace ON\
  58. -routerTrace OFF \
  59. -macTrace OFF \
  60. -movementTrace OFF
  61.  
  62. for {set i 0} {$i < $val(nn) } {incr i} {
  63. set node_($i) [$ns_ node ]
  64. $node_($i) random-motion 0 ;# disable random motion
  65. }
  66. ## transmission rate
  67. Mac/802_11 set dataRate_ 11.0e6
  68. Mac/802_11 set basicRate_ 2.5e6
  69.  
  70.  
  71. # Transmission range
  72. # 100 meters ../indep-utils/propagation
  73. #Phy/WirelessPhy set RXThresh_ 1.92278e-06; #10 meters
  74. #Phy/WirelessPhy set RXThresh_ 7.69113e-08; #50 meters
  75. #Phy/WirelessPhy set RXThresh_ 3.00435e-08; #80 meters
  76. Phy/WirelessPhy set RXThresh_ 1.42681e-08; #100 meters
  77. #Phy/WirelessPhy set RXThresh_ 8.91754e-10; #200 meters
  78. #Phy/WirelessPhy set RXThresh_ 1.76149e-10; #300 meters
  79. #Phy/WirelessPhy set RXThresh_ 5.57346e-11; #400 meters
  80. #Phy/WirelessPhy set RXThresh_ 2.28289e-11;#500 meters
  81.  
  82.  
  83. #======================================================================
  84. # Define Node's Movement
  85. #======================================================================
  86.  
  87. ## loading scenario file
  88. source $val(mobilidade)
  89.  
  90.  
  91. #======================================================================
  92. # Define Traffic Generators
  93. #======================================================================
  94. puts "Loading querys traffic file ...."
  95. set bSys [new TrafficController $val(nn)] ;#$val(nn)]
  96. $bSys charge_traffic $val(carga)
  97. puts "Load complete"
  98. puts ""
  99.  
  100.  
  101.  
  102. for {set i 0} {$i < $val(nn)} {incr i 1} {
  103. set gen($i) [new Agent/TrafficAgent]
  104. $ns_ attach-agent $node_($i) $gen($i)
  105. $node_($i) attach $gen($i) 333
  106.  
  107. set app_($i) [new Application/P2PApp];
  108. $app_($i) attach-traffic-controller $bSys
  109. $app_($i) attach-agent $gen($i)
  110.  
  111. $app_($i) seed $val(semente); #semente utilizada para escolher o endereço para onde se envia a querie
  112. $app_($i) number_nodes $val(nn); #lista de nós activos para onde gera os pedidos de encaminhamento (através do endereço da lista de nós activos)
  113.  
  114. $ns_ at 0.0 "$app_($i) start"
  115. }
  116.  
  117.  
  118.  
  119. #======================================================================
  120. # Simulation Control
  121. #======================================================================
  122. for {set i 0} {$i < $val(nn) } {incr i} {
  123. $ns_ at 100.0 "$node_($i) reset";
  124. }
  125. $ns_ at 100.0001 "stop"
  126. $ns_ at 100.0002 "puts \"NS EXITING...\" ; $ns_ halt"
  127. proc stop {} {
  128. global ns_ tracefd
  129. global val
  130. # global ns_ namtrace
  131. $ns_ flush-trace
  132. close $tracefd
  133. # close $namtrace
  134. #exec gedit simple.tr &
  135. exec mv out.tr "traces/out_$val(rp)_n$val(nn)_v$val(vel).tr"
  136. exit 0
  137. }
  138.  
  139. puts "Starting Simulation..."
  140. $ns_ run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement