[PATCH net-next 00/18] net: mvpp2: Classifier updates and cleanups
From: Maxime Chevallier
Date: Wed Mar 27 2019 - 04:44:42 EST
Hi all,
In preparation for the future addition of classification offload
support, this series cleans-up the current code dealing with the
classification engines.
As of today, the classification code only deals with RSS, which is a
very narrow use-case when considering all of the classifier's features.
This lead to design and naming decisions that don't really stand when
considering using more classification features.
This series therefore includes quite a lot a renaming of functions and
macros, and tries to make the naming schemes more consistent and the
code more readable.
The debugfs interface that allows reading the various Parsing and
Classification engines has been cleaned-up and made more generic,
allowing to read the Flow Table and C2 engine hit counters on a
per-entry basis.
The Classifier itself has been made more robust by introducing the
lu_type field in classification lookups, that prevents false-positive
matches in the future. We also initialise the various engine in a more
extensive and less error-prone way by assining default values to all
entries in the C2 and Flow table.
This is a pretty big series considering it's mostly cleanup, but my goal
is to make the future series that will contain new big features easier
to review, focusing on the real logic.
Besides the debugfs interface, this series doesn't intend to introduce any
new features or change in behaviours.
Maxime Chevallier (18):
net: mvpp2: Don't use an int to store netdev_features_t
net: mvpp2: cls: Add missing MAC_DA field extraction
net: mvpp2: cls: Start cls flow entries from beginning of table
net: mvpp2: cls: use Lookup Type in classification engines
net: mvpp2: cls: Rename MVPP2_N_FLOWS to MVPP2_N_PRS_FLOWS
net: mvpp2: cls: Make the flow definitions const
net: mvpp2: debugfs: Store debugfs entries data in mvpp2 struct
net: mvpp2: debugfs: Allow reading the flow table from debugfs
net: mvpp2: debugfs: Allow reading the C2 engine table from debugfs
net: mvpp2: cls: Use iterators to go through the cls_table
net: mvpp2: cls: Write C2 TCAM data last when writing a C2 entry
net: mvpp2: cls: Move C2 read/write helpers around
net: mvpp2: cls: Rename classifer per-port functions
net: mvpp2: cls: Don't use the sequence attribute for classification
net: mvpp2: cls: Rename the flow table macros
net: mvpp2: cls: Invalidate all C2 entries except the ones we use
net: mvpp2: cls: Initialize lookup priorities for all entries in the
flow
net: mvpp2: cls: Rework C2 engine macros
drivers/net/ethernet/marvell/mvpp2/mvpp2.h | 10 +
.../net/ethernet/marvell/mvpp2/mvpp2_cls.c | 212 ++++++++-------
.../net/ethernet/marvell/mvpp2/mvpp2_cls.h | 92 ++++---
.../ethernet/marvell/mvpp2/mvpp2_debugfs.c | 253 +++++++++++-------
.../net/ethernet/marvell/mvpp2/mvpp2_main.c | 8 +-
5 files changed, 341 insertions(+), 234 deletions(-)
--
2.20.1