mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 20:04:11 +00:00
pimd,pim6d: Modify pim_neighbor_find() API
Modify pim_neighbor_find() API to find the neighbor in neighbor secondary list. Signed-off-by: Sarita Patra <saritap@vmware.com>
This commit is contained in:
parent
ed9323604a
commit
3dbf370ac0
@ -1385,7 +1385,7 @@ void pim_show_upstream(struct pim_instance *pim, struct vty *vty,
|
|||||||
|
|
||||||
nbr = pim_neighbor_find(
|
nbr = pim_neighbor_find(
|
||||||
up->rpf.source_nexthop.interface,
|
up->rpf.source_nexthop.interface,
|
||||||
up->rpf.rpf_addr);
|
up->rpf.rpf_addr, false);
|
||||||
if (nbr)
|
if (nbr)
|
||||||
pim_time_timer_to_hhmmss(join_timer,
|
pim_time_timer_to_hhmmss(join_timer,
|
||||||
sizeof(join_timer),
|
sizeof(join_timer),
|
||||||
|
@ -277,7 +277,7 @@ int pim_hello_recv(struct interface *ifp, pim_addr src_addr, uint8_t *tlv_buf,
|
|||||||
New neighbor?
|
New neighbor?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
neigh = pim_neighbor_find(ifp, src_addr);
|
neigh = pim_neighbor_find(ifp, src_addr, false);
|
||||||
if (!neigh) {
|
if (!neigh) {
|
||||||
/* Add as new neighbor */
|
/* Add as new neighbor */
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ struct pim_neighbor *pim_neighbor_find_by_secondary(struct interface *ifp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct pim_neighbor *pim_neighbor_find(struct interface *ifp,
|
struct pim_neighbor *pim_neighbor_find(struct interface *ifp,
|
||||||
pim_addr source_addr)
|
pim_addr source_addr, bool secondary)
|
||||||
{
|
{
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
struct listnode *node;
|
struct listnode *node;
|
||||||
@ -425,6 +425,13 @@ struct pim_neighbor *pim_neighbor_find(struct interface *ifp,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (secondary) {
|
||||||
|
struct prefix p;
|
||||||
|
|
||||||
|
pim_addr_to_prefix(&p, source_addr);
|
||||||
|
return pim_neighbor_find_by_secondary(ifp, &p);
|
||||||
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ struct pim_neighbor {
|
|||||||
void pim_neighbor_timer_reset(struct pim_neighbor *neigh, uint16_t holdtime);
|
void pim_neighbor_timer_reset(struct pim_neighbor *neigh, uint16_t holdtime);
|
||||||
void pim_neighbor_free(struct pim_neighbor *neigh);
|
void pim_neighbor_free(struct pim_neighbor *neigh);
|
||||||
struct pim_neighbor *pim_neighbor_find(struct interface *ifp,
|
struct pim_neighbor *pim_neighbor_find(struct interface *ifp,
|
||||||
pim_addr source_addr);
|
pim_addr source_addr, bool secondary);
|
||||||
struct pim_neighbor *pim_neighbor_find_by_secondary(struct interface *ifp,
|
struct pim_neighbor *pim_neighbor_find_by_secondary(struct interface *ifp,
|
||||||
struct prefix *src);
|
struct prefix *src);
|
||||||
struct pim_neighbor *pim_neighbor_find_if(struct interface *ifp);
|
struct pim_neighbor *pim_neighbor_find_if(struct interface *ifp);
|
||||||
|
@ -289,7 +289,7 @@ int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len,
|
|||||||
pim_msg_len - PIM_MSG_HEADER_LEN);
|
pim_msg_len - PIM_MSG_HEADER_LEN);
|
||||||
break;
|
break;
|
||||||
case PIM_MSG_TYPE_JOIN_PRUNE:
|
case PIM_MSG_TYPE_JOIN_PRUNE:
|
||||||
neigh = pim_neighbor_find(ifp, sg.src);
|
neigh = pim_neighbor_find(ifp, sg.src, false);
|
||||||
if (!neigh) {
|
if (!neigh) {
|
||||||
if (PIM_DEBUG_PIM_PACKETS)
|
if (PIM_DEBUG_PIM_PACKETS)
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
@ -304,7 +304,7 @@ int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len,
|
|||||||
pim_msg_len - PIM_MSG_HEADER_LEN);
|
pim_msg_len - PIM_MSG_HEADER_LEN);
|
||||||
break;
|
break;
|
||||||
case PIM_MSG_TYPE_ASSERT:
|
case PIM_MSG_TYPE_ASSERT:
|
||||||
neigh = pim_neighbor_find(ifp, sg.src);
|
neigh = pim_neighbor_find(ifp, sg.src, false);
|
||||||
if (!neigh) {
|
if (!neigh) {
|
||||||
if (PIM_DEBUG_PIM_PACKETS)
|
if (PIM_DEBUG_PIM_PACKETS)
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
|
Loading…
Reference in New Issue
Block a user