Hello, I just realized (by putting an igbvf NIC in a bridge) that the igbvf driver doesn't support primiscuous mode at all. Looking at the code in igbvf/netdev.c, I guess this is by design, as it does not check for netdev->flags & IFF_PROMISC in igbvf_set_multi (or anywhere else).
Curiously, the PF driver _does_ mention a E1000_VF_SET_PROMISC mailbox message in igb/igb_main.c, but it isn't used by igbvf nor is it mentioned in the driver companion guide. The code in question (igb_set_vf_promisc), furthermore, seems not to deal with unicast promiscuity at all (only multicast). Would it be a good idea to extend the E1000_VF_SET_PROMISC interface to enable unicast promiscuity as well, e.g. by introducing a new flag E1000_VF_SET_PROMISC_UNICAST alongside the already existing E1000_VF_SET_PROMISC_MULTICAST? igbvf could than at least indicate that it wants to be promiscuous. I'll produce a proof-of-concept patch later today or tomorrow. I understand that this is a potential security problem, because a promiscuous VF receives all traffic of the physical NIC, but it also means that simple stuff like bridging doesn't work. My gut feeling is that it should be configurable in the PF driver. Any comments? Another objection might be that the 82576 (as far as I understand the spec) can only put one of its VFs in promiscuous mode by setting VMOLR.ROPE and setting all bits in the UTA. Even then I am not sure if the VF receives packets that are directed to other VFs using the normal target pool selection via RAH/L registers. Is this true or is there a simpler way to implement VF promiscuous mode? Regards, Julian ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
