I am thinking that I now need to modify these duplicated files and
change the routing algorithm it uses from Dijkstra to Bellman-Ford.
Any advice would be appreciated...
Thank you all.
Hi Bob,
I am curious why you are trying to replace Dijkstra with Bellman-Ford; can
you elaborate on what you are trying to accomplish?
- Tom
I am trying to generate simulation graphs from both the Dijkstra and
Bellman-Ford algorithm separately. I am doing this as research of QoS
routing algorithms. Therefore, I am trying to replace the algorithm
used in ns3 with Bellman-Ford.
Thank you.
Bob, the reason that I asked was that adding any routing protocol from
scratch is a lot of work so I just wanted to make sure that you really
want to implement another global static (offline computation) routing
protocol, as opposed to a dynamic routing protocol.
If you want to code this as a functional replacement for global routing,
you could clone the existing files, rename to other class names, and
then look at replacing the existing data structures and SPF algorithm to
something that you need instead. Note that the data structures are
copied from quagga's OSPF and may not match what Bellman Ford/RIP need.
- Tom
I am not sure it will be easier but I think it would be more useful. If
you recreate another similar variant of global routing, it will just be
useful for comparing Dijkstra vs Bellman Ford for a static topology; it
seems likely to me (although I don't know offhand) that there may be other
available tools to do this kind of algorithm comparison.
ns-3 could use some simple basic distance vector and link state dynamic
routing protocols for educational and simple comparative analysis.
However, those would each require some work too. For instance, porting the
implementations from ns-2.
- Tom
Unfortunately, this algorithm is coded in OTcl in ns-2:
# Class Agent/rtProto/DV -superclass Agent/rtProto
in file ns-2/tcl/rtglib/route-proto.tcl
so it probably is going to be pretty hard to port to ns-3, such that
starting fresh might be easier, or porting from another source.