bgpctl help output follows no clear order. I decided to sort all
keywords and flags alphabetically. Also fixup the manpage a bit since
some additions where added in the wrong spot.
I think the output of 'bgpctl show rib help' is the worst (both before and
after). It is long and some keywords are not self-explanatory.
Still I prefer them to be alphabetically sorted.
--
:wq Claudio
Index: bgpctl.8
===================================================================
RCS file: /cvs/src/usr.sbin/bgpctl/bgpctl.8,v
retrieving revision 1.107
diff -u -p -r1.107 bgpctl.8
--- bgpctl.8 12 Apr 2023 17:19:16 -0000 1.107
+++ bgpctl.8 13 Apr 2023 10:21:05 -0000
@@ -180,20 +180,20 @@ can be an IP address, in which case the
or a flag:
.Pp
.Bl -tag -width tableXnumber -compact
-.It Cm connected
-Show only connected routes.
-.It Cm static
-Show only static routes.
.It Cm bgp
Show only routes originating from
-.Xr bgpd 8
-itself.
-.It Cm nexthop
-Show only routes required to reach a BGP nexthop.
+.It Cm connected
+Show only connected routes.
.It Cm inet
Show only IPv4 routes.
.It Cm inet6
Show only IPv6 routes.
+.It Cm nexthop
+Show only routes required to reach a BGP nexthop.
+.It Cm static
+Show only static routes.
+.Xr bgpd 8
+itself.
.It Cm table Ar number
Show the routing table with ID
.Ar number
@@ -317,6 +317,7 @@ Show RIB entry for this CIDR prefix.
.Xc
Show all entries in the specified range.
.\".It Ar address/len Cm longer-prefixes
+.\".It Ar address/len Cm or-longer
.It Xo
.Ar address Ns Li / Ns Ar len
.Cm or-shorter
@@ -326,20 +327,24 @@ Show all entries covering and including
Show all entries with
.Ar as
anywhere in the AS path.
+.It Cm avs Pq Ic valid | unknown | invalid
+Show all entries with matching ASAP Validation State (AVS).
.It Cm community Ar community
Show all entries with community
.Ar community .
+.It Cm empty-as
+Show all entries that are internal routes with no AS's in the AS path.
.It Cm large-community Ar large-community
Show all entries with large-community
.Ar large-community .
-.It Cm empty-as
-Show all entries that are internal routes with no AS's in the AS path.
.It Cm memory
Show RIB memory statistics.
.It Cm neighbor Ar peer
Show only entries from the specified peer.
.It Cm neighbor group Ar description
Show only entries from the specified peer group.
+.It Cm ovs Pq Ic valid | not-found | invalid
+Show all entries with matching Origin Validation State (OVS).
.It Cm path-id Ar pathid
Show only entries which match the specified
.Ar pathid .
@@ -365,10 +370,6 @@ Show only entries from the specified RIB
Show all entries with
.Ar as
anywhere but rightmost.
-.It Cm ovs Pq Ic valid | not-found | invalid
-Show all entries with matching Origin Validation State (OVS).
-.It Cm avs Pq Ic valid | unknown | invalid
-Show all entries with matching ASAP Validation State (AVS).
.El
.Pp
Additionally, the following
Index: parser.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpctl/parser.c,v
retrieving revision 1.123
diff -u -p -r1.123 parser.c
--- parser.c 12 Apr 2023 17:19:16 -0000 1.123
+++ parser.c 13 Apr 2023 10:21:05 -0000
@@ -120,12 +120,12 @@ static const struct token t_communicatio
static const struct token t_show_rib_path[];
static const struct token t_main[] = {
- { KEYWORD, "reload", RELOAD, t_communication},
- { KEYWORD, "show", SHOW, t_show},
{ KEYWORD, "fib", FIB, t_fib},
+ { KEYWORD, "log", NONE, t_log},
{ KEYWORD, "neighbor", NEIGHBOR, t_neighbor},
{ KEYWORD, "network", NONE, t_network},
- { KEYWORD, "log", NONE, t_log},
+ { KEYWORD, "reload", RELOAD, t_communication},
+ { KEYWORD, "show", SHOW, t_show},
{ ENDTOKEN, "", NONE, NULL}
};
@@ -133,17 +133,17 @@ static const struct token t_show[] = {
{ NOTOKEN, "", NONE, NULL},
{ KEYWORD, "fib", SHOW_FIB, t_show_fib},
{ KEYWORD, "interfaces", SHOW_INTERFACE, NULL},
+ { KEYWORD, "ip", NONE, t_show_ip},
+ { KEYWORD, "metrics", SHOW_METRICS, NULL},
+ { KEYWORD, "mrt", SHOW_MRT, t_show_mrt},
{ KEYWORD, "neighbor", SHOW_NEIGHBOR, t_show_neighbor},
{ KEYWORD, "network", NETWORK_SHOW, t_network_show},
{ KEYWORD, "nexthop", SHOW_NEXTHOP, NULL},
{ KEYWORD, "rib", SHOW_RIB, t_show_rib},
- { KEYWORD, "tables", SHOW_FIB_TABLES, NULL},
- { KEYWORD, "ip", NONE, t_show_ip},
- { KEYWORD, "summary", SHOW_SUMMARY, t_show_summary},
- { KEYWORD, "sets", SHOW_SET, NULL},
{ KEYWORD, "rtr", SHOW_RTR, NULL},
- { KEYWORD, "mrt", SHOW_MRT, t_show_mrt},
- { KEYWORD, "metrics", SHOW_METRICS, NULL},
+ { KEYWORD, "sets", SHOW_SET, NULL},
+ { KEYWORD, "summary", SHOW_SUMMARY, t_show_summary},
+ { KEYWORD, "tables", SHOW_FIB_TABLES, NULL},
{ ENDTOKEN, "", NONE, NULL}
};
@@ -155,10 +155,10 @@ static const struct token t_show_summary
static const struct token t_show_fib[] = {
{ NOTOKEN, "", NONE, NULL},
- { FLAG, "connected", F_CONNECTED, t_show_fib},
- { FLAG, "static", F_STATIC, t_show_fib},
{ FLAG, "bgp", F_BGPD, t_show_fib},
+ { FLAG, "connected", F_CONNECTED, t_show_fib},
{ FLAG, "nexthop", F_NEXTHOP, t_show_fib},
+ { FLAG, "static", F_STATIC, t_show_fib},
{ KEYWORD, "table", NONE, t_show_fib_table},
{ FAMILY, "", NONE, t_show_fib},
{ ADDRESS, "", NONE, NULL},
@@ -168,60 +168,60 @@ static const struct token t_show_fib[] =
static const struct token t_show_rib[] = {
{ NOTOKEN, "", NONE, NULL},
{ ASTYPE, "as", AS_ALL, t_show_rib_as},
- { ASTYPE, "source-as", AS_SOURCE, t_show_rib_as},
- { ASTYPE, "transit-as", AS_TRANSIT, t_show_rib_as},
- { ASTYPE, "peer-as", AS_PEER, t_show_rib_as},
- { ASTYPE, "empty-as", AS_EMPTY, t_show_rib},
- { KEYWORD, "community", NONE, t_show_community},
- { KEYWORD, "ext-community", NONE, t_show_extcommunity},
- { KEYWORD, "large-community", NONE, t_show_largecommunity},
+ { KEYWORD, "avs", NONE, t_show_avs},
{ FLAG, "best", F_CTL_BEST, t_show_rib},
- { FLAG, "selected", F_CTL_BEST, t_show_rib},
+ { KEYWORD, "community", NONE, t_show_community},
{ FLAG, "detail", F_CTL_DETAIL, t_show_rib},
+ { ASTYPE, "empty-as", AS_EMPTY, t_show_rib},
{ FLAG, "error", F_CTL_INVALID, t_show_rib},
+ { KEYWORD, "ext-community", NONE, t_show_extcommunity},
+ { FLAG, "in", F_CTL_ADJ_IN, t_show_rib},
{ FLAG, "invalid", F_CTL_INELIGIBLE, t_show_rib},
+ { KEYWORD, "large-community", NONE, t_show_largecommunity},
{ FLAG, "leaked", F_CTL_LEAKED, t_show_rib},
- { FLAG, "in", F_CTL_ADJ_IN, t_show_rib},
- { FLAG, "out", F_CTL_ADJ_OUT, t_show_rib},
- { FLAG, "ssv" , F_CTL_SSV, t_show_rib},
+ { KEYWORD, "memory", SHOW_RIB_MEM, NULL},
{ KEYWORD, "neighbor", NONE, t_show_rib_neigh},
- { KEYWORD, "avs", NONE, t_show_avs},
+ { FLAG, "out", F_CTL_ADJ_OUT, t_show_rib},
{ KEYWORD, "ovs", NONE, t_show_ovs},
{ KEYWORD, "path-id", NONE, t_show_rib_path},
- { KEYWORD, "table", NONE, t_show_rib_rib},
+ { ASTYPE, "peer-as", AS_PEER, t_show_rib_as},
+ { FLAG, "selected", F_CTL_BEST, t_show_rib},
+ { ASTYPE, "source-as", AS_SOURCE, t_show_rib_as},
+ { FLAG, "ssv", F_CTL_SSV, t_show_rib},
{ KEYWORD, "summary", SHOW_SUMMARY, t_show_summary},
- { KEYWORD, "memory", SHOW_RIB_MEM, NULL},
+ { KEYWORD, "table", NONE, t_show_rib_rib},
+ { ASTYPE, "transit-as", AS_TRANSIT, t_show_rib_as},
{ FAMILY, "", NONE, t_show_rib},
{ PREFIX, "", NONE, t_show_prefix},
{ ENDTOKEN, "", NONE, NULL}
};
static const struct token t_show_avs[] = {
- { FLAG, "valid" , F_CTL_AVS_VALID, t_show_rib},
{ FLAG, "invalid", F_CTL_AVS_INVALID, t_show_rib},
{ FLAG, "unknown", F_CTL_AVS_UNKNOWN, t_show_rib},
+ { FLAG, "valid" , F_CTL_AVS_VALID, t_show_rib},
{ ENDTOKEN, "", NONE, NULL}
};
static const struct token t_show_ovs[] = {
- { FLAG, "valid" , F_CTL_OVS_VALID, t_show_rib},
{ FLAG, "invalid", F_CTL_OVS_INVALID, t_show_rib},
{ FLAG, "not-found", F_CTL_OVS_NOTFOUND, t_show_rib},
+ { FLAG, "valid" , F_CTL_OVS_VALID, t_show_rib},
{ ENDTOKEN, "", NONE, NULL}
};
static const struct token t_show_mrt[] = {
{ NOTOKEN, "", NONE, NULL},
- { ASTYPE, "as", AS_ALL, t_show_mrt_as},
- { ASTYPE, "source-as", AS_SOURCE, t_show_mrt_as},
- { ASTYPE, "transit-as", AS_TRANSIT, t_show_mrt_as},
- { ASTYPE, "peer-as", AS_PEER, t_show_mrt_as},
- { ASTYPE, "empty-as", AS_EMPTY, t_show_mrt},
{ FLAG, "detail", F_CTL_DETAIL, t_show_mrt},
- { FLAG, "ssv", F_CTL_SSV, t_show_mrt},
- { KEYWORD, "neighbor", NONE, t_show_mrt_neigh},
{ FLAG, "peers", F_CTL_NEIGHBORS,t_show_mrt},
+ { FLAG, "ssv", F_CTL_SSV, t_show_mrt},
+ { ASTYPE, "as", AS_ALL, t_show_mrt_as},
+ { ASTYPE, "empty-as", AS_EMPTY, t_show_mrt},
{ KEYWORD, "file", NONE, t_show_mrt_file},
+ { KEYWORD, "neighbor", NONE, t_show_mrt_neigh},
+ { ASTYPE, "peer-as", AS_PEER, t_show_mrt_as},
+ { ASTYPE, "source-as", AS_SOURCE, t_show_mrt_as},
+ { ASTYPE, "transit-as", AS_TRANSIT, t_show_mrt_as},
{ FAMILY, "", NONE, t_show_mrt},
{ PREFIX, "", NONE, t_show_prefix},
{ ENDTOKEN, "", NONE, NULL}
@@ -256,9 +256,9 @@ static const struct token t_show_rib_rib
static const struct token t_show_neighbor_modifiers[] = {
{ NOTOKEN, "", NONE, NULL},
- { KEYWORD, "timers", SHOW_NEIGHBOR_TIMERS, NULL},
{ KEYWORD, "messages", SHOW_NEIGHBOR, NULL},
{ KEYWORD, "terse", SHOW_NEIGHBOR_TERSE, NULL},
+ { KEYWORD, "timers", SHOW_NEIGHBOR_TIMERS, NULL},
{ ENDTOKEN, "", NONE, NULL}
};
@@ -301,11 +301,11 @@ static const struct token t_communicatio
};
static const struct token t_neighbor_modifiers[] = {
- { KEYWORD, "up", NEIGHBOR_UP, NULL},
- { KEYWORD, "down", NEIGHBOR_DOWN,
t_communication},
- { KEYWORD, "clear", NEIGHBOR_CLEAR,
t_communication},
- { KEYWORD, "refresh", NEIGHBOR_RREFRESH, NULL},
+ { KEYWORD, "clear", NEIGHBOR_CLEAR, t_communication},
{ KEYWORD, "destroy", NEIGHBOR_DESTROY, NULL},
+ { KEYWORD, "down", NEIGHBOR_DOWN, t_communication},
+ { KEYWORD, "refresh", NEIGHBOR_RREFRESH, NULL},
+ { KEYWORD, "up", NEIGHBOR_UP, NULL},
{ ENDTOKEN, "", NONE, NULL}
};
@@ -346,8 +346,8 @@ static const struct token t_show_extcomm
{ EXTCOM_SUBTYPE, "l2vid", NONE, t_show_ext_subtype},
{ EXTCOM_SUBTYPE, "mac-mob", NONE, t_show_ext_subtype},
{ EXTCOM_SUBTYPE, "odi", NONE, t_show_ext_subtype},
- { EXTCOM_SUBTYPE, "ort", NONE, t_show_ext_subtype},
{ EXTCOM_SUBTYPE, "ori", NONE, t_show_ext_subtype},
+ { EXTCOM_SUBTYPE, "ort", NONE, t_show_ext_subtype},
{ EXTCOM_SUBTYPE, "ovs", NONE, t_show_ext_subtype},
{ EXTCOM_SUBTYPE, "rt", NONE, t_show_ext_subtype},
{ EXTCOM_SUBTYPE, "soo", NONE, t_show_ext_subtype},
@@ -368,11 +368,11 @@ static const struct token t_show_largeco
static const struct token t_network[] = {
{ KEYWORD, "add", NETWORK_ADD, t_prefix},
+ { KEYWORD, "bulk", NONE, t_bulk},
{ KEYWORD, "delete", NETWORK_REMOVE, t_prefix},
{ KEYWORD, "flush", NETWORK_FLUSH, NULL},
- { KEYWORD, "show", NETWORK_SHOW, t_network_show},
{ KEYWORD, "mrt", NETWORK_MRT, t_show_mrt},
- { KEYWORD, "bulk", NONE, t_bulk},
+ { KEYWORD, "show", NETWORK_SHOW, t_network_show},
{ ENDTOKEN, "", NONE, NULL}
};
@@ -428,8 +428,8 @@ static const struct token t_extcommunity
{ EXTCOM_SUBTYPE, "l2vid", NONE, t_ext_subtype},
{ EXTCOM_SUBTYPE, "mac-mob", NONE, t_ext_subtype},
{ EXTCOM_SUBTYPE, "odi", NONE, t_ext_subtype},
- { EXTCOM_SUBTYPE, "ort", NONE, t_ext_subtype},
{ EXTCOM_SUBTYPE, "ori", NONE, t_ext_subtype},
+ { EXTCOM_SUBTYPE, "ort", NONE, t_ext_subtype},
{ EXTCOM_SUBTYPE, "ovs", NONE, t_ext_subtype},
{ EXTCOM_SUBTYPE, "rt", NONE, t_ext_subtype},
{ EXTCOM_SUBTYPE, "soo", NONE, t_ext_subtype},
@@ -484,8 +484,8 @@ static const struct token t_weight[] = {
};
static const struct token t_log[] = {
- { KEYWORD, "verbose", LOG_VERBOSE, NULL},
{ KEYWORD, "brief", LOG_BRIEF, NULL},
+ { KEYWORD, "verbose", LOG_VERBOSE, NULL},
{ ENDTOKEN, "", NONE, NULL}
};