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 --- 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); -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html