nhrpd: implement next hop resolution protocol
This provides DMVPN support and integrates to strongSwan. Please read
README.nhrpd and README.kernel for more details.
diff --git a/lib/log.c b/lib/log.c
index 42b7717..d437066 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -53,6 +53,7 @@
"ISIS",
"PIM",
"MASC",
+ "NHRP",
NULL,
};
@@ -986,6 +987,8 @@
return ZEBRA_ROUTE_BGP;
else if (strncmp (s, "ba", 2) == 0)
return ZEBRA_ROUTE_BABEL;
+ else if (strncmp (s, "n", 1) == 0)
+ return ZEBRA_ROUTE_NHRP;
}
if (afi == AFI_IP6)
{
@@ -1005,6 +1008,8 @@
return ZEBRA_ROUTE_BGP;
else if (strncmp (s, "ba", 2) == 0)
return ZEBRA_ROUTE_BABEL;
+ else if (strncmp (s, "n", 1) == 0)
+ return ZEBRA_ROUTE_NHRP;
}
return -1;
}
diff --git a/lib/log.h b/lib/log.h
index 7aa0896..59968ae 100644
--- a/lib/log.h
+++ b/lib/log.h
@@ -24,6 +24,7 @@
#define _ZEBRA_LOG_H
#include <syslog.h>
+#include <stdio.h>
/* Here is some guidance on logging levels to use:
*
@@ -54,7 +55,8 @@
ZLOG_OSPF6,
ZLOG_ISIS,
ZLOG_PIM,
- ZLOG_MASC
+ ZLOG_MASC,
+ ZLOG_NHRP,
} zlog_proto_t;
/* If maxlvl is set to ZLOG_DISABLED, then no messages will be sent
diff --git a/lib/memtypes.c b/lib/memtypes.c
index 8abe99d..ba2bacf 100644
--- a/lib/memtypes.c
+++ b/lib/memtypes.c
@@ -280,6 +280,19 @@
{ -1, NULL },
};
+struct memory_list memory_list_nhrp[] =
+{
+ { MTYPE_NHRP_IF, "NHRP interface" },
+ { MTYPE_NHRP_VC, "NHRP virtual connection" },
+ { MTYPE_NHRP_PEER, "NHRP peer entry" },
+ { MTYPE_NHRP_CACHE, "NHRP cache entry" },
+ { MTYPE_NHRP_NHS, "NHRP next hop server" },
+ { MTYPE_NHRP_REGISTRATION, "NHRP registration entries" },
+ { MTYPE_NHRP_SHORTCUT, "NHRP shortcut" },
+ { MTYPE_NHRP_ROUTE, "NHRP routing entry" },
+ { -1, NULL }
+};
+
struct memory_list memory_list_vtysh[] =
{
{ MTYPE_VTYSH_CONFIG, "Vtysh configuration", },
@@ -297,5 +310,6 @@
{ memory_list_isis, "ISIS" },
{ memory_list_bgp, "BGP" },
{ memory_list_pim, "PIM" },
+ { memory_list_nhrp, "NHRP" },
{ NULL, NULL},
};
diff --git a/lib/route_types.txt b/lib/route_types.txt
index 1b85607..811d24e 100644
--- a/lib/route_types.txt
+++ b/lib/route_types.txt
@@ -60,6 +60,7 @@
ZEBRA_ROUTE_HSLS, hsls, hslsd, 'H', 0, 0, "HSLS"
ZEBRA_ROUTE_OLSR, olsr, olsrd, 'o', 0, 0, "OLSR"
ZEBRA_ROUTE_BABEL, babel, babeld, 'A', 1, 1, "Babel"
+ZEBRA_ROUTE_NHRP, nhrp, nhrpd, 'N', 1, 1, "NHRP"
## help strings
ZEBRA_ROUTE_SYSTEM, "Reserved route type, for internal use only"
@@ -76,3 +77,4 @@
ZEBRA_ROUTE_HSLS, "Hazy-Sighted Link State Protocol (HSLS)"
ZEBRA_ROUTE_OLSR, "Optimised Link State Routing (OLSR)"
ZEBRA_ROUTE_BABEL, "Babel routing protocol (Babel)"
+ZEBRA_ROUTE_NHRP, "Next Hop Resolution Protocol (NHRP)"