Bugzilla – Full Text Bug Listing |
Summary: | Visual Studio 2015 Development Environment for NS-3 | ||
---|---|---|---|
Product: | ns-3 | Reporter: | Tom Henderson <tomh> |
Component: | general | Assignee: | ns-bugs <ns-bugs> |
Status: | ASSIGNED --- | ||
Severity: | normal | CC: | ammo6818, pdbarnes, tomh |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | PC | ||
OS: | Windows | ||
Attachments: |
Suggested revised patch for mpi
Suggested revised patch for core Revised patch for core Further revisions to core Status table (29 March 2018) Status Table |
Description
Tom Henderson
2017-04-07 20:50:00 EDT
Robert's status update: Work Completed (as of 4/10/2017) ----- 1) Linked the following examples: a. Wimax b. Wireless Future Work ----------- 1) Port TUN/TAP driver for Windows for Tap-bridge and Fd-net-device for the Windows implementation. 2) Determine process for creating merged “module” header files such as "ns3/core-module.h" under Windows. For now, transfer them from a Linux build environment. 3) Successfully complete the relevant project tests (using test.py if possible) 4) Create some Windows specific examples (if required). 5) Update the coding style and build documentation to address the Visual Studio requirements. 6) Update all the affected project documentation and web pages. 7) After completing VS 2015, check operation and update for VS 2017. 8) Incorporate the ns-3-dev source code changes into the repository. Issues ------ 1) The test application (test-runner) throws exceptions when executing the destructor from a number of tests. Have started debugging this issue but it is likely some subtle Windows / Linux difference that is going to be exceptionally hard to find. In the meantime, I am going to execute each example and test manually to make a list of porting issues, then attack the destructor issue. 2) Need to determine how many more NS-3 functions can be reasonably be added. I have a working version of Python and need to see what other parts of NS-3 can be made workable on Windows. a. Tap-bridge b. Fd-net-device c. Click d. Openflow Work Completed (as of 4/17/2017) -------- 1) Create Optimized configuration (there are 3 configurations Debug, Release and Optimized). Build options set tot he values defined for MSVC from cflags.py 2) In the process of updating the NS-3 source code to resolve warning level 4 errors. 3) Current execution of test-runner has all tests passing except for the following: FAIL routing-aodv-regression 0.084 s (packet time difference of 1 ns on some of the tests) FAIL int64x64 0.012 s FAIL Parse int64x64_t numbers as strings 0.006 s test="value.GetHigh () (actual) == hi (limit)" actual="-1" limit="-2" in="..\..\..\src\core\test\int64x64-test-suite.cc:230" High parts do not match for input string "-1.000000000000000000054" FAIL mobility-trace 0.006 s FAIL Mobility Trace Test Case 0.006 s test="diff (actual) == false (limit)" actual="1" limit="0" in="..\..\..\src\mobility\test\mobility-trace-test-suite.cc:106" ASCII traces C:\Users\ROBERT~1\AppData\Local\Temp\ns-3.10.27.34.11991\mobility-trace\Mobility Trace Test Case\mobility-trace-test.mob and C:\NS3\ns-3-win-dev\y\test\mobility-trace-example.mob differ starting from line 0 FAIL waypoint-mobility-model 0.001 s FAIL Check Waypoint Mobility Model LAZY notification accuracy 0.000 s test="sec - ((double)((int)sec)) (actual) == 0.5 (limit)" actual="0.5" limit="0.5" in="..\..\..\src\mobility\test\waypoint-mobility-model-test.cc:144" Course didn't change between waypoints with LAZY notifications FAIL pcap-file 0.002 s FAIL Check to see that PcapFile::Open with mode std::ios::out works 0.000 s test="f.Fail () (actual) == false (limit)" actual="1" limit="0" in="..\..\..\src\network\test\pcap-file-test-suite.cc:136" Open (C:\Users\ROBERT~1\AppData\Local\Temp\ns-3.10.28.36.12193\pcap-file\Check to see that PcapFile::Open with mode std::ios::out works\3073.pcap, "w") returns error FAIL routing-olsr-header 0.000 s FAIL Check Hna olsr messages 0.000 s test="hnaOut.associations[0].mask (actual) == Ipv4Mask ("255.255.255.0") (limit)" actual="102.102.102.102" limit="255.255.255.0" in="..\..\..\src\olsr\test\olsr-header-test-suite.cc:295" 502 FAIL rocketfuel-topology-reader 0.000 s FAIL RocketfuelTopologyReaderTest 0.000 s test="nodes.GetN () (actual) != 0 (limit)" actual="0" limit="0" in="..\..\..\src\topology-read\test\rocketfuel-topology-reader-test-suite.cc:76" Problems reading node information the topology file.. FAIL pie-queue-disc 0.034 s FAIL Sanity check on the pie queue disc implementation 0.034 s test="test5 (actual) < test4 (limit)" actual="129" limit="129" in="..\..\..\src\traffic-control\test\pie-queue-disc-test-suite.cc:343" Test 5 should have less unforced drops than test 4 I have successfully compiled and linked NS-3 under VS 2015. This includes the libraries, test programs and example programs for all current NS-3 components where all third party required libraries for Windows exist (pthreads, libxml, gsl, etc.) There are three build targets, Debug, Release and Optimized. The Debug build uses warning level 4 (the W4 complier option) which treats all warnings as errors. Because warnings are hidden by WAF in the Linux environment, there are a significant number of compiler warnings in each module which have been corrected in the source code base files. I have started testing the Visual Studio build under Windows and regression testing the source code base changes under Linux. Regression testing under Linux is being done in two parts; 1) merging non platform specific changes to address compiler warnings and executing the full suite of tests using ./test.py then 2) merging the Windows specific source code base file changes and repeating the regression testing using ./test.py. Both the Windows testing and Linux testing are occurring simultaneously. The platform independent corrections for the Internet module have been regression tested under Linux and have been uploaded as http://codereview.appspot.com/326390043. Additional testing has identified the following bugs in the Internet module: Bug 2781 - Invalid iterator access. Patch has been submitted for this bug Bug 2211 - Use after free error This bug has been reopened since there still exists a use after free error. Review by the module owner is needed to determine a resolution for this bug. Additional testing has identified the following bugs in the LTE module: Bug 2782 - Invalid MCS value is being checked in LteAmc::CreateCqiFeedbacks Patch has been submitted for this bug. Changes have been uploaded to http://codereview.appspot.com/334960043 to resolve complier warnings for Examples. Changes have been uploaded to http://codereview.appspot.com/338790043 to resolve complier warnings for Aodv. Changes have been uploaded to http://codereview.appspot.com/331220043 to resolve complier warnings for Applications. Changes have been uploaded to http://codereview.appspot.com/331230043 to resolve complier warnings for Buildings. Changes have been uploaded to http://codereview.appspot.com/334020043 to resolve complier warnings for Config-store. Changes have been uploaded to http://codereview.appspot.com/336970043 to resolve complier warnings for Core. Changes have been uploaded to http://codereview.appspot.com/337930043 to resolve complier warnings for CSMA. Changes have been uploaded to http://codereview.appspot.com/339760043 to resolve complier warnings for DSDV. Changes have been uploaded to http://codereview.appspot.com/333050043 to resolve complier warnings for DSR. Changes have been uploaded to http://codereview.appspot.com/336110043 to resolve complier warnings for Energy. Changes have been uploaded to http://codereview.appspot.com/338820043 to resolve complier warnings for Fd-net-device. Changes have been uploaded to http://codereview.appspot.com/336980043 to resolve complier warnings for Flow-monitor. Changes have been uploaded to http://codereview.appspot.com/337950043 to resolve complier warnings for Internet Changes have been uploaded to http://codereview.appspot.com/337960043 to resolve complier warnings for Internet-apps Changes have been uploaded to http://codereview.appspot.com/338830043 to resolve complier warnings for Lr-wpan Changes have been uploaded to http://codereview.appspot.com/338840043 to resolve complier warnings for Lte Changes have been uploaded to http://codereview.appspot.com/339770043 to resolve complier warnings for Mesh Changes have been uploaded to http://codereview.appspot.com/331250043 to resolve complier warnings for Mobility Changes have been uploaded to http://codereview.appspot.com/332170043 to resolve complier warnings for Mpi Changes have been uploaded to http://codereview.appspot.com/338850043 to resolve complier warnings for Netanim Changes have been uploaded to http://codereview.appspot.com/339780043 to resolve complier warnings for Network Changes have been uploaded to http://codereview.appspot.com/336990043 to resolve complier warnings for Nix-vector-routing Changes have been uploaded to http://codereview.appspot.com/337970043 to resolve complier warnings for Olsr Changes have been uploaded to http://codereview.appspot.com/337980043 to resolve complier warnings for Point-to-point Changes have been uploaded to http://codereview.appspot.com/331260043 to resolve complier warnings for Propagation Changes have been uploaded to http://codereview.appspot.com/338860043 to resolve complier warnings for Sixlowpan Changes have been uploaded to http://codereview.appspot.com/332190043 to resolve complier warnings for Spectrum Changes have been uploaded to http://codereview.appspot.com/331270043 to resolve complier warnings for Stats Changes have been uploaded to http://codereview.appspot.com/332200043 to resolve complier warnings for Tap-bridge Changes have been uploaded to http://codereview.appspot.com/336140043 to resolve complier warnings for Test Changes have been uploaded to http://codereview.appspot.com/337000043 to resolve complier warnings for Topology-read Changes have been uploaded to http://codereview.appspot.com/337010043 to resolve complier warnings for Wave Changes have been uploaded to http://codereview.appspot.com/333070043 to resolve complier warnings for Wifi Changes have been uploaded to http://codereview.appspot.com/333080043 to resolve complier warnings for Traffic-control Changes have been uploaded to http://codereview.appspot.com/338000043 to resolve complier warnings for Uan Changes have been uploaded to http://codereview.appspot.com/339790043 to resolve complier warnings for Virtual-net-device Changes have been uploaded to http://codereview.appspot.com/331280043 to resolve complier warnings for Wimax Updated changes to use C++ type casts have been uploaded to http://codereview.appspot.com/338790043 for Aodv. Changes to use C++ type casts have been uploaded to http://codereview.appspot.com/331220043 for Applications. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/331230043 for Buildings. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/334020043 for Config-store. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/336970043 for Core. Updates to use C++ style type casts have been uploaded to http://codereview.appspot.com/337930043 for CSMA. Changes to use C++ syle type casts have been uploaded to http://codereview.appspot.com/339760043 for DSDV. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/333050043 for DSR. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/336110043 for Energy. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/338820043 for Fd-net-device. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/336980043 for Flow-monitor. Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/337950043 for Internet Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/337960043 for Internet-apps Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/338830043 for Lr-wpan Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/338840043 for Lte Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/339770043 for Mesh Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/331250043 for Mobility Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/332170043 for Mpi Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/338850043 for Netanim Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/339780043 for Network Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/336990043 for Nix-vector-routing Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/337970043 for Olsr Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/337980043 for Point-to-point Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/331260043 for Propagation Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/338860043 for Sixlowpan Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/332190043 for Spectrum Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/331270043 for Stats Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/332200043 for Tap-bridge Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/336140043 for Test Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/337000043 for Topology-read Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/337010043 for Wave Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/333070043 for Wifi Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/333080043 for Traffic-control Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/338000043 for Uan Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/339790043 for Virtual-net-device Changes to use C++ style type casts have been uploaded to http://codereview.appspot.com/331280043 for Wimax Created attachment 3027 [details]
Suggested revised patch for mpi
(In reply to Peter Barnes from comment #79) > Created attachment 3027 [details] > Suggested revised patch for mpi Patch updated as noted in the comments. Created attachment 3031 [details]
Suggested revised patch for core
I reviewed Robert's proposed patch to core. In a number of places I suggest
not casting, but rationalizing argument and return types, in particular using
std::size_t for the sizes and indexes. These may have to propagate to
other modules...
In particular, the global values RngRun and RngSeed should really be UintegerValue, not IntegerValue. This required patches to lte tests and examples, which are in this patch.
I also removed some extraneous diffs (e.g. doxygen).
I have questions about these (still present in this revised core patch):
log.cc: Not obvious to me why the ',' separator between parameters
is missing here.
type-id.h,cc: canBeDuplicate?
Why do we need to allow duplicate registrations?
Why do we need to allow duplicate constructors?
Why do we need to allow duplciate trace sources?
type-id.h:
doxygen is misspelled: canBeDupicate (missing 'l')
AddTraceSource: canBeDuplicate should be before supportLevel (haven't done
this pending explanation for the need)
type-id.cc:
doxygen is misspelled: canBeDupicate (missing 'l')
AddTraceSource: canBeDuplicate should be before supportLevel (haven't done
this pending explanation for the need)
Created attachment 3034 [details]
Revised patch for core
Remove canBeDupe from TypeId; we'll handle this separately from this VS patch.
Just so it doesn't get lost, this Q for the core patch is still outstanding:
> log.cc: Not obvious to me why the ',' separator between parameters
> is missing here.
(In reply to Peter Barnes from comment #83) > Just so it doesn't get lost, this Q for the core patch is still outstanding: > > > log.cc: Not obvious to me why the ',' separator between parameters > > is missing here. Updated patch has been uploaded to incorporate review changes and resolve comments. Created attachment 3039 [details] Further revisions to core This is a small refinement to apply on top of patch 8 here: https://codereview.appspot.com/336970043/ Mostly ' (', but a few significant types changes to test in VS. (In reply to Peter Barnes from comment #85) > Created attachment 3039 [details] > Further revisions to core > > This is a small refinement to apply on top of patch 8 here: > https://codereview.appspot.com/336970043/ > > Mostly ' (', but a few significant types changes to test in VS. Would like to try to close this out and merge this core patch this week. It seems that the patch 8 of the above review, plus Peter's 'further revisions to core', is the latest revision, and that duplicate TypeId issue is being separately handled, but my remaining comments are: - missing comma delimiter in 'log.cc' (Peter also asked above about this) - where logging statements have been disabled, I prefer to see them re-enabled by default, and add a 'quiet' command line option (default false) for disabling them if needed. (In reply to Tom Henderson from comment #86) > (In reply to Peter Barnes from comment #85) > > Created attachment 3039 [details] > > Further revisions to core > > > > This is a small refinement to apply on top of patch 8 here: > > https://codereview.appspot.com/336970043/ > > > > Mostly ' (', but a few significant types changes to test in VS. > > Would like to try to close this out and merge this core patch this week. > It seems that the patch 8 of the above review, plus Peter's 'further > revisions to core', is the latest revision, and that duplicate TypeId issue > is being separately handled, but my remaining comments are: > > - missing comma delimiter in 'log.cc' (Peter also asked above about this) > > - where logging statements have been disabled, I prefer to see them > re-enabled by default, and add a 'quiet' command line option (default false) > for disabling them if needed. Additional updates added to address the review comments. Note that the implementation for the uint8_t and int8_t overrides match the existing functions which omit the comma for the first output. MPI patch pushed in r229c5432 Patch uploaded with Windows platform conditional compiles for Visual Studio for the traffic-control as issue http://codereview.appspot.com/333710043 Patch uploaded with Windows platform conditional compiles for Visual Studio for the uan module as issue http://codereview.appspot.com/339310043 Changes have been uploaded to http://codereview.appspot.com/336640043 to resolve complier warnings for Examples/Energy. Changes have been uploaded to http://codereview.appspot.com/331700043 to resolve complier warnings for Examples/Error-model. Changes have been uploaded to http://codereview.appspot.com/340380043 to resolve complier warnings for Examples/Ipv6. Changes have been uploaded to http://codereview.appspot.com/341750043 to resolve complier warnings for Examples/Matrix-topology. Changes have been uploaded to http://codereview.appspot.com/340390043 to resolve complier warnings for Examples/Naming. Changes have been uploaded to http://codereview.appspot.com/335620043 to resolve complier warnings for Examples/Routing. Changes have been uploaded to http://codereview.appspot.com/337660043 to resolve complier warnings for Examples/Socket. Changes have been uploaded to http://codereview.appspot.com/340840043 to resolve complier warnings for Examples/Tcp. Changes have been uploaded to http://codereview.appspot.com/340840043 to resolve complier warnings for Examples/Traffic-control. (In reply to Robert Ammon from comment #99) > Changes have been uploaded to http://codereview.appspot.com/336650043 to > resolve complier warnings for Examples/Traffic-control. Changes have been uploaded to http://codereview.appspot.com/336660043 to resolve complier warnings for Examples/Tutorial. Changes have been uploaded to http://codereview.appspot.com/335630043 to resolve complier warnings for Examples/Udp. Changes have been uploaded to http://codereview.appspot.com/340850043 to resolve complier warnings for Examples/Udp-client-server. Changes have been uploaded to http://codereview.appspot.com/334560043 to resolve complier warnings for Examples/Wireless. (In reply to Robert Ammon from comment #91) > Changes have been uploaded to http://codereview.appspot.com/336640043 to > resolve complier warnings for Examples/Energy. Deleted issue. (In reply to Robert Ammon from comment #92) > Changes have been uploaded to http://codereview.appspot.com/331700043 to > resolve complier warnings for Examples/Error-model. Deleted issue. (In reply to Robert Ammon from comment #93) > Changes have been uploaded to http://codereview.appspot.com/340380043 to > resolve complier warnings for Examples/Ipv6. Deleted issue. (In reply to Robert Ammon from comment #95) > Changes have been uploaded to http://codereview.appspot.com/340390043 to > resolve complier warnings for Examples/Naming. Deleted issue. (In reply to Robert Ammon from comment #101) > Changes have been uploaded to http://codereview.appspot.com/336660043 to > resolve complier warnings for Examples/Tutorial. Deleted issue. (In reply to Robert Ammon from comment #102) > Changes have been uploaded to http://codereview.appspot.com/335630043 to > resolve complier warnings for Examples/Udp. Deleted issue. (In reply to Robert Ammon from comment #103) > Changes have been uploaded to http://codereview.appspot.com/340850043 to > resolve complier warnings for Examples/Udp-client-server. Deleted issue. Created attachment 3088 [details]
Status table (29 March 2018)
patch for core warnings (casts) has been pushed: r13423 (b34ee29e) Visual Studio conditional compile updates for the core module uploaded as http://codereview.appspot.com/342870043 Created attachment 3092 [details]
Status Table
Latest status as of 4/12
Latest revised patch for core: https://codereview.appspot.com/342120043/ |