From wzssyqa at gmail.com Tue Mar 1 23:38:06 2011 From: wzssyqa at gmail.com (YunQiang Su) Date: Wed, 2 Mar 2011 15:38:06 +0800 Subject: [Ns-developers] FTBFS: build ns2 with gcc 4.5 error Message-ID: g++ -c -g -O2 -Wall -Wno-write-strings -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DLINUX_TCP_HEADER -DUSE_SHM -DHAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_14 -DHAVE_OTCL_H -DHAVE_LIBTK8_4 -DHAVE_TK_H -DHAVE_LIBTCL8_4 -DHAVE_TCLINT_H -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO_SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I. -I/usr/include -I/usr/include -I/usr/include/tcl8.4 -I/usr/include/tcl8.4/tcl-private/generic -I/usr/include/tcl8.4/tcl-private/generic -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./routing -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./satellite -I./wpan -o tools/ranvar.o tools/ranvar.cc tools/ranvar.cc: In member function 'virtual double GammaRandomVariable::value()': tools/ranvar.cc:219:70: error: cannot call constructor 'GammaRandomVariable::GammaRandomVariable' directly tools/ranvar.cc:219:70: error: for a function-style cast, remove the redundant '::GammaRandomVariable' make[1]: *** [tools/ranvar.o] Error 1 dh_auto_build: make -j1 returned exit code 2 make: *** [build] Error 2 -- YunQiang Su From jpelkey at gatech.edu Thu Mar 3 11:32:04 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Thu, 3 Mar 2011 14:32:04 -0500 Subject: [Ns-developers] File history in ns-3-dev Message-ID: Hi all, I wanted to point out a small issue with mercurial file history once we started moving a large number of files around for the modular build. It looks like the changeset history for an individual file doesn't follow it if it is relocated within ns-3-dev. One way around this is to visit a changeset before we started moving things around, for example the ns-3.10 tagged changeset. Then when you look at the changesets for individual files, you can see the years of history if you need. We could potentially tag another changeset, signifying the beginning of the modular shift, but I couldn't find a good one at first glance. -- Josh From watrous at uw.edu Thu Mar 3 11:43:51 2011 From: watrous at uw.edu (Mitch Watrous) Date: Thu, 03 Mar 2011 11:43:51 -0800 Subject: [Ns-developers] File history in ns-3-dev In-Reply-To: References: Message-ID: <4D6FEF77.9070509@uw.edu> On 03/03/2011 11:32 AM, Josh Pelkey wrote: > Hi all, > > I wanted to point out a small issue with mercurial file history once > we started moving a large number of files around for the modular > build. It looks like the changeset history for an individual file > doesn't follow it if it is relocated within ns-3-dev. One way around > this is to visit a changeset before we started moving things around, > for example the ns-3.10 tagged changeset. Then when you look at the > changesets for individual files, you can see the years of history if > you need. We could potentially tag another changeset, signifying the > beginning of the modular shift, but I couldn't find a good one at > first glance. > > -- > Josh > You can determine if the change history has been preserved by using the -f option with hg log like this: hg log -f src/devices/csma/model/csma.h Mitch From jpelkey at gatech.edu Thu Mar 3 11:51:47 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Thu, 3 Mar 2011 14:51:47 -0500 Subject: [Ns-developers] File history in ns-3-dev In-Reply-To: <4D6FEF77.9070509@uw.edu> References: <4D6FEF77.9070509@uw.edu> Message-ID: Aha, well I'm glad to see that most of these are preserved. I failed to do it correctly when I modularized nix and olsr. I guess the proper way is to use "hg rename." Also, I don't see a way to get the preserved file history through the web interface unfortunately. Please correct me :) -- Josh On Thu, Mar 3, 2011 at 2:43 PM, Mitch Watrous wrote: > On 03/03/2011 11:32 AM, Josh Pelkey wrote: >> >> Hi all, >> >> I wanted to point out a small issue with mercurial file history once >> we started moving a large number of files around for the modular >> build. It looks like the changeset history for an individual file >> doesn't follow it if it is relocated within ns-3-dev. One way around >> this is to visit a changeset before we started moving things around, >> for example the ns-3.10 tagged changeset. Then when you look at the >> changesets for individual files, you can see the years of history if >> you need. We could potentially tag another changeset, signifying the >> beginning of the modular shift, but I couldn't find a good one at >> first glance. >> >> -- >> Josh >> > > You can determine if the change history has been preserved by using the -f > option with hg log like this: > > ? ?hg log -f src/devices/csma/model/csma.h > > Mitch > > From mathieu.lacage at gmail.com Fri Mar 4 02:58:30 2011 From: mathieu.lacage at gmail.com (Mathieu Lacage) Date: Fri, 4 Mar 2011 11:58:30 +0100 Subject: [Ns-developers] File history in ns-3-dev In-Reply-To: References: <4D6FEF77.9070509@uw.edu> Message-ID: On Thu, Mar 3, 2011 at 20:51, Josh Pelkey wrote: > to do it correctly when I modularized nix and olsr. I guess the proper > way is to use "hg rename." Also, I don't see a way to get the yes. > preserved file history through the web interface unfortunately. Please > correct me :) I do not believe that it is possible through the web interface. Mathieu -- Mathieu Lacage From mazo at iitp.ru Fri Mar 4 03:17:02 2011 From: mazo at iitp.ru (Andrey Mazo) Date: Fri, 04 Mar 2011 14:17:02 +0300 Subject: [Ns-developers] File history in ns-3-dev In-Reply-To: References: <4D6FEF77.9070509@uw.edu> Message-ID: On Fri, 04 Mar 2011 13:58:30 +0300, Mathieu Lacage wrote: > On Thu, Mar 3, 2011 at 20:51, Josh Pelkey wrote: >> preserved file history through the web interface unfortunately. Please >> correct me :) > > I do not believe that it is possible through the web interface. This looks like to be an already requested enhancement nearly 2 years ago [1] with a proposed patch at [2]. [1] http://mercurial.selenic.com/bts/issue1576 [2] http://www.selenic.com/pipermail/mercurial/2009-March/024848.html -- Andrey Mazo. From marco.miozzo at gmail.com Fri Mar 4 09:19:54 2011 From: marco.miozzo at gmail.com (Marco Miozzo) Date: Fri, 4 Mar 2011 18:19:54 +0100 Subject: [Ns-developers] Project Idea for GSoC 2011 - TinyOS code execution in ns-3 Message-ID: Hi all, Nicola Baldo, Nicola Bui and me have write down an idea for the GSoC 2011: http://www.nsnam.org/wiki/index.php/GSOC2011Projects#Priority_Project_Ideas The idea is integrating the TinyOS code (an OS for developing the wireless sensors protocol stack) in ns3, the reasons are manifold: flexibility in scenario definition (mobility, large scale scenarios) and interference/interoperability with other radio technologies (i.e., WiFi, LTE, etc.). We would like to mentor the project together. Best regards, Marco Miozzo. From rivanvx at gmail.com Sun Mar 6 11:38:51 2011 From: rivanvx at gmail.com (=?UTF-8?Q?Vedran_Mileti=C4=87?=) Date: Sun, 6 Mar 2011 20:38:51 +0100 Subject: [Ns-developers] nsclick fails to build after recent changes Message-ID: Hi, I believe it's a known issue, but mentioning it nevertheless: nsclick doesn't build after recent changes in source organization. Regards, Vedran Mileti? From suresh.lalith at gmail.com Sun Mar 6 11:41:49 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Sun, 6 Mar 2011 19:41:49 +0000 Subject: [Ns-developers] nsclick fails to build after recent changes In-Reply-To: References: Message-ID: Hello, 2011/3/6 Vedran Mileti? > Hi, > > I believe it's a known issue, but mentioning it nevertheless: nsclick > doesn't build after recent changes in source organization. > I'll investigate this asap. > > Regards, > > Vedran Mileti? > -- Lalith Suresh *Department of Computer Science and Engineering* *Instituto Superior T?cnico* www.lalith.in From rivanvx at gmail.com Mon Mar 7 06:57:44 2011 From: rivanvx at gmail.com (=?UTF-8?Q?Vedran_Mileti=C4=87?=) Date: Mon, 7 Mar 2011 15:57:44 +0100 Subject: [Ns-developers] nsclick fails to build after recent changes In-Reply-To: References: Message-ID: Dana 6. o?ujka 2011. 20:41 Lalith Suresh je napisao/la: > Hello, > > 2011/3/6 Vedran Mileti? > > Hi, >> >> I believe it's a known issue, but mentioning it nevertheless: nsclick >> doesn't build after recent changes in source organization. >> > > I'll investigate this asap. > Thanks, it's fixed now. Regards, Vedran Mileti? From andrea.sacco85 at gmail.com Tue Mar 8 00:01:00 2011 From: andrea.sacco85 at gmail.com (Andrea Sacco) Date: Tue, 8 Mar 2011 09:01:00 +0100 Subject: [Ns-developers] UAN AUV integration Message-ID: Hello everybody, I'm trying to finalize the integration of the AUV mobility models into ns-3. Here's a problem I've found: the code of the waypoint-mobility-model can't be merged "as is" with my mobility models. Infact, I wish to use the waypoint model to drive the AUV mobility models, re-using the code for adding, walking and updating the waypoints. But, the problem is that the waypoint model adopts a lazy logic, updating the position of the node only when requested. In this way the model can iterate over a number of waypoints at the same simulation time.. This is a problem for me because the AUV models need consistancy between node's position and simulation time. So, how do you suggest to proceed? In my opinion, I intend a waypoint model as a managing layer to add waypoint and handle them, not a separate mobility model. I would suggest to change the waypoint model to use a constant velocityy mobility model as "driven model" and a "non-lazy" position's updating logic (e.g. when a waypoint expires, the mobility model information will be updated at the same simulation time). What do you think about that? Thanks, Andrea From tomh at tomh.org Tue Mar 8 06:27:44 2011 From: tomh at tomh.org (Tom Henderson) Date: Tue, 08 Mar 2011 06:27:44 -0800 Subject: [Ns-developers] UAN AUV integration In-Reply-To: References: Message-ID: <4D763CE0.4060201@tomh.org> On 03/08/2011 12:01 AM, Andrea Sacco wrote: > Hello everybody, > I'm trying to finalize the integration of the AUV mobility models into ns-3. > Here's a problem I've found: the code of the waypoint-mobility-model can't > be merged "as is" with my mobility models. > Infact, I wish to use the waypoint model to drive the AUV mobility models, > re-using the code for adding, walking and updating the waypoints. But, the > problem is that the waypoint model adopts a lazy logic, updating the > position of the node only when requested. In this way the model can iterate > over a number of waypoints at the same simulation time.. > This is a problem for me because the AUV models need consistancy between > node's position and simulation time. > > So, how do you suggest to proceed? In my opinion, I intend a waypoint model > as a managing layer to add waypoint and handle them, not a separate mobility > model. I would suggest to change the waypoint model to use a constant > velocityy mobility model as "driven model" and a "non-lazy" position's > updating logic (e.g. when a waypoint expires, the mobility model information > will be updated at the same simulation time). > > What do you think about that? > > Thanks, > Andrea Andrea, have you looked at the LazyNotify attribute of this model? In ns-3.10, this new attribute was added to control whether the model is "lazy" in updating its internal position (and calling course change notification). In addition, the default value was set to "false" so that lazy notification is not the default behavior anymore. - Tom From chihani.b at gmail.com Mon Mar 7 09:28:26 2011 From: chihani.b at gmail.com (Bachir CHIHANI) Date: Mon, 7 Mar 2011 18:28:26 +0100 Subject: [Ns-developers] A NS-3 module for MPTCP Message-ID: Dear, You can find here [1] a NS-3 module for MPTCP [2] (Multipath TCP). The current release is compatible with 3.8 version of NS-3. A check of the compatibility with the latest version is needed. Best Regards. Bachir Chihani. [1] http://code.google.com/p/mptcp-ns3/ [2] http://datatracker.ietf.org/wg/mptcp/charter/ From gjcarneiro at gmail.com Tue Mar 8 08:04:31 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Tue, 8 Mar 2011 16:04:31 +0000 Subject: [Ns-developers] ns-3 modular python bindings => merged Message-ID: On Sun, Nov 7, 2010 at 23:39, Gustavo Carneiro wrote: > Hello, > > I have begun to work on modular Python bindings. The work I have so far > has been uploaded to branch gjc/ns-3-modular-bindings: > http://code.nsnam.org/gjc/ns-3-modular-bindings/ > > Hello, I have updated the code to ns-3-dev, added a few bugs fixed, and pushed it to ns-3-dev. I know this is experimental work, but since the modular bindings are disabled by default I do not expect it to cause any problems. In the mean time, I get one less branch to worry about and it becomes easier for other people to test it. > A new waf configure option was added: ./waf configure --bindings-type=TYPE, > where type can be "modular", "monolithic" (default), or "both". > > A new waf option ./waf --apiscan=MODULE1,MODULE2,..., will scan bindings > just for the specifying modules an place the apidefs in > src//bindings. The apidefs of a module will have to pull in > partial apidefs of other modules that are used by it, which is unfortunate > but needed to give enough information for pybindgen to generate correct > code. In runtime, the other modules' types are simply imported, not wrapped > again. > > A new Build method is added at runtime to request that bindings for the > current module be added, just call "bld.ns3_python_bindings()" in the module > wscript file, it will figure the rest by context (current wscript path). > > The new Python bindings are installed into an 'ns' Python namespace, > instead of ns3. For instance, "import ns.node". This will avoid clashes > with the old bindings, in case we want to keep the old bindings for > compatibility. > The above information is still valid. > > TODO: > > 1. This stuff doesn't even build right now, for anyone else but me, due > to circular dependencies between ns-3 modules; I have some quick-and-dirty > patches in my tree, to get it to build, but then it fails again in runtime > for the same reason. We need to fix circular dependencies, or else modular > bindings have no chance of working and it's not my fault; > > Thankfully, the above issue of circular dependencies seem to be resolved, but I only compiled modular python bindings for the 'core' and 'network' modules so far. > 2. In the modular bindings there was custom code for wrapping ns-3 > Callbacks, with a callbacks_list.py file holding the list of detected > Callback types. This stuff wasn't yet replicated in the modular bindings; > > 3. In the old bindings, some code was injected in the scanned header file > to force some template instantiations, this is missing for now in the new > bindings; > > 4. When a module includes a header of another module, all the types of > the other module are imported by its python module. Maybe it is possible to > detect which types are actually needed by the current module's bindings and > import just those types; I'll have to check if I have time. > > The above TODO items are still unresolved at this point. Regards, -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From tomh at tomh.org Tue Mar 8 08:17:58 2011 From: tomh at tomh.org (Tom Henderson) Date: Tue, 08 Mar 2011 09:17:58 -0700 Subject: [Ns-developers] =?utf-8?q?ns-3_modular_python_bindings_=3D=3E_mer?= =?utf-8?q?ged?= In-Reply-To: References: Message-ID: <4d53b6267cc406b48049dbd5907c6f1c@tomh.org> >> 1. This stuff doesn't even build right now, for anyone else but me, due >> to circular dependencies between ns-3 modules; I have some >> quick-and-dirty >> patches in my tree, to get it to build, but then it fails again in >> runtime >> for the same reason. We need to fix circular dependencies, or else >> modular >> bindings have no chance of working and it's not my fault; >> >> > Thankfully, the above issue of circular dependencies seem to be resolved, > but I only compiled modular python bindings for the 'core' and 'network' > modules so far. This is really close to being resolved for all modules (perhaps by the end of the day). We'll start to test the Python bindings and get back later with some feedback. - Tom From gjcarneiro at gmail.com Tue Mar 8 08:36:13 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Tue, 8 Mar 2011 16:36:13 +0000 Subject: [Ns-developers] A NS-3 module for MPTCP In-Reply-To: References: Message-ID: I have added this info. to the ns-3 wiki page: http://www.nsnam.org/wiki/index.php/Current_Development#Multipath_TCP Regards. On Mon, Mar 7, 2011 at 17:28, Bachir CHIHANI wrote: > Dear, > > You can find here [1] a NS-3 module for MPTCP [2] (Multipath TCP). > The current release is compatible with 3.8 version of NS-3. > A check of the compatibility with the latest version is needed. > > Best Regards. > Bachir Chihani. > > [1] http://code.google.com/p/mptcp-ns3/ > [2] http://datatracker.ietf.org/wg/mptcp/charter/ > -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From gjcarneiro at gmail.com Tue Mar 8 08:51:27 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Tue, 8 Mar 2011 16:51:27 +0000 Subject: [Ns-developers] ns-3 modular python bindings => merged In-Reply-To: References: Message-ID: I added a wiki section with this information: http://www.nsnam.org/wiki/index.php/NS-3_Python_Bindings#Modular_Python_Bindings On Tue, Mar 8, 2011 at 16:04, Gustavo Carneiro wrote: > > > On Sun, Nov 7, 2010 at 23:39, Gustavo Carneiro wrote: > >> Hello, >> >> I have begun to work on modular Python bindings. The work I have so far >> has been uploaded to branch gjc/ns-3-modular-bindings: >> http://code.nsnam.org/gjc/ns-3-modular-bindings/ >> >> > Hello, > > I have updated the code to ns-3-dev, added a few bugs fixed, and pushed it > to ns-3-dev. > > I know this is experimental work, but since the modular bindings are > disabled by default I do not expect it to cause any problems. In the mean > time, I get one less branch to worry about and it becomes easier for other > people to test it. > > >> A new waf configure option was added: ./waf configure >> --bindings-type=TYPE, where type can be "modular", "monolithic" (default), >> or "both". >> >> A new waf option ./waf --apiscan=MODULE1,MODULE2,..., will scan bindings >> just for the specifying modules an place the apidefs in >> src//bindings. The apidefs of a module will have to pull in >> partial apidefs of other modules that are used by it, which is unfortunate >> but needed to give enough information for pybindgen to generate correct >> code. In runtime, the other modules' types are simply imported, not wrapped >> again. >> >> A new Build method is added at runtime to request that bindings for the >> current module be added, just call "bld.ns3_python_bindings()" in the module >> wscript file, it will figure the rest by context (current wscript path). >> >> The new Python bindings are installed into an 'ns' Python namespace, >> instead of ns3. For instance, "import ns.node". This will avoid clashes >> with the old bindings, in case we want to keep the old bindings for >> compatibility. >> > > The above information is still valid. > > >> >> TODO: >> >> 1. This stuff doesn't even build right now, for anyone else but me, due >> to circular dependencies between ns-3 modules; I have some quick-and-dirty >> patches in my tree, to get it to build, but then it fails again in runtime >> for the same reason. We need to fix circular dependencies, or else modular >> bindings have no chance of working and it's not my fault; >> >> > Thankfully, the above issue of circular dependencies seem to be resolved, > but I only compiled modular python bindings for the 'core' and 'network' > modules so far. > > >> 2. In the modular bindings there was custom code for wrapping ns-3 >> Callbacks, with a callbacks_list.py file holding the list of detected >> Callback types. This stuff wasn't yet replicated in the modular bindings; >> >> 3. In the old bindings, some code was injected in the scanned header >> file to force some template instantiations, this is missing for now in the >> new bindings; >> >> 4. When a module includes a header of another module, all the types of >> the other module are imported by its python module. Maybe it is possible to >> detect which types are actually needed by the current module's bindings and >> import just those types; I'll have to check if I have time. >> >> > > The above TODO items are still unresolved at this point. > > Regards, > > -- > Gustavo J. A. M. Carneiro > INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc > "The universe is always one step beyond logic." -- Frank Herbert > -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From jpelkey at gatech.edu Wed Mar 9 14:06:24 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Wed, 9 Mar 2011 17:06:24 -0500 Subject: [Ns-developers] Linking ns-3 with openflow Message-ID: Hi all, Blake's ns-3-openflow code links an outside static library called libopenflow.a to ns-3. Everything seems to build just fine, including ns-3 files and examples that use openflow specific functions, but at the very end I get this: debug/libns3.so: undefined reference to `set_vlan_pcp' debug/libns3.so: undefined reference to `set_dl_addr' debug/libns3.so: undefined reference to `ofp_logdir' debug/libns3.so: undefined reference to `retrieve_buffer' debug/libns3.so: undefined reference to `discard_buffer' debug/libns3.so: undefined reference to `set_tp_port' debug/libns3.so: undefined reference to `set_mpls_exp' debug/libns3.so: undefined reference to `strip_vlan' debug/libns3.so: undefined reference to `set_mpls_label' debug/libns3.so: undefined reference to `set_vlan_vid' debug/libns3.so: undefined reference to `set_nw_addr' debug/libns3.so: undefined reference to `ofp_rundir' collect2: ld returned 1 exit status I thought this might be waf/wscript related, but I just spent hours doing basically trial and error, and I didn't get any farther. I also thought it might have to do with the fact that I'm trying to link a static library, so I tried to build openflow as a shared library, but then ./waf configure refused to see the library -- even though it was there. So then I thought that might have to do with the "conf.check(fragment=...)" within the openflow wscript, but I really have no idea where to start with that. Obviously, I'm kind of lost when it comes to this waf/wscript/libraries thing. Does anybody have any thoughts or suggestions? Below is a link to the wscript used to link openflow, as well as the wscript which is used outside of ns-3 to create the static library in the stand-alone openflow source: http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/wscript <--- This basically follows what ns-3-click did for its wscript http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/openflow/wscript Thanks for any help. -- Josh Pelkey From mathieu.lacage at gmail.com Wed Mar 9 21:06:55 2011 From: mathieu.lacage at gmail.com (Mathieu Lacage) Date: Thu, 10 Mar 2011 06:06:55 +0100 Subject: [Ns-developers] Linking ns-3 with openflow In-Reply-To: References: Message-ID: On Wed, Mar 9, 2011 at 23:06, Josh Pelkey wrote: > Hi all, > > Blake's ns-3-openflow code links an outside static library called > libopenflow.a to ns-3. Everything seems to build just fine, including > ns-3 files and examples that use openflow specific functions, but at > the very end I get this: > > debug/libns3.so: undefined reference to `set_vlan_pcp' where and how are these functions defined ? declared, used ? Mathieu -- Mathieu Lacage From suresh.lalith at gmail.com Thu Mar 10 02:37:06 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Thu, 10 Mar 2011 10:37:06 +0000 Subject: [Ns-developers] Linking ns-3 with openflow In-Reply-To: References: Message-ID: Hello Josh, On Wed, Mar 9, 2011 at 10:06 PM, Josh Pelkey wrote: > Hi all, > > Blake's ns-3-openflow code links an outside static library called > libopenflow.a to ns-3. Everything seems to build just fine, including > ns-3 files and examples that use openflow specific functions, but at > the very end I get this: > > debug/libns3.so: undefined reference to `set_vlan_pcp' > debug/libns3.so: undefined reference to `set_dl_addr' > debug/libns3.so: undefined reference to `ofp_logdir' > debug/libns3.so: undefined reference to `retrieve_buffer' > debug/libns3.so: undefined reference to `discard_buffer' > debug/libns3.so: undefined reference to `set_tp_port' > debug/libns3.so: undefined reference to `set_mpls_exp' > debug/libns3.so: undefined reference to `strip_vlan' > debug/libns3.so: undefined reference to `set_mpls_label' > debug/libns3.so: undefined reference to `set_vlan_vid' > debug/libns3.so: undefined reference to `set_nw_addr' > debug/libns3.so: undefined reference to `ofp_rundir' > collect2: ld returned 1 exit status > > I thought this might be waf/wscript related, but I just spent hours > doing basically trial and error, and I didn't get any farther. I also > thought it might have to do with the fact that I'm trying to link a > static library, so I tried to build openflow as a shared library, but > then ./waf configure refused to see the library -- even though it was > there. So then I thought that might have to do with the > "conf.check(fragment=...)" within the openflow wscript, but I really > have no idea where to start with that. Obviously, I'm kind of lost > when it comes to this waf/wscript/libraries thing. Does anybody have > any thoughts or suggestions? Below is a link to the wscript used to > link openflow, as well as the wscript which is used outside of ns-3 to > create the static library in the stand-alone openflow source: > > http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/wscript > <--- This basically follows what ns-3-click did for its wscript > http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/openflow/wscript What does build/config.log tell you? > > Thanks for any help. > > -- > Josh Pelkey > -- Lalith Suresh Department of Computer Science and Engineering Instituto Superior T?cnico www.lalith.in From jpelkey at gatech.edu Thu Mar 10 06:47:46 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Thu, 10 Mar 2011 09:47:46 -0500 Subject: [Ns-developers] Linking ns-3 with openflow In-Reply-To: References: Message-ID: Mathieu, these functions are declared and defined outside of ns-3, contained in the source of the "openflow-mpls" project. Blake created a wscript within this project to build these functions into a library. Within ns-3, there is an interface to this openflow-mpls project. It includes the openflow.h header from the linked library and uses several of those functions there to interface with openflow in ns-3. I know there are details missing in this description, but I hope that answers your questions ok. Lalith, I always forget about build/config.log. I'm about to start working on this again today and will look there for some ideas. Thanks! -- Josh On Thu, Mar 10, 2011 at 5:37 AM, Lalith Suresh wrote: > Hello Josh, > > On Wed, Mar 9, 2011 at 10:06 PM, Josh Pelkey wrote: >> Hi all, >> >> Blake's ns-3-openflow code links an outside static library called >> libopenflow.a to ns-3. Everything seems to build just fine, including >> ns-3 files and examples that use openflow specific functions, but at >> the very end I get this: >> >> debug/libns3.so: undefined reference to `set_vlan_pcp' >> debug/libns3.so: undefined reference to `set_dl_addr' >> debug/libns3.so: undefined reference to `ofp_logdir' >> debug/libns3.so: undefined reference to `retrieve_buffer' >> debug/libns3.so: undefined reference to `discard_buffer' >> debug/libns3.so: undefined reference to `set_tp_port' >> debug/libns3.so: undefined reference to `set_mpls_exp' >> debug/libns3.so: undefined reference to `strip_vlan' >> debug/libns3.so: undefined reference to `set_mpls_label' >> debug/libns3.so: undefined reference to `set_vlan_vid' >> debug/libns3.so: undefined reference to `set_nw_addr' >> debug/libns3.so: undefined reference to `ofp_rundir' >> collect2: ld returned 1 exit status >> >> I thought this might be waf/wscript related, but I just spent hours >> doing basically trial and error, and I didn't get any farther. I also >> thought it might have to do with the fact that I'm trying to link a >> static library, so I tried to build openflow as a shared library, but >> then ./waf configure refused to see the library -- even though it was >> there. So then I thought that might have to do with the >> "conf.check(fragment=...)" within the openflow wscript, but I really >> have no idea where to start with that. Obviously, I'm kind of lost >> when it comes to this waf/wscript/libraries thing. Does anybody have >> any thoughts or suggestions? Below is a link to the wscript used to >> link openflow, as well as the wscript which is used outside of ns-3 to >> create the static library in the stand-alone openflow source: >> >> http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/wscript >> <--- This basically follows what ns-3-click did for its wscript >> http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/openflow/wscript > > What does build/config.log tell you? > >> >> Thanks for any help. >> >> -- >> Josh Pelkey >> > > > > -- > Lalith Suresh > Department of Computer Science and Engineering > Instituto Superior T?cnico > www.lalith.in > From tomh at tomh.org Thu Mar 10 07:14:18 2011 From: tomh at tomh.org (Tom Henderson) Date: Thu, 10 Mar 2011 07:14:18 -0800 Subject: [Ns-developers] ns-3 contrib directory Message-ID: <4D78EACA.4000803@tomh.org> Most of ns-3-dev is flattened now, which means that each module is organized in a directly below src/. Each such module will eventually result in a separate library being built (and corresponding separate test library, if tests are present). As part of this activity, the stats and topology-read directories have already been made into modules, and energy and flow-monitor can also be moved to regular modules. If we do the above, we will be left with a contrib/ module which has a few disparate pieces: - config-store - gnuplot support - some statistics support (delay-jitter-estimation, average.h) - flow-id tag - event garbage collector It has also been observed that the policy for putting items into contrib/ (or moving them out) has not been clear, so I would suggest that as part of making ns-3 modular, we remove contrib/ and instead maintain metadata about the maintenance status of modules somewhere else such as on the web site. If we were to do that, we should find new homes for the above. I would like to suggest the following strawman: - config-store becomes a new module - gnuplot, delay-jitter-estimation, average, and event garbage collector all move to tools/model/. "tools" can be used as a general utilities module in the future - make tools/visualizer a module under src/ (i.e. move it out of tools) - flow-id tag moves to network/utils Comments? - Tom From ruben at net.t-labs.tu-berlin.de Thu Mar 10 07:43:56 2011 From: ruben at net.t-labs.tu-berlin.de (Ruben Merz) Date: Thu, 10 Mar 2011 16:43:56 +0100 Subject: [Ns-developers] Linking ns-3 with openflow In-Reply-To: References: Message-ID: <4D78F1BC.3040301@net.t-labs.tu-berlin.de> Hi Josh, For ns-3 and Click, I believe we have a similar setup. Click is built as a .so file (libnsclick.so) that gets linked to ns-3. You might look into it. R On 3/10/11 15:47 , Josh Pelkey wrote: > Mathieu, these functions are declared and defined outside of ns-3, > contained in the source of the "openflow-mpls" project. Blake created > a wscript within this project to build these functions into a library. > Within ns-3, there is an interface to this openflow-mpls project. It > includes the openflow.h header from the linked library and uses > several of those functions there to interface with openflow in ns-3. > I know there are details missing in this description, but I hope that > answers your questions ok. > > Lalith, I always forget about build/config.log. I'm about to start > working on this again today and will look there for some ideas. > Thanks! > > -- > Josh > > On Thu, Mar 10, 2011 at 5:37 AM, Lalith Suresh wrote: >> Hello Josh, >> >> On Wed, Mar 9, 2011 at 10:06 PM, Josh Pelkey wrote: >>> Hi all, >>> >>> Blake's ns-3-openflow code links an outside static library called >>> libopenflow.a to ns-3. Everything seems to build just fine, including >>> ns-3 files and examples that use openflow specific functions, but at >>> the very end I get this: >>> >>> debug/libns3.so: undefined reference to `set_vlan_pcp' >>> debug/libns3.so: undefined reference to `set_dl_addr' >>> debug/libns3.so: undefined reference to `ofp_logdir' >>> debug/libns3.so: undefined reference to `retrieve_buffer' >>> debug/libns3.so: undefined reference to `discard_buffer' >>> debug/libns3.so: undefined reference to `set_tp_port' >>> debug/libns3.so: undefined reference to `set_mpls_exp' >>> debug/libns3.so: undefined reference to `strip_vlan' >>> debug/libns3.so: undefined reference to `set_mpls_label' >>> debug/libns3.so: undefined reference to `set_vlan_vid' >>> debug/libns3.so: undefined reference to `set_nw_addr' >>> debug/libns3.so: undefined reference to `ofp_rundir' >>> collect2: ld returned 1 exit status >>> >>> I thought this might be waf/wscript related, but I just spent hours >>> doing basically trial and error, and I didn't get any farther. I also >>> thought it might have to do with the fact that I'm trying to link a >>> static library, so I tried to build openflow as a shared library, but >>> then ./waf configure refused to see the library -- even though it was >>> there. So then I thought that might have to do with the >>> "conf.check(fragment=...)" within the openflow wscript, but I really >>> have no idea where to start with that. Obviously, I'm kind of lost >>> when it comes to this waf/wscript/libraries thing. Does anybody have >>> any thoughts or suggestions? Below is a link to the wscript used to >>> link openflow, as well as the wscript which is used outside of ns-3 to >>> create the static library in the stand-alone openflow source: >>> >>> http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/wscript >>> <--- This basically follows what ns-3-click did for its wscript >>> http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/openflow/wscript >> >> What does build/config.log tell you? >> >>> >>> Thanks for any help. >>> >>> -- >>> Josh Pelkey >>> >> >> >> >> -- >> Lalith Suresh >> Department of Computer Science and Engineering >> Instituto Superior T?cnico >> www.lalith.in >> > From gjcarneiro at gmail.com Thu Mar 10 08:14:50 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Thu, 10 Mar 2011 16:14:50 +0000 Subject: [Ns-developers] ns-3 contrib directory In-Reply-To: <4D78EACA.4000803@tomh.org> References: <4D78EACA.4000803@tomh.org> Message-ID: On Thu, Mar 10, 2011 at 15:14, Tom Henderson wrote: > Most of ns-3-dev is flattened now, which means that each module is > organized in a directly below src/. Each such module will eventually result > in a separate library being built (and corresponding separate test library, > if tests are present). > +1 > > As part of this activity, the stats and topology-read directories have > already been made into modules, and energy and flow-monitor can also be > moved to regular modules. If we do the above, we will be left with a > contrib/ module which has a few disparate pieces: > - config-store > - gnuplot support > - some statistics support (delay-jitter-estimation, average.h) > - flow-id tag > - event garbage collector > It has also been observed that the policy for putting items into contrib/ > (or moving them out) has not been clear, so I would suggest that as part of > making ns-3 modular, we remove contrib/ and instead maintain metadata about > the maintenance status of modules somewhere else such as on the web site. > We had talked about metadata, and one of the options was to have a metadata file inside each module directory itself. I prefer this option. If we need a web based metata, it can be generated from the file based metadata, I'm sure. > > If we were to do that, we should find new homes for the above. I would > like to suggest the following strawman: > > - config-store becomes a new module > - gnuplot, delay-jitter-estimation, average, and event garbage collector > all move to tools/model/. "tools" can be used as a general utilities module > in the future > - make tools/visualizer a module under src/ (i.e. move it out of tools) > ok > - flow-id tag moves to network/utils > What is network/utils? I don't recall we discussing a subfolder 'utils' of a module, what does it mean? Oh, I see we already have it... what was the reason for 'utils'? Couldn't the utils content be in the 'model' subfolder, to make things more regular? -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From tomh at tomh.org Thu Mar 10 09:04:58 2011 From: tomh at tomh.org (Tom Henderson) Date: Thu, 10 Mar 2011 10:04:58 -0700 Subject: [Ns-developers] ns-3 contrib directory In-Reply-To: References: <4D78EACA.4000803@tomh.org> Message-ID: <6711ac9982252e755a2b6a5db8e7d004@tomh.org> On Thu, 10 Mar 2011 16:14:50 +0000, Gustavo Carneiro wrote: > >> - flow-id tag moves to network/utils >> > > What is network/utils? I don't recall we discussing a subfolder 'utils' of > a module, what does it mean? > http://mailman.isi.edu/pipermail/ns-developers/2011-February/008642.html From jpelkey at gatech.edu Thu Mar 10 09:40:55 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Thu, 10 Mar 2011 12:40:55 -0500 Subject: [Ns-developers] Linking ns-3 with openflow In-Reply-To: <4D78F1BC.3040301@net.t-labs.tu-berlin.de> References: <4D78F1BC.3040301@net.t-labs.tu-berlin.de> Message-ID: Thanks Ruben, all. We are now pretty sure that this has to do with the openflow-mpls code specifically and some static function definitions. Blake is setting up a new repo now, so hopefully we can get it to work today. Thanks again. -- Josh On Thu, Mar 10, 2011 at 10:43 AM, Ruben Merz wrote: > Hi Josh, > > For ns-3 and Click, I believe we have a similar setup. Click is built as a > .so file (libnsclick.so) that gets linked to ns-3. You might look into it. > > R > > On 3/10/11 15:47 , Josh Pelkey wrote: >> >> Mathieu, these functions are declared and defined outside of ns-3, >> contained in the source of the "openflow-mpls" project. Blake created >> a wscript within this project to build these functions into a library. >> Within ns-3, there is an interface to this openflow-mpls project. It >> includes the openflow.h header from the linked library and uses >> several of those functions there to interface with openflow in ns-3. >> I know there are details missing in this description, but I hope that >> answers your questions ok. >> >> Lalith, I always forget about build/config.log. I'm about to start >> working on this again today and will look there for some ideas. >> Thanks! >> >> -- >> Josh >> >> On Thu, Mar 10, 2011 at 5:37 AM, Lalith Suresh >> ?wrote: >>> >>> Hello Josh, >>> >>> On Wed, Mar 9, 2011 at 10:06 PM, Josh Pelkey ?wrote: >>>> >>>> Hi all, >>>> >>>> Blake's ns-3-openflow code links an outside static library called >>>> libopenflow.a to ns-3. Everything seems to build just fine, including >>>> ns-3 files and examples that use openflow specific functions, but at >>>> the very end I get this: >>>> >>>> debug/libns3.so: undefined reference to `set_vlan_pcp' >>>> debug/libns3.so: undefined reference to `set_dl_addr' >>>> debug/libns3.so: undefined reference to `ofp_logdir' >>>> debug/libns3.so: undefined reference to `retrieve_buffer' >>>> debug/libns3.so: undefined reference to `discard_buffer' >>>> debug/libns3.so: undefined reference to `set_tp_port' >>>> debug/libns3.so: undefined reference to `set_mpls_exp' >>>> debug/libns3.so: undefined reference to `strip_vlan' >>>> debug/libns3.so: undefined reference to `set_mpls_label' >>>> debug/libns3.so: undefined reference to `set_vlan_vid' >>>> debug/libns3.so: undefined reference to `set_nw_addr' >>>> debug/libns3.so: undefined reference to `ofp_rundir' >>>> collect2: ld returned 1 exit status >>>> >>>> I thought this might be waf/wscript related, but I just spent hours >>>> doing basically trial and error, and I didn't get any farther. I also >>>> thought it might have to do with the fact that I'm trying to link a >>>> static library, so I tried to build openflow as a shared library, but >>>> then ./waf configure refused to see the library -- even though it was >>>> there. So then I thought that might have to do with the >>>> "conf.check(fragment=...)" within the openflow wscript, but I really >>>> have no idea where to start with that. Obviously, I'm kind of lost >>>> when it comes to this waf/wscript/libraries thing. Does anybody have >>>> any thoughts or suggestions? Below is a link to the wscript used to >>>> link openflow, as well as the wscript which is used outside of ns-3 to >>>> create the static library in the stand-alone openflow source: >>>> >>>> >>>> http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/wscript >>>> <--- This basically follows what ns-3-click did for its wscript >>>> >>>> http://code.nsnam.org/bhurd/ns-3-openflow/file/c8e9530fcbdb/src/devices/switch/openflow/wscript >>> >>> What does build/config.log tell you? >>> >>>> >>>> Thanks for any help. >>>> >>>> -- >>>> Josh Pelkey >>>> >>> >>> >>> >>> -- >>> Lalith Suresh >>> Department of Computer Science and Engineering >>> Instituto Superior T?cnico >>> www.lalith.in >>> >> > From gjcarneiro at gmail.com Thu Mar 10 09:44:42 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Thu, 10 Mar 2011 17:44:42 +0000 Subject: [Ns-developers] ns-3 contrib directory In-Reply-To: <6711ac9982252e755a2b6a5db8e7d004@tomh.org> References: <4D78EACA.4000803@tomh.org> <6711ac9982252e755a2b6a5db8e7d004@tomh.org> Message-ID: On Thu, Mar 10, 2011 at 17:04, Tom Henderson wrote: > On Thu, 10 Mar 2011 16:14:50 +0000, Gustavo Carneiro > > wrote: > > > >> - flow-id tag moves to network/utils > >> > > > > What is network/utils? I don't recall we discussing a subfolder 'utils' > of > > a module, what does it mean? > > > > http://mailman.isi.edu/pipermail/ns-developers/2011-February/008642.html > I see. I also see it mentioned in http://www.nsnam.org/wiki/index.php/App_Store_Technical_Requirements So, basically, a module library will be composed of a set of arbitrary folders, 'model' being the only mandatory folder? I think the "rules" of module layout should be clarified and written down, even if just to say that the layout is open to arbitrary extension. -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From nbaldo at cttc.es Thu Mar 10 10:05:36 2011 From: nbaldo at cttc.es (Nicola Baldo) Date: Thu, 10 Mar 2011 19:05:36 +0100 Subject: [Ns-developers] LTE development: first public release of the LENA project Message-ID: <4D7912F0.4000307@cttc.es> Hi all, as officially announced in a press release earlier this month http://www.ubiquisys.com/femtocell-media-press-releases-id-203.htm CTTC and Ubiquisys are working together on a LTE simulation model for ns-3. This project is codenamed LENA (LTE/EPC Network simulAtor). It is now our please to announce the first public release of the LENA project, which you can find here: http://code.nsnam.org/nbaldo/ns-3-lena-trunk/ The LENA code is based on the GSoC 2010 project code by Giuseppe Piro, which was merged into ns-3-dev last december. With respect to the GSoC code, the main modifications that we performed are: - the MAC has been entirely rewritten to support the MAC Scheduler API defined by the Femto Forum, which is publicly available at this location: http://www.femtoforum.org/femto/technical.php - a Round Robin scheduler implementation based on the above API is also provided - the RLC API has been redefined RLC in particular, at this stage only the API definition is in place, together with a simplified RLC implementation (RLC TM/UM/AM not available yet) - the RRC has been entirely rewritten; we plan to reuse part of the GSoC 2010 flow classification code (which we plan to reuse) at a future stage for the implementation of Traffic Flow Template classifiers. - network layer functionality has been temporarily disabled; it will be re-enabled when either RLC/UM or RLC/AM is available. Please note that the LENA project is still work-in-progress, we are releasing our code following a "release early, release often" policy. Future releases of the code will be published at the same URL unless otherwise announced. In the near future, we will be working on finalizing the uplink functionality and the inter-cell interference model, which are currently supported only to a limited degree. In the mid term, we plan to introduce the RLC functionality to enable IP networking. In the long term, we plan to include some EPC elements as well. Eventually, we would like our code to be merged with ns-3-dev, though at this stage we think it is still too early to do it due to some key features missing. Feedback welcome! With kind regards, the CTTC LENA developers team Nicola Baldo Marco Miozzo Manuel Requena Jaume Nin From jpelkey at gatech.edu Thu Mar 10 11:01:34 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Thu, 10 Mar 2011 14:01:34 -0500 Subject: [Ns-developers] Ns-3 with OpenFlow Message-ID: Hi all, Blake and I finally got the ns-3 openflow interface working with the new modular structure. We would really like to merge this last GSoC project tomorrow, as the next GSoC is here. Please have a look at the code here: http://codereview.appspot.com/4266051/ For a reminder of the project, here is a link to the (somewhat out-dated) wiki: http://www.nsnam.org/wiki/index.php/GSOC2010OpenFlow and the previous code review: http://codereview.appspot.com/1872049/ A better source of documentation might be the src/openflow/doc/openflow-switch.h file in the first code review link. -- Josh Pelkey From suresh.lalith at gmail.com Thu Mar 10 13:21:22 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Thu, 10 Mar 2011 21:21:22 +0000 Subject: [Ns-developers] Ns-3 with OpenFlow In-Reply-To: References: Message-ID: Hello Josh, On Thu, Mar 10, 2011 at 7:01 PM, Josh Pelkey wrote: > Hi all, > > Blake and I finally got the ns-3 openflow interface working with the > new modular structure. We would really like to merge this last GSoC > project tomorrow, as the next GSoC is here. Please have a look at the > code here: http://codereview.appspot.com/4266051/ > > For a reminder of the project, here is a link to the (somewhat > out-dated) wiki: http://www.nsnam.org/wiki/index.php/GSOC2010OpenFlow > and the previous code review: http://codereview.appspot.com/1872049/ > A better source of documentation might be the > src/openflow/doc/openflow-switch.h file in the first code review link. I just gave it a spin. Excellent work! Just one minor comment. I followed the instructions in doc/openflow-switch.h, and built Blake's OpenFlow repository [0]. Yet, "./waf configure --with-openflow" wouldn't enable OpenFlow on my system. I inferred from build/config.log that I didn't have the Boost libraries on my system. It worked as expected after I installed them. Perhaps you can mention the Boost requirement in the documentation and/or perform an extra check from the wscript? [0] http://code.nsnam.org/bhurd/openflow > > -- > Josh Pelkey > -- Lalith Suresh Department of Computer Science and Engineering Instituto Superior T?cnico www.lalith.in From jpelkey at gatech.edu Thu Mar 10 13:24:34 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Thu, 10 Mar 2011 16:24:34 -0500 Subject: [Ns-developers] Ns-3 with OpenFlow In-Reply-To: References: Message-ID: Thanks Lalith! I kept meaning to fix up the wscript to check for boost. At the very least, it needs to be in the doc. I will get this in there tomorrow. Thanks again. -- Josh On Thu, Mar 10, 2011 at 4:21 PM, Lalith Suresh wrote: > Hello Josh, > > On Thu, Mar 10, 2011 at 7:01 PM, Josh Pelkey wrote: >> Hi all, >> >> Blake and I finally got the ns-3 openflow interface working with the >> new modular structure. We would really like to merge this last GSoC >> project tomorrow, as the next GSoC is here. Please have a look at the >> code here: http://codereview.appspot.com/4266051/ >> >> For a reminder of the project, here is a link to the (somewhat >> out-dated) wiki: http://www.nsnam.org/wiki/index.php/GSOC2010OpenFlow >> and the previous code review: http://codereview.appspot.com/1872049/ >> A better source of documentation might be the >> src/openflow/doc/openflow-switch.h file in the first code review link. > > I just gave it a spin. Excellent work! > > Just one minor comment. I followed the instructions in > doc/openflow-switch.h, and built Blake's OpenFlow repository [0]. Yet, > "./waf configure --with-openflow" wouldn't enable OpenFlow on my > system. I inferred from build/config.log that I didn't have the Boost > libraries on my system. It worked as expected after I installed them. > Perhaps you can mention the Boost requirement in the documentation > and/or perform an extra check from the wscript? > > [0] http://code.nsnam.org/bhurd/openflow > >> >> -- >> Josh Pelkey >> > > > > -- > Lalith Suresh > Department of Computer Science and Engineering > Instituto Superior T?cnico > www.lalith.in > From jpelkey at gatech.edu Fri Mar 11 08:50:28 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Fri, 11 Mar 2011 11:50:28 -0500 Subject: [Ns-developers] Ns-3 with OpenFlow In-Reply-To: References: Message-ID: I added a boost check to the openflow wscript. I couldn't find many examples or documentation of this online, so I'm not sure if it is done the best way. It seems to work fine on my Ubuntu machine though. This is what I added under def configure(conf): conf.check_tool('boost') conf.env['BOOST'] = conf.check_boost(lib = 'signals filesystem', kind = 'STATIC_BOTH', score_version = (-1000, 1000), tag_minscore = 1000,) if not conf.env['BOOST']: conf.report_optional_feature("openflow", "NS-3 OpenFlow Integration", False, "Required boost libraries not found") return -- Josh On Thu, Mar 10, 2011 at 4:24 PM, Josh Pelkey wrote: > Thanks Lalith! I kept meaning to fix up the wscript to check for > boost. At the very least, it needs to be in the doc. I will get this > in there tomorrow. Thanks again. > > -- > Josh > > On Thu, Mar 10, 2011 at 4:21 PM, Lalith Suresh wrote: >> Hello Josh, >> >> On Thu, Mar 10, 2011 at 7:01 PM, Josh Pelkey wrote: >>> Hi all, >>> >>> Blake and I finally got the ns-3 openflow interface working with the >>> new modular structure. We would really like to merge this last GSoC >>> project tomorrow, as the next GSoC is here. Please have a look at the >>> code here: http://codereview.appspot.com/4266051/ >>> >>> For a reminder of the project, here is a link to the (somewhat >>> out-dated) wiki: http://www.nsnam.org/wiki/index.php/GSOC2010OpenFlow >>> and the previous code review: http://codereview.appspot.com/1872049/ >>> A better source of documentation might be the >>> src/openflow/doc/openflow-switch.h file in the first code review link. >> >> I just gave it a spin. Excellent work! >> >> Just one minor comment. I followed the instructions in >> doc/openflow-switch.h, and built Blake's OpenFlow repository [0]. Yet, >> "./waf configure --with-openflow" wouldn't enable OpenFlow on my >> system. I inferred from build/config.log that I didn't have the Boost >> libraries on my system. It worked as expected after I installed them. >> Perhaps you can mention the Boost requirement in the documentation >> and/or perform an extra check from the wscript? >> >> [0] http://code.nsnam.org/bhurd/openflow >> >>> >>> -- >>> Josh Pelkey >>> >> >> >> >> -- >> Lalith Suresh >> Department of Computer Science and Engineering >> Instituto Superior T?cnico >> www.lalith.in >> > From nbaldo at cttc.es Fri Mar 11 10:59:11 2011 From: nbaldo at cttc.es (Nicola Baldo) Date: Fri, 11 Mar 2011 19:59:11 +0100 Subject: [Ns-developers] GSoC 2011: new LTE projects Message-ID: <4D7A70FF.9000700@cttc.es> FYI, we've just added two new GSoC project proposals jointly mentored by Marco Miozzo and myself: - LTE Time Division Duplex (TDD) support - LTE Scheduling with the FemtoForum MAC Scheduler API http://www.nsnam.org/wiki/index.php/GSOC2011Projects#Project_Ideas Regards, Nicola From rivanvx at gmail.com Sat Mar 12 10:23:16 2011 From: rivanvx at gmail.com (=?UTF-8?Q?Vedran_Mileti=C4=87?=) Date: Sat, 12 Mar 2011 19:23:16 +0100 Subject: [Ns-developers] Ns-3 with OpenFlow In-Reply-To: References: Message-ID: 2011/3/11 Josh Pelkey > I added a boost check to the openflow wscript. I couldn't find many > examples or documentation of this online, so I'm not sure if it is > done the best way. It seems to work fine on my Ubuntu machine though. > This is what I added under def configure(conf): > > conf.check_tool('boost') > conf.env['BOOST'] = conf.check_boost(lib = 'signals filesystem', > kind = 'STATIC_BOTH', > score_version = (-1000, 1000), > tag_minscore = 1000,) > > if not conf.env['BOOST']: > conf.report_optional_feature("openflow", "NS-3 OpenFlow > Integration", False, > "Required boost libraries not found") > return > Hi, I just tried the code. I use openflow from git repository, and I compiled it before ns-3. I get: boost headers : Version 1_42 (/usr/include) library boost_signals : ok library boost_filesystem : ok Checking for OpenFlow location : ok ../openflow (guessed) Checking for library dl : yes Checking for library xml2 : yes Checking for library openflow : no NS-3 OpenFlow Integration : not enabled (openflow library not found) What does "openflow library" mean? How can I build it? Regards, Vedran Mileti? From jpelkey at gatech.edu Sun Mar 13 16:19:02 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Sun, 13 Mar 2011 19:19:02 -0400 Subject: [Ns-developers] Ns-3 with OpenFlow In-Reply-To: References: Message-ID: Hi, Please have a quick look at the documentation of openflow for ns-3 in src/openflow/doc. This gives the steps to build the openflow library, and I think this will clear things up for you. -- Josh Pelkey On Mar 12, 2011 1:23 PM, "Vedran Mileti?" wrote: > 2011/3/11 Josh Pelkey > >> I added a boost check to the openflow wscript. I couldn't find many >> examples or documentation of this online, so I'm not sure if it is >> done the best way. It seems to work fine on my Ubuntu machine though. >> This is what I added under def configure(conf): >> >> conf.check_tool('boost') >> conf.env['BOOST'] = conf.check_boost(lib = 'signals filesystem', >> kind = 'STATIC_BOTH', >> score_version = (-1000, 1000), >> tag_minscore = 1000,) >> >> if not conf.env['BOOST']: >> conf.report_optional_feature("openflow", "NS-3 OpenFlow >> Integration", False, >> "Required boost libraries not found") >> return >> > > Hi, > > I just tried the code. I use openflow from git repository, and I compiled it > before ns-3. I get: > > boost headers : Version 1_42 > (/usr/include) > library boost_signals : ok > library boost_filesystem : ok > Checking for OpenFlow location : ok ../openflow > (guessed) > Checking for library dl : yes > Checking for library xml2 : yes > Checking for library openflow : no > > NS-3 OpenFlow Integration : not enabled (openflow library not found) > > What does "openflow library" mean? How can I build it? > > Regards, > > Vedran Mileti? From nbaldo at cttc.es Mon Mar 14 03:00:26 2011 From: nbaldo at cttc.es (Nicola Baldo) Date: Mon, 14 Mar 2011 11:00:26 +0100 Subject: [Ns-developers] documentation: manual vs doxygen Message-ID: <4D7DE73A.6090308@cttc.es> Hi all, currently the documentation (design documentation, user-visible features, etc) for several modules is provided both in the manual and through doxygen. Examples: wifi http://www.nsnam.org/docs/manual/html/wifi.html http://www.nsnam.org/doxygen/group___wifi.html wimax http://www.nsnam.org/docs/manual/html/wimax.html http://www.nsnam.org/doxygen/group___wi_m_a_x.html Having very similar information in two places is harder to maintain, and also makes it more difficult for the user to find where the information is. Can we decide on a single location where we should put the documentation? I propose to have it in the manual, leaving doxygen for the API only. The only issue that I see is how to integrate this in the modular build: ideally, developers should be able to provide manual sources within the module directory. Nicola From tomh at tomh.org Mon Mar 14 07:43:06 2011 From: tomh at tomh.org (Tom Henderson) Date: Mon, 14 Mar 2011 08:43:06 -0600 Subject: [Ns-developers] documentation: manual vs doxygen In-Reply-To: <4D7DE73A.6090308@cttc.es> References: <4D7DE73A.6090308@cttc.es> Message-ID: <1f87165f9735d9255a6af7b037dc71dd@tomh.org> On Mon, 14 Mar 2011 11:00:26 +0100, Nicola Baldo wrote: > Hi all, > > currently the documentation (design documentation, user-visible > features, etc) for several modules is provided both in the manual and > through doxygen. Examples: > > wifi > http://www.nsnam.org/docs/manual/html/wifi.html > http://www.nsnam.org/doxygen/group___wifi.html > > wimax > http://www.nsnam.org/docs/manual/html/wimax.html > http://www.nsnam.org/doxygen/group___wi_m_a_x.html > > Having very similar information in two places is harder to maintain, and > also makes it more difficult for the user to find where the information is. > > Can we decide on a single location where we should put the > documentation? I propose to have it in the manual, leaving doxygen for > the API only. +1 > > The only issue that I see is how to integrate this in the modular build: > ideally, developers should be able to provide manual sources within the > module directory. > This issue was raised before in the context of PhySim. Now that we have better modularization, I would like to add some support for the manual to find sources in module directories, and maintain them in the doc/ directories as appropriate. For models outside of the ns-3 core, I also would like to allow module authors to document in formats other than restructured text if they have other available documentation, such as published papers or tech reports written in LaTeX. So, authors would have the option of chaining up to the main documentation system or doing their own thing. I was planning to review some plans here in the upcoming developers meeting, and I will post also to the list. - Tom From jpelkey at gatech.edu Mon Mar 14 10:52:30 2011 From: jpelkey at gatech.edu (Josh Pelkey) Date: Mon, 14 Mar 2011 13:52:30 -0400 Subject: [Ns-developers] ns-3.11 dates and bugs Message-ID: We've shifted the expected dates for ns-3.11 by about a month (see below). I'd like to move into the "small feature development and bug fixing phase" by the end of this week. So it's time to change our focus to bugs. I've put some of the higher priority bugs below as a reminder. I'll make sure to start bugging some of you individually in the coming week :) /* Current Schedule */ March 18 -- Deadline for new feature merge March 18 -- Begin the phase of small feature development and bug fixing April 6 -- Small feature development and bug fixing ends April 6 -- Open phase ends April 6 -- Maintenance phase begins April 30 -- Maintenance phase ends April 30 -- Code freeze phase begins April 30 -- ns-3.11-RC1 May 3 -- ns-3.11-RC2 May 6 -- ns-3.11-RC3 May 8 -- ns-3.11 posted May 8 -- Code freeze phase ends May 8 -- ns-3.12 Open phase begins /* Highest Priority Bugs */ -- bug 1038 -- Time::Get*Seconds () return signed integer while actually returning unsigned http://www.nsnam.org/bugzilla/show_bug.cgi?id=1038 -- bug 1044 -- Seconds (1e-9) creates Time that is not IsPositive () http://www.nsnam.org/bugzilla/show_bug.cgi?id=1044 -- bug 445 -- Class name rename Scalar->Dimensionless http://www.nsnam.org/bugzilla/show_bug.cgi?id=445 -- bug 976 -- wifi-wired-bridging regression test fails because of rounding errors in mobility model http://www.nsnam.org/bugzilla/show_bug.cgi?id=976 -- bug 1042 -- AODV RERR implosion (missing RERR_RATELIMIT) http://www.nsnam.org/bugzilla/show_bug.cgi?id=1042 -- bug 1046 -- AODV: NULL callback http://www.nsnam.org/bugzilla/show_bug.cgi?id=1046 -- Josh Pelkey From gjcarneiro at gmail.com Mon Mar 14 11:07:52 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Mon, 14 Mar 2011 19:07:52 +0100 Subject: [Ns-developers] ns-3 modular python bindings => merged In-Reply-To: References: Message-ID: On Tue, Mar 8, 2011 at 17:04, Gustavo Carneiro wrote: > > > On Sun, Nov 7, 2010 at 23:39, Gustavo Carneiro wrote: > >> Hello, >> >> I have begun to work on modular Python bindings. The work I have so far >> has been uploaded to branch gjc/ns-3-modular-bindings: >> http://code.nsnam.org/gjc/ns-3-modular-bindings/ >> >> > Hello, > > I have updated the code to ns-3-dev, added a few bugs fixed, and pushed it > to ns-3-dev. > > I know this is experimental work, but since the modular bindings are > disabled by default I do not expect it to cause any problems. In the mean > time, I get one less branch to worry about and it becomes easier for other > people to test it. > > >> A new waf configure option was added: ./waf configure >> --bindings-type=TYPE, where type can be "modular", "monolithic" (default), >> or "both". >> >> A new waf option ./waf --apiscan=MODULE1,MODULE2,..., will scan bindings >> just for the specifying modules an place the apidefs in >> src//bindings. The apidefs of a module will have to pull in >> partial apidefs of other modules that are used by it, which is unfortunate >> but needed to give enough information for pybindgen to generate correct >> code. In runtime, the other modules' types are simply imported, not wrapped >> again. >> >> A new Build method is added at runtime to request that bindings for the >> current module be added, just call "bld.ns3_python_bindings()" in the module >> wscript file, it will figure the rest by context (current wscript path). >> >> The new Python bindings are installed into an 'ns' Python namespace, >> instead of ns3. For instance, "import ns.node". This will avoid clashes >> with the old bindings, in case we want to keep the old bindings for >> compatibility. >> > > The above information is still valid. > > >> >> TODO: >> >> 1. This stuff doesn't even build right now, for anyone else but me, due >> to circular dependencies between ns-3 modules; I have some quick-and-dirty >> patches in my tree, to get it to build, but then it fails again in runtime >> for the same reason. We need to fix circular dependencies, or else modular >> bindings have no chance of working and it's not my fault; >> >> > Thankfully, the above issue of circular dependencies seem to be resolved, > but I only compiled modular python bindings for the 'core' and 'network' > modules so far. > > >> 2. In the modular bindings there was custom code for wrapping ns-3 >> Callbacks, with a callbacks_list.py file holding the list of detected >> Callback types. This stuff wasn't yet replicated in the modular bindings; >> >> 3. In the old bindings, some code was injected in the scanned header >> file to force some template instantiations, this is missing for now in the >> new bindings; >> >> 1-3 are fixed now. More modules have been scanned, Python unit tests now pass, and some examples will run (with some harmless warnings). Modular Python bindings are starting to look good, I suggest people start testing them and report bugs. At some point, it may make sense to add the --bindings-type=both waf option to the build bots, so that the new bindings are compiled on different architectures... 4. When a module includes a header of another module, all the types of the >> other module are imported by its python module. Maybe it is possible to >> detect which types are actually needed by the current module's bindings and >> import just those types; I'll have to check if I have time. >> >> > This would be an optimization, not that important. > > The above TODO items are still unresolved at this point. > > Regards, > > -- > Gustavo J. A. M. Carneiro > INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc > "The universe is always one step beyond logic." -- Frank Herbert > -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From rivanvx at gmail.com Tue Mar 15 09:37:58 2011 From: rivanvx at gmail.com (=?UTF-8?Q?Vedran_Mileti=C4=87?=) Date: Tue, 15 Mar 2011 17:37:58 +0100 Subject: [Ns-developers] Ns-3 with OpenFlow In-Reply-To: References: Message-ID: Dana 14. o?ujka 2011. 00:19 Josh Pelkey je napisao/la: > Hi, > > Please have a quick look at the documentation of openflow for ns-3 in > src/openflow/doc. This gives the steps to build the openflow library, and I > think this will clear things up for you. > Thanks! Vedran Mileti? From bernd.hirschler at gmail.com Wed Mar 16 07:56:28 2011 From: bernd.hirschler at gmail.com (Bernd Hirschler) Date: Wed, 16 Mar 2011 15:56:28 +0100 Subject: [Ns-developers] IPv6 IPsec extension Message-ID: Hello ns3 developers! For a projec i am implementing the IPsec extensions for IPv6. I made myself familiar with the IPv6 code and started implementing the headers for AH and ESP. To test my code i added the following code to the ping6 application (into the send function in ping6.cc): Ipv6ExtensionAHHeader AHHeader; AHHeader.SetNextHeader(Ipv6Header::IPV6_ICMPV6); AHHeader.SetLength(AHHeader.GetLength()); AHHeader.SetReserved(0); AHHeader.SetSPI(1); AHHeader.SetSequenceNumber(2); AHHeader.SetTest((char *)"aaaaaaaaaaaa", (uint8_t) 13); p->AddHeader (AHHeader); NS_LOG_INFO ("Add AH Header " << AHHeader.GetTest()); m_socket->SetAttribute ("Protocol", UintegerValue (Ipv6Header::IPV6_EXT_AUTHENTIFICATION)); The simulation starts successfully but after the packet is generated and sent it stops: Create nodes. Create channels. Assign IPv6 Addresses. Create Applications. Ping6Application:Ping6() Ping6Application:SetLocal(0x1eab080, 0000:0000:0000:0000:0000:0000:0000:0000) Ping6Application:SetRemote(0x1eab080, ff02:0000:0000:0000:0000:0000:0000:0001) Run Simulation. Ping6Application:StartApplication() Ping6Application:ScheduleTransmit(0x1eab080, 0ns) Ping6Application:Send() Add AH Header aaaaaaaaaaaa Sent 106 bytes to ff02:0000:0000:0000:0000:0000:0000:0001 assert failed. cond="interface", msg="Try to send on link-local multicast address, and no interface index is given!", file=../src/routing/static-routing/model/ipv6-static-routing.cc, line=228 terminate called without an active exception Command ['/home/maniac/work/simulations/ns-allinone-3.10/ns-3.10/build/debug/examples/ipv6/ping6'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run --command-template="gdb --args %s "). I tried to find out where things go wrong but can not pinpoint the location of the error. I checked m_ifIndex because it looked like this could be the mistake but it is set to 1 and that should be fine . Also the pcap files which are generated look good, wireshark interprets the packet correct and shows me the fields, but only one message is sent there is no reply, but the request is correct. Can someone give me a hint where/how to pinpoint this error and supply ns3 with a working IPsec implementation. Within the project I would implement IPsec AH and ESP together with the necessary calculations (authentication and encryption) and supply a fully functional IPsec implementation. Thanks for your time and hints in advance! -- Kind regards Bernd :x From suresh.lalith at gmail.com Wed Mar 16 09:54:59 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Wed, 16 Mar 2011 16:54:59 +0000 Subject: [Ns-developers] IPv6 IPsec extension In-Reply-To: References: Message-ID: Hello, On Wed, Mar 16, 2011 at 2:56 PM, Bernd Hirschler wrote: > Hello ns3 developers! > > For a projec i am implementing the IPsec extensions for IPv6. > I made myself familiar with the IPv6 code and started implementing the > headers for AH and ESP. > To test my code i added the following code to the ping6 application (into > the send function in ping6.cc): > Ipv6ExtensionAHHeader AHHeader; > AHHeader.SetNextHeader(Ipv6Header::IPV6_ICMPV6); > AHHeader.SetLength(AHHeader.GetLength()); > AHHeader.SetReserved(0); > AHHeader.SetSPI(1); > AHHeader.SetSequenceNumber(2); > AHHeader.SetTest((char *)"aaaaaaaaaaaa", (uint8_t) 13); > p->AddHeader (AHHeader); > NS_LOG_INFO ("Add AH Header " << AHHeader.GetTest()); > m_socket->SetAttribute ("Protocol", UintegerValue > (Ipv6Header::IPV6_EXT_AUTHENTIFICATION)); > > The simulation starts successfully but after the packet is generated and > sent it stops: > Create nodes. > Create channels. > Assign IPv6 Addresses. > Create Applications. > Ping6Application:Ping6() > Ping6Application:SetLocal(0x1eab080, > 0000:0000:0000:0000:0000:0000:0000:0000) > Ping6Application:SetRemote(0x1eab080, > ff02:0000:0000:0000:0000:0000:0000:0001) > Run Simulation. > Ping6Application:StartApplication() > Ping6Application:ScheduleTransmit(0x1eab080, 0ns) > Ping6Application:Send() > Add AH Header aaaaaaaaaaaa > Sent 106 bytes to ff02:0000:0000:0000:0000:0000:0000:0001 > assert failed. cond="interface", msg="Try to send on link-local multicast > address, and no interface index is given!", > file=../src/routing/static-routing/model/ipv6-static-routing.cc, line=228 > terminate called without an active exception > Command > ['/home/maniac/work/simulations/ns-allinone-3.10/ns-3.10/build/debug/examples/ipv6/ping6'] > terminated with signal SIGIOT. Run it under a debugger to get more > information (./waf --run --command-template="gdb --args %s > "). > > I tried to find out where things go wrong but can not pinpoint the location > of the error. I checked m_ifIndex because it looked like this could be the > mistake but it is set to 1 and that should be fine . Also the pcap files > which are generated look good, wireshark interprets the packet correct and > shows me the fields, but only one message is sent there is no reply, but the > request is correct. > > Can someone give me a hint where/how to pinpoint this error and supply ns3 > with a working IPsec implementation. > > Within the project I would implement IPsec AH and ESP together with the > necessary calculations (authentication and encryption) and supply a fully > functional IPsec implementation. > It's hard to tell just from this, but have you tried NS_LOG? -- Lalith Suresh Department of Computer Science and Engineering Instituto Superior T?cnico www.lalith.in From anirudh at csail.mit.edu Wed Mar 16 19:25:54 2011 From: anirudh at csail.mit.edu (anirudh@csail.mit.edu) Date: Wed, 16 Mar 2011 22:25:54 -0400 Subject: [Ns-developers] Emulation support with Wimax/LTE Message-ID: <20110316222554.96394tks5474fjn6@webmail.csail.mit.edu> Hi Has the tap-device based emulation support in ns-3 been designed/extended to work with Wimax/LTE ? All code examples in "ns-3-dev/examples/tap" use either Wifi or CSMA. I tried interfacing Wimax and LTE with the tap devices. The TapBridge can read packets from the lxc VM, but the corresponding ghost source nodes inside the simulation can't forward packets to the corresponding ghost destination node. Has anyone encountered this before ? Regards Anirudh From tomh at tomh.org Wed Mar 16 22:13:16 2011 From: tomh at tomh.org (Tom Henderson) Date: Wed, 16 Mar 2011 22:13:16 -0700 Subject: [Ns-developers] IPv6 IPsec extension In-Reply-To: References: Message-ID: <4D81986C.1030403@tomh.org> > > Can someone give me a hint where/how to pinpoint this error and supply ns3 > with a working IPsec implementation. If you try to send to a link-local multicast address from a userspace application such as ping, you will need to bind the socket to the appropriate outbound interface because link local multicast has no link-specific prefix. I do not know offhand whether this will work, but I would try to call Socket::BindToNetDevice (device) on the socket before using it. - Tom From mathieu.lacage at gmail.com Thu Mar 17 06:01:20 2011 From: mathieu.lacage at gmail.com (Mathieu Lacage) Date: Thu, 17 Mar 2011 14:01:20 +0100 Subject: [Ns-developers] ns-3 modular python bindings => merged In-Reply-To: References: Message-ID: On Mon, Mar 14, 2011 at 19:07, Gustavo Carneiro wrote: > ?4. When a module includes a header of another module, all the types of the >>> other module are imported by its python module. ?Maybe it is possible to >>> detect which types are actually needed by the current module's bindings and >>> import just those types; I'll have to check if I have time. > This would be an optimization, not that important. My intuition is that this is more than an optimization because if I make an API modification/addition in the 'core' module, then I get to rescan all modules ? This is not going to be fun at all :/ Mathieu -- Mathieu Lacage From bernd.hirschler at gmail.com Thu Mar 17 02:30:42 2011 From: bernd.hirschler at gmail.com (Bernd Hirschler) Date: Thu, 17 Mar 2011 10:30:42 +0100 Subject: [Ns-developers] IPv6 IPsec extension In-Reply-To: <4D81986C.1030403@tomh.org> References: <4D81986C.1030403@tomh.org> Message-ID: Thanks for the tip Tom, but i modified the ping6 example from ns3. So the initialization should be correct, ping6 already reserves the socket and multicast. Currently i am testing with the hint from Lalith (thanks too!) and set different NS_LOG exports to localize the error. So far i see that the last thing that is executed is my new Deserializer, i will dig deeper which functions comes next. Just for your information, here is the output from my findings so far: Create nodes. Create channels. Assign IPv6 Addresses. Create Applications. Ping6Application:Ping6() Ping6Application:SetLocal(0x8c2f20, 0000:0000:0000:0000:0000:0000:0000:0000) Ping6Application:SetRemote(0x8c2f20, ff02:0000:0000:0000:0000:0000:0000:0001) Run Simulation. Ping6Application:StartApplication() Ping6Application:ScheduleTransmit(0x8c2f20, 0ns) Ping6Application:Send() Add AH Header authentication data: aaaaaaaaaaaa; 2s 0 Ipv6ExtensionHeader:Deserialize(): AH start; 2s 0 Ipv6ExtensionHeader:Deserialize(): AH end; 2s 0 Ipv6ExtensionHeader:Deserialize(): AH start; 2s 0 Ipv6ExtensionHeader:Deserialize(): AH end; Sent 106 bytes to ff02:0000:0000:0000:0000:0000:0000:0001 2.00217s 1 Ipv6ExtensionHeader:Deserialize(): AH start; 2.00217s 1 Ipv6ExtensionHeader:Deserialize(): AH end; assert failed. cond="interface", msg="Try to send on link-local multicast address, and no interface index is given!", file=../src/routing/static-routing/model/ipv6-static-routing.cc, line=228 terminate called without an active exception -- Kind regards Bernd :x On Thu, Mar 17, 2011 at 06:13, Tom Henderson wrote: > > >> Can someone give me a hint where/how to pinpoint this error and supply ns3 >> with a working IPsec implementation. >> > > If you try to send to a link-local multicast address from a userspace > application such as ping, you will need to bind the socket to the > appropriate outbound interface because link local multicast has no > link-specific prefix. > > I do not know offhand whether this will work, but I would try to call > Socket::BindToNetDevice (device) on the socket before using it. > > - Tom > From jabraham3 at mail.gatech.edu Thu Mar 17 05:33:08 2011 From: jabraham3 at mail.gatech.edu (John Abraham) Date: Thu, 17 Mar 2011 08:33:08 -0400 Subject: [Ns-developers] wifi: MgtProbeRequestHeader::SetSupportedRates: operator= missing? Message-ID: <017001cbe49f$793b1800$6bb14800$@mail.gatech.edu> Hi, While I was porting void MgtProbeRequestHeader::SetSupportedRates (SupportedRates rates) { m_rates = rates; } To Visual C++ I found, I needed to overload "operator=" ,something like SupportedRates & SupportedRates::operator= (const SupportedRates & sr) { this->m_nRates = sr.m_nRates ; for (int i = 0 ; i < MAX_SUPPORTED_RATES ; i++) { this->m_rates[i] = sr.m_rates[i]; } this->extended = ExtendedSupportedRatesIE (this); return *this; } Particularly, once SetSupportedRates is popped , "rates" being out of scope, may leave m_rates.extended->m_supportedRates having a pointer to an out of scope object. Can someone confirm this theory, because this code works ok on g++ but not on Visual C++? Thanks John From gjcarneiro at gmail.com Thu Mar 17 08:46:47 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Thu, 17 Mar 2011 16:46:47 +0100 Subject: [Ns-developers] ns-3 modular python bindings => merged In-Reply-To: References: Message-ID: On Thu, Mar 17, 2011 at 14:01, Mathieu Lacage wrote: > On Mon, Mar 14, 2011 at 19:07, Gustavo Carneiro > wrote: > > 4. When a module includes a header of another module, all the types of > the > >>> other module are imported by its python module. Maybe it is possible > to > >>> detect which types are actually needed by the current module's bindings > and > >>> import just those types; I'll have to check if I have time. > > > This would be an optimization, not that important. > > My intuition is that this is more than an optimization because if I > make an API modification/addition in the 'core' module, then I get to > rescan all modules ? This is not going to be fun at all :/ > It's not clear yet how a change in the core module will impact other modules that depend on it. But, in principle, only if you remove a class from the core module (or rename) will you need to rescan every other modules. Modifying a class' methods or functions inside a module will not have impact on other modules[1]. I think not all the problems can be immediately foreseen. We have to try, and see how it works. [1] there will likely be exceptions, like, adding a pure virtual methods that makes a class abstract, where before it was not, has a big impact, even on other modules. -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From lucaanchora at virgilio.it Thu Mar 17 09:43:33 2011 From: lucaanchora at virgilio.it (lucaanchora@virgilio.it) Date: Thu, 17 Mar 2011 17:43:33 +0100 (CET) Subject: [Ns-developers] [NS-developers] Bug in multiple-flows management Message-ID: <12ec4b35fa3.lucaanchora@virgilio.it> Hi. While working with ns3-lte in a multi-flow scenario (together with my colleagues Marco Mezzavilla and Iffat Ahmed), some errors in the code of NS3 showed up. In the file src/devices/lte/examples/lte-multiple-flows.cc three different traffic flows are introduced and assigned to GBR and NGBR bearers. In despite of this, at run time you can see that all the packets are enqueued in the DefaultBearer of the RRC entity. Actually, this is due to two facts: 1) in lte-multiple-flows.cc, sender and receiver information are inverted in the creation of the IpcsClassifierRecord object. The actual implementation is IpcsClassifierRecord *ipcs_1 = new IpcsClassifierRecord(UEinterfaces.GetAddress (0), "255.255.255.0", ENBinterface.GetAddress (0), "255.255.255.0", 100, 100, 0, 10000, 17, 1); while the correct one, in my opinion, should be IpcsClassifierRecord *ipcs_1 = new IpcsClassifierRecord (ENBinterface.GetAddress (0), "255.255.255.0", UEinterfaces.GetAddress (0), "255.255.255.0", 0, 65535, 100, 100, 17, 1); Note that also the port range for the sender has been increased. Instead of 0:10000, 0:65535 is used since this is the actual range into which the port number can span (even though, the numbers 0...1023 are reserved for well-known services). 2) There is an error in the file src/devices/wimax/ipcs-classifier-record.cc, in functions IpcsClassifierRecord::CheckMatchDstAddr and IpcsClassifierRecord::CheckMatchSrcAddr. In both cases there is an error when comparing the IP address (destination and source, respectively) of the packet that has to be classified with the corresponding IP address of the flow managed by the bearer. The current implementation (in the first of the two functions, for the other it is similar) is: if (dstAddress.CombineMask ((*iter).Mask) == (*iter).Address) Actually, the function CombineMask gives as a result the bitwise AND between the dstAddress and the netmask (*iter).Mask, that corresponds to the address of the network. Of course, such a comparison will always fail for all the packets, leading to the conclusion that there is no bearer managing the flow they belong to. This is the second reason for which the DefaultBearer is always used. A proposal for fixing this second point is to ise the following comparison instead of the previous one: if (dstAddress == (*iter).Address) With the two changes described above the simulations started working smoothly, with each packet put in the queue of the right bearer. In the file ipcs-classifier-record.cc there is also a wrong comment in the first constructor IpcsClassifierRecord::IpcsClassifierRecord (void). The protocol number of UDP is 17, while for TCP it is 6, thus the comments written in the implementation should be inverted. Another minor thing that I would like to point out regards the implementation of the UdpClient and UdpServer entities. In computer networks theory the general idea is that the client is the process that makes requests to the server, while the server is the process that answers to the client and provides the contents it needs. Thus, the server is intended as the entity that transmits most of the data for most of the time (e.g. in ADSL the uplink and downlink have different bandwidth since the final user with all his clients is supposed to be a consumer instead of a producer of data). But, if you have a look at the current implementation of the classes UdpClient and UdpServer, you will note that the situation is inverted: the client periodically sends packets, while the server only receives them through the socket. Granted that this is only a matter of convention, is there any particular reason for this implementative choice in ns3? Regards, Luca From lucaanchora at virgilio.it Thu Mar 17 09:46:41 2011 From: lucaanchora at virgilio.it (lucaanchora@virgilio.it) Date: Thu, 17 Mar 2011 17:46:41 +0100 (CET) Subject: [Ns-developers] [NS-developers] Bug in ns3-lte SomplePacketScheduler Message-ID: <12ec4b63e8e.lucaanchora@virgilio.it> Hi. While working on the last version of ns3-lte (together with my colleagues Marco Mezzavilla and Iffat Ahmed) some errors came up in the SimplePacketScheduler class, in particular in method DoRunPacketScheduler. Error 1) In the two FOR loops where GBR and NGBR bearers are scanned to find packets, the condition if ((*it)->GetQueue ()->IsEmpty ()) is wrong since there is a NOT missing. The correct implementation should be if (!((*it)->GetQueue ()->IsEmpty ())). Error 2) In the same FOR loops of the previous case, packets are not taken from the current bearer pointed by the iterator *it, but always from the first bearer of the list (method at(0)). This is do to the fact that the following instruction is used Ptr p = enb->GetRrcEntity ()->GetDownlinkNgbrBearers ()->at(0)->GetRlcEntity ()->Dequeue (); while the correct version is Ptr p = (*it)->GetRlcEntity ()->Dequeue (); Error 3) In the first FOR loop, where the GBR bearers are scanned, the following instruction is wrong since it refers to the NGBR beares Ptr p = enb->GetRrcEntity ()->GetDownlinkNgbrBearers ()->at(0)->GetRlcEntity ()->Dequeue (); But, if you fix the error 2 described before, this error will be automatically fixed as well. Another minor thing that is worth noting refers to the header length of the MAC protocol for LTE. According to what stated in class LteMacHeader (file src/devices/lte/model/lte-mac-header.cc), this header contains only the MAC addresses of sender and receiver, which corresponds to a total of 12 bytes (6 + 6). If you have a look at the implementation of the function LteMacHeader::GetSerializedSize(void), this returns always 13 (1 byte more). Shouldn't it be 12? Regards, Luca From fonsecabb at gmail.com Fri Mar 18 08:37:47 2011 From: fonsecabb at gmail.com (=?ISO-8859-1?Q?Ant=F3nio_Fonseca?=) Date: Fri, 18 Mar 2011 15:37:47 +0000 Subject: [Ns-developers] (no subject) Message-ID: <4D837C4B.90006@gmail.com> Hello I'm working in geographic routing for VANET and I've almost finished GPSR routing protocol (and on the way to finish RLS location service). I want to insert a layer between the transport and L3 protocol, because all my packets need a header attached to it. I wanted to know what do I have to do to make that possible. Thank you in advance Ant?nio Fonseca From tomh at tomh.org Fri Mar 18 09:36:35 2011 From: tomh at tomh.org (Tom Henderson) Date: Fri, 18 Mar 2011 09:36:35 -0700 Subject: [Ns-developers] ns-3 L4/L3 shim In-Reply-To: <4D837C4B.90006@gmail.com> References: <4D837C4B.90006@gmail.com> Message-ID: <4D838A13.7020108@tomh.org> On 03/18/2011 08:37 AM, Ant?nio Fonseca wrote: > Hello > > I'm working in geographic routing for VANET and I've almost finished > GPSR routing protocol (and on the way to finish RLS location service). > I want to insert a layer between the transport and L3 protocol, because > all my packets need a header attached to it. I wanted to know what do I > have to do to make that possible. > For the last release, I added some support (in IPv4) to allow some people to work on DSR routing, which also inserts a new header between L3 and transport. If you look at some proof-of-concept code here, you should be able to follow the same approach (where DsrOptions is replaced by your custom header): http://code.nsnam.org/tomh/ns-3-dsr/rev/dc40e27bf514 - Tom From ruben at net.t-labs.tu-berlin.de Fri Mar 18 09:58:10 2011 From: ruben at net.t-labs.tu-berlin.de (Ruben Merz) Date: Fri, 18 Mar 2011 17:58:10 +0100 Subject: [Ns-developers] WNS3 2011 and developer meeting _next_ week in Barcelona Message-ID: <4D838F22.2050500@net.t-labs.tu-berlin.de> Dear all, This is a gentle reminder that the 3rd workshop on ns-3 and a developer meeting will take place next week in Barcelona. WNS3 takes place on Friday, March 25th. Here is the preliminary program: http://www.wns3.org/2011/Programme/Schedule We also put up a call for informal talks in the afternoon of WNS3. So far, we haven't had much success for this part of WNS3. So, if you want to use a 10-15 minutes (or longer, after it is informal) slot next Friday for an informal talk, contact Nicola Baldo and/or myself _before_ next Wednesday, 11.59 pm. The developer meeting official starts on Saturday. Information is here http://www.nsnam.org/wiki/index.php/DevelMeetingMarch2011. The tentative list of topics is still slim. So, if you plan to attend, add your name to the list as well as topics you would like to see addressed. Depending on the length of the informal part of WNS3, we may start the developer meeting on Friday afternoon. Best, Ruben From suresh.lalith at gmail.com Fri Mar 18 12:23:32 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Fri, 18 Mar 2011 19:23:32 +0000 Subject: [Ns-developers] GSoC 2011 results Message-ID: Hello everyone, Unfortunately, we couldn't make it into the Google Summer of Code this year. We will try again next year. However, all the projects on the Ideas page are still open and students are encouraged to try and work on them outside of GSoC as well. -- Lalith Suresh Department of Computer Science and Engineering Instituto Superior T?cnico www.lalith.in From tomh at tomh.org Fri Mar 18 15:25:57 2011 From: tomh at tomh.org (Tom Henderson) Date: Fri, 18 Mar 2011 15:25:57 -0700 Subject: [Ns-developers] GSoC 2011 results In-Reply-To: References: Message-ID: <4D83DBF5.5040500@tomh.org> On 03/18/2011 12:23 PM, Lalith Suresh wrote: > Hello everyone, > > Unfortunately, we couldn't make it into the Google Summer of Code this > year. We will try again next year. > > However, all the projects on the Ideas page are still open and > students are encouraged to try and work on them outside of GSoC as > well. > > Yes, this news is unfortunate, but there is some level of turnover in GSoC every year. We'll try to get feedback on the selection decision. This happened to the Fedora project last year and they ended up creating their own SoC project: http://fedoraproject.org/wiki/SummerOfCode Lalith and I started to discuss about trying something similar, and we can perhaps talk about it next week at the workshop and developer's meeting. If people are interested in trying an unofficial program (perhaps with a bring-your-own-funding model), please let us know. - Tom From rivanvx at gmail.com Sat Mar 19 02:55:26 2011 From: rivanvx at gmail.com (=?UTF-8?Q?Vedran_Mileti=C4=87?=) Date: Sat, 19 Mar 2011 10:55:26 +0100 Subject: [Ns-developers] Recent builds with click Message-ID: Hi, recent builds with click fail with: [1464/1543] cxx_link: build/debug/src/click/examples/nsclick-raw-wlan_2.o -> build/debug/src/click/examples/nsclick-raw-wlan debug/src/click/examples/nsclick-raw-wlan_2.o: In function `main': /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:118: undefined reference to `ns3::PacketSinkHelper::PacketSinkHelper(std::basic_string, std::allocator >, ns3::Address)' /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:119: undefined reference to `ns3::PacketSinkHelper::Install(ns3::Ptr) const' /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:123: undefined reference to `ns3::OnOffHelper::OnOffHelper(std::basic_string, std::allocator >, ns3::Address)' /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:124: undefined reference to `ns3::OnOffHelper::SetAttribute(std::basic_string, std::allocator >, ns3::AttributeValue const&)' /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:125: undefined reference to `ns3::OnOffHelper::SetAttribute(std::basic_string, std::allocator >, ns3::AttributeValue const&)' /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:130: undefined reference to `ns3::OnOffHelper::SetAttribute(std::basic_string, std::allocator >, ns3::AttributeValue const&)' /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:131: undefined reference to `ns3::OnOffHelper::Install(ns3::Ptr) const' collect2: ld returned 1 exit status Waf: Leaving directory `/home/rmovac/ns-3-allinone/ns-3-dev/build' Build failed: -> task failed (err #1): {task: cxx_link nsclick-raw-wlan_2.o -> nsclick-raw-wlan} Traceback (most recent call last): File "./build.py", line 121, in sys.exit(main(sys.argv)) File "./build.py", line 112, in main build_ns3(config) File "./build.py", line 60, in build_ns3 run_command(["python", "waf"]) File "/home/rmovac/ns-3-allinone/util.py", line 24, in run_command raise CommandError("Command %r exited with code %i" % (argv, retval)) util.CommandError: Command ['python', 'waf'] exited with code 1 Hope it can be fixed. Regards, Vedran Mileti? From ruben at net.t-labs.tu-berlin.de Sat Mar 19 05:11:58 2011 From: ruben at net.t-labs.tu-berlin.de (Ruben Merz) Date: Sat, 19 Mar 2011 13:11:58 +0100 Subject: [Ns-developers] Recent builds with click In-Reply-To: References: Message-ID: <4D849D8E.4020603@net.t-labs.tu-berlin.de> Will look into it. Which revisions of ns-devel do you have? R On 3/19/11 10:55 AM, Vedran Mileti? wrote: > Hi, > > recent builds with click fail with: > > [1464/1543] cxx_link: build/debug/src/click/examples/nsclick-raw-wlan_2.o -> > build/debug/src/click/examples/nsclick-raw-wlan > debug/src/click/examples/nsclick-raw-wlan_2.o: In function `main': > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:118: > undefined reference to > `ns3::PacketSinkHelper::PacketSinkHelper(std::basic_string std::char_traits, std::allocator >, ns3::Address)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:119: > undefined reference to `ns3::PacketSinkHelper::Install(ns3::Ptr) > const' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:123: > undefined reference to > `ns3::OnOffHelper::OnOffHelper(std::basic_string std::char_traits, std::allocator >, ns3::Address)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:124: > undefined reference to > `ns3::OnOffHelper::SetAttribute(std::basic_string std::char_traits, std::allocator >, ns3::AttributeValue const&)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:125: > undefined reference to > `ns3::OnOffHelper::SetAttribute(std::basic_string std::char_traits, std::allocator >, ns3::AttributeValue const&)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:130: > undefined reference to > `ns3::OnOffHelper::SetAttribute(std::basic_string std::char_traits, std::allocator >, ns3::AttributeValue const&)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:131: > undefined reference to `ns3::OnOffHelper::Install(ns3::Ptr) > const' > collect2: ld returned 1 exit status > Waf: Leaving directory `/home/rmovac/ns-3-allinone/ns-3-dev/build' > Build failed: -> task failed (err #1): > {task: cxx_link nsclick-raw-wlan_2.o -> nsclick-raw-wlan} > Traceback (most recent call last): > File "./build.py", line 121, in > sys.exit(main(sys.argv)) > File "./build.py", line 112, in main > build_ns3(config) > File "./build.py", line 60, in build_ns3 > run_command(["python", "waf"]) > File "/home/rmovac/ns-3-allinone/util.py", line 24, in run_command > raise CommandError("Command %r exited with code %i" % (argv, retval)) > util.CommandError: Command ['python', 'waf'] exited with code 1 > > Hope it can be fixed. > > Regards, > > Vedran Mileti? -- Ruben Merz Deutsche Telekom Laboratories http://www.net.t-labs.tu-berlin.de/people/ruben_merz.shtml From suresh.lalith at gmail.com Sat Mar 19 09:55:26 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Sat, 19 Mar 2011 16:55:26 +0000 Subject: [Ns-developers] Recent builds with click In-Reply-To: References: Message-ID: Hello, 2011/3/19 Vedran Mileti? : > Hi, > > recent builds with click fail with: > > [1464/1543] cxx_link: build/debug/src/click/examples/nsclick-raw-wlan_2.o -> > build/debug/src/click/examples/nsclick-raw-wlan > debug/src/click/examples/nsclick-raw-wlan_2.o: In function `main': > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:118: > undefined reference to > `ns3::PacketSinkHelper::PacketSinkHelper(std::basic_string std::char_traits, std::allocator >, ns3::Address)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:119: > undefined reference to `ns3::PacketSinkHelper::Install(ns3::Ptr) > const' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:123: > undefined reference to > `ns3::OnOffHelper::OnOffHelper(std::basic_string std::char_traits, std::allocator >, ns3::Address)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:124: > undefined reference to > `ns3::OnOffHelper::SetAttribute(std::basic_string std::char_traits, std::allocator >, ns3::AttributeValue const&)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:125: > undefined reference to > `ns3::OnOffHelper::SetAttribute(std::basic_string std::char_traits, std::allocator >, ns3::AttributeValue const&)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:130: > undefined reference to > `ns3::OnOffHelper::SetAttribute(std::basic_string std::char_traits, std::allocator >, ns3::AttributeValue const&)' > /home/rmovac/ns-3-allinone/ns-3-dev/build/../src/click/examples/nsclick-raw-wlan.cc:131: > undefined reference to `ns3::OnOffHelper::Install(ns3::Ptr) > const' > collect2: ld returned 1 exit status > Waf: Leaving directory `/home/rmovac/ns-3-allinone/ns-3-dev/build' > Build failed: ?-> task failed (err #1): > ? ?{task: cxx_link nsclick-raw-wlan_2.o -> nsclick-raw-wlan} > Traceback (most recent call last): > ?File "./build.py", line 121, in > ? ?sys.exit(main(sys.argv)) > ?File "./build.py", line 112, in main > ? ?build_ns3(config) > ?File "./build.py", line 60, in build_ns3 > ? ?run_command(["python", "waf"]) > ?File "/home/rmovac/ns-3-allinone/util.py", line 24, in run_command > ? ?raise CommandError("Command %r exited with code %i" % (argv, retval)) > util.CommandError: Command ['python', 'waf'] exited with code 1 > > Hope it can be fixed. Thanks for reporting this. I've fixed and pushed the changes to ns-3-dev. > > Regards, > > Vedran Mileti? > -- Lalith Suresh Department of Computer Science and Engineering Instituto Superior T?cnico www.lalith.in From mathieu.lacage at gmail.com Mon Mar 21 00:56:07 2011 From: mathieu.lacage at gmail.com (Mathieu Lacage) Date: Mon, 21 Mar 2011 08:56:07 +0100 Subject: [Ns-developers] wifi: MgtProbeRequestHeader::SetSupportedRates: operator= missing? In-Reply-To: <017001cbe49f$793b1800$6bb14800$@mail.gatech.edu> References: <017001cbe49f$793b1800$6bb14800$@mail.gatech.edu> Message-ID: Note that I did not try to really investigate this issue but my 10 second look at the API and your description of the problem hints at the following... On Thu, Mar 17, 2011 at 13:33, John Abraham wrote: > Particularly, once SetSupportedRates is popped , "rates" being out of scope, > may leave > > m_rates.extended->m_supportedRates having a pointer to an out of scope > object. > > > > Can someone confirm this theory, because this code works ok on g++ but not > on Visual C++? Probably just luck in the way gcc allocates stack memory. The problem here seems to be just bad API, not a missing operator = that should have been generated by your compiler. Bad API in this header: class ExtendedSupportedRatesIE : public WifiInformationElement { public: ExtendedSupportedRatesIE (SupportedRates *rates); private: SupportedRates *m_supportedRates; }; The above transfers ownership from the caller to the callee which is going to be the source of subtle bugs such as the one you found (?). It should be instead: class ExtendedSupportedRatesIE : public WifiInformationElement { public: ExtendedSupportedRatesIE (const SupportedRates *rates) : WifiInformationElement (), m_rates (*rates) {} private: SupportedRates m_supportedRates; }; It seems that people like to inflict pain on others of the kind you just suffered, I don't understand why. (lengthy "I told you so" rant elided because I did not read the code carefully enough to be sure this is really the problem) Mathieu -- Mathieu Lacage From payton.oliveri at arl.army.mil Mon Mar 21 07:37:16 2011 From: payton.oliveri at arl.army.mil (Payton Oliveri (Cont ARL/CISD)) Date: Mon, 21 Mar 2011 10:37:16 -0400 Subject: [Ns-developers] WifiMacHeader in MacRx callback Message-ID: <4D87629C.8020506@arl.army.mil> I've built a network of csma and adhoc wifi nodes and have connected a callback function to the trace source MacRx in which I'd like to be able to access either the EthernetHeader or WifiMacHeader. I noticed that PeekHeader places valid data in the header buffer for csma while it does not for wifi. In csma, a copy of the packet (called 'originalPacket') is created and passed as the parameter to all of the callbacks so that removing headers does not affect the callback; conversely, in wifi, this duplicate is never created and the desired WifiMacHeader is removed from the packet. The call stack for wifi is a bit more intricate than for csma, but it looks like a solution would be changing the ForwardUp call found in adhoc-wifi-mac, for instance, from (packet,from,to) to (packet,hdr), and changing the MacRx callback signature from (Ptr) to (Ptr, WifiMacHeader) so that the contents of the header are available. I'm not sure how broad an impact such a change would have, so it may be that there's a better way to be able to get at that lost header inside the MacRx callback. Any feedback is very welcome. Thanks! Payton Oliveri -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 4203 bytes Desc: S/MIME Cryptographic Signature Url : http://mailman.isi.edu/pipermail/ns-developers/attachments/20110321/c70e3856/smime.bin From watrous at uw.edu Tue Mar 22 14:14:11 2011 From: watrous at uw.edu (Mitch Watrous) Date: Tue, 22 Mar 2011 14:14:11 -0700 Subject: [Ns-developers] Enabling subsets of ns-3's modules Message-ID: <4D891123.3090000@uw.edu> Hi. A new configuration file, .ns3rc, has been added to ns-3 that specifies the modules that should be enabled during the ns-3 build. Now, there are two ways to enable a subset of ns-3's modules: (1.) Using waf's --enable-modules option (2.) Using the ns-3 configuration file Details can be found at http://www.nsnam.org/wiki/index.php/HOWTO_enable_a_subset_of_ns-3%27s_modules Mitch From nbaldo at cttc.es Thu Mar 24 10:00:57 2011 From: nbaldo at cttc.es (Nicola Baldo) Date: Thu, 24 Mar 2011 18:00:57 +0100 Subject: [Ns-developers] WNS3 and developers meeting this week in Barcelona Message-ID: <4D8B78C9.7080104@cttc.es> Hi all, NOTE: even if you are *not* in Barcelona for attending WNS3 and the developers meeting, please read at least item 5) below Here are some last minute information on WNS3 and the ns-developers meeting which are being held tomorrow March 25 and Saturday March 26 in Barcelona. 1) the final WNS3 program schedule is here (including the newly added information on the "short talks" session): http://www.wns3.org/2011/Programme/Schedule 2) a first part of the ns-developers meeting will be held at the same day and site of WNS3, starting from 16:15 3) the rest of the ns-developers meting will be held on Saturday 26th starting at 9:00. The meeting location is the CTTC DemoCentre, c. Sancho de Avila 110-130 (T-Systems building), 08018 Barcelona. The meeting point is at 9:00 right outside the building 4) if your plan to attend the ns-developers meeting, but your name is not on this list http://www.nsnam.org/wiki/index.php/DevelMeetingMarch2011 then please contact me so that I can send you the building access information. 5) for those of you who will not be in Barcelona, we have videoconferencing support to allow remote participation to the developers meeting on Saturday. If you are interested, please contact me privately and I will give you further instructions. Kind Regards, Nicola From g.piro at poliba.it Thu Mar 24 12:28:15 2011 From: g.piro at poliba.it (Giuseppe Piro) Date: Thu, 24 Mar 2011 20:28:15 +0100 Subject: [Ns-developers] [NS-developers] Bug in multiple-flows management In-Reply-To: <12ec4b35fa3.lucaanchora@virgilio.it> References: <12ec4b35fa3.lucaanchora@virgilio.it> Message-ID: Hi Luca, after our discussion, I fixed these bugs into the new changset of ns-3-lte. changeset 6883 d2770ff543f7 Regards, Giuseppe 2011/3/17 lucaanchora at virgilio.it > Hi. > While working with ns3-lte in a multi-flow scenario (together with > my colleagues Marco Mezzavilla and Iffat Ahmed), some errors in the > code of NS3 showed up. > In the file src/devices/lte/examples/lte-multiple-flows.cc three > different traffic flows are introduced and assigned to > GBR and NGBR bearers. In despite of this, at run time you can > see that all the packets are enqueued in the DefaultBearer of the > RRC entity. Actually, this is due to two facts: > 1) in lte-multiple-flows.cc, sender and receiver information > are inverted in the creation of the IpcsClassifierRecord object. > The actual implementation is > IpcsClassifierRecord *ipcs_1 = new > IpcsClassifierRecord(UEinterfaces.GetAddress (0), > > "255.255.255.0", > > ENBinterface.GetAddress (0), > > "255.255.255.0", > 100, > 100, 0, 10000, 17, 1); > > while the correct one, in my opinion, should be > IpcsClassifierRecord *ipcs_1 = new IpcsClassifierRecord > (ENBinterface.GetAddress (0), > > "255.255.255.0", > > UEinterfaces.GetAddress (0), > > "255.255.255.0", > 0, > 65535, 100, 100, 17, 1); > Note that also the port range for the sender has been increased. Instead > of 0:10000, 0:65535 is used since this > is the actual range into which the port number can span (even though, the > numbers 0...1023 are > reserved for well-known services). > > 2) There is an error in the file > src/devices/wimax/ipcs-classifier-record.cc, > in functions IpcsClassifierRecord::CheckMatchDstAddr and > IpcsClassifierRecord::CheckMatchSrcAddr. > In both cases there is an error when comparing the IP address > (destination and source, respectively) > of the packet that has to be classified with the corresponding IP address > of the flow > managed by the bearer. The current implementation (in the first of the > two functions, > for the other it is similar) is: > if (dstAddress.CombineMask ((*iter).Mask) == (*iter).Address) > Actually, the function CombineMask gives as a result the bitwise AND > between the dstAddress and > the netmask (*iter).Mask, that corresponds to the address of the network. > Of course, such a comparison will > always fail for all the packets, leading to the conclusion that there is > no bearer managing the flow they > belong to. This is the second reason for which the DefaultBearer is > always used. > A proposal for fixing this second point is to ise the following > comparison instead of the previous one: > if (dstAddress == (*iter).Address) > > With the two changes described above the simulations started working > smoothly, with each packet put > in the queue of the right bearer. > > In the file ipcs-classifier-record.cc there is also a wrong comment in the > first constructor > IpcsClassifierRecord::IpcsClassifierRecord (void). The protocol number of > UDP is 17, > while for TCP it is 6, thus the comments written in the implementation > should be inverted. > > Another minor thing that I would like to point out regards the > implementation of the > UdpClient and UdpServer entities. In computer networks theory the general > idea is that the client > is the process that makes requests to the server, while the server is the > process that answers > to the client and provides the contents it needs. Thus, the server is > intended as the entity > that transmits most of the data for most of the time (e.g. in ADSL the > uplink and downlink > have different bandwidth since the final user with all his clients is > supposed to be a consumer instead of a > producer of data). But, if you have a look at the current implementation of > the classes > UdpClient and UdpServer, you will note that the situation is inverted: the > client periodically > sends packets, while the server only receives them through the socket. > Granted that this is only > a matter of convention, is there any particular reason for this > implementative choice in ns3? > > Regards, > Luca > > > -- Giuseppe Piro Ph.D. Student at Politecnico di Bari | via Orabona 4 | 70125 Bari | Italy Email: g.piro at poliba.it | peppe at giuseppepiro.com Phone: +39 080 5963301 Fax: +39 080 5963410 Web: telematics.poliba.it/piro | www.giuseppepiro.com From g.piro at poliba.it Thu Mar 24 12:34:42 2011 From: g.piro at poliba.it (Giuseppe Piro) Date: Thu, 24 Mar 2011 20:34:42 +0100 Subject: [Ns-developers] [NS-developers] Bug in ns3-lte SomplePacketScheduler In-Reply-To: <12ec4b63e8e.lucaanchora@virgilio.it> References: <12ec4b63e8e.lucaanchora@virgilio.it> Message-ID: Hi Luca, after our discussion, I fixed these bugs into the new changset of ns-3-lte. changeset 6883 d2770ff543f7 2011/3/17 lucaanchora at virgilio.it > Hi. > While working on the last version of ns3-lte (together with > my colleagues Marco Mezzavilla and Iffat Ahmed) some errors came up in > the SimplePacketScheduler class, in particular in method > DoRunPacketScheduler. > Error 1) In the two FOR loops where GBR and NGBR bearers are scanned > to find packets, the condition > if ((*it)->GetQueue ()->IsEmpty ()) > is wrong since there is a NOT missing. The correct implementation > should be > if (!((*it)->GetQueue ()->IsEmpty ())). > > Error 2) In the same FOR loops of the previous case, packets are not taken > from the current bearer pointed by the iterator *it, but always > from the first bearer of the list (method at(0)). This is do to the > fact that > the following instruction is used > Ptr p = enb->GetRrcEntity ()->GetDownlinkNgbrBearers > ()->at(0)->GetRlcEntity ()->Dequeue (); > while the correct version is > Ptr p = (*it)->GetRlcEntity ()->Dequeue (); > > Error 3) In the first FOR loop, where the GBR bearers are scanned, the > following > instruction is wrong since it refers to the NGBR beares > Ptr p = enb->GetRrcEntity ()->GetDownlinkNgbrBearers > ()->at(0)->GetRlcEntity ()->Dequeue (); > But, if you fix the error 2 described before, this error will > be automatically fixed as well. > > Another minor thing that is worth noting refers to the header length of the > MAC protocol > for LTE. According to what stated in class LteMacHeader (file > src/devices/lte/model/lte-mac-header.cc), > this header contains only the MAC addresses of sender and receiver, which > corresponds to a > total of 12 bytes (6 + 6). If you have a look at the implementation of the > function > LteMacHeader::GetSerializedSize(void), this returns always 13 (1 byte > more). Shouldn't it > be 12? > > > Regards, > Luca > > > -- Giuseppe Piro Ph.D. Student at Politecnico di Bari | via Orabona 4 | 70125 Bari | Italy Email: g.piro at poliba.it | peppe at giuseppepiro.com Phone: +39 080 5963301 Fax: +39 080 5963410 Web: telematics.poliba.it/piro | www.giuseppepiro.com From sertinell at gmail.com Fri Mar 25 02:18:59 2011 From: sertinell at gmail.com (Sergio Mtnez) Date: Fri, 25 Mar 2011 10:18:59 +0100 Subject: [Ns-developers] Bug in ApWifiMac In-Reply-To: References: Message-ID: I think I have found a bug in ApWifiMac. When an AP receive a Mgt packet from another AP, lets say a Beacon frame, it doesn't know how to handle it and drops this error: NS_FATAL_ERROR ("Don't know how to handle frame (type=" << hdr->GetType ()); //Type is five in case of MGT_BEACON I have fixed it by this patch: --- a/src/devices/wifi/ap-wifi-mac.cc ? Wed Jan 05 21:00:01 2011 -0800 +++ b/src/devices/wifi/ap-wifi-mac.cc ? Thu Mar 24 20:29:46 2011 +0100 @@ -530,6 +530,13 @@ ? ? ? ? ? ? ? return; ? ? ? ? ? ? } ? ? ? ? } + ? ? ?else if( from != GetAddress() && hdr->GetAddr1 () != GetAddress () ) + ? ? ?{ + ? ? ? ? // this is an Mgt packet from another AP not for us + ? ? ? ? // we can ignore it. + ? ? ? ? NotifyRxDrop (packet); + ? ? ? ? return; + ? ? ?} ? ? } -- Eng. Sergio Mart?nez Tornell Universidad Polit?cnica de Valencia. Spain From ruben at net.t-labs.tu-berlin.de Fri Mar 25 17:01:21 2011 From: ruben at net.t-labs.tu-berlin.de (Ruben Merz) Date: Sat, 26 Mar 2011 01:01:21 +0100 Subject: [Ns-developers] Bug in ApWifiMac In-Reply-To: References: Message-ID: <4D8D2CD1.6030602@net.t-labs.tu-berlin.de> Thanks for the report, I created bug 1080 (http://www.nsnam.org/bugzilla/show_bug.cgi?id=1080). Could you let us know which version of ns-3 you are using? And if you have a ns-3 simulation file that we can use to reproduce this bug, we would be glad if you can attach it to the bug report. Ruben On 3/25/11 10:18 , Sergio Mtnez wrote: > I think I have found a bug in ApWifiMac. > > When an AP receive a Mgt packet from another AP, lets say a Beacon > frame, it doesn't know how to handle it and drops this error: > > NS_FATAL_ERROR ("Don't know how to handle frame (type="<< > hdr->GetType ()); //Type is five in case of MGT_BEACON > > I have fixed it by this patch: > > --- a/src/devices/wifi/ap-wifi-mac.cc Wed Jan 05 21:00:01 2011 -0800 > +++ b/src/devices/wifi/ap-wifi-mac.cc Thu Mar 24 20:29:46 2011 +0100 > @@ -530,6 +530,13 @@ > return; > } > } > + else if( from != GetAddress()&& hdr->GetAddr1 () != GetAddress () ) > + { > + // this is an Mgt packet from another AP not for us > + // we can ignore it. > + NotifyRxDrop (packet); > + return; > + } > } From tomh at tomh.org Sat Mar 26 12:45:24 2011 From: tomh at tomh.org (Tom Henderson) Date: Sat, 26 Mar 2011 12:45:24 -0700 Subject: [Ns-developers] Enabling subsets of ns-3's modules In-Reply-To: <4D891123.3090000@uw.edu> References: <4D891123.3090000@uw.edu> Message-ID: <4D8E4254.6070402@tomh.org> On 03/22/2011 02:14 PM, Mitch Watrous wrote: > Hi. > > A new configuration file, .ns3rc, has been added to ns-3 that specifies > the modules that should be enabled during the ns-3 build. > > Now, there are two ways to enable a subset of ns-3's modules: > (1.) Using waf's --enable-modules option > (2.) Using the ns-3 configuration file > > Details can be found at > > http://www.nsnam.org/wiki/index.php/HOWTO_enable_a_subset_of_ns-3%27s_modules > > > Mitch > > Here are some suggestions for the modular build system from the developer's meeting today. George asked whether we should we provide a "--disable-modules" option? I replied that we could do this but I would lean against supporting this unless there was strong interest, for simplicity reasons. Pavel asked whether we could make src/examples into a module itself that could be enabled/disabled like any module. That seems like a good idea to me. I asked whether building of tests should be enabled by default? Consensus was "no", that instead we should provide ./waf configure --enable-tests, and also support this option in .ns3rc file somehow. Pavel suggested to get rid of build verification test (BVT) and unit test distinctions in the existing tests; to make them all UNIT now that they are split from the main model code. This was agreed. Lalith suggested that waf print friendlier feedback when an example is missing or not built due to a subset of modules being built. This was agreed. Pavel suggested that the modular build system deal with conditional dependencies at build time such as passing flags to AODV whether or not to build in WiFi dependencies. This was viewed as desirable but for future work in build system modularity (post ns-3.11). We discussed whether "all_modules" should be built by default in the released version. For ns-3.11, it was agreed to have this policy. - Tom From gjcarneiro at gmail.com Mon Mar 28 07:54:51 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Mon, 28 Mar 2011 15:54:51 +0100 Subject: [Ns-developers] Move VisualSimulatorImpl into the core module? Message-ID: When you try to run a C++ program with --visualize waf option, the following happens: 'build' finished successfully (0.980s) > assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: > ns3::VisualSimulatorImpl not found", file=../src/core/model/type-id.cc, > line=441 > Command > ['/home/gjc/projects/ns/ns-3-allinone/ns-3-dev/build/debug/examples/wireless/mixed-wireless', > '--SimulatorImplementationType=ns3::VisualSimulatorImpl'] terminated with > signal SIGSEGV. Run it under a debugger to get more information (./waf --run > --command-template="gdb --args %s "). This happens because the program doesn't link to the visualizer module by default (thanks the libns3 being split into several libraries), therefore the type VisualSimulatorImpl is not available. Now we can either require that C++ programs that want to be visualized specify a dependency on the visualizer module, or we can move VisualSimulatorImpl into the core or network module. Any opinions? -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From gjcarneiro at gmail.com Mon Mar 28 09:43:12 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Mon, 28 Mar 2011 17:43:12 +0100 Subject: [Ns-developers] Modular bindings: status Message-ID: Hello, I have been working on modular Python bindings, and at this point I think they are becoming stable to the point that I might consider switching the default to the modular bindings instead of the monolithic ones. I think the all the functionality of the old bindings has been ported over to the new ones. The generated code is not as efficient as it could be, but nothing major. When modular bindings are enabled, a compatibility 'ns3' virtual module is generated, which makes the modular bindings appear as a 'ns3' module, for backward compatibility. But for the sake of efficiency, a deprecation warning is given when ns3 is imported instead of ns. What is developers opinions for ns 3.11? 1. Build modular bindings by default, monolithic is a configure option; 2. Build monolithic bindings by default, modular is a config option; 3. Build modular bindings by default, monolithic bindings are just removed to avoid confusion; My personal opinion is option 1 for now. The previous (current) plan used to be option 2, because I wasn't sure if I could make modular bindings stable in time. Regards, -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From rivanvx at gmail.com Mon Mar 28 12:54:57 2011 From: rivanvx at gmail.com (=?UTF-8?Q?Vedran_Mileti=C4=87?=) Date: Mon, 28 Mar 2011 21:54:57 +0200 Subject: [Ns-developers] Small patch for nsc/lwip-HEAD/src/SConscript Message-ID: There seems to be a small bug in output specification in nsc/lwip-HEAD/src/SConscript that causes: # Build NSC Entering directory `nsc' => python scons.py liblinux2.6.18.so liblinux2.6.26.so scons: Reading SConscript files ... Checking target architecure...(cached) x86 NameError: name 'output' is not defined: File "/home/vedranm/bin/ns-3-allinone/nsc/SConstruct", line 152: SConscript('lwip-HEAD/src/SConscript') File "/home/vedranm/bin/ns-3-allinone/nsc/scons-local-1.2.0.d20090223/SCons/Script/SConscript.py", line 612: return apply(method, args, kw) File "/home/vedranm/bin/ns-3-allinone/nsc/scons-local-1.2.0.d20090223/SCons/Script/SConscript.py", line 549: return apply(_SConscript, [self.fs,] + files, subst_kw) File "/home/vedranm/bin/ns-3-allinone/nsc/scons-local-1.2.0.d20090223/SCons/Script/SConscript.py", line 259: exec _file_ in call_stack[-1].globals File "/home/vedranm/bin/ns-3-allinone/nsc/lwip-HEAD/src/SConscript", line 78: install = env.Install(dir = "$PREFIX/lib", source = output) # Build NSC: failure (ignoring NSC) Leaving directory `nsc' This patch fixes it. Regards, Vedran Mileti? -------------- next part -------------- A non-text attachment was scrubbed... Name: lwip-HEAD-SConscript-source.patch Type: text/x-patch Size: 372 bytes Desc: not available Url : http://mailman.isi.edu/pipermail/ns-developers/attachments/20110328/fc82f438/lwip-HEAD-SConscript-source.bin From tomh at tomh.org Mon Mar 28 15:24:35 2011 From: tomh at tomh.org (Tom Henderson) Date: Mon, 28 Mar 2011 15:24:35 -0700 Subject: [Ns-developers] Modular bindings: status In-Reply-To: References: Message-ID: <4D910AA3.1070408@tomh.org> On 03/28/2011 09:43 AM, Gustavo Carneiro wrote: > Hello, > > I have been working on modular Python bindings, and at this point I think > they are becoming stable to the point that I might consider switching the > default to the modular bindings instead of the monolithic ones. I think the > all the functionality of the old bindings has been ported over to the new > ones. The generated code is not as efficient as it could be, but nothing > major. When modular bindings are enabled, a compatibility 'ns3' virtual > module is generated, which makes the modular bindings appear as a 'ns3' > module, for backward compatibility. But for the sake of efficiency, a > deprecation warning is given when ns3 is imported instead of ns. > > What is developers opinions for ns 3.11? > > 1. Build modular bindings by default, monolithic is a configure option; > 2. Build monolithic bindings by default, modular is a config option; > 3. Build modular bindings by default, monolithic bindings are just removed > to avoid confusion; > > My personal opinion is option 1 for now. The previous (current) plan used > to be option 2, because I wasn't sure if I could make modular bindings > stable in time. I would opt for 1 with fallback to 2 if we found it unworkable over the next few weeks before release. - Tom From gjcarneiro at gmail.com Tue Mar 29 10:52:12 2011 From: gjcarneiro at gmail.com (Gustavo Carneiro) Date: Tue, 29 Mar 2011 18:52:12 +0100 Subject: [Ns-developers] Modular bindings: status In-Reply-To: <4D910AA3.1070408@tomh.org> References: <4D910AA3.1070408@tomh.org> Message-ID: On Mon, Mar 28, 2011 at 23:24, Tom Henderson wrote: > On 03/28/2011 09:43 AM, Gustavo Carneiro wrote: > >> Hello, >> >> I have been working on modular Python bindings, and at this point I think >> they are becoming stable to the point that I might consider switching the >> default to the modular bindings instead of the monolithic ones. I think >> the >> all the functionality of the old bindings has been ported over to the new >> ones. The generated code is not as efficient as it could be, but nothing >> major. When modular bindings are enabled, a compatibility 'ns3' virtual >> module is generated, which makes the modular bindings appear as a 'ns3' >> module, for backward compatibility. But for the sake of efficiency, a >> deprecation warning is given when ns3 is imported instead of ns. >> >> What is developers opinions for ns 3.11? >> >> 1. Build modular bindings by default, monolithic is a configure option; >> 2. Build monolithic bindings by default, modular is a config option; >> 3. Build modular bindings by default, monolithic bindings are just >> removed >> to avoid confusion; >> >> My personal opinion is option 1 for now. The previous (current) plan used >> to be option 2, because I wasn't sure if I could make modular bindings >> stable in time. >> > > I would opt for 1 with fallback to 2 if we found it unworkable over the > next few weeks before release. > > I did it, switched to modular bindings by default. We can always go back if they give too many problems. But I hope not... > - Tom > > -- Gustavo J. A. M. Carneiro INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc "The universe is always one step beyond logic." -- Frank Herbert From watrous at uw.edu Tue Mar 29 15:02:12 2011 From: watrous at uw.edu (Mitch Watrous) Date: Tue, 29 Mar 2011 15:02:12 -0700 Subject: [Ns-developers] Enabling subsets of ns-3's modules In-Reply-To: <4D8E4254.6070402@tomh.org> References: <4D891123.3090000@uw.edu> <4D8E4254.6070402@tomh.org> Message-ID: <4D9256E4.7090206@uw.edu> On 03/26/2011 12:45 PM, Tom Henderson wrote: > On 03/22/2011 02:14 PM, Mitch Watrous wrote: >> Hi. >> >> A new configuration file, .ns3rc, has been added to ns-3 that specifies >> the modules that should be enabled during the ns-3 build. >> >> Now, there are two ways to enable a subset of ns-3's modules: >> (1.) Using waf's --enable-modules option >> (2.) Using the ns-3 configuration file >> >> Details can be found at >> >> http://www.nsnam.org/wiki/index.php/HOWTO_enable_a_subset_of_ns-3%27s_modules >> >> >> >> Mitch >> >> > > Here are some suggestions for the modular build system from the > developer's meeting today. > > George asked whether we should we provide a "--disable-modules" > option? I replied that we could do this but I would lean against > supporting this unless there was strong interest, for simplicity reasons. > > Pavel asked whether we could make src/examples into a module itself > that could be enabled/disabled like any module. That seems like a > good idea to me. > Examples are different than modules, and it doesn't make sense to treat them the same way. It's already possible in waf to turn the examples on and on using --enable-examples or --disable-examples. How about if I add a variable (enable_examples) to .ns3rc that turns the examples on and off: enable_examples = True > I asked whether building of tests should be enabled by default? > Consensus was "no", that instead we should provide ./waf configure > --enable-tests, and also support this option in .ns3rc file somehow. > I will look into adding the --enable-tests and --disable-tests options to waf. How about if I add a variable (enable_tests) to .ns3rc that turns the tests on and off: enable_tests = False > Pavel suggested to get rid of build verification test (BVT) and unit > test distinctions in the existing tests; to make them all UNIT now > that they are split from the main model code. This was agreed. > What is the value in doing this? Should current BVT's stay in their module's library of should they go into a test module library (like UNIT tests now)? What about SYSTEM tests? Should they also become UNIT tests? > Lalith suggested that waf print friendlier feedback when an example is > missing or not built due to a subset of modules being built. This > was agreed. As far as I know, there is currently no feedback when an example is not built by waf or not run by test.py. Does Lalith have an example of such friendlier feedback that he would like to see? Would you like to see something like this in the test.py output: ... PASS: Example examples/wireless/wifi-ap.py NOT BUILT: Example examples/routing/simple-routing-ping6.py NOT BUILT: Example examples/wireless/wifi-ap.py NOT BUILT: Example examples/wireless/mixed-wireless.py NOT BUILT: Example examples/tutorial/first.py PASS: Example src/flow-monitor/examples/wifi-olsr-flowmon.py 155 of 161 tests passed (155 passed, 4 not built, 0 skipped, 2 failed, 0 crashed, 0 valgrind errors) > > Pavel suggested that the modular build system deal with conditional > dependencies at build time such as passing flags to AODV whether or > not to build in WiFi dependencies. This was viewed as desirable but > for future work in build system modularity (post ns-3.11). > > We discussed whether "all_modules" should be built by default in the > released version. For ns-3.11, it was agreed to have this policy. > All modules are currently build by default if there is no .ns3rc file found. > - Tom > > From suresh.lalith at gmail.com Tue Mar 29 15:43:13 2011 From: suresh.lalith at gmail.com (Lalith Suresh) Date: Tue, 29 Mar 2011 23:43:13 +0100 Subject: [Ns-developers] Enabling subsets of ns-3's modules In-Reply-To: <4D9256E4.7090206@uw.edu> References: <4D891123.3090000@uw.edu> <4D8E4254.6070402@tomh.org> <4D9256E4.7090206@uw.edu> Message-ID: Hello, On Tue, Mar 29, 2011 at 11:02 PM, Mitch Watrous wrote: > On 03/26/2011 12:45 PM, Tom Henderson wrote: > > >> Lalith suggested that waf print friendlier feedback when an example is >> missing or not built due to a subset of modules being built. ? This was >> agreed. > > As far as I know, there is currently no feedback when an example is not > built by waf or not run by test.py. > > Does Lalith have an example of such friendlier feedback that he would like > to see? > My concern is more related to the end user who tries to run an example which needs a module that hasn't been built, and gets a "