Hello I am having a problem while I am trying to simulate multicast over a wireless network (802.11). The error I get is the following. It would be great if you could let me know what I am doing wrong
The error I get is: ... ns: _o22 new-group 0 -2147483648 -1 cache-miss: can't read "protocols_(-1)": no such variable while executing "$protocols_($iface) upcall $code $source $group $iface" (procedure "_o23" line 9) (mrtObject upcall line 9) invoked from within "$mrtObject_ upcall $code $src $group $iface" (procedure "_o17" line 3) (Node new-group line 3) invoked from within "$node_ new-group $src $group $iface $code" (procedure "_o22" line 3) (Classifier/Multicast new-group line 3) invoked from within "_o22 new-group 1 -2147483648 -1 cache-miss" Thanks! dan miao ------------------------------------------------------------------------------------------ My codes: set val(chan) Channel/WirelessChannel set val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy set val(mac) Mac/802_11 set val(ifq) Queue/DropTail/PriQueue set val(ll) LL set val(ant) Antenna/OmniAntenna set val(ifqlen) 50 set val(nn) 4 set val(rp) AODV set val(x) 500 set val(y) 500 set ns [new Simulator -multicast on] $ns multicast set tracefd [open multicast.tr w] $ns trace-all $tracefd set namtracefd [open multicast.nam w] $ns namtrace-all-wireless $namtracefd $val(x) $val(y) set topo [new Topography] $topo load_flatgrid $val(x) $val(y) create-god $val(nn) $ns node-config -addressType def\ -adhocRouting $val(rp)\ -llType $val(ll)\ -macType $val(mac)\ -ifqType $val(ifq)\ -ifqLen $val(ifqlen)\ -antType $val(ant)\ -propType $val(prop)\ -phyType $val(netif)\ -channelType $val(chan)\ -topoInstance $topo\ -agentTrace ON\ -routerTrace ON\ -macTrace OFF\ -movementTrace ON for {set i 0} {$i<$val(nn)} {incr i} { set n_$i [$ns node] #$n_$i random-motion 0 } $n_0 set X_ 5.0 $n_0 set Y_ 2.0 $n_0 set Z_ 0.0 $n_1 set X_ 390.0 $n_1 set Y_ 385.0 $n_1 set Z_ 0.0 $n_2 set X_ 200.0 $n_2 set Y_ 100.0 $n_2 set Z_ 0.0 $n_3 set X_ 100.0 $n_3 set Y_ 200.0 $n_3 set Z_ 0.0 set group1 [Node allocaddr] #set mproto CtrMcast #DM set CacheMissMode dvmrp #set mproto DM set mrthandle [$ns mrtproto DM {}] set udp0 [new Agent/UDP] $ns attach-agent $n_0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 attach-agent $udp0 set null1 [new Agent/Null] set null2 [new Agent/Null] set null3 [new Agent/Null] $ns attach-agent $n_1 $null1 $ns attach-agent $n_2 $null2 $ns attach-agent $n_3 $null3 $ns connect $udp0 $null1 $ns connect $udp0 $null2 $ns connect $udp0 $null3 $udp0 set dst_addr_ $group1 $udp0 set dst_port_ 0 set rcvr [new Agent/LossMonitor] $ns at 1.20 "$n_1 join-group $rcvr $group1" $ns at 1.25 "$n_2 join-group $rcvr $group1" $ns at 1.26 "$n_3 join-group $rcvr $group1" $ns at 1.80 "$n_3 leave-group $rcvr $group1" $ns at 1.85 "$n_2 leave-group $rcvr $group1" $ns at 1.90 "$n_3 leave-group $rcvr $group1" $ns at 1.00 "$cbr0 start" $ns at 2.0 "finish" proc finish {} { global ns $ns flush-trace puts "running nam..." exec nam out.nam & exit 0 } $ns run