Further, while using ns-3 under chroot, we can install any version of ns-3 on any version of HOST os.> "Using newer version of ns-3 on older systems"
"Using any version of ns-3 on any version of Linux host OS" will be a suitable titleOn Sun, Oct 10, 2021 at 12:51 AM Charles Pandian <igs...@gmail.com> wrote:About the need of a 3D visualization tool for ns-3 and existing possibilities :Mr. Tom,
Thank you for recognizing my 'chroot jail ns-3 Install' post.
Even though a 3D visualization tool or even 2D visualization tool is not at all needed to do scholarly research work, while learning the fundamentals of a simulation, for better understanding, all of us just want to visualize the network that we are simulating. For that, we need a visualization tool.The easiest and existing way is using NetSimulyzer. But NetSimulyzer only has basic visualization capabilities implemented in it. For example, in Aqua3D, Omnet++, we can visualize the packet transmission in the medium (as expanding bubble).
- In fact, it is possible to use 'Aqua3D' visualization tool for visualizing 3D network scenario of ns-3. For that, we have to add a simple ns-3 extension to generate ns-2 format trace output file.
- It may be possible to write a 3D visualization tool for ns-3 using osgEarth 3D engine of http://osgearth.org/ - Omnet++ has it implemented in it.
So, if Evan Black at NIST will add a few more visualizations such as Packet Transmission, Drop, Collision etc., then it will become a very practical 3D visualization tool for ns-3.
Even though NetSimulyzer is not at all having facilities to visualize Underwater Network (Water Medium), I just did a prototype simulation as a proof of concept in the following posts:
Simulating And Visualizing 3D Mobile Underwater Sensor Network (UWSN) Under ns-3
(it is also simulated under chroot jail)
That prototype simulation is using AquasimNG to simulate all the aspects of the Underwater Network; and the water medium that was simulated in Netsimulyzer will not play anything in wave propagation (even we can make that water medium interact with the electromagnetic wave if that obstacle model has that feature - I do not know about it).
In total the final output of the 3D visualization is very pleasant to see.
Of course, it is not as pleasant as the following Omnet++ 3D underwater network simulation prototype.
Simulating and Visualizing 3D Underwater Wireless Sensor Network (UWSN) Under Omnet++(it is also simulated under chroot jail)
But, keep in mind that Omnet++ is not at all having any good extension to simulate basic underwater communication/routing - but ns3 has two solid works - one is available with default ns3 (UAN) and the other is available as an extension for ns-3 (AquaSimNG) that has some routing protocols too.
(see the attached gif files to understand the difference in output quality of these two 3D simulations one is with ns-3 and the another is with Omnet++)
- So, with minimum tinkering on NetSimulyzer and AquaSimNG (or UAN of ns-3), we will end-up with a good 3D Underwater visualization tool for ns-3.
- And without any/much tinkering, we can use NetSimulyzer to visualize a UAV/FANET scenario that was simulated in ns3.
Whether (at present) people are using it or not, NetSimulyzer is the nearest possibility to visualize a Mobile, 3D Network simulated in ns-3.
Charles Pandian.On Sat, Oct 9, 2021 at 11:44 PM Tom Henderson <to...@tomh.org> wrote:On 10/8/21 1:11 PM, Charles Pandian wrote:
>
> Mr. Tom,
>
> ns3.35 and netanim-3.108 are installing under Debian 11 without any
> problem.
>
> What I mean as "native hardware/OS installation issue" in that post is:
>
> Generally, one will use an old Linux distribution for a long time and
> get used to it. If they decide to install ns3.35 on that, then it will
> require gcc/g++ versions 4.9 or above. For that, they will try to
> install the latest gcc and its dependent dev-libraries. In that case,
> the apt installer may advise removing some conflicting old
> package/library and it may spoil the working of another software that
> is previously installed in the system.
OK, I agree (by the way, ns-3.35 now requires g++ 7 or above, and Python
3.6 or above).
>
> In that case they will decide to install ns-3 under a type II
> hypervisor (such as VirtualBox or VMware).
> Instead of installing a Linux OS under type II hypervisor , we may
> install a compatible Linux on chroot environment and install ns3.35
> without disturbing the stability of the existing HOST OS (whatever may
> be the version).
>
> Further, under type II hypervisors the ./waf compile is not as fast as
> in chroot environment.
I think your guidance is useful and we should find a way to link to it
or incorporate it in documentation.
We have an existing wiki page:
https://www.nsnam.org/wiki/HOWTO_build_old_versions_of_ns-3_on_newer_compilers
We probably need a reverse version of this (i.e., How to use newer ns-3
versions on older systems) and recommend the chroot as a possible fix.
Presently, our installation instructions are on a wiki, but I would like
to move them to maintained documentation like the tutorial. I started
some drafts in this direction, which I plan to return to once I finish
the contributed code guide.
For the moment, I stashed a link here:
https://www.nsnam.org/wiki/Installation#Using_newer_version_of_ns-3_on_older_systems
Thank you for writing it up and sharing it with everyone.
>
> For your information, if someone tries to install the NetSimulyzer
> (the 3D Visualization Tool for ns-3) under VirtualBox, probably they
> will never be able to compile it because of memory-related issues.
> But, it can be compiled without any problem under chroot jail; because
> the chroot jail will have access to all the memory and CPU resources
> of the HOST.
I am curious, are people using the NetSimulyzer and do they have any
feedback and/or comments about it that they are willing to share in this
group? NetSimulyzer was announced earlier this year and is being
actively developed by Evan Black at NIST. There was a good tutorial on
it at the Workshop on ns-3 (please see this page for archived video; it
is the last link on the page:
https://www.nsnam.org/research/wns3/wns3-2021/tutorials/).
- Tom
--
Posting to this group should follow these guidelines https://www.nsnam.org/wiki/Ns-3-users-guidelines-for-posting
---
You received this message because you are subscribed to the Google Groups "ns-3-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ns-3-users/b1b32be4-aafd-fd99-ef4a-12b7daeafa59%40tomh.org.
Mr Tom and all,
Sorry, I already posted this in another thread. But starting a new one with suitable subject text.
Even though a 3D visualization tool or even 2D visualization tool is not at all needed to do scholarly research work, while learning the fundamentals of a simulation, for better understanding, all of us just want to visualize the network that we are simulating. For that, we need a visualization tool.
Agreed.
About the need of a 3D visualization tool for ns-3 and existing possibilities :
- In fact, it is possible to use 'Aqua3D' visualization tool for visualizing 3D network scenario of ns-3. For that, we have to add a simple ns-3 extension to generate ns-2 format trace output file.
- It may be possible to write a 3D visualization tool for ns-3 using osgEarth 3D engine of http://osgearth.org/ - Omnet++ has it implemented in it.
- The easiest and existing way is using NetSimulyzer. But NetSimulyzer only has basic visualization capabilities implemented in it. For example, in Aqua3D, Omnet++, we can visualize the packet transmission in the medium (as expanding bubble).
So, if Evan Black at NIST will add a few more visualizations such as Packet Transmission, Drop, Collision etc., then it will become a very practical 3D visualization tool for ns-3.
I have forwarded this message to Evan in case he may not have
read it originally.
Many years ago, Mathieu Lacage wrote a simple nam trace generator
as a proof of concept. Maybe the code you are pointing to is at
the bottom of the page here?
https://www.nsnam.org/wiki/Contributed_Code. For a few years, we
were advertising this as a possible project for GSoC:
https://www.nsnam.org/wiki/GSOC2020Projects#nam_upgrade_and_support_for_ns-3
nam fell by the wayside during ns-3 development because George Riley and John Abraham were developing NetAnim, and NetAnim evolved to have many more features and capabilities than did nam. However, NetAnim has been dormant for several years now.
There is one feature in nam that I thought was particularly
useful (but didn't carry forward to NetAnim), which is the
graphical representation of a queue filling and then overflowing.
Richard Scheffeneger once wrote a nam animation of bufferbloat
that depicts it nicely. This kind of visualization would be
helpful as well (to see queue dynamics):
http://www.nsnam.org/~tomh/nam-bufferbloat.avi
Aqua3D can show the propagating packet/wave as expanding spheres and can show packet drops and even we can make simple 3D models to denote nodes such as drones, cars, ship, sensor nodes etc.,
From the following lines in that file, I can understand that it can create nam files only for p2p scenarios using PointToPointNetDevice. But we can add the same functionality for other net devices also.
void
NamTracer::SetupP2pTraces (uint32_t nodeid, uint32_t deviceid)
{
std::ostringstream oss;
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::PointToPointNetDevice/Rx";
Config::Connect (oss.str (), MakeCallback (&NamTracer::P2pRxEvent, Ptr<NamTracer> (this)));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::PointToPointNetDevice/TxQueue/Enqueue";
Config::Connect (oss.str (), MakeCallback (&NamTracer::P2pEnqueueEvent, Ptr<NamTracer> (this)));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::PointToPointNetDevice/TxQueue/Dequeue";
Config::Connect (oss.str (), MakeCallback (&NamTracer::P2pDequeueEvent, Ptr<NamTracer> (this)));
oss.str ("");
oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::PointToPointNetDevice/TxQueue/Drop";
Config::Connect (oss.str (), MakeCallback (&NamTracer::P2pDropEvent, Ptr<NamTracer> (this)));
}
I tried to compile this extension under the new ns3 version - but could not compile it or could not able to use it under ns-3 simulation (I forgot the errors that I got)
I tried to compile it by keeping these files under 'contrib' folder and adding a wscript. - but no success yet.
Please look into these files and tell your suggestion for compiling and using them.
Even this functionality can be added inside any of the existing modules of ns-3
With these few lines of code, we an ad excellent 2D/3D visualization capability.
Will this kind of visualization useful or not? - please tell your opinion.
yes, we should try to support a few visualizers for ns-3. Let's
keep working on this topic.
- Tom