Difference between revisions of "Windows Port of ns-3 using Visual Studio"
(update old windows page) |
|||
(88 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | '''Note: This page is dated and kept only for historical reference; it has been replaced by [[Ns-3_on_Visual_Studio_2012 | ns-3 on Visual Studio 2012]].''' | |
− | + | A project to extend NS3 functionality on Windows operating-systems (Specifically Visual Studio integration) | |
+ | |||
+ | = Project Goals = | ||
# To reduce or eliminate the need for CygWin to run NS3 on Windows operating-systems | # To reduce or eliminate the need for CygWin to run NS3 on Windows operating-systems | ||
# To expose native Windows API to NS3 developers | # To expose native Windows API to NS3 developers | ||
# To integrate NS3 into IDE's such as Visual Studio 2010 | # To integrate NS3 into IDE's such as Visual Studio 2010 | ||
+ | # To integrate NS3 into IDE's such as Visual Studio 2008 (Stretch Goal) | ||
− | + | = Development Plan = | |
# Feasibility study and pilot implementation | # Feasibility study and pilot implementation | ||
− | # After the final commit from the | + | # After the final commit from the [[App Store Technical Requirements|ns-3 modularization project]] finalize folder structure and module list |
− | + | ||
# Review and commit changes for Windows onto ns-3.11 | # Review and commit changes for Windows onto ns-3.11 | ||
− | # Review documentation | + | # Review copyrights,coding-style and documentation |
+ | # Build automated build framework | ||
+ | |||
+ | = Current status = | ||
+ | # The feasibility study was done .An unstable implementation built on ns-3.10 is available at [[#Software download]] (OBSOLETE) | ||
+ | # After the ns-3 modularization project a new unstable version is available, built on the ns-3-dev lineup | ||
+ | |||
+ | = Software download = | ||
+ | * Version (ns-3-Win2.0) built on ns-3-dev(dated 05/23/2011) | ||
+ | Download via mercurial: "hg clone http://code.nsnam.org/jabraham3/ns-3-win" | ||
+ | |||
+ | Changelog & Caveats: | ||
+ | |||
+ | # The ~30 modules of ns-3 can be built independently as projects within the master solution, saving time | ||
+ | # Instead of building all the examples within the solution, I have provided a facility to run only one example at a time.This is due to the fact that I wanted to reduce the changes required and considering the fact any user deals with 1 or 2 examples at most at any given time. (A Visual Studio solution provides only executable at any point) | ||
+ | # The project files will need to be downloaded via "mercurial" | ||
+ | # Optional features such as click,mpi,openflow can be built, however I have made these project files dormant. It is left to the end-user to enable them and point to the required include libraries to run its examples. I might provide instructions later on how to handle the optional features as time permits | ||
+ | # Any windows-based solution is always going to be a subset of the main ns-3 project and will have a reduced feature-set. | ||
+ | # This version is built on ns-3-dev rather than ns-3.10. | ||
+ | # The GUI MFC code is removed, as I prefer to maintain it separately. | ||
+ | |||
+ | The following are some of the missing features | ||
+ | (some are excluded currently due to lack of time in porting them,some because they depend on third-party s/w | ||
+ | and some can never be supported for windows) | ||
+ | |||
+ | # waf,Python-binding,Visualizer (portable). Note:Visual studio solution does not require waf at this point. | ||
+ | # watchdog.cc,wall-clock-synchronizer.cc,unix-system-wall-clock-ms.cc,unix-system-thread.cc,unix-system-condition.cc,unix-fd-reader.cc,int64x64-cairo.cc,int64x64-128.cc (can be sort of ported) | ||
+ | # config-store (portable) | ||
+ | # All NSC code (non-portable) | ||
+ | # SQL dependent code (portable) | ||
+ | # rocketfuel-topology-reader.cc (portable) | ||
+ | # Real-time simulator (????) | ||
+ | # lte-multiple-flows.cc (portable) | ||
+ | # main-test-sync.cc (portable) | ||
+ | # nms-p2p-* files (portable) | ||
+ | |||
+ | |||
+ | * Version (ns-3.10-Win-1.3) Alpha version built on ns-3-dev(dated 02/07/2011) | ||
+ | Download from [http://code.nsnam.org/jabraham3/ns3-on-windows/ns-3.10-Win-1.3/raw-file/cadc7969c1f2/ns-3.10-Win-1.3.zip here] | ||
+ | |||
+ | Changelog & Caveats: | ||
+ | # This version caters to "Distributed simulation/MPI". | ||
+ | # A separate Visual Studio 2010 Solution file "ns-3-dev-MPI.sln" is provided in addition to the default "ns-3-dev.sln", | ||
+ | # "ns-3-dev-MPI.sln" is required to build "ns-dev" static libraries with MPI/Distributed simulation related code available. | ||
+ | # The MPI-related examples have an associated Makefile, to help build them. | ||
+ | # Distributed simulation is run with the aid of "Open MPI". As Open MPI's "mpirun" utility requires a console application, distributed-simulation needs to be a console app (i.e Windows GUI components won't be available). | ||
+ | # nms* examples are not included as they use "variable-length arrays" with are C99 features not supported on Visual C++.These examples might be made available in a future version. | ||
+ | Please visit the [[#Installation & Usage]] page for more details | ||
+ | |||
+ | |||
+ | |||
+ | * Version (ns-3.10-Win-1.2) Alpha version built on ns-3-dev(dated 02/07/2011) | ||
+ | Download from [http://code.nsnam.org/jabraham3/ns3-on-windows/ns-3.10-Win-1.2/raw-file/f475b791b345/ns-3.10-Win-1.2.zip here] | ||
+ | |||
+ | Download NetAnim for Windows from [http://code.nsnam.org/jabraham3/ns3-on-windows/ns-3.10-Win-1.2/raw-file/78d716fec82a/NetAnim.zip here] | ||
+ | |||
+ | Changelog & Caveats: | ||
+ | # Examples under Animation are enabled | ||
+ | # A Windows port of NetAnim | ||
+ | # Possible memory-leak if "Stop" button is pressed before Simulation ends (Need a way to gracefully shutdown simulator in future versions). | ||
+ | |||
+ | |||
+ | * Version (ns-3.10-Win-1.1) Pilot/Limited feature/Alpha version built on ns-3-dev(dated 02/07/2011) | ||
+ | Download from [http://code.nsnam.org/jabraham3/ns3-on-windows/ns-3.10-Win-1.1/raw-file/39ad64b4bfc9/ns-3.10-Win-1.1.zip here] | ||
+ | |||
+ | Changelog & Caveats: | ||
+ | # More examples have been enabled,including wireless and wimax.However, the following examples are still excluded: | ||
+ | #* examples/matrix-topology | ||
+ | #* examples/mpi | ||
+ | #* examples/realtime | ||
+ | #* examples/tap | ||
+ | #* examples/topology-read | ||
+ | #* examples/emulation | ||
+ | # Missing code from Core simulator: | ||
+ | #* tools | ||
+ | #* test | ||
+ | #* mpi | ||
+ | #* cairo high-precision | ||
+ | #* any animation related code | ||
+ | #* tap-bridge | ||
+ | #* emulation | ||
+ | #* NSC | ||
+ | #* realtime | ||
+ | #* utils | ||
+ | #* python bindings | ||
+ | #* unix* and wall-clock-synchronization | ||
+ | #* matrix topology reader | ||
+ | #* buffer-test.cc | ||
+ | # This version contains a port of gsl_erfc from GSL 1.14, as Visual Studio does not provide erfc in the standard math libraries. The erfc(x) port has been tested for x ranging from 0 to 3.5 | ||
+ | # Most of the contrib code is now included, except for code such as xml-config,config-store,sqlite*,gtk dependent code etc. | ||
+ | # High-precision cairo is not yet ported. | ||
+ | # OLSR model and helper are included, but olsr\test and olsr\examples are excluded as high-precision cairo is still not ported. | ||
+ | # This version fixes a major buffer-security bug in the first version (this is not related to the ns3 code). | ||
+ | # There should be zero linker errors & zero linker warnings in this version. | ||
+ | |||
+ | = Installation & Usage = | ||
+ | Follow instructions at [[Windows Port of ns-3 using Visual Studio Installation and Usage]] |
Latest revision as of 14:08, 28 July 2015
Note: This page is dated and kept only for historical reference; it has been replaced by ns-3 on Visual Studio 2012.
A project to extend NS3 functionality on Windows operating-systems (Specifically Visual Studio integration)
Contents
Project Goals
- To reduce or eliminate the need for CygWin to run NS3 on Windows operating-systems
- To expose native Windows API to NS3 developers
- To integrate NS3 into IDE's such as Visual Studio 2010
- To integrate NS3 into IDE's such as Visual Studio 2008 (Stretch Goal)
Development Plan
- Feasibility study and pilot implementation
- After the final commit from the ns-3 modularization project finalize folder structure and module list
- Review and commit changes for Windows onto ns-3.11
- Review copyrights,coding-style and documentation
- Build automated build framework
Current status
- The feasibility study was done .An unstable implementation built on ns-3.10 is available at #Software download (OBSOLETE)
- After the ns-3 modularization project a new unstable version is available, built on the ns-3-dev lineup
Software download
- Version (ns-3-Win2.0) built on ns-3-dev(dated 05/23/2011)
Download via mercurial: "hg clone http://code.nsnam.org/jabraham3/ns-3-win"
Changelog & Caveats:
- The ~30 modules of ns-3 can be built independently as projects within the master solution, saving time
- Instead of building all the examples within the solution, I have provided a facility to run only one example at a time.This is due to the fact that I wanted to reduce the changes required and considering the fact any user deals with 1 or 2 examples at most at any given time. (A Visual Studio solution provides only executable at any point)
- The project files will need to be downloaded via "mercurial"
- Optional features such as click,mpi,openflow can be built, however I have made these project files dormant. It is left to the end-user to enable them and point to the required include libraries to run its examples. I might provide instructions later on how to handle the optional features as time permits
- Any windows-based solution is always going to be a subset of the main ns-3 project and will have a reduced feature-set.
- This version is built on ns-3-dev rather than ns-3.10.
- The GUI MFC code is removed, as I prefer to maintain it separately.
The following are some of the missing features (some are excluded currently due to lack of time in porting them,some because they depend on third-party s/w and some can never be supported for windows)
- waf,Python-binding,Visualizer (portable). Note:Visual studio solution does not require waf at this point.
- watchdog.cc,wall-clock-synchronizer.cc,unix-system-wall-clock-ms.cc,unix-system-thread.cc,unix-system-condition.cc,unix-fd-reader.cc,int64x64-cairo.cc,int64x64-128.cc (can be sort of ported)
- config-store (portable)
- All NSC code (non-portable)
- SQL dependent code (portable)
- rocketfuel-topology-reader.cc (portable)
- Real-time simulator (????)
- lte-multiple-flows.cc (portable)
- main-test-sync.cc (portable)
- nms-p2p-* files (portable)
- Version (ns-3.10-Win-1.3) Alpha version built on ns-3-dev(dated 02/07/2011)
Download from here
Changelog & Caveats:
- This version caters to "Distributed simulation/MPI".
- A separate Visual Studio 2010 Solution file "ns-3-dev-MPI.sln" is provided in addition to the default "ns-3-dev.sln",
- "ns-3-dev-MPI.sln" is required to build "ns-dev" static libraries with MPI/Distributed simulation related code available.
- The MPI-related examples have an associated Makefile, to help build them.
- Distributed simulation is run with the aid of "Open MPI". As Open MPI's "mpirun" utility requires a console application, distributed-simulation needs to be a console app (i.e Windows GUI components won't be available).
- nms* examples are not included as they use "variable-length arrays" with are C99 features not supported on Visual C++.These examples might be made available in a future version.
Please visit the #Installation & Usage page for more details
- Version (ns-3.10-Win-1.2) Alpha version built on ns-3-dev(dated 02/07/2011)
Download from here
Download NetAnim for Windows from here
Changelog & Caveats:
- Examples under Animation are enabled
- A Windows port of NetAnim
- Possible memory-leak if "Stop" button is pressed before Simulation ends (Need a way to gracefully shutdown simulator in future versions).
- Version (ns-3.10-Win-1.1) Pilot/Limited feature/Alpha version built on ns-3-dev(dated 02/07/2011)
Download from here
Changelog & Caveats:
- More examples have been enabled,including wireless and wimax.However, the following examples are still excluded:
- examples/matrix-topology
- examples/mpi
- examples/realtime
- examples/tap
- examples/topology-read
- examples/emulation
- Missing code from Core simulator:
- tools
- test
- mpi
- cairo high-precision
- any animation related code
- tap-bridge
- emulation
- NSC
- realtime
- utils
- python bindings
- unix* and wall-clock-synchronization
- matrix topology reader
- buffer-test.cc
- This version contains a port of gsl_erfc from GSL 1.14, as Visual Studio does not provide erfc in the standard math libraries. The erfc(x) port has been tested for x ranging from 0 to 3.5
- Most of the contrib code is now included, except for code such as xml-config,config-store,sqlite*,gtk dependent code etc.
- High-precision cairo is not yet ported.
- OLSR model and helper are included, but olsr\test and olsr\examples are excluded as high-precision cairo is still not ported.
- This version fixes a major buffer-security bug in the first version (this is not related to the ns3 code).
- There should be zero linker errors & zero linker warnings in this version.
Installation & Usage
Follow instructions at Windows Port of ns-3 using Visual Studio Installation and Usage