]> www.infradead.org Git - users/dwmw2/linux.git/commit
net: ethernet: ti: cpsw_ale: add policer/classifier helpers and setup defaults
authorRoger Quadros <rogerq@kernel.org>
Tue, 10 Sep 2024 09:24:02 +0000 (12:24 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Sep 2024 09:49:00 +0000 (10:49 +0100)
commit961d4187c7029a55cf72d991b40c0b820f398887
treed9c21a199ed61f1639df85011930334997df1794
parenteb41dd76abce6a13bd7ad9c779dd560136caf60a
net: ethernet: ti: cpsw_ale: add policer/classifier helpers and setup defaults

The Policer registers in the ALE register space are just shadow registers
and use an index field in the policer table control register to read/write
to the actual Polier registers.
Add helper functions to Read and Write to Policer registers.

Also add a helper function to set the thread value to classifier/policer
mapping. Any packet that first matches the classifier will be sent to the
thread (flow) that is set in the classifier to thread mapping table.
If not set then it goes to the default flow.

Default behaviour is to have 8 classifiers to map 8 DSCP/PCP
priorities to N receive threads (flows). N depends on number of
RX channels enabled for the port.
As per the standard [1] User prioritie 1 (Background) and 2 (Spare) have
lower priority than the user priority 0 (default). User priority 1 being
of the lowest priority.

[1] IEEE802.1D-2004, IEEE Standard for Local and metropolitan area networks
Table G-2 - Traffic type acronyms
Table G-3 - Defining traffic types

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw_ale.c
drivers/net/ethernet/ti/cpsw_ale.h