From 431488e6638d3fbb53d215fa10d2ff2d8f1c2824 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 16 Mar 2011 14:39:17 -0700 Subject: Support vlan_group workaround implemented in XenServer kernels. Some Linux network drivers support a feature called "VLAN acceleration", associated with a data structure called a "vlan_group". A vlan_group is, abstractly, a dictionary that maps from a VLAN ID (in the range 0...4095) to a VLAN device, that is, a Linux network device associated with a particular VLAN, e.g. "eth0.9" for VLAN 9 on eth0. Some drivers that support VLAN acceleration have bugs that fall roughly into the following categories: * Some NICs strip VLAN tags on receive if no vlan_group is registered, so that the tag is completely lost. * Some drivers size their receive buffers based on whether a vlan_group is enabled, meaning that a maximum size packet with a VLAN tag will not fit if a vlan_group is not configured. * On transmit some drivers expect that VLAN acceleration will be used if it is available (which can only be done if a vlan_group is configured). In these cases, the driver may fail to parse the packet and correctly setup checksum offloading and/or TSO. The correct long term solution is to fix these driver bugs. To cope until then, we have prepared a patch to the Linux kernel network stack that works around these problems. This commit adds support for the workaround implemented by that patch. Signed-off-by: Ben Pfaff Acked-by: Jesse Gross --- INSTALL.Linux | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'INSTALL.Linux') diff --git a/INSTALL.Linux b/INSTALL.Linux index c46ab5554..0d56da65d 100644 --- a/INSTALL.Linux +++ b/INSTALL.Linux @@ -234,9 +234,10 @@ Prerequisites section, follow the procedure below to build. whether this is the case. If you know that your particular driver can handle it (for example by testing sending large TCP packets over VLANs) then passing in a value of 1 may improve performance. Modules built for - Linux kernels 2.6.37 and later do not need this and do not have this - parameter. If you do not understand what this means or do not know if - your driver will work, do not set this. + Linux kernels 2.6.37 and later, as well as specially patched versions + of earlier kernels, do not need this and do not have this parameter. If + you do not understand what this means or do not know if your driver + will work, do not set this. 7. Initialize the configuration database using ovsdb-tool, e.g.: -- cgit v1.2.1