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

Reply via email to