Was missing a check to make sure that the v6 address we select as the
source IP for advertisements was a link local address
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
struct listnode *ln;
struct connected *c = NULL;
for (ALL_LIST_ELEMENTS_RO(ifp->connected, ln, c))
- if (c->address->family == r->family)
- break;
+ if (c->address->family == r->family) {
+ if (r->family == AF_INET6
+ && IN6_IS_ADDR_LINKLOCAL(&c->address->u.prefix6))
+ break;
+ else if (r->family == AF_INET)
+ break;
+ }
if (c == NULL) {
zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID