Skip to content

Commit b69833c

Browse files
committed
vrrp: change skew_time & master_down_interval
skew_time: - Was not initially sent as part of state data, this has been changed. State retrieval being done in milliseconds. master_down_interval: - Changed calculation from u32 to f32 for more accurate calculation. - Shared in state as centiseconds. Signed-off-by: Paul Wekesa <[email protected]>
1 parent 76923e2 commit b69833c

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

holo-vrrp/src/northbound/configuration.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -401,8 +401,8 @@ impl Provider for Interface {
401401
// ===== configuration helpers =====
402402

403403
impl InstanceCfg {
404-
pub(crate) const fn master_down_interval(&self) -> u32 {
405-
(3 * self.advertise_interval as u32) + self.skew_time() as u32
404+
pub(crate) const fn master_down_interval(&self) -> f32 {
405+
(3 * self.advertise_interval) as f32 + self.skew_time()
406406
}
407407

408408
pub(crate) const fn skew_time(&self) -> f32 {

holo-vrrp/src/northbound/state.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ fn load_callbacks() -> Callbacks<Interface> {
5050
is_owner: None,
5151
last_adv_source: instance.state.last_adv_src.as_ref().map(Cow::Borrowed).ignore_in_testing(),
5252
up_datetime: instance.state.up_time.as_ref().map(Cow::Borrowed).ignore_in_testing(),
53-
master_down_interval: instance.state.timer.as_master_down_timer().map(|task| task.remaining().as_millis() as u32 / 10).ignore_in_testing(),
54-
// TODO
55-
skew_time: None,
53+
// `master_down_interval` multiplied by 100 since it's in centiseconds.
54+
master_down_interval: Some((instance.config.master_down_interval() * 100.0) as u32),
55+
// `skew_time` multiplied by 1000 since it's in microseconds.
56+
skew_time: Some((instance.config.skew_time() * 1000.0) as u32),
5657
last_event: Some(instance.state.last_event.to_yang()).ignore_in_testing(),
5758
new_master_reason: Some(instance.state.new_master_reason.to_yang()),
5859
})
@@ -89,9 +90,10 @@ fn load_callbacks() -> Callbacks<Interface> {
8990
is_owner: None,
9091
last_adv_source: instance.state.last_adv_src.as_ref().map(Cow::Borrowed).ignore_in_testing(),
9192
up_datetime: instance.state.up_time.as_ref().map(Cow::Borrowed).ignore_in_testing(),
92-
master_down_interval: instance.state.timer.as_master_down_timer().map(|task| task.remaining().as_millis() as u32 / 10).ignore_in_testing(),
93-
// TODO
94-
skew_time: None,
93+
// `master_down_interval` multiplied by 100 since it's in centiseconds.
94+
master_down_interval: Some((instance.config.master_down_interval() * 100.0) as u32),
95+
// `skew_time` multiplied by 1000 since it's in microseconds.
96+
skew_time: Some((instance.config.skew_time() * 1000.0) as u32),
9597
last_event: Some(instance.state.last_event.to_yang()).ignore_in_testing(),
9698
new_master_reason: Some(instance.state.new_master_reason.to_yang()),
9799
})

0 commit comments

Comments
 (0)