batman-adv: Distributed ARP Table - add ARP parsing functions
[linux-block.git] / net / batman-adv / distributed-arp-table.h
CommitLineData
785ea114
AQ
1/* Copyright (C) 2011-2012 B.A.T.M.A.N. contributors:
2 *
3 * Antonio Quartulli
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 2 of the GNU General Public
7 * License as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301, USA
18 */
19
20#ifndef _NET_BATMAN_ADV_ARP_H_
21#define _NET_BATMAN_ADV_ARP_H_
22
23#include "types.h"
24#include "originator.h"
25
5c3a0e55
AQ
26#include <linux/if_arp.h>
27
785ea114
AQ
28#define BATADV_DAT_ADDR_MAX ((batadv_dat_addr_t)~(batadv_dat_addr_t)0)
29
30/**
31 * batadv_dat_init_orig_node_addr - assign a DAT address to the orig_node
32 * @orig_node: the node to assign the DAT address to
33 */
34static inline void
35batadv_dat_init_orig_node_addr(struct batadv_orig_node *orig_node)
36{
37 uint32_t addr;
38
39 addr = batadv_choose_orig(orig_node->orig, BATADV_DAT_ADDR_MAX);
40 orig_node->dat_addr = (batadv_dat_addr_t)addr;
41}
42
43/**
44 * batadv_dat_init_own_addr - assign a DAT address to the node itself
45 * @bat_priv: the bat priv with all the soft interface information
46 * @primary_if: a pointer to the primary interface
47 */
48static inline void
49batadv_dat_init_own_addr(struct batadv_priv *bat_priv,
50 struct batadv_hard_iface *primary_if)
51{
52 uint32_t addr;
53
54 addr = batadv_choose_orig(primary_if->net_dev->dev_addr,
55 BATADV_DAT_ADDR_MAX);
56
57 bat_priv->dat.addr = (batadv_dat_addr_t)addr;
58}
59
2f1dfbe1
AQ
60int batadv_dat_init(struct batadv_priv *bat_priv);
61void batadv_dat_free(struct batadv_priv *bat_priv);
62int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset);
63
785ea114 64#endif /* _NET_BATMAN_ADV_ARP_H_ */