Date: Tue, 20 Jul 2010 17:55:46 -0400 From: Ryan Stone <rysto32@gmail.com> To: pebu3op@googlemail.com Cc: freebsd-net@freebsd.org Subject: Re: support for L3/L4-filters in ixgbe Message-ID: <AANLkTimEKLyznYVRFlHqr47rF7BIOeL20BwjzEbp7_5B@mail.gmail.com> In-Reply-To: <201007202154.19448.pebu3op@googlemail.com> References: <201007202154.19448.pebu3op@googlemail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Currently there's interface for giving access to queues to userspace. One problem that you're going to run into is that the registers for all of the queues are mapped consecutively. There wouldn't be any way of preventing the application from messing around with queues that don't belong to it. Using the PCI SIG IOV mode would presumably prevent that, but I'm not at all familiar with what would be necessary to use IOV mode. Also if you don't enable a virtualization mode I think that your userspace queue could get other flows, not just those matching your filter, if those flows happen to hash to your queue. The 82599 supports up to 128 MAC address filters(I think that the one gets reserved for use by the manageability interface). The RAH and RAL registers are what you'll need to program. Note that these registers direct packets to *pools* of queues, not directly to queues. You'll also need to enable either VMDq mode or IOV mode to use pools 1-63; if you don't then any traffic that passes a filter that directs to a pool is implicitly directed to pool 0. I've done a lot of work on both the 82598 and the 82599 with VMDq mode to present multiple virtual interfaces to the kernel(the code, sadly, is not public). If you have any questions about the ixgbe driver or the virtualization features of the 82599 I'll be happy to offer any help I can.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimEKLyznYVRFlHqr47rF7BIOeL20BwjzEbp7_5B>