kni: update link only on change

'rte_kni_update_link()' updates virtual KNI interface link using kernel
sysfs interface.
If the requested link status is same as interface link status, do not
update the link status but return with success.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Ferruh Yigit 2021-06-24 14:32:16 +01:00 committed by Thomas Monjalon
parent cd27047dbe
commit b67f598e23
2 changed files with 5 additions and 1 deletions

View File

@ -811,6 +811,9 @@ rte_kni_update_link(struct rte_kni *kni, unsigned int linkup)
}
old_linkup = (old_carrier[0] == '1');
if (old_linkup == (int)linkup)
goto out;
new_carrier = linkup ? "1" : "0";
ret = write(fd, new_carrier, 1);
if (ret < 1) {
@ -818,7 +821,7 @@ rte_kni_update_link(struct rte_kni *kni, unsigned int linkup)
close(fd);
return -1;
}
out:
close(fd);
return old_linkup;
}

View File

@ -19,5 +19,6 @@ DPDK_21 {
EXPERIMENTAL {
global:
# updated in v21.08
rte_kni_update_link;
};