summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2018-08-29 19:52:24 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2018-08-29 19:52:24 +0000
commitdc2e9a031696ee28b523d23ab6245ae001d2de21 (patch)
tree9c8ec9dcc37f63109705f357267d377ba8a31b82 /usr.sbin
parentd6867d4dc9d525db058acb5be9cad3a8dcd46755 (diff)
Introduce 'bgpctl show rib error' to show all prefixes that got flagged
invalid because of a soft parsing error. These prefixes are never eligible or valid but the listing may help to understand what is going on. 'bgpctl show rib error' run automatically on Adj-RIB-In since that is the only RIB that has such prefixes. OK sthen@ denis@
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/bgpctl/bgpctl.89
-rw-r--r--usr.sbin/bgpctl/bgpctl.c8
-rw-r--r--usr.sbin/bgpctl/parser.c3
3 files changed, 11 insertions, 9 deletions
diff --git a/usr.sbin/bgpctl/bgpctl.8 b/usr.sbin/bgpctl/bgpctl.8
index 38fd56c895e..098bcc12c55 100644
--- a/usr.sbin/bgpctl/bgpctl.8
+++ b/usr.sbin/bgpctl/bgpctl.8
@@ -1,4 +1,4 @@
-.\" $OpenBSD: bgpctl.8,v 1.79 2017/10/15 20:44:21 deraadt Exp $
+.\" $OpenBSD: bgpctl.8,v 1.80 2018/08/29 19:52:23 claudio Exp $
.\"
.\" Copyright (c) 2003 Henning Brauer <henning@openbsd.org>
.\"
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: October 15 2017 $
+.Dd $Mdocdate: August 29 2018 $
.Dt BGPCTL 8
.Os
.Sh NAME
@@ -363,6 +363,8 @@ are defined:
.It Cm best
Alias for
.Ic selected .
+.It Cm error
+Show only prefixes which are marked invalid and are treated as withdraw.
.It Cm selected
Show only selected routes.
.It Cm ssv
@@ -376,9 +378,6 @@ Show more detailed output for matching routes.
Limit the output to the given address family.
.It Cm in
Show routes from the unfiltered Adj-RIB-In.
-This is only possible if
-.Em softreconfig in
-is enabled for the neighbor.
The
.Cm neighbor
needs to be specified.
diff --git a/usr.sbin/bgpctl/bgpctl.c b/usr.sbin/bgpctl/bgpctl.c
index 5d490b1076b..75778d80551 100644
--- a/usr.sbin/bgpctl/bgpctl.c
+++ b/usr.sbin/bgpctl/bgpctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bgpctl.c,v 1.210 2018/07/29 13:02:01 deraadt Exp $ */
+/* $OpenBSD: bgpctl.c,v 1.211 2018/08/29 19:52:23 claudio Exp $ */
/*
* Copyright (c) 2003 Henning Brauer <henning@openbsd.org>
@@ -1181,8 +1181,8 @@ show_interface_msg(struct imsg *imsg)
void
show_rib_summary_head(void)
{
- printf("flags: * = Valid, > = Selected, I = via IBGP, A = Announced, "
- "S = Stale\n");
+ printf("flags: * = Valid, > = Selected, I = via IBGP, A = Announced,\n"
+ " S = Stale, E = Error\n");
printf("origin: i = IGP, e = EGP, ? = Incomplete\n\n");
printf("%-5s %-20s %-15s %5s %5s %s\n", "flags", "destination",
"gateway", "lpref", "med", "aspath origin");
@@ -1222,6 +1222,8 @@ print_flags(u_int8_t flags, int sum)
char *p = flagstr;
if (sum) {
+ if (flags & F_PREF_INVALID)
+ *p++ = 'E';
if (flags & F_PREF_ANNOUNCE)
*p++ = 'A';
if (flags & F_PREF_INTERNAL)
diff --git a/usr.sbin/bgpctl/parser.c b/usr.sbin/bgpctl/parser.c
index 7435538e0cc..6b27d1d6efa 100644
--- a/usr.sbin/bgpctl/parser.c
+++ b/usr.sbin/bgpctl/parser.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: parser.c,v 1.82 2018/07/10 13:03:06 benno Exp $ */
+/* $OpenBSD: parser.c,v 1.83 2018/08/29 19:52:23 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -177,6 +177,7 @@ static const struct token t_show_rib[] = {
{ FLAG, "best", F_CTL_ACTIVE, t_show_rib},
{ FLAG, "selected", F_CTL_ACTIVE, t_show_rib},
{ FLAG, "detail", F_CTL_DETAIL, t_show_rib},
+ { FLAG, "error", F_CTL_INVALID, t_show_rib},
{ FLAG, "ssv" , F_CTL_SSV, t_show_rib},
{ FLAG, "in", F_CTL_ADJ_IN, t_show_rib},
{ FLAG, "out", F_CTL_ADJ_OUT, t_show_rib},