Hi,

Ok, I do not want to force my quick patch to the official ixgbe driver,
because I know, that there were a lot of discussions about this topic 
(promiscuous mode and HW VLAN filtering).

I want to use my patch only in my application.
In very short term my only need is a confirmation from the e1000 development, 
that my pacht would work fine.

In the future instead of forcing my quick patch, I would ask a feature request 
for a modprobe parameter or a compilation flag in the driver,
to able to switch on/off the HW VLAN filtering in promiscuous mode.

Thanks,
Gyorgy Szaniszlo

________________________________
From: Nelson, Shannon [mailto:[email protected]]
Sent: Monday, January 25, 2010 6:32 PM
To: György Szaniszló
Subject: RE: [E1000-devel] Ixgbe and VLAN filtering

Thanks for looking into this.  Please post as a patch to the e1000-devel list 
so that the primary ixgbe developers can get a look at it and get it into the 
proper update path.

sln




On Sun, 2010-01-24 at 07:48 -0800, György Szaniszló wrote:

Hi,

Googling e1000 devel list, I have realized, that the HW VLAN filtering is 
turned off by ixgbe driver in promiscuous mode.
Promiscuous mode was set by the bridge used by my application.

I have modified the ixgbe driver: enabled HW VLAN filtering in promiscuous mode.
This behaviour is better for my application, as I exactly know the VLANs to 
monitor, and performance is critical.

Please confirm, that this is the right way to reach my goal.
My patch is attached. Do I have to do any other modification, or is this enough?

Thanks,
Gyorgy Szaniszlo

--- ./ixgbe_main.c.orig 2010-01-24 15:38:57.454570244 +0100
+++ ./ixgbe_main.c 2010-01-24 15:54:41.904571304 +0100
@@ -2984,7 +2984,7 @@
  if (netdev->flags & IFF_PROMISC) {
   hw->addr_ctrl.user_set_promisc = 1;
   fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE);
-  vlnctrl &= ~IXGBE_VLNCTRL_VFE;
+  vlnctrl |= IXGBE_VLNCTRL_VFE;
  } else {
   if (netdev->flags & IFF_ALLMULTI) {
    fctrl |= IXGBE_FCTRL_MPE;


________________________________

From: Nelson, Shannon [mailto:[email protected]]
Sent: Friday, January 22, 2010 9:30 PM
To: György Szaniszló
Subject: RE: [E1000-devel] Ixgbe and VLAN filtering


György, I apologize for not getting back to you very quickly on this.  I was 
hoping someone else on the 1000-devel list would answer as I don't do much 
network config at that level, and I'm currently busy dealing with a couple of 
other issues.

sln

On Thu, 2010-01-21 at 08:41 -0800, György Szaniszló wrote:

        Hi,

        I have performance problems with VLAN filtering.

        In my test traffic there are packets with 4 VLAN id-s: 11,12,21,22

        I can change the test traffic load.

        NOT using vconfig and VLAN filtering, and bridging the original 
eth1-eth4 interfaces I can handle 7 Gbit/sec traffic without drop at NIC level 
(rx_missed_errors).

        (In my bridge there is a netfilter hook function, that drops all 
packets, so I test the low-level RX performance of the network card + driver + 
Linux)

        Now I want to bridge only the traffic of VLANs 21 and 22. This is about 
50% of the total traffic volume.

        Using vconfig, and set up VLANs 21 and 22 on the ethernet interfaces, 
and bridging the eth.vlan interfaces, I can handle only 9 Gbit/sec traffic 
(total traffic on all vlans 11,12,21,22) without drop.

        Assuming that HW vlan filtering uses only limited resources I expected 
>12 Gbit/sec without drop.

        As you can see filtering out the traffic of vlan 11 and 12 requires 
massive SW resources, so I assume that the traffic of vlan 11 and 12 are not 
filtered out at HW level, maybe in the driver.

        How can I make sure, that vlan filtering is done in HW?

        What did I wrong?

        Should I explicitly forbid vlans 11 and 12 (setting up ethx.11 and 
ethx.12 and shut down the those virtual interfaces)?

        Maybe bridge opens the inteface in promiscuous mode, and HW vlan 
filterinng does not work in promiscuous mode?

        Please help me!

        Thanks,

        Gyorgy Szaniszlo






________________________________


        From: Nelson, Shannon [mailto:[email protected]]
        Sent: Thursday, December 17, 2009 6:40 PM
        To: György Szaniszló
        Cc: 
[email protected]<mailto:[email protected]>
        Subject: Re: [E1000-devel] Ixgbe and VLAN filtering





        On Thu, 2009-12-17 at 03:46 -0800, György Szaniszló wrote:

                Hi,

                Please help me to understand how VLAN filtering works with 
ixgbe driver.

                I have the following setup
                2 x Intel(R) 10 Gigabit XF SR Dual Port Server Adapter, 82598 
controller
                OpenSuse 11.2, 64 bit, kernel version: 2.6.31.5
                ixgbe-2.0.44.14-NAPI

                I have 4 ixgbe interfaces (eth1, eth2, eth3, eth4), and I would 
like to bridge them.
                I would like to bridge only some specified VLANs (101 and 102).

                I have to cope with mass traffic, so effective VLAN filtering 
is very important.
                I would like to use the 82598 controller's HW VLAN filtering.

                I use the following script:

                    input_eths="eth1 eth2 eth3 eth4"
                    input_vlans="101 102"

                    echo ""
                    echo "  Setting up input interfaces ..."
                    for eth in $input_eths
                    do
                      echo "    $eth"
                      ifconfig $eth 0.0.0.0 up
                      for vlan in $input_vlans
                      do
                        vconfig add $eth $vlan
                        ifconfig $eth.$vlan up
                      done
                    done

                    echo ""
                    echo "  Setting up bridge ..."
                    brctl addbr br0
                    for eth in $input_eths
                    do
                        for vlan in $input_vlans
                        do
                          brctl addif br0 $eth.$vlan
                        done
                    done
                    ifconfig br0 up

                My question is the following:
                If I use the vconfig utility to specify VLANs, does it result 
HW vlan filtering in the 82598 Controller,
                or VLAN filtering is expressen only in the Linux (in the ixgbe 
driver or in the Linux network stack)?

                Thanks,
                Gyorgy Szaniszlo
                Ericsson Hungary Ltd.





        Yes, when using vconfig, the ixgbe driver is given the vlan information 
and sets the appropriate bits in the HW to do the filtering in the hardware.

        sln


        ======================================================================
        Mr. Shannon Nelson                 LAN Access Division, Intel Corp.
        [email protected]<mailto:[email protected]>               
 I don't speak for Intel
        (503) 712-7659                    Parents can't afford to be squeamish.






======================================================================
Mr. Shannon Nelson                 LAN Access Division, Intel Corp.
[email protected]<mailto:[email protected]>                I 
don't speak for Intel
(503) 712-7659                    Parents can't afford to be squeamish.




------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to