ip route: timeout for routes has to be set in seconds
Currently a timeout is multiplied by HZ in user-space and
then it multiplied by HZ in kernel-space.
$ ./ip/ip r add 2002::0/64 dev veth1 expires 10
$ ./ip/ip -6 r
2002::/64 dev veth1 metric 1024 linkdown expires 996sec pref medium
Cc: Xin Long <lucien.xin@gmail.com>
Cc: Hangbin Liu <liuhangbin@gmail.com>
Cc: Stephen Hemminger <shemming@brocade.com>
Fixes: 68eede2505 ("route: allow routes to be configured with expire values")
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
This commit is contained in:
parent
577cfe0b67
commit
eecc006952
|
|
@ -839,7 +839,6 @@ static int iproute_modify(int cmd, unsigned int flags, int argc, char **argv)
|
|||
int table_ok = 0;
|
||||
int raw = 0;
|
||||
int type_ok = 0;
|
||||
static int hz;
|
||||
|
||||
memset(&req, 0, sizeof(req));
|
||||
|
||||
|
|
@ -923,9 +922,7 @@ static int iproute_modify(int cmd, unsigned int flags, int argc, char **argv)
|
|||
NEXT_ARG();
|
||||
if (get_u32(&expires, *argv, 0))
|
||||
invarg("\"expires\" value is invalid\n", *argv);
|
||||
if (!hz)
|
||||
hz = get_user_hz();
|
||||
addattr32(&req.n, sizeof(req), RTA_EXPIRES, expires*hz);
|
||||
addattr32(&req.n, sizeof(req), RTA_EXPIRES, expires);
|
||||
} else if (matches(*argv, "metric") == 0 ||
|
||||
matches(*argv, "priority") == 0 ||
|
||||
strcmp(*argv, "preference") == 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue