Thread (4 messages) 4 messages, 2 authors, 2008-11-11

Re: e1000 kills IPMI on 82541GI (Dell PE1425SC) + small 2.6.27 regression

From: Krzysztof Oledzki <hidden>
Date: 2008-11-01 04:20:19


On Fri, 31 Oct 2008, Brandeburg, Jesse wrote:
<modified the mail list a bit>

Krzysztof Oledzki wrote:
quoted
I have started implementing IPMI on my servers and there is some
inconvenience with e1000+82541GI (Dell PE1425SC).
ugh, sorry to hear about that.
quoted
With older kernels IPMI works if there are no vlans attached to
primary interface. Adding vlans breaks it as e1000 driver enables
VLAN filter and it somehow interferences with IPMI.

(no vlans):
# ethtool -d eth0|grep -i vlan
       VLAN mode:                         disabled
       VLAN filter:                       disabled

(vlans):
# ethtool -d eth0|grep -i vlan
       VLAN mode:                         enabled
       VLAN filter:                       enabled
vlan enable does a couple of things, it mostly just allows the device to

strip the vlan tag (that matches our vlan table in hardware) from
incoming
packets and put it in the rx descriptor. This modifies the original
packet as the vlan is stripped.
So, the same vlan table is used for both host OS and IPMI, right?
quoted
However, I found that using a workaround by adding the IPMI vlan to
the OS restores the functionality. Very ugly but works.
interesting, this is whith the older <= 2.6.26 kernel right?
Yep, exactly. So far I have tested 2.6.22, 2.6.24, 2.6.26 and 2.6.27 
kernels.

If there are no vlans configured on a host I have:

<=2.6.26:
# ethtool -d eth0|grep -i vlan
       VLAN mode:                         disabled
       VLAN filter:                       disabled
=2.6.27:
# ethtool -d eth0|grep -i vlan
       VLAN mode:                         disabled
       VLAN filter:                       enabled

quoted
So, it is OK with no-vlan-enabled hosts and with vlan-enabled with the
above workaround, but still - it is a ugly workaround: IPMI is
non-functional until OS *properly* initializes network configuration,
which may never happen.
yeah that's pretty ugly, and not acceptable if you're trying to use
IPMI.
Indeed.
quoted
Everything becomes much more complicated with more recent kernels
(2.6.27 for example), where vlan filter is now enabled
unconditionally and I have to add the dummy IPMI vlan also on
no-vlan-enabled hosts to make it working. That makes it really
confusing.
yeah, that's a not so good regression due to unconditionally turning on
VLAN hardware offload.
quoted
So, is it possible to fix this? For example to change the driver to
read IPMI vlan id and add it to vlan filter regardless of current OS
configuration? Or maybe it is possible to prevent IPMI from
interferencing with the current driver's state?
It might be possible to fix this.  The hardware doesn't *have* to
support VLAN offload in hardware.  This would essentially leave all
packets
unmodified as they arrive.  We will definitely look

So, do you intend that IPMI traffic should be on its own vlan?
Exactly. This configuration is very handy - most servers are connected to 
one, untagged vlan and a host OS does not need to know about vlans at all. 
IPMI is provided by one, dedicated, configured as an additional, tagged 
vlan on hosts' ports.
 Would this kind of configuration work?
Why not? Dell's BMC setup even allow to set it, on IBM servers for example 
I need to use ipmitool to do this, however there are different NICs 
installed (bnx2). Having a dedicated vlan for IPMI service is very handy 
as you may limit the traffic to one network and only allow to access it 
from a very limited number of hosts. Plus, you don't need to worry about 
IPMI configuration even when you move a server from one vlan to another.
What if the IPMI traffic was 
*not* on a vlan but you had vlans enabled in your network?
Good question, I'll check this. However, as I stated above, I really would 
like to keep IPMI on one, dedicated vlan. Having to spread IPMI over 40+ 
vlans connected to a number of different routers and keeping such a 
configuration running looks like a very painful job. Please also note that 
you remember about IPMI only when you have to use it, mostly in emergency 
cases. Keeping it simple may even allow to make it accidentally usable at 
that time. ;)
Let me summarize, please correct me if I'm wrong:
0) you want to run IPMI traffic on its own VLAN
Yep.
1) 2.6.26 kernel with vlan enabled IPMI breaks doesn't work until driver
is loaded?
I have a non-modular kernel with the driver build statically into it. IPMI 
obviously works before I booted a Linux kernel, not sure if making th 
driver modular changes anything (I hope not). With the statically linked 
driver I have:

<=2.6.26:
  - non-vlan host -> works
  - vlan host -> works with the dummy vlan
=2.6.27:
  - works only with the dummy vlan

I'll retest with a modular configuration and let you know.
2) 2.6.27 kernel (which enables vlan stripping) breaks IPMI vlan traffic
until "dummy"
  vlan is added with driver (on non-vlan hosts)
Exactly.
I'm feeling a bit confused at this point, can you please describe what
you want to do
with both the host and the ipmi config?
I would like to use IPMI so I'll be able to power on/off or reset my 
systems in case of problem with a host OS. There are number of things you 
may do with a IP-enabled KVM but usually dealing with hardware buttons is 
not one of them. ;)
I'll have our lab see if they can reproduce this, I'm not even sure how
many others have
tried IPMI over VLAN.
Thanks, I very appreciate it.

Best regards,

 			Krzysztof Olędzki

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help