From: Donna Sharp Date: Mon, 24 Feb 2025 21:30:07 +0000 (-0500) Subject: zebra: allow retrieval of ipv6 forwarding state X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=9a073f663f800e46ca654b8841892f49f3989bbd;p=matthieu%2Ffrr.git zebra: allow retrieval of ipv6 forwarding state Allow the retrieval of ipv6 forwarding state from within the yang framework as that it was missing. Signed-off-by: Donna Sharp --- diff --git a/yang/frr-zebra.yang b/yang/frr-zebra.yang index 3e005c2d35..c9fa612b75 100644 --- a/yang/frr-zebra.yang +++ b/yang/frr-zebra.yang @@ -2859,24 +2859,8 @@ module frr-zebra { "IP forwarding status."; } leaf ipv6-forwarding { - type enumeration { - enum unknown { - value -1; - description - "Unknown state."; - } - enum off { - value 0; - description - "IPv6 forwarding disabled."; - } - enum on { - value 1; - description - "IPv6 forwarding enabled."; - } - } - description + type boolean; + description "IPv6 forwarding status."; } leaf workqueue-hold-timer { @@ -2973,6 +2957,11 @@ module frr-zebra { description "IP forwarding status."; } + leaf ipv6-forwarding { + type boolean; + description + "IPv6 forwarding status."; + } } // End of operational / state container } diff --git a/zebra/zebra_nb.c b/zebra/zebra_nb.c index 83d89fa7b7..f45ce03956 100644 --- a/zebra/zebra_nb.c +++ b/zebra/zebra_nb.c @@ -51,6 +51,12 @@ const struct frr_yang_module_info frr_zebra_info = { .destroy = zebra_ipv6_forwarding_destroy, } }, + { + .xpath = "/frr-zebra:zebra/state/ipv6-forwarding", + .cbs = { + .get_elem = zebra_ipv6_forwarding_get_elem, + } + }, { .xpath = "/frr-zebra:zebra/workqueue-hold-timer", .cbs = { diff --git a/zebra/zebra_nb.h b/zebra/zebra_nb.h index f742d24747..7b0205058e 100644 --- a/zebra/zebra_nb.h +++ b/zebra/zebra_nb.h @@ -36,6 +36,7 @@ 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); +struct yang_data *zebra_ipv6_forwarding_get_elem(struct nb_cb_get_elem_args *args); int zebra_zapi_packets_modify(struct nb_cb_modify_args *args); int zebra_import_kernel_table_table_id_modify(struct nb_cb_modify_args *args); int zebra_import_kernel_table_table_id_destroy(struct nb_cb_destroy_args *args); diff --git a/zebra/zebra_nb_state.c b/zebra/zebra_nb_state.c index 9b9991c182..adf830042b 100644 --- a/zebra/zebra_nb_state.c +++ b/zebra/zebra_nb_state.c @@ -1176,3 +1176,13 @@ struct yang_data *zebra_ip_forwarding_get_elem(struct nb_cb_get_elem_args *args) { return yang_data_new_bool(args->xpath, ipforward()); } + + +/* + * XPath: + * /frr-zebra:zebra/ipv6_forwarding + */ +struct yang_data *zebra_ipv6_forwarding_get_elem(struct nb_cb_get_elem_args *args) +{ + return yang_data_new_bool(args->xpath, ipforward_ipv6()); +}