Hello,

2009/10/27 Basim Javed <[email protected]>

> hello Urlan
>
> 1.
> Could u plz explain the purpose of your procedure? I understand the
> declaration and return value, but I wonder if ll_  is some special variable,
> and not user defined, so that it returns a pointer to the link layer of the
> self node... then why do we need to pass the parameter of node
> number...because who so ever will call getLL will have the pointer of its
> own link layer...well for getting link layer of other nodes, then its good
> to parameterise getLL?
>
>

Take a looking in ns2 code, I saw that ns2 is attached using objects. The
directory "../tcl/lib" has some implementations and has the function to
attached all objects.

The pointer returned of this procedure belongs to the object created in
".../tcl/lib". So, getLL returns the pointer to LL object.


> ALSO: still I am not sure what is the meaning of:
> set ll_src_ [$node_(0) getLL 0]
>
>

I don't know what the last parameter does. I have to make some tests to tell
you.


> 2.
> Do you think ftp can be run over udp?
>
>

FTP needs to have stream delivery service that guarantees delivery of a data
stream sent from one host to another without duplication or losing data. So,
TCP works with that, not UDP.


> THANKS
>
> regards
> Basim
>
>
> Node/MobileNode instproc getLL { param0} {
>    $self instvar ll_
>    return $ll_($param0)
> }
> Call this procedure with the command:
> set ll_src_ [$node_(0) getLL 0]
>
> On Mon, Oct 26, 2009 at 8:44 PM, Urlan Salgado de Barros <
> [email protected]> wrote:
>
>>
>> Hi,
>>
>> Are you trying to attach ftp with udp? FTP creates two TCP connections,
>> one
>> for sends data and one for sends commands.
>> Do you want to use udp or tcp?
>>
>> If you consider udp, do this:
>>
>> Remove the following code:
>> set ftp [new Application/FTP]
>> $ftp attach-agent $udp_
>> $ns at 10.0 "$ftp start"
>>
>> And initialize the exponential traffic, for example:
>>   $ns_ at 2.0 "$exp_ $opt(start_traffic)"
>>   $ns_ at 2.0 "$exp_ $opt(stop_traffic)"
>>
>> Seeya.
>>
>> Urlan
>>
>> 2009/10/26 Mutiullah Qureshi <[email protected]>
>>
>> > Thanks Urlan..
>> > This time I created the said routine and get this:
>> >
>> > num_nodes is set 3
>> > INITIALIZE THE LIST xListHead
>> > Error:  sendmsg() for UDP should not be -1
>> > SORTING LISTS ...DONE!
>> > end simulation
>> >
>> >
>> > ------------------------------
>> > *From:* Urlan Salgado de Barros <[email protected]>
>> > *To:* Mutiullah Qureshi <[email protected]>
>> > *Cc:* NS-USERS Mailing List <[email protected]>
>> > *Sent:* Mon, October 26, 2009 8:52:20 PM
>> > *Subject:* Re: [ns] Cross-Layering script is not running.
>> >
>> > Hello Mutiullah Qureshi,
>> >
>> > You need to create getLL procedure.
>> >
>> > Node/MobileNode instproc getLL { param0} {
>> >     $self instvar ll_
>> >     return $ll_($param0)
>> > }
>> >
>> > Call this procedure with the command:
>> > set ll_src_ [$node_(0) getLL 0]
>> >
>> > Urlan
>> >
>> > 2009/10/26 Mutiullah Qureshi <[email protected]>
>> >
>> >>
>> >> Hello.
>> >> Please consider the following script. I have written it for
>> demonstrating
>> >> cross-layering:
>> >>
>> >> # Define options
>> >> 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(mac)            Mac/802_11                 ;# MAC type
>> >> set val(ifq)            Queue/DropTail/PriQueue    ;# interface queue
>> type
>> >> set val(ll)             LL                         ;# link layer type
>> >> set val(ant)            Antenna/OmniAntenna        ;# antenna model
>> >> set val(ifqlen)         50                         ;# max packet in ifq
>> >> set val(nn)             3                          ;# number of
>> >> mobilenodes
>> >> set val(rp)             AODV                       ;# routing protocol
>> >> set val(x)              500                  ;# X dimension of
>> topography
>> >> set val(y)              400                  ;# Y dimension of
>> topography
>> >> set val(stop)        150               ;# time of simulation end
>> >>
>> >> set ns          [new Simulator]
>> >> set tracefd       [open cros_ex1_tr.tr w]
>> >> set namtrace      [open cros_ex1_nam.nam w]
>> >>
>> >> $ns trace-all $tracefd
>> >> $ns namtrace-all-wireless $namtrace $val(x) $val(y)
>> >>
>> >> # set up topography object
>> >> set topo       [new Topography]
>> >>
>> >> $topo load_flatgrid $val(x) $val(y)
>> >>
>> >> create-god $val(nn)
>> >>
>> >> #
>> >> #  Create nn mobilenodes [$val(nn)] and attach them to the channel.
>> >> #
>> >>
>> >> set chan_1_ [new $val(chan)]
>> >>
>> >> # configure the nodes
>> >>        $ns node-config -adhocRouting $val(rp) \
>> >>             -llType $val(ll) \
>> >>             -macType $val(mac) \
>> >>             -channel $chan_1_ \
>> >>             -ifqType $val(ifq) \
>> >>             -ifqLen $val(ifqlen) \
>> >>             -antType $val(ant) \
>> >>             -propType $val(prop) \
>> >>             -phyType $val(netif) \
>> >>             -topoInstance $topo \
>> >>             -agentTrace ON \
>> >>             -routerTrace ON \
>> >>             -macTrace OFF \
>> >>             -movementTrace ON \
>> >>
>> >>
>> >>    for {set i 0} {$i < $val(nn) } { incr i } {
>> >>        set node_($i) [$ns node]
>> >>    }
>> >>
>> >> # Provide initial location of mobilenodes
>> >> $node_(0) set X_ 5.0
>> >> $node_(0) set Y_ 5.0
>> >> $node_(0) set Z_ 0.0
>> >>
>> >> $node_(1) set X_ 490.0
>> >> $node_(1) set Y_ 285.0
>> >> $node_(1) set Z_ 0.0
>> >>
>> >> $node_(2) set X_ 150.0
>> >> $node_(2) set Y_ 240.0
>> >> $node_(2) set Z_ 0.0
>> >>
>> >> # Generation of movements
>> >> $ns at 10.0 "$node_(0) setdest 250.0 250.0 3.0"
>> >> $ns at 15.0 "$node_(1) setdest 45.0 285.0 5.0"
>> >> $ns at 110.0 "$node_(0) setdest 480.0 300.0 5.0"
>> >>
>> >> set udp_ [new Agent/UDP]
>> >> $ns attach-agent $node_(0) $udp_
>> >>
>> >> set null [new Agent/Null]
>> >> $ns attach-agent $node_(1) $null
>> >>
>> >> set exp_ [new Application/Traffic/Exponential]
>> >>
>> >> $exp_ set burst_time_ 0.01ms
>> >> $exp_ set idle_time_ 0.04ms
>> >> $exp_ set rate_ 1.5Mbps
>> >> $exp_ attach-agent $udp_
>> >>
>> >> $exp_ attach-agent $udp_
>> >> $ns connect $udp_ $null
>> >>
>> >> set ll_src_ [$node_(0) getLL 0]
>> >> $udp_ target $ll_src_
>> >>
>> >> set ftp [new Application/FTP]
>> >> $ftp attach-agent $udp_
>> >> $ns at 10.0 "$ftp start"
>> >>
>> >> # Define node initial position in nam
>> >> for {set i 0} {$i < $val(nn)} { incr i } {
>> >> # 30 defines the node size for nam
>> >> $ns initial_node_pos $node_($i) 30
>> >> }
>> >>
>> >> # Telling nodes when the simulation ends
>> >> for {set i 0} {$i < $val(nn) } { incr i } {
>> >>    $ns at $val(stop) "$node_($i) reset";
>> >> }
>> >>
>> >> # ending nam and the simulation
>> >> $ns at $val(stop) "$ns nam-end-wireless $val(stop)"
>> >> $ns at $val(stop) "stop"
>> >> $ns at 150.01 "puts \"end simulation\" ; $ns halt"
>> >> proc stop {} {
>> >>    global ns tracefd namtrace
>> >>    $ns flush-trace
>> >>    close $tracefd
>> >>    close $namtrace
>> >> }
>> >>
>> >> $ns run
>> >>
>> >>
>> >> But this is the output:
>> >>
>> >> num_nodes is set 3
>> >> INITIALIZE THE LIST xListHead
>> >>
>> >>    (_o14 cmd line 1)
>> >>    invoked from within
>> >> "_o14 cmd getLL 0"
>> >>    invoked from within
>> >> "catch "$self cmd $args" ret"
>> >>    invoked from within
>> >> "if [catch "$self cmd $args" ret] {
>> >> set cls [$self info class]
>> >> global errorInfo
>> >> set savedInfo $errorInfo
>> >> error "error when calling class $cls: $args" $..."
>> >>    (procedure "_o14" line 2)
>> >>    (SplitObject unknown line 2)
>> >>    invoked from within
>> >> "$node_(0) getLL 0"
>> >>    invoked from within
>> >> "set ll_src_ [$node_(0) getLL 0]"
>> >>    (file "cros_ex1.tcl" line 96)
>> >>
>> >> I have read5th chapter of
>> >> "Introduction to Network Simulator NS2", that explains the Connector
>> >> class
>> >> [
>> >>
>> http://books.google.com/books?id=cD69He_oU60C&pg=PP1&dq=Introduction+to+Network+Simulator+NS2#v=onepage&q=&f=false
>> ]
>> >> and also got help from Urlan [
>> >> http://mailman.isi.edu/pipermail/ns-users/2009-October/066621.html]
>> >>
>> >> Please someone point out the mistake(s)  or provide me with  example
>> >> script of your own.
>> >> Thanks in advance.
>> >>
>> >>
>> >>
>> >>
>> >>
>> >
>> >
>>
>
>

Reply via email to