| title: | Re PATCH sky2 dont do GRO on second port |
|
Le jeudi 02 septembre 2010 à 08:33 +0000, Jarek Poplawski a écrit :
On Wed, Sep 01, 2010 at 02:51:51PM -0700, David Miller wrote:
The only scenerio you can guarentee that all packets for a given
flow key will be treated the same is the one where the input device
is the same as well.
When there is a single napi -- device mapping, it works, but without
that invariant it doesnt.
Do you mean a single napi cant be used eg. for vlan_gro and napi_gro?
(napi_gro handles flows for skb- dev different from napi- dev or I
miss something?)
Same napi can be used both for vlan tagged trafic and "non tagged
trafic".
vlan_gro_common() does the right thing, when initializing skb- dev to
the vlan device, before doing the GRO loop.
So if we receive two packets on same ethernet device, two different
vlans, vlan_gro_common() automatically say they are not part of the same
flow, even if upper layers would say "its ok for these two packets to
merge". Of course, we wont ask upper layers what they think :)
So we must keep the test against skb- dev, because of vlans,
diffs = (unsigned long)p- dev ^ (unsigned long)skb- dev;
(both in vlan_gro_common() and __napi_gro_receive())
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at rel="nofollow" vger.kernel.org/majordomo-info.html vger.kernel.org/majordomo-info.html
|