Re: [ns] Strange behaviour of TCPSink instvar bytes_
- Hi, I do not think that there is a problem with the variables per se, but with the way that the TCL interpreter handles the command substitutions. For example, when you invoke the command directly, i.e. with no wrapping procedure, the NS scheduler schedules the event to occur at time 1.0, but the event itself is actually to puts stdout \Rx bytes (directly): 0\. What happens, is that when the interpreter comes across this command it SUBSTITUTES the part [$tcp1 set bytes_], with the actual value at that point (which is always 0) and schedules the command above to execute at point 1.0, which includes only the printout and nothing more. On the other hand, when you invoke it using a wrapper proc, the interpreter does not do any substitutions at the point of scheduling (i.e. $ns at 1.0 testproc) but simply schedules the procedure to execute at point 1.0, which in turn will substitute the correct value of bytes_ at time 1.0. Any substitutions in this case are deliberately left to the procedure from the interpreter. This way of behavior, is for any command - scheduling - want - to - substitute - with value processes. :-) I hope that I have helped. -Fk On 6/14/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: -- Forwarded message -- From: Georg Piewald [EMAIL PROTECTED] To: ns-users@ISI.EDU Date: Wed, 13 Jun 2007 11:35:30 +0200 Subject: [ns] Strange behaviour of TCPSink instvar bytes_ Hi everybody, I experienced a very odd problem. I want to output the number of bytes received by a TCPSink agent at a specified time. This can be read by the instance variable $bytes_. Now if I call a procedure at the required point of time, which outputs the nr of bytes, everything works fine. Like this: ... proc testproc {} { global tcp1 puts stdout Rx bytes (within testproc): [$tcp1 set bytes_] } ... $ns at 1.0 testproc ... But if I want to output this value directly (without a wrapping procedure, the output is always 0! Like that: $ns at 1.0 puts stdout \Rx bytes (directly): [$tcp1 set bytes_]\ How can that be? I use ns-2.31. The complete code of a minimal example to reproduce the problem is here: # Example # set ns [new Simulator] proc testproc {} { global tcp1 puts stdout Rx bytes (within testproc): [$tcp1 set bytes_] } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1mb 50ms DropTail set tcp0 [new Agent/TCP] set tcp1 [new Agent/TCPSink] $ns attach-agent $n0 $tcp0 $ns attach-agent $n1 $tcp1 $ns connect $tcp0 $tcp1 set ftp0 [new Application/FTP] $ftp0 attach-agent $tcp0 $ns at 0.1 $ftp0 start $ns at 1.0 testproc $ns at 1.0 puts stdout \Rx bytes (directly): [$tcp1 set bytes_]\ $ns at 1.5 $ftp0 stop $ns at 1.6 exit 0 $ns run /Example # Output: % ns min_ex.tcl Received bytes (within testproc): 66600 Received bytes (directly): 0 Thanks for any hint! Georg -- Filippos N Kolovos Software Systems Analyst Engineer M.Sc. (Eng.) in Data Communications Automation Networking Department University of Macedonia Library Egnatia 156, P.O.Box 1591 540 06 Thessaloniki, Greece E-Mail: [EMAIL PROTECTED], [EMAIL PROTECTED] --
[ns] segmentation fault in strlen()
Hello, all: When I run ns-2.29.3 with AODV-UU-0.8 ( not aodv), which has segmentation fault at the end of transmission. For example, I set up 60 nodes with 600 transmission, it will be broken with segmentation error. I used gdb, and it shows the phrase of strlen() . I tested all of strlen() functions cross all of files containing this function in each directory, but all of printed values show normal. Can anyone give kindly help? I haven't slept or eaten for almost 2 days, which I got stucked by this fault. Thanks in advance. Celina
Re: [ns] 802.11e TKN, little error. i give a nice website in return
On Jun 14, 2007, at 6:43 AM, Sim Tec wrote: Hello NS Users, Sven, Matthias, hilal, and Pepe I managed to get rid of the dh_da dh_sa problems that I mentioned in the previous post. BUT the rest of the make errors remain. I am worried now. Because this makes me think that I need to use a different version of NS, because Pete Barbe had a similar problem as seen at http://mailman.isi.edu/pipermail/ns-users/2004-December/ 046055.html Please tell me if I have to switch versions of NS. ??? Hi, the EDCA model was released for ns-2.28. Just download this version of ns-2 (http://www.isi.edu/nsnam/dist/ns-allinone-2.28.tar.gz) and install it. Afterwards, you can apply the EDCA patch. Best regards, Sven I do not know how to switch versions of NS. This is because I am new to NS. Can someone please give me quick advice on how to switch versions. Is their a quick way??? Thank you very much! Here is my Make problem: In file included from ./common/mobilenode.h:63, from mac/802_11e/mac-802_11e.cc:7: ./mobile/gridkeeper.h:17:1: warning: this is the location of the previous definition mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::transmit(Packet*, double)': mac/802_11e/mac-802_11e.cc:72: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:72: error: (Each undeclared identifier is reported only once for each function it appears in.) mac/802_11e/mac-802_11e.cc: At global scope: mac/802_11e/mac-802_11e.cc:112: error: `EDCF_MMIB' must be initialized by constructor, not by `{...}' mac/802_11e/mac-802_11e.cc: In constructor `Mac802_11e::Mac802_11e (EDCF_PHY_MIB*, MAC_MIB*)': mac/802_11e/mac-802_11e.cc:182: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::command(int, const char* const*)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:240: error: within this context ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:247: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::tx_resume()': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:502: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendHandler()': mac/802_11e/mac-802_11e.cc:590: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::send_timer()': mac/802_11e/mac-802_11e.cc:653: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktCTRL(int)': mac/802_11e/mac-802_11e.cc:728: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:733: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktRTS(int)': mac/802_11e/mac-802_11e.cc:777: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:780: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktTx(int)': mac/802_11e/mac-802_11e.cc:820: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendRTS(int, int)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:854: error: within this context mac/802_11e/mac-802_11e.cc:863: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:890: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:894: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendCTS(int, int, double)': mac/802_11e/mac-802_11e.cc:912: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendACK(int, int)': mac/802_11e/mac-802_11e.cc:956: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendDATA(int, Packet*)': mac/802_11e/mac-802_11e.cc:997: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:1020: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::RetransmitRTS(int)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:1047: error: within this context mac/802_11e/mac-802_11e.cc:1058: error: `ETHER_HDR_LEN11' undeclared (first use this function)
Re: [ns] Strange behaviour of TCPSink instvar bytes_
Ok, this explains it - thanks a lot for your answer! -Georg- Filippos Kolovos wrote: - Hi, I do not think that there is a problem with the variables per se, but with the way that the TCL interpreter handles the command substitutions. For example, when you invoke the command directly, i.e. with no wrapping procedure, the NS scheduler schedules the event to occur at time 1.0, but the event itself is actually to puts stdout \Rx bytes (directly): 0\. What happens, is that when the interpreter comes across this command it SUBSTITUTES the part [$tcp1 set bytes_], with the actual value at that point (which is always 0) and schedules the command above to execute at point 1.0, which includes only the printout and nothing more. On the other hand, when you invoke it using a wrapper proc, the interpreter does not do any substitutions at the point of scheduling (i.e. $ns at 1.0 testproc) but simply schedules the procedure to execute at point 1.0, which in turn will substitute the correct value of bytes_ at time 1.0. Any substitutions in this case are deliberately left to the procedure from the interpreter. This way of behavior, is for any command - scheduling - want - to - substitute - with value processes. :-) I hope that I have helped. -Fk
[ns] Header packet size
Hi, I defined a new routing protocol for wireless sensor networks, and I implemented a new packets. I have the problem in the initialisation of header packet sizes. Can you give me the technique used to calculate the header packet size? Best Regards. - Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail
Re: [ns] Nakagami fading for ns
On 6/14/07, Ashwin Rao [EMAIL PROTECTED] wrote: Hi, I would like to know if the Nakagami fading is available in ns in the default build. Also does any one know of a patch that incorporates this model in ns? If no such patch is freely available are there any tutorials/steps to be followed to add a channel model like nakagami model in ns, just like the ones available for adding new agents. Regards, Ashwin
[ns] FHMIP and Ad-hoc routing protocols on NS-2.31
Hi All i patched fhmip patch on ns-2.31, before patching ad-hoc routing protocol were working but after patching following message is coming [EMAIL PROTECTED]:~/ns-2.31 ./ns ~/experiment/wrls-dsdv.tcl num_nodes is set 3 warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl INITIALIZE THE LIST xListHead routes not yet computed routes not yet computed routes not yet computed routes not yet computed routes not yet computed routes not yet computed channel.cc:sendUp - Calc highestAntennaZ_ and distCST_ highestAntennaZ_ = 1.5, distCST_ = 129.2 SORTING LISTS ...DONE! end simulation None of the ad-hoc routing protocol are working correctly. With all d-hoc routing protocol same message route not yet computed is coming, not even OLSR which i added to ns-2.31 after patching your given fhmip patch. I am attaching tcl example files which were producing correct result before patching fhmip patch. fhmip patch for ns2.31 http://tagus.inesc-id.pt/~pestrela/ns2/files/ns2.31_fhmip.patch.gz and olsr patch for ns-2.31 http://masimum.dif.um.es/?Software:UM-OLSR how to solve this problem???, thanks in advance thanks and regards, pankaj
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Thanks , but I am a new user of NS. And I dont know how to switch versions. Q1. Do I have to delete all my 2.30 files??? Q2.my ns-allinone-2.30 folder is in my C:\cygwin\home\Simulator folder. Do I need to delete it??? Q3. please could you tell me where the documentation about changing NS versions is Q4. Is there a way to reverse changes, for instance by system restore? sincere thanks guys On 6/14/07, Sven Wiethoelter [EMAIL PROTECTED] wrote: On Jun 14, 2007, at 6:43 AM, Sim Tec wrote: Hello NS Users, Sven, Matthias, hilal, and Pepe I managed to get rid of the dh_da dh_sa problems that I mentioned in the previous post. BUT the rest of the make errors remain. I am worried now. Because this makes me think that I need to use a different version of NS, because Pete Barbe had a similar problem as seen at http://mailman.isi.edu/pipermail/ns-users/2004-December/ 046055.html Please tell me if I have to switch versions of NS. ??? Hi, the EDCA model was released for ns-2.28. Just download this version of ns-2 (http://www.isi.edu/nsnam/dist/ns-allinone-2.28.tar.gz) and install it. Afterwards, you can apply the EDCA patch. Best regards, Sven I do not know how to switch versions of NS. This is because I am new to NS. Can someone please give me quick advice on how to switch versions. Is their a quick way??? Thank you very much! Here is my Make problem: In file included from ./common/mobilenode.h:63, from mac/802_11e/mac-802_11e.cc:7: ./mobile/gridkeeper.h:17:1: warning: this is the location of the previous definition mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::transmit(Packet*, double)': mac/802_11e/mac-802_11e.cc:72: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:72: error: (Each undeclared identifier is reported only once for each function it appears in.) mac/802_11e/mac-802_11e.cc: At global scope: mac/802_11e/mac-802_11e.cc:112: error: `EDCF_MMIB' must be initialized by constructor, not by `{...}' mac/802_11e/mac-802_11e.cc: In constructor `Mac802_11e::Mac802_11e (EDCF_PHY_MIB*, MAC_MIB*)': mac/802_11e/mac-802_11e.cc:182: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::command(int, const char* const*)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:240: error: within this context ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:247: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::tx_resume()': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:502: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendHandler()': mac/802_11e/mac-802_11e.cc:590: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::send_timer()': mac/802_11e/mac-802_11e.cc:653: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktCTRL(int)': mac/802_11e/mac-802_11e.cc:728: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:733: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktRTS(int)': mac/802_11e/mac-802_11e.cc:777: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:780: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktTx(int)': mac/802_11e/mac-802_11e.cc:820: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendRTS(int, int)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:854: error: within this context mac/802_11e/mac-802_11e.cc:863: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:890: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:894: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendCTS(int, int, double)': mac/802_11e/mac-802_11e.cc:912: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendACK(int, int)': mac/802_11e/mac-802_11e.cc:956: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendDATA(int, Packet*)': mac/802_11e/mac-802_11e.cc:997: error:
[ns] input a file in a packet
Hello ns-users! I really need your help and experience here. I want to send a text-file (simple text) as payload in a packet. Can it be done? What should i do? Should i determine new AppData such us MyData: public AppData or is there a way just to put the text-file in the PacketData? So far i just managed to put just a simple string. I determined a simple MyApp:public Application and determine a send(int nbytes,AppData* data) function in theUDP agent in order to send my string. But can i send a file? and if so, could you please give me a hint? I really need your help! I spent days on this and still can't figure it out... Thank you!
[ns] Segmentation fault in PacketQueue/Semantic
Dear everyone, I tried to do simulation with the semantic queue in ns2.26. I changed nothing in ns2 original code. I set PacketQueue/Semantic in the tcl script, but got the segmentation fault. By using gdb, i got the following report for error: Program received signal SIGSEGV, Segmentation fault. 0x08054564 in Scheduler::dispatch(Event*, double) () (gdb) bt #0 0x08054564 in Scheduler::dispatch(Event*, double) () #1 0x080544c9 in Scheduler::run() () #2 0x08054665 in Scheduler::command(int, char const* const*) () #3 0x081f28ea in TclClass::dispatch_cmd(void*, Tcl_Interp*, int, char**) () #4 0x081f63e2 in OTclDispatch (cd=0x855c080, in=0x83b2e90, argc=3, argv=0xbfffdf00) at otcl.c:420 #5 0x081fabeb in TclInvokeStringCommand () #6 0x08214d72 in TclExecuteByteCode () #7 0x081fb599 in Tcl_EvalObjEx () #8 0x08214f60 in TclExecuteByteCode () #9 0x081fb599 in Tcl_EvalObjEx () #10 0x082366e5 in TclObjInterpProc () #11 0x08236294 in TclProcInterpProc () #12 0x081f657e in OTclDispatch (cd=0x855c080, in=0x83b2e90, argc=2, argv=0xbfffe750) at otcl.c:463 #13 0x081fabeb in TclInvokeStringCommand () #14 0x08214d72 in TclExecuteByteCode () #15 0x081fb599 in Tcl_EvalObjEx () #16 0x082366e5 in TclObjInterpProc () #17 0x08236294 in TclProcInterpProc () #18 0x081f63e2 in OTclDispatch (cd=0x8559590, in=0x83b2e90, argc=2, argv=0xbfffee20) at otcl.c:420 #19 0x081fabeb in TclInvokeStringCommand () #20 0x0822fde8 in EvalObjv () #21 0x08230477 in Tcl_EvalEx () #22 0x08227ad2 in Tcl_EvalFile () #23 0x0822a5b0 in Tcl_Main () #24 0x0804e6ab in main () #25 0x42015967 in __libc_start_main () from /lib/i686/libc.so.6 Could anybody tell me where's the segmentation fault? Your help is highly appreciated, Min
[ns] [Monitoring in a wireless network]
Hello; I am trying to use monitor for my wireless simulations. In fact, I need a method to exect simulations more rapidely. I know that in ns, monitor how it is defined now, dosent work for a wireless communication because it attachs the monitor to a link and there are not physical links in a wireless communication. A possible solution could be to attach monitor to a queue directy, but I dont know where I should chang exactly. Thanks for your help If you have had the same problem before or you have solved the problem of the long simulation time with another approch, Regards, Zeinab MOVAHEDI Shape Yahoo! in your own image. Join our Network Research Panel today! http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7
[ns] The average Jitter calculated in Iperf
Hi, Sorry this is not a specific ns post, but if someone knows:) In the RFC 1889 the instantaneous jitter is given by: J=J+(|(Rj-Sj)-(Ri-Si)|-J)/16 I'm running a simulator and i have the packets sent and received time. The problem is that i don't know how iperf gives the final result, so i can't do the same and compare the real results with the simulator results. while iterating, if i do: Jsum=J+Jsum, and then J_average=Jsum/(num_packets-1) the results wouldn't be the same as iperf because in a extract: [EMAIL PROTECTED]:~$ iperf -c 192.168.101.11 -u -b 500k -t 30 [ 3] 0.0-10.0 sec479 KBytes393 Kbits/sec 9.184 ms0/ 334 (0%) [ 3] 10.0-20.0 sec471 KBytes386 Kbits/sec 11.203 ms 83/ 411 (20%) [ 3] 20.0-30.0 sec468 KBytes383 Kbits/sec 10.314 ms 99/ 425 (23%) [ 3] 0.0-32.5 sec 1.50 MBytes388 Kbits/sec 11.123 ms 205/ 1277 (16%) the value 11.123 ms is not the average of the another 3 above. thanks advance, Tiago Junqueira Student
[ns] Modeling nodes as bottlenecks (CPU time)
Hi all, Searching the NS archives did not shed much light on this topic: is there a recommended procedure to model available computational resources (CPU time) within NS nodes? I'm just wondering how one could model the following scenario in NS: a node runs several distinct Agents. All Agents must provide some feedback on the consumed CPU time and a node control unit delays incoming and/or outgoing packets accordingly on congestion (meaning one queue+delay object upstream and one downstream on any link). From an architectural point of view it's not clear to me how Agents (the ultimate source to decide on required CPU processing time for an application-specific packet that is sent or received) can change the behavior of a classifier within the node structure or, even worse, control a queue/delay object that is located upstreams or downstreams. Any ideas/hints where to start searching? Are there any NS examples that implement such behavior? Do you know of any work in this area? thanks in advance, br Joachim
[ns] install problems
I want to install ns-allinone-2.1b7a.tar.gz because I need to use bluehoc2.0-src.tar.tar later. I'm working in bluetooth simulation in my University. When I use /.install script, it show the following error: make: *** [tk3d.o] Error 1 tk8.3.2 make failed! Exiting ... For problems with Tcl/Tk see http://www.scriptics.com I use suse 10. Can you help me, please? What I need? Thanks.
Re: [ns] install problems
Hi, What is the error message if you only install tk? Please give more information about the error. -- Wenhua On 6/14/07, Ana Diedrichs [EMAIL PROTECTED] wrote: I want to install ns-allinone-2.1b7a.tar.gz because I need to use bluehoc2.0-src.tar.tar later. I'm working in bluetooth simulation in my University. When I use /.install script, it show the following error: make: *** [tk3d.o] Error 1 tk8.3.2 make failed! Exiting ... For problems with Tcl/Tk see http://www.scriptics.com I use suse 10. Can you help me, please? What I need? Thanks.