NS-3.24 (AquaSim-NG) issue in underwater networks

852 views
Skip to first unread message

Underwater_guy

unread,
May 24, 2016, 11:28:44 AM5/24/16
to ns-3-users
Hi,

 I am trying to implement a scenario to implement DBR or VBF, but facing this issue and trying to solve this issue. Can you give your opinion in this.

Output of scenario:

Creating Nodes
transstatus set to nidle
Node: 0xc1c510 newDevice: 0xc1d810 Position: x- 0 ,y- 0 ,z- 0 freq:25 node address: 02-01-00 NDtypeid:ns3::AquaSimNetDevice Ptypeid:ns3::AquaSimPhy
transstatus set to nidle
Node: 0xc1ca00 newDevice: 0xc1eaf0 Position: x- 20 ,y- 20 ,z- 20 freq:25 node address: 02-01-01 NDtypeid:ns3::AquaSimNetDevice Ptypeid:ns3::AquaSimPhy
transstatus set to nidle
Node: 0xc1cb40 newDevice: 0xc1f670 Position: x- 40 ,y- 40 ,z- 40 freq:25 node address: 02-01-02 NDtypeid:ns3::AquaSimNetDevice Ptypeid:ns3::AquaSimPhy
transstatus set to nidle
Node: 0xc1cc70 newDevice: 0xc20300 Position: x- 60 ,y- 60 ,z- 60 freq:25 node address: 02-01-03 NDtypeid:ns3::AquaSimNetDevice Ptypeid:ns3::AquaSimPhy
transstatus set to nidle
Node: 0xc1cda0 newDevice: 0xc20f20 Position: x- 80 ,y- 80 ,z- 80 freq:25 node address: 02-01-04 NDtypeid:ns3::AquaSimNetDevice Ptypeid:ns3::AquaSimPhy
02-01-00 &&& 0
02-01-01 &&& 0
02-01-02 &&& 0
02-01-03 &&& 0
02-01-04 &&& 0
Applications started -----------Running Simulation-----------
assert failed. cond="m_current >= m_dataStart && m_current < m_dataEnd", msg="You have attempted to read beyond the bounds of the available buffer space. This usually indicates that a Header::Deserialize or Trailer::Deserialize method is trying to read data which was not written by a Header::Serialize or Trailer::Serialize method. In short: check the code of your Serialize and Deserialize methods.", file=./ns3/buffer.h, line=996
terminate called without an active exception

Back-trace result:

Program received signal SIGABRT, Aborted.
0x00007fffee1a4267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
55    ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0  0x00007fffee1a4267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007fffee1a5eca in __GI_abort () at abort.c:89
#2  0x00007fffeecd606d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007fffeecd3ee6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007fffeecd3f31 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff79892f2 in ns3::Buffer::Iterator::PeekU8 (this=0x7fffffffc430) at ./ns3/buffer.h:994
#6  0x00007ffff79893bc in ns3::Buffer::Iterator::ReadU8 (this=0x7fffffffc430) at ./ns3/buffer.h:1017
#7  0x00007fffeffed2b4 in ns3::Buffer::Iterator::ReadU32 (this=0x7fffffffc430) at ../src/network/model/buffer.cc:976

(HERE THE PROBLEM LIES BUT WHAT?)

#8  0x00007ffff181c3cd in ns3::VBHeader::Deserialize (this=0x7fffffffc870, start=...)
    at ../src/aqua-sim-ng/model/aqua-sim-header-routing.cc:179
#9  0x00007ffff00169b0 in ns3::Packet::PeekHeader (this=0x720930, header=...) at ../src/network/model/packet.cc:278
#10 0x00007ffff182b421 in ns3::AquaSimVBF::Recv (this=0x71b9d0, packet=..., dest=..., protocolNumber=0)
    at ../src/aqua-sim-ng/model/aqua-sim-routing-vbf.cc:286
#11 0x00007ffff174916e in ns3::AquaSimNetDevice::Send (this=0x71aca0, packet=..., dest=..., protocolNumber=0)
    at ../src/aqua-sim-ng/model/aqua-sim-net-device.cc:487
#12 0x00007ffff009d366 in ns3::PacketSocket::SendTo (this=0x71fbc0, p=..., flags=0, address=...)
    at ../src/network/utils/packet-socket.cc:341
#13 0x00007ffff009c4fd in ns3::PacketSocket::Send (this=0x71fbc0, p=..., flags=0) at ../src/network/utils/packet-socket.cc:269
#14 0x00007ffff002c053 in ns3::Socket::Send (this=0x71fbc0, p=...) at ../src/network/model/socket.cc:138
#15 0x00007ffff49f461c in ns3::OnOffApplication::SendPacket (this=0x71f610) at ../src/applications/model/onoff-application.cc:276
#16 0x00007ffff49f6ccf in ns3::EventImpl* ns3::MakeEvent<void (ns3::OnOffApplication::*)(), ns3::OnOffApplication*>(void (ns3::OnOffApplication::*)(), ns3::OnOffApplication*)::EventMemberImpl0::Notify() (this=0x62e3d0) at ./ns3/make-event.h:323
#17 0x00007fffef8d176f in ns3::EventImpl::Invoke (this=0x62e3d0) at ../src/core/model/event-impl.cc:51
#18 0x00007fffef8d677e in ns3::DefaultSimulatorImpl::ProcessOneEvent (this=0x7196b0)
    at ../src/core/model/default-simulator-impl.cc:149
#19 0x00007fffef8d6b45 in ns3::DefaultSimulatorImpl::Run (this=0x7196b0) at ../src/core/model/default-simulator-impl.cc:202
#20 0x00007fffef8d2593 in ns3::Simulator::Run () at ../src/core/model/simulator.cc:204
#21 0x000000000040cb7c in LocalExperiment::Run (this=0x7fffffffd870) at ../scratch/uwsn2.cc:142
#22 0x000000000040d7ab in main (argc=2, argv=0x7fffffffd968) at ../scratch/uwsn2.cc:152
(gdb) quit

Underwater_guy

unread,
May 27, 2016, 10:12:43 AM5/27/16
to ns-3-users
Until, now, I have found that, AquaSim based on NS-2 and NS-3 have nodes addressing issues. Due to these issues, MAC protocols work in the libraries, but not routing protocols, as the creators of the libraries tried to change/implement IPV4 addressing scheme or underwater addressing scheme in routing protocols. So, any of the guys need to implement routing in AquaSim, will have to solve addressing issues at routing layer. 

You can use gdb-backtrace to check these issues.

Tommaso Pecorella

unread,
May 27, 2016, 11:44:24 AM5/27/16
to ns-3-users
Hi,

as you said, Aqua-Sim is based on ns2, and this is the ns-3 group.
The Underwater module for ns-3 still a bit limited, but we're working on removing a lot of the actual limitations.
If you want to contribute to the ns-3 underwater development, feel free to poke the UAN maintainers.

Cheers,

T.

Underwater_guy

unread,
May 27, 2016, 12:29:02 PM5/27/16
to ns-3-users
Sir

There are two big modules for underwater networks in NS-2 , one is UAN module

 http://www.ee.washington.edu/research/funlab/uan/index.html

and the other one development going on is

http://www.engr.uconn.edu/~rcm08005/aquasim.html
https://github.com/rmartin5/aqua-sim-ng

I suppose that the main difference is that the first one is mainly focused on Physical and MAC layer and until now, they have shown no intentions to work on routing layer. However, the second one was originally developed to focus on all physical, MAC and routing layer. But, there are problems with their libraries of routing protocols, which have not been solved in both the previous version of Aqua-Sim and Aqua-Sim-NG.

Tommaso Pecorella

unread,
May 27, 2016, 12:43:41 PM5/27/16
to ns-3-users
HI,

perhaps you're right, but then again... this is the ns-3 user group. As I said we're currently expanding the ns-3 underwater modules, and we'll be extremely happy to include any extension to the actual modules (after our usual code review).
About ns2 based simulators or branches... well, we can't offer any help, because ns-3 is not ns2.
Summarising: I don't understand your question.

T.

Underwater_guy

unread,
May 27, 2016, 12:57:27 PM5/27/16
to ns-3-users
Sir,

Sorry, I forgot to write NS3 in the last comment. Both modules for underwater networks have already been implemented in NS3 but are not fully functional and are available on internet on these two links.

1-https://www.nsnam.org/doxygen/dir_d0a70199355efd62843e48a9530b6bf9.html
2-https://github.com/rmartin5/aqua-sim-ng

Actually, previously, I was confused and was not aware about this info, now I thought to share this with upcoming guys, who want to work on routing layer in underwater networks, because libraries for routing protocols are not present/functional in both of these modules, it would surely save their time.

So, I am going to work on routing layer, which will require at least to build a fully functional routing protocol/addressing in NS3 using previously implemented NS3-based Aqua-Sim-NG libraries.

Thanks,,

Tommaso Pecorella

unread,
May 27, 2016, 1:13:08 PM5/27/16
to ns-3-users
Hi,

numbers *and* spelling are important. It's "ns2" (not capitals) and "ns-3" (no capitals). The dash helps in avoiding mistakes.

I never worked with Aqua-Sim NG, and it would be wonderful if it could be fully integrated with the existing ns-3 modules. Alas, I guess it duplicates some functionalities already in the can module, and also in the upcoming woss module.
From a quick look, it seems that Aqua-Sim NG could benefit a lot from integration with UAN and WOSS (and viceversa).

Anyway, if you want to contribute to Aqua-Sim NG, the best suggestion I can give you is to contact Robert Martin. For UAN and WOSS, there's an official maintainer.

Cheers,

T.

Ssuet Class

unread,
Apr 9, 2018, 5:04:59 AM4/9/18
to ns-3-users
Where to write this code please give me steps 

Ssuet Class

unread,
Apr 9, 2018, 5:06:26 AM4/9/18
to ns-3-users
Sir  i want to make underwater network nodes   model please help me how to start 

Manik Chand

unread,
May 11, 2020, 1:25:11 AM5/11/20
to ns-3-users
Hi,

I am also trying to implement VBF routing protocol, but having some problem to tracing the origin of packet in aqua-sim-routing-vbf.cc. Please help me out.
Reply all
Reply to author
Forward
0 new messages