As some of you might recall, we had converged on adding the vrf option in
BGP commands just they way it has for a view. I have made the necessary
changes and (painfully n boringly) adjusted the argument indexes. As for
the pending work, view option isn't available for all the commands, so that
work is coming soon too.

I have a relevant question/comment:

For all the zebra commands that were modified by VRF lib, 'vrf <arg>' is
the last option there.
Wouldn't it make sense to be consistent and add vrf hierarchically around
the same location in a command?

for example:

   'show ip bgp vrf <name> neighbor ..'

and
   'show ip route vrf <name> A.B.C.D/M'

    instead of ..
    'show ip route A.B.C.D/M vrf <name>'  // this is how we it in the
current VRF lib

thanks,
Vipin

-- here is how it is for BGP and zebra for now --


bgp_route.c:       "show ip bgp (view|vrf) WORD {json}",
bgp_route.c:  vty_out (vty, "Can't find BGP (view|vrf) %s%s", argv[1],
VTY_NEWLINE);
bgp_route.c:       "show ip bgp (view|vrf) WORD A.B.C.D {json}",
bgp_route.c:       "show ip bgp (view|vrf) WORD A.B.C.D/M {json}",
bgp_route.c:       "show bgp (view|vrf) WORD {json}",
bgp_route.c:      vty_out (vty, "Can't find BGP (view|vrf) %s%s", argv[1],
VTY_NEWLINE);
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 {json}",
bgp_route.c:       "show bgp (view|vrf) WORD X:X::X:X {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 X:X::X:X {json}",
bgp_route.c:       "show bgp (view|vrf) WORD X:X::X:X/M {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 X:X::X:X/M {json}",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) community",
bgp_route.c:       "show bgp (view|vrf) WORD ipv4 (unicast|multicast)
community",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD ipv4 (unicast|multicast)
community (AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD ipv4 (unicast|multicast)
community (AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD ipv4 (unicast|multicast)
community (AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD ipv4 (unicast|multicast)
community (AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)
(AA:NN|local-AS|no-advertise|no-export)",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) statistics",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4) (vpnv4) statistics",
bgp_route.c:       "show ip bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) advertised-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) advertised-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) advertised-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) received-routes {json}",
bgp_route.c:       "show ip bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) received-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) received-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD (ipv4|ipv6)
(unicast|multicast) neighbors (A.B.C.D|X:X::X:X|WORD)
(advertised-routes|received-routes) {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv4 (unicast|multicast)
neighbors (A.B.C.D|X:X::X:X|WORD) (advertised-routes|received-routes)
{json}",
bgp_route.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) received prefix-filter {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) received prefix-filter {json}",
bgp_route.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) dampened-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) dampened-routes {json}",
bgp_route.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) flap-statistics {json}",
bgp_route.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) flap-statistics {json}",
bgp_vty.c:       "router bgp " CMD_AS_RANGE " (view|vrf) WORD",
bgp_vty.c:       "no router bgp " CMD_AS_RANGE " (view|vrf) WORD",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD *",
bgp_vty.c:       "clear bgp (view|vrf) WORD *",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * soft out",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * ipv4 (unicast|multicast)
soft out",
bgp_vty.c:       "clear bgp (view|vrf) WORD * soft out",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * soft in",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * in prefix-filter",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * ipv4 (unicast|multicast)
soft in",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * ipv4 (unicast|multicast)
in prefix-filter",
bgp_vty.c:       "clear bgp (view|vrf) WORD * soft in",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * soft",
bgp_vty.c:       "clear ip bgp (view|vrf) WORD * ipv4 (unicast|multicast)
soft",
bgp_vty.c:       "clear bgp (view|vrf) WORD * soft",
bgp_vty.c:       "show ip bgp (view|vrf) WORD summary {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD summary {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD ipv6 summary {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD ipv6 (unicast|multicast) summary
{json}",
bgp_vty.c:       "show ip bgp (view|vrf) WORD neighbors {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD neighbors {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD ipv6 neighbors {json}",
bgp_vty.c:       "show ip bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD neighbors
(A.B.C.D|X:X::X:X|WORD) {json}",
bgp_vty.c:       "show bgp (view|vrf) WORD ipv6 neighbors
(A.B.C.D|X:X::X:X|WORD) {json}",
bgp_vty.c:       "show ip bgp (view|vrf) WORD peer-group",
bgp_vty.c:       "show ip bgp (view|vrf) WORD peer-group WORD",



interface.c:       "interface IFNAME " VRF_CMD_STR,
interface.c:       "show interface " VRF_CMD_STR,
interface.c:       "show interface IFNAME " VRF_CMD_STR,
interface.c:       "show interface description " VRF_CMD_STR,
router-id.c:       "router-id A.B.C.D " VRF_CMD_STR,
router-id.c:       "no router-id A.B.C.D " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (reject|blackhole) tag <1-65535> "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (reject|blackhole) "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (reject|blackhole) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (reject|blackhole) <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D/M (reject|blackhole) tag <1-65535>
<1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)
<1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole)  tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (reject|blackhole) <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "ip route A.B.C.D A.B.C.D (reject|blackhole) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) "
VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (reject|blackhole) tag <1-65535>
" VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) "
VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)
tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (reject|blackhole) "
VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (reject|blackhole) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>
" VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (reject|blackhole) <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D/M (reject|blackhole) tag <1-65535>
<1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)
<1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)
tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (reject|blackhole) <1-255>
" VRF_CMD_STR,
zebra_vty.c:       "no ip route A.B.C.D A.B.C.D (reject|blackhole) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "show ip route  " VRF_CMD_STR,
zebra_vty.c:       "show ip route A.B.C.D/M longer-prefixes  " VRF_CMD_STR,
zebra_vty.c:       "show ip route supernets-only  " VRF_CMD_STR,
zebra_vty.c:       "show ip route " QUAGGA_IP_REDIST_STR_ZEBRA "  "
VRF_CMD_STR,
zebra_vty.c:       "show ip route A.B.C.D  " VRF_CMD_STR,
zebra_vty.c:       "show ip route A.B.C.D/M  " VRF_CMD_STR,
zebra_vty.c:       "show ip route summary  " VRF_CMD_STR,
zebra_vty.c:       "show ip route summary prefix  " VRF_CMD_STR,
zebra_vty.c:       "show ip mroute  " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) "
VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535>
" VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535>
<1-255> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) "
VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE "
VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag
<1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) tag <1-65535> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255> "
VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag
<1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) <1-255> " VRF_CMD_STR,
zebra_vty.c:       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE
(reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route  " VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route X:X::X:X/M longer-prefixes  "
VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route " QUAGGA_IP6_REDIST_STR_ZEBRA "  "
VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route X:X::X:X  " VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route X:X::X:X/M  " VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route summary  " VRF_CMD_STR,
zebra_vty.c:       "show ipv6 route summary prefix  " VRF_CMD_STR,
zebra_vty.c:       "show ipv6 mroute  " VRF_CMD_STR,
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to