mirror of https://github.com/FRRouting/frr.git
bgpd: Add JSON support for `show rpki cache-server`
``` spine1-debian-11# sh rpki cache-server json { "servers":[ { "mode":"tcp", "host":"192.168.10.17", "port":"8283" }, { "mode":"tcp", "host":"192.168.10.17", "port":"8282" } ] } spine1-debian-11# sh rpki cache-server host: 192.168.10.17 port: 8283 host: 192.168.10.17 port: 8282 spine1-debian-11# ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
parent
0fe7b4f568
commit
cc4d121f9f
|
@ -1278,37 +1278,89 @@ DEFPY (show_rpki_prefix,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN (show_rpki_cache_server,
|
||||
DEFPY (show_rpki_cache_server,
|
||||
show_rpki_cache_server_cmd,
|
||||
"show rpki cache-server",
|
||||
"show rpki cache-server [json$uj]",
|
||||
SHOW_STR
|
||||
RPKI_OUTPUT_STRING
|
||||
"SHOW configured cache server\n")
|
||||
"Show configured cache server\n"
|
||||
JSON_STR)
|
||||
{
|
||||
struct json_object *json = NULL;
|
||||
struct json_object *json_server = NULL;
|
||||
struct json_object *json_servers = NULL;
|
||||
struct listnode *cache_node;
|
||||
struct cache *cache;
|
||||
|
||||
if (uj) {
|
||||
json = json_object_new_object();
|
||||
json_servers = json_object_new_array();
|
||||
json_object_object_add(json, "servers", json_servers);
|
||||
}
|
||||
|
||||
for (ALL_LIST_ELEMENTS_RO(cache_list, cache_node, cache)) {
|
||||
if (cache->type == TCP) {
|
||||
vty_out(vty, "host: %s port: %s\n",
|
||||
cache->tr_config.tcp_config->host,
|
||||
cache->tr_config.tcp_config->port);
|
||||
if (!json) {
|
||||
vty_out(vty, "host: %s port: %s\n",
|
||||
cache->tr_config.tcp_config->host,
|
||||
cache->tr_config.tcp_config->port);
|
||||
} else {
|
||||
json_server = json_object_new_object();
|
||||
json_object_string_add(json_server, "mode",
|
||||
"tcp");
|
||||
json_object_string_add(
|
||||
json_server, "host",
|
||||
cache->tr_config.tcp_config->host);
|
||||
json_object_string_add(
|
||||
json_server, "port",
|
||||
cache->tr_config.tcp_config->port);
|
||||
json_object_array_add(json_servers,
|
||||
json_server);
|
||||
}
|
||||
|
||||
#if defined(FOUND_SSH)
|
||||
} else if (cache->type == SSH) {
|
||||
vty_out(vty,
|
||||
"host: %s port: %d username: %s server_hostkey_path: %s client_privkey_path: %s\n",
|
||||
cache->tr_config.ssh_config->host,
|
||||
cache->tr_config.ssh_config->port,
|
||||
cache->tr_config.ssh_config->username,
|
||||
cache->tr_config.ssh_config
|
||||
->server_hostkey_path,
|
||||
cache->tr_config.ssh_config
|
||||
->client_privkey_path);
|
||||
if (!json) {
|
||||
vty_out(vty,
|
||||
"host: %s port: %d username: %s server_hostkey_path: %s client_privkey_path: %s\n",
|
||||
cache->tr_config.ssh_config->host,
|
||||
cache->tr_config.ssh_config->port,
|
||||
cache->tr_config.ssh_config->username,
|
||||
cache->tr_config.ssh_config
|
||||
->server_hostkey_path,
|
||||
cache->tr_config.ssh_config
|
||||
->client_privkey_path);
|
||||
} else {
|
||||
json_server = json_object_new_object();
|
||||
json_object_string_add(json_server, "mode",
|
||||
"ssh");
|
||||
json_object_string_add(
|
||||
json_server, "host",
|
||||
cache->tr_config.ssh_config->host);
|
||||
json_object_int_add(
|
||||
json_server, "port",
|
||||
cache->tr_config.ssh_config->port);
|
||||
json_object_string_add(
|
||||
json_server, "username",
|
||||
cache->tr_config.ssh_config->username);
|
||||
json_object_string_add(
|
||||
json_server, "serverHostkeyPath",
|
||||
cache->tr_config.ssh_config
|
||||
->server_hostkey_path);
|
||||
json_object_string_add(
|
||||
json_server, "clientPrivkeyPath",
|
||||
cache->tr_config.ssh_config
|
||||
->client_privkey_path);
|
||||
json_object_array_add(json_servers,
|
||||
json_server);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (json)
|
||||
vty_json(vty, json);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -216,10 +216,14 @@ Displaying RPKI
|
|||
received from the cache servers and stored in the router. Based on this data,
|
||||
the router validates BGP Updates.
|
||||
|
||||
.. clicmd:: show rpki cache-connection [json]
|
||||
.. clicmd:: show rpki cache-server [json]
|
||||
|
||||
Display all configured cache servers, whether active or not.
|
||||
|
||||
.. clicmd:: show rpki cache-connection [json]
|
||||
|
||||
Display all cache connections, and show which is connected or not.
|
||||
|
||||
.. clicmd:: show bgp [afi] [safi] <A.B.C.D|A.B.C.D/M|X:X::X:X|X:X::X:X/M> rpki <valid|invalid|notfound>
|
||||
|
||||
Display for the specified prefix or address the bgp paths that match the given rpki state.
|
||||
|
|
Loading…
Reference in New Issue