Dear all,
I've consulted with numerous user interface experts, their consistent
advice was to facilitate internalization by provoking simpler, stronger
emotions through the text based interface.
bgpctl(8) will now provide simplified 'SAD' or 'HAPPY' ascii ideograms
to help network operators quickly understand whether a route is valid or
not. I suspect this patch is the final missing piece to make the
struggle for RPKI adoption a thing of the past.
Example output:
$ bgpctl show rib
flags: * = Valid, > = Selected, I = via IBGP, A = Announced,
S = Stale, E = Error
origin validation state: ? = not-found, :-) = valid, :-( = invalid
origin: i = IGP, e = EGP, ? = Incomplete
flags ovs destination gateway lpref med aspath origin
I*> :-) 1.0.0.0/24 192.147.168.1 100 0 2914 13335 i
I*> ? 199.185.136.0/23 192.147.168.1 100 0 2914 3257 22512
i
I*> :-( 199.47.227.0/24 192.147.168.1 100 0 2914 7018 17216
i
Kind regards,
Job
diff --git usr.sbin/bgpctl/bgpctl.c usr.sbin/bgpctl/bgpctl.c
index ae5dab9c620..f998514fe90 100644
--- usr.sbin/bgpctl/bgpctl.c
+++ usr.sbin/bgpctl/bgpctl.c
@@ -1127,7 +1127,7 @@ show_rib_summary_head(void)
{
printf("flags: * = Valid, > = Selected, I = via IBGP, A = Announced,\n"
" S = Stale, E = Error\n");
- printf("origin validation state: N = not-found, V = valid, ! = invalid\n");
+ printf("origin validation state: ? = not-found, :-) = valid, :-( =
invalid\n");
printf("origin: i = IGP, e = EGP, ? = Incomplete\n\n");
printf("%-5s %3s %-20s %-15s %5s %5s %s\n", "flags", "ovs", "destination",
"gateway", "lpref", "med", "aspath origin");
@@ -1204,11 +1204,11 @@ print_ovs(u_int8_t validation_state, int sum)
{
switch (validation_state) {
case ROA_INVALID:
- return (sum ? "!" : "invalid");
+ return (sum ? ":-(" : "invalid");
case ROA_VALID:
- return (sum ? "V" : "valid");
+ return (sum ? ":-)" : "valid");
default:
- return (sum ? "N" : "not-found");
+ return (sum ? "?" : "not-found");
}
}