ns-3 developers meeting 26 November 2011, Barcelona Spain Attendees: --------- Ruben Merz, Nicola Baldo, Lalith Suresh, Mustafa Al-Bado, Giuseppe Piro, Aurimas Liutikas, Felipe Perrone, Marco Miozzo, Jose Nunez, Andrey Mazo, Pavel Boyko, Justin Rohrer, Tom Henderson, George Riley, Mathieu Lacage (virtual), Sergio Martinez (virtual) Topics of discussion: ------------------- 1) Data collection framework (Felipe Perrone) 2) Review modular build system (Tom Henderson) 3) Website review (Tom Henderson) 4) ns-3 Summer of Code (Lalith Suresh) 5) Usability of ns-3 (Tom Henderson) 6) Documentation (Tom Henderson) 7) Deterministic MAC/Physical wireless models for new users and for routing/transport development (Justin Rohrer) 8) Simple non-IP network layer example (Justin Rohrer) 9) Miscellaneous 1) Data collection framework Felipe Perrone reviewed current status of the data collection framework. Preliminary code is available at: http://github.com/lfperrone/ns-3-Data-Collection-Framework Pavel questioned the need for the Probe class, could just use trace sources. Probe class as defined is just an adapter class between a trace source and a collector (if needed at all). He suggested to do away with probe and hierarchical collector for the first version of this framework. Nicola suggested to define the aggregator first since it is most reusable. Collector may be hard to generalize. Pavel emphasized the need for data reduction (collector) classes to avoid having the delay of doing post-process data reduction always. Pavel asked for input for user-visible API for the data collection. 2) Review modular build system Tom reviewed the modular build system status for ns-3.11. George asked whether we should we provide a "--disable-modules" option? Tom replied that we could do this but 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. Tom 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. We discussed whether we should apply a coding style cleanup to the whole repository, since the modular build system already moved a lot of files around and broke out-of-tree patches. Mathieu observed that the type of patch breakage we just went through was minor compared to a whitespace-removal cleanup, which will destroy out-of-tree patches. Lalith commented that the lines of code changed in the core and network modules would be substantial. Andrey suggested that this could perhaps be eased by making an ns-3.11.1 release with whitespace changes, immediately after 3.11, giving people more time to deal with the change. Sentiment was overall in favor of doing the style cleanup (now or never) despite this being frowned upon in software engineering. Mathieu Lacage reviewed some work he has done in developing a bake-based master build system for ns-3, to coordinate future ns-3 builds and manage dependencies. Code will be posted soon for review. Andrey commented that this looked a lot like Portage. 3) Website review Tom reviewed the new Wordpress-based site that Mathieu had put together. He asked for review by maintainers and for people to obtain accounts to update the site directly. The goal is to put this in service over the next few weeks. Pavel said that a way for users to enter feature requests would be nice; Mathieu cautioned that this will only falsely build up anticipation among users. Tom said that a site-wide search would be nice; may not integrate well to Wordpress. Pavel and Andrey asked to fix the nsnam.org DNS entry. Andrey discovered that the site doesn't render properly on Opera. We agreed to post url for review on list, if people want to make changes, ask for account 4) ns-3 Summer of Code We discussed pros and cons about running our unofficial GSoC in a bring-your-own-funding mode. The idea is that successful completion (merge of code) would result in a mention of such on the website, and a T-shirt or something to commemorate. Lalith remarked that two mentor/student relationships seem possible already, based on feedback received. Tom commented that it would be nice to structure the program such that it is clear that the goal is to mentor people into becoming ns-3 contributors, and to get the rest of ns-3 community (besides mentor) to participate. Action item was for Lalith to create a proposal and circulate to prospective mentors before circulating to the list. 5) Usability of ns-3 Tom reviewed some observations from George, Josh Pelkey, and John Abraham about difficulties of students in using ns-3. Topics such as hiding C++ complexities, better helper support, and examples were discussed. Justin suggested better tracing examples. We discussed cookbook/HOWTO on wiki (agreed to leave on wiki) and how to add ns-3-users replies by pointing to the wiki. 6) Documentation Tom reviewed some documentation plans involving making a model library, maintaining per-release documentation, and searching for documentation on the nsnam.org site. Pavel recommended making a template module that could be easily cloned. Someone commented that help on writing wscripts would be nice (esp. how to link to external libraries). Pavel requested a single-page model datasheet; Tom agreed to take a stab at this. We also discussed making a cheatsheet for users; Felipe suggested to create one with stubs for section headers, and ask for inputs. 7) Deterministic MAC/Physical wireless models for new users and for routing/transport development Justin reiterated request for simple wireless models. Tom showed a previous code review on this, which Nicola had reviewed. The model was so simple it did not model collisions or backoff; it just had a simple range-based channel. It was suggested to add these options (collision handling, and carrier sense) perhaps as attributes. Tom agreed to create a repository for this. Nicola suggested to reuse spectrum architecture here; in particular, phy-mac.h. Nicola asked about renaming this file to generic-phy.h (agreed). 8) Simple non-IP network layer example Justin Rohrer discussed need for non-IP networking examples. Tom mentioned future work on ZigBee that will provide a (complicated) example of how to add a non-IP stack. Tom mentioned that separating traffic generators from the sockets API would be helpful to reuse for non-IP stacks. Lalith mentioned that there is a possibility to use Click to achieve non-IP stacks with some modifications to ns-3-click and Click itself, although it needs to be explored. 9) Miscellaneous Tom noted that we need release managers, and it became clear that people didn't understand the nature and demands of the job. Tom agreed to write up a job description. We discussed that some kind of user polling system would be nice to get feedback from users. Ruben agreed to look at a (googledocs) polling ability; we plan to gauge interest in ns-3-Windows based on this.