dhcpv6_client: add comment on why the division is needed
(cherry picked from commit b1b0a9b4f5d4f60e7290556ecc7bf7dc3f9bd745)
This commit is contained in:
parent
92f679b8a9
commit
317d4423f3
@ -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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user