[quagga-dev 11582] Cumulus Quagga patches up on a git tree

Dinesh Dutt ddutt at cumulusnetworks.com
Fri Oct 17 21:47:13 BST 2014


Based on the maintainers feedback and to help the maintainers process
our patches and for us to incorporate upstream changes more easily,
we've put up a quagga git tree for the Cumulus patches. This is pretty
much all our patches except the ones we're still testing.

The patches are divided into the following categories:

  * Features
      o OSPFv2
          + Unnumbered interface support (ported to master)
          + Multi-instance support
          + Reason code for running SPF in logs
      o OSPFv3 (these are updated patches to what was already posted)
          + Area support, stubby area and totally stubby area support
          + Extending ECMP to more than 4
      o BGP
          + Next hop tracking
          + Event-driven route map support (changes to route map kick in
            within a specified duration)
          + Connection setup driven by next hop tracking
          + Ability to dry run policies via the display command to see
            what the new advertisements would look like with changes to
            route maps
          + Support for unnumbered BGP via "bgp neighbor interface"
            option (works only for v6 now)
          + Update delay to support delaying updates during startup to
            speed up convergence
          + Table map feature to support route maps to specify which
            routes are pushed to zebra
          + Max med support which is equivalent to OSPF's max metric
            support to allow graceful withdrawl of routers due to
            scheduled downtime
          + Additional route-map match fields such as interface, localpref
          + AS override feature
          + v6 multipath support
          + 4 byte private ASN support
          + Debug overhaul
      o Zebra
          + Next hop tracking for static routes and allowing static
            routes to have next hops dependent on routes from dynamic
          + Redistribute table option to support redistributing routes
            from non-default kernel tables
          + Tag routes and use this in route-maps (this is a ported
            patch, the original being one submitted in 2008 or so)
          + Event driven route maps
          + Set SrcIP via route maps
  * Scalability improvements
      o OSPFv2
          + Service interfaces in round-robin fashion to give each
            interface a chance to send Hellos and updates to avoid
            timing out and other errors
          + A write multiplier knob to allow how many packets can ber
            serviced in each round per interface
          + Increasing socket bufs and a few other knobs to deal with
            large scale deployments
      o OSPFv3
          + Various improvements to improve convergence in the presence
            of a large number of LSAs
          + Increasing socket bufs to deal with large scale deployments
      o BGP
          + Fix the collision detection logic to support the RFC and
            thereby bringup peers rapidly. In our tests, 300 peers come
            up in 2s or less
          + Update packing to ensure more efficient updates
          + Support for advertisement interval of 0
  * Bug fixes and other miscellaneous stuff

There are over 100 patches in the tree.

Since the purpose of the tree is to enable easier integration into
quagga master by the maintainers, we'll be git rebasing the branch
fairly frequently.

The github location for the tree is:
and the patches are on the cumulus-master branch.

We'll slowly feed out individual emails over individual patches or sets
of related patches.

Hope you find this useful. We welcome feedback and want to work to
making quagga one of the best routing protocol suites.


More information about the Quagga-dev mailing list