This file contains pointers to work done on quagga that is not in the
quagga git repository or quagga bugzilla.

* public git repositories

** git remote add mtr http://github.com/tomhenderson/quagga-mtr.git

Tom Henderson of Boeing has created a repository to work on
multi-topology routing support for OSPF.  Work on this repository
takes place on the branch mtr, which has a branch point of 0.99.17

* posted patches
