summaryrefslogtreecommitdiff
path: root/zebra/zebra_vty.c
diff options
context:
space:
mode:
authorDaniel Walton <dwalton76@gmail.com>2017-09-05 12:54:05 -0400
committerGitHub <noreply@github.com>2017-09-05 12:54:05 -0400
commit41bcc4a91e5f68f3cf9c01b63f9d9281ebdfa654 (patch)
treefa38862d2e014806b278b7d5cb8a8b4449fccdfa /zebra/zebra_vty.c
parent75048747e9f4e27a1669c2f7dbb1b73d63e7ab5c (diff)
parent57a58d777f65d8fec9efe52c3e69c9341694eb69 (diff)
Merge pull request #1093 from opensourcerouting/static_blackhole_display
zebra: display static blackhole routes consistently
Diffstat (limited to 'zebra/zebra_vty.c')
-rw-r--r--zebra/zebra_vty.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index 95ba19b1f6..1573646adc 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -74,7 +74,7 @@ static int zebra_static_route(struct vty *vty, afi_t afi, safi_t safi,
union g_addr gate;
union g_addr *gatep = NULL;
struct in_addr mask;
- enum blackhole_type bh_type = 0;
+ enum static_blackhole_type bh_type = 0;
route_tag_t tag = 0;
struct zebra_vrf *zvrf;
u_char type;
@@ -165,18 +165,21 @@ static int zebra_static_route(struct vty *vty, afi_t afi, safi_t safi,
}
}
+ /* Null0 static route. */
+ if ((ifname != NULL)
+ && (strncasecmp(ifname, "Null0", strlen(ifname)) == 0)) {
+ bh_type = STATIC_BLACKHOLE_NULL;
+ ifname = NULL;
+ }
+
/* Route flags */
if (flag_str) {
switch (flag_str[0]) {
case 'r':
- case 'R': /* XXX */
- bh_type = BLACKHOLE_REJECT;
+ bh_type = STATIC_BLACKHOLE_REJECT;
break;
- case 'n':
- case 'N' /* XXX */:
case 'b':
- case 'B': /* XXX */
- bh_type = BLACKHOLE_NULL;
+ bh_type = STATIC_BLACKHOLE_DROP;
break;
default:
vty_out(vty, "%% Malformed flag %s \n", flag_str);
@@ -335,7 +338,8 @@ DEFPY(ip_route, ip_route_cmd,
<A.B.C.D/M$prefix|A.B.C.D$prefix A.B.C.D$mask>\
<\
{A.B.C.D$gate|INTERFACE$ifname}\
- |<null0|reject|blackhole>$flag\
+ |null0$ifname\
+ |<reject|blackhole>$flag\
>\
[{\
tag (1-4294967295)\
@@ -1712,12 +1716,15 @@ static int static_config(struct vty *vty, afi_t afi, safi_t safi,
break;
case STATIC_BLACKHOLE:
switch (si->bh_type) {
- case BLACKHOLE_REJECT:
- vty_out(vty, " reject");
- break;
- default:
+ case STATIC_BLACKHOLE_DROP:
vty_out(vty, " blackhole");
break;
+ case STATIC_BLACKHOLE_NULL:
+ vty_out(vty, " Null0");
+ break;
+ case STATIC_BLACKHOLE_REJECT:
+ vty_out(vty, " reject");
+ break;
}
break;
case STATIC_IPV4_GATEWAY_IFNAME:
@@ -1770,7 +1777,8 @@ DEFPY(ipv6_route,
"[no] ipv6 route X:X::X:X/M$prefix [from X:X::X:X/M]\
<\
{X:X::X:X$gate|INTERFACE$ifname}\
- |<null0|reject|blackhole>$flag\
+ |null0$ifname\
+ |<reject|blackhole>$flag\
>\
[{\
tag (1-4294967295)\