[packages] quagga: Bump to v0.99.21
git-svn-id: svn+ssh://svn.openwrt.org/openwrt@31987 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
254d19107a
commit
9a58bece62
11 changed files with 151 additions and 926 deletions
6
Makefile
6
Makefile
|
@ -8,9 +8,9 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=quagga
|
PKG_NAME:=quagga
|
||||||
PKG_VERSION:=0.99.20
|
PKG_VERSION:=0.99.21
|
||||||
PKG_RELEASE:=4
|
PKG_RELEASE:=1
|
||||||
PKG_MD5SUM:=64cc29394eb8a4e24649d19dac868f64
|
PKG_MD5SUM:=99840adbe57047c90dfba6b6ed9aec7f
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://www.quagga.net/download/ \
|
PKG_SOURCE_URL:=http://www.quagga.net/download/ \
|
||||||
|
|
|
@ -1,425 +1,53 @@
|
||||||
--- a/bgpd/bgp_vty.c
|
|
||||||
+++ b/bgpd/bgp_vty.c
|
|
||||||
@@ -8399,8 +8399,14 @@ bgp_str2route_type (int afi, const char
|
|
||||||
return ZEBRA_ROUTE_STATIC;
|
|
||||||
else if (strncmp (str, "r", 1) == 0)
|
|
||||||
return ZEBRA_ROUTE_RIP;
|
|
||||||
- else if (strncmp (str, "o", 1) == 0)
|
|
||||||
+ else if (strncmp (str, "os", 2) == 0)
|
|
||||||
return ZEBRA_ROUTE_OSPF;
|
|
||||||
+ else if (strncmp (str, "h", 1) == 0)
|
|
||||||
+ return ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (str, "ol", 2) == 0)
|
|
||||||
+ return ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (str, "b", 1) == 0)
|
|
||||||
+ return ZEBRA_ROUTE_BATMAN;
|
|
||||||
}
|
|
||||||
if (afi == AFI_IP6)
|
|
||||||
{
|
|
||||||
@@ -8412,21 +8418,30 @@ bgp_str2route_type (int afi, const char
|
|
||||||
return ZEBRA_ROUTE_STATIC;
|
|
||||||
else if (strncmp (str, "r", 1) == 0)
|
|
||||||
return ZEBRA_ROUTE_RIPNG;
|
|
||||||
- else if (strncmp (str, "o", 1) == 0)
|
|
||||||
+ else if (strncmp (str, "os", 2) == 0)
|
|
||||||
return ZEBRA_ROUTE_OSPF6;
|
|
||||||
+ else if (strncmp (str, "h", 1) == 0)
|
|
||||||
+ return ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (str, "ol", 2) == 0)
|
|
||||||
+ return ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (str, "b", 1) == 0)
|
|
||||||
+ return ZEBRA_ROUTE_BATMAN;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv4,
|
|
||||||
bgp_redistribute_ipv4_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf|rip|static)",
|
|
||||||
+ "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman)",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
- "Static routes\n")
|
|
||||||
+ "Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
|
|
||||||
{
|
|
||||||
int type;
|
|
||||||
|
|
||||||
@@ -8441,13 +8456,16 @@ DEFUN (bgp_redistribute_ipv4,
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv4_rmap,
|
|
||||||
bgp_redistribute_ipv4_rmap_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf|rip|static) route-map WORD",
|
|
||||||
+ "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n")
|
|
||||||
{
|
|
||||||
@@ -8466,13 +8484,16 @@ DEFUN (bgp_redistribute_ipv4_rmap,
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv4_metric,
|
|
||||||
bgp_redistribute_ipv4_metric_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",
|
|
||||||
+ "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295>",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n")
|
|
||||||
{
|
|
||||||
@@ -8493,13 +8514,16 @@ DEFUN (bgp_redistribute_ipv4_metric,
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv4_rmap_metric,
|
|
||||||
bgp_redistribute_ipv4_rmap_metric_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",
|
|
||||||
+ "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
@@ -8523,13 +8547,16 @@ DEFUN (bgp_redistribute_ipv4_rmap_metric
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv4_metric_rmap,
|
|
||||||
bgp_redistribute_ipv4_metric_rmap_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",
|
|
||||||
+ "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
@@ -8553,14 +8580,17 @@ DEFUN (bgp_redistribute_ipv4_metric_rmap
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv4,
|
|
||||||
no_bgp_redistribute_ipv4_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf|rip|static)",
|
|
||||||
+ "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman)",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
- "Static routes\n")
|
|
||||||
+ "Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
|
|
||||||
{
|
|
||||||
int type;
|
|
||||||
|
|
||||||
@@ -8576,7 +8606,7 @@ DEFUN (no_bgp_redistribute_ipv4,
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv4_rmap,
|
|
||||||
no_bgp_redistribute_ipv4_rmap_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf|rip|static) route-map WORD",
|
|
||||||
+ "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8584,6 +8614,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n")
|
|
||||||
{
|
|
||||||
@@ -8602,7 +8635,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv4_metric,
|
|
||||||
no_bgp_redistribute_ipv4_metric_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",
|
|
||||||
+ "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295>",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8610,6 +8643,9 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n")
|
|
||||||
{
|
|
||||||
@@ -8628,7 +8664,7 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
|
|
||||||
no_bgp_redistribute_ipv4_rmap_metric_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",
|
|
||||||
+ "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8636,6 +8672,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_met
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
@@ -8657,7 +8696,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_met
|
|
||||||
|
|
||||||
ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
|
|
||||||
no_bgp_redistribute_ipv4_metric_rmap_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",
|
|
||||||
+ "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8665,6 +8704,9 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_met
|
|
||||||
"Open Shurtest Path First (OSPF)\n"
|
|
||||||
"Routing Information Protocol (RIP)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
@@ -8673,13 +8715,16 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_met
|
|
||||||
#ifdef HAVE_IPV6
|
|
||||||
DEFUN (bgp_redistribute_ipv6,
|
|
||||||
bgp_redistribute_ipv6_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf6|ripng|static)",
|
|
||||||
+ "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman)",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
- "Static routes\n")
|
|
||||||
+ "Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
|
|
||||||
{
|
|
||||||
int type;
|
|
||||||
|
|
||||||
@@ -8695,13 +8740,16 @@ DEFUN (bgp_redistribute_ipv6,
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv6_rmap,
|
|
||||||
bgp_redistribute_ipv6_rmap_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",
|
|
||||||
+ "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n")
|
|
||||||
{
|
|
||||||
@@ -8720,13 +8768,16 @@ DEFUN (bgp_redistribute_ipv6_rmap,
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv6_metric,
|
|
||||||
bgp_redistribute_ipv6_metric_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",
|
|
||||||
+ "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295>",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n")
|
|
||||||
{
|
|
||||||
@@ -8747,13 +8798,16 @@ DEFUN (bgp_redistribute_ipv6_metric,
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv6_rmap_metric,
|
|
||||||
bgp_redistribute_ipv6_rmap_metric_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",
|
|
||||||
+ "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
@@ -8777,13 +8831,16 @@ DEFUN (bgp_redistribute_ipv6_rmap_metric
|
|
||||||
|
|
||||||
DEFUN (bgp_redistribute_ipv6_metric_rmap,
|
|
||||||
bgp_redistribute_ipv6_metric_rmap_cmd,
|
|
||||||
- "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",
|
|
||||||
+ "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
@@ -8807,14 +8864,17 @@ DEFUN (bgp_redistribute_ipv6_metric_rmap
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv6,
|
|
||||||
no_bgp_redistribute_ipv6_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf6|ripng|static)",
|
|
||||||
+ "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman)",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
"Kernel routes\n"
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
- "Static routes\n")
|
|
||||||
+ "Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
|
|
||||||
{
|
|
||||||
int type;
|
|
||||||
|
|
||||||
@@ -8830,7 +8890,7 @@ DEFUN (no_bgp_redistribute_ipv6,
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv6_rmap,
|
|
||||||
no_bgp_redistribute_ipv6_rmap_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",
|
|
||||||
+ "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8838,6 +8898,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n")
|
|
||||||
{
|
|
||||||
@@ -8856,7 +8919,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv6_metric,
|
|
||||||
no_bgp_redistribute_ipv6_metric_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",
|
|
||||||
+ "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295>",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8864,6 +8927,9 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n")
|
|
||||||
{
|
|
||||||
@@ -8882,7 +8948,7 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
|
|
||||||
|
|
||||||
DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
|
|
||||||
no_bgp_redistribute_ipv6_rmap_metric_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",
|
|
||||||
+ "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8890,6 +8956,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_met
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Pointer to route-map entries\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
@@ -8911,7 +8980,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_met
|
|
||||||
|
|
||||||
ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
|
|
||||||
no_bgp_redistribute_ipv6_metric_rmap_cmd,
|
|
||||||
- "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",
|
|
||||||
+ "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute information from another routing protocol\n"
|
|
||||||
"Connected\n"
|
|
||||||
@@ -8919,6 +8988,9 @@ ALIAS (no_bgp_redistribute_ipv6_rmap_met
|
|
||||||
"Open Shurtest Path First (OSPFv3)\n"
|
|
||||||
"Routing Information Protocol (RIPng)\n"
|
|
||||||
"Static routes\n"
|
|
||||||
+ "Hazy-Sighted Link State Protocol (HSLS)\n"
|
|
||||||
+ "Optimized Link State Routing (OLSR)\n"
|
|
||||||
+ "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
|
|
||||||
"Metric for redistributed routes\n"
|
|
||||||
"Default metric\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
--- a/lib/log.c
|
--- a/lib/log.c
|
||||||
+++ b/lib/log.c
|
+++ b/lib/log.c
|
||||||
@@ -837,6 +837,8 @@ static const struct zebra_desc_table rou
|
@@ -929,13 +929,19 @@ proto_redistnum(int afi, const char *s)
|
||||||
DESC_ENTRY (ZEBRA_ROUTE_ISIS, "isis", 'I' ),
|
return ZEBRA_ROUTE_STATIC;
|
||||||
DESC_ENTRY (ZEBRA_ROUTE_BGP, "bgp", 'B' ),
|
else if (strncmp (s, "r", 1) == 0)
|
||||||
DESC_ENTRY (ZEBRA_ROUTE_HSLS, "hsls", 'H' ),
|
return ZEBRA_ROUTE_RIP;
|
||||||
+ DESC_ENTRY (ZEBRA_ROUTE_OLSR, "olsr", 'o' ),
|
- else if (strncmp (s, "o", 1) == 0)
|
||||||
+ DESC_ENTRY (ZEBRA_ROUTE_BATMAN, "batman", 'b' ),
|
+ else if (strncmp (s, "os", 2) == 0)
|
||||||
};
|
return ZEBRA_ROUTE_OSPF;
|
||||||
#undef DESC_ENTRY
|
else if (strncmp (s, "i", 1) == 0)
|
||||||
|
return ZEBRA_ROUTE_ISIS;
|
||||||
|
else if (strncmp (s, "bg", 2) == 0)
|
||||||
|
return ZEBRA_ROUTE_BGP;
|
||||||
|
- else if (strncmp (s, "ba", 2) == 0)
|
||||||
|
+ else if (strncmp (s, "h", 1) == 0)
|
||||||
|
+ return ZEBRA_ROUTE_HSLS;
|
||||||
|
+ else if (strncmp (s, "ol", 2) == 0)
|
||||||
|
+ return ZEBRA_ROUTE_OLSR;
|
||||||
|
+ else if (strncmp (s, "bat", 3) == 0)
|
||||||
|
+ return ZEBRA_ROUTE_BATMAN;
|
||||||
|
+ else if (strncmp (s, "bab", 3) == 0)
|
||||||
|
return ZEBRA_ROUTE_BABEL;
|
||||||
|
}
|
||||||
|
if (afi == AFI_IP6)
|
||||||
|
@@ -948,13 +954,19 @@ proto_redistnum(int afi, const char *s)
|
||||||
|
return ZEBRA_ROUTE_STATIC;
|
||||||
|
else if (strncmp (s, "r", 1) == 0)
|
||||||
|
return ZEBRA_ROUTE_RIPNG;
|
||||||
|
- else if (strncmp (s, "o", 1) == 0)
|
||||||
|
+ else if (strncmp (s, "os", 2) == 0)
|
||||||
|
return ZEBRA_ROUTE_OSPF6;
|
||||||
|
else if (strncmp (s, "i", 1) == 0)
|
||||||
|
return ZEBRA_ROUTE_ISIS;
|
||||||
|
else if (strncmp (s, "bg", 2) == 0)
|
||||||
|
return ZEBRA_ROUTE_BGP;
|
||||||
|
- else if (strncmp (s, "ba", 2) == 0)
|
||||||
|
+ else if (strncmp (s, "h", 1) == 0)
|
||||||
|
+ return ZEBRA_ROUTE_HSLS;
|
||||||
|
+ else if (strncmp (s, "ol", 2) == 0)
|
||||||
|
+ return ZEBRA_ROUTE_OLSR;
|
||||||
|
+ else if (strncmp (s, "bat", 3) == 0)
|
||||||
|
+ return ZEBRA_ROUTE_BATMAN;
|
||||||
|
+ else if (strncmp (s, "bab", 3) == 0)
|
||||||
|
return ZEBRA_ROUTE_BABEL;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
--- a/lib/route_types.txt
|
--- a/lib/route_types.txt
|
||||||
+++ b/lib/route_types.txt
|
+++ b/lib/route_types.txt
|
||||||
@@ -51,13 +51,9 @@ ZEBRA_ROUTE_OSPF, ospf, ospfd
|
@@ -51,13 +51,9 @@ ZEBRA_ROUTE_OSPF, ospf, ospfd
|
||||||
ZEBRA_ROUTE_OSPF6, ospf6, ospf6d, 'O', 0, 1, "OSPF"
|
ZEBRA_ROUTE_OSPF6, ospf6, ospf6d, 'O', 0, 1, "OSPFv6"
|
||||||
ZEBRA_ROUTE_ISIS, isis, isisd, 'I', 1, 1, "IS-IS"
|
ZEBRA_ROUTE_ISIS, isis, isisd, 'I', 1, 1, "IS-IS"
|
||||||
ZEBRA_ROUTE_BGP, bgp, bgpd, 'B', 1, 1, "BGP"
|
ZEBRA_ROUTE_BGP, bgp, bgpd, 'B', 1, 1, "BGP"
|
||||||
-# HSLS and OLSR both are AFI independent (so: 1, 1), however
|
-# HSLS and OLSR both are AFI independent (so: 1, 1), however
|
||||||
|
@ -428,216 +56,80 @@
|
||||||
-# to 'switch on' redist support (direct numeric entry remaining
|
-# to 'switch on' redist support (direct numeric entry remaining
|
||||||
-# possible).
|
-# possible).
|
||||||
-ZEBRA_ROUTE_HSLS, hsls, hslsd, 'H', 0, 0, "HSLS"
|
-ZEBRA_ROUTE_HSLS, hsls, hslsd, 'H', 0, 0, "HSLS"
|
||||||
-ZEBRA_ROUTE_OLSR, olsr, oslrd, 'o', 0, 0, "OLSR"
|
-ZEBRA_ROUTE_OLSR, olsr, olsrd, 'o', 0, 0, "OLSR"
|
||||||
+ZEBRA_ROUTE_HSLS, hsls, hslsd, 'H', 1, 1, "HSLS"
|
+ZEBRA_ROUTE_HSLS, hsls, hslsd, 'H', 1, 1, "HSLS"
|
||||||
+ZEBRA_ROUTE_OLSR, olsr, olsrd, 'o', 1, 1, "OLSR"
|
+ZEBRA_ROUTE_OLSR, olsr, olsrd, 'o', 1, 1, "OLSR"
|
||||||
+ZEBRA_ROUTE_BATMAN, batman, batmand,'b', 1, 1, "BATMAN"
|
+ZEBRA_ROUTE_BATMAN, batman, batmand,'b', 1, 1, "BATMAN"
|
||||||
|
ZEBRA_ROUTE_BABEL, babel, babeld, 'A', 1, 1, "Babel"
|
||||||
|
|
||||||
## help strings
|
## help strings
|
||||||
ZEBRA_ROUTE_SYSTEM, "Reserved route type, for internal use only"
|
@@ -72,5 +68,6 @@ ZEBRA_ROUTE_OSPF6, "Open Shortest Path
|
||||||
@@ -71,4 +67,5 @@ ZEBRA_ROUTE_OSPF6, "Open Shortest Path
|
|
||||||
ZEBRA_ROUTE_ISIS, "Intermediate System to Intermediate System (IS-IS)"
|
ZEBRA_ROUTE_ISIS, "Intermediate System to Intermediate System (IS-IS)"
|
||||||
ZEBRA_ROUTE_BGP, "Border Gateway Protocol (BGP)"
|
ZEBRA_ROUTE_BGP, "Border Gateway Protocol (BGP)"
|
||||||
ZEBRA_ROUTE_HSLS, "Hazy-Sighted Link State Protocol (HSLS)"
|
ZEBRA_ROUTE_HSLS, "Hazy-Sighted Link State Protocol (HSLS)"
|
||||||
-ZEBRA_ROUTE_OLSR, "Optimised Link State Routing (OLSR)"
|
-ZEBRA_ROUTE_OLSR, "Optimised Link State Routing (OLSR)"
|
||||||
+ZEBRA_ROUTE_OLSR, "Optimized Link State Routing (OLSR)"
|
+ZEBRA_ROUTE_OLSR, "Optimized Link State Routing (OLSR)"
|
||||||
+ZEBRA_ROUTE_BATMAN, "Better Approach to Mobile Ad-Hoc Networking (BATMAN)"
|
+ZEBRA_ROUTE_BATMAN, "Better Approach to Mobile Ad-Hoc Networking (BATMAN)"
|
||||||
--- a/lib/zebra.h
|
ZEBRA_ROUTE_BABEL, "Babel routing protocol (Babel)"
|
||||||
+++ b/lib/zebra.h
|
|
||||||
@@ -437,7 +437,9 @@ struct in_pktinfo
|
|
||||||
#define ZEBRA_ROUTE_ISIS 8
|
|
||||||
#define ZEBRA_ROUTE_BGP 9
|
|
||||||
#define ZEBRA_ROUTE_HSLS 10
|
|
||||||
-#define ZEBRA_ROUTE_MAX 11
|
|
||||||
+#define ZEBRA_ROUTE_OLSR 11
|
|
||||||
+#define ZEBRA_ROUTE_BATMAN 12
|
|
||||||
+#define ZEBRA_ROUTE_MAX 13
|
|
||||||
|
|
||||||
/* Note: whenever a new route-type or zserv-command is added the
|
|
||||||
* corresponding {command,route}_types[] table in lib/log.c MUST be
|
|
||||||
--- a/ospf6d/ospf6_asbr.c
|
|
||||||
+++ b/ospf6d/ospf6_asbr.c
|
|
||||||
@@ -616,13 +616,16 @@ ospf6_asbr_redistribute_remove (int type
|
|
||||||
|
|
||||||
DEFUN (ospf6_redistribute,
|
|
||||||
ospf6_redistribute_cmd,
|
|
||||||
- "redistribute (static|kernel|connected|ripng|bgp)",
|
|
||||||
+ "redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman)",
|
|
||||||
"Redistribute\n"
|
|
||||||
"Static route\n"
|
|
||||||
"Kernel route\n"
|
|
||||||
"Connected route\n"
|
|
||||||
"RIPng route\n"
|
|
||||||
"BGP route\n"
|
|
||||||
+ "HSLS route\n"
|
|
||||||
+ "OLSR route\n"
|
|
||||||
+ "BATMAN route\n"
|
|
||||||
)
|
|
||||||
{
|
|
||||||
int type = 0;
|
|
||||||
@@ -637,6 +640,12 @@ DEFUN (ospf6_redistribute,
|
|
||||||
type = ZEBRA_ROUTE_RIPNG;
|
|
||||||
else if (strncmp (argv[0], "bgp", 3) == 0)
|
|
||||||
type = ZEBRA_ROUTE_BGP;
|
|
||||||
+ else if (strncmp (argv[0], "h", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (argv[0], "o", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (argv[0], "ba", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_BATMAN;
|
|
||||||
|
|
||||||
ospf6_asbr_redistribute_unset (type);
|
|
||||||
ospf6_asbr_routemap_unset (type);
|
|
||||||
@@ -646,13 +655,16 @@ DEFUN (ospf6_redistribute,
|
|
||||||
|
|
||||||
DEFUN (ospf6_redistribute_routemap,
|
|
||||||
ospf6_redistribute_routemap_cmd,
|
|
||||||
- "redistribute (static|kernel|connected|ripng|bgp) route-map WORD",
|
|
||||||
+ "redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman) route-map WORD",
|
|
||||||
"Redistribute\n"
|
|
||||||
"Static routes\n"
|
|
||||||
"Kernel route\n"
|
|
||||||
"Connected route\n"
|
|
||||||
"RIPng route\n"
|
|
||||||
"BGP route\n"
|
|
||||||
+ "HSLS route\n"
|
|
||||||
+ "OLSR route\n"
|
|
||||||
+ "BATMAN route\n"
|
|
||||||
"Route map reference\n"
|
|
||||||
"Route map name\n"
|
|
||||||
)
|
|
||||||
@@ -669,6 +681,12 @@ DEFUN (ospf6_redistribute_routemap,
|
|
||||||
type = ZEBRA_ROUTE_RIPNG;
|
|
||||||
else if (strncmp (argv[0], "bgp", 3) == 0)
|
|
||||||
type = ZEBRA_ROUTE_BGP;
|
|
||||||
+ else if (strncmp (argv[0], "h", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (argv[0], "o", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (argv[0], "ba", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_BATMAN;
|
|
||||||
|
|
||||||
ospf6_asbr_redistribute_unset (type);
|
|
||||||
ospf6_asbr_routemap_set (type, argv[1]);
|
|
||||||
@@ -678,7 +696,7 @@ DEFUN (ospf6_redistribute_routemap,
|
|
||||||
|
|
||||||
DEFUN (no_ospf6_redistribute,
|
|
||||||
no_ospf6_redistribute_cmd,
|
|
||||||
- "no redistribute (static|kernel|connected|ripng|bgp)",
|
|
||||||
+ "no redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman)",
|
|
||||||
NO_STR
|
|
||||||
"Redistribute\n"
|
|
||||||
"Static route\n"
|
|
||||||
@@ -686,6 +704,9 @@ DEFUN (no_ospf6_redistribute,
|
|
||||||
"Connected route\n"
|
|
||||||
"RIPng route\n"
|
|
||||||
"BGP route\n"
|
|
||||||
+ "HSLS route\n"
|
|
||||||
+ "OLSR route\n"
|
|
||||||
+ "BATMAN route\n"
|
|
||||||
)
|
|
||||||
{
|
|
||||||
int type = 0;
|
|
||||||
@@ -700,6 +721,12 @@ DEFUN (no_ospf6_redistribute,
|
|
||||||
type = ZEBRA_ROUTE_RIPNG;
|
|
||||||
else if (strncmp (argv[0], "bgp", 3) == 0)
|
|
||||||
type = ZEBRA_ROUTE_BGP;
|
|
||||||
+ else if (strncmp (argv[0], "h", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (argv[0], "o", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (argv[0], "ba", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_BATMAN;
|
|
||||||
|
|
||||||
ospf6_asbr_redistribute_unset (type);
|
|
||||||
ospf6_asbr_routemap_unset (type);
|
|
||||||
--- a/ospfd/ospf_vty.c
|
|
||||||
+++ b/ospfd/ospf_vty.c
|
|
||||||
@@ -107,8 +107,14 @@ str2distribute_source (const char *str,
|
|
||||||
*source = ZEBRA_ROUTE_STATIC;
|
|
||||||
else if (strncmp (str, "r", 1) == 0)
|
|
||||||
*source = ZEBRA_ROUTE_RIP;
|
|
||||||
- else if (strncmp (str, "b", 1) == 0)
|
|
||||||
+ else if (strncmp (str, "bg", 2) == 0)
|
|
||||||
*source = ZEBRA_ROUTE_BGP;
|
|
||||||
+ else if (strncmp (str, "h", 1) == 0)
|
|
||||||
+ *source = ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (str, "o", 1) == 0)
|
|
||||||
+ *source = ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (str, "ba", 2) == 0)
|
|
||||||
+ *source = ZEBRA_ROUTE_BATMAN;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
--- a/ripd/rip_zebra.c
|
--- a/ripd/rip_zebra.c
|
||||||
+++ b/ripd/rip_zebra.c
|
+++ b/ripd/rip_zebra.c
|
||||||
@@ -204,8 +204,11 @@ static struct {
|
@@ -206,9 +206,12 @@ static struct {
|
||||||
{ZEBRA_ROUTE_KERNEL, 1, "kernel"},
|
{ZEBRA_ROUTE_KERNEL, 1, "kernel"},
|
||||||
{ZEBRA_ROUTE_CONNECT, 1, "connected"},
|
{ZEBRA_ROUTE_CONNECT, 1, "connected"},
|
||||||
{ZEBRA_ROUTE_STATIC, 1, "static"},
|
{ZEBRA_ROUTE_STATIC, 1, "static"},
|
||||||
- {ZEBRA_ROUTE_OSPF, 1, "ospf"},
|
- {ZEBRA_ROUTE_OSPF, 1, "ospf"},
|
||||||
- {ZEBRA_ROUTE_BGP, 1, "bgp"},
|
|
||||||
+ {ZEBRA_ROUTE_OSPF, 2, "ospf"},
|
+ {ZEBRA_ROUTE_OSPF, 2, "ospf"},
|
||||||
+ {ZEBRA_ROUTE_BGP, 2, "bgp"},
|
{ZEBRA_ROUTE_BGP, 2, "bgp"},
|
||||||
|
- {ZEBRA_ROUTE_BABEL, 2, "babel"},
|
||||||
+ {ZEBRA_ROUTE_HSLS, 1, "hsls"},
|
+ {ZEBRA_ROUTE_HSLS, 1, "hsls"},
|
||||||
+ {ZEBRA_ROUTE_OLSR, 2, "olsr"},
|
+ {ZEBRA_ROUTE_OLSR, 2, "olsr"},
|
||||||
+ {ZEBRA_ROUTE_BATMAN, 2, "batman"},
|
+ {ZEBRA_ROUTE_BATMAN, 3, "batman"},
|
||||||
|
+ {ZEBRA_ROUTE_BABEL, 3, "babel"},
|
||||||
{0, 0, NULL}
|
{0, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
--- a/ripngd/ripng_zebra.c
|
--- a/ripngd/ripng_zebra.c
|
||||||
+++ b/ripngd/ripng_zebra.c
|
+++ b/ripngd/ripng_zebra.c
|
||||||
@@ -214,8 +214,11 @@ static struct {
|
@@ -216,9 +216,12 @@ static struct {
|
||||||
{ZEBRA_ROUTE_KERNEL, 1, "kernel"},
|
{ZEBRA_ROUTE_KERNEL, 1, "kernel"},
|
||||||
{ZEBRA_ROUTE_CONNECT, 1, "connected"},
|
{ZEBRA_ROUTE_CONNECT, 1, "connected"},
|
||||||
{ZEBRA_ROUTE_STATIC, 1, "static"},
|
{ZEBRA_ROUTE_STATIC, 1, "static"},
|
||||||
- {ZEBRA_ROUTE_OSPF6, 1, "ospf6"},
|
- {ZEBRA_ROUTE_OSPF6, 1, "ospf6"},
|
||||||
- {ZEBRA_ROUTE_BGP, 1, "bgp"},
|
|
||||||
+ {ZEBRA_ROUTE_OSPF6, 2, "ospf6"},
|
+ {ZEBRA_ROUTE_OSPF6, 2, "ospf6"},
|
||||||
+ {ZEBRA_ROUTE_BGP, 2, "bgp"},
|
{ZEBRA_ROUTE_BGP, 2, "bgp"},
|
||||||
|
- {ZEBRA_ROUTE_BABEL, 2, "babel"},
|
||||||
+ {ZEBRA_ROUTE_HSLS, 1, "hsls"},
|
+ {ZEBRA_ROUTE_HSLS, 1, "hsls"},
|
||||||
+ {ZEBRA_ROUTE_OLSR, 2, "olsr"},
|
+ {ZEBRA_ROUTE_OLSR, 2, "olsr"},
|
||||||
+ {ZEBRA_ROUTE_BATMAN, 2, "batman"},
|
+ {ZEBRA_ROUTE_BATMAN, 3, "batman"},
|
||||||
|
+ {ZEBRA_ROUTE_BABEL, 3, "babel"},
|
||||||
{0, 0, NULL}
|
{0, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
--- a/zebra/redistribute.c
|
--- a/zebra/rt_netlink.c
|
||||||
+++ b/zebra/redistribute.c
|
+++ b/zebra/rt_netlink.c
|
||||||
@@ -255,6 +255,9 @@ zebra_redistribute_add (int command, str
|
@@ -1623,6 +1623,9 @@ netlink_route_multipath (int cmd, struct
|
||||||
case ZEBRA_ROUTE_OSPF:
|
addattr_l (&req.n, sizeof req, RTA_PREFSRC,
|
||||||
case ZEBRA_ROUTE_OSPF6:
|
&nexthop->src.ipv4, bytelen);
|
||||||
case ZEBRA_ROUTE_BGP:
|
|
||||||
+ case ZEBRA_ROUTE_HSLS:
|
+ if (rib->type == ZEBRA_ROUTE_OLSR)
|
||||||
+ case ZEBRA_ROUTE_OLSR:
|
+ req.r.rtm_scope = RT_SCOPE_LINK;
|
||||||
+ case ZEBRA_ROUTE_BATMAN:
|
+
|
||||||
if (! client->redist[type])
|
if (IS_ZEBRA_DEBUG_KERNEL)
|
||||||
{
|
zlog_debug("netlink_route_multipath() (single hop): "
|
||||||
client->redist[type] = 1;
|
"nexthop via if %u", nexthop->ifindex);
|
||||||
@@ -283,6 +286,9 @@ zebra_redistribute_delete (int command,
|
|
||||||
case ZEBRA_ROUTE_OSPF:
|
|
||||||
case ZEBRA_ROUTE_OSPF6:
|
|
||||||
case ZEBRA_ROUTE_BGP:
|
|
||||||
+ case ZEBRA_ROUTE_HSLS:
|
|
||||||
+ case ZEBRA_ROUTE_OLSR:
|
|
||||||
+ case ZEBRA_ROUTE_BATMAN:
|
|
||||||
client->redist[type] = 0;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
--- a/zebra/zebra_rib.c
|
--- a/zebra/zebra_rib.c
|
||||||
+++ b/zebra/zebra_rib.c
|
+++ b/zebra/zebra_rib.c
|
||||||
@@ -66,7 +66,10 @@ static const struct
|
@@ -67,6 +67,9 @@ static const struct
|
||||||
{ZEBRA_ROUTE_OSPF, 110},
|
[ZEBRA_ROUTE_OSPF6] = {ZEBRA_ROUTE_OSPF6, 110},
|
||||||
{ZEBRA_ROUTE_OSPF6, 110},
|
[ZEBRA_ROUTE_ISIS] = {ZEBRA_ROUTE_ISIS, 115},
|
||||||
{ZEBRA_ROUTE_ISIS, 115},
|
[ZEBRA_ROUTE_BGP] = {ZEBRA_ROUTE_BGP, 20 /* IBGP is 200. */},
|
||||||
- {ZEBRA_ROUTE_BGP, 20 /* IBGP is 200. */}
|
+ [ZEBRA_ROUTE_HSLS] = {ZEBRA_ROUTE_HSLS, 0},
|
||||||
+ {ZEBRA_ROUTE_BGP, 20 /* IBGP is 200. */},
|
+ [ZEBRA_ROUTE_OLSR] = {ZEBRA_ROUTE_OLSR, 0},
|
||||||
+ {ZEBRA_ROUTE_HSLS, 0},
|
+ [ZEBRA_ROUTE_BATMAN] = {ZEBRA_ROUTE_BATMAN, 0},
|
||||||
+ {ZEBRA_ROUTE_OLSR, 0},
|
[ZEBRA_ROUTE_BABEL] = {ZEBRA_ROUTE_BABEL, 95},
|
||||||
+ {ZEBRA_ROUTE_BATMAN, 0}
|
/* no entry/default: 150 */
|
||||||
};
|
};
|
||||||
|
@@ -381,6 +384,18 @@ nexthop_active_ipv4 (struct rib *rib, st
|
||||||
/* Vector for routing table. */
|
|
||||||
@@ -374,6 +377,18 @@ nexthop_active_ipv4 (struct rib *rib, st
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -656,7 +148,7 @@
|
||||||
else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
|
else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
|
||||||
{
|
{
|
||||||
for (newhop = match->nexthop; newhop; newhop = newhop->next)
|
for (newhop = match->nexthop; newhop; newhop = newhop->next)
|
||||||
@@ -476,6 +491,18 @@ nexthop_active_ipv6 (struct rib *rib, st
|
@@ -483,6 +498,18 @@ nexthop_active_ipv6 (struct rib *rib, st
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -675,15 +167,15 @@
|
||||||
else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
|
else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
|
||||||
{
|
{
|
||||||
for (newhop = match->nexthop; newhop; newhop = newhop->next)
|
for (newhop = match->nexthop; newhop; newhop = newhop->next)
|
||||||
@@ -1229,6 +1256,8 @@ static const u_char meta_queue_map[ZEBRA
|
@@ -1236,6 +1263,8 @@ static const u_char meta_queue_map[ZEBRA
|
||||||
[ZEBRA_ROUTE_ISIS] = 2,
|
[ZEBRA_ROUTE_ISIS] = 2,
|
||||||
[ZEBRA_ROUTE_BGP] = 3,
|
[ZEBRA_ROUTE_BGP] = 3,
|
||||||
[ZEBRA_ROUTE_HSLS] = 4,
|
[ZEBRA_ROUTE_HSLS] = 4,
|
||||||
+ [ZEBRA_ROUTE_OLSR] = 4,
|
+ [ZEBRA_ROUTE_OLSR] = 4,
|
||||||
+ [ZEBRA_ROUTE_BATMAN] = 4,
|
+ [ZEBRA_ROUTE_BATMAN] = 4,
|
||||||
|
[ZEBRA_ROUTE_BABEL] = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Look into the RN and queue it into one or more priority queues,
|
|
||||||
--- a/zebra/zebra_snmp.c
|
--- a/zebra/zebra_snmp.c
|
||||||
+++ b/zebra/zebra_snmp.c
|
+++ b/zebra/zebra_snmp.c
|
||||||
@@ -251,6 +251,12 @@ proto_trans(int type)
|
@@ -251,6 +251,12 @@ proto_trans(int type)
|
||||||
|
@ -701,9 +193,9 @@
|
||||||
}
|
}
|
||||||
--- a/zebra/zebra_vty.c
|
--- a/zebra/zebra_vty.c
|
||||||
+++ b/zebra/zebra_vty.c
|
+++ b/zebra/zebra_vty.c
|
||||||
@@ -557,7 +557,10 @@ vty_show_ip_route_detail (struct vty *vt
|
@@ -558,7 +558,10 @@ vty_show_ip_route_detail (struct vty *vt
|
||||||
if (rib->type == ZEBRA_ROUTE_RIP
|
|
||||||
|| rib->type == ZEBRA_ROUTE_OSPF
|
|| rib->type == ZEBRA_ROUTE_OSPF
|
||||||
|
|| rib->type == ZEBRA_ROUTE_BABEL
|
||||||
|| rib->type == ZEBRA_ROUTE_ISIS
|
|| rib->type == ZEBRA_ROUTE_ISIS
|
||||||
- || rib->type == ZEBRA_ROUTE_BGP)
|
- || rib->type == ZEBRA_ROUTE_BGP)
|
||||||
+ || rib->type == ZEBRA_ROUTE_BGP
|
+ || rib->type == ZEBRA_ROUTE_BGP
|
||||||
|
@ -713,9 +205,9 @@
|
||||||
{
|
{
|
||||||
time_t uptime;
|
time_t uptime;
|
||||||
struct tm *tm;
|
struct tm *tm;
|
||||||
@@ -775,7 +778,10 @@ vty_show_ip_route (struct vty *vty, stru
|
@@ -777,7 +780,10 @@ vty_show_ip_route (struct vty *vty, stru
|
||||||
if (rib->type == ZEBRA_ROUTE_RIP
|
|
||||||
|| rib->type == ZEBRA_ROUTE_OSPF
|
|| rib->type == ZEBRA_ROUTE_OSPF
|
||||||
|
|| rib->type == ZEBRA_ROUTE_BABEL
|
||||||
|| rib->type == ZEBRA_ROUTE_ISIS
|
|| rib->type == ZEBRA_ROUTE_ISIS
|
||||||
- || rib->type == ZEBRA_ROUTE_BGP)
|
- || rib->type == ZEBRA_ROUTE_BGP)
|
||||||
+ || rib->type == ZEBRA_ROUTE_BGP
|
+ || rib->type == ZEBRA_ROUTE_BGP
|
||||||
|
@ -725,94 +217,9 @@
|
||||||
{
|
{
|
||||||
time_t uptime;
|
time_t uptime;
|
||||||
struct tm *tm;
|
struct tm *tm;
|
||||||
@@ -803,8 +809,8 @@ vty_show_ip_route (struct vty *vty, stru
|
@@ -1536,7 +1542,10 @@ vty_show_ipv6_route_detail (struct vty *
|
||||||
}
|
|
||||||
|
|
||||||
#define SHOW_ROUTE_V4_HEADER "Codes: K - kernel route, C - connected, " \
|
|
||||||
- "S - static, R - RIP, O - OSPF,%s I - ISIS, B - BGP, " \
|
|
||||||
- "> - selected route, * - FIB route%s%s"
|
|
||||||
+ "S - static, R - RIP, O - OSPF,%s I - ISIS, B - BGP, H - HSLS, " \
|
|
||||||
+ "o - OLSR, b - BATMAN,%s > - selected route, * - FIB route%s%s"
|
|
||||||
|
|
||||||
DEFUN (show_ip_route,
|
|
||||||
show_ip_route_cmd,
|
|
||||||
@@ -829,7 +835,7 @@ DEFUN (show_ip_route,
|
|
||||||
if (first)
|
|
||||||
{
|
|
||||||
vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE,
|
|
||||||
- VTY_NEWLINE);
|
|
||||||
+ VTY_NEWLINE, VTY_NEWLINE);
|
|
||||||
first = 0;
|
|
||||||
}
|
|
||||||
vty_show_ip_route (vty, rn, rib);
|
|
||||||
@@ -872,7 +878,7 @@ DEFUN (show_ip_route_prefix_longer,
|
|
||||||
if (first)
|
|
||||||
{
|
|
||||||
vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
|
|
||||||
- VTY_NEWLINE, VTY_NEWLINE);
|
|
||||||
+ VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
|
|
||||||
first = 0;
|
|
||||||
}
|
|
||||||
vty_show_ip_route (vty, rn, rib);
|
|
||||||
@@ -911,7 +917,7 @@ DEFUN (show_ip_route_supernets,
|
|
||||||
if (first)
|
|
||||||
{
|
|
||||||
vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
|
|
||||||
- VTY_NEWLINE, VTY_NEWLINE);
|
|
||||||
+ VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
|
|
||||||
first = 0;
|
|
||||||
}
|
|
||||||
vty_show_ip_route (vty, rn, rib);
|
|
||||||
@@ -922,7 +928,7 @@ DEFUN (show_ip_route_supernets,
|
|
||||||
|
|
||||||
DEFUN (show_ip_route_protocol,
|
|
||||||
show_ip_route_protocol_cmd,
|
|
||||||
- "show ip route (bgp|connected|isis|kernel|ospf|rip|static)",
|
|
||||||
+ "show ip route (bgp|connected|isis|kernel|ospf|rip|static|hsls|olsr|batman)",
|
|
||||||
SHOW_STR
|
|
||||||
IP_STR
|
|
||||||
"IP routing table\n"
|
|
||||||
@@ -940,13 +946,13 @@ DEFUN (show_ip_route_protocol,
|
|
||||||
struct rib *rib;
|
|
||||||
int first = 1;
|
|
||||||
|
|
||||||
- if (strncmp (argv[0], "b", 1) == 0)
|
|
||||||
+ if (strncmp (argv[0], "bg", 2) == 0)
|
|
||||||
type = ZEBRA_ROUTE_BGP;
|
|
||||||
else if (strncmp (argv[0], "c", 1) == 0)
|
|
||||||
type = ZEBRA_ROUTE_CONNECT;
|
|
||||||
else if (strncmp (argv[0], "k", 1) ==0)
|
|
||||||
type = ZEBRA_ROUTE_KERNEL;
|
|
||||||
- else if (strncmp (argv[0], "o", 1) == 0)
|
|
||||||
+ else if (strncmp (argv[0], "os", 2) == 0)
|
|
||||||
type = ZEBRA_ROUTE_OSPF;
|
|
||||||
else if (strncmp (argv[0], "i", 1) == 0)
|
|
||||||
type = ZEBRA_ROUTE_ISIS;
|
|
||||||
@@ -954,6 +960,12 @@ DEFUN (show_ip_route_protocol,
|
|
||||||
type = ZEBRA_ROUTE_RIP;
|
|
||||||
else if (strncmp (argv[0], "s", 1) == 0)
|
|
||||||
type = ZEBRA_ROUTE_STATIC;
|
|
||||||
+ else if (strncmp (argv[0], "h", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (argv[0], "ol", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (argv[0], "ba", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_BATMAN;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
|
|
||||||
@@ -971,7 +983,7 @@ DEFUN (show_ip_route_protocol,
|
|
||||||
{
|
|
||||||
if (first)
|
|
||||||
{
|
|
||||||
- vty_out (vty, SHOW_ROUTE_V4_HEADER,
|
|
||||||
+ vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
|
|
||||||
VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
|
|
||||||
first = 0;
|
|
||||||
}
|
|
||||||
@@ -1560,7 +1572,10 @@ vty_show_ipv6_route_detail (struct vty *
|
|
||||||
if (rib->type == ZEBRA_ROUTE_RIPNG
|
|
||||||
|| rib->type == ZEBRA_ROUTE_OSPF6
|
|| rib->type == ZEBRA_ROUTE_OSPF6
|
||||||
|
|| rib->type == ZEBRA_ROUTE_BABEL
|
||||||
|| rib->type == ZEBRA_ROUTE_ISIS
|
|| rib->type == ZEBRA_ROUTE_ISIS
|
||||||
- || rib->type == ZEBRA_ROUTE_BGP)
|
- || rib->type == ZEBRA_ROUTE_BGP)
|
||||||
+ || rib->type == ZEBRA_ROUTE_BGP
|
+ || rib->type == ZEBRA_ROUTE_BGP
|
||||||
|
@ -822,9 +229,9 @@
|
||||||
{
|
{
|
||||||
time_t uptime;
|
time_t uptime;
|
||||||
struct tm *tm;
|
struct tm *tm;
|
||||||
@@ -1739,7 +1754,10 @@ vty_show_ipv6_route (struct vty *vty, st
|
@@ -1716,7 +1725,10 @@ vty_show_ipv6_route (struct vty *vty, st
|
||||||
if (rib->type == ZEBRA_ROUTE_RIPNG
|
|
||||||
|| rib->type == ZEBRA_ROUTE_OSPF6
|
|| rib->type == ZEBRA_ROUTE_OSPF6
|
||||||
|
|| rib->type == ZEBRA_ROUTE_BABEL
|
||||||
|| rib->type == ZEBRA_ROUTE_ISIS
|
|| rib->type == ZEBRA_ROUTE_ISIS
|
||||||
- || rib->type == ZEBRA_ROUTE_BGP)
|
- || rib->type == ZEBRA_ROUTE_BGP)
|
||||||
+ || rib->type == ZEBRA_ROUTE_BGP
|
+ || rib->type == ZEBRA_ROUTE_BGP
|
||||||
|
@ -834,62 +241,3 @@
|
||||||
{
|
{
|
||||||
time_t uptime;
|
time_t uptime;
|
||||||
struct tm *tm;
|
struct tm *tm;
|
||||||
@@ -1766,7 +1784,7 @@ vty_show_ipv6_route (struct vty *vty, st
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-#define SHOW_ROUTE_V6_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,%s I - ISIS, B - BGP, * - FIB route.%s%s"
|
|
||||||
+#define SHOW_ROUTE_V6_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,%s I - ISIS, B - BGP, H - HSLS, o - OLSR, b - BATMAN, * - FIB route.%s%s"
|
|
||||||
|
|
||||||
DEFUN (show_ipv6_route,
|
|
||||||
show_ipv6_route_cmd,
|
|
||||||
@@ -1842,7 +1860,7 @@ DEFUN (show_ipv6_route_prefix_longer,
|
|
||||||
|
|
||||||
DEFUN (show_ipv6_route_protocol,
|
|
||||||
show_ipv6_route_protocol_cmd,
|
|
||||||
- "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static)",
|
|
||||||
+ "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static|hsls|olsr|batman)",
|
|
||||||
SHOW_STR
|
|
||||||
IP_STR
|
|
||||||
"IP routing table\n"
|
|
||||||
@@ -1860,13 +1878,13 @@ DEFUN (show_ipv6_route_protocol,
|
|
||||||
struct rib *rib;
|
|
||||||
int first = 1;
|
|
||||||
|
|
||||||
- if (strncmp (argv[0], "b", 1) == 0)
|
|
||||||
+ if (strncmp (argv[0], "bg", 2) == 0)
|
|
||||||
type = ZEBRA_ROUTE_BGP;
|
|
||||||
else if (strncmp (argv[0], "c", 1) == 0)
|
|
||||||
type = ZEBRA_ROUTE_CONNECT;
|
|
||||||
else if (strncmp (argv[0], "k", 1) ==0)
|
|
||||||
type = ZEBRA_ROUTE_KERNEL;
|
|
||||||
- else if (strncmp (argv[0], "o", 1) == 0)
|
|
||||||
+ else if (strncmp (argv[0], "os", 2) == 0)
|
|
||||||
type = ZEBRA_ROUTE_OSPF6;
|
|
||||||
else if (strncmp (argv[0], "i", 1) == 0)
|
|
||||||
type = ZEBRA_ROUTE_ISIS;
|
|
||||||
@@ -1874,6 +1892,12 @@ DEFUN (show_ipv6_route_protocol,
|
|
||||||
type = ZEBRA_ROUTE_RIPNG;
|
|
||||||
else if (strncmp (argv[0], "s", 1) == 0)
|
|
||||||
type = ZEBRA_ROUTE_STATIC;
|
|
||||||
+ else if (strncmp (argv[0], "h", 1) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_HSLS;
|
|
||||||
+ else if (strncmp (argv[0], "ol", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_OLSR;
|
|
||||||
+ else if (strncmp (argv[0], "ba", 2) == 0)
|
|
||||||
+ type = ZEBRA_ROUTE_BATMAN;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
|
|
||||||
--- a/zebra/rt_netlink.c
|
|
||||||
+++ b/zebra/rt_netlink.c
|
|
||||||
@@ -1494,6 +1494,9 @@ netlink_route_multipath (int cmd, struct
|
|
||||||
addattr_l (&req.n, sizeof req, RTA_PREFSRC,
|
|
||||||
&nexthop->src.ipv4, bytelen);
|
|
||||||
|
|
||||||
+ if (rib->type == ZEBRA_ROUTE_OLSR)
|
|
||||||
+ req.r.rtm_scope = RT_SCOPE_LINK;
|
|
||||||
+
|
|
||||||
if (IS_ZEBRA_DEBUG_KERNEL)
|
|
||||||
zlog_debug("netlink_route_multipath() (single hop): "
|
|
||||||
"nexthop via if %u", nexthop->ifindex);
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
--- a/vtysh/extract.pl.in
|
--- a/vtysh/extract.pl.in
|
||||||
+++ b/vtysh/extract.pl.in
|
+++ b/vtysh/extract.pl.in
|
||||||
@@ -62,7 +62,7 @@ $ignore{'"show history"'} = "ignore";
|
@@ -63,7 +63,7 @@ $ignore{'"show history"'} = "ignore";
|
||||||
foreach (@ARGV) {
|
foreach (@ARGV) {
|
||||||
$file = $_;
|
$file = $_;
|
||||||
|
|
||||||
- open (FH, "cpp -DHAVE_CONFIG_H -DVTYSH_EXTRACT_PL -DHAVE_IPV6 -I@top_builddir@ -I@srcdir@/ -I@srcdir@/.. -I@top_srcdir@/lib -I@top_srcdir@/isisd/topology @SNMP_INCLUDES@ $file |");
|
- open (FH, "cpp -DHAVE_CONFIG_H -DVTYSH_EXTRACT_PL -DHAVE_IPV6 -I@top_builddir@ -I@srcdir@/ -I@srcdir@/.. -I@top_srcdir@/lib -I@top_srcdir@/isisd/topology @SNMP_INCLUDES@ @CPPFLAGS@ $file |");
|
||||||
+ open (FH, "@CPP@ @CPPFLAGS@ -DHAVE_CONFIG_H -DVTYSH_EXTRACT_PL -DHAVE_IPV6 -I@top_builddir@ -I@srcdir@/ -I@srcdir@/.. -I@top_srcdir@/lib -I@top_srcdir@/isisd/topology @SNMP_INCLUDES@ $file |");
|
+ open (FH, "@CPP@ -DHAVE_CONFIG_H -DVTYSH_EXTRACT_PL -DHAVE_IPV6 -I@top_builddir@ -I@srcdir@/ -I@srcdir@/.. -I@top_srcdir@/lib -I@top_srcdir@/isisd/topology @SNMP_INCLUDES@ @CPPFLAGS@ $file |");
|
||||||
local $/; undef $/;
|
local $/; undef $/;
|
||||||
$line = <FH>;
|
$line = <FH>;
|
||||||
close (FH);
|
close (FH);
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
sockunion2str (&su, buf, SU_ADDRSTRLEN);
|
sockunion2str (&su, buf, SU_ADDRSTRLEN);
|
||||||
--- a/bgpd/bgpd.h
|
--- a/bgpd/bgpd.h
|
||||||
+++ b/bgpd/bgpd.h
|
+++ b/bgpd/bgpd.h
|
||||||
@@ -712,6 +712,7 @@ struct bgp_nlri
|
@@ -718,6 +718,7 @@ struct bgp_nlri
|
||||||
/* BGP timers default value. */
|
/* BGP timers default value. */
|
||||||
#define BGP_INIT_START_TIMER 5
|
#define BGP_INIT_START_TIMER 5
|
||||||
#define BGP_ERROR_START_TIMER 30
|
#define BGP_ERROR_START_TIMER 30
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/lib/command.c
|
--- a/lib/command.c
|
||||||
+++ b/lib/command.c
|
+++ b/lib/command.c
|
||||||
@@ -2599,6 +2599,13 @@ DEFUN (config_write_file,
|
@@ -2601,6 +2601,13 @@ DEFUN (config_write_file,
|
||||||
VTY_NEWLINE);
|
VTY_NEWLINE);
|
||||||
goto finished;
|
goto finished;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
if (link (config_file, config_file_sav) != 0)
|
if (link (config_file, config_file_sav) != 0)
|
||||||
{
|
{
|
||||||
vty_out (vty, "Can't backup old configuration file %s.%s", config_file_sav,
|
vty_out (vty, "Can't backup old configuration file %s.%s", config_file_sav,
|
||||||
@@ -2612,7 +2619,23 @@ DEFUN (config_write_file,
|
@@ -2614,7 +2621,23 @@ DEFUN (config_write_file,
|
||||||
VTY_NEWLINE);
|
VTY_NEWLINE);
|
||||||
goto finished;
|
goto finished;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,16 +29,16 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
bgp_debug.c bgp_route.c bgp_zebra.c bgp_open.c bgp_routemap.c \
|
bgp_debug.c bgp_route.c bgp_zebra.c bgp_open.c bgp_routemap.c \
|
||||||
bgp_packet.c bgp_network.c bgp_filter.c bgp_regex.c bgp_clist.c \
|
bgp_packet.c bgp_network.c bgp_filter.c bgp_regex.c bgp_clist.c \
|
||||||
bgp_dump.c bgp_snmp.c bgp_ecommunity.c bgp_mplsvpn.c bgp_nexthop.c \
|
bgp_dump.c bgp_snmp.c bgp_ecommunity.c bgp_mplsvpn.c bgp_nexthop.c \
|
||||||
- bgp_damp.c bgp_table.c bgp_advertise.c bgp_vty.c
|
- bgp_damp.c bgp_table.c bgp_advertise.c bgp_vty.c bgp_mpath.c
|
||||||
+ bgp_damp.c bgp_table.c bgp_advertise.c bgp_vty.c bgp_pgbgp.c
|
+ bgp_damp.c bgp_table.c bgp_advertise.c bgp_vty.c bgp_mpath.c bgp_pgbgp.c
|
||||||
|
|
||||||
noinst_HEADERS = \
|
noinst_HEADERS = \
|
||||||
bgp_aspath.h bgp_attr.h bgp_community.h bgp_debug.h bgp_fsm.h \
|
bgp_aspath.h bgp_attr.h bgp_community.h bgp_debug.h bgp_fsm.h \
|
||||||
bgp_network.h bgp_open.h bgp_packet.h bgp_regex.h bgp_route.h \
|
bgp_network.h bgp_open.h bgp_packet.h bgp_regex.h bgp_route.h \
|
||||||
bgpd.h bgp_filter.h bgp_clist.h bgp_dump.h bgp_zebra.h \
|
bgpd.h bgp_filter.h bgp_clist.h bgp_dump.h bgp_zebra.h \
|
||||||
bgp_ecommunity.h bgp_mplsvpn.h bgp_nexthop.h bgp_damp.h bgp_table.h \
|
bgp_ecommunity.h bgp_mplsvpn.h bgp_nexthop.h bgp_damp.h bgp_table.h \
|
||||||
- bgp_advertise.h bgp_snmp.h bgp_vty.h
|
- bgp_advertise.h bgp_snmp.h bgp_vty.h bgp_mpath.h
|
||||||
+ bgp_advertise.h bgp_snmp.h bgp_vty.h bgp_pgbgp.h
|
+ bgp_advertise.h bgp_snmp.h bgp_vty.h bgp_mpath.h bgp_pgbgp.h
|
||||||
|
|
||||||
bgpd_SOURCES = bgp_main.c
|
bgpd_SOURCES = bgp_main.c
|
||||||
bgpd_LDADD = libbgp.a ../lib/libzebra.la @LIBCAP@ @LIBM@
|
bgpd_LDADD = libbgp.a ../lib/libzebra.la @LIBCAP@ @LIBM@
|
||||||
|
@ -2745,9 +2745,9 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
#include "bgpd/bgp_advertise.h"
|
#include "bgpd/bgp_advertise.h"
|
||||||
#include "bgpd/bgp_zebra.h"
|
#include "bgpd/bgp_zebra.h"
|
||||||
#include "bgpd/bgp_vty.h"
|
#include "bgpd/bgp_vty.h"
|
||||||
@@ -332,12 +333,19 @@ bgp_info_cmp (struct bgp *bgp, struct bg
|
@@ -339,12 +340,19 @@ bgp_info_cmp (struct bgp *bgp, struct bg
|
||||||
int confed_as_route = 0;
|
|
||||||
int ret;
|
*paths_eq = 0;
|
||||||
|
|
||||||
+
|
+
|
||||||
/* 0. Null check. */
|
/* 0. Null check. */
|
||||||
|
@ -2765,8 +2765,8 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
/* 1. Weight check. */
|
/* 1. Weight check. */
|
||||||
if (new->attr->extra)
|
if (new->attr->extra)
|
||||||
new_weight = new->attr->extra->weight;
|
new_weight = new->attr->extra->weight;
|
||||||
@@ -1508,6 +1516,10 @@ bgp_process_main (struct work_queue *wq,
|
@@ -1583,6 +1591,10 @@ bgp_process_main (struct work_queue *wq,
|
||||||
bgp_info_unset_flag (rn, new_select, BGP_INFO_ATTR_CHANGED);
|
UNSET_FLAG (new_select->flags, BGP_INFO_MULTIPATH_CHG);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ /* PGBGP needs to know about selected routes */
|
+ /* PGBGP needs to know about selected routes */
|
||||||
|
@ -2776,7 +2776,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
|
|
||||||
/* Check each BGP peer. */
|
/* Check each BGP peer. */
|
||||||
for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
|
for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
|
||||||
@@ -1831,6 +1843,11 @@ bgp_update_rsclient (struct peer *rsclie
|
@@ -1906,6 +1918,11 @@ bgp_update_rsclient (struct peer *rsclie
|
||||||
/* If the update is implicit withdraw. */
|
/* If the update is implicit withdraw. */
|
||||||
if (ri)
|
if (ri)
|
||||||
{
|
{
|
||||||
|
@ -2788,7 +2788,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
ri->uptime = bgp_clock ();
|
ri->uptime = bgp_clock ();
|
||||||
|
|
||||||
/* Same attribute comes in. */
|
/* Same attribute comes in. */
|
||||||
@@ -2262,6 +2279,11 @@ bgp_update_main (struct peer *peer, stru
|
@@ -2337,6 +2354,11 @@ bgp_update_main (struct peer *peer, stru
|
||||||
/* Increment prefix */
|
/* Increment prefix */
|
||||||
bgp_aggregate_increment (bgp, p, new, afi, safi);
|
bgp_aggregate_increment (bgp, p, new, afi, safi);
|
||||||
|
|
||||||
|
@ -2800,7 +2800,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
/* Register new BGP information. */
|
/* Register new BGP information. */
|
||||||
bgp_info_add (rn, new);
|
bgp_info_add (rn, new);
|
||||||
|
|
||||||
@@ -5474,6 +5496,20 @@ enum bgp_display_type
|
@@ -5559,6 +5581,20 @@ enum bgp_display_type
|
||||||
static void
|
static void
|
||||||
route_vty_short_status_out (struct vty *vty, struct bgp_info *binfo)
|
route_vty_short_status_out (struct vty *vty, struct bgp_info *binfo)
|
||||||
{
|
{
|
||||||
|
@ -2821,7 +2821,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
/* Route status display. */
|
/* Route status display. */
|
||||||
if (CHECK_FLAG (binfo->flags, BGP_INFO_REMOVED))
|
if (CHECK_FLAG (binfo->flags, BGP_INFO_REMOVED))
|
||||||
vty_out (vty, "R");
|
vty_out (vty, "R");
|
||||||
@@ -5974,6 +6010,7 @@ route_vty_out_detail (struct vty *vty, s
|
@@ -6064,6 +6100,7 @@ route_vty_out_detail (struct vty *vty, s
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BGP_SHOW_SCODE_HEADER "Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,%s r RIB-failure, S Stale, R Removed%s"
|
#define BGP_SHOW_SCODE_HEADER "Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,%s r RIB-failure, S Stale, R Removed%s"
|
||||||
|
@ -2829,7 +2829,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
#define BGP_SHOW_OCODE_HEADER "Origin codes: i - IGP, e - EGP, ? - incomplete%s%s"
|
#define BGP_SHOW_OCODE_HEADER "Origin codes: i - IGP, e - EGP, ? - incomplete%s%s"
|
||||||
#define BGP_SHOW_HEADER " Network Next Hop Metric LocPrf Weight Path%s"
|
#define BGP_SHOW_HEADER " Network Next Hop Metric LocPrf Weight Path%s"
|
||||||
#define BGP_SHOW_DAMP_HEADER " Network From Reuse Path%s"
|
#define BGP_SHOW_DAMP_HEADER " Network From Reuse Path%s"
|
||||||
@@ -6005,7 +6042,8 @@ enum bgp_show_type
|
@@ -6095,7 +6132,8 @@ enum bgp_show_type
|
||||||
bgp_show_type_flap_route_map,
|
bgp_show_type_flap_route_map,
|
||||||
bgp_show_type_flap_neighbor,
|
bgp_show_type_flap_neighbor,
|
||||||
bgp_show_type_dampend_paths,
|
bgp_show_type_dampend_paths,
|
||||||
|
@ -2839,7 +2839,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -6172,11 +6210,17 @@ bgp_show_table (struct vty *vty, struct
|
@@ -6262,11 +6300,17 @@ bgp_show_table (struct vty *vty, struct
|
||||||
|| CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
|
|| CHECK_FLAG (ri->flags, BGP_INFO_HISTORY))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -2857,7 +2857,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
||||||
if (type == bgp_show_type_dampend_paths
|
if (type == bgp_show_type_dampend_paths
|
||||||
|| type == bgp_show_type_damp_neighbor)
|
|| type == bgp_show_type_damp_neighbor)
|
||||||
@@ -6254,6 +6298,7 @@ bgp_show (struct vty *vty, struct bgp *b
|
@@ -6344,6 +6388,7 @@ bgp_show (struct vty *vty, struct bgp *b
|
||||||
return bgp_show_table (vty, table, &bgp->router_id, type, output_arg);
|
return bgp_show_table (vty, table, &bgp->router_id, type, output_arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2865,7 +2865,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
/* Header of detailed BGP route information */
|
/* Header of detailed BGP route information */
|
||||||
static void
|
static void
|
||||||
route_vty_out_detail_header (struct vty *vty, struct bgp *bgp,
|
route_vty_out_detail_header (struct vty *vty, struct bgp *bgp,
|
||||||
@@ -11823,6 +11868,64 @@ DEFUN (bgp_damp_set,
|
@@ -11904,6 +11949,64 @@ DEFUN (bgp_damp_set,
|
||||||
half, reuse, suppress, max);
|
half, reuse, suppress, max);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2930,7 +2930,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
ALIAS (bgp_damp_set,
|
ALIAS (bgp_damp_set,
|
||||||
bgp_damp_set2_cmd,
|
bgp_damp_set2_cmd,
|
||||||
"bgp dampening <1-45>",
|
"bgp dampening <1-45>",
|
||||||
@@ -11872,6 +11975,19 @@ DEFUN (show_ip_bgp_dampened_paths,
|
@@ -11953,6 +12056,19 @@ DEFUN (show_ip_bgp_dampened_paths,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2950,7 +2950,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
DEFUN (show_ip_bgp_flap_statistics,
|
DEFUN (show_ip_bgp_flap_statistics,
|
||||||
show_ip_bgp_flap_statistics_cmd,
|
show_ip_bgp_flap_statistics_cmd,
|
||||||
"show ip bgp flap-statistics",
|
"show ip bgp flap-statistics",
|
||||||
@@ -12398,6 +12514,7 @@ bgp_route_init (void)
|
@@ -12479,6 +12595,7 @@ bgp_route_init (void)
|
||||||
install_element (VIEW_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd);
|
install_element (VIEW_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd);
|
||||||
install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd);
|
install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd);
|
||||||
install_element (VIEW_NODE, &show_ip_bgp_dampened_paths_cmd);
|
install_element (VIEW_NODE, &show_ip_bgp_dampened_paths_cmd);
|
||||||
|
@ -2958,7 +2958,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
install_element (VIEW_NODE, &show_ip_bgp_flap_statistics_cmd);
|
install_element (VIEW_NODE, &show_ip_bgp_flap_statistics_cmd);
|
||||||
install_element (VIEW_NODE, &show_ip_bgp_flap_address_cmd);
|
install_element (VIEW_NODE, &show_ip_bgp_flap_address_cmd);
|
||||||
install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_cmd);
|
install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_cmd);
|
||||||
@@ -12531,6 +12648,7 @@ bgp_route_init (void)
|
@@ -12612,6 +12729,7 @@ bgp_route_init (void)
|
||||||
install_element (ENABLE_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd);
|
install_element (ENABLE_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd);
|
||||||
install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd);
|
install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd);
|
||||||
install_element (ENABLE_NODE, &show_ip_bgp_dampened_paths_cmd);
|
install_element (ENABLE_NODE, &show_ip_bgp_dampened_paths_cmd);
|
||||||
|
@ -2966,7 +2966,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
install_element (ENABLE_NODE, &show_ip_bgp_flap_statistics_cmd);
|
install_element (ENABLE_NODE, &show_ip_bgp_flap_statistics_cmd);
|
||||||
install_element (ENABLE_NODE, &show_ip_bgp_flap_address_cmd);
|
install_element (ENABLE_NODE, &show_ip_bgp_flap_address_cmd);
|
||||||
install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_cmd);
|
install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_cmd);
|
||||||
@@ -12918,6 +13036,10 @@ bgp_route_init (void)
|
@@ -13002,6 +13120,10 @@ bgp_route_init (void)
|
||||||
install_element (BGP_IPV4_NODE, &bgp_damp_unset_cmd);
|
install_element (BGP_IPV4_NODE, &bgp_damp_unset_cmd);
|
||||||
install_element (BGP_IPV4_NODE, &bgp_damp_unset2_cmd);
|
install_element (BGP_IPV4_NODE, &bgp_damp_unset2_cmd);
|
||||||
|
|
||||||
|
@ -2984,18 +2984,27 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
/* BGP routing information base
|
/* BGP routing information base
|
||||||
Copyright (C) 1996, 97, 98, 2000 Kunihiro Ishiguro
|
Copyright (C) 1996, 97, 98, 2000 Kunihiro Ishiguro
|
||||||
|
|
||||||
@@ -76,6 +77,10 @@ struct bgp_info
|
@@ -68,7 +69,7 @@ struct bgp_info
|
||||||
#define BGP_INFO_STALE (1 << 8)
|
int lock;
|
||||||
#define BGP_INFO_REMOVED (1 << 9)
|
|
||||||
|
/* BGP information status. */
|
||||||
|
- u_int16_t flags;
|
||||||
|
+ u_int32_t flags;
|
||||||
|
#define BGP_INFO_IGP_CHANGED (1 << 0)
|
||||||
|
#define BGP_INFO_DAMPED (1 << 1)
|
||||||
|
#define BGP_INFO_HISTORY (1 << 2)
|
||||||
|
@@ -82,6 +83,10 @@ struct bgp_info
|
||||||
#define BGP_INFO_COUNTED (1 << 10)
|
#define BGP_INFO_COUNTED (1 << 10)
|
||||||
+#define BGP_INFO_SUSPICIOUS_O (1 << 11)
|
#define BGP_INFO_MULTIPATH (1 << 11)
|
||||||
+#define BGP_INFO_SUSPICIOUS_P (1 << 12)
|
#define BGP_INFO_MULTIPATH_CHG (1 << 12)
|
||||||
+#define BGP_INFO_IGNORED_P (1 << 13)
|
+#define BGP_INFO_SUSPICIOUS_O (1 << 13)
|
||||||
+#define BGP_INFO_SUSPICIOUS_E (1 << 14)
|
+#define BGP_INFO_SUSPICIOUS_P (1 << 14)
|
||||||
|
+#define BGP_INFO_IGNORED_P (1 << 15)
|
||||||
|
+#define BGP_INFO_SUSPICIOUS_E (1 << 16)
|
||||||
|
|
||||||
/* BGP route type. This can be static, RIP, OSPF, BGP etc. */
|
/* BGP route type. This can be static, RIP, OSPF, BGP etc. */
|
||||||
u_char type;
|
u_char type;
|
||||||
@@ -120,7 +125,7 @@ struct bgp_static
|
@@ -126,7 +131,7 @@ struct bgp_static
|
||||||
|
|
||||||
/* Flags which indicate a route is unuseable in some form */
|
/* Flags which indicate a route is unuseable in some form */
|
||||||
#define BGP_INFO_UNUSEABLE \
|
#define BGP_INFO_UNUSEABLE \
|
||||||
|
@ -3077,7 +3086,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=c2ee55705c
|
||||||
|
|
||||||
--- a/lib/memtypes.c
|
--- a/lib/memtypes.c
|
||||||
+++ b/lib/memtypes.c
|
+++ b/lib/memtypes.c
|
||||||
@@ -147,6 +147,15 @@ struct memory_list memory_list_bgp[] =
|
@@ -148,6 +148,15 @@ struct memory_list memory_list_bgp[] =
|
||||||
{ MTYPE_PEER_UPDATE_SOURCE, "BGP peer update interface" },
|
{ MTYPE_PEER_UPDATE_SOURCE, "BGP peer update interface" },
|
||||||
{ MTYPE_BGP_DAMP_INFO, "Dampening info" },
|
{ MTYPE_BGP_DAMP_INFO, "Dampening info" },
|
||||||
{ MTYPE_BGP_DAMP_ARRAY, "BGP Dampening array" },
|
{ MTYPE_BGP_DAMP_ARRAY, "BGP Dampening array" },
|
||||||
|
|
|
@ -204,7 +204,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
return 0;
|
return 0;
|
||||||
--- a/bgpd/bgp_route.c
|
--- a/bgpd/bgp_route.c
|
||||||
+++ b/bgpd/bgp_route.c
|
+++ b/bgpd/bgp_route.c
|
||||||
@@ -5496,20 +5496,6 @@ enum bgp_display_type
|
@@ -5581,20 +5581,6 @@ enum bgp_display_type
|
||||||
static void
|
static void
|
||||||
route_vty_short_status_out (struct vty *vty, struct bgp_info *binfo)
|
route_vty_short_status_out (struct vty *vty, struct bgp_info *binfo)
|
||||||
{
|
{
|
||||||
|
@ -225,7 +225,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
/* Route status display. */
|
/* Route status display. */
|
||||||
if (CHECK_FLAG (binfo->flags, BGP_INFO_REMOVED))
|
if (CHECK_FLAG (binfo->flags, BGP_INFO_REMOVED))
|
||||||
vty_out (vty, "R");
|
vty_out (vty, "R");
|
||||||
@@ -5525,6 +5511,17 @@ route_vty_short_status_out (struct vty *
|
@@ -5610,6 +5596,17 @@ route_vty_short_status_out (struct vty *
|
||||||
/* Selected */
|
/* Selected */
|
||||||
if (CHECK_FLAG (binfo->flags, BGP_INFO_HISTORY))
|
if (CHECK_FLAG (binfo->flags, BGP_INFO_HISTORY))
|
||||||
vty_out (vty, "h");
|
vty_out (vty, "h");
|
||||||
|
@ -243,7 +243,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
else if (CHECK_FLAG (binfo->flags, BGP_INFO_DAMPED))
|
else if (CHECK_FLAG (binfo->flags, BGP_INFO_DAMPED))
|
||||||
vty_out (vty, "d");
|
vty_out (vty, "d");
|
||||||
else if (CHECK_FLAG (binfo->flags, BGP_INFO_SELECTED))
|
else if (CHECK_FLAG (binfo->flags, BGP_INFO_SELECTED))
|
||||||
@@ -5998,7 +5995,22 @@ route_vty_out_detail (struct vty *vty, s
|
@@ -6088,7 +6085,22 @@ route_vty_out_detail (struct vty *vty, s
|
||||||
if (binfo->extra && binfo->extra->damp_info)
|
if (binfo->extra && binfo->extra->damp_info)
|
||||||
bgp_damp_info_vty (vty, binfo);
|
bgp_damp_info_vty (vty, binfo);
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
#ifdef HAVE_CLOCK_MONOTONIC
|
#ifdef HAVE_CLOCK_MONOTONIC
|
||||||
tbuf = time(NULL) - (bgp_clock() - binfo->uptime);
|
tbuf = time(NULL) - (bgp_clock() - binfo->uptime);
|
||||||
vty_out (vty, " Last update: %s", ctime(&tbuf));
|
vty_out (vty, " Last update: %s", ctime(&tbuf));
|
||||||
@@ -6009,8 +6021,9 @@ route_vty_out_detail (struct vty *vty, s
|
@@ -6099,8 +6111,9 @@ route_vty_out_detail (struct vty *vty, s
|
||||||
vty_out (vty, "%s", VTY_NEWLINE);
|
vty_out (vty, "%s", VTY_NEWLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
#define BGP_SHOW_OCODE_HEADER "Origin codes: i - IGP, e - EGP, ? - incomplete%s%s"
|
#define BGP_SHOW_OCODE_HEADER "Origin codes: i - IGP, e - EGP, ? - incomplete%s%s"
|
||||||
#define BGP_SHOW_HEADER " Network Next Hop Metric LocPrf Weight Path%s"
|
#define BGP_SHOW_HEADER " Network Next Hop Metric LocPrf Weight Path%s"
|
||||||
#define BGP_SHOW_DAMP_HEADER " Network From Reuse Path%s"
|
#define BGP_SHOW_DAMP_HEADER " Network From Reuse Path%s"
|
||||||
@@ -6219,8 +6232,7 @@ bgp_show_table (struct vty *vty, struct
|
@@ -6309,8 +6322,7 @@ bgp_show_table (struct vty *vty, struct
|
||||||
if (header)
|
if (header)
|
||||||
{
|
{
|
||||||
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (*router_id), VTY_NEWLINE);
|
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (*router_id), VTY_NEWLINE);
|
||||||
|
@ -289,7 +289,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
||||||
if (type == bgp_show_type_dampend_paths
|
if (type == bgp_show_type_dampend_paths
|
||||||
|| type == bgp_show_type_damp_neighbor)
|
|| type == bgp_show_type_damp_neighbor)
|
||||||
@@ -9761,7 +9773,7 @@ show_adj_route (struct vty *vty, struct
|
@@ -9842,7 +9854,7 @@ show_adj_route (struct vty *vty, struct
|
||||||
PEER_STATUS_DEFAULT_ORIGINATE))
|
PEER_STATUS_DEFAULT_ORIGINATE))
|
||||||
{
|
{
|
||||||
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (bgp->router_id), VTY_NEWLINE);
|
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (bgp->router_id), VTY_NEWLINE);
|
||||||
|
@ -298,7 +298,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
||||||
|
|
||||||
vty_out (vty, "Originating default network 0.0.0.0%s%s",
|
vty_out (vty, "Originating default network 0.0.0.0%s%s",
|
||||||
@@ -9778,7 +9790,7 @@ show_adj_route (struct vty *vty, struct
|
@@ -9859,7 +9871,7 @@ show_adj_route (struct vty *vty, struct
|
||||||
if (header1)
|
if (header1)
|
||||||
{
|
{
|
||||||
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (bgp->router_id), VTY_NEWLINE);
|
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (bgp->router_id), VTY_NEWLINE);
|
||||||
|
@ -307,7 +307,7 @@ X-Git-Url: http://git.ozo.com/?p=quagga-pgbg.git;a=commitdiff_plain;h=06ac72f9f6
|
||||||
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
vty_out (vty, BGP_SHOW_OCODE_HEADER, VTY_NEWLINE, VTY_NEWLINE);
|
||||||
header1 = 0;
|
header1 = 0;
|
||||||
}
|
}
|
||||||
@@ -9802,7 +9814,7 @@ show_adj_route (struct vty *vty, struct
|
@@ -9883,7 +9895,7 @@ show_adj_route (struct vty *vty, struct
|
||||||
if (header1)
|
if (header1)
|
||||||
{
|
{
|
||||||
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (bgp->router_id), VTY_NEWLINE);
|
vty_out (vty, "BGP table version is 0, local router ID is %s%s", inet_ntoa (bgp->router_id), VTY_NEWLINE);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/vtysh/vtysh.c
|
--- a/vtysh/vtysh.c
|
||||||
+++ b/vtysh/vtysh.c
|
+++ b/vtysh/vtysh.c
|
||||||
@@ -268,7 +268,7 @@ vtysh_pager_init (void)
|
@@ -269,7 +269,7 @@ vtysh_pager_init (void)
|
||||||
if (pager_defined)
|
if (pager_defined)
|
||||||
vtysh_pager_name = strdup (pager_defined);
|
vtysh_pager_name = strdup (pager_defined);
|
||||||
else
|
else
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Command execution over the vty interface. */
|
/* Command execution over the vty interface. */
|
||||||
@@ -1866,7 +1866,7 @@ DEFUN (vtysh_terminal_length,
|
@@ -1885,7 +1885,7 @@ DEFUN (vtysh_terminal_length,
|
||||||
{
|
{
|
||||||
int lines;
|
int lines;
|
||||||
char *endptr = NULL;
|
char *endptr = NULL;
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
lines = strtol (argv[0], &endptr, 10);
|
lines = strtol (argv[0], &endptr, 10);
|
||||||
if (lines < 0 || lines > 512 || *endptr != '\0')
|
if (lines < 0 || lines > 512 || *endptr != '\0')
|
||||||
@@ -1883,7 +1883,7 @@ DEFUN (vtysh_terminal_length,
|
@@ -1902,7 +1902,7 @@ DEFUN (vtysh_terminal_length,
|
||||||
|
|
||||||
if (lines != 0)
|
if (lines != 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
From b24b19f719fdd9c3d61a0c93552cd64d832d964c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephen Hemminger <shemminger@vyatta.com>
|
|
||||||
Date: Tue, 6 Dec 2011 14:09:18 +0400
|
|
||||||
Subject: [PATCH] lib: fix memory leak on connect() failure
|
|
||||||
|
|
||||||
Change sockunion_log() to not use strdup(). This fixes a small memory
|
|
||||||
leak that occurs on every failed connect(), and is simpler/cleaner.
|
|
||||||
---
|
|
||||||
lib/sockunion.c | 23 +++++++++++------------
|
|
||||||
1 files changed, 11 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
--- a/lib/sockunion.c
|
|
||||||
+++ b/lib/sockunion.c
|
|
||||||
@@ -297,27 +297,24 @@ sockunion_sizeof (union sockunion *su)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return sockunion structure : this function should be revised. */
|
|
||||||
-static char *
|
|
||||||
-sockunion_log (union sockunion *su)
|
|
||||||
+static const char *
|
|
||||||
+sockunion_log (union sockunion *su, char *buf, size_t len)
|
|
||||||
{
|
|
||||||
- static char buf[SU_ADDRSTRLEN];
|
|
||||||
-
|
|
||||||
switch (su->sa.sa_family)
|
|
||||||
{
|
|
||||||
case AF_INET:
|
|
||||||
- snprintf (buf, SU_ADDRSTRLEN, "%s", inet_ntoa (su->sin.sin_addr));
|
|
||||||
- break;
|
|
||||||
+ return inet_ntop(AF_INET, &su->sin.sin_addr, buf, len);
|
|
||||||
+
|
|
||||||
#ifdef HAVE_IPV6
|
|
||||||
case AF_INET6:
|
|
||||||
- snprintf (buf, SU_ADDRSTRLEN, "%s",
|
|
||||||
- inet_ntop (AF_INET6, &(su->sin6.sin6_addr), buf, SU_ADDRSTRLEN));
|
|
||||||
+ return inet_ntop(AF_INET6, &(su->sin6.sin6_addr), buf, len);
|
|
||||||
break;
|
|
||||||
#endif /* HAVE_IPV6 */
|
|
||||||
+
|
|
||||||
default:
|
|
||||||
- snprintf (buf, SU_ADDRSTRLEN, "af_unknown %d ", su->sa.sa_family);
|
|
||||||
- break;
|
|
||||||
+ snprintf (buf, len, "af_unknown %d ", su->sa.sa_family);
|
|
||||||
+ return buf;
|
|
||||||
}
|
|
||||||
- return (XSTRDUP (MTYPE_TMP, buf));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* sockunion_connect returns
|
|
||||||
@@ -379,8 +376,10 @@ sockunion_connect (int fd, union sockuni
|
|
||||||
{
|
|
||||||
if (errno != EINPROGRESS)
|
|
||||||
{
|
|
||||||
+ char str[SU_ADDRSTRLEN];
|
|
||||||
zlog_info ("can't connect to %s fd %d : %s",
|
|
||||||
- sockunion_log (&su), fd, safe_strerror (errno));
|
|
||||||
+ sockunion_log (&su, str, sizeof str),
|
|
||||||
+ fd, safe_strerror (errno));
|
|
||||||
return connect_error;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
From 6a2e0f36b103386e57dbe3a6ee4716e809111198 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephen Hemminger <shemminger@vyatta.com>
|
|
||||||
Date: Tue, 6 Dec 2011 14:04:12 +0400
|
|
||||||
Subject: [PATCH] lib: call filter delete hook before freeing access list
|
|
||||||
|
|
||||||
The delete_hook was being run after calling access list delete function.
|
|
||||||
This would cause ospf to dereference a NULL, in ospf_filter_update
|
|
||||||
because 'access->name' was already freed.
|
|
||||||
|
|
||||||
See also:
|
|
||||||
https://bugzilla.vyatta.com/show_bug.cgi?id=7654
|
|
||||||
---
|
|
||||||
lib/filter.c | 12 ++++++------
|
|
||||||
1 files changed, 6 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
--- a/lib/filter.c
|
|
||||||
+++ b/lib/filter.c
|
|
||||||
@@ -1337,13 +1337,13 @@ DEFUN (no_access_list_all,
|
|
||||||
|
|
||||||
master = access->master;
|
|
||||||
|
|
||||||
- /* Delete all filter from access-list. */
|
|
||||||
- access_list_delete (access);
|
|
||||||
-
|
|
||||||
/* Run hook function. */
|
|
||||||
if (master->delete_hook)
|
|
||||||
(*master->delete_hook) (access);
|
|
||||||
|
|
||||||
+ /* Delete all filter from access-list. */
|
|
||||||
+ access_list_delete (access);
|
|
||||||
+
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1508,13 +1508,13 @@ DEFUN (no_ipv6_access_list_all,
|
|
||||||
|
|
||||||
master = access->master;
|
|
||||||
|
|
||||||
- /* Delete all filter from access-list. */
|
|
||||||
- access_list_delete (access);
|
|
||||||
-
|
|
||||||
/* Run hook function. */
|
|
||||||
if (master->delete_hook)
|
|
||||||
(*master->delete_hook) (access);
|
|
||||||
|
|
||||||
+ /* Delete all filter from access-list. */
|
|
||||||
+ access_list_delete (access);
|
|
||||||
+
|
|
||||||
return CMD_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
From ce0af6ff5a4f200035ed4134da72a67f49a21dd6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Oleg A. Arkhangelsky" <sysoleg@yandex.ru>
|
|
||||||
Date: Sat, 3 Dec 2011 15:18:19 +0400
|
|
||||||
Subject: [PATCH] bgpd: fix memory leak for extra attributes
|
|
||||||
|
|
||||||
this fixes commit b881c7074bb698aeb1b099175b325734fc6e44d2
|
|
||||||
---
|
|
||||||
bgpd/bgp_attr.c | 1 +
|
|
||||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
--- a/bgpd/bgp_attr.c
|
|
||||||
+++ b/bgpd/bgp_attr.c
|
|
||||||
@@ -675,6 +675,7 @@ bgp_attr_unintern (struct attr **attr)
|
|
||||||
}
|
|
||||||
|
|
||||||
bgp_attr_unintern_sub (&tmp);
|
|
||||||
+ bgp_attr_extra_free (&tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
Loading…
Reference in a new issue