dhcpv6_client: add comment on why the division is needed

(cherry picked from commit b1b0a9b4f5d4f60e7290556ecc7bf7dc3f9bd745)
This commit is contained in:
Martine Lenders 2021-10-15 17:36:13 +02:00 committed by Benjamin Valentin
parent 92f679b8a9
commit 317d4423f3

View File

@ -473,6 +473,8 @@ static inline uint32_t _irt_ms(uint16_t irt, bool greater_irt)
if (greater_irt && (factor < 0)) {
factor = -factor;
}
/* random factor is also in ms, but it is supposed to be without unit,
* so we need to divide by ms */
irt_ms += (factor * irt_ms) / MS_PER_SEC;
return irt_ms;
}
@ -480,12 +482,16 @@ static inline uint32_t _irt_ms(uint16_t irt, bool greater_irt)
static inline uint32_t _sub_rt_ms(uint32_t rt_prev_ms, uint16_t mrt)
{
uint32_t sub_rt_ms = (2 * rt_prev_ms) +
/* random factor is also in ms, but it is supposed to
* be without unit, so we need to divide by ms */
((int32_t)(get_rand_ms_factor() * rt_prev_ms) /
(int32_t)MS_PER_SEC);
if (sub_rt_ms > (mrt * MS_PER_SEC)) {
uint32_t mrt_ms = mrt * MS_PER_SEC;
/* random factor is also in ms, but it is supposed to be without unit,
* so we need to divide by ms */
sub_rt_ms = mrt_ms + ((int32_t)(get_rand_ms_factor() * mrt_ms) /
(int32_t)MS_PER_SEC);
}