I believe your patch is correct to enable VLAN filtering when in promisc
mode.

On Tue, 2010-01-26 at 00:22 -0700, György Szaniszló wrote:
> 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.
> 
> 
> 
> 

-- 
Jesse Brandeburg
This email sent via Evolution, powered by Linux


------------------------------------------------------------------------------
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