diff options
| -rw-r--r-- | configure.ac | 3 | ||||
| -rw-r--r-- | doc/user/pathd.rst | 2 | ||||
| -rw-r--r-- | pimd/pim_cmd.c | 24 | ||||
| -rw-r--r-- | pimd/pim_iface.c | 34 | ||||
| -rw-r--r-- | pimd/pim_igmp.c | 99 | ||||
| -rw-r--r-- | pimd/pim_igmp.h | 61 | ||||
| -rw-r--r-- | pimd/pim_igmp_mtrace.c | 4 | ||||
| -rw-r--r-- | pimd/pim_igmp_mtrace.h | 4 | ||||
| -rw-r--r-- | pimd/pim_igmpv2.c | 6 | ||||
| -rw-r--r-- | pimd/pim_igmpv2.h | 6 | ||||
| -rw-r--r-- | pimd/pim_igmpv3.c | 169 | ||||
| -rw-r--r-- | pimd/pim_igmpv3.h | 35 | ||||
| -rw-r--r-- | pimd/pim_mroute.c | 2 | ||||
| -rw-r--r-- | pimd/pim_nb_config.c | 16 | ||||
| -rw-r--r-- | pimd/pim_vty.c | 2 | ||||
| -rw-r--r-- | pimd/pim_zebra.c | 24 | ||||
| -rw-r--r-- | pimd/pim_zebra.h | 8 | ||||
| -rw-r--r-- | vtysh/vtysh.c | 8 |
18 files changed, 246 insertions, 261 deletions
diff --git a/configure.ac b/configure.ac index c153e4c261..1bcc42ef8f 100644 --- a/configure.ac +++ b/configure.ac @@ -693,8 +693,6 @@ AC_ARG_ENABLE([pcreposix], AS_HELP_STRING([--enable-pcreposix], [enable using PCRE Posix libs for regex functions])) AC_ARG_ENABLE([fpm], AS_HELP_STRING([--enable-fpm], [enable Forwarding Plane Manager support])) -AC_ARG_ENABLE([pcep], - AS_HELP_STRING([--enable-pcep], [enable PCEP support for pathd])) AC_ARG_ENABLE([werror], AS_HELP_STRING([--enable-werror], [enable -Werror (recommended for developers only)])) AC_ARG_ENABLE([cumulus], @@ -1747,7 +1745,6 @@ fi AS_IF([test "$enable_pathd" != "no"], [ AC_DEFINE([HAVE_PATHD], [1], [pathd]) - AC_DEFINE([HAVE_PATHD_PCEP], [1], [pathd-pcep]) ]) diff --git a/doc/user/pathd.rst b/doc/user/pathd.rst index 8773f81ca6..f0b76f10b7 100644 --- a/doc/user/pathd.rst +++ b/doc/user/pathd.rst @@ -87,7 +87,7 @@ configuration provided to corresponding MPLS labels. running and configure to export TED information. .. note:: - It would be the same for isis (:ref:`traffic-engineering`) but in the + It would be the same for isis (:ref:`isis-traffic-engineering`) but in the moment of writting it's not fully tested. Dynamic Segment Lists diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 501d69dbf5..86a09f72f9 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -501,7 +501,7 @@ static void igmp_show_interfaces(struct pim_instance *pim, struct vty *vty, FOR_ALL_INTERFACES (pim->vrf, ifp) { struct pim_interface *pim_ifp; struct listnode *sock_node; - struct igmp_sock *igmp; + struct gm_sock *igmp; pim_ifp = ifp->info; @@ -575,7 +575,7 @@ static void igmp_show_interfaces_single(struct pim_instance *pim, struct vty *vty, const char *ifname, bool uj) { - struct igmp_sock *igmp; + struct gm_sock *igmp; struct interface *ifp; struct listnode *sock_node; struct pim_interface *pim_ifp; @@ -824,7 +824,7 @@ static void igmp_show_interface_join(struct pim_instance *pim, struct vty *vty, FOR_ALL_INTERFACES (pim->vrf, ifp) { struct pim_interface *pim_ifp; struct listnode *join_node; - struct igmp_join *ij; + struct gm_join *ij; struct in_addr pri_addr; char pri_addr_str[INET_ADDRSTRLEN]; @@ -1330,7 +1330,7 @@ static void igmp_show_statistics(struct pim_instance *pim, struct vty *vty, FOR_ALL_INTERFACES (pim->vrf, ifp) { struct pim_interface *pim_ifp; struct listnode *sock_node; - struct igmp_sock *igmp; + struct gm_sock *igmp; pim_ifp = ifp->info; @@ -3423,7 +3423,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; @@ -3517,7 +3517,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; @@ -3528,7 +3528,7 @@ static void igmp_show_group_retransmission(struct pim_instance *pim, char group_str[INET_ADDRSTRLEN]; char grp_retr_mmss[10]; struct listnode *src_node; - struct igmp_source *src; + struct gm_source *src; int grp_retr_sources = 0; pim_inet4_dump("<group?>", grp->group_addr, group_str, @@ -3570,7 +3570,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; @@ -3580,7 +3580,7 @@ static void igmp_show_sources(struct pim_instance *pim, struct vty *vty) grp)) { char group_str[INET_ADDRSTRLEN]; struct listnode *srcnode; - struct igmp_source *src; + struct gm_source *src; pim_inet4_dump("<group?>", grp->group_addr, group_str, sizeof(group_str)); @@ -3626,7 +3626,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; @@ -3636,7 +3636,7 @@ static void igmp_show_source_retransmission(struct pim_instance *pim, grp)) { char group_str[INET_ADDRSTRLEN]; struct listnode *srcnode; - struct igmp_source *src; + struct gm_source *src; pim_inet4_dump("<group?>", grp->group_addr, group_str, sizeof(group_str)); @@ -3908,7 +3908,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) diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 8c03475ae5..5afd5cd2fe 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -160,7 +160,7 @@ struct pim_interface *pim_if_new(struct interface *ifp, bool igmp, bool pim, pim_ifp->upstream_switch_list = NULL; pim_ifp->pim_generation_id = 0; - /* list of struct igmp_sock */ + /* list of struct gm_sock */ pim_igmp_if_init(pim_ifp, ifp); /* list of struct pim_neighbor */ @@ -532,7 +532,7 @@ void pim_if_addr_add(struct connected *ifc) // return; if (PIM_IF_TEST_IGMP(pim_ifp->options)) { - struct igmp_sock *igmp; + struct gm_sock *igmp; /* lookup IGMP socket */ igmp = pim_igmp_sock_lookup_ifaddr(pim_ifp->igmp_socket_list, @@ -552,7 +552,7 @@ void pim_if_addr_add(struct connected *ifc) if (pim_ifp->igmp_join_list) { struct listnode *node; struct listnode *nextnode; - struct igmp_join *ij; + struct gm_join *ij; int join_fd; for (ALL_LIST_ELEMENTS(pim_ifp->igmp_join_list, node, @@ -583,7 +583,7 @@ void pim_if_addr_add(struct connected *ifc) } } /* igmp */ else { - struct igmp_sock *igmp; + struct gm_sock *igmp; /* lookup IGMP socket */ igmp = pim_igmp_sock_lookup_ifaddr(pim_ifp->igmp_socket_list, @@ -648,7 +648,7 @@ void pim_if_addr_add(struct connected *ifc) static void pim_if_addr_del_igmp(struct connected *ifc) { struct pim_interface *pim_ifp = ifc->ifp->info; - struct igmp_sock *igmp; + struct gm_sock *igmp; struct in_addr ifaddr; if (ifc->address->family != AF_INET) { @@ -1159,17 +1159,17 @@ long pim_if_t_suppressed_msec(struct interface *ifp) return t_suppressed_msec; } -static void igmp_join_free(struct igmp_join *ij) +static void igmp_join_free(struct gm_join *ij) { XFREE(MTYPE_PIM_IGMP_JOIN, ij); } -static struct igmp_join *igmp_join_find(struct list *join_list, - struct in_addr group_addr, - struct in_addr source_addr) +static struct gm_join *igmp_join_find(struct list *join_list, + struct in_addr group_addr, + struct in_addr source_addr) { struct listnode *node; - struct igmp_join *ij; + struct gm_join *ij; assert(join_list); @@ -1211,12 +1211,12 @@ static int igmp_join_sock(const char *ifname, ifindex_t ifindex, return join_fd; } -static struct igmp_join *igmp_join_new(struct interface *ifp, - struct in_addr group_addr, - struct in_addr source_addr) +static struct gm_join *igmp_join_new(struct interface *ifp, + struct in_addr group_addr, + struct in_addr source_addr) { struct pim_interface *pim_ifp; - struct igmp_join *ij; + struct gm_join *ij; int join_fd; pim_ifp = ifp->info; @@ -1254,7 +1254,7 @@ ferr_r pim_if_igmp_join_add(struct interface *ifp, struct in_addr group_addr, struct in_addr source_addr) { struct pim_interface *pim_ifp; - struct igmp_join *ij; + struct gm_join *ij; pim_ifp = ifp->info; if (!pim_ifp) { @@ -1297,7 +1297,7 @@ int pim_if_igmp_join_del(struct interface *ifp, struct in_addr group_addr, struct in_addr source_addr) { struct pim_interface *pim_ifp; - struct igmp_join *ij; + struct gm_join *ij; pim_ifp = ifp->info; if (!pim_ifp) { @@ -1354,7 +1354,7 @@ static void pim_if_igmp_join_del_all(struct interface *ifp) struct pim_interface *pim_ifp; struct listnode *node; struct listnode *nextnode; - struct igmp_join *ij; + struct gm_join *ij; pim_ifp = ifp->info; if (!pim_ifp) { diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c index df773f38d0..49ec804df5 100644 --- a/pimd/pim_igmp.c +++ b/pimd/pim_igmp.c @@ -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 @@ -115,7 +115,7 @@ static void igmp_sock_dump(array_t *igmp_sock_array) int size = array_size(igmp_sock_array); for (int i = 0; i < size; ++i) { - struct igmp_sock *igmp = array_get(igmp_sock_array, i); + struct gm_sock *igmp = array_get(igmp_sock_array, i); zlog_debug("%s %s: [%d/%d] igmp_addr=%pI4 fd=%d", __FILE__, __func__, i, size, &igmp->ifaddr, @@ -124,11 +124,11 @@ static void igmp_sock_dump(array_t *igmp_sock_array) } #endif -struct igmp_sock *pim_igmp_sock_lookup_ifaddr(struct list *igmp_sock_list, - struct in_addr ifaddr) +struct gm_sock *pim_igmp_sock_lookup_ifaddr(struct list *igmp_sock_list, + struct in_addr ifaddr) { struct listnode *sock_node; - struct igmp_sock *igmp; + struct gm_sock *igmp; #ifdef IGMP_SOCK_DUMP igmp_sock_dump(igmp_sock_list); @@ -143,7 +143,7 @@ struct igmp_sock *pim_igmp_sock_lookup_ifaddr(struct list *igmp_sock_list, static int pim_igmp_other_querier_expire(struct thread *t) { - struct igmp_sock *igmp; + struct gm_sock *igmp; igmp = THREAD_ARG(t); @@ -170,7 +170,7 @@ static int pim_igmp_other_querier_expire(struct thread *t) return 0; } -void pim_igmp_other_querier_timer_on(struct igmp_sock *igmp) +void pim_igmp_other_querier_timer_on(struct gm_sock *igmp) { long other_querier_present_interval_msec; struct pim_interface *pim_ifp; @@ -243,7 +243,7 @@ void pim_igmp_other_querier_timer_on(struct igmp_sock *igmp) &igmp->t_other_querier_timer); } -void pim_igmp_other_querier_timer_off(struct igmp_sock *igmp) +void pim_igmp_other_querier_timer_off(struct gm_sock *igmp) { assert(igmp); @@ -281,7 +281,7 @@ int igmp_validate_checksum(char *igmp_msg, int igmp_msg_len) return 0; } -static int igmp_recv_query(struct igmp_sock *igmp, int query_version, +static int igmp_recv_query(struct gm_sock *igmp, int query_version, int max_resp_code, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len) @@ -411,12 +411,12 @@ static void on_trace(const char *label, struct interface *ifp, } } -static int igmp_v1_recv_report(struct igmp_sock *igmp, struct in_addr from, +static int igmp_v1_recv_report(struct gm_sock *igmp, struct in_addr from, const char *from_str, char *igmp_msg, 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); @@ -518,7 +518,7 @@ bool pim_igmp_verify_header(struct ip *ip_hdr, size_t len, size_t *hlen) return true; } -int pim_igmp_packet(struct igmp_sock *igmp, char *buf, size_t len) +int pim_igmp_packet(struct gm_sock *igmp, char *buf, size_t len) { struct ip *ip_hdr = (struct ip *)buf; size_t ip_hlen; /* ip header length in bytes */ @@ -607,7 +607,7 @@ int pim_igmp_packet(struct igmp_sock *igmp, char *buf, size_t len) return -1; } -void pim_igmp_general_query_on(struct igmp_sock *igmp) +void pim_igmp_general_query_on(struct gm_sock *igmp) { struct pim_interface *pim_ifp; int startup_mode; @@ -663,7 +663,7 @@ void pim_igmp_general_query_on(struct igmp_sock *igmp) query_interval, &igmp->t_igmp_query_timer); } -void pim_igmp_general_query_off(struct igmp_sock *igmp) +void pim_igmp_general_query_off(struct gm_sock *igmp) { assert(igmp); @@ -683,7 +683,7 @@ void pim_igmp_general_query_off(struct igmp_sock *igmp) /* Issue IGMP general query */ static int pim_igmp_general_query(struct thread *t) { - struct igmp_sock *igmp; + struct gm_sock *igmp; struct in_addr dst_addr; struct in_addr group_addr; struct pim_interface *pim_ifp; @@ -739,7 +739,7 @@ static int pim_igmp_general_query(struct thread *t) return 0; } -static void sock_close(struct igmp_sock *igmp) +static void sock_close(struct gm_sock *igmp) { pim_igmp_other_querier_timer_off(igmp); pim_igmp_general_query_off(igmp); @@ -769,7 +769,7 @@ static void sock_close(struct igmp_sock *igmp) } } -void igmp_startup_mode_on(struct igmp_sock *igmp) +void igmp_startup_mode_on(struct gm_sock *igmp) { struct pim_interface *pim_ifp; @@ -790,7 +790,7 @@ void igmp_startup_mode_on(struct igmp_sock *igmp) igmp->querier_query_interval = pim_ifp->igmp_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); @@ -820,11 +820,11 @@ 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; - struct igmp_source *src; + struct gm_source *src; struct pim_interface *pim_ifp = group->interface->info; if (PIM_DEBUG_IGMP_TRACE) { @@ -850,7 +850,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)); @@ -858,7 +858,7 @@ void igmp_group_delete_empty_include(struct igmp_group *group) igmp_group_delete(group); } -void igmp_sock_free(struct igmp_sock *igmp) +void igmp_sock_free(struct gm_sock *igmp) { assert(!igmp->t_igmp_read); assert(!igmp->t_igmp_query_timer); @@ -867,7 +867,7 @@ void igmp_sock_free(struct igmp_sock *igmp) XFREE(MTYPE_PIM_IGMP_SOCKET, igmp); } -void igmp_sock_delete(struct igmp_sock *igmp) +void igmp_sock_delete(struct gm_sock *igmp) { struct pim_interface *pim_ifp; @@ -887,7 +887,7 @@ void igmp_sock_delete_all(struct interface *ifp) { struct pim_interface *pim_ifp; struct listnode *igmp_node, *igmp_nextnode; - struct igmp_sock *igmp; + struct gm_sock *igmp; pim_ifp = ifp->info; @@ -899,15 +899,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; @@ -933,7 +933,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->igmp_group_list, grp_node, grp_nextnode, grp)) { @@ -954,11 +954,11 @@ void pim_igmp_if_fini(struct pim_interface *pim_ifp) list_delete(&pim_ifp->igmp_socket_list); } -static struct igmp_sock *igmp_sock_new(int fd, struct in_addr ifaddr, - struct interface *ifp, int mtrace_only) +static struct gm_sock *igmp_sock_new(int fd, struct in_addr ifaddr, + struct interface *ifp, int mtrace_only) { struct pim_interface *pim_ifp; - struct igmp_sock *igmp; + struct gm_sock *igmp; pim_ifp = ifp->info; @@ -1001,12 +1001,12 @@ static struct igmp_sock *igmp_sock_new(int fd, struct in_addr ifaddr, return igmp; } -static void igmp_read_on(struct igmp_sock *igmp); +static void igmp_read_on(struct gm_sock *igmp); static int pim_igmp_read(struct thread *t) { uint8_t buf[10000]; - struct igmp_sock *igmp = (struct igmp_sock *)THREAD_ARG(t); + struct gm_sock *igmp = (struct gm_sock *)THREAD_ARG(t); struct sockaddr_in from; struct sockaddr_in to; socklen_t fromlen = sizeof(from); @@ -1032,7 +1032,7 @@ done: return 0; } -static void igmp_read_on(struct igmp_sock *igmp) +static void igmp_read_on(struct gm_sock *igmp) { if (PIM_DEBUG_IGMP_TRACE_DETAIL) { @@ -1043,13 +1043,12 @@ static void igmp_read_on(struct igmp_sock *igmp) &igmp->t_igmp_read); } -struct igmp_sock *pim_igmp_sock_add(struct list *igmp_sock_list, - struct in_addr ifaddr, - struct interface *ifp, - bool mtrace_only) +struct gm_sock *pim_igmp_sock_add(struct list *igmp_sock_list, + struct in_addr ifaddr, struct interface *ifp, + bool mtrace_only) { struct pim_interface *pim_ifp; - struct igmp_sock *igmp; + struct gm_sock *igmp; struct sockaddr_in sin; int fd; @@ -1102,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); @@ -1138,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; @@ -1153,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); @@ -1181,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 in_addr group_addr) +struct gm_group *find_group_by_addr(struct gm_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; @@ -1192,10 +1191,10 @@ struct igmp_group *find_group_by_addr(struct igmp_sock *igmp, return hash_lookup(pim_ifp->igmp_group_hash, &lookup); } -struct igmp_group *igmp_add_group_by_addr(struct igmp_sock *igmp, - struct in_addr group_addr) +struct gm_group *igmp_add_group_by_addr(struct gm_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); @@ -1277,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, @@ -1301,7 +1300,7 @@ void igmp_send_query_on_intf(struct interface *ifp, int igmp_ver) { struct pim_interface *pim_ifp = ifp->info; struct listnode *sock_node = NULL; - struct igmp_sock *igmp = NULL; + struct gm_sock *igmp = NULL; struct in_addr dst_addr; struct in_addr group_addr; int query_buf_size; diff --git a/pimd/pim_igmp.h b/pimd/pim_igmp.h index 1d514086f6..0a7e0605a5 100644 --- a/pimd/pim_igmp.h +++ b/pimd/pim_igmp.h @@ -75,14 +75,14 @@ output |= *((ptr) + 1); \ } while (0) -struct igmp_join { +struct gm_join { struct in_addr group_addr; struct in_addr source_addr; int sock_fd; time_t sock_creation; }; -struct igmp_sock { +struct gm_sock { int fd; struct interface *interface; struct in_addr ifaddr; @@ -108,21 +108,20 @@ void pim_igmp_if_init(struct pim_interface *pim_ifp, struct interface *ifp); void pim_igmp_if_reset(struct pim_interface *pim_ifp); void pim_igmp_if_fini(struct pim_interface *pim_ifp); -struct igmp_sock *pim_igmp_sock_lookup_ifaddr(struct list *igmp_sock_list, - struct in_addr ifaddr); -struct igmp_sock *pim_igmp_sock_add(struct list *igmp_sock_list, - struct in_addr ifaddr, - struct interface *ifp, - bool mtrace_only); -void igmp_sock_delete(struct igmp_sock *igmp); -void igmp_sock_free(struct igmp_sock *igmp); +struct gm_sock *pim_igmp_sock_lookup_ifaddr(struct list *igmp_sock_list, + struct in_addr ifaddr); +struct gm_sock *pim_igmp_sock_add(struct list *igmp_sock_list, + struct in_addr ifaddr, struct interface *ifp, + bool mtrace_only); +void igmp_sock_delete(struct gm_sock *igmp); +void igmp_sock_free(struct gm_sock *igmp); void igmp_sock_delete_all(struct interface *ifp); -int pim_igmp_packet(struct igmp_sock *igmp, char *buf, size_t len); +int pim_igmp_packet(struct gm_sock *igmp, char *buf, size_t len); bool pim_igmp_verify_header(struct ip *ip_hdr, size_t len, size_t *ip_hlen); -void pim_igmp_general_query_on(struct igmp_sock *igmp); -void pim_igmp_general_query_off(struct igmp_sock *igmp); -void pim_igmp_other_querier_timer_on(struct igmp_sock *igmp); -void pim_igmp_other_querier_timer_off(struct igmp_sock *igmp); +void pim_igmp_general_query_on(struct gm_sock *igmp); +void pim_igmp_general_query_off(struct gm_sock *igmp); +void pim_igmp_other_querier_timer_on(struct gm_sock *igmp); +void pim_igmp_other_querier_timer_off(struct gm_sock *igmp); int igmp_validate_checksum(char *igmp_msg, int igmp_msg_len); @@ -139,10 +138,10 @@ int igmp_validate_checksum(char *igmp_msg, int igmp_msg_len); #define IGMP_SOURCE_DONT_DELETE(flags) ((flags) &= ~IGMP_SOURCE_MASK_DELETE) #define IGMP_SOURCE_DONT_SEND(flags) ((flags) &= ~IGMP_SOURCE_MASK_SEND) -struct igmp_source { +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 +153,7 @@ struct igmp_source { int source_query_retransmit_count; }; -struct igmp_group { +struct gm_group { /* RFC 3376: 6.2.2. Definition of Group Timers @@ -178,37 +177,37 @@ struct igmp_group { struct in_addr group_addr; int group_filtermode_isexcl; /* 0=INCLUDE, 1=EXCLUDE */ - struct list *group_source_list; /* list of struct igmp_source */ + struct list *group_source_list; /* list of struct gm_source */ time_t group_creation; struct interface *interface; int64_t last_igmp_v1_report_dsec; int64_t last_igmp_v2_report_dsec; }; -struct igmp_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 in_addr group_addr); +struct gm_group *find_group_by_addr(struct gm_sock *igmp, + struct in_addr group_addr); +struct gm_group *igmp_add_group_by_addr(struct gm_sock *igmp, + struct in_addr group_addr); -struct igmp_source *igmp_get_source_by_addr(struct igmp_group *group, - struct in_addr src_addr, - bool *created); +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_startup_mode_on(struct gm_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 */ diff --git a/pimd/pim_igmp_mtrace.c b/pimd/pim_igmp_mtrace.c index 42101bc48e..65a8ca4e40 100644 --- a/pimd/pim_igmp_mtrace.c +++ b/pimd/pim_igmp_mtrace.c @@ -564,7 +564,7 @@ static int mtrace_send_response(struct pim_instance *pim, mtracep->rsp_addr, mtracep->grp_addr); } -int igmp_mtrace_recv_qry_req(struct igmp_sock *igmp, struct ip *ip_hdr, +int igmp_mtrace_recv_qry_req(struct gm_sock *igmp, struct ip *ip_hdr, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len) { @@ -799,7 +799,7 @@ int igmp_mtrace_recv_qry_req(struct igmp_sock *igmp, struct ip *ip_hdr, } /* 6.3. Traceroute responses */ -int igmp_mtrace_recv_response(struct igmp_sock *igmp, struct ip *ip_hdr, +int igmp_mtrace_recv_response(struct gm_sock *igmp, struct ip *ip_hdr, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len) { diff --git a/pimd/pim_igmp_mtrace.h b/pimd/pim_igmp_mtrace.h index 4ab562ed97..760b2e417b 100644 --- a/pimd/pim_igmp_mtrace.h +++ b/pimd/pim_igmp_mtrace.h @@ -94,11 +94,11 @@ struct igmp_mtrace { #define MTRACE_HDR_SIZE (sizeof(struct igmp_mtrace)) #define MTRACE_RSP_SIZE (sizeof(struct igmp_mtrace_rsp)) -int igmp_mtrace_recv_qry_req(struct igmp_sock *igmp, struct ip *ip_hdr, +int igmp_mtrace_recv_qry_req(struct gm_sock *igmp, struct ip *ip_hdr, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len); -int igmp_mtrace_recv_response(struct igmp_sock *igmp, struct ip *ip_hdr, +int igmp_mtrace_recv_response(struct gm_sock *igmp, struct ip *ip_hdr, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len); diff --git a/pimd/pim_igmpv2.c b/pimd/pim_igmpv2.c index 6eadf87c83..2616afca69 100644 --- a/pimd/pim_igmpv2.c +++ b/pimd/pim_igmpv2.c @@ -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) @@ -102,7 +102,7 @@ void igmp_v2_send_query(struct igmp_group *group, int fd, const char *ifname, } } -int igmp_v2_recv_report(struct igmp_sock *igmp, struct in_addr from, +int igmp_v2_recv_report(struct gm_sock *igmp, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len) { struct interface *ifp = igmp->interface; @@ -158,7 +158,7 @@ int igmp_v2_recv_report(struct igmp_sock *igmp, struct in_addr from, return 0; } -int igmp_v2_recv_leave(struct igmp_sock *igmp, struct ip *ip_hdr, +int igmp_v2_recv_leave(struct gm_sock *igmp, struct ip *ip_hdr, const char *from_str, char *igmp_msg, int igmp_msg_len) { struct interface *ifp = igmp->interface; diff --git a/pimd/pim_igmpv2.h b/pimd/pim_igmpv2.h index 29591ff16c..4e6dc6995c 100644 --- a/pimd/pim_igmpv2.h +++ b/pimd/pim_igmpv2.h @@ -21,15 +21,15 @@ #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); -int igmp_v2_recv_report(struct igmp_sock *igmp, struct in_addr from, +int igmp_v2_recv_report(struct gm_sock *igmp, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len); -int igmp_v2_recv_leave(struct igmp_sock *igmp, struct ip *ip_hdr, +int igmp_v2_recv_leave(struct gm_sock *igmp, struct ip *ip_hdr, const char *from_str, char *igmp_msg, int igmp_msg_len); #endif /* PIM_IGMPV2_H */ diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c index 13db11fa80..614213bfa5 100644 --- a/pimd/pim_igmpv3.c +++ b/pimd/pim_igmpv3.c @@ -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 long igmp_source_timer_remain_msec(struct igmp_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_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 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,10 +57,10 @@ 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; + struct gm_sock *igmp; struct listnode *sock_node; long qrv = 0, qqi = 0; @@ -73,7 +73,7 @@ static inline long igmp_gmi_msec(struct igmp_group *group) pim_ifp->igmp_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; @@ -120,8 +120,8 @@ void igmp_group_reset_gmi(struct igmp_group *group) static int igmp_source_timer(struct thread *t) { - struct igmp_source *source; - struct igmp_group *group; + struct gm_source *source; + 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 igmp_source *source) +static void source_timer_off(struct gm_group *group, struct gm_source *source) { if (!source->t_source_timer) return; @@ -204,8 +203,8 @@ 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, - struct igmp_source *source, long interval_msec) +static void igmp_source_timer_on(struct gm_group *group, + struct gm_source *source, long interval_msec) { source_timer_off(group, source); struct pim_interface *pim_ifp = group->interface->info; @@ -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 igmp_source *source) +void igmp_source_reset_gmi(struct gm_group *group, struct gm_source *source) { long group_membership_interval_msec; struct interface *ifp; @@ -262,30 +261,30 @@ void igmp_source_reset_gmi(struct igmp_group *group, struct igmp_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 igmp_source *src; + struct gm_source *src; for (ALL_LIST_ELEMENTS_RO(group->group_source_list, src_node, src)) { IGMP_SOURCE_DO_DELETE(src->source_flags); } } -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 igmp_source *src; + struct gm_source *src; for (ALL_LIST_ELEMENTS_RO(group->group_source_list, src_node, src)) { IGMP_SOURCE_DO_SEND(src->source_flags); } } -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 igmp_source *src; + struct gm_source *src; int num_marked_sources = 0; for (ALL_LIST_ELEMENTS_RO(group->group_source_list, src_node, src)) { @@ -304,7 +303,7 @@ static int source_mark_send_flag_by_timer(struct igmp_group *group) static void source_clear_send_flag(struct list *source_list) { struct listnode *src_node; - struct igmp_source *src; + struct gm_source *src; for (ALL_LIST_ELEMENTS_RO(source_list, src_node, src)) { IGMP_SOURCE_DONT_SEND(src->source_flags); @@ -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; @@ -325,7 +324,7 @@ static void group_exclude_fwd_anysrc_ifempty(struct igmp_group *group) } } -void igmp_source_free(struct igmp_source *source) +void igmp_source_free(struct gm_source *source) { /* make sure there is no source timer running */ assert(!source->t_source_timer); @@ -333,7 +332,7 @@ void igmp_source_free(struct igmp_source *source) XFREE(MTYPE_PIM_IGMP_GROUP_SOURCE, source); } -static void source_channel_oil_detach(struct igmp_source *source) +static void source_channel_oil_detach(struct gm_source *source) { if (source->source_channel_oil) { pim_channel_oil_del(source->source_channel_oil, __func__); @@ -345,9 +344,9 @@ static void source_channel_oil_detach(struct igmp_source *source) igmp_source_delete: stop fowarding, and delete the source igmp_source_forward_stop: stop fowarding, but keep the source */ -void igmp_source_delete(struct igmp_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; @@ -410,7 +409,7 @@ static void source_delete_by_flag(struct list *source_list) { struct listnode *src_node; struct listnode *src_nextnode; - struct igmp_source *src; + struct gm_source *src; for (ALL_LIST_ELEMENTS(source_list, src_node, src_nextnode, src)) if (IGMP_SOURCE_TEST_DELETE(src->source_flags)) @@ -421,18 +420,18 @@ void igmp_source_delete_expired(struct list *source_list) { struct listnode *src_node; struct listnode *src_nextnode; - struct igmp_source *src; + struct gm_source *src; for (ALL_LIST_ELEMENTS(source_list, src_node, src_nextnode, src)) if (!src->t_source_timer) igmp_source_delete(src); } -struct igmp_source *igmp_find_source_by_addr(struct igmp_group *group, - struct in_addr src_addr) +struct gm_source *igmp_find_source_by_addr(struct gm_group *group, + struct in_addr src_addr) { struct listnode *src_node; - struct igmp_source *src; + struct gm_source *src; for (ALL_LIST_ELEMENTS_RO(group->group_source_list, src_node, src)) if (src_addr.s_addr == src->source_addr.s_addr) @@ -441,10 +440,10 @@ struct igmp_source *igmp_find_source_by_addr(struct igmp_group *group, return 0; } -struct igmp_source *igmp_get_source_by_addr(struct igmp_group *group, - struct in_addr src_addr, bool *new) +struct gm_source *igmp_get_source_by_addr(struct gm_group *group, + struct in_addr src_addr, bool *new) { - struct igmp_source *src; + struct gm_source *src; if (new) *new = false; @@ -482,12 +481,12 @@ struct igmp_source *igmp_get_source_by_addr(struct igmp_group *group, return src; } -static void allow(struct igmp_sock *igmp, struct in_addr from, +static void allow(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources) { - struct igmp_source *source; - struct igmp_group *group; + struct gm_source *source; + struct gm_group *group; int i; if (num_sources == 0) { @@ -549,7 +548,7 @@ static void allow(struct igmp_sock *igmp, struct in_addr from, } /* scan received sources */ } -void igmpv3_report_isin(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_isin(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources) { @@ -559,10 +558,10 @@ 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 igmp_source *source; + struct gm_source *source; int i; /* EXCLUDE mode */ @@ -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; @@ -627,7 +626,7 @@ static void isex_incl(struct igmp_group *group, int num_sources, /* scan received sources (B) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; bool new; @@ -659,12 +658,12 @@ static void isex_incl(struct igmp_group *group, int num_sources, group_exclude_fwd_anysrc_ifempty(group); } -void igmpv3_report_isex(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_isex(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, 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); @@ -707,7 +706,7 @@ static void toin_incl(struct igmp_group *group, int num_sources, /* Scan received sources (B) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; bool new; @@ -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; @@ -745,7 +744,7 @@ static void toin_excl(struct igmp_group *group, int num_sources, /* Scan received sources (A) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; bool new; @@ -776,12 +775,12 @@ static void toin_excl(struct igmp_group *group, int num_sources, group_query_send(group); } -void igmpv3_report_toin(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_toin(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, 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; @@ -828,7 +827,7 @@ static void toex_incl(struct igmp_group *group, int num_sources, /* Scan received sources (B) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; bool new; @@ -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; @@ -874,7 +873,7 @@ static void toex_excl(struct igmp_group *group, int num_sources, source_clear_send_flag(group->group_source_list); if (num_sources == 0) { - struct igmp_source *source; + struct gm_source *source; struct in_addr any = {.s_addr = INADDR_ANY}; source = igmp_find_source_by_addr(group, any); @@ -884,7 +883,7 @@ static void toex_excl(struct igmp_group *group, int num_sources, /* scan received sources (A) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; bool new; @@ -937,12 +936,12 @@ static void toex_excl(struct igmp_group *group, int num_sources, } } -void igmpv3_report_toex(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_toex(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, 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); @@ -966,7 +965,7 @@ void igmpv3_report_toex(struct igmp_sock *igmp, struct in_addr from, igmp_group_reset_gmi(group); } -void igmpv3_report_allow(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_allow(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources) { @@ -976,13 +975,13 @@ 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) { struct interface *ifp = group->interface; struct pim_interface *pim_ifp = ifp->info; - struct igmp_sock *igmp; + struct gm_sock *igmp; struct listnode *sock_node; for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_socket_list, sock_node, igmp)) { @@ -1003,7 +1002,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 */ @@ -1068,7 +1067,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; @@ -1084,7 +1083,7 @@ static int group_retransmit_sources(struct igmp_group *group, int num_sources_tosend1; int num_sources_tosend2; struct listnode *src_node; - struct igmp_source *src; + struct gm_source *src; int num_retransmit_sources_left = 0; source_addr1 = (struct in_addr *)(query_buf1 + IGMP_V3_SOURCES_OFFSET); @@ -1215,7 +1214,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 */ @@ -1272,7 +1271,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 */ @@ -1301,12 +1300,12 @@ 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); } -static long igmp_source_timer_remain_msec(struct igmp_source *source) +static long igmp_source_timer_remain_msec(struct gm_source *source) { return pim_time_timer_remain_msec(source->t_source_timer); } @@ -1314,7 +1313,7 @@ static long igmp_source_timer_remain_msec(struct igmp_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 */ @@ -1339,12 +1338,12 @@ 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; struct listnode *src_node; - struct igmp_source *src; + struct gm_source *src; long lmqc; /* Last Member Query Count */ long lmqi_msec; /* Last Member Query Interval */ long lmqt_msec; /* Last Member Query Time */ @@ -1385,7 +1384,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; @@ -1396,7 +1395,7 @@ static void block_excl(struct igmp_group *group, int num_sources, /* 2. scan received sources (A) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; bool new; @@ -1431,7 +1430,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; @@ -1442,7 +1441,7 @@ static void block_incl(struct igmp_group *group, int num_sources, /* 2. scan received sources (A) */ for (i = 0; i < num_sources; ++i) { - struct igmp_source *source; + struct gm_source *source; struct in_addr *src_addr; src_addr = sources + i; @@ -1462,12 +1461,12 @@ static void block_incl(struct igmp_group *group, int num_sources, } } -void igmpv3_report_block(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_block(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, 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); @@ -1486,7 +1485,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; @@ -1530,9 +1529,9 @@ void igmp_group_timer_lower_to_lmqt(struct igmp_group *group) igmp_group_timer_on(group, lmqt_msec, ifname); } -void igmp_source_timer_lower_to_lmqt(struct igmp_source *source) +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; @@ -1566,7 +1565,7 @@ void igmp_source_timer_lower_to_lmqt(struct igmp_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, @@ -1691,7 +1690,7 @@ void igmp_v3_send_query(struct igmp_group *group, int fd, const char *ifname, } } -void igmp_v3_recv_query(struct igmp_sock *igmp, const char *from_str, +void igmp_v3_recv_query(struct gm_sock *igmp, const char *from_str, char *igmp_msg) { struct interface *ifp; @@ -1770,7 +1769,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 */ @@ -1804,7 +1803,7 @@ void igmp_v3_recv_query(struct igmp_sock *igmp, const char *from_str, + IGMP_V3_SOURCES_OFFSET); for (i = 0; i < recv_num_sources; ++i) { struct in_addr src_addr; - struct igmp_source *src; + struct gm_source *src; memcpy(&src_addr, sources + i, sizeof(struct in_addr)); src = igmp_find_source_by_addr( @@ -1827,7 +1826,7 @@ void igmp_v3_recv_query(struct igmp_sock *igmp, const char *from_str, } /* s_flag is clear: timer updates */ } -int igmp_v3_recv_report(struct igmp_sock *igmp, struct in_addr from, +int igmp_v3_recv_report(struct gm_sock *igmp, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len) { int num_groups; diff --git a/pimd/pim_igmpv3.h b/pimd/pim_igmpv3.h index 273f944b3c..7449e420e4 100644 --- a/pimd/pim_igmpv3.h +++ b/pimd/pim_igmpv3.h @@ -53,50 +53,49 @@ /* 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 igmp_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 igmp_source *source); -void igmp_source_delete(struct igmp_source *source); +void igmp_source_free(struct gm_source *source); +void igmp_source_delete(struct gm_source *source); void igmp_source_delete_expired(struct list *source_list); -void igmpv3_report_isin(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_isin(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources); -void igmpv3_report_isex(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_isex(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources, int from_igmp_v2_report); -void igmpv3_report_toin(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_toin(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources); -void igmpv3_report_toex(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_toex(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources); -void igmpv3_report_allow(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_allow(struct gm_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources); -void igmpv3_report_block(struct igmp_sock *igmp, struct in_addr from, +void igmpv3_report_block(struct gm_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_source_timer_lower_to_lmqt(struct igmp_source *source); +void igmp_group_timer_lower_to_lmqt(struct gm_group *group); +void igmp_source_timer_lower_to_lmqt(struct gm_source *source); -struct igmp_source *igmp_find_source_by_addr(struct igmp_group *group, - struct in_addr src_addr); +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, uint8_t querier_robustness_variable, uint16_t querier_query_interval); -void igmp_v3_recv_query(struct igmp_sock *igmp, const char *from_str, +void igmp_v3_recv_query(struct gm_sock *igmp, const char *from_str, char *igmp_msg); -int igmp_v3_recv_report(struct igmp_sock *igmp, struct in_addr from, +int igmp_v3_recv_report(struct gm_sock *igmp, struct in_addr from, const char *from_str, char *igmp_msg, int igmp_msg_len); #endif /* PIM_IGMPV3_H */ diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index 7743bcc510..ad21178849 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -593,7 +593,7 @@ static int pim_mroute_msg(struct pim_instance *pim, const char *buf, const struct ip *ip_hdr; const struct igmpmsg *msg; struct in_addr ifaddr; - struct igmp_sock *igmp; + struct gm_sock *igmp; const struct prefix *connected_src; if (buf_size < (int)sizeof(struct ip)) diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index 445c265e2c..9b79646daf 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -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; @@ -88,7 +88,7 @@ static void pim_if_membership_refresh(struct interface *ifp) /* scan igmp groups */ for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grpnode, grp)) { struct listnode *srcnode; - struct igmp_source *src; + struct gm_source *src; /* scan group sources */ for (ALL_LIST_ELEMENTS_RO(grp->group_source_list, srcnode, @@ -365,7 +365,7 @@ static int pim_cmd_igmp_start(struct interface *ifp) * This function propagates the reconfiguration to every active socket * for that interface. */ -static void igmp_sock_query_interval_reconfig(struct igmp_sock *igmp) +static void igmp_sock_query_interval_reconfig(struct gm_sock *igmp) { struct interface *ifp; struct pim_interface *pim_ifp; @@ -395,7 +395,7 @@ static void igmp_sock_query_interval_reconfig(struct igmp_sock *igmp) igmp_startup_mode_on(igmp); } -static void igmp_sock_query_reschedule(struct igmp_sock *igmp) +static void igmp_sock_query_reschedule(struct gm_sock *igmp) { if (igmp->mtrace_only) return; @@ -428,7 +428,7 @@ static void change_query_interval(struct pim_interface *pim_ifp, int query_interval) { struct listnode *sock_node; - struct igmp_sock *igmp; + struct gm_sock *igmp; pim_ifp->igmp_default_query_interval = query_interval; @@ -442,9 +442,9 @@ static void change_query_max_response_time(struct pim_interface *pim_ifp, int query_max_response_time_dsec) { struct listnode *sock_node; - struct igmp_sock *igmp; + struct gm_sock *igmp; struct listnode *grp_node; - struct igmp_group *grp; + struct gm_group *grp; if (pim_ifp->igmp_query_max_response_time_dsec == query_max_response_time_dsec) @@ -468,7 +468,7 @@ static void change_query_max_response_time(struct pim_interface *pim_ifp, /* scan socket groups */ for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grp_node, grp)) { struct listnode *src_node; - struct igmp_source *src; + struct gm_source *src; /* reset group timers for groups in EXCLUDE mode */ if (grp->group_filtermode_isexcl) diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c index e4dec9ee8e..5c6d32714f 100644 --- a/pimd/pim_vty.c +++ b/pimd/pim_vty.c @@ -404,7 +404,7 @@ int pim_interface_config_write(struct vty *vty) /* IF ip igmp join */ if (pim_ifp->igmp_join_list) { struct listnode *node; - struct igmp_join *ij; + struct gm_join *ij; for (ALL_LIST_ELEMENTS_RO( pim_ifp->igmp_join_list, node, ij)) { diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index 3a08c6aee5..5708c35751 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -472,9 +472,9 @@ void pim_zebra_init(void) } void igmp_anysource_forward_start(struct pim_instance *pim, - struct igmp_group *group) + struct gm_group *group) { - struct igmp_source *source; + struct gm_source *source; struct in_addr src_addr = {.s_addr = 0}; /* Any source (*,G) is forwarded only if mode is EXCLUDE {empty} */ assert(group->group_filtermode_isexcl); @@ -489,9 +489,9 @@ 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 igmp_source *source; + struct gm_source *source; struct in_addr star = {.s_addr = 0}; source = igmp_find_source_by_addr(group, star); @@ -500,10 +500,10 @@ void igmp_anysource_forward_stop(struct igmp_group *group) } static void igmp_source_forward_reevaluate_one(struct pim_instance *pim, - struct igmp_source *source) + 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) @@ -557,7 +557,7 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim) for (ALL_LIST_ELEMENTS_RO(pim_ifp->igmp_group_list, grpnode, grp)) { struct listnode *srcnode; - struct igmp_source *src; + struct gm_source *src; /* scan group sources */ for (ALL_LIST_ELEMENTS_RO(grp->group_source_list, @@ -577,10 +577,10 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim) } void igmp_source_forward_start(struct pim_instance *pim, - struct igmp_source *source) + 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; @@ -758,9 +758,9 @@ void igmp_source_forward_start(struct pim_instance *pim, igmp_source_forward_stop: stop fowarding, but keep the source igmp_source_delete: stop fowarding, and delete the source */ -void igmp_source_forward_stop(struct igmp_source *source) +void igmp_source_forward_stop(struct gm_source *source) { - struct igmp_group *group; + struct gm_group *group; struct prefix_sg sg; int result; diff --git a/pimd/pim_zebra.h b/pimd/pim_zebra.h index 349903cc67..8656d7563d 100644 --- a/pimd/pim_zebra.h +++ b/pimd/pim_zebra.h @@ -33,12 +33,12 @@ 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 igmp_source *source); -void igmp_source_forward_stop(struct igmp_source *source); + struct gm_source *source); +void igmp_source_forward_stop(struct gm_source *source); void igmp_source_forward_reevaluate_all(struct pim_instance *pim); void pim_forward_start(struct pim_ifchannel *ch); diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index b9577ccd8c..c56b72fcbb 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -1184,7 +1184,6 @@ static struct cmd_node srte_candidate_dyn_node = { .prompt = "%s(config-sr-te-candidate)# ", }; -#if defined(HAVE_PATHD_PCEP) static struct cmd_node pcep_node = { .name = "srte pcep", .node = PCEP_NODE, @@ -1212,7 +1211,6 @@ static struct cmd_node pcep_pce_config_node = { .parent_node = PCEP_NODE, .prompt = "%s(pcep-sr-te-pcep-pce-config)# ", }; -#endif /* HAVE_PATHD_PCEP */ #endif /* HAVE_PATHD */ static struct cmd_node vrf_node = { @@ -2105,8 +2103,6 @@ DEFUNSH(VTYSH_PATHD, srte_policy_candidate_dyn_path, return CMD_SUCCESS; } -#if defined(HAVE_PATHD_PCEP) - DEFUNSH(VTYSH_PATHD, pcep, pcep_cmd, "pcep", "Configure SR pcep\n") @@ -2141,8 +2137,6 @@ DEFUNSH(VTYSH_PATHD, pcep_cli_pcep_pce_config, pcep_cli_pcep_pce_config_cmd, return CMD_SUCCESS; } -#endif /* HAVE_PATHD_PCEP */ - #endif /* HAVE_PATHD */ DEFUNSH(VTYSH_RMAP, vtysh_route_map, vtysh_route_map_cmd, @@ -4317,7 +4311,6 @@ void vtysh_init_vty(void) install_element(SR_TRAFFIC_ENG_NODE, &srte_policy_cmd); install_element(SR_POLICY_NODE, &srte_policy_candidate_dyn_path_cmd); -#if defined(HAVE_PATHD_PCEP) install_node(&pcep_node); install_node(&pcep_pcc_node); install_node(&pcep_pce_node); @@ -4341,7 +4334,6 @@ void vtysh_init_vty(void) install_element(PCEP_NODE, &pcep_cli_pcc_cmd); install_element(PCEP_NODE, &pcep_cli_pcep_pce_config_cmd); install_element(PCEP_NODE, &pcep_cli_pce_cmd); -#endif /* HAVE_PATHD_PCEP */ #endif /* HAVE_PATHD */ |
