Skip to content

Commit

Permalink
batman-adv: don't allow ECTP traffic on batman-adv
Browse files Browse the repository at this point in the history
We have seen this to break networks when used with bridge loop
avoidance. As we can't see any benefit from sending these ancient frames
via our mesh, we just drop them.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
  • Loading branch information
Simon Wunderlich authored and Antonio Quartulli committed Oct 29, 2012
1 parent fe3f4cf commit 4934ab9
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions net/batman-adv/soft-interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,10 @@ static int batadv_interface_tx(struct sk_buff *skb,
struct batadv_bcast_packet *bcast_packet;
struct vlan_ethhdr *vhdr;
__be16 ethertype = __constant_htons(BATADV_ETH_P_BATMAN);
static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00, 0x00,
0x00};
static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
0x00, 0x00};
static const uint8_t ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
0x00, 0x00};
unsigned int header_len = 0;
int data_len = skb->len, ret;
short vid __maybe_unused = -1;
Expand Down Expand Up @@ -180,10 +182,16 @@ static int batadv_interface_tx(struct sk_buff *skb,

/* don't accept stp packets. STP does not help in meshes.
* better use the bridge loop avoidance ...
*
* The same goes for ECTP sent at least by some Cisco Switches,
* it might confuse the mesh when used with bridge loop avoidance.
*/
if (batadv_compare_eth(ethhdr->h_dest, stp_addr))
goto dropped;

if (batadv_compare_eth(ethhdr->h_dest, ectp_addr))
goto dropped;

if (is_multicast_ether_addr(ethhdr->h_dest)) {
do_bcast = true;

Expand Down

0 comments on commit 4934ab9

Please sign in to comment.