diff options
| author | Daniel Walton <dwalton76@gmail.com> | 2017-09-05 12:54:05 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-05 12:54:05 -0400 |
| commit | 41bcc4a91e5f68f3cf9c01b63f9d9281ebdfa654 (patch) | |
| tree | fa38862d2e014806b278b7d5cb8a8b4449fccdfa /zebra/zebra_vty.c | |
| parent | 75048747e9f4e27a1669c2f7dbb1b73d63e7ab5c (diff) | |
| parent | 57a58d777f65d8fec9efe52c3e69c9341694eb69 (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.c | 34 |
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)\ |
