mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-23 23:05:24 +00:00
zebra: convert route-map delay-timer command to NB
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
This commit is contained in:
parent
cc619176fe
commit
010bd3e570
@ -2920,6 +2920,15 @@ module frr-zebra {
|
||||
description
|
||||
"Enable PTM globally.";
|
||||
}
|
||||
leaf route-map-delay {
|
||||
type uint32 {
|
||||
range "0..600";
|
||||
}
|
||||
units "seconds";
|
||||
default "5";
|
||||
description
|
||||
"Time to wait before route-map updates are processed.";
|
||||
}
|
||||
/*
|
||||
* Debug options
|
||||
*/
|
||||
|
@ -103,6 +103,12 @@ const struct frr_yang_module_info frr_zebra_info = {
|
||||
}
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.xpath = "/frr-zebra:zebra/route-map-delay",
|
||||
.cbs = {
|
||||
.modify = zebra_route_map_delay_modify,
|
||||
}
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-zebra:zebra/debugs/debug-events",
|
||||
.cbs = {
|
||||
|
@ -49,6 +49,7 @@ int zebra_ptm_enable_modify(struct nb_cb_modify_args *args);
|
||||
void zebra_ptm_enable_cli_write(struct vty *vty, const struct lyd_node *dnode,
|
||||
bool show_defaults);
|
||||
#endif
|
||||
int zebra_route_map_delay_modify(struct nb_cb_modify_args *args);
|
||||
int zebra_debugs_debug_events_modify(struct nb_cb_modify_args *args);
|
||||
int zebra_debugs_debug_events_destroy(struct nb_cb_destroy_args *args);
|
||||
int zebra_debugs_debug_zapi_send_modify(struct nb_cb_modify_args *args);
|
||||
|
@ -290,6 +290,21 @@ int zebra_ptm_enable_modify(struct nb_cb_modify_args *args)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* XPath: /frr-zebra:zebra/route-map-delay
|
||||
*/
|
||||
int zebra_route_map_delay_modify(struct nb_cb_modify_args *args)
|
||||
{
|
||||
uint32_t delay = yang_dnode_get_uint32(args->dnode, NULL);
|
||||
|
||||
if (args->event != NB_EV_APPLY)
|
||||
return NB_OK;
|
||||
|
||||
zebra_route_map_set_delay_timer(delay);
|
||||
|
||||
return NB_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-zebra:zebra/debugs/debug-events
|
||||
*/
|
||||
|
@ -36,8 +36,6 @@ struct zebra_rmap_obj {
|
||||
struct route_entry *re;
|
||||
};
|
||||
|
||||
static void zebra_route_map_set_delay_timer(uint32_t value);
|
||||
|
||||
/* 'match tag TAG'
|
||||
* Match function return 1 if match is success else return 0
|
||||
*/
|
||||
@ -634,24 +632,20 @@ DEFPY_YANG(
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFUN_YANG (zebra_route_map_timer,
|
||||
DEFPY_YANG (zebra_route_map_timer,
|
||||
zebra_route_map_timer_cmd,
|
||||
"zebra route-map delay-timer (0-600)",
|
||||
"zebra route-map delay-timer (0-600)$delay",
|
||||
ZEBRA_STR
|
||||
"Set route-map parameters\n"
|
||||
"Time to wait before route-map updates are processed\n"
|
||||
"0 means route-map changes are run immediately instead of delaying\n")
|
||||
{
|
||||
int idx_number = 3;
|
||||
uint32_t rmap_delay_timer;
|
||||
|
||||
rmap_delay_timer = strtoul(argv[idx_number]->arg, NULL, 10);
|
||||
zebra_route_map_set_delay_timer(rmap_delay_timer);
|
||||
|
||||
return (CMD_SUCCESS);
|
||||
nb_cli_enqueue_change(vty, "/frr-zebra:zebra/route-map-delay",
|
||||
NB_OP_MODIFY, delay_str);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFUN_YANG (no_zebra_route_map_timer,
|
||||
DEFPY_YANG (no_zebra_route_map_timer,
|
||||
no_zebra_route_map_timer_cmd,
|
||||
"no zebra route-map delay-timer [(0-600)]",
|
||||
NO_STR
|
||||
@ -660,9 +654,9 @@ DEFUN_YANG (no_zebra_route_map_timer,
|
||||
"Reset delay-timer to default value, 30 secs\n"
|
||||
"0 means route-map changes are run immediately instead of delaying\n")
|
||||
{
|
||||
zebra_route_map_set_delay_timer(ZEBRA_RMAP_DEFAULT_UPDATE_TIMER);
|
||||
|
||||
return (CMD_SUCCESS);
|
||||
nb_cli_enqueue_change(vty, "/frr-zebra:zebra/route-map-delay",
|
||||
NB_OP_DESTROY, NULL);
|
||||
return nb_cli_apply_changes(vty, NULL);
|
||||
}
|
||||
|
||||
DEFPY_YANG (ip_protocol,
|
||||
@ -1677,7 +1671,7 @@ static void zebra_route_map_update_timer(struct event *thread)
|
||||
*/
|
||||
}
|
||||
|
||||
static void zebra_route_map_set_delay_timer(uint32_t value)
|
||||
void zebra_route_map_set_delay_timer(uint32_t value)
|
||||
{
|
||||
zebra_rmap_update_timer = value;
|
||||
if (!value && zebra_t_rmap_update) {
|
||||
|
@ -35,6 +35,7 @@ extern route_map_result_t zebra_nht_route_map_check(afi_t afi, int client_proto,
|
||||
struct route_entry *re,
|
||||
struct nexthop *nexthop);
|
||||
|
||||
extern void zebra_route_map_set_delay_timer(uint32_t value);
|
||||
extern int ip_protocol_rm_add(struct zebra_vrf *zvrf, const char *rmap,
|
||||
int rtype, afi_t afi, safi_t safi);
|
||||
extern int ip_protocol_rm_del(struct zebra_vrf *zvrf, const char *rmap,
|
||||
|
Loading…
Reference in New Issue
Block a user