When -1 is written in /proc/sys/net/ipv4/neigh/<iface>/locktime,
kernel disables ARP trashing protection. A value of 0 does not completely
disable this protection, a second ARP update being discarded if it
is processed during the same jiffie as the first update.

Signed-off-by: Alin Nastac <alin.nas...@gmail.com>
---
 device.h       | 2 +-
 system-linux.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/device.h b/device.h
index 74d20d6..7ad733e 100644
--- a/device.h
+++ b/device.h
@@ -162,7 +162,7 @@ struct device_settings {
        unsigned int neigh6reachabletime;
        unsigned int neigh4gcstaletime;
        unsigned int neigh6gcstaletime;
-       unsigned int neigh4locktime;
+       int neigh4locktime;
        bool rps;
        bool xps;
        unsigned int dadtransmits;
diff --git a/system-linux.c b/system-linux.c
index 483a98d..0480b56 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -1362,7 +1362,7 @@ system_if_get_settings(struct device *dev, struct 
device_settings *s)
        }
 
        if (!system_get_neigh4locktime(dev, buf, sizeof(buf))) {
-               s->neigh4locktime = strtoul(buf, NULL, 0);
+               s->neigh4locktime = strtol(buf, NULL, 0);
                s->flags |= DEV_OPT_NEIGHLOCKTIME;
        }
 
@@ -1476,7 +1476,7 @@ system_if_apply_settings(struct device *dev, struct 
device_settings *s, unsigned
                system_set_neigh6reachabletime(dev, buf);
        }
        if (s->flags & DEV_OPT_NEIGHLOCKTIME & apply_mask) {
-               snprintf(buf, sizeof(buf), "%u", s->neigh4locktime);
+               snprintf(buf, sizeof(buf), "%d", s->neigh4locktime);
                system_set_neigh4locktime(dev, buf);
        }
        if (s->flags & DEV_OPT_NEIGHGCSTALETIME & apply_mask) {
-- 
2.7.4


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to