diff options
Diffstat (limited to 'pimd/pim_mroute.c')
| -rw-r--r-- | pimd/pim_mroute.c | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index 089b0feb37..7ea6ed9e14 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -253,7 +253,7 @@ int pim_mroute_msg_nocache(int fd, struct interface *ifp, const kernmsg *msg) up->channel_oil->cc.pktcnt++; // resolve mfcc_parent prior to mroute_add in channel_add_oif if (up->rpf.source_nexthop.interface && - *oil_parent(up->channel_oil) >= MAXVIFS) { + *oil_incoming_vif(up->channel_oil) >= MAXVIFS) { pim_upstream_mroute_iif_update(up->channel_oil, __func__); } pim_register_join(up); @@ -1042,10 +1042,10 @@ static inline void pim_mroute_copy(struct channel_oil *out, *oil_origin(out) = *oil_origin(in); *oil_mcastgrp(out) = *oil_mcastgrp(in); - *oil_parent(out) = *oil_parent(in); + *oil_incoming_vif(out) = *oil_incoming_vif(in); for (i = 0; i < MAXVIFS; ++i) { - if (*oil_parent(out) == i && + if (*oil_incoming_vif(out) == i && !pim_mroute_allow_iif_in_oil(in, i)) { oil_if_set(out, i, 0); continue; @@ -1080,7 +1080,7 @@ static int pim_mroute_add(struct channel_oil *c_oil, const char *name) * in the case of a (*,G). */ if (pim_addr_is_any(*oil_origin(c_oil))) { - oil_if_set(tmp_oil, *oil_parent(c_oil), 1); + oil_if_set(tmp_oil, *oil_incoming_vif(c_oil), 1); } /* @@ -1090,18 +1090,17 @@ static int pim_mroute_add(struct channel_oil *c_oil, const char *name) * the packets to be forwarded. Then set it * to the correct IIF afterwords. */ - if (!c_oil->installed && !pim_addr_is_any(*oil_origin(c_oil)) - && *oil_parent(c_oil) != 0) { - *oil_parent(tmp_oil) = 0; + if (!c_oil->installed && !pim_addr_is_any(*oil_origin(c_oil)) && + *oil_incoming_vif(c_oil) != 0) { + *oil_incoming_vif(tmp_oil) = 0; } /* For IPv6 MRT_ADD_MFC is defined to MRT6_ADD_MFC */ err = setsockopt(pim->mroute_socket, PIM_IPPROTO, MRT_ADD_MFC, &tmp_oil->oil, sizeof(tmp_oil->oil)); - if (!err && !c_oil->installed - && !pim_addr_is_any(*oil_origin(c_oil)) - && *oil_parent(c_oil) != 0) { - *oil_parent(tmp_oil) = *oil_parent(c_oil); + if (!err && !c_oil->installed && !pim_addr_is_any(*oil_origin(c_oil)) && + *oil_incoming_vif(c_oil) != 0) { + *oil_incoming_vif(tmp_oil) = *oil_incoming_vif(c_oil); err = setsockopt(pim->mroute_socket, PIM_IPPROTO, MRT_ADD_MFC, &tmp_oil->oil, sizeof(tmp_oil->oil)); } @@ -1158,7 +1157,7 @@ static int pim_upstream_mroute_update(struct channel_oil *c_oil, { char buf[1000]; - if (*oil_parent(c_oil) >= MAXVIFS) { + if (*oil_incoming_vif(c_oil) >= MAXVIFS) { /* the c_oil cannot be installed as a mroute yet */ if (PIM_DEBUG_MROUTE) zlog_debug( @@ -1205,13 +1204,13 @@ int pim_upstream_mroute_add(struct channel_oil *c_oil, const char *name) iif = pim_upstream_get_mroute_iif(c_oil, name); - if (*oil_parent(c_oil) != iif) { - *oil_parent(c_oil) = iif; + if (*oil_incoming_vif(c_oil) != iif) { + *oil_incoming_vif(c_oil) = iif; if (pim_addr_is_any(*oil_origin(c_oil)) && c_oil->up) pim_upstream_all_sources_iif_update(c_oil->up); } else { - *oil_parent(c_oil) = iif; + *oil_incoming_vif(c_oil) = iif; } return pim_upstream_mroute_update(c_oil, name); @@ -1226,11 +1225,11 @@ int pim_upstream_mroute_iif_update(struct channel_oil *c_oil, const char *name) char buf[1000]; iif = pim_upstream_get_mroute_iif(c_oil, name); - if (*oil_parent(c_oil) == iif) { + if (*oil_incoming_vif(c_oil) == iif) { /* no change */ return 0; } - *oil_parent(c_oil) = iif; + *oil_incoming_vif(c_oil) = iif; if (pim_addr_is_any(*oil_origin(c_oil)) && c_oil->up) @@ -1255,10 +1254,10 @@ void pim_static_mroute_iif_update(struct channel_oil *c_oil, int input_vif_index, const char *name) { - if (*oil_parent(c_oil) == input_vif_index) + if (*oil_incoming_vif(c_oil) == input_vif_index) return; - *oil_parent(c_oil) = input_vif_index; + *oil_incoming_vif(c_oil) = input_vif_index; if (input_vif_index == MAXVIFS) pim_mroute_del(c_oil, name); else @@ -1277,8 +1276,8 @@ int pim_mroute_del(struct channel_oil *c_oil, const char *name) if (PIM_DEBUG_MROUTE) { char buf[1000]; struct interface *iifp = - pim_if_find_by_vif_index(pim, - *oil_parent(c_oil)); + pim_if_find_by_vif_index(pim, *oil_incoming_vif( + c_oil)); zlog_debug("%s %s: incoming interface %s for route is %s not installed, do not need to send del req. ", __FILE__, __func__, |
