summaryrefslogtreecommitdiff
path: root/pimd/pim_msdp.h
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_msdp.h')
-rw-r--r--pimd/pim_msdp.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/pimd/pim_msdp.h b/pimd/pim_msdp.h
index a45726cb85..f77b0e1a3a 100644
--- a/pimd/pim_msdp.h
+++ b/pimd/pim_msdp.h
@@ -89,6 +89,11 @@ enum pim_msdp_peer_flags {
PIM_MSDP_PEERF_IN_GROUP = (1 << 2),
};
+enum msdp_auth_type {
+ MSDP_AUTH_NONE = 0,
+ MSDP_AUTH_MD5 = 1,
+};
+
struct pim_msdp_peer {
struct pim_instance *pim;
@@ -98,6 +103,13 @@ struct pim_msdp_peer {
char *mesh_group_name;
char key_str[INET_ADDRSTRLEN];
+ /* Authentication data. */
+ enum msdp_auth_type auth_type;
+ char *auth_key;
+
+ int auth_listen_sock;
+ struct event *auth_listen_ev;
+
/* state */
enum pim_msdp_peer_state state;
enum pim_msdp_peer_flags flags;
@@ -309,6 +321,15 @@ void pim_msdp_peer_del(struct pim_msdp_peer **mp);
void pim_msdp_peer_change_source(struct pim_msdp_peer *mp,
const struct in_addr *addr);
+/**
+ * Restart peer's connection.
+ *
+ * This is used internally in MSDP and should be used by northbound
+ * when wanting to immediately apply connections settings such as
+ * authentication.
+ */
+void pim_msdp_peer_restart(struct pim_msdp_peer *mp);
+
#else /* PIM_IPV == 6 */
static inline void pim_msdp_init(struct pim_instance *pim,
struct event_loop *master)