« Return to Thread: Internship Project to Implement BGP via Quagga without DCE

Re: Internship Project to Implement BGP via Quagga without DCE

by Hajime Tazaki :: Rate this Message:

| View in Thread


Hi,

# my comments are biased by the viewpoint of heavy user of
 DCE, so please deduct a bit as I'm not discouraging your
 motivation :-)

At Thu, 28 Jun 2012 17:24:06 -0700,
Daniel Howell wrote:

>
> Hello, my name is Daniel Howell and I'm interning over the summer at the
> Lawrence Livermore National Laboratory working on network simulations
> under Peter Barnes.
>
> My project is implementing BGP in ns-3 simulations with the goal being
> to run large-scale simulations of 10k+ nodes. I've looked into the
> recent DCE implementation of Quagga, but from what I saw, it installs
> individual Quagga processes on each node that runs BGP on it. For a
> large scale simulation, this would run too slowly. We also want to be
> able to run our code on any machine ns-3 can normally run on without
> having to worry about DCE compatibility between computers.

If you meant "individual Quagga processes" as the processes
"zebra" and "bgpd", it's not mandatory: you can skip the
"zebra" process to install if you don't need route (FIB)
information in the simulation.

# you can add some method like "DisableZebra" in
  QuaggaHelper class for that purpose.

Only the dependencies from bgpd to zebra is automatic
router-id assignment, although current QuaggaHelper uses
static router id instead (thus no issues are found to
disable zebra at this moment).


> I found this page while researching the problem -
> http://www.nsnam.org/wiki/index.php/Real_World_Application_Integration#Quagga_porting.
> Unfortunately, the repository linked on the wiki no longer exists. Does
> anyone have the files anymore or any additional notes about it?

I bet Tom already gave nice information.

> I'm currently looking into extending Ipv4RoutingProtocol to implement
> BGP at the moment, using the OLSRRoutingProtocol that is built-in as an
> example. This BGPRoutingProtocol class would call upon the Quagga source
> code for BGP to run. A few spots of challenge would be making sure the C
> code compiles in the C++ compiler, running ns-3's simulation time
> instead of real time on Quagga, and having the sockets communicate
> between ns-3 and Quagga.

for the synchronized clock between ns-3 and real-timed
processes, you can take a look at SliceTime.

http://www.comsys.rwth-aachen.de/research/projects/slicetime/

> I started learning ns-3 just recently for this internship, so I'm not
> well-versed on the ns-3 data structures. Does this approach make sense
> or am I misunderstanding/overlooking something? If anyone has the older
> Quagga Porting code, knows of a similar resource, or can offer any
> advice or an opinion on this, that'd be very helpful!

I understand the compatibility issues on DCE that you're
worried about: it still needs a lot of effort to DCE in
order to provide "generalized solution" for your purpose
(reuse the existing code in simulations).
# We're working hard on the improvements.

As Tom also mentioned, you may keep tracking the
compatibility layer between ns-3 and quagga bgpd if Quagga
has new release in the future. That is almost endless and
makes my motivation on DCE.


regards,
hajime

 « Return to Thread: Internship Project to Implement BGP via Quagga without DCE