[v2,7/7] batman-adv: add Distributed ARP Table compile option

Message ID 1320752062-21776-8-git-send-email-ordex@autistici.org (mailing list archive)
State Superseded, archived
Headers

Commit Message

Antonio Quartulli Nov. 8, 2011, 11:34 a.m. UTC
  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

Simon Wunderlich Nov. 15, 2011, 8:27 p.m. UTC | #1
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
> 
>
  
Antonio Quartulli Nov. 15, 2011, 8:32 p.m. UTC | #2
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,
  

Patch

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
+
 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)