Re: [ethtool PATCH 4/4] v5 Add RX packet classification interface
From: Dimitris Michailidis <hidden>
Date: 2011-05-04 17:33:53
On 05/04/2011 10:24 AM, Ben Hutchings wrote:
On Wed, 2011-05-04 at 10:09 -0700, Dimitris Michailidis wrote:quoted
On 05/03/2011 04:34 PM, Ben Hutchings wrote:quoted
On Tue, 2011-05-03 at 16:23 -0700, Dimitris Michailidis wrote:quoted
I think RX_CLS_LOC_UNSPEC should be passed to the driver, where there is enough knowledge to pick an appropriate slot. So I'd remove the if (loc == RX_CLS_LOC_UNSPEC) block above, let the driver pick a slot, and then pass the selected location back for ethtool to report.But first we have to specify this in the ethtool API. So please propose a patch to ethtool.h.In the past we discussed that being able to specify the first available slot or the last available would be useful, so something like the below?diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 4194a20..909ef79 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h@@ -442,7 +442,8 @@ struct ethtool_flow_ext { * includes the %FLOW_EXT flag. * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC * if packets should be discarded - * @location: Index of filter in hardware table + * @location: Index of filter in hardware table, or %RX_CLS_FLOW_FIRST_LOC for + * first available index, or %RX_CLS_FLOW_LAST_LOC for last available[...] I think that's reasonable. We should also explicitly state that location determines priority, i.e. if a packet matches two filters then the one with the lower location wins.
Easy and true for a TCAM. For hashing would you use the location to decide how to order filters that fall in the same bucket?