Repository : ssh://git@open-mesh.org/batman-adv
On branch : next
>---------------------------------------------------------------
commit 7678d5d34e9c96b041c3509810cf03bc8740e526
Merge: 6639da5 1356028
Author: Marek Lindner <mareklindner(a)neomailbox.ch>
Date: Wed Dec 25 22:12:00 2013 +0800
Merge branch 'maint' into next
Conflicts:
soft-interface.c
>---------------------------------------------------------------
7678d5d34e9c96b041c3509810cf03bc8740e526
soft-interface.c | 13 +++++--------
soft-interface.h | 16 ----------------
2 files changed, 5 insertions(+), 24 deletions(-)
diff --cc soft-interface.c
index 74f4630,08086cf..875a702
--- a/soft-interface.c
+++ b/soft-interface.c
@@@ -346,7 -324,11 +346,12 @@@ void batadv_interface_rx(struct net_dev
skb_pull_rcsum(skb, hdr_size);
skb_reset_mac_header(skb);
+ /* clean the netfilter state now that the batman-adv header has been
+ * removed
+ */
+ nf_reset(skb);
+
+ vid = batadv_get_vid(skb, hdr_size);
ethhdr = eth_hdr(skb);
switch (ntohs(ethhdr->h_proto)) {
@@@ -387,20 -371,11 +392,12 @@@
if (orig_node)
batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
- ethhdr->h_source);
+ ethhdr->h_source, vid);
- if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest))
+ if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest,
+ vid))
goto dropped;
- /* Clean the netfilter state before delivering the skb.
- * This packet may have traversed a bridge when it was encapsulated into
- * the batman header. Now that the header has been removed, the
- * netfilter state must be cleaned up to avoid to mess up with a
- * possible second bridge
- */
- batadv_nf_bridge_skb_free(skb);
-
netif_rx(skb);
goto out;
diff --cc soft-interface.h
index 21b8573,2f2472c..06fc91f
--- a/soft-interface.h
+++ b/soft-interface.h
@@@ -28,25 -28,5 +28,9 @@@ struct net_device *batadv_softif_create
void batadv_softif_destroy_sysfs(struct net_device *soft_iface);
int batadv_softif_is_valid(const struct net_device *net_dev);
extern struct rtnl_link_ops batadv_link_ops;
+int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid);
+void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan);
+struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
+ unsigned short vid);
- #ifdef CONFIG_BRIDGE_NETFILTER
- /**
- * batadv_nf_bridge_skb_free - clean the NF bridge data in an skb
- * @skb: the skb which nf data has to be free'd
- */
- static inline void batadv_nf_bridge_skb_free(struct sk_buff *skb)
- {
- nf_bridge_put(skb->nf_bridge);
- skb->nf_bridge = NULL;
- }
- #else
- static inline void batadv_nf_bridge_skb_free(struct sk_buff *skb)
- {
- }
- #endif /* CONFIG_BRIDGE_NETFILTER */
-
#endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */
Repository : ssh://git@open-mesh.org/batman-adv
On branch : maint
>---------------------------------------------------------------
commit 135602880b28bc7cf12c60fec550a6122851f2e9
Author: Antonio Quartulli <antonio(a)meshcoding.com>
Date: Mon Dec 23 01:28:05 2013 +0100
batman-adv: clean nf state when removing protocol header
If an interface enslaved into batman-adv is a bridge (or a
virtual interface built on top of a bridge) the nf_bridge
member of the skbs reaching the soft-interface is filled
with the state about "netfilter bridge" operations.
Then, if one of such skbs is locally delivered, the nf_bridge
member should be cleaned up to avoid that the old state
could mess up with other "netfilter bridge" operations when
entering a second bridge.
This is needed because batman-adv is an encapsulation
protocol.
However at the moment skb->nf_bridge is not released at all
leading to bogus "netfilter bridge" behaviours.
Fix this by cleaning the netfilter state of the skb before
it gets delivered to the upper layer in interface_rx().
Signed-off-by: Antonio Quartulli <antonio(a)meshcoding.com>
Signed-off-by: Marek Lindner <mareklindner(a)neomailbox.ch>
>---------------------------------------------------------------
135602880b28bc7cf12c60fec550a6122851f2e9
soft-interface.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/soft-interface.c b/soft-interface.c
index 33b6144..08086cf 100644
--- a/soft-interface.c
+++ b/soft-interface.c
@@ -324,6 +324,11 @@ void batadv_interface_rx(struct net_device *soft_iface,
skb_pull_rcsum(skb, hdr_size);
skb_reset_mac_header(skb);
+ /* clean the netfilter state now that the batman-adv header has been
+ * removed
+ */
+ nf_reset(skb);
+
ethhdr = eth_hdr(skb);
switch (ntohs(ethhdr->h_proto)) {
Repository : ssh://git@open-mesh.org/batman-adv
On branch : maint
>---------------------------------------------------------------
commit 96bd7236a4dac51fa03f49679b47708825c36674
Author: Antonio Quartulli <antonio(a)meshcoding.com>
Date: Mon Dec 23 01:28:04 2013 +0100
Revert "batman-adv: free nf_bridge member on locally delivered skb"
This reverts commit 9048eb62124f47f66d12eb1d706ab5fb265553f7.
This fix can be implemented using the nf_Reset() helper
instead of partly reimplementing it with a batman-adv
private function.
Signed-off-by: Antonio Quartulli <antonio(a)meshcoding.com>
Signed-off-by: Marek Lindner <mareklindner(a)neomailbox.ch>
>---------------------------------------------------------------
96bd7236a4dac51fa03f49679b47708825c36674
soft-interface.c | 8 --------
soft-interface.h | 16 ----------------
2 files changed, 24 deletions(-)
diff --git a/soft-interface.c b/soft-interface.c
index 5dd1247..33b6144 100644
--- a/soft-interface.c
+++ b/soft-interface.c
@@ -371,14 +371,6 @@ void batadv_interface_rx(struct net_device *soft_iface,
if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest))
goto dropped;
- /* Clean the netfilter state before delivering the skb.
- * This packet may have traversed a bridge when it was encapsulated into
- * the batman header. Now that the header has been removed, the
- * netfilter state must be cleaned up to avoid to mess up with a
- * possible second bridge
- */
- batadv_nf_bridge_skb_free(skb);
-
netif_rx(skb);
goto out;
diff --git a/soft-interface.h b/soft-interface.h
index 5c19c42..2f2472c 100644
--- a/soft-interface.h
+++ b/soft-interface.h
@@ -29,20 +29,4 @@ void batadv_softif_destroy_sysfs(struct net_device *soft_iface);
int batadv_softif_is_valid(const struct net_device *net_dev);
extern struct rtnl_link_ops batadv_link_ops;
-#ifdef CONFIG_BRIDGE_NETFILTER
-/**
- * batadv_nf_bridge_skb_free - clean the NF bridge data in an skb
- * @skb: the skb which nf data has to be free'd
- */
-static inline void batadv_nf_bridge_skb_free(struct sk_buff *skb)
-{
- nf_bridge_put(skb->nf_bridge);
- skb->nf_bridge = NULL;
-}
-#else
-static inline void batadv_nf_bridge_skb_free(struct sk_buff *skb)
-{
-}
-#endif /* CONFIG_BRIDGE_NETFILTER */
-
#endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */
The annotated tag, v3.13-rc5 has been created
at 5be6b0c63d1d45c8ad134b19053aaf79e9161218 (tag)
tagging 413541dd66d51f791a0b169d9b9014e4f56be13c (commit)
replaces v3.13-rc4
tagged by Linus Torvalds
on Sun Dec 22 13:08:40 2013 -0800
- Shortlog ------------------------------------------------------------
Linux 3.13-rc5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)
iQEcBAABAgAGBQJSt1TYAAoJEHm+PkMAQRiGvWgH/iWg8TmEWz4KUKuHthuUi0uh
9+2YDN+4k577Xa0obaG24giQeqkCdxMr3oJrS3FO9jeAmaNRHEGhxUPneisb7RtN
9jIVsz5bPa9/DcK9nqtaUQdvA0O5AWTE6AAPmwleTVy+8CygBo987T2uGELnQCSR
FrKCrMePc7Pj0uthMVXrpJ17Ffm/j7jkfRtPhrxHJyngh3jEux+tPbpynH/aKuO2
47unsSQimoFk7n2SPFvNu3E/vZE2xVbu5SH9MCl5yyiCifFjpi3B71LV/FW51lvm
cK8Jzn2BmYDygRFjnZfq4zJHqYJCBHzpjCLWmR37Dm/JS91aGq3+Cg0stDP8UTs=
=+Hcn
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
The annotated tag, batman-adv-fix-for-davem has been updated
to c8c96e19a066e131816aa1ef806e5ba75b129146 (tag)
from 4f1ee5e0e58feeaa9776a01dc743acc95e0c7030 (which is now obsolete)
tagging 128cfa6a586154581ce1b891baf929810117a82a (commit)
replaces v3.13-rc4
tagged by Antonio Quartulli
on Thu Dec 19 00:27:52 2013 +0100
- Shortlog ------------------------------------------------------------
Included changes:
- release skb->nf_bridge when removing the batman-adv header
from an incoming packet. This prevents netfilter bridge
from being fooled when the same packet enters a bridge
twice (or more): the first time within the batman-adv
header and the second time without.
- adjust the packet layout to prevent any architecture from
adding padding bytes. All the structs sent over the wire
now have size multiple of 4bytes (unless pack(2) is used).
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAABCAAGBQJSsjC5AAoJEEKTMo6mOh1VsssQAIN7/BBvZIUEQPGeDUrJvhur
/tQ7ixGlkkeKqAciUd8ix1jhwVlfe5lbQCDP4fFBei2oeo7TzOQH6CMR3PM1ptUI
O8Yx6gWRQBjH5i5pmTrwFY29FblaPPHmcnQ6lkXnuALTsrxlpyYKw1CHQWGFNm/A
4f+RAMeDcv5+5ASluyLm6cT+tyUSpnD+hIVJ+3d8aviHdX4SCpklq+amgfRKG5ms
EXXitAD8qheHa53AZ5n8KHiUhvuqPW3gWKzUyYOLrmyADlpx1f9bHRNcGkhKWXex
mnyGAgihTxuo924sTnAvVwwCJwJsD6gffqg/8C4tb7KhmljlyWZqe5xJpyZfoiw1
3Eu48myc0IxNdzG6I9pNyA94iGsCYmn/twmchDMb4bgohUvkDxKRLa6NMV1Gj4Mf
JvQTvRoMvxgORX0aMc20uNALaBKbfGL5zpBFpiMu3MG8CvN+Cjyo78pRa0BpqY7c
ZmJS122tb4tFexOW37ElC5loFsO7wkoEXZHUnZF+53dKysJ25mdg6feS80SYofh2
vlvi6Ix+VKS5T9o5XkJ6O7vLEoGhhIZBWF2l4JnHVELiboc1AqXORd+4YziAUOBP
K88D0gYuZb6iaP9IyVQNeFbd2T/fd1opcvoQuKhaOeLH3wA43pMWKM095HlpwsXu
5atvTadichNoT7aUZQVb
=7nv6
-----END PGP SIGNATURE-----
Antonio Quartulli (3):
batman-adv: free nf_bridge member on locally delivered skb
batman-adv: fix size of batadv_icmp_header
batman-adv: fix alignment for batadv_tvlv_tt_change
Simon Wunderlich (3):
batman-adv: fix alignment for batadv_coded_packet
batman-adv: fix header alignment by unrolling batadv_header
batman-adv: fix size of batadv_bla_claim_dst
-----------------------------------------------------------------------
--
linux integration