zebra: allow retrieval of ip forwarding state

There was no ability to retrieve the ip-forwarding state
of zebra.  Add this to yang under the state container.

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
This commit is contained in:
Donna Sharp 2025-02-24 16:04:56 -05:00
parent 311bd23ccb
commit 453154497e
4 changed files with 22 additions and 0 deletions

View File

@ -2968,6 +2968,11 @@ module frr-zebra {
config false;
description
"Operational data.";
leaf ip-forwarding {
type boolean;
description
"IP forwarding status.";
}
}
// End of operational / state container
}

View File

@ -38,6 +38,12 @@ const struct frr_yang_module_info frr_zebra_info = {
.destroy = zebra_ip_forwarding_destroy,
}
},
{
.xpath = "/frr-zebra:zebra/state/ip-forwarding",
.cbs = {
.get_elem = zebra_ip_forwarding_get_elem,
}
},
{
.xpath = "/frr-zebra:zebra/ipv6-forwarding",
.cbs = {

View File

@ -32,6 +32,7 @@ int get_debugs_rpc(struct nb_cb_rpc_args *args);
int zebra_mcast_rpf_lookup_modify(struct nb_cb_modify_args *args);
int zebra_ip_forwarding_modify(struct nb_cb_modify_args *args);
int zebra_ip_forwarding_destroy(struct nb_cb_destroy_args *args);
struct yang_data *zebra_ip_forwarding_get_elem(struct nb_cb_get_elem_args *args);
int zebra_ipv6_forwarding_modify(struct nb_cb_modify_args *args);
int zebra_ipv6_forwarding_destroy(struct nb_cb_destroy_args *args);
int zebra_workqueue_hold_timer_modify(struct nb_cb_modify_args *args);

View File

@ -14,6 +14,7 @@
#include "printfrr.h"
#include "zebra/zebra_vxlan.h"
#include "zebra/zebra_vxlan_if.h"
#include "zebra/ipforward.h"
/*
* XPath: /frr-interface:lib/interface/frr-zebra:zebra/state/up-count
@ -1166,3 +1167,12 @@ struct yang_data *zebra_max_multipath_get_elem(struct nb_cb_get_elem_args *args)
{
return yang_data_new_uint16(args->xpath, zrouter.multipath_num);
}
/*
* XPath:
* /frr-zebra:zebra/ip_forwarding
*/
struct yang_data *zebra_ip_forwarding_get_elem(struct nb_cb_get_elem_args *args)
{
return yang_data_new_bool(args->xpath, ipforward());
}