Hi, I already posted a first patch to add support for link-local addresses for BGP peerings one year ago, and now I've finally found time to update the patch for the current bird version and fix the problems mentioned in reply to the first patch.
This patch series allows using NEF_STICKY neighbors for link-local addresses by saving the interface name in the neighbor structure, thus working even when the interface is removed and re-added causing the interface index to change. The BPG patch itself adds an interface attribute to the BGP protocol definition allowing to specify an interface to use for the BGP session. An additional patch that is needed to make this work under FreeBSD is also included; the current behaviour doesn't handle numbered v6 addresses on peer-to-peer interfaces correctly, which link-local addresses are generally. I didn't get the chance to test this under other BSDs though. The patches have been tested under Linux and FreeBSD, with Bird and Quagga peers, and a few different configurations. Best regards, Matthias Schiffer