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

* bug/patch trackers

** diac24 patchwork instance

David Lamparter <equinox@diac24.net> runs a patchwork instance at

  http://patchwork.diac24.net/project/quagga/list/

which contains about 225 patches to quagga.  Many of these are
collected in his git repository.

* public git repositories

** git remote add equinox git://git.spaceboyz.net/equinox/quagga.git/

This repository has topic branches for patches intended for inclusion
in the main quagga tree, named patches/, plus some other branches.

* posted patches

Boeing has posted patches

  quagga-0.99.9.ospfv3-addressfamilies.patch
  quagga-0.99.9.ospfv3-manetmdr.patch

against 0.99.9 at

  http://hipserver.mct.phantomworks.org/ietf/ospf/

Both patches include functional enhancements as well as support for
gcc 2.95.
