It may very well be that there is a problem, but, my first question is
why you are not using the multicast routing API (AddMulticastRoute())
instead of using a unicast API call (AddHostRouteTo ()) to add a
multicast route?
The loopback return in RouteOutput() is just a technique to redirect
(unicast) packets through RouteInput() where AODV can cache for route
discovery if needed. RouteOutput() requires an immediate return value
to the transport protocol and AODV can't work with that method. I would
expect that multicast would work independently of this, although I am
not sure of the interaction between PIM and AODV if route discovery
hasn't occurred yet.
- Tom
--
You received this message because you are subscribed to the Google Groups "ns-3-users" group.
To post to this group, send email to ns-3-...@googlegroups.com.
To unsubscribe from this group, send email to ns-3-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/ns-3-users?hl=en.
To unsubscribe from this group, send email to ns-3-users+...@googlegroups.com.
Sure, I did not see that one.
>
> -----
> Is ECMP supported in NS3. I deliberately created multiple paths between
> subnets and used Ipv4GlobalRoutingHelper::
> PopulateRoutingTables () to create routes. But when I run the program, I
> am getting following error.
>
> assert failed. cond="m_ecmpRootExits.size () <= 1", msg="Assumed there
> is at most one exit from the root to this vertex",
> file=../src/internet/model/global-route-manager-impl.cc, line=309
Yes, it should be supported. However, you can see that there was a
loose end to this feature; namely, there were no tests added at the time
of submission, and the issue in the tracker was left open as a result:
https://www.nsnam.org/bugzilla/show_bug.cgi?id=667
So, maybe you found a case where it doesn't work, or maybe it has
regressed since then. In either case, if you could provide an example
or test case that you think is not working properly (by uploading it to
that tracker issue, or sending to me), we could try to debug that and
finish off 667.
>
> Continuing My question, when looking at routing overview of NS3
> documentation I found following.
> ---------------------
> Presently, we can handle IPv4 point-to-point, numbered links, as well as
> shared broadcast (CSMA) links, and we do not do equal-cost multipath.
This is dated documentation; will fix.
> ----------------------
> Is the above said thing still holds good in NS3. If so any one please
> suggest how to support equal cost multiple paths
Please review the code and discussion in issue 667.
- Tom
- Tom
I think you did find a problem here. There is some logic already in
AODV's RouteInput() method:
// AODV is not a multicast routing protocol
if (dst.IsMulticast ())
{
return false;
}
however, just above that, there is a check whether there is a
DeferredRouteOutput tag applied to the packet, so it never reaches that
check. The problem here is that AODV::RouteOutput() should not be
appending such a tag to a multicast packet.
I filed a bug to track and fix this.
https://www.nsnam.org/bugzilla/show_bug.cgi?id=1255
Thanks,
Tom