[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48704BDA.1000200@nuovasystems.com>
Date: Sat, 05 Jul 2008 21:36:42 -0700
From: Joe Eykholt <jre@...vasystems.com>
To: David Miller <davem@...emloft.net>
CC: jgarzik@...ox.com, fubar@...ibm.com, netdev@...r.kernel.org
Subject: Re: [PATCH 5/5] net/core: Allow receive on active slaves.
David Miller wrote:
> From: Jeff Garzik <jgarzik@...ox.com>
> Date: Fri, 04 Jul 2008 08:45:52 -0400
>
>> Jay Vosburgh wrote:
>>> @@ -2104,7 +2104,8 @@ int netif_receive_skb(struct sk_buff *skb)
>>> #endif
>>>
>>> list_for_each_entry_rcu(ptype, &ptype_all, list) {
>>> - if (ptype->dev == null_or_orig || ptype->dev == skb->dev) {
>>> + if (ptype->dev == null_or_orig || ptype->dev == skb->dev ||
>>> + ptype->dev == orig_dev) {
>>> if (pt_prev)
>>> ret = deliver_skb(skb, pt_prev, orig_dev);
>>> pt_prev = ptype;
>>> @@ -2129,7 +2130,8 @@ ncls:
>>> list_for_each_entry_rcu(ptype,
>>> &ptype_base[ntohs(type) & PTYPE_HASH_MASK], list) {
>>> if (ptype->type == type &&
>>> - (ptype->dev == null_or_orig || ptype->dev == skb->dev)) {
>>> + (ptype->dev == null_or_orig || ptype->dev == skb->dev ||
>>> + ptype->dev == orig_dev)) {
>>> if (pt_prev)
>> This needs a review&ack from David, then OK...
>
> I fear this bit of the changes will break AF_PACKET device binding.
> So for example, if a tap registers it wants to hear eth0, it will now
> hear bond0 as well as eth0 if eth0 is a part of bond0.
Each ptype will get matched and delivered to at most once. So if
someone binds AF_PACKET to only eth0, they'll only see the packet once.
Whereas before patch 4, the frame wouldn't be delivered to them
at all, since skb->dev has already been changed to the bond.
Regards,
Joe Eykholt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists