|
@@ -30,15 +30,15 @@ index 632a209..01f567f 100644
|
|
|
}
|
|
|
diff --git a/batman-adv/patches/1001-batman-adv-introduce-no_rebroadcast-option.patch b/batman-adv/patches/1001-batman-adv-introduce-no_rebroadcast-option.patch
|
|
|
new file mode 100644
|
|
|
-index 0000000..9fc9426
|
|
|
+index 0000000..f461ddc
|
|
|
--- /dev/null
|
|
|
+++ b/batman-adv/patches/1001-batman-adv-introduce-no_rebroadcast-option.patch
|
|
|
@@ -0,0 +1,172 @@
|
|
|
-+From 5ba3f1eac041857deabe39432fdfe1a584bbdd81 Mon Sep 17 00:00:00 2001
|
|
|
-+Message-Id: <5ba3f1eac041857deabe39432fdfe1a584bbdd81.1420645650.git.mschiffer@universe-factory.net>
|
|
|
++From a20c87779270f509227feecc4487e36a7d850c0f Mon Sep 17 00:00:00 2001
|
|
|
++Message-Id: <a20c87779270f509227feecc4487e36a7d850c0f.1438892883.git.mschiffer@universe-factory.net>
|
|
|
+From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@web.de>
|
|
|
+Date: Tue, 24 Sep 2013 04:36:27 +0200
|
|
|
-+Subject: [PATCH] batman-adv: introduce 'no_rebroadcast' option
|
|
|
++Subject: [PATCH 1/2] batman-adv: introduce 'no_rebroadcast' option
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
@@ -63,16 +63,32 @@ index 0000000..9fc9426
|
|
|
+
|
|
|
+Signed-off-by: Linus Lüssing <linus.luessing@web.de>
|
|
|
+---
|
|
|
-+ hard-interface.c | 2 ++
|
|
|
-+ send.c | 4 ++++
|
|
|
-+ sysfs-class-net-batman-adv | 10 ++++++++
|
|
|
-+ sysfs.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
-+ types.h | 1 +
|
|
|
++ .../ABI/testing/sysfs-class-net-batman-adv | 10 ++++
|
|
|
++ net/batman-adv/hard-interface.c | 2 +
|
|
|
++ net/batman-adv/send.c | 4 ++
|
|
|
++ net/batman-adv/sysfs.c | 59 ++++++++++++++++++++++
|
|
|
++ net/batman-adv/types.h | 1 +
|
|
|
+ 5 files changed, 76 insertions(+)
|
|
|
+
|
|
|
-+--- a/hard-interface.c
|
|
|
-++++ b/hard-interface.c
|
|
|
-+@@ -592,6 +592,8 @@ batadv_hardif_add_interface(struct net_d
|
|
|
++--- a/Documentation/ABI/testing/sysfs-class-net-batman-adv
|
|
|
+++++ b/Documentation/ABI/testing/sysfs-class-net-batman-adv
|
|
|
++@@ -13,3 +13,13 @@ Description:
|
|
|
++ displays the batman mesh interface this <iface>
|
|
|
++ currently is associated with.
|
|
|
++
|
|
|
+++What: /sys/class/net/<iface>/batman-adv/no_rebroadcast
|
|
|
+++Date: Sep 2013
|
|
|
+++Contact: Linus Lüssing <linus.luessing@web.de>
|
|
|
+++Description:
|
|
|
+++ With this option set incoming multicast payload frames on
|
|
|
+++ <iface> are not being rebroadcasted on <iface> again. This
|
|
|
+++ option should be set on links which are known to be transitive
|
|
|
+++ and symmetric only, for instance point-to-point wifi longshots
|
|
|
+++ or wired links. Using this option wrongly is going to
|
|
|
+++ break your mesh network, use at your own risk!
|
|
|
++--- a/net/batman-adv/hard-interface.c
|
|
|
+++++ b/net/batman-adv/hard-interface.c
|
|
|
++@@ -639,6 +639,8 @@ batadv_hardif_add_interface(struct net_d
|
|
|
+ /* extra reference for return */
|
|
|
+ atomic_set(&hard_iface->refcount, 2);
|
|
|
+
|
|
@@ -81,9 +97,9 @@ index 0000000..9fc9426
|
|
|
+ batadv_check_known_mac_addr(hard_iface->net_dev);
|
|
|
+ list_add_tail_rcu(&hard_iface->list, &batadv_hardif_list);
|
|
|
+
|
|
|
-+--- a/send.c
|
|
|
-++++ b/send.c
|
|
|
-+@@ -513,6 +513,10 @@ static void batadv_send_outstanding_bcas
|
|
|
++--- a/net/batman-adv/send.c
|
|
|
+++++ b/net/batman-adv/send.c
|
|
|
++@@ -531,6 +531,10 @@ static void batadv_send_outstanding_bcas
|
|
|
+ if (forw_packet->num_packets >= hard_iface->num_bcasts)
|
|
|
+ continue;
|
|
|
+
|
|
@@ -94,25 +110,9 @@ index 0000000..9fc9426
|
|
|
+ /* send a copy of the saved skb */
|
|
|
+ skb1 = skb_clone(forw_packet->skb, GFP_ATOMIC);
|
|
|
+ if (skb1)
|
|
|
-+--- a/sysfs-class-net-batman-adv
|
|
|
-++++ b/sysfs-class-net-batman-adv
|
|
|
-+@@ -13,3 +13,13 @@ Description:
|
|
|
-+ displays the batman mesh interface this <iface>
|
|
|
-+ currently is associated with.
|
|
|
-+
|
|
|
-++What: /sys/class/net/<iface>/batman-adv/no_rebroadcast
|
|
|
-++Date: Sep 2013
|
|
|
-++Contact: Linus Lüssing <linus.luessing@web.de>
|
|
|
-++Description:
|
|
|
-++ With this option set incoming multicast payload frames on
|
|
|
-++ <iface> are not being rebroadcasted on <iface> again. This
|
|
|
-++ option should be set on links which are known to be transitive
|
|
|
-++ and symmetric only, for instance point-to-point wifi longshots
|
|
|
-++ or wired links. Using this option wrongly is going to
|
|
|
-++ break your mesh network, use at your own risk!
|
|
|
-+--- a/sysfs.c
|
|
|
-++++ b/sysfs.c
|
|
|
-+@@ -110,6 +110,17 @@ struct batadv_attribute batadv_attr_vlan
|
|
|
++--- a/net/batman-adv/sysfs.c
|
|
|
+++++ b/net/batman-adv/sysfs.c
|
|
|
++@@ -129,6 +129,17 @@ struct batadv_attribute batadv_attr_vlan
|
|
|
+ .store = _store, \
|
|
|
+ }
|
|
|
+
|
|
@@ -130,7 +130,7 @@ index 0000000..9fc9426
|
|
|
+ /* Use this, if you have customized show and store functions */
|
|
|
+ #define BATADV_ATTR(_name, _mode, _show, _store) \
|
|
|
+ struct batadv_attribute batadv_attr_##_name = { \
|
|
|
-+@@ -220,6 +231,52 @@ ssize_t batadv_show_vlan_##_name(struct
|
|
|
++@@ -239,6 +250,52 @@ ssize_t batadv_show_vlan_##_name(struct
|
|
|
+ static BATADV_ATTR_VLAN(_name, _mode, batadv_show_vlan_##_name, \
|
|
|
+ batadv_store_vlan_##_name)
|
|
|
+
|
|
@@ -183,7 +183,7 @@ index 0000000..9fc9426
|
|
|
+ static int batadv_store_bool_attr(char *buff, size_t count,
|
|
|
+ struct net_device *net_dev,
|
|
|
+ const char *attr_name, atomic_t *attr)
|
|
|
-+@@ -843,10 +900,12 @@ static ssize_t batadv_show_iface_status(
|
|
|
++@@ -863,10 +920,12 @@ static ssize_t batadv_show_iface_status(
|
|
|
+ static BATADV_ATTR(mesh_iface, S_IRUGO | S_IWUSR, batadv_show_mesh_iface,
|
|
|
+ batadv_store_mesh_iface);
|
|
|
+ static BATADV_ATTR(iface_status, S_IRUGO, batadv_show_iface_status, NULL);
|
|
@@ -196,9 +196,9 @@ index 0000000..9fc9426
|
|
|
+ NULL,
|
|
|
+ };
|
|
|
+
|
|
|
-+--- a/types.h
|
|
|
-++++ b/types.h
|
|
|
-+@@ -101,6 +101,7 @@ struct batadv_hard_iface {
|
|
|
++--- a/net/batman-adv/types.h
|
|
|
+++++ b/net/batman-adv/types.h
|
|
|
++@@ -115,6 +115,7 @@ struct batadv_hard_iface {
|
|
|
+ struct batadv_hard_iface_bat_iv bat_iv;
|
|
|
+ struct work_struct cleanup_work;
|
|
|
+ struct dentry *debug_dir;
|