netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: e1000 and 802.1ad/stacked vlan tagging
@ 2006-08-28 20:53 Brandeburg, Jesse
  2006-08-29 10:58 ` Stephan von Krawczynski
  0 siblings, 1 reply; 5+ messages in thread
From: Brandeburg, Jesse @ 2006-08-28 20:53 UTC (permalink / raw)
  To: Stephan von Krawczynski; +Cc: netdev, e1000-devel

Stephan von Krawczynski wrote:
> thank you for answering anyway. Though I think your answer covers
> only the obvious half of the problem.
> Indeed one might think that this solves the issue - as long as there
> are only linux kernels involved. Unfortunately my setup is a bit more
> complicated in terms of hardware. So I should have probably clarified
> the question this way: how do you configure the interface in a manner
> that packets with data length of 1500 get transferred, and not only
> 1496 ? 

I tried setting mtu 2000 and everything worked with the virtual device
(both) mtu at 1500.
If you are getting long_packet errors at the mtu settings you tried (you
didn't mention which ones) then the hardware is dropping the packets due
to being over 1522 bytes in length (including CRC).

> I tried enlarging both real-device and first vlan interface mtu but
> that does not work out. I really thought that the visible device
> setting of mtu=1500 should have worked out and that the driver (or
> some code in between) should have corrected the allowed frame size to
> reflect the actual setup, not? 

unfortunately I believe that your hardware MTU on the base interface
MUST be adjusted in order to do stacked vlans because the vlan code
doesn't fragment packets, it just inserts tags.  The e1000 hardware is
capable of inserting/stripping 1 level of tags without dropping overlong
frames, but cannot seamlessly handle 1+n levels of inserted tags.
Transmit, we don't care how long the frames are that are given to us
(the driver doesn't enforce MTU on transmit) but on receive we have
limited space so it is important that each frame fit into the allocated
buffer (including CRC).

Please try MTU 1508 on eth0 (base interface only), as that configuration
worked for me.

Jesse

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

^ permalink raw reply	[flat|nested] 5+ messages in thread
* RE: e1000 and 802.1ad/stacked vlan tagging
@ 2006-08-30  5:06 Brandeburg, Jesse
  0 siblings, 0 replies; 5+ messages in thread
From: Brandeburg, Jesse @ 2006-08-30  5:06 UTC (permalink / raw)
  To: Stephan von Krawczynski; +Cc: e1000-devel, netdev, w

Stephan von Krawczynski wrote:
> I can confirm that the setup seems to work if enlarging the hw if mtu
> to 1508. This is good.

Okay, good to hear.

> Nevertheless I think that the receive buffer size of a
> physical device should always be MAX(all virtual device mtu +
> tags and the like), you know what I mean.

Unfortunately that would require us to currently allocate 16kB for every
receive descriptor, which would slow down the general case
significantly, not to mention bring up all sorts of errors as the system
memory fragmentation increases.

> If I enlarge the basic mtu this may or may not have drawbacks
> concerning the traffic routed directly via this interface.

I think that routed traffic won't care at all unless something checks
the path MTU, and even then it should take the lowest MTU.

> Obviously the setup is somehow not consistent, as everything
> works well without tuning mtus as long as you use only 1 tag.
1 tag is the way that things are supposed to work.  In fact, the
hardware takes care of all insertion and stripping of a single tag, so
that the data actually handed to the stack never even has the tag in the
packet data.

> I always thought that the driver uses at least
> hard_header_len + mtu as buffer size which should be correct
> even in stacked setup. Only this information doesn't make it
> to the driver level, right?

Actually I think that first statement isn't correct.  With the stacked
setup your maximum frame length is 1500 (MTU) + 14 enet + 4 (tag1) + 4
(tag2) + CRC = 1526.  The vlan code with stacked vlans is broken (from
the maintainer who mentioned it in this thread) probably because in
order to do stacked vlans correctly the vlan layer must support IP
fragmentation of some kind.

Seems like stacked vlans wouldn't work anyway, at least not very well.
The only way I see to get even close is the MTU increase on the base
interface.

Sorry to not offer much,
  Jesse

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-08-30  5:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <36D9DB17C6DE9E40B059440DB8D95F5286678F@orsmsx418.amr.corp.intel.com>
2006-08-28 17:38 ` e1000 and 802.1ad/stacked vlan tagging Stephan von Krawczynski
2006-08-28 21:54   ` Ben Greear
2006-08-28 20:53 Brandeburg, Jesse
2006-08-29 10:58 ` Stephan von Krawczynski
  -- strict thread matches above, loose matches on Subject: below --
2006-08-30  5:06 Brandeburg, Jesse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).