Feature #3424
closedns-3 routing/forwarding performance increase --> ndnSIM?
0%
Description
Dear all,
I came across some problems with ns-3 and wanted to let you know about them in case the fix for them might also work for ndnSIM. While using ns-3 I recently encoutered a problem. The scenario I am simulating had 10k links on a single router, which significantly reduced performance due to routing/forwarding in ns-3 stack. With some digging I found that there are SEVERAL sequential search's performed (read: for loops that iterate over all of the 10k entries in the worst case). One of them is part of IP routing, so this should not really affect ndnSIM since ndnSIM is dealing with name-based routing in NFD and not IP based routing tables.
However, the second loop is in the "level 3 routing" of IP, where the NetDevice is mapped to an Interface (and vice versa). I've posted this on the ns-3 mailing list and we seem to have found a solution to the problem, which managed to increase simulation speed by quite a bit. In particular, the method Ipv4L3Protocol::GetInterfaceForDevice(...) is affected and can be re-written to deal with this. However, unless you have 20+ links (probably more like 100+) on at least one router, you will not notice a significant difference.
I was wondering whether this speed-up might also be applicable for ndnSIM, as it is using ns-3 in the background. I'm leaving the link to the mailing list discussion here:
https://groups.google.com/d/msg/ns-3-users/VqNZogTqBMQ/U21AFIepBAAJ
There is a patch attached for ns-3 in the mailing list as well (direct link: https://groups.google.com/d/msg/ns-3-users/VqNZogTqBMQ/KOaB1BLfBAAJ ), though I do not know (or rather I have not had the time to check, sorry) whether you can include it directly in ndnSIM or not and whether it is beneficial or not. Maybe one of the active people here can take a look at it.
Hope to help
Christian