diff options
Diffstat (limited to 'pimd/pim_join.c')
| -rw-r--r-- | pimd/pim_join.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pimd/pim_join.c b/pimd/pim_join.c index 828781a467..ae7fedc62b 100644 --- a/pimd/pim_join.c +++ b/pimd/pim_join.c @@ -59,6 +59,8 @@ static void recv_join(struct interface *ifp, struct prefix_sg *sg, uint8_t source_flags) { + struct pim_interface *pim_ifp = NULL; + if (PIM_DEBUG_PIM_TRACE) { char up_str[INET_ADDRSTRLEN]; char neigh_str[INET_ADDRSTRLEN]; @@ -72,6 +74,11 @@ static void recv_join(struct interface *ifp, up_str, holdtime, neigh_str, ifp->name); } + pim_ifp = ifp->info; + zassert(pim_ifp); + + ++pim_ifp->pim_ifstat_join_recv; + /* * If the RPT and WC are set it's a (*,G) * and the source is the RP @@ -104,6 +111,8 @@ static void recv_prune(struct interface *ifp, struct prefix_sg *sg, uint8_t source_flags) { + struct pim_interface *pim_ifp = NULL; + if (PIM_DEBUG_PIM_TRACE) { char up_str[INET_ADDRSTRLEN]; char neigh_str[INET_ADDRSTRLEN]; @@ -117,6 +126,11 @@ static void recv_prune(struct interface *ifp, up_str, holdtime, neigh_str, ifp->name); } + pim_ifp = ifp->info; + zassert(pim_ifp); + + ++pim_ifp->pim_ifstat_prune_recv; + if ((source_flags & PIM_RPT_BIT_MASK) && (source_flags & PIM_WILDCARD_BIT_MASK)) { @@ -502,6 +516,9 @@ int pim_joinprune_send(struct pim_rpf *rpf, packet_size += group_size; pim_msg_build_jp_groups (grp, group, group_size); + pim_ifp->pim_ifstat_join_send += ntohs(grp->joins); + pim_ifp->pim_ifstat_prune_send += ntohs(grp->prunes); + grp = (struct pim_jp_groups *)curr_ptr; if (packet_left < sizeof (struct pim_jp_groups) || msg->num_groups == 255) { |
