To distinguish skb's that was issued by a bridge (to not loop forever) special skb mark is needed - br_seen. Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxxx> --- include/linux/skbuff.h | 3 +++ net/core/skbuff.c | 3 +++ 2 files changed, 6 insertions(+) Index: linux-2.6.git/include/linux/skbuff.h ===================================================================== --- linux-2.6.git.orig/include/linux/skbuff.h +++ linux-2.6.git/include/linux/skbuff.h @@ -382,6 +382,9 @@ struct sk_buff { __u8 do_not_encrypt:1; __u8 requeue:1; #endif +#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) + __u8 br_seen:1; +#endif /* 0/13/14 bit hole */ #ifdef CONFIG_NET_DMA Index: linux-2.6.git/net/core/skbuff.c ===================================================================== --- linux-2.6.git.orig/net/core/skbuff.c +++ linux-2.6.git/net/core/skbuff.c @@ -549,6 +549,9 @@ static void __copy_skb_header(struct sk_ new->tc_verd = old->tc_verd; #endif #endif +#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) + new->br_seen = old->br_seen; +#endif new->vlan_tci = old->vlan_tci; skb_copy_secmark(new, old); _______________________________________________ Bridge mailing list Bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/bridge