From: Ido Schimmel <redacted>
Date: Wed, 14 Nov 2018 08:22:25 +0000
Jiri says:
The Spectrum-2 hardware has limitation number of ERPs per-region. In
order to accommodate more masks than number of ERPs, the hardware
supports to insert rules with delta bits. By that, the rules with masks
that differ in up-to 8 consecutive bits can share the same ERP.
Patches 1 and 2 fix couple of issues that would appear in existing
selftests after adding delta support
Patch 3 introduces a generic object aggregation library. Now it is
static, but it will get extended for recalculation of aggregations in
the future in order to reach more optimal aggregation.
Patch 4 just simply converts existing ERP code to use the objagg library
instead of a rhashtable.
Patches 5-9 do more or less small changes to prepare ground for the last
patch.
Patch 10 fills-up delta callbacks of objagg library and utilizes the
delta bits for rule insertion.
The last patch adds selftest to test the mlxsw Spectrum-2 delta flows.
Series applied, but I had to fix the following warning:
====================
[PATCH] test_objagg: Fix warning.
lib/test_objagg.c: In function ‘test_delta_action_item’:
./include/linux/printk.h:308:2: warning: ‘errmsg’ may be used uninitialized in this function [-Wmaybe-uninitialized]
Signed-off-by: David S. Miller <davem@davemloft.net>
---
lib/test_objagg.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/test_objagg.c b/lib/test_objagg.c
index aac5d8e8800c..ab57144bb0cd 100644
--- a/lib/test_objagg.c
+++ b/lib/test_objagg.c
@@ -769,6 +769,7 @@ static int test_delta_action_item(struct world *world,
if (err)
goto errout;
+ errmsg = NULL;
err = check_expect_stats(objagg, &action_item->expect_stats, &errmsg);
if (err) {
pr_err("Key %u: Stats: %s\n", action_item->key_id, errmsg);--
2.19.1