Re: [ns] Simulating an embedded ad-hoc wireless protocol
Daniel, I had some issues with depcomp and libtool, but I think I got around it. Now I'm getting a number of errors during make. I've included the output of make up to the first set of errors (the rest are similar): $ make Making all in libltdl make[1]: Entering directory `/usr/ns-allinone-2.29/ns-2.28/gea/libltdl' make all-am make[2]: Entering directory `/usr/ns-allinone-2.29/ns-2.28/gea/libltdl' make[2]: Leaving directory `/usr/ns-allinone-2.29/ns-2.28/gea/libltdl' make[1]: Leaving directory `/usr/ns-allinone-2.29/ns-2.28/gea/libltdl' Making all in src make[1]: Entering directory `/usr/ns-allinone-2.29/ns-2.28/gea/src' Making all in . make[2]: Entering directory `/usr/ns-allinone-2.29/ns-2.28/gea/src' if /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../include/gea -DGEA_POSIX -Werror -Wall -I../include -g -ggdb3 -MT libgea_posix_la-EventHandler.lo -MD -MP -MF .deps/libgea_posix_la-EventHandler.Tpo -c -o libgea_posix_la-EventHandler.lo `test -f 'EventHandler.cc' || echo './'`EventHandler.cc; \ then mv -f .deps/libgea_posix_la-EventHandler.Tpo .deps/libgea_posix_la-EventHandler.Plo; else rm -f .deps/libgea_posix_la-EventHandler.Tpo; exit 1; fi g++ -DHAVE_CONFIG_H -I. -I. -I../include/gea -DGEA_POSIX -Werror -Wall -I../include -g -ggdb3 -MT libgea_posix_la-EventHandler.lo -MD -MP -MF .deps/libgea_posix_la-EventHandler.Tpo -c EventHandler.cc -DPIC -o .libs/libgea_posix_la-EventHandler.o In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cwchar:51, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/postypes.h:46, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/iosfwd:50, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ios:44, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:45, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/iostream:45, from ../include/gea/UdpHandle.h:72, from EventHandler.cc:20: /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:68: error: `::tm' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:70: error: `::clock' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:71: error: `::difftime' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:72: error: `::mktime' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:73: error: `::time' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:74: error: `::asctime' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:75: error: `::ctime' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:76: error: `::gmtime' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:77: error: `::localtime' has not been declared /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ctime:78: error: `::strftime' has not been declared In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/basic_ios.h:44, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ios:51, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/ostream:45, from /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/iostream:45, from ../include/gea/UdpHandle.h:72, from EventHandler.cc:20: This might be an issue specific to Cygwin. Please let me know if it looks like something obvious is wrong. Thanks again, Jeff -Original Message- From: Daniel Mahrenholz [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 30, 2006 1:34 AM To: Jeff Schwentner Cc: ns-users@ISI.EDU Subject: Re: [ns] Simulating an embedded ad-hoc wireless protocol Jeff, you tried to compile GEA in the wrong order. You have to: 1. install GEA using ./configure make make install in the GEA source directory. 2. compile ns Step 1 will compile and install the native GEA version. This is not required for ns-2 at runtime. But you need the different include files that usually will be installed in /usr/local/include/gea. If you need them to be installed in a different directory you can call a ./configure --prefix=install dir. This should be a directory that ns-2 uses during its compilation. Otherwise you have to modify the ns-2 Makefile. Daniel.
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Daniel, 1) I applied ns_2.28-4.diff to ns_2.28.orig, and had an error when trying to compile. When I attempted a make after configure, I got the following error: $ make c++ -c -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DUSE_SHM -D HAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_9 -DHAVE_OTCL_H -DHAVE_LIBTK8_4 -DH AVE_TK_H -DHAVE_LIBTCL8_4 -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO _SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I/usr/ns-al linone-2.29/tclcl-1.17 -I/usr/ns-allinone-2.29/otcl-1.11 -I/usr/ns-allinone-2.29 /include -I/usr/ns-allinone-2.29/include -I/usr/include/pcap -I./tcp -I./sctp -I ./common -I./link -I./queue -I./adc -I./apps -I./mac -I./mobile -I./trace -I./ro uting -I./tools -I./classifier -I./mcast -I./diffusion3/lib/main -I./diffusion3/ lib -I./diffusion3/lib/nr -I./diffusion3/ns -I./diffusion3/filter_core -I./asim/ -I./qs -I./diffserv -I./wpan -o gea/gea.o gea/gea.cc gea/gea.cc:1:21: gea/API.h: No such file or directory gea/gea.cc:3: error: `gea' has not been declared gea/gea.cc:3: error: expected constructor, destructor, or type conversion before GEA gea/gea.cc:3: error: expected `,' or `;' before GEA make: *** [gea/gea.o] Error 1 2) It looks like the patched version is missing a file. I then tried using gea source (libgea_1.1) instead of gea directory of the patch, and got the following error when performing make: $ make make: *** No rule to make target `gea/gea.cc', needed by `gea/gea.o'. Stop. I'm obviously doing something wrong here, but I don't know what. What steps are required to compile ns with gea? Regards, Jeff S. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Daniel Mahrenholz Sent: Sunday, May 28, 2006 12:27 PM To: Jeff Schwentner Cc: ns-users@ISI.EDU Subject: Re: [ns] Simulating an embedded ad-hoc wireless protocol Hi Jeff, Jeff Schwentner schrieb: So if I understand correctly, I would embed our custom packets in UDP packets. This would include the RTS/CTS/ACK MAC packets in addition to the actual data packets. The MAC layer, as far as ns-2 is concerned, would just be a pass-through (not sending its own RTS/CTS). Yes - at the moment this would result in all packets being encapsulated into UDP packets. In our case we have some kind of extended MAC layer. We do not replace the standard 802.11 MAC but we do not use RTS/CTS and only broadcast communication and so no ACKs. Currently we do not have the pass through MAC because our protocols are intended to work on COTS hardware. But for you this probably will not work if you like to replace/modify the whole MAC behavior and its timing. Do you have an example that I can compile and run with ns-2 (I'm using 2.29 on Cygwin)? In either case, I would greatly appreciate any documentation you can point me to get started! We have some code examples in the source code archive in our repository. So far we did not try to compile GEA on cygwin but there should be no problem. But you need to use the modified ns-2 (available from our repository). Daniel.
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Jeff, you tried to compile GEA in the wrong order. You have to: 1. install GEA using ./configure make make install in the GEA source directory. 2. compile ns Step 1 will compile and install the native GEA version. This is not required for ns-2 at runtime. But you need the different include files that usually will be installed in /usr/local/include/gea. If you need them to be installed in a different directory you can call a ./configure --prefix=install dir. This should be a directory that ns-2 uses during its compilation. Otherwise you have to modify the ns-2 Makefile. Daniel. Jeff Schwentner schrieb: 1) I applied ns_2.28-4.diff to ns_2.28.orig, and had an error when trying to compile. When I attempted a make after configure, I got the following error: $ make c++ -c -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DUSE_SHM -D HAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_9 -DHAVE_OTCL_H -DHAVE_LIBTK8_4 -DH AVE_TK_H -DHAVE_LIBTCL8_4 -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO _SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I/usr/ns-al linone-2.29/tclcl-1.17 -I/usr/ns-allinone-2.29/otcl-1.11 -I/usr/ns-allinone-2.29 /include -I/usr/ns-allinone-2.29/include -I/usr/include/pcap -I./tcp -I./sctp -I ./common -I./link -I./queue -I./adc -I./apps -I./mac -I./mobile -I./trace -I./ro uting -I./tools -I./classifier -I./mcast -I./diffusion3/lib/main -I./diffusion3/ lib -I./diffusion3/lib/nr -I./diffusion3/ns -I./diffusion3/filter_core -I./asim/ -I./qs -I./diffserv -I./wpan -o gea/gea.o gea/gea.cc gea/gea.cc:1:21: gea/API.h: No such file or directory gea/gea.cc:3: error: `gea' has not been declared gea/gea.cc:3: error: expected constructor, destructor, or type conversion before GEA gea/gea.cc:3: error: expected `,' or `;' before GEA make: *** [gea/gea.o] Error 1 2) It looks like the patched version is missing a file. I then tried using gea source (libgea_1.1) instead of gea directory of the patch, and got the following error when performing make: $ make make: *** No rule to make target `gea/gea.cc', needed by `gea/gea.o'. Stop. I’m obviously doing something wrong here, but I don’t know what. What steps are required to compile ns with gea?
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Hi Jeff, Jeff Schwentner schrieb: So if I understand correctly, I would embed our custom packets in UDP packets. This would include the RTS/CTS/ACK MAC packets in addition to the actual data packets. The MAC layer, as far as ns-2 is concerned, would just be a pass-through (not sending its own RTS/CTS). Yes - at the moment this would result in all packets being encapsulated into UDP packets. In our case we have some kind of extended MAC layer. We do not replace the standard 802.11 MAC but we do not use RTS/CTS and only broadcast communication and so no ACKs. Currently we do not have the pass through MAC because our protocols are intended to work on COTS hardware. But for you this probably will not work if you like to replace/modify the whole MAC behavior and its timing. Do you have an example that I can compile and run with ns-2 (I'm using 2.29 on Cygwin)? In either case, I would greatly appreciate any documentation you can point me to get started! We have some code examples in the source code archive in our repository. So far we did not try to compile GEA on cygwin but there should be no problem. But you need to use the modified ns-2 (available from our repository). Daniel.
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Daniel, Thanks for the reply! I read your paper (Unified Development and Deployment of Network Protocols). If I understand this correctly, it looks like it does not encapsulate the MAC layer. In the firmware I need to simulate, it has its own MAC and custom packet structure. I really need to simulate the MAC with my network protocol, is it possible to use GEA for this? If so, what modifications would be required? Thanks in advance, Jeff -Original Message- From: Daniel Mahrenholz [mailto:[EMAIL PROTECTED] Sent: Friday, May 19, 2006 2:49 AM To: Jeff Schwentner Cc: ns-users@ISI.EDU Subject: Re: [ns] Simulating an embedded ad-hoc wireless protocol Hi, Jeff Schwentner schrieb: Has anyone simulated a mobile node using only send/receive functions with ns-2? I have an ad-hoc wireless protocol that has been implemented and fielded in an embedded system. I would like to simulate it for performance benchmarking. My problem is that the code is written in C and it has it's own custom implementation for the MAC, routing protocol, queueing, etc. I have just started looking into ns-2, and from what I understand, it requires the MAC, routing protocol, and message queue to be in seperate classes (inheriting from Agent, Mac, etc.). Is it possible to use ns-2 to simulate a node at the transport layer, and treat the rest as a black box? If not, do you have any suggestions/comments for simulating this firmware? We are using our native protocol implementations inside ns-2. To do so we implemented a small adaptation library called GEA. Maybe this could be of help for you. But it would require some modifications to your code (depending on the way the firmware is implemented). There is also a project/extension that allows to use the native TCP/IP stacks of different operating systems in ns-2 (called network craddles). I do not know more about this but you will find a link on the Contributed Code page in the ns-2 wiki. Maybe this could be a solution. The last chance would be to use network emulation. Daniel.
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Daniel, So if I understand correctly, I would embed our custom packets in UDP packets. This would include the RTS/CTS/ACK MAC packets in addition to the actual data packets. The MAC layer, as far as ns-2 is concerned, would just be a pass-through (not sending its own RTS/CTS). Do you have an example that I can compile and run with ns-2 (I'm using 2.29 on Cygwin)? In either case, I would greatly appreciate any documentation you can point me to get started! Thanks again, Jeff -Original Message- From: Daniel Mahrenholz [mailto:[EMAIL PROTECTED] Sent: Monday, May 22, 2006 2:32 PM To: Jeff Schwentner Cc: ns-users@ISI.EDU Subject: Re: [ns] Simulating an embedded ad-hoc wireless protocol Hi Jeff, Jeff Schwentner schrieb: Thanks for the reply! I read your paper (Unified Development and Deployment of Network Protocols). If I understand this correctly, it looks like it does not encapsulate the MAC layer. In the firmware I need to simulate, it has its own MAC and custom packet structure. I really need to simulate the MAC with my network protocol, is it possible to use GEA for this? If so, what modifications would be required? Currently we encalsulate all packets into UDP packets. But we implemented are own MAC protocol onto of this. The advantage was that it was easy to implement, the downside is the additional overhead. We are currently working to implement a raw socket interface for ns-2 to overcome this problem. At the moment you additionally need to use the DumpAgent for routing (so no routing) in ns-2 and maybe a dump MAC layer that just passes all packets down to the medium. Daniel.
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Hi, Jeff Schwentner schrieb: Has anyone simulated a mobile node using only send/receive functions with ns-2? I have an ad-hoc wireless protocol that has been implemented and fielded in an embedded system. I would like to simulate it for performance benchmarking. My problem is that the code is written in C and it has it's own custom implementation for the MAC, routing protocol, queueing, etc. I have just started looking into ns-2, and from what I understand, it requires the MAC, routing protocol, and message queue to be in seperate classes (inheriting from Agent, Mac, etc.). Is it possible to use ns-2 to simulate a node at the transport layer, and treat the rest as a black box? If not, do you have any suggestions/comments for simulating this firmware? We are using our native protocol implementations inside ns-2. To do so we implemented a small adaptation library called GEA. Maybe this could be of help for you. But it would require some modifications to your code (depending on the way the firmware is implemented). There is also a project/extension that allows to use the native TCP/IP stacks of different operating systems in ns-2 (called network craddles). I do not know more about this but you will find a link on the Contributed Code page in the ns-2 wiki. Maybe this could be a solution. The last chance would be to use network emulation. Daniel.
Re: [ns] Simulating an embedded ad-hoc wireless protocol
Has anyone simulated a mobile node using only send/receive functions with ns-2? Is it absolutely necessary to have separate Routing/MAC/Transport layers to use ns-2? Thanks, Jeff S. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, May 15, 2006 3:12 PM To: ns-users@ISI.EDU Subject: [ns] Simulating an embedded ad-hoc wireless protocol Greetings, I have an ad-hoc wireless protocol that has been implemented and fielded in an embedded system. I would like to simulate it for performance benchmarking. My problem is that the code is written in C and it has it's own custom implementation for the MAC, routing protocol, queueing, etc. I have just started looking into ns-2, and from what I understand, it requires the MAC, routing protocol, and message queue to be in seperate classes (inheriting from Agent, Mac, etc.). Is it possible to use ns-2 to simulate a node at the transport layer, and treat the rest as a black box? If not, do you have any suggestions/comments for simulating this firmware? Thanks in advance, Jeff S.
[ns] Simulating an embedded ad-hoc wireless protocol
Greetings, I have an ad-hoc wireless protocol that has been implemented and fielded in an embedded system. I would like to simulate it for performance benchmarking. My problem is that the code is written in C and it has it's own custom implementation for the MAC, routing protocol, queueing, etc. I have just started looking into ns-2, and from what I understand, it requires the MAC, routing protocol, and message queue to be in seperate classes (inheriting from Agent, Mac, etc.). Is it possible to use ns-2 to simulate a node at the transport layer, and treat the rest as a black box? If not, do you have any suggestions/comments for simulating this firmware? Thanks in advance, Jeff S.