diff options
-rw-r--r-- | bfdd/bfdd_nb_config.c | 101 | ||||
-rw-r--r-- | yang/frr-bfdd.yang | 16 |
2 files changed, 27 insertions, 90 deletions
diff --git a/bfdd/bfdd_nb_config.c b/bfdd/bfdd_nb_config.c index 859e9475d..c1a2ad7bb 100644 --- a/bfdd/bfdd_nb_config.c +++ b/bfdd/bfdd_nb_config.c @@ -333,13 +333,9 @@ int bfdd_bfd_profile_desired_transmission_interval_modify( struct nb_cb_modify_args *args) { struct bfd_profile *bp; - uint32_t min_tx; switch (args->event) { case NB_EV_VALIDATE: - min_tx = yang_dnode_get_uint32(args->dnode, NULL); - if (min_tx < 10000 || min_tx > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -347,12 +343,8 @@ int bfdd_bfd_profile_desired_transmission_interval_modify( break; case NB_EV_APPLY: - min_tx = yang_dnode_get_uint32(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->min_tx == min_tx) - return NB_OK; - - bp->min_tx = min_tx; + bp->min_tx = yang_dnode_get_uint32(args->dnode, NULL); bfd_profile_update(bp); break; @@ -371,13 +363,9 @@ int bfdd_bfd_profile_required_receive_interval_modify( struct nb_cb_modify_args *args) { struct bfd_profile *bp; - uint32_t min_rx; switch (args->event) { case NB_EV_VALIDATE: - min_rx = yang_dnode_get_uint32(args->dnode, NULL); - if (min_rx < 10000 || min_rx > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -385,12 +373,8 @@ int bfdd_bfd_profile_required_receive_interval_modify( break; case NB_EV_APPLY: - min_rx = yang_dnode_get_uint32(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->min_rx == min_rx) - return NB_OK; - - bp->min_rx = min_rx; + bp->min_rx = yang_dnode_get_uint32(args->dnode, NULL); bfd_profile_update(bp); break; @@ -408,17 +392,12 @@ int bfdd_bfd_profile_required_receive_interval_modify( int bfdd_bfd_profile_administrative_down_modify(struct nb_cb_modify_args *args) { struct bfd_profile *bp; - bool shutdown; if (args->event != NB_EV_APPLY) return NB_OK; - shutdown = yang_dnode_get_bool(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->admin_shutdown == shutdown) - return NB_OK; - - bp->admin_shutdown = shutdown; + bp->admin_shutdown = yang_dnode_get_bool(args->dnode, NULL); bfd_profile_update(bp); return NB_OK; @@ -430,17 +409,12 @@ int bfdd_bfd_profile_administrative_down_modify(struct nb_cb_modify_args *args) int bfdd_bfd_profile_passive_mode_modify(struct nb_cb_modify_args *args) { struct bfd_profile *bp; - bool passive; if (args->event != NB_EV_APPLY) return NB_OK; - passive = yang_dnode_get_bool(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->passive == passive) - return NB_OK; - - bp->passive = passive; + bp->passive = yang_dnode_get_bool(args->dnode, NULL); bfd_profile_update(bp); return NB_OK; @@ -452,17 +426,12 @@ int bfdd_bfd_profile_passive_mode_modify(struct nb_cb_modify_args *args) int bfdd_bfd_profile_minimum_ttl_modify(struct nb_cb_modify_args *args) { struct bfd_profile *bp; - uint8_t minimum_ttl; if (args->event != NB_EV_APPLY) return NB_OK; - minimum_ttl = yang_dnode_get_uint8(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->minimum_ttl == minimum_ttl) - return NB_OK; - - bp->minimum_ttl = minimum_ttl; + bp->minimum_ttl = yang_dnode_get_uint8(args->dnode, NULL); bfd_profile_update(bp); return NB_OK; @@ -511,13 +480,9 @@ int bfdd_bfd_profile_desired_echo_transmission_interval_modify( struct nb_cb_modify_args *args) { struct bfd_profile *bp; - uint32_t min_tx; switch (args->event) { case NB_EV_VALIDATE: - min_tx = yang_dnode_get_uint32(args->dnode, NULL); - if (min_tx < 10000 || min_tx > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -525,12 +490,8 @@ int bfdd_bfd_profile_desired_echo_transmission_interval_modify( break; case NB_EV_APPLY: - min_tx = yang_dnode_get_uint32(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->min_echo_tx == min_tx) - return NB_OK; - - bp->min_echo_tx = min_tx; + bp->min_echo_tx = yang_dnode_get_uint32(args->dnode, NULL); bfd_profile_update(bp); break; @@ -549,15 +510,9 @@ int bfdd_bfd_profile_required_echo_receive_interval_modify( struct nb_cb_modify_args *args) { struct bfd_profile *bp; - uint32_t min_rx; switch (args->event) { case NB_EV_VALIDATE: - min_rx = yang_dnode_get_uint32(args->dnode, NULL); - if (min_rx == 0) - return NB_OK; - if (min_rx < 10000 || min_rx > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -565,12 +520,8 @@ int bfdd_bfd_profile_required_echo_receive_interval_modify( break; case NB_EV_APPLY: - min_rx = yang_dnode_get_uint32(args->dnode, NULL); bp = nb_running_get_entry(args->dnode, NULL, true); - if (bp->min_echo_rx == min_rx) - return NB_OK; - - bp->min_echo_rx = min_rx; + bp->min_echo_rx = yang_dnode_get_uint32(args->dnode, NULL); bfd_profile_update(bp); break; @@ -677,13 +628,10 @@ int bfdd_bfd_sessions_single_hop_detection_multiplier_modify( int bfdd_bfd_sessions_single_hop_desired_transmission_interval_modify( struct nb_cb_modify_args *args) { - uint32_t tx_interval = yang_dnode_get_uint32(args->dnode, NULL); struct bfd_session *bs; switch (args->event) { case NB_EV_VALIDATE: - if (tx_interval < 10000 || tx_interval > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -692,10 +640,8 @@ int bfdd_bfd_sessions_single_hop_desired_transmission_interval_modify( case NB_EV_APPLY: bs = nb_running_get_entry(args->dnode, NULL, true); - if (tx_interval == bs->timers.desired_min_tx) - return NB_OK; - - bs->peer_profile.min_tx = tx_interval; + bs->peer_profile.min_tx = + yang_dnode_get_uint32(args->dnode, NULL); bfd_session_apply(bs); break; @@ -713,13 +659,10 @@ int bfdd_bfd_sessions_single_hop_desired_transmission_interval_modify( int bfdd_bfd_sessions_single_hop_required_receive_interval_modify( struct nb_cb_modify_args *args) { - uint32_t rx_interval = yang_dnode_get_uint32(args->dnode, NULL); struct bfd_session *bs; switch (args->event) { case NB_EV_VALIDATE: - if (rx_interval < 10000 || rx_interval > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -728,10 +671,8 @@ int bfdd_bfd_sessions_single_hop_required_receive_interval_modify( case NB_EV_APPLY: bs = nb_running_get_entry(args->dnode, NULL, true); - if (rx_interval == bs->timers.required_min_rx) - return NB_OK; - - bs->peer_profile.min_rx = rx_interval; + bs->peer_profile.min_rx = + yang_dnode_get_uint32(args->dnode, NULL); bfd_session_apply(bs); break; @@ -836,13 +777,10 @@ int bfdd_bfd_sessions_single_hop_echo_mode_modify( int bfdd_bfd_sessions_single_hop_desired_echo_transmission_interval_modify( struct nb_cb_modify_args *args) { - uint32_t echo_interval = yang_dnode_get_uint32(args->dnode, NULL); struct bfd_session *bs; switch (args->event) { case NB_EV_VALIDATE: - if (echo_interval < 10000 || echo_interval > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -851,10 +789,8 @@ int bfdd_bfd_sessions_single_hop_desired_echo_transmission_interval_modify( case NB_EV_APPLY: bs = nb_running_get_entry(args->dnode, NULL, true); - if (echo_interval == bs->timers.desired_min_echo_tx) - return NB_OK; - - bs->peer_profile.min_echo_tx = echo_interval; + bs->peer_profile.min_echo_tx = + yang_dnode_get_uint32(args->dnode, NULL); bfd_session_apply(bs); break; @@ -873,15 +809,10 @@ int bfdd_bfd_sessions_single_hop_desired_echo_transmission_interval_modify( int bfdd_bfd_sessions_single_hop_required_echo_receive_interval_modify( struct nb_cb_modify_args *args) { - uint32_t echo_interval = yang_dnode_get_uint32(args->dnode, NULL); struct bfd_session *bs; switch (args->event) { case NB_EV_VALIDATE: - if (echo_interval == 0) - return NB_OK; - if (echo_interval < 10000 || echo_interval > 60000000) - return NB_ERR_VALIDATION; break; case NB_EV_PREPARE: @@ -890,10 +821,8 @@ int bfdd_bfd_sessions_single_hop_required_echo_receive_interval_modify( case NB_EV_APPLY: bs = nb_running_get_entry(args->dnode, NULL, true); - if (echo_interval == bs->timers.required_min_echo_rx) - return NB_OK; - - bs->peer_profile.min_echo_rx = echo_interval; + bs->peer_profile.min_echo_rx = + yang_dnode_get_uint32(args->dnode, NULL); bfd_session_apply(bs); break; diff --git a/yang/frr-bfdd.yang b/yang/frr-bfdd.yang index 3877e20bd..08b607347 100644 --- a/yang/frr-bfdd.yang +++ b/yang/frr-bfdd.yang @@ -170,14 +170,18 @@ module frr-bfdd { } leaf desired-transmission-interval { - type uint32; + type uint32 { + range "10000..60000000"; + } units microseconds; default 300000; description "Minimum desired control packet transmission interval"; } leaf required-receive-interval { - type uint32; + type uint32 { + range "10000..60000000"; + } units microseconds; default 300000; description "Minimum required control packet receive interval"; @@ -207,14 +211,18 @@ module frr-bfdd { } leaf desired-echo-transmission-interval { - type uint32; + type uint32 { + range "10000..60000000"; + } units microseconds; default 50000; description "Minimum desired echo packet transmission interval"; } leaf required-echo-receive-interval { - type uint32; + type uint32 { + range "0 | 10000..60000000"; + } units microseconds; default 50000; description "Minimum required echo packet receive interval"; |