Skip site navigation (1)Skip section navigation (2)
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>