mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 06:50:17 +00:00
pimd: Convert vif and ifindex lookups to use 'struct pim_instance *'
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
f88df3a642
commit
7cfc7bcfe7
247
pimd/pim_cmd.c
247
pimd/pim_cmd.c
@ -1839,8 +1839,9 @@ static void pim_show_neighbors_single(struct vty *vty, const char *neighbor,
|
||||
}
|
||||
}
|
||||
|
||||
static void pim_show_state(struct vty *vty, const char *src_or_group,
|
||||
const char *group, u_char uj)
|
||||
static void pim_show_state(struct pim_instance *pim, struct vty *vty,
|
||||
const char *src_or_group, const char *group,
|
||||
u_char uj)
|
||||
{
|
||||
struct channel_oil *c_oil;
|
||||
struct listnode *node;
|
||||
@ -1875,7 +1876,7 @@ static void pim_show_state(struct vty *vty, const char *src_or_group,
|
||||
sizeof(grp_str));
|
||||
pim_inet4_dump("<source?>", c_oil->oil.mfcc_origin, src_str,
|
||||
sizeof(src_str));
|
||||
ifp_in = pim_if_find_by_vif_index(c_oil->oil.mfcc_parent);
|
||||
ifp_in = pim_if_find_by_vif_index(pim, c_oil->oil.mfcc_parent);
|
||||
|
||||
if (ifp_in)
|
||||
strcpy(in_ifname, ifp_in->name);
|
||||
@ -1957,7 +1958,7 @@ static void pim_show_state(struct vty *vty, const char *src_or_group,
|
||||
if (ttl < 1)
|
||||
continue;
|
||||
|
||||
ifp_out = pim_if_find_by_vif_index(oif_vif_index);
|
||||
ifp_out = pim_if_find_by_vif_index(pim, oif_vif_index);
|
||||
pim_time_uptime(
|
||||
oif_uptime, sizeof(oif_uptime),
|
||||
now - c_oil->oif_creation[oif_vif_index]);
|
||||
@ -3449,7 +3450,7 @@ DEFUN (show_ip_pim_state,
|
||||
} else if (argc == 5)
|
||||
src_or_group = argv[4]->arg;
|
||||
|
||||
pim_show_state(vty, src_or_group, group, uj);
|
||||
pim_show_state(pimg, vty, src_or_group, group, uj);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
@ -3750,7 +3751,7 @@ DEFUN (show_ip_multicast,
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
static void show_mroute(struct vty *vty, u_char uj)
|
||||
static void show_mroute(struct pim_instance *pim, struct vty *vty, u_char uj)
|
||||
{
|
||||
struct listnode *node;
|
||||
struct channel_oil *c_oil;
|
||||
@ -3770,8 +3771,6 @@ static void show_mroute(struct vty *vty, u_char uj)
|
||||
int oif_vif_index;
|
||||
struct interface *ifp_in;
|
||||
char proto[100];
|
||||
struct vrf *vrf;
|
||||
struct pim_instance *pim;
|
||||
|
||||
if (uj) {
|
||||
json = json_object_new_object();
|
||||
@ -3793,7 +3792,7 @@ static void show_mroute(struct vty *vty, u_char uj)
|
||||
sizeof(grp_str));
|
||||
pim_inet4_dump("<source?>", c_oil->oil.mfcc_origin, src_str,
|
||||
sizeof(src_str));
|
||||
ifp_in = pim_if_find_by_vif_index(c_oil->oil.mfcc_parent);
|
||||
ifp_in = pim_if_find_by_vif_index(pim, c_oil->oil.mfcc_parent);
|
||||
|
||||
if (ifp_in)
|
||||
strcpy(in_ifname, ifp_in->name);
|
||||
@ -3846,7 +3845,7 @@ static void show_mroute(struct vty *vty, u_char uj)
|
||||
if (ttl < 1)
|
||||
continue;
|
||||
|
||||
ifp_out = pim_if_find_by_vif_index(oif_vif_index);
|
||||
ifp_out = pim_if_find_by_vif_index(pim, oif_vif_index);
|
||||
pim_time_uptime(
|
||||
oif_uptime, sizeof(oif_uptime),
|
||||
now - c_oil->oif_creation[oif_vif_index]);
|
||||
@ -3948,145 +3947,125 @@ static void show_mroute(struct vty *vty, u_char uj)
|
||||
}
|
||||
|
||||
/* Print list of static routes */
|
||||
RB_FOREACH(vrf, vrf_name_head, &vrfs_by_name)
|
||||
{
|
||||
pim = vrf->info;
|
||||
if (!pim)
|
||||
for (ALL_LIST_ELEMENTS_RO(pim->static_routes, node, s_route)) {
|
||||
first = 1;
|
||||
|
||||
if (!s_route->c_oil.installed)
|
||||
continue;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(pim->static_routes, node, s_route)) {
|
||||
first = 1;
|
||||
pim_inet4_dump("<group?>", s_route->group, grp_str,
|
||||
sizeof(grp_str));
|
||||
pim_inet4_dump("<source?>", s_route->source, src_str,
|
||||
sizeof(src_str));
|
||||
ifp_in = pim_if_find_by_vif_index(pim, s_route->iif);
|
||||
found_oif = 0;
|
||||
|
||||
if (!s_route->c_oil.installed)
|
||||
if (ifp_in)
|
||||
strcpy(in_ifname, ifp_in->name);
|
||||
else
|
||||
strcpy(in_ifname, "<iif?>");
|
||||
|
||||
if (uj) {
|
||||
|
||||
/* Find the group, create it if it doesn't exist */
|
||||
json_object_object_get_ex(json, grp_str, &json_group);
|
||||
|
||||
if (!json_group) {
|
||||
json_group = json_object_new_object();
|
||||
json_object_object_add(json, grp_str,
|
||||
json_group);
|
||||
}
|
||||
|
||||
/* Find the source nested under the group, create it if
|
||||
* it doesn't exist */
|
||||
json_object_object_get_ex(json_group, src_str,
|
||||
&json_source);
|
||||
|
||||
if (!json_source) {
|
||||
json_source = json_object_new_object();
|
||||
json_object_object_add(json_group, src_str,
|
||||
json_source);
|
||||
}
|
||||
|
||||
json_object_string_add(json_source, "iif", in_ifname);
|
||||
json_oil = NULL;
|
||||
} else {
|
||||
strcpy(proto, "STATIC");
|
||||
}
|
||||
|
||||
for (oif_vif_index = 0; oif_vif_index < MAXVIFS;
|
||||
++oif_vif_index) {
|
||||
struct interface *ifp_out;
|
||||
char oif_uptime[10];
|
||||
int ttl;
|
||||
|
||||
ttl = s_route->oif_ttls[oif_vif_index];
|
||||
if (ttl < 1)
|
||||
continue;
|
||||
|
||||
pim_inet4_dump("<group?>", s_route->group, grp_str,
|
||||
sizeof(grp_str));
|
||||
pim_inet4_dump("<source?>", s_route->source, src_str,
|
||||
sizeof(src_str));
|
||||
ifp_in = pim_if_find_by_vif_index(s_route->iif);
|
||||
found_oif = 0;
|
||||
ifp_out = pim_if_find_by_vif_index(pim, oif_vif_index);
|
||||
pim_time_uptime(
|
||||
oif_uptime, sizeof(oif_uptime),
|
||||
now
|
||||
- s_route->c_oil
|
||||
.oif_creation[oif_vif_index]);
|
||||
found_oif = 1;
|
||||
|
||||
if (ifp_in)
|
||||
strcpy(in_ifname, ifp_in->name);
|
||||
if (ifp_out)
|
||||
strcpy(out_ifname, ifp_out->name);
|
||||
else
|
||||
strcpy(in_ifname, "<iif?>");
|
||||
strcpy(out_ifname, "<oif?>");
|
||||
|
||||
if (uj) {
|
||||
|
||||
/* Find the group, create it if it doesn't exist
|
||||
*/
|
||||
json_object_object_get_ex(json, grp_str,
|
||||
&json_group);
|
||||
|
||||
if (!json_group) {
|
||||
json_group = json_object_new_object();
|
||||
json_object_object_add(json, grp_str,
|
||||
json_group);
|
||||
}
|
||||
|
||||
/* Find the source nested under the group,
|
||||
* create it if it doesn't exist */
|
||||
json_object_object_get_ex(json_group, src_str,
|
||||
&json_source);
|
||||
|
||||
if (!json_source) {
|
||||
json_source = json_object_new_object();
|
||||
json_object_object_add(json_group,
|
||||
src_str,
|
||||
json_source);
|
||||
}
|
||||
|
||||
json_object_string_add(json_source, "iif",
|
||||
json_ifp_out = json_object_new_object();
|
||||
json_object_string_add(json_ifp_out, "source",
|
||||
src_str);
|
||||
json_object_string_add(json_ifp_out, "group",
|
||||
grp_str);
|
||||
json_object_boolean_true_add(json_ifp_out,
|
||||
"protocolStatic");
|
||||
json_object_string_add(json_ifp_out,
|
||||
"inboundInterface",
|
||||
in_ifname);
|
||||
json_oil = NULL;
|
||||
} else {
|
||||
strcpy(proto, "STATIC");
|
||||
}
|
||||
|
||||
for (oif_vif_index = 0; oif_vif_index < MAXVIFS;
|
||||
++oif_vif_index) {
|
||||
struct interface *ifp_out;
|
||||
char oif_uptime[10];
|
||||
int ttl;
|
||||
|
||||
ttl = s_route->oif_ttls[oif_vif_index];
|
||||
if (ttl < 1)
|
||||
continue;
|
||||
|
||||
ifp_out =
|
||||
pim_if_find_by_vif_index(oif_vif_index);
|
||||
pim_time_uptime(
|
||||
oif_uptime, sizeof(oif_uptime),
|
||||
now
|
||||
- s_route->c_oil.oif_creation
|
||||
[oif_vif_index]);
|
||||
found_oif = 1;
|
||||
|
||||
if (ifp_out)
|
||||
strcpy(out_ifname, ifp_out->name);
|
||||
else
|
||||
strcpy(out_ifname, "<oif?>");
|
||||
|
||||
if (uj) {
|
||||
json_ifp_out = json_object_new_object();
|
||||
json_object_string_add(json_ifp_out,
|
||||
"source",
|
||||
src_str);
|
||||
json_object_string_add(
|
||||
json_ifp_out, "group", grp_str);
|
||||
json_object_boolean_true_add(
|
||||
json_ifp_out, "protocolStatic");
|
||||
json_object_string_add(
|
||||
json_ifp_out,
|
||||
"inboundInterface", in_ifname);
|
||||
json_object_int_add(
|
||||
json_ifp_out, "iVifI",
|
||||
s_route->c_oil.oil.mfcc_parent);
|
||||
json_object_string_add(
|
||||
json_ifp_out,
|
||||
"outboundInterface",
|
||||
out_ifname);
|
||||
json_object_int_add(json_ifp_out,
|
||||
"oVifI",
|
||||
oif_vif_index);
|
||||
json_object_int_add(json_ifp_out, "ttl",
|
||||
ttl);
|
||||
json_object_string_add(json_ifp_out,
|
||||
"upTime",
|
||||
oif_uptime);
|
||||
if (!json_oil) {
|
||||
json_oil =
|
||||
json_object_new_object();
|
||||
json_object_object_add(
|
||||
json_source, "oil",
|
||||
json_oil);
|
||||
}
|
||||
json_object_object_add(json_oil,
|
||||
out_ifname,
|
||||
json_ifp_out);
|
||||
} else {
|
||||
vty_out(vty,
|
||||
"%-15s %-15s %-6s %-10s %-10s %-3d %8s %s\n",
|
||||
src_str, grp_str, proto,
|
||||
in_ifname, out_ifname, ttl,
|
||||
oif_uptime, vrf->name);
|
||||
if (first) {
|
||||
src_str[0] = '\0';
|
||||
grp_str[0] = '\0';
|
||||
in_ifname[0] = '\0';
|
||||
first = 0;
|
||||
}
|
||||
json_object_int_add(
|
||||
json_ifp_out, "iVifI",
|
||||
s_route->c_oil.oil.mfcc_parent);
|
||||
json_object_string_add(json_ifp_out,
|
||||
"outboundInterface",
|
||||
out_ifname);
|
||||
json_object_int_add(json_ifp_out, "oVifI",
|
||||
oif_vif_index);
|
||||
json_object_int_add(json_ifp_out, "ttl", ttl);
|
||||
json_object_string_add(json_ifp_out, "upTime",
|
||||
oif_uptime);
|
||||
if (!json_oil) {
|
||||
json_oil = json_object_new_object();
|
||||
json_object_object_add(json_source,
|
||||
"oil", json_oil);
|
||||
}
|
||||
}
|
||||
|
||||
if (!uj && !found_oif) {
|
||||
json_object_object_add(json_oil, out_ifname,
|
||||
json_ifp_out);
|
||||
} else {
|
||||
vty_out(vty,
|
||||
"%-15s %-15s %-6s %-10s %-10s %-3d %8s %s\n",
|
||||
src_str, grp_str, proto, in_ifname,
|
||||
"none", 0, "--:--:--", vrf->name);
|
||||
out_ifname, ttl, oif_uptime,
|
||||
pim->vrf->name);
|
||||
if (first) {
|
||||
src_str[0] = '\0';
|
||||
grp_str[0] = '\0';
|
||||
in_ifname[0] = '\0';
|
||||
first = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!uj && !found_oif) {
|
||||
vty_out(vty,
|
||||
"%-15s %-15s %-6s %-10s %-10s %-3d %8s %s\n",
|
||||
src_str, grp_str, proto, in_ifname, "none", 0,
|
||||
"--:--:--", pim->vrf->name);
|
||||
}
|
||||
}
|
||||
|
||||
if (uj) {
|
||||
@ -4105,7 +4084,7 @@ DEFUN (show_ip_mroute,
|
||||
JSON_STR)
|
||||
{
|
||||
u_char uj = use_json(argc, argv);
|
||||
show_mroute(vty, uj);
|
||||
show_mroute(pimg, vty, uj);
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -1054,28 +1054,19 @@ int pim_if_del_vif(struct interface *ifp)
|
||||
}
|
||||
|
||||
// DBS - VRF Revist
|
||||
struct interface *pim_if_find_by_vif_index(ifindex_t vif_index)
|
||||
struct interface *pim_if_find_by_vif_index(struct pim_instance *pim,
|
||||
ifindex_t vif_index)
|
||||
{
|
||||
struct listnode *ifnode;
|
||||
struct interface *ifp;
|
||||
struct pim_instance *pim;
|
||||
struct vrf *vrf;
|
||||
|
||||
RB_FOREACH(vrf, vrf_name_head, &vrfs_by_name)
|
||||
{
|
||||
pim = vrf->info;
|
||||
if (!pim)
|
||||
continue;
|
||||
for (ALL_LIST_ELEMENTS_RO(vrf_iflist(pim->vrf_id), ifnode, ifp)) {
|
||||
if (ifp->info) {
|
||||
struct pim_interface *pim_ifp;
|
||||
pim_ifp = ifp->info;
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(vrf_iflist(pim->vrf_id), ifnode,
|
||||
ifp)) {
|
||||
if (ifp->info) {
|
||||
struct pim_interface *pim_ifp;
|
||||
pim_ifp = ifp->info;
|
||||
|
||||
if (vif_index == pim_ifp->mroute_vif_index)
|
||||
return ifp;
|
||||
}
|
||||
if (vif_index == pim_ifp->mroute_vif_index)
|
||||
return ifp;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1085,12 +1076,12 @@ struct interface *pim_if_find_by_vif_index(ifindex_t vif_index)
|
||||
/*
|
||||
pim_if_add_vif() uses ifindex as vif_index
|
||||
*/
|
||||
int pim_if_find_vifindex_by_ifindex(ifindex_t ifindex)
|
||||
int pim_if_find_vifindex_by_ifindex(struct pim_instance *pim, ifindex_t ifindex)
|
||||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
struct interface *ifp;
|
||||
|
||||
ifp = if_lookup_by_index(ifindex, pimg->vrf_id);
|
||||
ifp = if_lookup_by_index(ifindex, pim->vrf_id);
|
||||
if (!ifp || !ifp->info)
|
||||
return -1;
|
||||
pim_ifp = ifp->info;
|
||||
|
@ -169,8 +169,10 @@ int pim_if_del_vif(struct interface *ifp);
|
||||
void pim_if_add_vif_all(struct pim_instance *pim);
|
||||
void pim_if_del_vif_all(struct pim_instance *pim);
|
||||
|
||||
struct interface *pim_if_find_by_vif_index(ifindex_t vif_index);
|
||||
int pim_if_find_vifindex_by_ifindex(ifindex_t ifindex);
|
||||
struct interface *pim_if_find_by_vif_index(struct pim_instance *pim,
|
||||
ifindex_t vif_index);
|
||||
int pim_if_find_vifindex_by_ifindex(struct pim_instance *pim,
|
||||
ifindex_t ifindex);
|
||||
|
||||
int pim_if_lan_delay_enabled(struct interface *ifp);
|
||||
uint16_t pim_if_effective_propagation_delay_msec(struct interface *ifp);
|
||||
|
@ -197,6 +197,7 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
|
||||
if (up->channel_oil->oil.mfcc_parent >= MAXVIFS) {
|
||||
int vif_index = 0;
|
||||
vif_index = pim_if_find_vifindex_by_ifindex(
|
||||
pim_ifp->pim,
|
||||
up->rpf.source_nexthop.interface->ifindex);
|
||||
up->channel_oil->oil.mfcc_parent = vif_index;
|
||||
}
|
||||
@ -597,7 +598,7 @@ static int pim_mroute_msg(struct pim_instance *pim, const char *buf,
|
||||
} else {
|
||||
msg = (const struct igmpmsg *)buf;
|
||||
|
||||
ifp = pim_if_find_by_vif_index(msg->im_vif);
|
||||
ifp = pim_if_find_by_vif_index(pim, msg->im_vif);
|
||||
|
||||
if (!ifp)
|
||||
return 0;
|
||||
|
@ -358,7 +358,8 @@ static int pim_update_upstream_nh(struct pim_instance *pim,
|
||||
if (up->channel_oil) {
|
||||
ifindex_t ifindex =
|
||||
up->rpf.source_nexthop.interface->ifindex;
|
||||
vif_index = pim_if_find_vifindex_by_ifindex(ifindex);
|
||||
vif_index =
|
||||
pim_if_find_vifindex_by_ifindex(pim, ifindex);
|
||||
/* Pass Current selected NH vif index to mroute download
|
||||
*/
|
||||
if (vif_index)
|
||||
@ -1063,7 +1064,7 @@ int pim_ecmp_fib_lookup_if_vif_index(struct pim_instance *pim,
|
||||
ifindex2ifname(first_ifindex, pim->vrf_id), addr_str);
|
||||
}
|
||||
|
||||
vif_index = pim_if_find_vifindex_by_ifindex(first_ifindex);
|
||||
vif_index = pim_if_find_vifindex_by_ifindex(pim, first_ifindex);
|
||||
|
||||
if (vif_index < 0) {
|
||||
if (PIM_DEBUG_ZEBRA) {
|
||||
|
@ -169,7 +169,7 @@ struct channel_oil *pim_channel_oil_add(struct prefix_sg *sg,
|
||||
return c_oil;
|
||||
}
|
||||
|
||||
ifp = pim_if_find_by_vif_index(input_vif_index);
|
||||
ifp = pim_if_find_by_vif_index(pimg, input_vif_index);
|
||||
if (!ifp) {
|
||||
/* warning only */
|
||||
zlog_warn(
|
||||
|
@ -358,7 +358,8 @@ int pim_static_write_mroute(struct vty *vty, struct pim_instance *pim,
|
||||
for (i = 0; i < MAXVIFS; i++)
|
||||
if (sroute->oif_ttls[i]) {
|
||||
struct interface *oifp =
|
||||
pim_if_find_by_vif_index(i);
|
||||
pim_if_find_by_vif_index(pim,
|
||||
i);
|
||||
if (sroute->source.s_addr == 0)
|
||||
vty_out(vty,
|
||||
" ip mroute %s %s\n",
|
||||
|
@ -545,10 +545,10 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index)
|
||||
}
|
||||
|
||||
if (PIM_DEBUG_ZEBRA) {
|
||||
struct interface *old_iif =
|
||||
pim_if_find_by_vif_index(c_oil->oil.mfcc_parent);
|
||||
struct interface *new_iif =
|
||||
pim_if_find_by_vif_index(input_iface_vif_index);
|
||||
struct interface *old_iif = pim_if_find_by_vif_index(
|
||||
c_oil->pim, c_oil->oil.mfcc_parent);
|
||||
struct interface *new_iif = pim_if_find_by_vif_index(
|
||||
c_oil->pim, input_iface_vif_index);
|
||||
char source_str[INET_ADDRSTRLEN];
|
||||
char group_str[INET_ADDRSTRLEN];
|
||||
pim_inet4_dump("<source?>", c_oil->oil.mfcc_origin, source_str,
|
||||
@ -564,8 +564,8 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index)
|
||||
|
||||
/* new iif loops to existing oif ? */
|
||||
if (c_oil->oil.mfcc_ttls[input_iface_vif_index]) {
|
||||
struct interface *new_iif =
|
||||
pim_if_find_by_vif_index(input_iface_vif_index);
|
||||
struct interface *new_iif = pim_if_find_by_vif_index(
|
||||
c_oil->pim, input_iface_vif_index);
|
||||
|
||||
if (PIM_DEBUG_ZEBRA) {
|
||||
char source_str[INET_ADDRSTRLEN];
|
||||
@ -590,10 +590,10 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index)
|
||||
if (pim_mroute_add(c_oil, __PRETTY_FUNCTION__)) {
|
||||
if (PIM_DEBUG_MROUTE) {
|
||||
/* just log warning */
|
||||
struct interface *old_iif =
|
||||
pim_if_find_by_vif_index(old_vif_index);
|
||||
struct interface *new_iif =
|
||||
pim_if_find_by_vif_index(input_iface_vif_index);
|
||||
struct interface *old_iif = pim_if_find_by_vif_index(
|
||||
c_oil->pim, old_vif_index);
|
||||
struct interface *new_iif = pim_if_find_by_vif_index(
|
||||
c_oil->pim, input_iface_vif_index);
|
||||
char source_str[INET_ADDRSTRLEN];
|
||||
char group_str[INET_ADDRSTRLEN];
|
||||
pim_inet4_dump("<source?>", c_oil->oil.mfcc_origin,
|
||||
@ -627,7 +627,8 @@ void pim_scan_oil()
|
||||
if (c_oil->up && c_oil->up->rpf.source_nexthop.interface) {
|
||||
ifindex = c_oil->up->rpf.source_nexthop
|
||||
.interface->ifindex;
|
||||
vif_index = pim_if_find_vifindex_by_ifindex(ifindex);
|
||||
vif_index = pim_if_find_vifindex_by_ifindex(c_oil->pim,
|
||||
ifindex);
|
||||
/* Pass Current selected NH vif index to mroute download
|
||||
*/
|
||||
if (vif_index)
|
||||
@ -917,6 +918,7 @@ void igmp_source_forward_start(struct igmp_source *source)
|
||||
if (nexthop.interface)
|
||||
input_iface_vif_index =
|
||||
pim_if_find_vifindex_by_ifindex(
|
||||
pimg,
|
||||
nexthop.interface->ifindex);
|
||||
} else {
|
||||
if (PIM_DEBUG_ZEBRA) {
|
||||
@ -1154,6 +1156,7 @@ void pim_forward_start(struct pim_ifchannel *ch)
|
||||
0))
|
||||
input_iface_vif_index =
|
||||
pim_if_find_vifindex_by_ifindex(
|
||||
pimg,
|
||||
up->rpf.source_nexthop
|
||||
.interface->ifindex);
|
||||
else {
|
||||
@ -1197,8 +1200,8 @@ void pim_forward_start(struct pim_ifchannel *ch)
|
||||
return;
|
||||
}
|
||||
if (PIM_DEBUG_TRACE) {
|
||||
struct interface *in_intf =
|
||||
pim_if_find_by_vif_index(input_iface_vif_index);
|
||||
struct interface *in_intf = pim_if_find_by_vif_index(
|
||||
pimg, input_iface_vif_index);
|
||||
zlog_debug(
|
||||
"%s: Update channel_oil IIF %s VIFI %d entry %s ",
|
||||
__PRETTY_FUNCTION__,
|
||||
|
@ -472,7 +472,7 @@ int pim_zlookup_sg_statistics(struct channel_oil *c_oil)
|
||||
int count = 0;
|
||||
int ret;
|
||||
struct interface *ifp =
|
||||
pim_if_find_by_vif_index(c_oil->oil.mfcc_parent);
|
||||
pim_if_find_by_vif_index(c_oil->pim, c_oil->oil.mfcc_parent);
|
||||
|
||||
if (PIM_DEBUG_ZEBRA) {
|
||||
struct prefix_sg more;
|
||||
|
Loading…
Reference in New Issue
Block a user