[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1264090287.2794.34.camel@achroite.uk.solarflarecom.com>
Date: Thu, 21 Jan 2010 16:11:27 +0000
From: Ben Hutchings <bhutchings@...arflare.com>
To: netdev <netdev@...r.kernel.org>
Subject: VLAN vs bridging receive precedence
When a physical device is attached to a bridge device and also to one or
more VLAN devices, received tagged frames might be passed on to either
the appropriate VLAN device or to the bridge.
Drivers that support VLAN receive acceleration call __vlan_hwaccel_rx(),
which updates skb->dev to point to the VLAN device.
In the absence of VLAN receive acceleration, 802.1q is treated as just
another protocol, and netif_receive_skb() does:
skb = handle_bridge(skb, &pt_prev, &ret, orig_dev);
if (!skb)
goto out;
...
type = skb->protocol;
list_for_each_entry_rcu(ptype,
&ptype_base[ntohs(type) & PTYPE_HASH_MASK], list) {
...
}
So the bridge device claims the skb before the VLAN code has a chance
to.
It is not clear which behaviour is 'correct'. However it appears that
the XenCenter network management software currently depends on the
accelerated behaviour.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
--
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