mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 16:54:30 +00:00
Merge pull request #13605 from anlancs/fix/pimd-promote-interface
pimd: Fix missing promotion for primary address
This commit is contained in:
commit
59742b4550
@ -890,6 +890,7 @@ pim_addr pim_find_primary_addr(struct interface *ifp)
|
|||||||
#else
|
#else
|
||||||
int v4_addrs = 0;
|
int v4_addrs = 0;
|
||||||
int v6_addrs = 0;
|
int v6_addrs = 0;
|
||||||
|
struct connected *promote_ifc = NULL;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc)) {
|
for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc)) {
|
||||||
switch (ifc->address->family) {
|
switch (ifc->address->family) {
|
||||||
@ -903,15 +904,24 @@ pim_addr pim_find_primary_addr(struct interface *ifp)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_SECONDARY))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (ifc->address->family != PIM_AF)
|
if (ifc->address->family != PIM_AF)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_SECONDARY)) {
|
||||||
|
promote_ifc = ifc;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
return pim_addr_from_prefix(ifc->address);
|
return pim_addr_from_prefix(ifc->address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Promote the new primary address. */
|
||||||
|
if (v4_addrs && promote_ifc) {
|
||||||
|
UNSET_FLAG(promote_ifc->flags, ZEBRA_IFA_SECONDARY);
|
||||||
|
return pim_addr_from_prefix(promote_ifc->address);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we have no v4_addrs and v6 is configured
|
* If we have no v4_addrs and v6 is configured
|
||||||
* We probably are using unnumbered
|
* We probably are using unnumbered
|
||||||
|
Loading…
Reference in New Issue
Block a user