[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] RTP in NS: how to setup several independant sessions
Hi,
I've been working on the problem below for several days and have not yet
found a solution. However, I have received mails from a few other people
who have encountered the same problem. The general consensus seems to be
that (1) is not possible, and (2) appears to be the manifestation of a
bug that has been around for at least 6 months. We were wondering the
following:
Is this a known bug in the rtp code? If not, is there a central
bug-tracking location where I could log this bug? If so, has there been
any luck in implementing a fix for it?
Any help would be very greatly appreciated. Thank you,
Matt
On Sat, 19 Aug 2000, Matthew Caesar wrote:
>
> Hi,
>
> I want to run some simple simulations of RTP. I'm having some problems. I
> want to set up this topology:
>
> 0
> |
> |
> 2------1------4
> |
> |
> 3
>
> And set up independent RTP sessions between (0,2) and between (3,4). I
> want node 1 to be a router that routes only at the IP layer. I
> can't get this to work (eventually I want to move to much larger numbers
> of independent sessions).
>
> My questions (I hope they are not too simple):
>
> 1. Is it possible to set up RTP sessions without turning on multicast? I
> tried this but got this error:
> error: can't transmit before joining group!
>
> 2. I tried making a separate group for each session, but the simulation
> doesn't act right. In the script below I start nodes 0 and 2 at time 1.4,
> and nodes 3 and 4 at time 2.4. However, at time 1.6, node 3 begins a
> session with node 0. Since both nodes are in different groups, I don't
> think they should be communicating.
>
> My tcl script is below (it is very similar to sample-rtp.tcl. Any help
> would be appreciated very much.
>
> Thanks,
> Matt
>
> **********************
>
>
> set ns [new Simulator -multicast on]
>
> set n0 [$ns node]
> set n1 [$ns node]
> set n2 [$ns node]
> set n3 [$ns node]
> set n4 [$ns node]
>
> $ns color 1 red
> # prune/graft packets
> $ns color 30 purple
> $ns color 31 bisque
> # RTCP reports
> $ns color 32 green
>
> set f [open rtp-out.tr w]
> $ns trace-all $f
> set nf [open out.nam w]
> $ns namtrace-all $nf
>
> $ns duplex-link $n0 $n1 1.5Mb 10ms DropTail
> $ns duplex-link $n1 $n2 1.5Mb 10ms DropTail
> $ns duplex-link $n1 $n3 1.5Mb 10ms DropTail
> $ns duplex-link $n1 $n4 1.5Mb 10ms DropTail
>
> $ns duplex-link-op $n0 $n1 orient right
> $ns duplex-link-op $n1 $n2 orient right-up
> $ns duplex-link-op $n1 $n3 orient right-down
> $ns duplex-link-op $n0 $n1 queuePos 0.5
>
> set mproto DM
> set mrthandle [$ns mrtproto $mproto {}]
> set group1 [Node allocaddr]
> set group2 [Node allocaddr]
>
> set s0 [new Session/RTP]
> set s2 [new Session/RTP]
> set s3 [new Session/RTP]
> set s4 [new Session/RTP]
>
> $s0 session_bw 400kb/s
> $s2 session_bw 400kb/s
> $s3 session_bw 400kb/s
> $s4 session_bw 400kb/s
>
> $s0 attach-node $n0
> $s2 attach-node $n2
> $s3 attach-node $n3
> $s4 attach-node $n4
>
> $ns at 1.4 "$s0 join-group $group1"
> $ns at 1.5 "$s0 start"
> $ns at 1.6 "$s0 transmit 400kb/s"
>
> $ns at 2.4 "$s2 join-group $group1"
> $ns at 2.5 "$s2 start"
> $ns at 2.6 "$s2 transmit 400kb/s"
>
> $ns at 1.4 "$s3 join-group $group2"
> $ns at 1.5 "$s3 start"
> $ns at 1.6 "$s3 transmit 400kb/s"
>
> $ns at 2.4 "$s4 join-group $group2"
> $ns at 2.5 "$s4 start"
> $ns at 2.6 "$s4 transmit 400kb/s"
>
> $ns at 4.0 "finish"
>
> proc finish {} {
> global ns f nf
> $ns flush-trace
> close $f
> close $nf
>
> puts "running nam..."
> exec nam out.nam &
> exit 0
> }
>
> $ns run
>
>