]> git.proxmox.com Git - mirror_frr.git/commit
vrrpd: allow OS to choose VRRP IPv6 src address
authorQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 8 Mar 2019 18:30:03 +0000 (18:30 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 17 May 2019 00:27:08 +0000 (00:27 +0000)
commit1760ce424b642c8ac9e7d4db72f9346533da1f98
tree9cd6e18609e9d15eddbc0eff10b855d0c9e0023f
parent52650486d7dbd8236a05e6c0ebd4baa0a0630dee
vrrpd: allow OS to choose VRRP IPv6 src address

Under IPv6, Linux will look at our destination address and select the
source address with the smallest scope that covers the destination. For
the VRRP multicast address ff02::12, Linux will always select a link
local address.

We can take advantage of this behavior to avoid a subtle and complicated
class of bugs caused by Zebra's semantics around inoperative interfaces.
As far as Zebra is concerned, an inoperative interface has no addresses
assigned to it. This is a real bummer for VRRP because it's quite
possible that the IPv6 VRRP macvlan device is down when we attach to it,
and we would really like to be able to know in advance which address we
will be transmitting IPv6 advertisements from without having to bring an
interface up to convince Zebra to tell us its address list.

In the future, though, it would be better to be explicit about selecting
the link local we want. This will require adding the ability to Zebra to
read and send us address information for inoperative interfaces.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
vrrpd/vrrp.c