diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index de918c3c29..d66b3a288f 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1166,14 +1166,13 @@ int config_parse_prefix_lifetime(const char *unit, return 0; } - /* a value of 0xffffffff represents infinity, 0x0 means this host is - not a router */ + /* a value of 0xffffffff represents infinity */ if (streq(lvalue, "PreferredLifetimeSec")) r = sd_radv_prefix_set_preferred_lifetime(p->radv_prefix, - (usec + USEC_PER_SEC - 1) / USEC_PER_SEC); + DIV_ROUND_UP(usec, USEC_PER_SEC)); else if (streq(lvalue, "ValidLifetimeSec")) r = sd_radv_prefix_set_valid_lifetime(p->radv_prefix, - (usec + USEC_PER_SEC - 1) / USEC_PER_SEC); + DIV_ROUND_UP(usec, USEC_PER_SEC)); if (r < 0) return r; diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c index e5be145146..af9e116936 100644 --- a/src/network/networkd-radv.c +++ b/src/network/networkd-radv.c @@ -55,8 +55,10 @@ int radv_configure(Link *link) { if (r < 0) return r; + /* a value of 0xffffffff represents infinity, 0x0 means this host is + not a router */ r = sd_radv_set_router_lifetime(link->radv, - link->network->router_lifetime_usec); + DIV_ROUND_UP(link->network->router_lifetime_usec, USEC_PER_SEC)); if (r < 0) return r;