]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zserv.c
This patch adds support for a new BFD session down message from zebra to
[mirror_frr.git] / zebra / zserv.c
index 059fede6e34a762b9f61284614a0893b765d06e4..56e5b19f12a20c6c0a77f29b1821b2d63063fa10 100644 (file)
@@ -481,6 +481,36 @@ zsend_interface_update (int cmd, struct zserv *client, struct interface *ifp)
   return zebra_server_send_message(client);
 }
 
+int
+zsend_interface_bfd_update (int cmd, struct zserv *client,
+                            struct interface *ifp, struct prefix *p)
+{
+  int blen;
+  struct stream *s;
+
+  /* Check this client need interface information. */
+  if (! client->ifinfo)
+    return 0;
+
+  s = client->obuf;
+  stream_reset (s);
+
+  zserv_create_header (s, cmd);
+  stream_putl (s, ifp->ifindex);
+
+  /* BFD destination prefix information. */
+  stream_putc (s, p->family);
+  blen = prefix_blen (p);
+  stream_put (s, &p->u.prefix, blen);
+  stream_putc (s, p->prefixlen);
+
+  /* Write packet size. */
+  stream_putw_at (s, 0, stream_get_endp (s));
+
+  client->if_bfd_cnt++;
+  return zebra_server_send_message(client);
+}
+
 /*
  * The zebra server sends the clients  a ZEBRA_IPV4_ROUTE_ADD or a
  * ZEBRA_IPV6_ROUTE_ADD via zsend_route_multipath in the following