On Fri, Mar 08, 2013 at 10:44:06AM +0800, Cong Wang wrote: > > This is a good question. It is due to inside br_handle_frame_finish() we > use 'skb2' to decide if we deliver packets to bridge itself, and in this > case 'skb2' is non-NULL only when: > > if (mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) { > if ((mdst && mdst->mglist) || > br_multicast_is_router(br)) > skb2 = skb; // <======== HERE > br_multicast_forward(mdst, skb, skb2); > > For other ports, br_multicast_forward() will always forward 'skb' to > them. Yes but the point is that other ports should also expire after the timeout and thus be removed from mdst. So why is this only happening for the bridge aka mdst->mglist? Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt