From 4943f243b5cec95fe39374ba2b07f7d6a628a94d Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Thu, 20 Sep 2018 15:09:43 +0200 Subject: [PATCH] zebra_ptm: Introduce IS_BFD_ENABLED_PROTOCOL macro Unify the check if a client supports BFD into one location. Signed-off-by: Christian Franke --- zebra/zebra_ptm.c | 30 +++--------------------------- zebra/zebra_ptm.h | 7 +++++++ zebra/zebra_ptm_redistribute.c | 13 +++---------- 3 files changed, 13 insertions(+), 37 deletions(-) diff --git a/zebra/zebra_ptm.c b/zebra/zebra_ptm.c index b71124161..e4a4adba0 100644 --- a/zebra/zebra_ptm.c +++ b/zebra/zebra_ptm.c @@ -1030,8 +1030,7 @@ int zebra_ptm_bfd_client_deregister(struct zserv *client) char tmp_buf[64]; int data_len = ZEBRA_PTM_SEND_MAX_SOCKBUF; - if (proto != ZEBRA_ROUTE_OSPF && proto != ZEBRA_ROUTE_BGP - && proto != ZEBRA_ROUTE_OSPF6 && proto != ZEBRA_ROUTE_PIM) + if (!IS_BFD_ENABLED_PROTOCOL(proto)) return 0; if (IS_ZEBRA_DEBUG_EVENT) @@ -1310,17 +1309,8 @@ static void zebra_ptm_send_clients(struct stream *msg) /* Send message to all running client daemons. */ for (ALL_LIST_ELEMENTS_RO(zebrad.client_list, node, client)) { - switch (client->proto) { - case ZEBRA_ROUTE_BGP: - case ZEBRA_ROUTE_OSPF: - case ZEBRA_ROUTE_OSPF6: - case ZEBRA_ROUTE_PIM: - break; - - default: - /* NOTHING: skip this daemon. */ + if (!IS_BFD_ENABLED_PROTOCOL(client->proto)) continue; - } zserv_send_message(client, msg); @@ -1341,23 +1331,9 @@ static int _zebra_ptm_bfd_client_deregister(struct zserv *zs) struct stream *msg; struct ptm_process *pp; - /* Filter daemons that must receive this treatment. */ - switch (zs->proto) { - case ZEBRA_ROUTE_BGP: - case ZEBRA_ROUTE_OSPF: - case ZEBRA_ROUTE_OSPF6: - case ZEBRA_ROUTE_PIM: - break; - - case ZEBRA_ROUTE_BFD: - /* Don't try to send BFDd messages to itself. */ + if (!IS_BFD_ENABLED_PROTOCOL(zs->proto)) return 0; - default: - /* Unsupported daemon. */ - return 0; - } - /* Find daemon pid by zebra connection pointer. */ pp = pp_lookup_byzs(zs); if (pp == NULL) { diff --git a/zebra/zebra_ptm.h b/zebra/zebra_ptm.h index ada4f7b4f..c26d87534 100644 --- a/zebra/zebra_ptm.h +++ b/zebra/zebra_ptm.h @@ -59,6 +59,13 @@ struct zebra_ptm_cb { #define ZEBRA_IF_PTM_ENABLE_ON 1 #define ZEBRA_IF_PTM_ENABLE_UNSPEC 2 +#define IS_BFD_ENABLED_PROTOCOL(protocol) ( \ + (protocol) == ZEBRA_ROUTE_BGP || \ + (protocol) == ZEBRA_ROUTE_OSPF || \ + (protocol) == ZEBRA_ROUTE_OSPF6 || \ + (protocol) == ZEBRA_ROUTE_PIM \ +) + void zebra_ptm_init(void); void zebra_ptm_finish(void); int zebra_ptm_connect(struct thread *t); diff --git a/zebra/zebra_ptm_redistribute.c b/zebra/zebra_ptm_redistribute.c index 815f61d15..420105198 100644 --- a/zebra/zebra_ptm_redistribute.c +++ b/zebra/zebra_ptm_redistribute.c @@ -24,6 +24,7 @@ #include "stream.h" #include "zebra/zserv.h" #include "zebra/zapi_msg.h" +#include "zebra/zebra_ptm.h" #include "zebra/zebra_ptm_redistribute.h" #include "zebra/zebra_memory.h" @@ -76,11 +77,7 @@ void zebra_interface_bfd_update(struct interface *ifp, struct prefix *dp, struct zserv *client; for (ALL_LIST_ELEMENTS(zebrad.client_list, node, nnode, client)) { - /* Supporting for OSPF, BGP and PIM */ - if (client->proto != ZEBRA_ROUTE_OSPF - && client->proto != ZEBRA_ROUTE_BGP - && client->proto != ZEBRA_ROUTE_OSPF6 - && client->proto != ZEBRA_ROUTE_PIM) + if (!IS_BFD_ENABLED_PROTOCOL(client->proto)) continue; /* Notify to the protocol daemons. */ @@ -110,11 +107,7 @@ void zebra_bfd_peer_replay_req(void) struct zserv *client; for (ALL_LIST_ELEMENTS(zebrad.client_list, node, nnode, client)) { - /* Supporting for BGP */ - if ((client->proto != ZEBRA_ROUTE_BGP) - && (client->proto != ZEBRA_ROUTE_OSPF) - && (client->proto != ZEBRA_ROUTE_OSPF6) - && (client->proto != ZEBRA_ROUTE_PIM)) + if (!IS_BFD_ENABLED_PROTOCOL(client->proto)) continue; /* Notify to the protocol daemons. */ -- 2.39.2