• Graham, David's avatar
    e1000: Fix for e1000 kills IPMI on a tagged vlan. · fd38d7a0
    Graham, David authored
    Enabling VLAN filters (VFE) when the primary interface is brought up
    (per commit 78ed11a5) has caused problems for some users who manage
    their systems using IPMI over a VLAN. This is because when the driver
    enables the VLAN filter, this same filter table is enabled for the
    management channel, and the table is initially empty, which means that
    the IPMI/VLAN packets are filtered out and not received by the BMC.
    This is a problem only on e1000 class adapters, as it is only
    on e1000 that the filter table is common to the management and host
    streams.
    
    With this change, filtering is only enabled when one or more host VLANs
    exist, and is disabled when the last host VLAN is removed. VLAN filtering
    is always disabled when the primary interface is in promiscuous mode,
    and will be (re)enabled if VLANs exist when the interface exits
    promiscuous mode.
    
    Note that this does not completely resolve the issue for those using VLAN
    management, because if the host adds a VLAN, then the above problem
    occurs when that VLAN is enabled. However, it does mean the there is no
    problem for configurations where management is on a VLAN and the host is
    not.
    
    A complete solution to this issue would require further driver changes.
    The driver would need to discover if (and which) management VLANs are
    active before enabling VLAN filtering, so that it could ensure that the
    managed VLANs are included in the VLAN filter table. This discovery
    requires that the BMC identifies its VLAN in registers accessible
    to the driver, and at least on Dell PE2850 systems the BMC does not
    identify its VLAN to allow such discovery. Intel is pursuing this issue
    with the BMC vendor.
    Signed-off-by: default avatarDave Graham <david.graham@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    Tested-by: default avatarKrzysztof Piotr Oledzki <ole@ans.pl>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fd38d7a0
e1000_main.c 146 KB