]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_ptm_redistribute.c
zebra: dup addr detect clear cmd non-zero return
[mirror_frr.git] / zebra / zebra_ptm_redistribute.c
index 8fddd400cc04ef89826d42e82692ed79f1158cd8..420105198b89634a4913fc7c145e15b525aeb727 100644 (file)
@@ -23,6 +23,8 @@
 #include "vty.h"
 #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"
 
@@ -38,8 +40,7 @@ static int zsend_interface_bfd_update(int cmd, struct zserv *client,
        if (!client->ifinfo)
                return 0;
 
-       s = client->obuf;
-       stream_reset(s);
+       s = stream_new(ZEBRA_MAX_PACKET_SIZ);
 
        zclient_create_header(s, cmd, vrf_id);
        if (ifp)
@@ -66,7 +67,7 @@ static int zsend_interface_bfd_update(int cmd, struct zserv *client,
        stream_putw_at(s, 0, stream_get_endp(s));
 
        client->if_bfd_cnt++;
-       return zebra_server_send_message(client);
+       return zserv_send_message(client, s);
 }
 
 void zebra_interface_bfd_update(struct interface *ifp, struct prefix *dp,
@@ -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. */
@@ -93,8 +90,7 @@ static int zsend_bfd_peer_replay(int cmd, struct zserv *client)
 {
        struct stream *s;
 
-       s = client->obuf;
-       stream_reset(s);
+       s = stream_new(ZEBRA_MAX_PACKET_SIZ);
 
        zclient_create_header(s, cmd, VRF_DEFAULT);
 
@@ -102,7 +98,7 @@ static int zsend_bfd_peer_replay(int cmd, struct zserv *client)
        stream_putw_at(s, 0, stream_get_endp(s));
 
        client->bfd_peer_replay_cnt++;
-       return zebra_server_send_message(client);
+       return zserv_send_message(client, s);
 }
 
 void zebra_bfd_peer_replay_req(void)
@@ -111,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. */