[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Active networking in ns



> > the routing tables to know which node is the next one in
> > the path from src to dst... how can I do this ?
>
> get an instance of routelogic and do a lookup:
> set rtable [$ns get-routelogic]
> set nh [$rtable lookup $src $dst]

That's exactly what I did.


> > next _active_ node, not just the next node; that is, if I had:
> >
> > n1(src) ---- n2 ---- n3 ---- n4(dst)
> >
> > and all the nodes were active except for n3, to send an active
> > packet from n1 to n4 I should do n1-n2-n4, skipping n3...

Yest, right, to solve that, I did the following (again, remember that this is
temporary dirty cheating, only valid for static routing): every time a new EE is
created, it registers itself on a global database of active nodes. Whenever a EE
needs a route to another EE, it calls a function "nextEEhop" which returns the
first EE on the path to a given destination. The first time this function is
called, it has to lookup the routing table to find the next hop EE; this value is
then cached at the EE so that next time it needs a route to the same destination it
does not need to compute it again. Another solution would be to compute all the
routes from start. Another one would be to explicitly establish the tunnels, but
that might result in strange overlay topologies which in my case made it more
difficult to compare the results with a non-AN case. In a later phase I plan to
include AN-level routing (note that it requires a discovery protocol to discover
neighbors on the same "link", etc.).

> > I guess that the easiest way to do this actually involves having
> > a modified classifier, just like what PANAMA's AN pkg does.

This is certainly more efficient. However, it makes the AN platform dependent on IP
routing, which is not the case of really generic ("hard") AN. In my case I wanted
to have something as generic as possible, so I opted for a less efficient but more
flexible implementation. Maybe it is possible to integrate both approaches in the
same implementation, as alternatives...

Lidia.