Adding Flow Director sysctls to ixgbe(4)

George Neville-Neil gnn at neville-neil.com
Fri Sep 9 00:31:54 UTC 2011


On Sep 8, 2011, at 10:48 , K. Macy wrote:

> On Thu, Sep 8, 2011 at 2:34 PM, John Baldwin <jhb at freebsd.org> wrote:
>> On Monday, September 05, 2011 7:21:12 am Ben Hutchings wrote:
>>> On Mon, 2011-09-05 at 15:51 +0900, Takuya ASADA wrote:
>>>> Hi,
>>>> 
>>>> I implemented Ethernet Flow Director sysctls to ixgbe(4), here's a detail:
>>>> 
>>>> - Adding removing signature filter
>>>> On linux version of ixgbe driver, it has ability to set/remove perfect
>>>> filter from userland using ethtool command.
>>>> I implemented similar feature, but on sysctl, and not perfect filter
>>>> but signature filter(which means hash collision may occurs).
>>> [...]
>>> 
>>> Linux also has a generic interface to RX filtering and hashing
>>> (ethtool_rxnfc) which ixgbe supports; wouldn't it be better for FreeBSD
>>> to support something like that?
>> 
>> Some sort of shared interface might be nice.  The cxgb(4) and cxgbe(4) drivers
>> both provide their own tools to manipulate filters, though they do not
>> provide explicit steering IIRC.
>> 
>> We would need to come up with some sort of standard interface (ioctls?) for
>> adding filters however.
> 
> I know this must sound like nitpicking, but please don't add more
> ioctls if you can avoid it. If you want to add new interfaces try to
> stick with sysctl as it tends to be less prone to breakage across
> releases.
> 
> 
> The biggest problem in defining a new API is the lack of anyone with a
> global overview of the functionality provided by NIC vendors and their
> near-term roadmaps. It doesn't make sense to add an API that we only
> know works for one or two vendors.
> 

I think this is doable.  I've seen enough of these cards to know a bit
of what we'd want.  This is a subject we've covered in a few different
BSDCans but it's probably time for a straw man.  I'm not against the
sysctl approach but I'll have to give this a bit more thought.

The only real options are sockets, ioctls and sysctls, that I can see.

Best,
George



More information about the freebsd-net mailing list