]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra_ptm: Introduce IS_BFD_ENABLED_PROTOCOL macro
authorChristian Franke <chris@opensourcerouting.org>
Thu, 20 Sep 2018 13:09:43 +0000 (15:09 +0200)
committerChristian Franke <chris@opensourcerouting.org>
Fri, 5 Oct 2018 12:04:15 +0000 (14:04 +0200)
Unify the check if a client supports BFD into one location.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
zebra/zebra_ptm.c
zebra/zebra_ptm.h
zebra/zebra_ptm_redistribute.c

index b711241611fe9b62a758fd1f34a675f7c9a17330..e4a4adba05b19f1e0b97f166d14a4b7104980f8a 100644 (file)
@@ -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) {
index ada4f7b4f7dad4ca62eab4dd0d4ca6a64caf5ed0..c26d87534997118dbfd421aa623d69939d98c754 100644 (file)
@@ -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);
index 815f61d157a083b4dd42789ea1e35053d6125aaf..420105198b89634a4913fc7c145e15b525aeb727 100644 (file)
@@ -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. */