In the code segment given below, each node is configured with single interface and 2 channels. In network layer on demand ad-hoc routing protocol, WCETT (Weight Cumulative Expected Transmission Time protocol) routing protocol is used. It selects the best path between source and destination during route discovery process.
set val(chan) | Channel/WirelessChannel | ; #Channel Type |
set val(prop) | Propagation/TwoRayGround | ; #Radio propagation model |
set val(netif) | Phy/WirelessPhy | ; #Network interface type |
set val(ant) | Antenna/OmniAntenna | ; #Antenna model |
set val(rp) | WCETT | ;#Routing Protocol |
set val(ifq) | Queue/DropTail/PriQueue | ;# interface queue type |
set val(ifqlen) | 50 | ;# max packet in ifq |
set val(mac) | Mac/802_11 | ;# MAC type |
set val(ll) | LL | ;# link layer type |
set val(nn) | 20 | ;# number of mobilenodes |
set val(channum) | 2 | ;# number of channels per radio |
set val(cp) | ./random.tcl | ; # topology traffic file |
set val(stop) | 50 | ;# simulation time |
==================================================================
# Main Program
# ======================================================================
# Initialize Global Variables
set ns_ [new Simulator]
set tracefd [open test.tr w]
$ns_ trace-all $tracefd
# set up topography object
set topo [new Topography]
$topo load_flatgrid 1000 1000
#create nam
set namtrace [open test.nam w]
$ns_ namtrace-all-wireless $namtrace 1000 1000
# Create God
set god_ [create-god $val(nn)]
# configure node
$ns_ node-config -adhocRouting $val(rp) -llType $val(ll) -macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -antType $val(ant) -propType $val(prop) -phyType $val(netif) -topoInstance $topo -agentTrace ON -routerTrace ON -macTrace ON -movementTrace ON
for {set i 0} { $i < $val(channum)} {incr i} {
set chan_($i) [new $val(chan)]
}
for {set i 0} {$i < $val(channum) } {incr i} {
$ns_ add-channel $i $chan_($i)
}
#Configure for channels
$ns_ node-config -channel $chan_(0) -ChannelNum $val(channum)
#$ns_ node-config -ifNum $val(ni)
for {set i 0} {$i < $val(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) set SingleIfMultiChan 1
$node_($i) set recordIfall 1
$node_($i) random-motion 0 ;# disable random motion
}
source $val(cp) ; #source topology and traffic file generated by others