From 35aeb295ed72bbdbc15de93c34aa9e81c2bcab03 Mon Sep 17 00:00:00 2001 From: Yash Ranjan Date: Mon, 25 Jan 2021 02:51:39 -0800 Subject: [PATCH] ospf6d: Json support added for command "show ipv6 ospf6 interface prefix [json]" Modify code to add JSON format output in show command "show ipv6 ospf6 interface prefix" with proper formating Signed-off-by: Yash Ranjan --- doc/user/ospf6d.rst | 7 +++++++ ospf6d/ospf6_interface.c | 16 ++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/doc/user/ospf6d.rst b/doc/user/ospf6d.rst index 9d1c2e0b9d..d518409d83 100644 --- a/doc/user/ospf6d.rst +++ b/doc/user/ospf6d.rst @@ -255,6 +255,13 @@ Showing OSPF6 information The additional match option will match the given address to the destination of the routes, and return the result accordingly. +.. index:: show ipv6 ospf6 interface [IFNAME] prefix [detail| []] [json] +.. clicmd:: show ipv6 ospf6 interface [IFNAME] prefix [detail| []] [json] + + This command shows the prefixes present in the interface routing table. + Interface name can also be given. JSON output can be obtained by appending + 'json' to the end of command. + OSPF6 Configuration Examples ============================ diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index fd58789212..0cc3bd2cc9 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -1416,7 +1416,7 @@ DEFUN (show_ipv6_ospf6_interface_ifname_prefix, [<\ detail\ | []\ - >]", + >] [json]", SHOW_STR IP6_STR OSPF6_STR @@ -1427,12 +1427,14 @@ DEFUN (show_ipv6_ospf6_interface_ifname_prefix, OSPF6_ROUTE_ADDRESS_STR OSPF6_ROUTE_PREFIX_STR OSPF6_ROUTE_MATCH_STR - "Display details of the prefixes\n") + "Display details of the prefixes\n" + JSON_STR) { int idx_ifname = 4; int idx_prefix = 6; struct interface *ifp; struct ospf6_interface *oi; + bool uj = use_json(argc, argv); ifp = if_lookup_by_name(argv[idx_ifname]->arg, VRF_DEFAULT); if (ifp == NULL) { @@ -1448,7 +1450,7 @@ DEFUN (show_ipv6_ospf6_interface_ifname_prefix, } ospf6_route_table_show(vty, idx_prefix, argc, argv, oi->route_connected, - false); + uj); return CMD_SUCCESS; } @@ -1459,7 +1461,7 @@ DEFUN (show_ipv6_ospf6_interface_prefix, [<\ detail\ | []\ - >]", + >] [json]", SHOW_STR IP6_STR OSPF6_STR @@ -1469,12 +1471,14 @@ DEFUN (show_ipv6_ospf6_interface_prefix, OSPF6_ROUTE_ADDRESS_STR OSPF6_ROUTE_PREFIX_STR OSPF6_ROUTE_MATCH_STR - "Display details of the prefixes\n") + "Display details of the prefixes\n" + JSON_STR) { struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT); int idx_prefix = 5; struct ospf6_interface *oi; struct interface *ifp; + bool uj = use_json(argc, argv); FOR_ALL_INTERFACES (vrf, ifp) { oi = (struct ospf6_interface *)ifp->info; @@ -1482,7 +1486,7 @@ DEFUN (show_ipv6_ospf6_interface_prefix, continue; ospf6_route_table_show(vty, idx_prefix, argc, argv, - oi->route_connected, false); + oi->route_connected, uj); } return CMD_SUCCESS;