linux/net/batman-adv
Linus Lüssing 099e6cc158 batman-adv: allow updating DAT entry timeouts on incoming ARP Replies
Currently incoming ARP Replies, for example via a DHT-PUT message, do
not update the timeout for an already existing DAT entry. These ARP
Replies are dropped instead.

This however defeats the purpose of the DHCPACK snooping, for instance.
Right now, a DAT entry in the DHT will be purged every five minutes,
likely leading to a mesh-wide ARP Request broadcast after this timeout.
Which then recreates the entry. The idea of the DHCPACK snooping is to
be able to update an entry before a timeout happens, to avoid ARP Request
flooding.

This patch fixes this issue by updating a DAT entry on incoming
ARP Replies even if a matching DAT entry already exists. While still
filtering the ARP Reply towards the soft-interface, to avoid duplicate
messages on the client device side.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Acked-by: Antonio Quartulli <a@unstable.cc>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2019-03-25 10:01:13 +01:00
..
bat_algo.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_algo.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_iv_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_iv_ogm.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_elp.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_elp.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_ogm.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bridge_loop_avoidance.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
bridge_loop_avoidance.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
debugfs.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
debugfs.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
distributed-arp-table.c batman-adv: allow updating DAT entry timeouts on incoming ARP Replies 2019-03-25 10:01:13 +01:00
distributed-arp-table.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
fragmentation.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
fragmentation.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
gateway_client.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
gateway_client.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
gateway_common.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
gateway_common.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hard-interface.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hard-interface.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hash.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hash.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
icmp_socket.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
icmp_socket.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
Kconfig batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
log.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
log.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
main.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
main.h batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
Makefile batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
multicast.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
multicast.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
netlink.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
netlink.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
network-coding.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
network-coding.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
originator.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
originator.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
routing.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
routing.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
send.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
send.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
soft-interface.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
soft-interface.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
sysfs.c batman-adv: Warn about sysfs file access 2019-03-25 10:01:12 +01:00
sysfs.h batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
tp_meter.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tp_meter.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
trace.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
trace.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
translation-table.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
translation-table.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tvlv.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tvlv.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
types.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00