mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 21:54:01 +00:00
pimd: reformat after dropping indent levels
Intentionally separate here because the previous patch does a whole bunch of "move stuff up 1 level of indentation", and reviewing that is easier when you can use the ignore-whitespace option on diff. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
dda4d23cca
commit
a1a4295ade
161
pimd/pim_cmd.c
161
pimd/pim_cmd.c
@ -3443,80 +3443,70 @@ static void igmp_show_groups(struct pim_instance *pim, struct vty *vty, bool uj)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* scan igmp groups */
|
/* scan igmp groups */
|
||||||
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list,
|
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grpnode,
|
||||||
grpnode, grp)) {
|
grp)) {
|
||||||
char group_str[INET_ADDRSTRLEN];
|
char group_str[INET_ADDRSTRLEN];
|
||||||
char hhmmss[10];
|
char hhmmss[10];
|
||||||
char uptime[10];
|
char uptime[10];
|
||||||
|
|
||||||
pim_inet4_dump("<group?>", grp->group_addr,
|
pim_inet4_dump("<group?>", grp->group_addr, group_str,
|
||||||
group_str, sizeof(group_str));
|
sizeof(group_str));
|
||||||
pim_time_timer_to_hhmmss(hhmmss, sizeof(hhmmss),
|
pim_time_timer_to_hhmmss(hhmmss, sizeof(hhmmss),
|
||||||
grp->t_group_timer);
|
grp->t_group_timer);
|
||||||
pim_time_uptime(uptime, sizeof(uptime),
|
pim_time_uptime(uptime, sizeof(uptime),
|
||||||
now - grp->group_creation);
|
now - grp->group_creation);
|
||||||
|
|
||||||
if (uj) {
|
if (uj) {
|
||||||
json_object_object_get_ex(
|
json_object_object_get_ex(json, ifp->name,
|
||||||
json, ifp->name, &json_iface);
|
&json_iface);
|
||||||
|
|
||||||
if (!json_iface) {
|
if (!json_iface) {
|
||||||
json_iface =
|
json_iface = json_object_new_object();
|
||||||
json_object_new_object();
|
json_object_pim_ifp_add(json_iface,
|
||||||
json_object_pim_ifp_add(
|
ifp);
|
||||||
json_iface, ifp);
|
json_object_object_add(json, ifp->name,
|
||||||
json_object_object_add(
|
json_iface);
|
||||||
json, ifp->name,
|
json_groups = json_object_new_array();
|
||||||
json_iface);
|
json_object_object_add(json_iface,
|
||||||
json_groups =
|
"groups",
|
||||||
json_object_new_array();
|
json_groups);
|
||||||
json_object_object_add(
|
|
||||||
json_iface,
|
|
||||||
"groups",
|
|
||||||
json_groups);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
json_group = json_object_new_object();
|
json_group = json_object_new_object();
|
||||||
json_object_string_add(json_group,
|
json_object_string_add(json_group, "group",
|
||||||
"group",
|
|
||||||
group_str);
|
group_str);
|
||||||
|
|
||||||
if (grp->igmp_version == 3)
|
if (grp->igmp_version == 3)
|
||||||
json_object_string_add(
|
json_object_string_add(
|
||||||
json_group, "mode",
|
json_group, "mode",
|
||||||
grp->group_filtermode_isexcl
|
grp->group_filtermode_isexcl
|
||||||
? "EXCLUDE"
|
? "EXCLUDE"
|
||||||
: "INCLUDE");
|
: "INCLUDE");
|
||||||
|
|
||||||
json_object_string_add(json_group,
|
json_object_string_add(json_group, "timer",
|
||||||
"timer", hhmmss);
|
hhmmss);
|
||||||
json_object_int_add(
|
json_object_int_add(
|
||||||
json_group, "sourcesCount",
|
json_group, "sourcesCount",
|
||||||
grp->group_source_list
|
grp->group_source_list ? listcount(
|
||||||
? listcount(
|
|
||||||
grp->group_source_list)
|
grp->group_source_list)
|
||||||
: 0);
|
: 0);
|
||||||
json_object_int_add(
|
json_object_int_add(json_group, "version",
|
||||||
json_group, "version",
|
grp->igmp_version);
|
||||||
grp->igmp_version);
|
json_object_string_add(json_group, "uptime",
|
||||||
json_object_string_add(
|
uptime);
|
||||||
json_group, "uptime", uptime);
|
json_object_array_add(json_groups, json_group);
|
||||||
json_object_array_add(json_groups,
|
|
||||||
json_group);
|
|
||||||
} else {
|
} else {
|
||||||
vty_out(vty,
|
vty_out(vty, "%-16s %-15s %4s %8s %4d %d %8s\n",
|
||||||
"%-16s %-15s %4s %8s %4d %d %8s\n",
|
|
||||||
ifp->name, group_str,
|
ifp->name, group_str,
|
||||||
grp->igmp_version == 3
|
grp->igmp_version == 3
|
||||||
? (grp->group_filtermode_isexcl
|
? (grp->group_filtermode_isexcl
|
||||||
? "EXCL"
|
? "EXCL"
|
||||||
: "INCL")
|
: "INCL")
|
||||||
: "----",
|
: "----",
|
||||||
hhmmss,
|
hhmmss,
|
||||||
grp->group_source_list
|
grp->group_source_list ? listcount(
|
||||||
? listcount(
|
|
||||||
grp->group_source_list)
|
grp->group_source_list)
|
||||||
: 0,
|
: 0,
|
||||||
grp->igmp_version, uptime);
|
grp->igmp_version, uptime);
|
||||||
}
|
}
|
||||||
} /* scan igmp groups */
|
} /* scan igmp groups */
|
||||||
@ -3547,16 +3537,16 @@ static void igmp_show_group_retransmission(struct pim_instance *pim,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* scan igmp groups */
|
/* scan igmp groups */
|
||||||
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list,
|
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grpnode,
|
||||||
grpnode, grp)) {
|
grp)) {
|
||||||
char group_str[INET_ADDRSTRLEN];
|
char group_str[INET_ADDRSTRLEN];
|
||||||
char grp_retr_mmss[10];
|
char grp_retr_mmss[10];
|
||||||
struct listnode *src_node;
|
struct listnode *src_node;
|
||||||
struct igmp_source *src;
|
struct igmp_source *src;
|
||||||
int grp_retr_sources = 0;
|
int grp_retr_sources = 0;
|
||||||
|
|
||||||
pim_inet4_dump("<group?>", grp->group_addr,
|
pim_inet4_dump("<group?>", grp->group_addr, group_str,
|
||||||
group_str, sizeof(group_str));
|
sizeof(group_str));
|
||||||
pim_time_timer_to_mmss(
|
pim_time_timer_to_mmss(
|
||||||
grp_retr_mmss, sizeof(grp_retr_mmss),
|
grp_retr_mmss, sizeof(grp_retr_mmss),
|
||||||
grp->t_group_query_retransmit_timer);
|
grp->t_group_query_retransmit_timer);
|
||||||
@ -3564,17 +3554,15 @@ static void igmp_show_group_retransmission(struct pim_instance *pim,
|
|||||||
|
|
||||||
/* count group sources with retransmission state
|
/* count group sources with retransmission state
|
||||||
*/
|
*/
|
||||||
for (ALL_LIST_ELEMENTS_RO(
|
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list,
|
||||||
grp->group_source_list, src_node,
|
src_node, src)) {
|
||||||
src)) {
|
if (src->source_query_retransmit_count > 0) {
|
||||||
if (src->source_query_retransmit_count
|
|
||||||
> 0) {
|
|
||||||
++grp_retr_sources;
|
++grp_retr_sources;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vty_out(vty, "%-16s %-15s %-8s %7d %7d\n",
|
vty_out(vty, "%-16s %-15s %-8s %7d %7d\n", ifp->name,
|
||||||
ifp->name, group_str, grp_retr_mmss,
|
group_str, grp_retr_mmss,
|
||||||
grp->group_specific_query_retransmit_count,
|
grp->group_specific_query_retransmit_count,
|
||||||
grp_retr_sources);
|
grp_retr_sources);
|
||||||
|
|
||||||
@ -3602,46 +3590,41 @@ static void igmp_show_sources(struct pim_instance *pim, struct vty *vty)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* scan igmp groups */
|
/* scan igmp groups */
|
||||||
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list,
|
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grpnode,
|
||||||
grpnode, grp)) {
|
grp)) {
|
||||||
char group_str[INET_ADDRSTRLEN];
|
char group_str[INET_ADDRSTRLEN];
|
||||||
struct listnode *srcnode;
|
struct listnode *srcnode;
|
||||||
struct igmp_source *src;
|
struct igmp_source *src;
|
||||||
|
|
||||||
pim_inet4_dump("<group?>", grp->group_addr,
|
pim_inet4_dump("<group?>", grp->group_addr, group_str,
|
||||||
group_str, sizeof(group_str));
|
sizeof(group_str));
|
||||||
|
|
||||||
/* scan group sources */
|
/* scan group sources */
|
||||||
for (ALL_LIST_ELEMENTS_RO(
|
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list,
|
||||||
grp->group_source_list, srcnode,
|
srcnode, src)) {
|
||||||
src)) {
|
|
||||||
char source_str[INET_ADDRSTRLEN];
|
char source_str[INET_ADDRSTRLEN];
|
||||||
char mmss[10];
|
char mmss[10];
|
||||||
char uptime[10];
|
char uptime[10];
|
||||||
|
|
||||||
pim_inet4_dump(
|
pim_inet4_dump("<source?>", src->source_addr,
|
||||||
"<source?>", src->source_addr,
|
source_str, sizeof(source_str));
|
||||||
source_str, sizeof(source_str));
|
|
||||||
|
|
||||||
pim_time_timer_to_mmss(
|
pim_time_timer_to_mmss(mmss, sizeof(mmss),
|
||||||
mmss, sizeof(mmss),
|
src->t_source_timer);
|
||||||
src->t_source_timer);
|
|
||||||
|
|
||||||
pim_time_uptime(
|
pim_time_uptime(uptime, sizeof(uptime),
|
||||||
uptime, sizeof(uptime),
|
now - src->source_creation);
|
||||||
now - src->source_creation);
|
|
||||||
|
|
||||||
vty_out(vty,
|
vty_out(vty, "%-16s %-15s %-15s %5s %3s %8s\n",
|
||||||
"%-16s %-15s %-15s %5s %3s %8s\n",
|
|
||||||
ifp->name, group_str, source_str, mmss,
|
ifp->name, group_str, source_str, mmss,
|
||||||
IGMP_SOURCE_TEST_FORWARDING(
|
IGMP_SOURCE_TEST_FORWARDING(
|
||||||
src->source_flags)
|
src->source_flags)
|
||||||
? "Y"
|
? "Y"
|
||||||
: "N",
|
: "N",
|
||||||
uptime);
|
uptime);
|
||||||
|
|
||||||
} /* scan group sources */
|
} /* scan group sources */
|
||||||
} /* scan igmp groups */
|
} /* scan igmp groups */
|
||||||
} /* scan interfaces */
|
} /* scan interfaces */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3663,32 +3646,29 @@ static void igmp_show_source_retransmission(struct pim_instance *pim,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* scan igmp groups */
|
/* scan igmp groups */
|
||||||
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list,
|
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grpnode,
|
||||||
grpnode, grp)) {
|
grp)) {
|
||||||
char group_str[INET_ADDRSTRLEN];
|
char group_str[INET_ADDRSTRLEN];
|
||||||
struct listnode *srcnode;
|
struct listnode *srcnode;
|
||||||
struct igmp_source *src;
|
struct igmp_source *src;
|
||||||
|
|
||||||
pim_inet4_dump("<group?>", grp->group_addr,
|
pim_inet4_dump("<group?>", grp->group_addr, group_str,
|
||||||
group_str, sizeof(group_str));
|
sizeof(group_str));
|
||||||
|
|
||||||
/* scan group sources */
|
/* scan group sources */
|
||||||
for (ALL_LIST_ELEMENTS_RO(
|
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list,
|
||||||
grp->group_source_list, srcnode,
|
srcnode, src)) {
|
||||||
src)) {
|
|
||||||
char source_str[INET_ADDRSTRLEN];
|
char source_str[INET_ADDRSTRLEN];
|
||||||
|
|
||||||
pim_inet4_dump(
|
pim_inet4_dump("<source?>", src->source_addr,
|
||||||
"<source?>", src->source_addr,
|
source_str, sizeof(source_str));
|
||||||
source_str, sizeof(source_str));
|
|
||||||
|
|
||||||
vty_out(vty,
|
vty_out(vty, "%-16s %-15s %-15s %7d\n",
|
||||||
"%-16s %-15s %-15s %7d\n",
|
|
||||||
ifp->name, group_str, source_str,
|
ifp->name, group_str, source_str,
|
||||||
src->source_query_retransmit_count);
|
src->source_query_retransmit_count);
|
||||||
|
|
||||||
} /* scan group sources */
|
} /* scan group sources */
|
||||||
} /* scan igmp groups */
|
} /* scan igmp groups */
|
||||||
} /* scan interfaces */
|
} /* scan interfaces */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3959,8 +3939,7 @@ static void clear_mroute(struct pim_instance *pim)
|
|||||||
|
|
||||||
if (pim_ifp->igmp_group_list) {
|
if (pim_ifp->igmp_group_list) {
|
||||||
while (pim_ifp->igmp_group_list->count) {
|
while (pim_ifp->igmp_group_list->count) {
|
||||||
grp = listnode_head(
|
grp = listnode_head(pim_ifp->igmp_group_list);
|
||||||
pim_ifp->igmp_group_list);
|
|
||||||
igmp_group_delete(grp);
|
igmp_group_delete(grp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -938,11 +938,9 @@ void pim_igmp_if_init(struct pim_interface *pim_ifp, struct interface *ifp)
|
|||||||
pim_ifp->igmp_group_list = list_new();
|
pim_ifp->igmp_group_list = list_new();
|
||||||
pim_ifp->igmp_group_list->del = (void (*)(void *))igmp_group_free;
|
pim_ifp->igmp_group_list->del = (void (*)(void *))igmp_group_free;
|
||||||
|
|
||||||
snprintf(hash_name, sizeof(hash_name), "IGMP %s hash",
|
snprintf(hash_name, sizeof(hash_name), "IGMP %s hash", ifp->name);
|
||||||
ifp->name);
|
pim_ifp->igmp_group_hash = hash_create(
|
||||||
pim_ifp->igmp_group_hash = hash_create(igmp_group_hash_key,
|
igmp_group_hash_key, igmp_group_hash_equal, hash_name);
|
||||||
igmp_group_hash_equal,
|
|
||||||
hash_name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void pim_igmp_if_reset(struct pim_interface *pim_ifp)
|
void pim_igmp_if_reset(struct pim_interface *pim_ifp)
|
||||||
|
@ -198,8 +198,7 @@ static void source_timer_off(struct igmp_group *group,
|
|||||||
sizeof(source_str));
|
sizeof(source_str));
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
"Cancelling TIMER event for group %s source %s on %s",
|
"Cancelling TIMER event for group %s source %s on %s",
|
||||||
group_str, source_str,
|
group_str, source_str, group->interface->name);
|
||||||
group->interface->name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
THREAD_OFF(source->t_source_timer);
|
THREAD_OFF(source->t_source_timer);
|
||||||
@ -362,8 +361,7 @@ void igmp_source_delete(struct igmp_source *source)
|
|||||||
sizeof(source_str));
|
sizeof(source_str));
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
"Deleting IGMP source %s for group %s from interface %s c_oil ref_count %d",
|
"Deleting IGMP source %s for group %s from interface %s c_oil ref_count %d",
|
||||||
source_str, group_str,
|
source_str, group_str, group->interface->name,
|
||||||
group->interface->name,
|
|
||||||
source->source_channel_oil
|
source->source_channel_oil
|
||||||
? source->source_channel_oil->oil_ref_count
|
? source->source_channel_oil->oil_ref_count
|
||||||
: 0);
|
: 0);
|
||||||
@ -994,14 +992,13 @@ static void igmp_send_query_group(struct igmp_group *group, char *query_buf,
|
|||||||
struct listnode *sock_node;
|
struct listnode *sock_node;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_socket_list, sock_node, igmp)) {
|
for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_socket_list, sock_node, igmp)) {
|
||||||
igmp_send_query(pim_ifp->igmp_version, group, igmp->fd,
|
igmp_send_query(
|
||||||
ifp->name, query_buf, query_buf_size,
|
pim_ifp->igmp_version, group, igmp->fd, ifp->name,
|
||||||
num_sources, group->group_addr,
|
query_buf, query_buf_size, num_sources,
|
||||||
group->group_addr,
|
group->group_addr, group->group_addr,
|
||||||
pim_ifp->igmp_specific_query_max_response_time_dsec,
|
pim_ifp->igmp_specific_query_max_response_time_dsec,
|
||||||
s_flag,
|
s_flag, igmp->querier_robustness_variable,
|
||||||
igmp->querier_robustness_variable,
|
igmp->querier_query_interval);
|
||||||
igmp->querier_query_interval);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1177,10 +1174,9 @@ static int group_retransmit_sources(struct igmp_group *group,
|
|||||||
interest.
|
interest.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
igmp_send_query_group(group, query_buf1,
|
igmp_send_query_group(
|
||||||
sizeof(query_buf1),
|
group, query_buf1, sizeof(query_buf1),
|
||||||
num_sources_tosend1,
|
num_sources_tosend1, 1 /* s_flag */);
|
||||||
1 /* s_flag */);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* send_with_sflag_set */
|
} /* send_with_sflag_set */
|
||||||
@ -1214,10 +1210,9 @@ static int group_retransmit_sources(struct igmp_group *group,
|
|||||||
interest.
|
interest.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
igmp_send_query_group(group, query_buf2,
|
igmp_send_query_group(
|
||||||
sizeof(query_buf2),
|
group, query_buf2, sizeof(query_buf2),
|
||||||
num_sources_tosend2,
|
num_sources_tosend2, 0 /* s_flag */);
|
||||||
0 /* s_flag */);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ static void pim_if_membership_refresh(struct interface *ifp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
} /* scan group sources */
|
} /* scan group sources */
|
||||||
} /* scan igmp groups */
|
} /* scan igmp groups */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Finally delete every PIM (S,G) entry lacking all state info
|
* Finally delete every PIM (S,G) entry lacking all state info
|
||||||
@ -483,8 +483,8 @@ static void change_query_max_response_time(struct pim_interface *pim_ifp,
|
|||||||
igmp_group_reset_gmi(grp);
|
igmp_group_reset_gmi(grp);
|
||||||
|
|
||||||
/* scan group sources */
|
/* scan group sources */
|
||||||
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list,
|
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list, src_node,
|
||||||
src_node, src)) {
|
src)) {
|
||||||
|
|
||||||
/* reset source timers for sources with running
|
/* reset source timers for sources with running
|
||||||
* timers
|
* timers
|
||||||
|
@ -517,8 +517,8 @@ static void igmp_source_forward_reevaluate_one(struct pim_instance *pim,
|
|||||||
zlog_debug(
|
zlog_debug(
|
||||||
"local membership del for %s as G is now SSM",
|
"local membership del for %s as G is now SSM",
|
||||||
pim_str_sg_dump(&sg));
|
pim_str_sg_dump(&sg));
|
||||||
pim_ifchannel_local_membership_del(
|
pim_ifchannel_local_membership_del(group->interface,
|
||||||
group->interface, &sg);
|
&sg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* If ASM group add local membership */
|
/* If ASM group add local membership */
|
||||||
@ -529,8 +529,7 @@ static void igmp_source_forward_reevaluate_one(struct pim_instance *pim,
|
|||||||
"local membership add for %s as G is now ASM",
|
"local membership add for %s as G is now ASM",
|
||||||
pim_str_sg_dump(&sg));
|
pim_str_sg_dump(&sg));
|
||||||
pim_ifchannel_local_membership_add(
|
pim_ifchannel_local_membership_add(
|
||||||
group->interface, &sg,
|
group->interface, &sg, false /*is_vxlan*/);
|
||||||
false /*is_vxlan*/);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -557,8 +556,8 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim)
|
|||||||
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list,
|
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list,
|
||||||
srcnode, src)) {
|
srcnode, src)) {
|
||||||
igmp_source_forward_reevaluate_one(pim, src);
|
igmp_source_forward_reevaluate_one(pim, src);
|
||||||
} /* scan group sources */
|
} /* scan group sources */
|
||||||
} /* scan igmp groups */
|
} /* scan igmp groups */
|
||||||
} /* scan interfaces */
|
} /* scan interfaces */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -576,11 +575,10 @@ void igmp_source_forward_start(struct pim_instance *pim,
|
|||||||
sg.grp = source->source_group->group_addr;
|
sg.grp = source->source_group->group_addr;
|
||||||
|
|
||||||
if (PIM_DEBUG_IGMP_TRACE) {
|
if (PIM_DEBUG_IGMP_TRACE) {
|
||||||
zlog_debug(
|
zlog_debug("%s: (S,G)=%s oif=%s fwd=%d", __func__,
|
||||||
"%s: (S,G)=%s oif=%s fwd=%d", __func__,
|
pim_str_sg_dump(&sg),
|
||||||
pim_str_sg_dump(&sg),
|
source->source_group->interface->name,
|
||||||
source->source_group->interface->name,
|
IGMP_SOURCE_TEST_FORWARDING(source->source_flags));
|
||||||
IGMP_SOURCE_TEST_FORWARDING(source->source_flags));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Prevent IGMP interface from installing multicast route multiple
|
/* Prevent IGMP interface from installing multicast route multiple
|
||||||
@ -726,16 +724,15 @@ void igmp_source_forward_start(struct pim_instance *pim,
|
|||||||
Feed IGMPv3-gathered local membership information into PIM
|
Feed IGMPv3-gathered local membership information into PIM
|
||||||
per-interface (S,G) state.
|
per-interface (S,G) state.
|
||||||
*/
|
*/
|
||||||
if (!pim_ifchannel_local_membership_add(
|
if (!pim_ifchannel_local_membership_add(group->interface, &sg,
|
||||||
group->interface, &sg,
|
|
||||||
false /*is_vxlan*/)) {
|
false /*is_vxlan*/)) {
|
||||||
if (PIM_DEBUG_MROUTE)
|
if (PIM_DEBUG_MROUTE)
|
||||||
zlog_warn("%s: Failure to add local membership for %s",
|
zlog_warn("%s: Failure to add local membership for %s",
|
||||||
__func__, pim_str_sg_dump(&sg));
|
__func__, pim_str_sg_dump(&sg));
|
||||||
|
|
||||||
pim_channel_del_oif(source->source_channel_oil,
|
pim_channel_del_oif(source->source_channel_oil,
|
||||||
group->interface,
|
group->interface, PIM_OIF_FLAG_PROTO_IGMP,
|
||||||
PIM_OIF_FLAG_PROTO_IGMP, __func__);
|
__func__);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -757,11 +754,10 @@ void igmp_source_forward_stop(struct igmp_source *source)
|
|||||||
sg.grp = source->source_group->group_addr;
|
sg.grp = source->source_group->group_addr;
|
||||||
|
|
||||||
if (PIM_DEBUG_IGMP_TRACE) {
|
if (PIM_DEBUG_IGMP_TRACE) {
|
||||||
zlog_debug(
|
zlog_debug("%s: (S,G)=%s oif=%s fwd=%d", __func__,
|
||||||
"%s: (S,G)=%s oif=%s fwd=%d", __func__,
|
pim_str_sg_dump(&sg),
|
||||||
pim_str_sg_dump(&sg),
|
source->source_group->interface->name,
|
||||||
source->source_group->interface->name,
|
IGMP_SOURCE_TEST_FORWARDING(source->source_flags));
|
||||||
IGMP_SOURCE_TEST_FORWARDING(source->source_flags));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Prevent IGMP interface from removing multicast route multiple
|
/* Prevent IGMP interface from removing multicast route multiple
|
||||||
@ -784,9 +780,8 @@ void igmp_source_forward_stop(struct igmp_source *source)
|
|||||||
pim_forward_stop below.
|
pim_forward_stop below.
|
||||||
*/
|
*/
|
||||||
result = pim_channel_del_oif(source->source_channel_oil,
|
result = pim_channel_del_oif(source->source_channel_oil,
|
||||||
group->interface,
|
group->interface, PIM_OIF_FLAG_PROTO_IGMP,
|
||||||
PIM_OIF_FLAG_PROTO_IGMP,
|
__func__);
|
||||||
__func__);
|
|
||||||
if (result) {
|
if (result) {
|
||||||
if (PIM_DEBUG_IGMP_TRACE)
|
if (PIM_DEBUG_IGMP_TRACE)
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
|
Loading…
Reference in New Issue
Block a user