Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 12.37 KB | None | 0 0
  1. global ns
  2.  
  3. #
  4. # Fonction d'arret
  5. #
  6. puts "Declaration de la fonction d'arret"
  7. proc finish {} {
  8.     global ns f
  9.     $ns flush-trace
  10.     close $f
  11.     puts "Fin de la simulation"
  12.     exit 0
  13.     #exec gawk -f measure-throughput.awk output.tr >throughput.tr &
  14.     # ./nam output.nam &
  15.     #exec ./xgraph throughput-orginal.tr throughput-qos.tr -x "TIme" -y "Average Throughput(kbps)" &
  16.     #exec ./xgraph  ldf-distancefromcellborder  -x "Going down ratio" -y "Distance from cell border" &
  17.     #exec ./xgraph  ldf-packetloss -x "Going down ratio" -y "Packet loss" &
  18.    }
  19.  
  20. #
  21. # Paramétrage MIH
  22. #
  23. Agent/ND set debug_ 1
  24. Agent/MIH set debug_ 1
  25. Agent/MIHUser/IFMNGMT/MIPV6 set debug_ 1
  26. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set debug_ 1
  27. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set case_ 3
  28. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set confidence_th_ 1
  29. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set shutdown_on_ack_ 100
  30.  
  31. #
  32. # Paramétrage 802.16
  33. #
  34. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set cost80216_   25
  35. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set energy80216_ 3.5
  36. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set PER80216_ 0.05
  37. Agent/WimaxCtrl set adv_interval_ 1.0
  38. Agent/WimaxCtrl set default_association_level_ 0
  39. Agent/WimaxCtrl set synch_frame_delay_ 0.5
  40. Agent/WimaxCtrl set debug_ 1
  41. Mac/802_16 set debug_ 1
  42. Mac/802_16 set queue_length_ 2000
  43. Mac/802_16 set MIH_UTILITY_ 0
  44. Mac/802_16 set NN 1
  45. Mac/802_16 set cost_ 25
  46. Mac/802_16 set lgd_factor_ 1.3
  47. Mac/802_16 set scan_duration_ 50
  48. Mac/802_16 set interleaving_interval_ 40
  49. Mac/802_16 set dcd_interval_ 5 ;#max 10s
  50. Mac/802_16 set ucd_interval_ 5 ;#max 10s
  51. Mac/802_16 set t21_timeout_ 0.02 ;#max 10s
  52. Mac/802_16 set client_timeout_ 500
  53. Mac/802_16 set cost_   25
  54. Mac/802_16 set energy_ 3.5
  55. Mac/802_16 set PER_    0.05
  56.  
  57. #
  58. # Paramétrage 802.11
  59. #
  60. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set cost80211_   15
  61. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set energy80211_ 4.5
  62. Mac/802_11 set pr_limit_  1.0
  63. Mac/802_11 set NN 1
  64. Mac/802_11 set cost_ 15
  65. Mac/802_11 set cost_   15
  66. Mac/802_11 set energy_ 4.5
  67.  
  68. #
  69. # Variables globales
  70. #
  71. puts "Declaration des variables globales"
  72. set output_dir .
  73. set traffic_start 3
  74. set traffic_stop  180
  75. set simulation_stop 180
  76. set interval 0.003
  77. set utility 1
  78. set rate_ [expr 1024/$interval]
  79. Mac/802_11 set MIH_UTILITY_ $utility
  80. Mac/802_16 set MIH_UTILITY_ $utility  
  81. Mac/802_11 set rate_ $rate_ ;
  82. Mac/802_16 set rate_ $rate_   ;#data rate
  83. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set rate80211_ $rate_  
  84. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set rate80216_ $rate_
  85.  
  86. #
  87. # Création du simulateur et des fichiers de trace
  88. #
  89. puts "Creation du simulateur et des fichiers de trace"
  90. set ns [new Simulator]
  91. $ns use-newtrace
  92. set f [open out.tr w]
  93. $ns trace-all $f
  94. set nam [open nam_out.nam w]
  95. $ns namtrace-all-wireless $nam 1 1
  96. puts "Configuration de la simulation"
  97. puts "creation des entites"
  98.  
  99. #
  100. # Création du routeur (Node 0)
  101. #
  102. # Node 0
  103. $ns node-config -addressType hierarchical
  104. AddrParams set domain_num_  6
  105. AddrParams set cluster_num_ {1 1 1 1 1 1}
  106. AddrParams set nodes_num_   {3 1 3 2 2 1}
  107. set router [$ns node 2.0.0]
  108. $router set X_ 1500
  109. $router set Y_ 500
  110. $ns at 0.0 "$router color black"
  111. $ns at 0.0 "$router label routeur(2.0.0)"
  112. puts "router1: tcl=$router; id=[$router id]; addr=[$router node-addr]"
  113.  
  114. #
  115. # Création du CN (Node 1)
  116. #
  117. set CN [$ns node 1.0.0]
  118. $CN set X_ 1500
  119. $CN set Y_ 1000
  120. $ns at 0.0 "$CN color red"
  121. $ns at 0.0 "$CN label CN(1.0.0)"
  122. puts "CN: tcl=$CN; id=[$CN id]; addr=[$CN node-addr]"
  123. #Connexion du CN au routeur
  124. $ns duplex-link $router $CN 100MBit 5ms DropTail 1000
  125.  
  126. #
  127. #Création du MN (Node 2)
  128. #
  129. # ce block droit être créé avant le paramétrage 802.11
  130. $ns node-config  -multiIf ON
  131. set multiFaceNode [$ns node 4.0.0]
  132. $ns node-config  -multiIf OFF
  133. $ns at 0.0 "$multiFaceNode label Node2(4.0.0)"
  134. puts "multiFaceNode: tcl=$multiFaceNode; id=[$multiFaceNode id]; addr=[$multiFaceNode node-addr]"
  135.  
  136. #
  137. # Paramétrage 802.11
  138. #
  139. # configuration couche physique à un rayon 20m et une fréquence 2.4GHz
  140. Phy/WirelessPhy set Pt_ 0.025
  141. Phy/WirelessPhy set freq_ 2412e+6
  142. Phy/WirelessPhy set RXThresh_ 6.12277e-09
  143. Phy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]
  144. set opt(prop)           Propagation/TwoRayGround   ;# modèle de propagation radio TwoRayGround
  145. set opt(ifq)            Queue/DropTail/PriQueue    ;# type file d'attente DropTail
  146. set opt(ant)            Antenna/OmniAntenna        ;# type d'antenne OmniAntenna
  147. set opt(ifqlen)         50                           ;# taille paquet maximale dans la file d'attente 50
  148. set opt(adhocRouting)   DSDV                       ;# protocole de routage DSDV
  149. set opt(x)    2000                                 ;# dimension X de la topographie
  150. set opt(y)    2000                                 ;# dimension Y de la topographie
  151. set opt(chan)           Channel/WirelessChannel    ;
  152. set opt(netif)          Phy/WirelessPhy            ;
  153. set opt(mac)            Mac/802_11                 ;
  154. set opt(ll)             LL                         ;
  155. # Configuration du débit à 11Mbps
  156. Mac/802_11 set basicRate_ 1Mb
  157. Mac/802_11 set dataRate_ 11Mb
  158. Mac/802_11 set bandwidth_ 11Mb
  159.  
  160. #
  161. # Création de la topographie
  162. #
  163. set topo [new Topography]
  164. $topo load_flatgrid $opt(x) $opt(y)
  165. set chan [new $opt(chan)]
  166. create-god 7
  167.  
  168. #
  169. # Création de la BS WiFi (Node 3)
  170. #
  171. $ns node-config  -adhocRouting $opt(adhocRouting) \
  172.                  -llType $opt(ll) \
  173.                  -macType $opt(mac) \
  174.                  -channel $chan \
  175.                  -ifqType $opt(ifq) \
  176.                  -ifqLen $opt(ifqlen) \
  177.                  -antType $opt(ant) \
  178.                  -propType $opt(prop)    \
  179.                  -phyType $opt(netif) \
  180.                  -topoInstance $topo \
  181.                  -wiredRouting ON \
  182.                  -agentTrace ON \
  183.                  -routerTrace ON \
  184.                  -macTrace ON  \
  185.                  -movementTrace OFF
  186. set bstation802 [$ns node 3.0.0] ;
  187. $bstation802 set X_ 680.0
  188. $bstation802 set Y_ 1000.0
  189. $bstation802 set Z_ 0.0
  190. $ns at 0.0 "$bstation802 color blue"
  191. $ns at 0.0 "$bstation802 label WiFi_BS(3.0.0)"
  192. puts "bstation802: tcl=$bstation802; id=[$bstation802 id]; addr=[$bstation802 node-addr]"
  193. # Configuration BSSID
  194. set bstationMac [$bstation802 getMac 0]
  195. set AP_ADDR_0 [$bstationMac id]
  196. #puts "BSSID de la bstation802 est $AP_ADDR_0"
  197. $bstationMac bss_id $AP_ADDR_0
  198. $bstationMac enable-beacon
  199. #Attachement de la BS WiFi au routeur
  200. $ns duplex-link $bstation802 $router 100MBit 15ms DropTail 1000
  201. $bstationMac set-channel 1
  202.  
  203. #
  204. # Création de l'interface 802.11 pour le MN (Node 4)
  205. #
  206. $ns node-config -wiredRouting OFF \
  207.                 -macTrace ON                
  208. set iface1 [$ns node 3.0.1]
  209. $iface1 set X_ 480.0
  210. $iface1 set Y_ 1000.0
  211. $iface1 set Z_ 0.0
  212. $ns at 0.0 "$iface1 label MN"
  213. # connexion au BS WiFi
  214. $iface1 base-station [AddrParams addr2id [$bstation802 node-addr]] ;
  215. [$iface1 set mac_(0)] set-channel 1
  216. # traget du Node 5
  217. $iface1 random-motion 0
  218. $ns at 0 "$iface1 setdest 1600.0 1000.0 3.0"
  219. puts "iface1: tcl=$iface1; id=[$iface1 id]; addr=[$iface1 node-addr]"          
  220.  
  221. #
  222. # Paramètrage 802.21
  223. #
  224. Phy/WirelessPhy set Pt_ 0.025
  225. Phy/WirelessPhy set RXThresh_ 7.91016e-15 ;
  226. Phy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]
  227. set opt(netif)          Phy/WirelessPhy/OFDM       ;# type de technique d'accès OFDM
  228. set opt(mac)            Mac/802_16
  229.  
  230. #
  231. # création de la BS WiMAX (Node 5)
  232. #
  233. $ns node-config  -adhocRouting NOAH \
  234.                  -llType $opt(ll) \
  235.                  -macType $opt(mac) \
  236.                  -channel $chan \
  237.                  -ifqType $opt(ifq) \
  238.                  -ifqLen $opt(ifqlen) \
  239.                  -antType $opt(ant) \
  240.                  -propType $opt(prop)    \
  241.                  -phyType $opt(netif) \
  242.                  -topoInstance $topo \
  243.                  -wiredRouting ON \
  244.                  -agentTrace ON \
  245.                  -routerTrace OFF \
  246.                  -macTrace ON  \
  247.                  -movementTrace OFF
  248. set bstation802_16 [$ns node 5.0.0] ;
  249. $bstation802_16 set X_ 1000
  250. $bstation802_16 set Y_ 1000
  251. $bstation802_16 set Z_ 0.0
  252. $ns at 0.0 "$bstation802_16 color blue"
  253. $ns at 0.0 "$bstation802_16 label WiMAX_BS(5.0.0)"
  254. puts "bstation802_16: tcl=$bstation802_16; id=[$bstation802_16 id]; addr=[$bstation802_16 node-addr]"
  255. set clas [new SDUClassifier/Dest]
  256. [$bstation802_16 set mac_(0)] add-classifier $clas
  257. set bs_sched [new WimaxScheduler/BS]
  258. $bs_sched set-default-modulation OFDM_BPSK_1_2
  259. [$bstation802_16 set mac_(0)] set-scheduler $bs_sched
  260. [$bstation802_16 set mac_(0)] set-channel 2
  261. # attachement de la BS WiMAX au routeur
  262. $ns duplex-link $bstation802_16 $router 100MBit 15ms DropTail 1000
  263.  
  264. #
  265. # Création de l'interface 802.16 pour le MN (Node 6)
  266. #
  267. $ns node-config -wiredRouting OFF \
  268.                 -macTrace ON
  269. set iface2 [$ns node 5.0.1]
  270. $iface2 base-station [AddrParams addr2id [$bstation802_16 node-addr]] ;#attach mn to basestation
  271. $iface2 set X_ 480.0
  272. $iface2 set Y_ 1000.0
  273. $iface2 set Z_ 0.0
  274. $iface2 color cyan
  275. set clas [new SDUClassifier/Dest]
  276. [$iface2 set mac_(0)] add-classifier $clas
  277. set ss_sched [new WimaxScheduler/SS]
  278. [$iface2 set mac_(0)] set-scheduler $ss_sched
  279. [$iface2 set mac_(0)] set-channel 1
  280. # tragèt du Node 6
  281. $iface2 random-motion 0
  282. $ns at 0 "$iface2 setdest 1600.0 1000.0 3.0"
  283. puts "iface2: tcl=$iface2; id=[$iface2 id]; addr=[$iface2 node-addr]"
  284.  
  285. #
  286. # Installation des deux interface 802.11 et 802.21 au MN
  287. #
  288. $multiFaceNode add-interface-node $iface1
  289. $multiFaceNode add-interface-node $iface2
  290. puts "Interfaces bien installes sur le MN"
  291.  
  292. #
  293. # Installation du module MIH sur les différents équipements
  294. #
  295. Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set debug_ 1
  296. set handover [new Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1]
  297. # pour la BS WiFi
  298. set nd_bs [$bstation802 install-nd]
  299. $nd_bs set-router TRUE
  300. $nd_bs router-lifetime 1800
  301. set mih_bs [$bstation802 install-mih]
  302. set tmp_bs [$bstation802 set mac_(0)]
  303. $tmp_bs mih $mih_bs
  304. $mih_bs add-mac $tmp_bs
  305. puts "Installation du module MIH sur la BS WiFi est bien effectue"
  306. # pour la BS WiMAX
  307. set nd_bs2 [$bstation802_16 install-nd]
  308. $nd_bs2 set-router TRUE
  309. $nd_bs2 router-lifetime 1800
  310. set mih_bs [$bstation802_16 install-mih]
  311. set tmp_bs [$bstation802_16 set mac_(0)]
  312. $tmp_bs mih $mih_bs
  313. $mih_bs add-mac $tmp_bs
  314. puts "Installation du module MIH sur la BS WiMAX est bien effectue"
  315. # pour l'interface 802.11
  316. set nd_mn [$iface1 install-nd]
  317. $nd_mn set-ifmanager $handover
  318. $handover nd_mac $nd_mn [$iface1 set mac_(0)]
  319. puts "Installation du module MIH sur la l'interface 802.11 est bien effectue"
  320. # pour l'interface 802.16
  321. set nd_mn2 [$iface2 install-nd]
  322. $nd_mn2 set-ifmanager $handover
  323. $handover nd_mac $nd_mn2 [$iface2 set mac_(0)]
  324. puts "Installation du module MIH sur la l'interface 802.16 est bien effectue"
  325. # pour le MN en entier
  326. $multiFaceNode install-ifmanager $handover
  327. set mih [$multiFaceNode install-mih]
  328. $handover connect-mih $mih
  329. # association des adresses MAC au module MIH
  330. set tmp2 [$iface1 set mac_(0)]
  331. $tmp2 mih $mih
  332. $mih add-mac $tmp2
  333. set tmp2 [$iface2 set mac_(0)]
  334. $tmp2 mih $mih
  335. $mih add-mac $tmp2
  336. puts "Installation du module MIH sur le MN est bien effectue"
  337. # pour le routeur
  338. set nd_router [$router install-nd]
  339. $nd_router set-router TRUE
  340. $nd_router router-lifetime 1800
  341. # commencement du routage
  342. $ns at 2 "$nd_bs start-ra"
  343. $ns at 2 "$nd_bs2 start-ra"
  344. $ns at 1 "$nd_router start-ra"
  345. puts "Installation du module MIH sur le routeur est bien effectue"
  346. # pour le CN
  347. set ifmgmt_cn [$CN install-default-ifmanager]
  348. puts "Installation du module MIH sur le CN est bien effectue"
  349.  
  350. #
  351. # Création d'un trafic video CBR du MN vers le CN commencant sur l'interface 802.16
  352. #
  353. set i 0
  354. set udpvideo_($i) [new Agent/UDP]
  355. $udpvideo_($i) set packetSize_ 1240
  356. set cbrvideo_($i) [new Application/Traffic/CBR]
  357. $cbrvideo_($i) set packetSize_ 4960
  358. $cbrvideo_($i) set interval_ 0.1
  359. $cbrvideo_($i) attach-agent $udpvideo_($i)
  360. set nullvideo_($i) [new Agent/Null]
  361. # création des agents    
  362. $ns attach-agent $CN $udpvideo_($i)
  363. $ns attach-agent $multiFaceNode $nullvideo_($i)
  364. $handover add-flow $nullvideo_($i) $udpvideo_($i) $iface2 1
  365.  
  366.  
  367. #
  368. # Commencement de la simulation
  369. #
  370. $ns at $traffic_start "$cbrvideo_($i) start"
  371. $ns at $traffic_stop "$cbrvideo_($i) stop"
  372. $ns at $simulation_stop "finish"
  373. puts "La simulation commence : ..."
  374. $ns run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement