kni: update link only on change
Checks
Commit Message
'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>
---
Cc: Dan Gora <dg@adax.com>
---
lib/kni/rte_kni.c | 5 ++++-
lib/kni/version.map | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
Comments
24/06/2021 15:32, Ferruh Yigit:
> '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>
Applied, thanks.
@@ -810,6 +810,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) {
@@ -817,7 +820,7 @@ rte_kni_update_link(struct rte_kni *kni, unsigned int linkup)
close(fd);
return -1;
}
-
+out:
close(fd);
return old_linkup;
}
@@ -19,5 +19,6 @@ DPDK_21 {
EXPERIMENTAL {
global:
+ # updated in v21.08
rte_kni_update_link;
};