summaryrefslogtreecommitdiffstats
path: root/net/batman-adv/distributed-arp-table.h
diff options
context:
space:
mode:
authorAntonio Quartulli <ordex@autistici.org>2011-06-26 03:37:18 +0200
committerAntonio Quartulli <ordex@autistici.org>2012-11-07 20:00:21 +0100
commitc384ea3ec930ef11060a7308fbbd02b4871384f9 (patch)
tree14764f1a722c0a5633aa9dc5cebc19081703d446 /net/batman-adv/distributed-arp-table.h
parent5c3a0e5535933349a5d6e6bc8b704e0611f21d3f (diff)
downloadlinux-c384ea3ec930ef11060a7308fbbd02b4871384f9.tar.gz
linux-c384ea3ec930ef11060a7308fbbd02b4871384f9.tar.bz2
linux-c384ea3ec930ef11060a7308fbbd02b4871384f9.zip
batman-adv: Distributed ARP Table - add snooping functions for ARP messages
In case of an ARP message going in or out the soft_iface, it is intercepted and a special action is performed. In particular the DHT helper functions previously implemented are used to store all the ARP entries belonging to the network in order to provide a fast and unicast lookup instead of the classic broadcast flooding mechanism. Each node stores the entries it is responsible for (following the DHT rules) in its soft_iface ARP table. This makes it possible to reuse the kernel data structures and functions for ARP management. Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Diffstat (limited to 'net/batman-adv/distributed-arp-table.h')
-rw-r--r--net/batman-adv/distributed-arp-table.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/batman-adv/distributed-arp-table.h b/net/batman-adv/distributed-arp-table.h
index f4e282a6e634..01308cea5b4e 100644
--- a/net/batman-adv/distributed-arp-table.h
+++ b/net/batman-adv/distributed-arp-table.h
@@ -27,6 +27,17 @@
#define BATADV_DAT_ADDR_MAX ((batadv_dat_addr_t)~(batadv_dat_addr_t)0)
+bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
+ struct sk_buff *skb);
+bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
+ struct sk_buff *skb, int hdr_size);
+void batadv_dat_snoop_outgoing_arp_reply(struct batadv_priv *bat_priv,
+ struct sk_buff *skb);
+bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
+ struct sk_buff *skb, int hdr_size);
+bool batadv_dat_drop_broadcast_packet(struct batadv_priv *bat_priv,
+ struct batadv_forw_packet *forw_packet);
+
/**
* batadv_dat_init_orig_node_addr - assign a DAT address to the orig_node
* @orig_node: the node to assign the DAT address to