[v2,7/7] batman-adv: add Distributed ARP Table compile option
Commit Message
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---
Makefile.kbuild | 8 +++++++-
README | 4 ++++
distributed-arp-table.h | 12 ++++++++++++
3 files changed, 23 insertions(+), 1 deletions(-)
Comments
On Tue, Nov 08, 2011 at 12:34:22PM +0100, Antonio Quartulli wrote:
> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
> ---
> Makefile.kbuild | 8 +++++++-
> README | 4 ++++
> distributed-arp-table.h | 12 ++++++++++++
> 3 files changed, 23 insertions(+), 1 deletions(-)
>
> diff --git a/Makefile.kbuild b/Makefile.kbuild
> index e8861cb..f09004f 100644
> --- a/Makefile.kbuild
> +++ b/Makefile.kbuild
> @@ -18,6 +18,8 @@
> # 02110-1301, USA
> #
>
> +# uncomment the following line to enable the Distributed ARP Table feature
> +# CONFIG_BATMAN_ADV_DAT=y
>
>
> # openwrt integration
> @@ -27,6 +29,10 @@ endif
>
> # ccflags-y += -DCONFIG_BATMAN_ADV_DEBUG
>
> +ifeq ($(CONFIG_BATMAN_ADV_DAT), y)
> +ccflags-y += -DCONFIG_BATMAN_ADV_DAT
> +endif
> +
> ifneq ($(REVISION),)
> ccflags-y += -DSOURCE_VERSION=\"$(REVISION)\"
> endif
> @@ -36,7 +42,7 @@ batman-adv-y += bat_debugfs.o
> batman-adv-y += bat_iv_ogm.o
> batman-adv-y += bat_sysfs.o
> batman-adv-y += bitarray.o
> -batman-adv-y += distributed-arp-table.o
> +batman-adv-$(CONFIG_BATMAN_ADV_DAT) += distributed-arp-table.o
> batman-adv-y += gateway_client.o
> batman-adv-y += gateway_common.o
> batman-adv-y += hard-interface.o
> diff --git a/README b/README
> index 5ba56b5..1a27f9f 100644
> --- a/README
> +++ b/README
> @@ -26,6 +26,10 @@ it. If you work on a backport, feel free to contact us. :-)
> COMPILE
> -------
>
> +Before compiling you want to have a look at the Makefile.kbuild
> +file to enable/disable wanted features. Actually there are:
> +- CONFIG_BATMAN_ADV_DAT enables the Distributed ARP Table
> +
> To compile against your currently installed kernel, just type:
>
> # make
> diff --git a/distributed-arp-table.h b/distributed-arp-table.h
> index d3fb8b1..496b7f3 100644
> --- a/distributed-arp-table.h
> +++ b/distributed-arp-table.h
> @@ -28,6 +28,8 @@
> #define ARP_HW_DST(skb) (ARP_HW_SRC(skb) + ETH_ALEN + 4)
> #define ARP_IP_DST(skb) (*(uint32_t *)(ARP_HW_SRC(skb) + ETH_ALEN * 2 + 4))
>
> +#ifdef CONFIG_BATMAN_ADV_BAT
Took me some time to find this typo :P
please use CONFIG_BATMAN_ADV_DAT, not CONFIG_BATMAN_ADV_BAT or else it won't compile.
> +
> uint16_t arp_get_type(struct bat_priv *bat_priv, struct sk_buff *skb);
> bool arp_snoop_outgoing_request(struct bat_priv *bat_priv,
> struct sk_buff *skb);
> @@ -36,6 +38,16 @@ bool arp_snoop_incoming_request(struct bat_priv *bat_priv,
> bool arp_snoop_outgoing_reply(struct bat_priv *bat_priv, struct sk_buff *skb);
> bool arp_snoop_incoming_reply(struct bat_priv *bat_priv, struct sk_buff *skb);
>
> +#else
> +
> +#define arp_get_type(...) (0)
> +#define arp_snoop_outgoing_request(...) (0)
> +#define arp_snoop_incoming_request(...) (0)
> +#define arp_snoop_outgoing_reply(...)
> +#define arp_snoop_incoming_reply(...)
> +
> +#endif
> +
> /* hash function to choose an entry in a hash table of given size */
> /* hash algorithm from http://en.wikipedia.org/wiki/Hash_table */
> static inline uint32_t hash_ipv4(const void *data, uint32_t size)
> --
> 1.7.3.4
>
>
On Tue, Nov 15, 2011 at 09:27:23PM +0100, Simon Wunderlich wrote:
> > +#ifdef CONFIG_BATMAN_ADV_BAT
>
> Took me some time to find this typo :P
> please use CONFIG_BATMAN_ADV_DAT, not CONFIG_BATMAN_ADV_BAT or else it won't compile.
nice catch! Don't ask me when I introduced this typ0 because I don't know!
Thank Simon,
@@ -18,6 +18,8 @@
# 02110-1301, USA
#
+# uncomment the following line to enable the Distributed ARP Table feature
+# CONFIG_BATMAN_ADV_DAT=y
# openwrt integration
@@ -27,6 +29,10 @@ endif
# ccflags-y += -DCONFIG_BATMAN_ADV_DEBUG
+ifeq ($(CONFIG_BATMAN_ADV_DAT), y)
+ccflags-y += -DCONFIG_BATMAN_ADV_DAT
+endif
+
ifneq ($(REVISION),)
ccflags-y += -DSOURCE_VERSION=\"$(REVISION)\"
endif
@@ -36,7 +42,7 @@ batman-adv-y += bat_debugfs.o
batman-adv-y += bat_iv_ogm.o
batman-adv-y += bat_sysfs.o
batman-adv-y += bitarray.o
-batman-adv-y += distributed-arp-table.o
+batman-adv-$(CONFIG_BATMAN_ADV_DAT) += distributed-arp-table.o
batman-adv-y += gateway_client.o
batman-adv-y += gateway_common.o
batman-adv-y += hard-interface.o
@@ -26,6 +26,10 @@ it. If you work on a backport, feel free to contact us. :-)
COMPILE
-------
+Before compiling you want to have a look at the Makefile.kbuild
+file to enable/disable wanted features. Actually there are:
+- CONFIG_BATMAN_ADV_DAT enables the Distributed ARP Table
+
To compile against your currently installed kernel, just type:
# make
@@ -28,6 +28,8 @@
#define ARP_HW_DST(skb) (ARP_HW_SRC(skb) + ETH_ALEN + 4)
#define ARP_IP_DST(skb) (*(uint32_t *)(ARP_HW_SRC(skb) + ETH_ALEN * 2 + 4))
+#ifdef CONFIG_BATMAN_ADV_BAT
+
uint16_t arp_get_type(struct bat_priv *bat_priv, struct sk_buff *skb);
bool arp_snoop_outgoing_request(struct bat_priv *bat_priv,
struct sk_buff *skb);
@@ -36,6 +38,16 @@ bool arp_snoop_incoming_request(struct bat_priv *bat_priv,
bool arp_snoop_outgoing_reply(struct bat_priv *bat_priv, struct sk_buff *skb);
bool arp_snoop_incoming_reply(struct bat_priv *bat_priv, struct sk_buff *skb);
+#else
+
+#define arp_get_type(...) (0)
+#define arp_snoop_outgoing_request(...) (0)
+#define arp_snoop_incoming_request(...) (0)
+#define arp_snoop_outgoing_reply(...)
+#define arp_snoop_incoming_reply(...)
+
+#endif
+
/* hash function to choose an entry in a hash table of given size */
/* hash algorithm from http://en.wikipedia.org/wiki/Hash_table */
static inline uint32_t hash_ipv4(const void *data, uint32_t size)