From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Micek Subject: Re: change the way e1000 is handling short VLAN frames Date: Fri, 21 Sep 2007 14:50:15 +0200 Message-ID: <1190379015.3551.57.camel@magi.nadr> References: <1190359905.3551.28.camel@magi.nadr> <1190375946.4261.42.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: "auke-jan.h.kok@intel.com" , netdev mailing list To: hadi@cyberus.ca Return-path: Received: from proxy-sec.valachnet.cz ([212.71.149.219]:44157 "EHLO proxy.valachnet.cz" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751556AbXIUMuh (ORCPT ); Fri, 21 Sep 2007 08:50:37 -0400 In-Reply-To: <1190375946.4261.42.camel@localhost> Sender: netdev-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Fri, 2007-09-21 at 07:59 -0400, jamal wrote: > > Current e1000 (according to our observations) first appends 4 bytes of > > VLAN tag and then pads the frame to 64 bytes with zeroes if necessary > > before transmiting it. > > Which would make it a bug. AFAIK, the minimum VLAN tagged packet going > out is 68 bytes. Are you sure about this? We did some extensive testing capturing VLAN frames going out of our Intel PRO/1000 MT Dual Port Server Adapter (82571EB chipset) and we definitely captured VLAN frames shorter then 68 bytes. Here is text dump of such frame: http://www.tkrjasek.cz/mie/cmts_tests/between_linux_and_cmts.txt (note that wireshark captures the frames without 4 bytes FCS (frame check sequence) so the above packet is in fact 66 bytes long). What is the right behaviour according to specification? In iee802.3, minFrameSize is 64bytes. I've never seen any document which'd say that VLAN frames should be 68 bytes minimum. > > I'd like to change it so it first pads the frame to 64 B and appends the > > VLAN tag afterwards, so the resulting VLAN frame would be 68 bytes > > minimum. > > If you were able to figure this much out: What have you tried and what > do you still need help on? CCing some of the e1000 people(done) will > probably help you get this resolved faster. Well to make long story short. While testing VLAN capabilities of our C3 CMTS, we discovered that some frames are corupted after passing trough the CMTS. We discovered, that affected frames are VLAN frames 64 - 67 bytes long. We tried several NIC's in our linux box mainly with e1000 driver but also some NIC's from 3com, broadcom and Planet. All of them suffer from this issue except NIC from Planet (RTL-8169 chipset), which pads VLAN frames to 68 bytes. The other cards pad VLAN frames only to 64 bytes. We also tried to tag the traffic on some VLAN enabled switches (d-link, edge-core, cisco catalyst) and they also pad VLAN frames to 68 bytes. Now i'm little confused by your reply, becaouse you write, that VLAN frames generated by e1000 should be 68 bytes minimum, which contradicts witch our observations. thanks for your reply Emil