summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_iface.c3
-rw-r--r--pimd/pim_iface.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index f3f8605ab..5e47bb19b 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -103,6 +103,7 @@ static void *if_list_clean(struct pim_interface *pim_ifp)
struct pim_interface *pim_if_new(struct interface *ifp, int igmp, int pim)
{
struct pim_interface *pim_ifp;
+ struct vrf *vrf;
zassert(ifp);
zassert(!ifp->info);
@@ -114,6 +115,8 @@ struct pim_interface *pim_if_new(struct interface *ifp, int igmp, int pim)
}
pim_ifp->options = 0;
+ vrf = vrf_info_lookup(ifp->vrf_id);
+ pim_ifp->pim = vrf->info;
pim_ifp->mroute_vif_index = -1;
pim_ifp->igmp_version = IGMP_DEFAULT_VERSION;
diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h
index e742e68f6..9aab43ed9 100644
--- a/pimd/pim_iface.h
+++ b/pimd/pim_iface.h
@@ -73,6 +73,8 @@ struct pim_secondary_addr {
struct pim_interface {
uint32_t options; /* bit vector */
ifindex_t mroute_vif_index;
+ struct pim_instance *pim;
+
struct in_addr primary_address; /* remember addr to detect change */
struct list *sec_addr_list; /* list of struct pim_secondary_addr */
struct in_addr update_source; /* user can statically set the primary