From: Toshiaki Makita <makita.toshi...@lab.ntt.co.jp> Date: Thu, 29 Jan 2015 20:37:06 +0900
> When I was testing 802.1ad, I found several drivers don't take into > account 802.1ad or multiple vlans when retrieving L3 (IP/IPv6) or > L4 (TCP/UDP) protocol for checksum offload. > > It is mainly due to vlan_get_protocol(), which extracts ether type only > when it is tagged with single 802.1Q. When 802.1ad is used or there are > multiple vlans, it extracts vlan protocol and drivers cannot determine > which L3/L4 protocol is used. > > Those drivers, most of which have IP_CSUM/IPV6_CSUM features, get L3/L4 > header-offset by software, so it seems that their checksum offload works > with multiple vlans if we can parse protocols correctly. > (They know mac header length, and probably don't care about what is in it.) > > And another thing, some of Intel's drivers seem to use skb->protocol where > vlan_get_protocol() is more suitable. > > I tested that at least igb/igbvf on I350 works with this patch set. > > Note: > We can hand a double tagged packet with CHECKSUM_PARTIAL to a HW driver > by creating a vlan device on a bridge device and enabling vlan_filtering > of the bridge with 802.1ad protocol. Series applied, thank you. ------------------------------------------------------------------------------ Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired