forked from Mirror/frr
pimd: Modifying name of struct igmp_group to struct gm_group for IPv6.
Modifying name of struct igmp_group to struct gm_group, which is to be used by both IPv4 and IPv6(for both MLD and IGMP). Co-authored-by: Mobashshera Rasool <mrasool@vmware.com> Co-authored-by: Sarita Patra <saritap@vmware.com> Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
This commit is contained in:
parent
517001077f
commit
a16db099e4
|
@ -3420,7 +3420,7 @@ static void igmp_show_groups(struct pim_instance *pim, struct vty *vty, bool uj)
|
|||
FOR_ALL_INTERFACES (pim->vrf, ifp) {
|
||||
struct pim_interface *pim_ifp = ifp->info;
|
||||
struct listnode *grpnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
if (!pim_ifp)
|
||||
continue;
|
||||
|
@ -3513,7 +3513,7 @@ static void igmp_show_group_retransmission(struct pim_instance *pim,
|
|||
FOR_ALL_INTERFACES (pim->vrf, ifp) {
|
||||
struct pim_interface *pim_ifp = ifp->info;
|
||||
struct listnode *grpnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
if (!pim_ifp)
|
||||
continue;
|
||||
|
@ -3565,7 +3565,7 @@ static void igmp_show_sources(struct pim_instance *pim, struct vty *vty)
|
|||
FOR_ALL_INTERFACES (pim->vrf, ifp) {
|
||||
struct pim_interface *pim_ifp = ifp->info;
|
||||
struct listnode *grpnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
if (!pim_ifp)
|
||||
continue;
|
||||
|
@ -3620,7 +3620,7 @@ static void igmp_show_source_retransmission(struct pim_instance *pim,
|
|||
FOR_ALL_INTERFACES (pim->vrf, ifp) {
|
||||
struct pim_interface *pim_ifp = ifp->info;
|
||||
struct listnode *grpnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
if (!pim_ifp)
|
||||
continue;
|
||||
|
@ -3901,7 +3901,7 @@ static void clear_mroute(struct pim_instance *pim)
|
|||
/* scan interfaces */
|
||||
FOR_ALL_INTERFACES (pim->vrf, ifp) {
|
||||
struct pim_interface *pim_ifp = ifp->info;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
struct pim_ifchannel *ch;
|
||||
|
||||
if (!pim_ifp)
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#include "pim_time.h"
|
||||
#include "pim_zebra.h"
|
||||
|
||||
static void group_timer_off(struct igmp_group *group);
|
||||
static void group_timer_off(struct gm_group *group);
|
||||
static int pim_igmp_general_query(struct thread *t);
|
||||
|
||||
/* This socket is used for TXing IGMP packets only, IGMP RX happens
|
||||
|
@ -415,7 +415,7 @@ static int igmp_v1_recv_report(struct igmp_sock *igmp, struct in_addr from,
|
|||
int igmp_msg_len)
|
||||
{
|
||||
struct interface *ifp = igmp->interface;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
struct in_addr group_addr;
|
||||
|
||||
on_trace(__func__, igmp->interface, from);
|
||||
|
@ -789,7 +789,7 @@ void igmp_startup_mode_on(struct igmp_sock *igmp)
|
|||
igmp->querier_query_interval = pim_ifp->default_query_interval;
|
||||
}
|
||||
|
||||
static void igmp_group_free(struct igmp_group *group)
|
||||
static void igmp_group_free(struct gm_group *group)
|
||||
{
|
||||
list_delete(&group->group_source_list);
|
||||
|
||||
|
@ -819,7 +819,7 @@ static void igmp_group_count_decr(struct pim_interface *pim_ifp)
|
|||
--pim_ifp->pim->igmp_group_count;
|
||||
}
|
||||
|
||||
void igmp_group_delete(struct igmp_group *group)
|
||||
void igmp_group_delete(struct gm_group *group)
|
||||
{
|
||||
struct listnode *src_node;
|
||||
struct listnode *src_nextnode;
|
||||
|
@ -849,7 +849,7 @@ void igmp_group_delete(struct igmp_group *group)
|
|||
igmp_group_free(group);
|
||||
}
|
||||
|
||||
void igmp_group_delete_empty_include(struct igmp_group *group)
|
||||
void igmp_group_delete_empty_include(struct gm_group *group)
|
||||
{
|
||||
assert(!group->group_filtermode_isexcl);
|
||||
assert(!listcount(group->group_source_list));
|
||||
|
@ -898,15 +898,15 @@ void igmp_sock_delete_all(struct interface *ifp)
|
|||
|
||||
static unsigned int igmp_group_hash_key(const void *arg)
|
||||
{
|
||||
const struct igmp_group *group = arg;
|
||||
const struct gm_group *group = arg;
|
||||
|
||||
return jhash_1word(group->group_addr.s_addr, 0);
|
||||
}
|
||||
|
||||
static bool igmp_group_hash_equal(const void *arg1, const void *arg2)
|
||||
{
|
||||
const struct igmp_group *g1 = (const struct igmp_group *)arg1;
|
||||
const struct igmp_group *g2 = (const struct igmp_group *)arg2;
|
||||
const struct gm_group *g1 = (const struct gm_group *)arg1;
|
||||
const struct gm_group *g2 = (const struct gm_group *)arg2;
|
||||
|
||||
if (g1->group_addr.s_addr == g2->group_addr.s_addr)
|
||||
return true;
|
||||
|
@ -932,7 +932,7 @@ void pim_igmp_if_init(struct pim_interface *pim_ifp, struct interface *ifp)
|
|||
void pim_igmp_if_reset(struct pim_interface *pim_ifp)
|
||||
{
|
||||
struct listnode *grp_node, *grp_nextnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(pim_ifp->group_list, grp_node, grp_nextnode,
|
||||
grp)) {
|
||||
|
@ -1101,7 +1101,7 @@ struct igmp_sock *pim_igmp_sock_add(struct list *igmp_sock_list,
|
|||
*/
|
||||
static int igmp_group_timer(struct thread *t)
|
||||
{
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
group = THREAD_ARG(t);
|
||||
|
||||
|
@ -1137,7 +1137,7 @@ static int igmp_group_timer(struct thread *t)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void group_timer_off(struct igmp_group *group)
|
||||
static void group_timer_off(struct gm_group *group)
|
||||
{
|
||||
if (!group->t_group_timer)
|
||||
return;
|
||||
|
@ -1152,7 +1152,7 @@ static void group_timer_off(struct igmp_group *group)
|
|||
THREAD_OFF(group->t_group_timer);
|
||||
}
|
||||
|
||||
void igmp_group_timer_on(struct igmp_group *group, long interval_msec,
|
||||
void igmp_group_timer_on(struct gm_group *group, long interval_msec,
|
||||
const char *ifname)
|
||||
{
|
||||
group_timer_off(group);
|
||||
|
@ -1180,10 +1180,10 @@ void igmp_group_timer_on(struct igmp_group *group, long interval_msec,
|
|||
interval_msec, &group->t_group_timer);
|
||||
}
|
||||
|
||||
struct igmp_group *find_group_by_addr(struct igmp_sock *igmp,
|
||||
struct gm_group *find_group_by_addr(struct igmp_sock *igmp,
|
||||
struct in_addr group_addr)
|
||||
{
|
||||
struct igmp_group lookup;
|
||||
struct gm_group lookup;
|
||||
struct pim_interface *pim_ifp = igmp->interface->info;
|
||||
|
||||
lookup.group_addr.s_addr = group_addr.s_addr;
|
||||
|
@ -1191,10 +1191,10 @@ struct igmp_group *find_group_by_addr(struct igmp_sock *igmp,
|
|||
return hash_lookup(pim_ifp->group_hash, &lookup);
|
||||
}
|
||||
|
||||
struct igmp_group *igmp_add_group_by_addr(struct igmp_sock *igmp,
|
||||
struct gm_group *igmp_add_group_by_addr(struct igmp_sock *igmp,
|
||||
struct in_addr group_addr)
|
||||
{
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
struct pim_interface *pim_ifp = igmp->interface->info;
|
||||
|
||||
group = find_group_by_addr(igmp, group_addr);
|
||||
|
@ -1276,7 +1276,7 @@ struct igmp_group *igmp_add_group_by_addr(struct igmp_sock *igmp,
|
|||
return group;
|
||||
}
|
||||
|
||||
void igmp_send_query(int igmp_version, struct igmp_group *group, int fd,
|
||||
void igmp_send_query(int igmp_version, struct gm_group *group, int fd,
|
||||
const char *ifname, char *query_buf, int query_buf_size,
|
||||
int num_sources, struct in_addr dst_addr,
|
||||
struct in_addr group_addr,
|
||||
|
|
|
@ -142,7 +142,7 @@ int igmp_validate_checksum(char *igmp_msg, int igmp_msg_len);
|
|||
struct gm_source {
|
||||
struct in_addr source_addr;
|
||||
struct thread *t_source_timer;
|
||||
struct igmp_group *source_group; /* back pointer */
|
||||
struct gm_group *source_group; /* back pointer */
|
||||
time_t source_creation;
|
||||
uint32_t source_flags;
|
||||
struct channel_oil *source_channel_oil;
|
||||
|
@ -154,7 +154,7 @@ struct gm_source {
|
|||
int source_query_retransmit_count;
|
||||
};
|
||||
|
||||
struct igmp_group {
|
||||
struct gm_group {
|
||||
/*
|
||||
RFC 3376: 6.2.2. Definition of Group Timers
|
||||
|
||||
|
@ -185,30 +185,30 @@ struct igmp_group {
|
|||
int64_t last_igmp_v2_report_dsec;
|
||||
};
|
||||
|
||||
struct igmp_group *find_group_by_addr(struct igmp_sock *igmp,
|
||||
struct gm_group *find_group_by_addr(struct igmp_sock *igmp,
|
||||
struct in_addr group_addr);
|
||||
struct igmp_group *igmp_add_group_by_addr(struct igmp_sock *igmp,
|
||||
struct gm_group *igmp_add_group_by_addr(struct igmp_sock *igmp,
|
||||
struct in_addr group_addr);
|
||||
|
||||
struct gm_source *igmp_get_source_by_addr(struct igmp_group *group,
|
||||
struct gm_source *igmp_get_source_by_addr(struct gm_group *group,
|
||||
struct in_addr src_addr,
|
||||
bool *created);
|
||||
|
||||
void igmp_group_delete_empty_include(struct igmp_group *group);
|
||||
void igmp_group_delete_empty_include(struct gm_group *group);
|
||||
|
||||
void igmp_startup_mode_on(struct igmp_sock *igmp);
|
||||
|
||||
void igmp_group_timer_on(struct igmp_group *group, long interval_msec,
|
||||
void igmp_group_timer_on(struct gm_group *group, long interval_msec,
|
||||
const char *ifname);
|
||||
|
||||
void igmp_send_query(int igmp_version, struct igmp_group *group, int fd,
|
||||
void igmp_send_query(int igmp_version, struct gm_group *group, int fd,
|
||||
const char *ifname, char *query_buf, int query_buf_size,
|
||||
int num_sources, struct in_addr dst_addr,
|
||||
struct in_addr group_addr,
|
||||
int query_max_response_time_dsec, uint8_t s_flag,
|
||||
uint8_t querier_robustness_variable,
|
||||
uint16_t querier_query_interval);
|
||||
void igmp_group_delete(struct igmp_group *group);
|
||||
void igmp_group_delete(struct gm_group *group);
|
||||
|
||||
void igmp_send_query_on_intf(struct interface *ifp, int igmp_ver);
|
||||
#endif /* PIM_IGMP_H */
|
||||
|
|
|
@ -39,7 +39,7 @@ static void on_trace(const char *label, struct interface *ifp,
|
|||
}
|
||||
}
|
||||
|
||||
void igmp_v2_send_query(struct igmp_group *group, int fd, const char *ifname,
|
||||
void igmp_v2_send_query(struct gm_group *group, int fd, const char *ifname,
|
||||
char *query_buf, struct in_addr dst_addr,
|
||||
struct in_addr group_addr,
|
||||
int query_max_response_time_dsec)
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#ifndef PIM_IGMPV2_H
|
||||
#define PIM_IGMPV2_H
|
||||
|
||||
void igmp_v2_send_query(struct igmp_group *group, int fd, const char *ifname,
|
||||
void igmp_v2_send_query(struct gm_group *group, int fd, const char *ifname,
|
||||
char *query_buf, struct in_addr dst_addr,
|
||||
struct in_addr group_addr,
|
||||
int query_max_response_time_dsec);
|
||||
|
|
|
@ -33,11 +33,11 @@
|
|||
#include "pim_zebra.h"
|
||||
#include "pim_oil.h"
|
||||
|
||||
static void group_retransmit_timer_on(struct igmp_group *group);
|
||||
static long igmp_group_timer_remain_msec(struct igmp_group *group);
|
||||
static void group_retransmit_timer_on(struct gm_group *group);
|
||||
static long igmp_group_timer_remain_msec(struct gm_group *group);
|
||||
static long igmp_source_timer_remain_msec(struct gm_source *source);
|
||||
static void group_query_send(struct igmp_group *group);
|
||||
static void source_query_send_by_flag(struct igmp_group *group,
|
||||
static void group_query_send(struct gm_group *group);
|
||||
static void source_query_send_by_flag(struct gm_group *group,
|
||||
int num_sources_tosend);
|
||||
|
||||
static void on_trace(const char *label, struct interface *ifp,
|
||||
|
@ -57,7 +57,7 @@ static void on_trace(const char *label, struct interface *ifp,
|
|||
}
|
||||
}
|
||||
|
||||
static inline long igmp_gmi_msec(struct igmp_group *group)
|
||||
static inline long igmp_gmi_msec(struct gm_group *group)
|
||||
{
|
||||
struct pim_interface *pim_ifp = group->interface->info;
|
||||
struct igmp_sock *igmp;
|
||||
|
@ -73,7 +73,7 @@ static inline long igmp_gmi_msec(struct igmp_group *group)
|
|||
pim_ifp->query_max_response_time_dsec);
|
||||
}
|
||||
|
||||
void igmp_group_reset_gmi(struct igmp_group *group)
|
||||
void igmp_group_reset_gmi(struct gm_group *group)
|
||||
{
|
||||
long group_membership_interval_msec;
|
||||
struct interface *ifp;
|
||||
|
@ -121,7 +121,7 @@ void igmp_group_reset_gmi(struct igmp_group *group)
|
|||
static int igmp_source_timer(struct thread *t)
|
||||
{
|
||||
struct gm_source *source;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
source = THREAD_ARG(t);
|
||||
|
||||
|
@ -183,8 +183,7 @@ static int igmp_source_timer(struct thread *t)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void source_timer_off(struct igmp_group *group,
|
||||
struct gm_source *source)
|
||||
static void source_timer_off(struct gm_group *group, struct gm_source *source)
|
||||
{
|
||||
if (!source->t_source_timer)
|
||||
return;
|
||||
|
@ -204,7 +203,7 @@ static void source_timer_off(struct igmp_group *group,
|
|||
THREAD_OFF(source->t_source_timer);
|
||||
}
|
||||
|
||||
static void igmp_source_timer_on(struct igmp_group *group,
|
||||
static void igmp_source_timer_on(struct gm_group *group,
|
||||
struct gm_source *source, long interval_msec)
|
||||
{
|
||||
source_timer_off(group, source);
|
||||
|
@ -234,7 +233,7 @@ static void igmp_source_timer_on(struct igmp_group *group,
|
|||
igmp_source_forward_start(pim_ifp->pim, source);
|
||||
}
|
||||
|
||||
void igmp_source_reset_gmi(struct igmp_group *group, struct gm_source *source)
|
||||
void igmp_source_reset_gmi(struct gm_group *group, struct gm_source *source)
|
||||
{
|
||||
long group_membership_interval_msec;
|
||||
struct interface *ifp;
|
||||
|
@ -262,7 +261,7 @@ void igmp_source_reset_gmi(struct igmp_group *group, struct gm_source *source)
|
|||
igmp_source_timer_on(group, source, group_membership_interval_msec);
|
||||
}
|
||||
|
||||
static void source_mark_delete_flag(struct igmp_group *group)
|
||||
static void source_mark_delete_flag(struct gm_group *group)
|
||||
{
|
||||
struct listnode *src_node;
|
||||
struct gm_source *src;
|
||||
|
@ -272,7 +271,7 @@ static void source_mark_delete_flag(struct igmp_group *group)
|
|||
}
|
||||
}
|
||||
|
||||
static void source_mark_send_flag(struct igmp_group *group)
|
||||
static void source_mark_send_flag(struct gm_group *group)
|
||||
{
|
||||
struct listnode *src_node;
|
||||
struct gm_source *src;
|
||||
|
@ -282,7 +281,7 @@ static void source_mark_send_flag(struct igmp_group *group)
|
|||
}
|
||||
}
|
||||
|
||||
static int source_mark_send_flag_by_timer(struct igmp_group *group)
|
||||
static int source_mark_send_flag_by_timer(struct gm_group *group)
|
||||
{
|
||||
struct listnode *src_node;
|
||||
struct gm_source *src;
|
||||
|
@ -314,7 +313,7 @@ static void source_clear_send_flag(struct list *source_list)
|
|||
/*
|
||||
Any source (*,G) is forwarded only if mode is EXCLUDE {empty}
|
||||
*/
|
||||
static void group_exclude_fwd_anysrc_ifempty(struct igmp_group *group)
|
||||
static void group_exclude_fwd_anysrc_ifempty(struct gm_group *group)
|
||||
{
|
||||
struct pim_interface *pim_ifp = group->interface->info;
|
||||
|
||||
|
@ -347,7 +346,7 @@ static void source_channel_oil_detach(struct gm_source *source)
|
|||
*/
|
||||
void igmp_source_delete(struct gm_source *source)
|
||||
{
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
struct in_addr src;
|
||||
|
||||
group = source->source_group;
|
||||
|
@ -428,7 +427,7 @@ void igmp_source_delete_expired(struct list *source_list)
|
|||
igmp_source_delete(src);
|
||||
}
|
||||
|
||||
struct gm_source *igmp_find_source_by_addr(struct igmp_group *group,
|
||||
struct gm_source *igmp_find_source_by_addr(struct gm_group *group,
|
||||
struct in_addr src_addr)
|
||||
{
|
||||
struct listnode *src_node;
|
||||
|
@ -441,7 +440,7 @@ struct gm_source *igmp_find_source_by_addr(struct igmp_group *group,
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct gm_source *igmp_get_source_by_addr(struct igmp_group *group,
|
||||
struct gm_source *igmp_get_source_by_addr(struct gm_group *group,
|
||||
struct in_addr src_addr, bool *new)
|
||||
{
|
||||
struct gm_source *src;
|
||||
|
@ -487,7 +486,7 @@ static void allow(struct igmp_sock *igmp, struct in_addr from,
|
|||
struct in_addr *sources)
|
||||
{
|
||||
struct gm_source *source;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
int i;
|
||||
|
||||
if (num_sources == 0) {
|
||||
|
@ -559,7 +558,7 @@ void igmpv3_report_isin(struct igmp_sock *igmp, struct in_addr from,
|
|||
allow(igmp, from, group_addr, num_sources, sources);
|
||||
}
|
||||
|
||||
static void isex_excl(struct igmp_group *group, int num_sources,
|
||||
static void isex_excl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
struct gm_source *source;
|
||||
|
@ -614,7 +613,7 @@ static void isex_excl(struct igmp_group *group, int num_sources,
|
|||
source_delete_by_flag(group->group_source_list);
|
||||
}
|
||||
|
||||
static void isex_incl(struct igmp_group *group, int num_sources,
|
||||
static void isex_incl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int i;
|
||||
|
@ -664,7 +663,7 @@ void igmpv3_report_isex(struct igmp_sock *igmp, struct in_addr from,
|
|||
struct in_addr *sources, int from_igmp_v2_report)
|
||||
{
|
||||
struct interface *ifp = igmp->interface;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
on_trace(__func__, ifp, from, group_addr, num_sources, sources);
|
||||
|
||||
|
@ -696,7 +695,7 @@ void igmpv3_report_isex(struct igmp_sock *igmp, struct in_addr from,
|
|||
igmp_group_reset_gmi(group);
|
||||
}
|
||||
|
||||
static void toin_incl(struct igmp_group *group, int num_sources,
|
||||
static void toin_incl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int num_sources_tosend = listcount(group->group_source_list);
|
||||
|
@ -734,7 +733,7 @@ static void toin_incl(struct igmp_group *group, int num_sources,
|
|||
}
|
||||
}
|
||||
|
||||
static void toin_excl(struct igmp_group *group, int num_sources,
|
||||
static void toin_excl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int num_sources_tosend;
|
||||
|
@ -781,7 +780,7 @@ void igmpv3_report_toin(struct igmp_sock *igmp, struct in_addr from,
|
|||
struct in_addr *sources)
|
||||
{
|
||||
struct interface *ifp = igmp->interface;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
on_trace(__func__, ifp, from, group_addr, num_sources, sources);
|
||||
|
||||
|
@ -812,7 +811,7 @@ void igmpv3_report_toin(struct igmp_sock *igmp, struct in_addr from,
|
|||
}
|
||||
}
|
||||
|
||||
static void toex_incl(struct igmp_group *group, int num_sources,
|
||||
static void toex_incl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int num_sources_tosend = 0;
|
||||
|
@ -861,7 +860,7 @@ static void toex_incl(struct igmp_group *group, int num_sources,
|
|||
group_exclude_fwd_anysrc_ifempty(group);
|
||||
}
|
||||
|
||||
static void toex_excl(struct igmp_group *group, int num_sources,
|
||||
static void toex_excl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int num_sources_tosend = 0;
|
||||
|
@ -942,7 +941,7 @@ void igmpv3_report_toex(struct igmp_sock *igmp, struct in_addr from,
|
|||
struct in_addr *sources)
|
||||
{
|
||||
struct interface *ifp = igmp->interface;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
on_trace(__func__, ifp, from, group_addr, num_sources, sources);
|
||||
|
||||
|
@ -976,7 +975,7 @@ void igmpv3_report_allow(struct igmp_sock *igmp, struct in_addr from,
|
|||
allow(igmp, from, group_addr, num_sources, sources);
|
||||
}
|
||||
|
||||
static void igmp_send_query_group(struct igmp_group *group, char *query_buf,
|
||||
static void igmp_send_query_group(struct gm_group *group, char *query_buf,
|
||||
size_t query_buf_size, int num_sources,
|
||||
int s_flag)
|
||||
{
|
||||
|
@ -1002,7 +1001,7 @@ static void igmp_send_query_group(struct igmp_group *group, char *query_buf,
|
|||
larger than LMQT, the "Suppress Router-Side Processing" bit is set
|
||||
in the query message.
|
||||
*/
|
||||
static void group_retransmit_group(struct igmp_group *group)
|
||||
static void group_retransmit_group(struct gm_group *group)
|
||||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
long lmqc; /* Last Member Query Count */
|
||||
|
@ -1067,7 +1066,7 @@ static void group_retransmit_group(struct igmp_group *group)
|
|||
or equal to LMQT. If either of the two calculated messages does not
|
||||
contain any sources, then its transmission is suppressed.
|
||||
*/
|
||||
static int group_retransmit_sources(struct igmp_group *group,
|
||||
static int group_retransmit_sources(struct gm_group *group,
|
||||
int send_with_sflag_set)
|
||||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
|
@ -1214,7 +1213,7 @@ static int group_retransmit_sources(struct igmp_group *group,
|
|||
|
||||
static int igmp_group_retransmit(struct thread *t)
|
||||
{
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
int num_retransmit_sources_left;
|
||||
int send_with_sflag_set; /* boolean */
|
||||
|
||||
|
@ -1271,7 +1270,7 @@ static int igmp_group_retransmit(struct thread *t)
|
|||
if group retransmit timer isn't running, starts it;
|
||||
otherwise, do nothing
|
||||
*/
|
||||
static void group_retransmit_timer_on(struct igmp_group *group)
|
||||
static void group_retransmit_timer_on(struct gm_group *group)
|
||||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
long lmqi_msec; /* Last Member Query Interval */
|
||||
|
@ -1300,7 +1299,7 @@ static void group_retransmit_timer_on(struct igmp_group *group)
|
|||
&group->t_group_query_retransmit_timer);
|
||||
}
|
||||
|
||||
static long igmp_group_timer_remain_msec(struct igmp_group *group)
|
||||
static long igmp_group_timer_remain_msec(struct gm_group *group)
|
||||
{
|
||||
return pim_time_timer_remain_msec(group->t_group_timer);
|
||||
}
|
||||
|
@ -1313,7 +1312,7 @@ static long igmp_source_timer_remain_msec(struct gm_source *source)
|
|||
/*
|
||||
RFC3376: 6.6.3.1. Building and Sending Group Specific Queries
|
||||
*/
|
||||
static void group_query_send(struct igmp_group *group)
|
||||
static void group_query_send(struct gm_group *group)
|
||||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
long lmqc; /* Last Member Query Count */
|
||||
|
@ -1338,7 +1337,7 @@ static void group_query_send(struct igmp_group *group)
|
|||
/*
|
||||
RFC3376: 6.6.3.2. Building and Sending Group and Source Specific Queries
|
||||
*/
|
||||
static void source_query_send_by_flag(struct igmp_group *group,
|
||||
static void source_query_send_by_flag(struct gm_group *group,
|
||||
int num_sources_tosend)
|
||||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
|
@ -1384,7 +1383,7 @@ static void source_query_send_by_flag(struct igmp_group *group,
|
|||
group_retransmit_timer_on(group);
|
||||
}
|
||||
|
||||
static void block_excl(struct igmp_group *group, int num_sources,
|
||||
static void block_excl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int num_sources_tosend = 0;
|
||||
|
@ -1430,7 +1429,7 @@ static void block_excl(struct igmp_group *group, int num_sources,
|
|||
}
|
||||
}
|
||||
|
||||
static void block_incl(struct igmp_group *group, int num_sources,
|
||||
static void block_incl(struct gm_group *group, int num_sources,
|
||||
struct in_addr *sources)
|
||||
{
|
||||
int num_sources_tosend = 0;
|
||||
|
@ -1466,7 +1465,7 @@ void igmpv3_report_block(struct igmp_sock *igmp, struct in_addr from,
|
|||
struct in_addr *sources)
|
||||
{
|
||||
struct interface *ifp = igmp->interface;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
on_trace(__func__, ifp, from, group_addr, num_sources, sources);
|
||||
|
||||
|
@ -1485,7 +1484,7 @@ void igmpv3_report_block(struct igmp_sock *igmp, struct in_addr from,
|
|||
}
|
||||
}
|
||||
|
||||
void igmp_group_timer_lower_to_lmqt(struct igmp_group *group)
|
||||
void igmp_group_timer_lower_to_lmqt(struct gm_group *group)
|
||||
{
|
||||
struct interface *ifp;
|
||||
struct pim_interface *pim_ifp;
|
||||
|
@ -1531,7 +1530,7 @@ void igmp_group_timer_lower_to_lmqt(struct igmp_group *group)
|
|||
|
||||
void igmp_source_timer_lower_to_lmqt(struct gm_source *source)
|
||||
{
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
struct interface *ifp;
|
||||
struct pim_interface *pim_ifp;
|
||||
char *ifname;
|
||||
|
@ -1565,7 +1564,7 @@ void igmp_source_timer_lower_to_lmqt(struct gm_source *source)
|
|||
igmp_source_timer_on(group, source, lmqt_msec);
|
||||
}
|
||||
|
||||
void igmp_v3_send_query(struct igmp_group *group, int fd, const char *ifname,
|
||||
void igmp_v3_send_query(struct gm_group *group, int fd, const char *ifname,
|
||||
char *query_buf, int query_buf_size, int num_sources,
|
||||
struct in_addr dst_addr, struct in_addr group_addr,
|
||||
int query_max_response_time_dsec, uint8_t s_flag,
|
||||
|
@ -1769,7 +1768,7 @@ void igmp_v3_recv_query(struct igmp_sock *igmp, const char *from_str,
|
|||
"General IGMP query v3 from %s on %s: Suppress Router-Side Processing flag is clear",
|
||||
from_str, ifp->name);
|
||||
} else {
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
|
||||
/* this is a non-general query: perform timer updates */
|
||||
|
||||
|
|
|
@ -53,9 +53,8 @@
|
|||
/* OHPI: Older Host Present Interval */
|
||||
#define PIM_IGMP_OHPI_DSEC(qrv,qqi,qri_dsec) ((qrv) * (10 * (qqi)) + (qri_dsec))
|
||||
|
||||
void igmp_group_reset_gmi(struct igmp_group *group);
|
||||
void igmp_source_reset_gmi(struct igmp_group *group,
|
||||
struct gm_source *source);
|
||||
void igmp_group_reset_gmi(struct gm_group *group);
|
||||
void igmp_source_reset_gmi(struct gm_group *group, struct gm_source *source);
|
||||
|
||||
void igmp_source_free(struct gm_source *source);
|
||||
void igmp_source_delete(struct gm_source *source);
|
||||
|
@ -80,13 +79,13 @@ void igmpv3_report_block(struct igmp_sock *igmp, struct in_addr from,
|
|||
struct in_addr group_addr, int num_sources,
|
||||
struct in_addr *sources);
|
||||
|
||||
void igmp_group_timer_lower_to_lmqt(struct igmp_group *group);
|
||||
void igmp_group_timer_lower_to_lmqt(struct gm_group *group);
|
||||
void igmp_source_timer_lower_to_lmqt(struct gm_source *source);
|
||||
|
||||
struct gm_source *igmp_find_source_by_addr(struct igmp_group *group,
|
||||
struct gm_source *igmp_find_source_by_addr(struct gm_group *group,
|
||||
struct in_addr src_addr);
|
||||
|
||||
void igmp_v3_send_query(struct igmp_group *group, int fd, const char *ifname,
|
||||
void igmp_v3_send_query(struct gm_group *group, int fd, const char *ifname,
|
||||
char *query_buf, int query_buf_size, int num_sources,
|
||||
struct in_addr dst_addr, struct in_addr group_addr,
|
||||
int query_max_response_time_dsec, uint8_t s_flag,
|
||||
|
|
|
@ -62,7 +62,7 @@ static void pim_if_membership_refresh(struct interface *ifp)
|
|||
{
|
||||
struct pim_interface *pim_ifp;
|
||||
struct listnode *grpnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
|
||||
pim_ifp = ifp->info;
|
||||
|
@ -444,7 +444,7 @@ static void change_query_max_response_time(struct pim_interface *pim_ifp,
|
|||
struct listnode *sock_node;
|
||||
struct igmp_sock *igmp;
|
||||
struct listnode *grp_node;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
|
||||
if (pim_ifp->query_max_response_time_dsec
|
||||
== query_max_response_time_dsec)
|
||||
|
|
|
@ -472,7 +472,7 @@ void pim_zebra_init(void)
|
|||
}
|
||||
|
||||
void igmp_anysource_forward_start(struct pim_instance *pim,
|
||||
struct igmp_group *group)
|
||||
struct gm_group *group)
|
||||
{
|
||||
struct gm_source *source;
|
||||
struct in_addr src_addr = {.s_addr = 0};
|
||||
|
@ -489,7 +489,7 @@ void igmp_anysource_forward_start(struct pim_instance *pim,
|
|||
igmp_source_forward_start(pim, source);
|
||||
}
|
||||
|
||||
void igmp_anysource_forward_stop(struct igmp_group *group)
|
||||
void igmp_anysource_forward_stop(struct gm_group *group)
|
||||
{
|
||||
struct gm_source *source;
|
||||
struct in_addr star = {.s_addr = 0};
|
||||
|
@ -503,7 +503,7 @@ static void igmp_source_forward_reevaluate_one(struct pim_instance *pim,
|
|||
struct gm_source *source)
|
||||
{
|
||||
struct prefix_sg sg;
|
||||
struct igmp_group *group = source->source_group;
|
||||
struct gm_group *group = source->source_group;
|
||||
struct pim_ifchannel *ch;
|
||||
|
||||
if ((source->source_addr.s_addr != INADDR_ANY)
|
||||
|
@ -547,7 +547,7 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim)
|
|||
FOR_ALL_INTERFACES (pim->vrf, ifp) {
|
||||
struct pim_interface *pim_ifp = ifp->info;
|
||||
struct listnode *grpnode;
|
||||
struct igmp_group *grp;
|
||||
struct gm_group *grp;
|
||||
struct pim_ifchannel *ch, *ch_temp;
|
||||
|
||||
if (!pim_ifp)
|
||||
|
@ -579,7 +579,7 @@ void igmp_source_forward_start(struct pim_instance *pim,
|
|||
struct gm_source *source)
|
||||
{
|
||||
struct pim_interface *pim_oif;
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
struct prefix_sg sg;
|
||||
int result;
|
||||
int input_iface_vif_index = 0;
|
||||
|
@ -759,7 +759,7 @@ void igmp_source_forward_start(struct pim_instance *pim,
|
|||
*/
|
||||
void igmp_source_forward_stop(struct gm_source *source)
|
||||
{
|
||||
struct igmp_group *group;
|
||||
struct gm_group *group;
|
||||
struct prefix_sg sg;
|
||||
int result;
|
||||
|
||||
|
|
|
@ -33,8 +33,8 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index);
|
|||
void pim_scan_oil(struct pim_instance *pim_matcher);
|
||||
|
||||
void igmp_anysource_forward_start(struct pim_instance *pim,
|
||||
struct igmp_group *group);
|
||||
void igmp_anysource_forward_stop(struct igmp_group *group);
|
||||
struct gm_group *group);
|
||||
void igmp_anysource_forward_stop(struct gm_group *group);
|
||||
|
||||
void igmp_source_forward_start(struct pim_instance *pim,
|
||||
struct gm_source *source);
|
||||
|
|
Loading…
Reference in a new issue