mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-03 21:25:05 +00:00
bgpd: rpki show commande equipped with vrfname parameter
it is possible to dump rpki commands per vrf context. also, rpki start/stop commands are also appended with vrfname parameter. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
parent
c06cad2bd6
commit
2224b36a30
148
bgpd/bgp_rpki.c
148
bgpd/bgp_rpki.c
@ -1386,18 +1386,29 @@ DEFUN_NOSH (no_rpki,
|
|||||||
|
|
||||||
DEFUN (bgp_rpki_start,
|
DEFUN (bgp_rpki_start,
|
||||||
bgp_rpki_start_cmd,
|
bgp_rpki_start_cmd,
|
||||||
"rpki start",
|
"rpki start [vrf NAME]",
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"start rpki support\n")
|
"start rpki support\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
struct list *cache_list = NULL;
|
struct list *cache_list = NULL;
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
int idx_vrf = 3;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrfname = NULL;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (argc == 4) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(argv[idx_vrf]->arg);
|
||||||
if (rpki_vrf)
|
if (!vrf)
|
||||||
cache_list = rpki_vrf->cache_list;
|
return CMD_SUCCESS;
|
||||||
if (!rpki_vrf || !cache_list || listcount(cache_list) == 0)
|
if (vrf->vrf_id != VRF_DEFAULT)
|
||||||
|
vrfname = vrf->name;
|
||||||
|
}
|
||||||
|
rpki_vrf = find_rpki_vrf(vrfname);
|
||||||
|
if (!rpki_vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
cache_list = rpki_vrf->cache_list;
|
||||||
|
if (!cache_list || listcount(cache_list) == 0)
|
||||||
vty_out(vty, "Could not start rpki"
|
vty_out(vty, "Could not start rpki"
|
||||||
" because no caches are configured\n");
|
" because no caches are configured\n");
|
||||||
|
|
||||||
@ -1412,14 +1423,24 @@ DEFUN (bgp_rpki_start,
|
|||||||
|
|
||||||
DEFUN (bgp_rpki_stop,
|
DEFUN (bgp_rpki_stop,
|
||||||
bgp_rpki_stop_cmd,
|
bgp_rpki_stop_cmd,
|
||||||
"rpki stop",
|
"rpki stop [vrf NAME]",
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"start rpki support\n")
|
"start rpki support\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
|
int idx_vrf = 3;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrfname = NULL;
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (argc == 4) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(argv[idx_vrf]->arg);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
if (vrf->vrf_id != VRF_DEFAULT)
|
||||||
|
vrfname = vrf->name;
|
||||||
|
}
|
||||||
|
rpki_vrf = find_rpki_vrf(vrfname);
|
||||||
if (rpki_vrf && is_running(rpki_vrf))
|
if (rpki_vrf && is_running(rpki_vrf))
|
||||||
stop(rpki_vrf);
|
stop(rpki_vrf);
|
||||||
|
|
||||||
@ -1689,17 +1710,28 @@ DEFPY (no_rpki_cache,
|
|||||||
|
|
||||||
DEFUN (show_rpki_prefix_table,
|
DEFUN (show_rpki_prefix_table,
|
||||||
show_rpki_prefix_table_cmd,
|
show_rpki_prefix_table_cmd,
|
||||||
"show rpki prefix-table",
|
"show rpki prefix-table [vrf NAME]",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"Show validated prefixes which were received from RPKI Cache\n")
|
"Show validated prefixes which were received from RPKI Cache\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
struct listnode *cache_node;
|
struct listnode *cache_node;
|
||||||
struct cache *cache;
|
struct cache *cache;
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
int idx_vrf = 4;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrfname = NULL;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (argc == 5) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(argv[idx_vrf]->arg);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
if (vrf->vrf_id != VRF_DEFAULT)
|
||||||
|
vrfname = vrf->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
rpki_vrf = find_rpki_vrf(vrfname);
|
||||||
if (!rpki_vrf)
|
if (!rpki_vrf)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
for (ALL_LIST_ELEMENTS_RO(rpki_vrf->cache_list, cache_node, cache)) {
|
for (ALL_LIST_ELEMENTS_RO(rpki_vrf->cache_list, cache_node, cache)) {
|
||||||
@ -1721,15 +1753,23 @@ DEFUN (show_rpki_prefix_table,
|
|||||||
}
|
}
|
||||||
|
|
||||||
DEFPY(show_rpki_as_number, show_rpki_as_number_cmd,
|
DEFPY(show_rpki_as_number, show_rpki_as_number_cmd,
|
||||||
"show rpki as-number (1-4294967295)$by_asn",
|
"show rpki as-number (1-4294967295)$by_asn [vrf NAME$vrfname]",
|
||||||
SHOW_STR RPKI_OUTPUT_STRING
|
SHOW_STR RPKI_OUTPUT_STRING
|
||||||
"Lookup by ASN in prefix table\n"
|
"Lookup by ASN in prefix table\n"
|
||||||
"AS Number\n")
|
"AS Number\n")
|
||||||
{
|
{
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
char *vrf_name = NULL;
|
||||||
|
struct vrf *vrf;
|
||||||
|
|
||||||
|
if (vrfname && !strmatch(vrfname, VRF_DEFAULT_NAME)) {
|
||||||
|
vrf = vrf_lookup_by_name(vrfname);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
vrf_name = vrf->name;
|
||||||
|
}
|
||||||
/* assume default vrf */
|
/* assume default vrf */
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
rpki_vrf = find_rpki_vrf(vrf_name);
|
||||||
|
|
||||||
if (!is_synchronized(rpki_vrf)) {
|
if (!is_synchronized(rpki_vrf)) {
|
||||||
vty_out(vty, "No Connection to RPKI cache server.\n");
|
vty_out(vty, "No Connection to RPKI cache server.\n");
|
||||||
@ -1742,18 +1782,27 @@ DEFPY(show_rpki_as_number, show_rpki_as_number_cmd,
|
|||||||
|
|
||||||
DEFPY (show_rpki_prefix,
|
DEFPY (show_rpki_prefix,
|
||||||
show_rpki_prefix_cmd,
|
show_rpki_prefix_cmd,
|
||||||
"show rpki prefix <A.B.C.D/M|X:X::X:X/M> [(1-4294967295)$asn]",
|
"show rpki prefix <A.B.C.D/M|X:X::X:X/M> [(1-4294967295)$asn] [vrf NAME$vrfname]",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"Lookup IP prefix and optionally ASN in prefix table\n"
|
"Lookup IP prefix and optionally ASN in prefix table\n"
|
||||||
"IPv4 prefix\n"
|
"IPv4 prefix\n"
|
||||||
"IPv6 prefix\n"
|
"IPv6 prefix\n"
|
||||||
"AS Number\n")
|
"AS Number\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrf_name = NULL;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (vrfname && !strmatch(vrfname, VRF_DEFAULT_NAME)) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(vrfname);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
vrf_name = vrf->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
rpki_vrf = find_rpki_vrf(vrf_name);
|
||||||
|
|
||||||
if (!rpki_vrf || !is_synchronized(rpki_vrf)) {
|
if (!rpki_vrf || !is_synchronized(rpki_vrf)) {
|
||||||
vty_out(vty, "No Connection to RPKI cache server.\n");
|
vty_out(vty, "No Connection to RPKI cache server.\n");
|
||||||
@ -1800,17 +1849,28 @@ DEFPY (show_rpki_prefix,
|
|||||||
|
|
||||||
DEFUN (show_rpki_cache_server,
|
DEFUN (show_rpki_cache_server,
|
||||||
show_rpki_cache_server_cmd,
|
show_rpki_cache_server_cmd,
|
||||||
"show rpki cache-server",
|
"show rpki cache-server [vrf NAME]",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"SHOW configured cache server\n")
|
"SHOW configured cache server\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
struct listnode *cache_node;
|
struct listnode *cache_node;
|
||||||
struct cache *cache;
|
struct cache *cache;
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
int idx_vrf = 4;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrfname = NULL;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (argc == 5) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(argv[idx_vrf]->arg);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
if (vrf->vrf_id != VRF_DEFAULT)
|
||||||
|
vrfname = vrf->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
rpki_vrf = find_rpki_vrf(vrfname);
|
||||||
if (!rpki_vrf)
|
if (!rpki_vrf)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
@ -1841,15 +1901,26 @@ DEFUN (show_rpki_cache_server,
|
|||||||
|
|
||||||
DEFUN (show_rpki_cache_connection,
|
DEFUN (show_rpki_cache_connection,
|
||||||
show_rpki_cache_connection_cmd,
|
show_rpki_cache_connection_cmd,
|
||||||
"show rpki cache-connection",
|
"show rpki cache-connection [vrf NAME]",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"Show to which RPKI Cache Servers we have a connection\n")
|
"Show to which RPKI Cache Servers we have a connection\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
int idx_vrf = 4;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrfname = NULL;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (argc == 5) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(argv[idx_vrf]->arg);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
if (vrf->vrf_id != VRF_DEFAULT)
|
||||||
|
vrfname = vrf->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
rpki_vrf = find_rpki_vrf(vrfname);
|
||||||
if (!rpki_vrf)
|
if (!rpki_vrf)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
@ -1908,15 +1979,26 @@ DEFUN (show_rpki_cache_connection,
|
|||||||
|
|
||||||
DEFUN (show_rpki_configuration,
|
DEFUN (show_rpki_configuration,
|
||||||
show_rpki_configuration_cmd,
|
show_rpki_configuration_cmd,
|
||||||
"show rpki configuration",
|
"show rpki configuration [vrf NAME]",
|
||||||
SHOW_STR
|
SHOW_STR
|
||||||
RPKI_OUTPUT_STRING
|
RPKI_OUTPUT_STRING
|
||||||
"Show RPKI configuration\n")
|
"Show RPKI configuration\n"
|
||||||
|
VRF_CMD_HELP_STR)
|
||||||
{
|
{
|
||||||
struct rpki_vrf *rpki_vrf;
|
struct rpki_vrf *rpki_vrf;
|
||||||
|
int idx_vrf = 4;
|
||||||
|
struct vrf *vrf;
|
||||||
|
char *vrfname = NULL;
|
||||||
|
|
||||||
/* assume default vrf */
|
if (argc == 5) {
|
||||||
rpki_vrf = find_rpki_vrf(NULL);
|
vrf = vrf_lookup_by_name(argv[idx_vrf]->arg);
|
||||||
|
if (!vrf)
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
if (vrf->vrf_id != VRF_DEFAULT)
|
||||||
|
vrfname = vrf->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
rpki_vrf = find_rpki_vrf(vrfname);
|
||||||
if (!rpki_vrf)
|
if (!rpki_vrf)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
vty_out(vty, "rpki is %s",
|
vty_out(vty, "rpki is %s",
|
||||||
|
Loading…
Reference in New Issue
Block a user