diff options
author | David Lamparter <equinox@opensourcerouting.org> | 2022-04-04 14:00:59 +0200 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2022-04-04 14:11:29 +0200 |
commit | b6fcc0b7a65a3e5bff771b0579d4b7eb2997709c (patch) | |
tree | 8e455b59c8e80eee58b63654aa406131ebd5ec71 | |
parent | Merge pull request #10831 from anlancs/doc-mh-esi-type0 (diff) | |
download | frr-b6fcc0b7a65a3e5bff771b0579d4b7eb2997709c.tar.xz frr-b6fcc0b7a65a3e5bff771b0579d4b7eb2997709c.zip |
pimd: remove useless PIM_IF_* macros
The only function these macros have is to make the code confusing.
"PIM_IF_DO_PIM" sounds like it triggers some action, but it doesn't.
Replace with "bool" fields in struct pim_interface.
(Note: PIM_IF_*_IGMP_LISTEN_ALLROUTERS was always set, without any way
to unset it. It is completely removed now and always enabled.)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
-rw-r--r-- | pimd/pim_iface.c | 20 | ||||
-rw-r--r-- | pimd/pim_iface.h | 28 | ||||
-rw-r--r-- | pimd/pim_ifchannel.c | 4 | ||||
-rw-r--r-- | pimd/pim_igmp.c | 19 | ||||
-rw-r--r-- | pimd/pim_nb_config.c | 25 | ||||
-rw-r--r-- | pimd/pim_pim.c | 12 | ||||
-rw-r--r-- | pimd/pim_vty.c | 4 | ||||
-rw-r--r-- | pimd/pim_vxlan.c | 6 |
8 files changed, 44 insertions, 74 deletions
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c index 4470d0566..a644d9cfe 100644 --- a/pimd/pim_iface.c +++ b/pimd/pim_iface.c @@ -150,13 +150,9 @@ struct pim_interface *pim_if_new(struct interface *ifp, bool igmp, bool pim, assert(pim_ifp->gm_query_max_response_time_dsec < pim_ifp->gm_default_query_interval); - if (pim) - PIM_IF_DO_PIM(pim_ifp->options); + pim_ifp->pim_enable = pim; #if PIM_IPV == 4 - if (igmp) - PIM_IF_DO_IGMP(pim_ifp->options); - - PIM_IF_DO_IGMP_LISTEN_ALLROUTERS(pim_ifp->options); + pim_ifp->igmp_enable = igmp; #endif pim_ifp->gm_join_list = NULL; @@ -317,7 +313,7 @@ static int detect_primary_address_change(struct interface *ifp, if (changed) { /* Before updating pim_ifp send Hello time with 0 hold time */ - if (PIM_IF_TEST_PIM(pim_ifp->options)) { + if (pim_ifp->pim_enable) { pim_hello_send(ifp, 0 /* zero-sec holdtime */); } pim_ifp->primary_address = new_prim_addr; @@ -462,7 +458,7 @@ static void detect_address_change(struct interface *ifp, int force_prim_as_any, if (changed) { - if (!PIM_IF_TEST_PIM(pim_ifp->options)) { + if (!pim_ifp->pim_enable) { return; } @@ -543,7 +539,7 @@ void pim_if_addr_add(struct connected *ifc) #if PIM_IPV == 4 struct in_addr ifaddr = ifc->address->u.prefix4; - if (PIM_IF_TEST_IGMP(pim_ifp->options)) { + if (pim_ifp->igmp_enable) { struct gm_sock *igmp; /* lookup IGMP socket */ @@ -610,7 +606,7 @@ void pim_if_addr_add(struct connected *ifc) } /* igmp mtrace only */ #endif - if (PIM_IF_TEST_PIM(pim_ifp->options)) { + if (pim_ifp->pim_enable) { if (!pim_addr_is_any(pim_ifp->primary_address)) { @@ -802,7 +798,7 @@ void pim_if_addr_add_all(struct interface *ifp) } if (!v4_addrs && v6_addrs && !if_is_loopback(ifp)) { - if (PIM_IF_TEST_PIM(pim_ifp->options)) { + if (pim_ifp->pim_enable) { /* Interface has a valid primary address ? */ if (!pim_addr_is_any(pim_ifp->primary_address)) { @@ -1211,7 +1207,7 @@ long pim_if_t_suppressed_msec(struct interface *ifp) assert(pim_ifp); /* join suppression disabled ? */ - if (PIM_IF_TEST_PIM_CAN_DISABLE_JOIN_SUPPRESSION(pim_ifp->options)) + if (pim_ifp->pim_can_disable_join_suppression) return 0; /* t_suppressed = t_periodic * rand(1.1, 1.4) */ diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h index bab73eae8..b0f7e52ac 100644 --- a/pimd/pim_iface.h +++ b/pimd/pim_iface.h @@ -34,31 +34,8 @@ #include "bfd.h" #include "pim_str.h" -#define PIM_IF_MASK_PIM (1 << 0) -#define PIM_IF_MASK_IGMP (1 << 1) -#define PIM_IF_MASK_IGMP_LISTEN_ALLROUTERS (1 << 2) -#define PIM_IF_MASK_PIM_CAN_DISABLE_JOIN_SUPPRESSION (1 << 3) - #define PIM_IF_IS_DELETED(ifp) ((ifp)->ifindex == IFINDEX_INTERNAL) -#define PIM_IF_TEST_PIM(options) (PIM_IF_MASK_PIM & (options)) -#define PIM_IF_TEST_IGMP(options) (PIM_IF_MASK_IGMP & (options)) -#define PIM_IF_TEST_IGMP_LISTEN_ALLROUTERS(options) (PIM_IF_MASK_IGMP_LISTEN_ALLROUTERS & (options)) -#define PIM_IF_TEST_PIM_CAN_DISABLE_JOIN_SUPPRESSION(options) \ - (PIM_IF_MASK_PIM_CAN_DISABLE_JOIN_SUPPRESSION & (options)) - -#define PIM_IF_DO_PIM(options) ((options) |= PIM_IF_MASK_PIM) -#define PIM_IF_DO_IGMP(options) ((options) |= PIM_IF_MASK_IGMP) -#define PIM_IF_DO_IGMP_LISTEN_ALLROUTERS(options) ((options) |= PIM_IF_MASK_IGMP_LISTEN_ALLROUTERS) -#define PIM_IF_DO_PIM_CAN_DISABLE_JOIN_SUPPRESSION(options) \ - ((options) |= PIM_IF_MASK_PIM_CAN_DISABLE_JOIN_SUPPRESSION) - -#define PIM_IF_DONT_PIM(options) ((options) &= ~PIM_IF_MASK_PIM) -#define PIM_IF_DONT_IGMP(options) ((options) &= ~PIM_IF_MASK_IGMP) -#define PIM_IF_DONT_IGMP_LISTEN_ALLROUTERS(options) ((options) &= ~PIM_IF_MASK_IGMP_LISTEN_ALLROUTERS) -#define PIM_IF_DONT_PIM_CAN_DISABLE_JOIN_SUPPRESSION(options) \ - ((options) &= ~PIM_IF_MASK_PIM_CAN_DISABLE_JOIN_SUPPRESSION) - #define PIM_I_am_DR(pim_ifp) \ !pim_addr_cmp((pim_ifp)->pim_dr_addr, (pim_ifp)->primary_address) #define PIM_I_am_DualActive(pim_ifp) (pim_ifp)->activeactive == true @@ -93,6 +70,11 @@ struct pim_secondary_addr { }; struct pim_interface { + bool pim_enable : 1; + bool pim_can_disable_join_suppression : 1; + + bool igmp_enable : 1; + uint32_t options; /* bit vector */ ifindex_t mroute_vif_index; struct pim_instance *pim; diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index f9fb8cf09..54cd824f9 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -1155,7 +1155,7 @@ int pim_ifchannel_local_membership_add(struct interface *ifp, pim_sgaddr *sg, return 0; } - if (!PIM_IF_TEST_PIM(pim_ifp->options)) { + if (!pim_ifp->pim_enable) { if (PIM_DEBUG_EVENTS) zlog_debug("%s:%pSG PIM is not configured on this interface %s", __func__, sg, ifp->name); @@ -1249,7 +1249,7 @@ void pim_ifchannel_local_membership_del(struct interface *ifp, pim_sgaddr *sg) pim_ifp = ifp->info; if (!pim_ifp) return; - if (!PIM_IF_TEST_PIM(pim_ifp->options)) + if (!pim_ifp->pim_enable) return; orig = ch = pim_ifchannel_find(ifp, sg); diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c index 13c51b937..6dea9f38f 100644 --- a/pimd/pim_igmp.c +++ b/pimd/pim_igmp.c @@ -255,17 +255,14 @@ static int igmp_sock_open(struct in_addr ifaddr, struct interface *ifp, if (fd < 0) return -1; - if (PIM_IF_TEST_IGMP_LISTEN_ALLROUTERS(pim_options)) { - if (inet_aton(PIM_ALL_ROUTERS, &group)) { - if (!pim_socket_join(fd, group, ifaddr, ifp->ifindex, - pim_ifp)) - ++join; - } else { - zlog_warn( - "%s %s: IGMP socket fd=%d interface %pI4: could not solve %s to group address: errno=%d: %s", - __FILE__, __func__, fd, &ifaddr, - PIM_ALL_ROUTERS, errno, safe_strerror(errno)); - } + if (inet_aton(PIM_ALL_ROUTERS, &group)) { + if (!pim_socket_join(fd, group, ifaddr, ifp->ifindex, pim_ifp)) + ++join; + } else { + zlog_warn( + "%s %s: IGMP socket fd=%d interface %pI4: could not solve %s to group address: errno=%d: %s", + __FILE__, __func__, fd, &ifaddr, PIM_ALL_ROUTERS, errno, + safe_strerror(errno)); } /* diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index 7fe7c0395..0f59f1d61 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -63,8 +63,7 @@ static void pim_if_membership_clear(struct interface *ifp) pim_ifp = ifp->info; assert(pim_ifp); - if (PIM_IF_TEST_PIM(pim_ifp->options) - && PIM_IF_TEST_IGMP(pim_ifp->options)) { + if (pim_ifp->pim_enable && pim_ifp->igmp_enable) { return; } @@ -90,9 +89,9 @@ static void pim_if_membership_refresh(struct interface *ifp) pim_ifp = ifp->info; assert(pim_ifp); - if (!PIM_IF_TEST_PIM(pim_ifp->options)) + if (!pim_ifp->pim_enable) return; - if (!PIM_IF_TEST_IGMP(pim_ifp->options)) + if (!pim_ifp->igmp_enable) return; /* @@ -143,7 +142,7 @@ static int pim_cmd_interface_add(struct interface *ifp) if (!pim_ifp) pim_ifp = pim_if_new(ifp, false, true, false, false); else - PIM_IF_DO_PIM(pim_ifp->options); + pim_ifp->pim_enable = true; pim_if_addr_add_all(ifp); pim_if_membership_refresh(ifp); @@ -159,7 +158,7 @@ static int pim_cmd_interface_delete(struct interface *ifp) if (!pim_ifp) return 1; - PIM_IF_DONT_PIM(pim_ifp->options); + pim_ifp->pim_enable = false; pim_if_membership_clear(ifp); @@ -169,7 +168,7 @@ static int pim_cmd_interface_delete(struct interface *ifp) */ pim_sock_delete(ifp, "pim unconfigured on interface"); - if (!PIM_IF_TEST_IGMP(pim_ifp->options)) { + if (!pim_ifp->igmp_enable) { pim_if_addr_del_all(ifp); pim_if_delete(ifp); } @@ -360,8 +359,8 @@ static int pim_cmd_igmp_start(struct interface *ifp) pim_ifp = pim_if_new(ifp, true, false, false, false); need_startup = 1; } else { - if (!PIM_IF_TEST_IGMP(pim_ifp->options)) { - PIM_IF_DO_IGMP(pim_ifp->options); + if (!pim_ifp->igmp_enable) { + pim_ifp->igmp_enable = true; need_startup = 1; } } @@ -2537,13 +2536,13 @@ int lib_interface_gmp_address_family_destroy(struct nb_cb_destroy_args *args) if (!pim_ifp) return NB_OK; - PIM_IF_DONT_IGMP(pim_ifp->options); + pim_ifp->igmp_enable = false; pim_if_membership_clear(ifp); pim_if_addr_del_all_igmp(ifp); - if (!PIM_IF_TEST_PIM(pim_ifp->options)) + if (!pim_ifp->pim_enable) pim_if_delete(ifp); } @@ -2594,13 +2593,13 @@ int lib_interface_gmp_address_family_enable_modify( if (!pim_ifp) return NB_ERR_INCONSISTENCY; - PIM_IF_DONT_IGMP(pim_ifp->options); + pim_ifp->igmp_enable = false; pim_if_membership_clear(ifp); pim_if_addr_del_all_igmp(ifp); - if (!PIM_IF_TEST_PIM(pim_ifp->options)) + if (!pim_ifp->pim_enable) pim_if_delete(ifp); } } diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c index 50bbc0fe1..1baa5c38c 100644 --- a/pimd/pim_pim.c +++ b/pimd/pim_pim.c @@ -526,11 +526,8 @@ void pim_sock_reset(struct interface *ifp) PIM_DEFAULT_PROPAGATION_DELAY_MSEC; pim_ifp->pim_override_interval_msec = PIM_DEFAULT_OVERRIDE_INTERVAL_MSEC; - if (PIM_DEFAULT_CAN_DISABLE_JOIN_SUPPRESSION) { - PIM_IF_DO_PIM_CAN_DISABLE_JOIN_SUPPRESSION(pim_ifp->options); - } else { - PIM_IF_DONT_PIM_CAN_DISABLE_JOIN_SUPPRESSION(pim_ifp->options); - } + pim_ifp->pim_can_disable_join_suppression = + PIM_DEFAULT_CAN_DISABLE_JOIN_SUPPRESSION; /* neighbors without lan_delay */ pim_ifp->pim_number_of_nonlandelay_neighbors = 0; @@ -702,8 +699,7 @@ static int hello_send(struct interface *ifp, uint16_t holdtime) __func__, &qpim_all_pim_routers_addr, ifp->name, holdtime, pim_ifp->pim_propagation_delay_msec, pim_ifp->pim_override_interval_msec, - PIM_IF_TEST_PIM_CAN_DISABLE_JOIN_SUPPRESSION( - pim_ifp->options), + pim_ifp->pim_can_disable_join_suppression, pim_ifp->pim_dr_priority, pim_ifp->pim_generation_id, listcount(ifp->connected)); @@ -713,7 +709,7 @@ static int hello_send(struct interface *ifp, uint16_t holdtime) pim_ifp->pim_dr_priority, pim_ifp->pim_generation_id, pim_ifp->pim_propagation_delay_msec, pim_ifp->pim_override_interval_msec, - PIM_IF_TEST_PIM_CAN_DISABLE_JOIN_SUPPRESSION(pim_ifp->options)); + pim_ifp->pim_can_disable_join_suppression); if (pim_tlv_size < 0) { return -1; } diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c index a0dea63b7..b360181f4 100644 --- a/pimd/pim_vty.c +++ b/pimd/pim_vty.c @@ -289,7 +289,7 @@ static int pim_igmp_config_write(struct vty *vty, int writes, struct pim_interface *pim_ifp) { /* IF ip igmp */ - if (PIM_IF_TEST_IGMP(pim_ifp->options)) { + if (pim_ifp->igmp_enable) { vty_out(vty, " ip igmp\n"); ++writes; } @@ -361,7 +361,7 @@ int pim_config_write(struct vty *vty, int writes, struct interface *ifp, { struct pim_interface *pim_ifp = ifp->info; - if (PIM_IF_TEST_PIM(pim_ifp->options)) { + if (pim_ifp->pim_enable) { vty_out(vty, " " PIM_AF_NAME " pim\n"); ++writes; } diff --git a/pimd/pim_vxlan.c b/pimd/pim_vxlan.c index 5e55b9f9c..93fdb13a3 100644 --- a/pimd/pim_vxlan.c +++ b/pimd/pim_vxlan.c @@ -1137,7 +1137,7 @@ void pim_vxlan_add_term_dev(struct pim_instance *pim, /* enable pim on the term ifp */ pim_ifp = (struct pim_interface *)ifp->info; if (pim_ifp) { - PIM_IF_DO_PIM(pim_ifp->options); + pim_ifp->pim_enable = true; /* ifp is already oper up; activate it as a term dev */ if (pim_ifp->mroute_vif_index >= 0) pim_vxlan_term_oif_update(pim, ifp); @@ -1165,8 +1165,8 @@ void pim_vxlan_del_term_dev(struct pim_instance *pim) pim_ifp = (struct pim_interface *)ifp->info; if (pim_ifp) { - PIM_IF_DONT_PIM(pim_ifp->options); - if (!PIM_IF_TEST_IGMP(pim_ifp->options)) + pim_ifp->pim_enable = false; + if (!pim_ifp->igmp_enable) pim_if_delete(ifp); } } |