From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shmuel Hen Subject: [bonding] Enhance support for VLAN over bonding Date: Thu, 22 Jan 2004 17:55:49 +0200 Sender: netdev-bounce@oss.sgi.com Message-ID: <200401221755.49600.shmulik.hen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: To: netdev@oss.sgi.com, bonding-devel@lists.sourceforge.net Content-Disposition: inline Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org Hi, As previously discussed on these lists, we are offering a set of patches that enhance the support for VLAN over bonding. They are independent from the last set sent by Amir for dynamic configuration of bonding since it was not yet decided what would be the best replacement for the ioctl hook we suggested. The enhancement is in to areas: 1) Add support for slaves that are capable of VLAN hardware acceleration offloading - We have found that for Gig adapters working at line speed, this support reduces CPU usage by up to 12%. The basic idea is to make the bond interface fully HW acceleration capable, and take special care when passing an skb to a slave that is not offloading capable ("un-accelerating" the skb). 2) Add support for tagging packets that are self generated by bonding, e.g. TLB learning packets, ALB arp packets, etc. Both features required exporting VLAN tag setting/getting functionality by the 8021q module. In order to make the bonding and 8021q modules in dipendant, this support is exported via if_vlan.h as inline functions that are used by both modules to reduce code duplication. For the second feature it was also required to split the arp_send functionality into arp_create and arp_xmit. This eliminates code duplication too, and enables intermediate network drivers like bonding and others to have a chance to tag ARP packets before sending them. All other places in the kernel that use arp_send() will not notice the change. There are two sets of 6 patches each, one for 2.4 and one for 2.6. They apply on top of latest netdev-2.4 and netdev-2.6 respectively. Both have been tested for patch application and compilation. Functionality and performance was tested on netdev-2.4. -- | Shmulik Hen Advanced Network Services | | Israel Design Center, Jerusalem | | LAN Access Division, Platform Networking | | Intel Communications Group, Intel corp. |