summaryrefslogtreecommitdiff
path: root/pimd/pim_mroute.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_mroute.c')
-rw-r--r--pimd/pim_mroute.c41
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__,