[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: HELP: Multicast router link max?
Jeff,
I ran out script on the most recent snapshot and it went (almost)
smoothly. Please download the current snapshot.
A bit of a caution. The next version of NS will support the 32-bit
addressing. As a result, node address and port address will no longer
be stored in the same variable. the variable dst_ was deleted and
replaced by dst_addr_ and dst_port_. I have overloaded the set
operator for backward compatibility.
Also use [Node allocaddr] to get the next mcast address. Assigning
0x8000 is not correct.
Nader
Jeff> Hi. Is there some limitations to the number of links on a
Jeff> multicast router? In the script below, if I connect 128 nodes
Jeff> with receiver sinks to the source node, I get the following
Jeff> error:
Jeff>
Jeff> ns: _o2817 recv 255 0: no value given for parameter "m" to "_o2817"
Jeff> (Agent/Mcast/Control recv line 1)
Jeff> invoked from within
Jeff> "_o2817 recv 255 0"
Jeff>
Jeff> If I change it to 127 nodes, it works fine. (Just change j
Jeff> assignment in the script.) If I change the routing scheme to
Jeff> CtrMcast, I get a core dump. Any ideas on the problem? I am
Jeff> running the allinone release with ns-2.1b5 under Linux (RH 5.2).
Jeff>
Jeff> Thanks in advance for any and all help,
Jeff> Jeff
Jeff>
Jeff> PS I even tried connecting only 127 nodes to the source node and
Jeff> the 128th node to the first of the 127 nodes with the same
Jeff> results.
Jeff>
Jeff> set ns [new Simulator -multicast on]
Jeff>
Jeff> $ns set-address-format expanded
Jeff>
Jeff> # Allocate a few nodes
Jeff> set n0 [$ns node]
Jeff> set j 128 # To make this script work, change this to 127 and
Jeff> comment out
Jeff> # the "set-address-format ..." line above.
Jeff> puts "creating nodes ..."
Jeff> for {set i 1} {$i <= $j} {incr i}
Jeff>
Jeff> set n($i) [$ns node]
Jeff> }
Jeff>
Jeff> puts "creating links .."
Jeff> for {set i 1} {$i <= $j} {incr i}
Jeff>
Jeff> $ns duplex-link $n0 $n($i) 5Mb 2ms DropTail
Jeff> }
Jeff>
Jeff> #set mproto CtrMcast
Jeff> #set mrthandle [$ns mrtproto $mproto {}]
Jeff> set mproto DM
Jeff> set mrthandle [$ns mrtproto $mproto {}]
Jeff>
Jeff> set POLLSnd [new Agent/UDP]
Jeff> $ns attach-agent $n0 $POLLSnd
Jeff> set POLLSrc [new Application/Traffic/CBR]
Jeff> $POLLSrc attach-agent $POLLSnd
Jeff>
Jeff> puts "creating receivers..."
Jeff> for {set i 1} {$i <= $j} {incr i} {
Jeff> set POLLRcv($i) [new Agent/Null]
Jeff> $ns attach-agent $n($i) $POLLRcv($i)
Jeff> $ns at 0.2 "$n($i) join-group $POLLRcv($i) 0x8000"
Jeff> }
Jeff>
Jeff> $POLLSnd set dst_ 0x8000
Jeff>
Jeff> $ns at 0.3 "$POLLSrc start"
Jeff>
Jeff> $ns at 10 "exit"
Jeff>
Jeff> $ns run
Jeff>
Jeff>