Light-weight implementation of the TCP/IP protocol suite in NS-3

96 views
Skip to first unread message

Shahrukh Khan Kasi

unread,
Jul 5, 2019, 11:30:52 AM7/5/19
to ns-3-users
Hi,

I was looking for workable options available in NS-3 to use and modify light-weight implementation of the TCP/IP (LWIP) protocol suite. So far I have found network simulations cradle (https://www.nsnam.org/docs/models/html/tcp.html#network-simulation-cradle) installation as the only option but I face issues in its installation as it requires Linux kernel versions 2.6.18 and 2.6.26 which are obsolete. Is there any other way to use LWIP in NS-3? If not can someone please guide me through the process of installing it.

Best,
Shahrukh

Tom Henderson

unread,
Jul 5, 2019, 12:06:36 PM7/5/19
to ns-3-...@googlegroups.com
Shahrukh, NSC does not require Linux kernel versions 2.6.18, 2.6.26-- it
provides them. Your kernel can be any version.

I don't have any experience using lwip with NSC, but I see that Network
Simulation Cradle has supported it in the past.

NSC hasn't been actively developed/maintained for many years, which is
why it has fallen behind in compatibility, but I have been using it
personally earlier this year (but with a Linux kernel model, not lwip).
The main constraint is that it works only for gcc-5 compilers and not
later ones, which means that you may need to install a gcc-5 series
compiler and make sure that the NSC build system uses it.

In summary, there is historical support for lwip and NSC, but I don't
know whether anyone has a good idea if it will be easy or hard to get it
working again. It is worth a try using NSC if you really would like to
use lwip with ns-3.

- Tom

Shahrukh Khan Kasi

unread,
Jul 8, 2019, 11:34:05 AM7/8/19
to ns-3-users
Thank you Tom for your response. I have now installed NSC. However, I can only see executable stacks for linux2.6.18 and linux2.6.26. There is no executable stack for lwip. I am also having a hard time finding any tutorial online on the usage of lwip in NS3. 

Is there any way to execute lwip stack in NS3? If not, do you know of any other light-weight tcp variant (with limited functionality) that can be simulated in NS3?

Kind Regards,
Shahrukh 

Tom Henderson

unread,
Jul 8, 2019, 2:54:29 PM7/8/19
to ns-3-...@googlegroups.com
Shahrukh, I am not sure whether anyone has worked on lwip with ns-3.
Perhaps others can respond if they have some advice.


On 7/8/19 8:34 AM, Shahrukh Khan Kasi wrote:
> Thank you Tom for your response. I have now installed NSC. However, I
> can only see executable stacks for linux2.6.18 and linux2.6.26. There is
> no executable stack for lwip. I am also having a hard time finding any
> tutorial online on the usage of lwip in NS3.
>
> Is there any way to execute lwip stack in NS3? If not, do you know of
> any other light-weight tcp variant (with limited functionality) that can
> be simulated in NS3?
>
> Kind Regards,
> Shahrukh
>
> On Friday, July 5, 2019 at 12:06:36 PM UTC-4, Tom Henderson wrote:
>
> On 7/5/19 8:30 AM, Shahrukh Khan Kasi wrote:
> > Hi,
> >
> > I was looking for workable options available in NS-3 to use and
> modify
> > light-weight implementation of the TCP/IP (LWIP) protocol suite.
> So far
> > I have found network simulations cradle
> >
> (https://www.nsnam.org/docs/models/html/tcp.html#network-simulation-cradle
> <https://www.nsnam.org/docs/models/html/tcp.html#network-simulation-cradle>)
> --
> 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
> <mailto:ns-3-users+...@googlegroups.com>.
> To post to this group, send email to ns-3-...@googlegroups.com
> <mailto:ns-3-...@googlegroups.com>.
> Visit this group at https://groups.google.com/group/ns-3-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ns-3-users/9d105870-4cc3-4b34-8d56-8f95bc232b91%40googlegroups.com
> <https://groups.google.com/d/msgid/ns-3-users/9d105870-4cc3-4b34-8d56-8f95bc232b91%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

Sam Jansen

unread,
Jul 14, 2019, 5:33:21 PM7/14/19
to ns-3-users
Shahrukh, LWIP is a fairly old version but should work fine. It's one of the simpler NSC integrations to support.

I'm not sure why it wouldn't build - it certainly should! Perhaps you could send me the log of your build so I could take a look to help out.

Shahrukh Khan Kasi

unread,
Jul 15, 2019, 12:33:32 PM7/15/19
to ns-3-users
Hi Sam! Thanks for your response.

Please find the log when ns-3.29 is build using bake. I hope this is the log you asked for.

The configuration file has been changed or has moved.
Running 'fix-config'. You should consider running it
yourself to tweak some parameters if needed.
>> bakefile.xml
 >> Building click-ns-3.25 - OK
 >> Building nsc-0.5.3 - OK
 >> Building BRITE - OK
 >> Building pybindgen-0.19.0.post4+ng823d8b2 - Problem
 > Problem: Optional dependency, module "pybindgen-0.19.0.post4+ng823d8b2" failed
   This may reduce the  functionality of the final build. 
   However, bake will continue since "pybindgen-0.19.0.post4+ng823d8b2" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 >> Building castxml-0.1+git98a626ec - OK
 >> Building openflow-ns-3.25 - Problem
 > Problem: Optional dependency, module "openflow-ns-3.25" failed
   This may reduce the  functionality of the final build. 
   However, bake will continue since "openflow-ns-3.25" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 >> Building netanim-3.108 - OK
 >> Building pygccxml-1.9.1 - Problem
 > Problem: Optional dependency, module "pygccxml-1.9.1" failed
   This may reduce the  functionality of the final build. 
   However, bake will continue since "pygccxml-1.9.1" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 >> Building ns-3.29 - OK 
"

Best,
Shahrukh

Shahrukh Khan Kasi

unread,
Jul 15, 2019, 12:36:17 PM7/15/19
to ns-3-users
One of the limitations of NSC mentioned in https://www.nsnam.org/docs/models/html/tcp.html#network-simulation-cradle.

"The non-Linux stacks of NSC are not supported in ns-3".

Shahrukh

On Sunday, July 14, 2019 at 5:33:21 PM UTC-4, Sam Jansen wrote:

Sam Jansen

unread,
Jul 15, 2019, 4:25:28 PM7/15/19
to ns-3-...@googlegroups.com
Ah, yes. I had forgotten we never pushed on to use LWIP.

I don't remember what technical limitation was in place though -- from NSC's perspective, all of the stacks are equivalent.

I think if you want to go down this road, then the right approach is to build NSC by itself (outside of ns-3), and check that its tests pass when using lwip. Given that state, you could then try to use LWIP in ns-3 with that shared library. I imagine it won't immediately work, but it may not be difficult to fix.

--
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 post to this group, send email to ns-3-...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages