summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 02:40:46 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 02:40:46 +0200
commit503006bc2a48c9ec70ee9e8a9fd7725b9304642f (patch)
tree85be07b08e0c8ade0881dcb35de55e49cc50bd3c /bgpd
parentFix "no set metric" for ospf6 and RIP (diff)
downloadfrr-503006bc2a48c9ec70ee9e8a9fd7725b9304642f.tar.xz
frr-503006bc2a48c9ec70ee9e8a9fd7725b9304642f.zip
Make "no redistribute" always remove the redistribute statement
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Diffstat (limited to '')
-rw-r--r--bgpd/bgp_vty.c96
-rw-r--r--bgpd/bgp_zebra.c29
-rw-r--r--bgpd/bgp_zebra.h2
3 files changed, 8 insertions, 119 deletions
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 10bdc1507..9f0452e92 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -9494,7 +9494,7 @@ DEFUN (no_bgp_redistribute_ipv4,
return bgp_redistribute_unset (vty->index, AFI_IP, type);
}
-DEFUN (no_bgp_redistribute_ipv4_rmap,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_rmap_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD",
NO_STR
@@ -9502,21 +9502,8 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
QUAGGA_IP_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- bgp_redistribute_routemap_unset (vty->index, AFI_IP, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv4_metric,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_metric_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295>",
NO_STR
@@ -9524,21 +9511,8 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
QUAGGA_IP_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- bgp_redistribute_metric_unset (vty->index, AFI_IP, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_rmap_metric_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
NO_STR
@@ -9548,22 +9522,8 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
"Pointer to route-map entries\n"
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- bgp_redistribute_metric_unset (vty->index, AFI_IP, type);
- bgp_redistribute_routemap_unset (vty->index, AFI_IP, type);
- return CMD_SUCCESS;
-}
-ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv4,
no_bgp_redistribute_ipv4_metric_rmap_cmd,
"no redistribute " QUAGGA_IP_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
NO_STR
@@ -9708,7 +9668,7 @@ DEFUN (no_bgp_redistribute_ipv6,
return bgp_redistribute_unset (vty->index, AFI_IP6, type);
}
-DEFUN (no_bgp_redistribute_ipv6_rmap,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_rmap_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD",
NO_STR
@@ -9716,21 +9676,8 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
QUAGGA_IP6_REDIST_HELP_STR_BGPD
"Route map reference\n"
"Pointer to route-map entries\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP6, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- bgp_redistribute_routemap_unset (vty->index, AFI_IP6, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv6_metric,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_metric_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295>",
NO_STR
@@ -9738,21 +9685,8 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
QUAGGA_IP6_REDIST_HELP_STR_BGPD
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP6, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
- bgp_redistribute_metric_unset (vty->index, AFI_IP6, type);
- return CMD_SUCCESS;
-}
-
-DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_rmap_metric_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " route-map WORD metric <0-4294967295>",
NO_STR
@@ -9762,22 +9696,8 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
"Pointer to route-map entries\n"
"Metric for redistributed routes\n"
"Default metric\n")
-{
- int type;
-
- type = proto_redistnum (AFI_IP6, argv[0]);
- if (type < 0 || type == ZEBRA_ROUTE_BGP)
- {
- vty_out (vty, "%% Invalid route type%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- bgp_redistribute_metric_unset (vty->index, AFI_IP6, type);
- bgp_redistribute_routemap_unset (vty->index, AFI_IP6, type);
- return CMD_SUCCESS;
-}
-ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
+ALIAS (no_bgp_redistribute_ipv6,
no_bgp_redistribute_ipv6_metric_rmap_cmd,
"no redistribute " QUAGGA_IP6_REDIST_STR_BGPD " metric <0-4294967295> route-map WORD",
NO_STR
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c
index b3d110911..c109eaba9 100644
--- a/bgpd/bgp_zebra.c
+++ b/bgpd/bgp_zebra.c
@@ -1419,35 +1419,6 @@ bgp_redistribute_unset (struct bgp *bgp, afi_t afi, int type)
return CMD_SUCCESS;
}
-/* Unset redistribution route-map configuration. */
-int
-bgp_redistribute_routemap_unset (struct bgp *bgp, afi_t afi, int type)
-{
- if (! bgp->rmap[afi][type].name)
- return 0;
-
- /* Unset route-map. */
- free (bgp->rmap[afi][type].name);
- bgp->rmap[afi][type].name = NULL;
- bgp->rmap[afi][type].map = NULL;
-
- return 1;
-}
-
-/* Unset redistribution metric configuration. */
-int
-bgp_redistribute_metric_unset (struct bgp *bgp, afi_t afi, int type)
-{
- if (! bgp->redist_metric_flag[afi][type])
- return 0;
-
- /* Unset metric. */
- bgp->redist_metric_flag[afi][type] = 0;
- bgp->redist_metric[afi][type] = 0;
-
- return 1;
-}
-
void
bgp_zclient_reset (void)
{
diff --git a/bgpd/bgp_zebra.h b/bgpd/bgp_zebra.h
index eb049a47e..334e3af1d 100644
--- a/bgpd/bgp_zebra.h
+++ b/bgpd/bgp_zebra.h
@@ -43,8 +43,6 @@ extern int bgp_redistribute_resend (struct bgp *, afi_t, int);
extern int bgp_redistribute_rmap_set (struct bgp *, afi_t, int, const char *);
extern int bgp_redistribute_metric_set (struct bgp *, afi_t, int, u_int32_t);
extern int bgp_redistribute_unset (struct bgp *, afi_t, int);
-extern int bgp_redistribute_routemap_unset (struct bgp *, afi_t, int);
-extern int bgp_redistribute_metric_unset (struct bgp *, afi_t, int);
extern struct interface *if_lookup_by_ipv4 (struct in_addr *);
extern struct interface *if_lookup_by_ipv4_exact (struct in_addr *);