kernel: when bridging, do not forward EAP frames to other ports, only deliver them...
[openwrt.git] / target / linux / generic / patches-2.6.36 / 270-bridge_no_eap_forward.patch
diff --git a/target/linux/generic/patches-2.6.36/270-bridge_no_eap_forward.patch b/target/linux/generic/patches-2.6.36/270-bridge_no_eap_forward.patch
new file mode 100644 (file)
index 0000000..da71980
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/net/bridge/br_input.c
++++ b/net/bridge/br_input.c
+@@ -73,7 +73,11 @@ int br_handle_frame_finish(struct sk_buf
+       dst = NULL;
+-      if (is_multicast_ether_addr(dest)) {
++      if (skb->protocol == htons(ETH_P_PAE)) {
++              skb2 = skb;
++              /* Do not forward 802.1x/EAP frames */
++              skb = NULL;
++      } else if (is_multicast_ether_addr(dest)) {
+               mdst = br_mdb_get(br, skb);
+               if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) {
+                       if ((mdst && !hlist_unhashed(&mdst->mglist)) ||
This page took 0.023185 seconds and 4 git commands to generate.