Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- global ns
- #
- # Fonction d'arret
- #
- puts "Declaration de la fonction d'arret"
- proc finish {} {
- global ns f
- $ns flush-trace
- close $f
- puts "Fin de la simulation"
- exit 0
- #exec gawk -f measure-throughput.awk output.tr >throughput.tr &
- # ./nam output.nam &
- #exec ./xgraph throughput-orginal.tr throughput-qos.tr -x "TIme" -y "Average Throughput(kbps)" &
- #exec ./xgraph ldf-distancefromcellborder -x "Going down ratio" -y "Distance from cell border" &
- #exec ./xgraph ldf-packetloss -x "Going down ratio" -y "Packet loss" &
- }
- #
- # Paramétrage MIH
- #
- Agent/ND set debug_ 1
- Agent/MIH set debug_ 1
- Agent/MIHUser/IFMNGMT/MIPV6 set debug_ 1
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set debug_ 1
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set case_ 3
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set confidence_th_ 1
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set shutdown_on_ack_ 100
- #
- # Paramétrage 802.16
- #
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set cost80216_ 25
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set energy80216_ 3.5
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set PER80216_ 0.05
- Agent/WimaxCtrl set adv_interval_ 1.0
- Agent/WimaxCtrl set default_association_level_ 0
- Agent/WimaxCtrl set synch_frame_delay_ 0.5
- Agent/WimaxCtrl set debug_ 1
- Mac/802_16 set debug_ 1
- Mac/802_16 set queue_length_ 2000
- Mac/802_16 set MIH_UTILITY_ 0
- Mac/802_16 set NN 1
- Mac/802_16 set cost_ 25
- Mac/802_16 set lgd_factor_ 1.3
- Mac/802_16 set scan_duration_ 50
- Mac/802_16 set interleaving_interval_ 40
- Mac/802_16 set dcd_interval_ 5 ;#max 10s
- Mac/802_16 set ucd_interval_ 5 ;#max 10s
- Mac/802_16 set t21_timeout_ 0.02 ;#max 10s
- Mac/802_16 set client_timeout_ 500
- Mac/802_16 set cost_ 25
- Mac/802_16 set energy_ 3.5
- Mac/802_16 set PER_ 0.05
- #
- # Paramétrage 802.11
- #
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set cost80211_ 15
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set energy80211_ 4.5
- Mac/802_11 set pr_limit_ 1.0
- Mac/802_11 set NN 1
- Mac/802_11 set cost_ 15
- Mac/802_11 set cost_ 15
- Mac/802_11 set energy_ 4.5
- #
- # Variables globales
- #
- puts "Declaration des variables globales"
- set output_dir .
- set traffic_start 3
- set traffic_stop 180
- set simulation_stop 180
- set interval 0.003
- set utility 1
- set rate_ [expr 1024/$interval]
- Mac/802_11 set MIH_UTILITY_ $utility
- Mac/802_16 set MIH_UTILITY_ $utility
- Mac/802_11 set rate_ $rate_ ;
- Mac/802_16 set rate_ $rate_ ;#data rate
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set rate80211_ $rate_
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set rate80216_ $rate_
- #
- # Création du simulateur et des fichiers de trace
- #
- puts "Creation du simulateur et des fichiers de trace"
- set ns [new Simulator]
- $ns use-newtrace
- set f [open out.tr w]
- $ns trace-all $f
- set nam [open nam_out.nam w]
- $ns namtrace-all-wireless $nam 1 1
- puts "Configuration de la simulation"
- puts "creation des entites"
- #
- # Création du routeur (Node 0)
- #
- # Node 0
- $ns node-config -addressType hierarchical
- AddrParams set domain_num_ 6
- AddrParams set cluster_num_ {1 1 1 1 1 1}
- AddrParams set nodes_num_ {3 1 3 2 2 1}
- set router [$ns node 2.0.0]
- $router set X_ 1500
- $router set Y_ 500
- $ns at 0.0 "$router color black"
- $ns at 0.0 "$router label routeur(2.0.0)"
- puts "router1: tcl=$router; id=[$router id]; addr=[$router node-addr]"
- #
- # Création du CN (Node 1)
- #
- set CN [$ns node 1.0.0]
- $CN set X_ 1500
- $CN set Y_ 1000
- $ns at 0.0 "$CN color red"
- $ns at 0.0 "$CN label CN(1.0.0)"
- puts "CN: tcl=$CN; id=[$CN id]; addr=[$CN node-addr]"
- #Connexion du CN au routeur
- $ns duplex-link $router $CN 100MBit 5ms DropTail 1000
- #
- #Création du MN (Node 2)
- #
- # ce block droit être créé avant le paramétrage 802.11
- $ns node-config -multiIf ON
- set multiFaceNode [$ns node 4.0.0]
- $ns node-config -multiIf OFF
- $ns at 0.0 "$multiFaceNode label Node2(4.0.0)"
- puts "multiFaceNode: tcl=$multiFaceNode; id=[$multiFaceNode id]; addr=[$multiFaceNode node-addr]"
- #
- # Paramétrage 802.11
- #
- # configuration couche physique à un rayon 20m et une fréquence 2.4GHz
- Phy/WirelessPhy set Pt_ 0.025
- Phy/WirelessPhy set freq_ 2412e+6
- Phy/WirelessPhy set RXThresh_ 6.12277e-09
- Phy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]
- set opt(prop) Propagation/TwoRayGround ;# modèle de propagation radio TwoRayGround
- set opt(ifq) Queue/DropTail/PriQueue ;# type file d'attente DropTail
- set opt(ant) Antenna/OmniAntenna ;# type d'antenne OmniAntenna
- set opt(ifqlen) 50 ;# taille paquet maximale dans la file d'attente 50
- set opt(adhocRouting) DSDV ;# protocole de routage DSDV
- set opt(x) 2000 ;# dimension X de la topographie
- set opt(y) 2000 ;# dimension Y de la topographie
- set opt(chan) Channel/WirelessChannel ;
- set opt(netif) Phy/WirelessPhy ;
- set opt(mac) Mac/802_11 ;
- set opt(ll) LL ;
- # Configuration du débit à 11Mbps
- Mac/802_11 set basicRate_ 1Mb
- Mac/802_11 set dataRate_ 11Mb
- Mac/802_11 set bandwidth_ 11Mb
- #
- # Création de la topographie
- #
- set topo [new Topography]
- $topo load_flatgrid $opt(x) $opt(y)
- set chan [new $opt(chan)]
- create-god 7
- #
- # Création de la BS WiFi (Node 3)
- #
- $ns node-config -adhocRouting $opt(adhocRouting) \
- -llType $opt(ll) \
- -macType $opt(mac) \
- -channel $chan \
- -ifqType $opt(ifq) \
- -ifqLen $opt(ifqlen) \
- -antType $opt(ant) \
- -propType $opt(prop) \
- -phyType $opt(netif) \
- -topoInstance $topo \
- -wiredRouting ON \
- -agentTrace ON \
- -routerTrace ON \
- -macTrace ON \
- -movementTrace OFF
- set bstation802 [$ns node 3.0.0] ;
- $bstation802 set X_ 680.0
- $bstation802 set Y_ 1000.0
- $bstation802 set Z_ 0.0
- $ns at 0.0 "$bstation802 color blue"
- $ns at 0.0 "$bstation802 label WiFi_BS(3.0.0)"
- puts "bstation802: tcl=$bstation802; id=[$bstation802 id]; addr=[$bstation802 node-addr]"
- # Configuration BSSID
- set bstationMac [$bstation802 getMac 0]
- set AP_ADDR_0 [$bstationMac id]
- #puts "BSSID de la bstation802 est $AP_ADDR_0"
- $bstationMac bss_id $AP_ADDR_0
- $bstationMac enable-beacon
- #Attachement de la BS WiFi au routeur
- $ns duplex-link $bstation802 $router 100MBit 15ms DropTail 1000
- $bstationMac set-channel 1
- #
- # Création de l'interface 802.11 pour le MN (Node 4)
- #
- $ns node-config -wiredRouting OFF \
- -macTrace ON
- set iface1 [$ns node 3.0.1]
- $iface1 set X_ 480.0
- $iface1 set Y_ 1000.0
- $iface1 set Z_ 0.0
- $ns at 0.0 "$iface1 label MN"
- # connexion au BS WiFi
- $iface1 base-station [AddrParams addr2id [$bstation802 node-addr]] ;
- [$iface1 set mac_(0)] set-channel 1
- # traget du Node 5
- $iface1 random-motion 0
- $ns at 0 "$iface1 setdest 1600.0 1000.0 3.0"
- puts "iface1: tcl=$iface1; id=[$iface1 id]; addr=[$iface1 node-addr]"
- #
- # Paramètrage 802.21
- #
- Phy/WirelessPhy set Pt_ 0.025
- Phy/WirelessPhy set RXThresh_ 7.91016e-15 ;
- Phy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]
- set opt(netif) Phy/WirelessPhy/OFDM ;# type de technique d'accès OFDM
- set opt(mac) Mac/802_16
- #
- # création de la BS WiMAX (Node 5)
- #
- $ns node-config -adhocRouting NOAH \
- -llType $opt(ll) \
- -macType $opt(mac) \
- -channel $chan \
- -ifqType $opt(ifq) \
- -ifqLen $opt(ifqlen) \
- -antType $opt(ant) \
- -propType $opt(prop) \
- -phyType $opt(netif) \
- -topoInstance $topo \
- -wiredRouting ON \
- -agentTrace ON \
- -routerTrace OFF \
- -macTrace ON \
- -movementTrace OFF
- set bstation802_16 [$ns node 5.0.0] ;
- $bstation802_16 set X_ 1000
- $bstation802_16 set Y_ 1000
- $bstation802_16 set Z_ 0.0
- $ns at 0.0 "$bstation802_16 color blue"
- $ns at 0.0 "$bstation802_16 label WiMAX_BS(5.0.0)"
- puts "bstation802_16: tcl=$bstation802_16; id=[$bstation802_16 id]; addr=[$bstation802_16 node-addr]"
- set clas [new SDUClassifier/Dest]
- [$bstation802_16 set mac_(0)] add-classifier $clas
- set bs_sched [new WimaxScheduler/BS]
- $bs_sched set-default-modulation OFDM_BPSK_1_2
- [$bstation802_16 set mac_(0)] set-scheduler $bs_sched
- [$bstation802_16 set mac_(0)] set-channel 2
- # attachement de la BS WiMAX au routeur
- $ns duplex-link $bstation802_16 $router 100MBit 15ms DropTail 1000
- #
- # Création de l'interface 802.16 pour le MN (Node 6)
- #
- $ns node-config -wiredRouting OFF \
- -macTrace ON
- set iface2 [$ns node 5.0.1]
- $iface2 base-station [AddrParams addr2id [$bstation802_16 node-addr]] ;#attach mn to basestation
- $iface2 set X_ 480.0
- $iface2 set Y_ 1000.0
- $iface2 set Z_ 0.0
- $iface2 color cyan
- set clas [new SDUClassifier/Dest]
- [$iface2 set mac_(0)] add-classifier $clas
- set ss_sched [new WimaxScheduler/SS]
- [$iface2 set mac_(0)] set-scheduler $ss_sched
- [$iface2 set mac_(0)] set-channel 1
- # tragèt du Node 6
- $iface2 random-motion 0
- $ns at 0 "$iface2 setdest 1600.0 1000.0 3.0"
- puts "iface2: tcl=$iface2; id=[$iface2 id]; addr=[$iface2 node-addr]"
- #
- # Installation des deux interface 802.11 et 802.21 au MN
- #
- $multiFaceNode add-interface-node $iface1
- $multiFaceNode add-interface-node $iface2
- puts "Interfaces bien installes sur le MN"
- #
- # Installation du module MIH sur les différents équipements
- #
- Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set debug_ 1
- set handover [new Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1]
- # pour la BS WiFi
- set nd_bs [$bstation802 install-nd]
- $nd_bs set-router TRUE
- $nd_bs router-lifetime 1800
- set mih_bs [$bstation802 install-mih]
- set tmp_bs [$bstation802 set mac_(0)]
- $tmp_bs mih $mih_bs
- $mih_bs add-mac $tmp_bs
- puts "Installation du module MIH sur la BS WiFi est bien effectue"
- # pour la BS WiMAX
- set nd_bs2 [$bstation802_16 install-nd]
- $nd_bs2 set-router TRUE
- $nd_bs2 router-lifetime 1800
- set mih_bs [$bstation802_16 install-mih]
- set tmp_bs [$bstation802_16 set mac_(0)]
- $tmp_bs mih $mih_bs
- $mih_bs add-mac $tmp_bs
- puts "Installation du module MIH sur la BS WiMAX est bien effectue"
- # pour l'interface 802.11
- set nd_mn [$iface1 install-nd]
- $nd_mn set-ifmanager $handover
- $handover nd_mac $nd_mn [$iface1 set mac_(0)]
- puts "Installation du module MIH sur la l'interface 802.11 est bien effectue"
- # pour l'interface 802.16
- set nd_mn2 [$iface2 install-nd]
- $nd_mn2 set-ifmanager $handover
- $handover nd_mac $nd_mn2 [$iface2 set mac_(0)]
- puts "Installation du module MIH sur la l'interface 802.16 est bien effectue"
- # pour le MN en entier
- $multiFaceNode install-ifmanager $handover
- set mih [$multiFaceNode install-mih]
- $handover connect-mih $mih
- # association des adresses MAC au module MIH
- set tmp2 [$iface1 set mac_(0)]
- $tmp2 mih $mih
- $mih add-mac $tmp2
- set tmp2 [$iface2 set mac_(0)]
- $tmp2 mih $mih
- $mih add-mac $tmp2
- puts "Installation du module MIH sur le MN est bien effectue"
- # pour le routeur
- set nd_router [$router install-nd]
- $nd_router set-router TRUE
- $nd_router router-lifetime 1800
- # commencement du routage
- $ns at 2 "$nd_bs start-ra"
- $ns at 2 "$nd_bs2 start-ra"
- $ns at 1 "$nd_router start-ra"
- puts "Installation du module MIH sur le routeur est bien effectue"
- # pour le CN
- set ifmgmt_cn [$CN install-default-ifmanager]
- puts "Installation du module MIH sur le CN est bien effectue"
- #
- # Création d'un trafic video CBR du MN vers le CN commencant sur l'interface 802.16
- #
- set i 0
- set udpvideo_($i) [new Agent/UDP]
- $udpvideo_($i) set packetSize_ 1240
- set cbrvideo_($i) [new Application/Traffic/CBR]
- $cbrvideo_($i) set packetSize_ 4960
- $cbrvideo_($i) set interval_ 0.1
- $cbrvideo_($i) attach-agent $udpvideo_($i)
- set nullvideo_($i) [new Agent/Null]
- # création des agents
- $ns attach-agent $CN $udpvideo_($i)
- $ns attach-agent $multiFaceNode $nullvideo_($i)
- $handover add-flow $nullvideo_($i) $udpvideo_($i) $iface2 1
- #
- # Commencement de la simulation
- #
- $ns at $traffic_start "$cbrvideo_($i) start"
- $ns at $traffic_stop "$cbrvideo_($i) stop"
- $ns at $simulation_stop "finish"
- puts "La simulation commence : ..."
- $ns run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement