summaryrefslogtreecommitdiff
path: root/ospfd/ospf_api.h
diff options
context:
space:
mode:
authorChristian Hopps <chopps@labn.net>2022-06-01 15:25:35 -0400
committerChristian Hopps <chopps@labn.net>2022-06-02 16:37:16 -0400
commit149491af80ceaeb666a9bf06f97e918a64c46a5c (patch)
treeda50c5f09450c81a31cccd916f179bf07c1848b8 /ospfd/ospf_api.h
parentb538baf352429ef238c7d6c8e23bb643d8e051cd (diff)
ospfd: api: add reachable router notifications
Reachable router information is used by OSPF opaque clients in order to determine if the router advertising the opaque LSA data is reachable (i.e., 2-way conectivity check). Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'ospfd/ospf_api.h')
-rw-r--r--ospfd/ospf_api.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/ospfd/ospf_api.h b/ospfd/ospf_api.h
index c20284aed5..7ff39dc123 100644
--- a/ospfd/ospf_api.h
+++ b/ospfd/ospf_api.h
@@ -26,6 +26,9 @@
#ifndef _OSPF_API_H
#define _OSPF_API_H
+#include <zebra.h>
+#include "ospf_lsa.h"
+
#define OSPF_API_VERSION 1
/* MTYPE definition is not reflected to "memory.h". */
@@ -112,6 +115,7 @@ extern void msg_fifo_free(struct msg_fifo *fifo);
#define MSG_SYNC_LSDB 4
#define MSG_ORIGINATE_REQUEST 5
#define MSG_DELETE_REQUEST 6
+#define MSG_SYNC_REACHABLE 7
/* Messages from OSPF daemon. */
#define MSG_REPLY 10
@@ -122,6 +126,7 @@ extern void msg_fifo_free(struct msg_fifo *fifo);
#define MSG_DEL_IF 15
#define MSG_ISM_CHANGE 16
#define MSG_NSM_CHANGE 17
+#define MSG_REACHABLE_CHANGE 18
struct msg_register_opaque_type {
uint8_t lsatype;
@@ -247,6 +252,12 @@ struct msg_nsm_change {
uint8_t pad[3];
};
+struct msg_reachable_change {
+ uint16_t nadd;
+ uint16_t nremove;
+ struct in_addr router_ids[]; /* add followed by remove */
+};
+
/* We make use of a union to define a structure that covers all
possible API messages. This allows us to find out how much memory
needs to be reserved for the largest API message. */
@@ -265,6 +276,7 @@ struct apimsg {
struct msg_ism_change ism_change;
struct msg_nsm_change nsm_change;
struct msg_lsa_change_notify lsa_change_notify;
+ struct msg_reachable_change reachable_change;
} u;
};
@@ -320,6 +332,10 @@ extern struct msg *new_msg_lsa_change_notify(uint8_t msgtype, uint32_t seqnum,
uint8_t is_self_originated,
struct lsa_header *data);
+extern struct msg *new_msg_reachable_change(uint32_t seqnum, uint16_t nadd,
+ struct in_addr *add,
+ uint16_t nremove,
+ struct in_addr *remove);
/* string printing functions */
extern const char *ospf_api_errname(int errcode);
extern const char *ospf_api_typename(int msgtype);