mbox series

[net-next,0/5] mlxsw: spectrum_acl: Include delta bits into hashtable key

Message ID 20190130085813.32161-1-idosch@mellanox.com
Headers show
Series mlxsw: spectrum_acl: Include delta bits into hashtable key | expand

Message

Ido Schimmel Jan. 30, 2019, 8:58 a.m. UTC
The Spectrum-2 ASIC allows multiple rules to use the same mask provided
that the difference between their masks is small enough (up to 8
consecutive delta bits). A more detailed explanation is provided in
merge commit 756cd36626f7 ("Merge branch
'mlxsw-Introduce-algorithmic-TCAM-support'").

These delta bits are part of the rule's key and therefore rules that
only differ in their delta bits can be inserted with the same A-TCAM
mask. In case two rules share the same key and only differ in their
priority, then the second will spill to the C-TCAM.

Current code does not take the delta bits into account when checking for
duplicate rules, which leads to unnecessary spillage to the C-TCAM.
This may result in reduced scale and performance.

Patch #1 includes the delta bits in the rule's key to avoid the above
mentioned problem.

Patch #2 adds a tracepoint when a rule is inserted into the C-TCAM.

Patches #3-#5 add test cases to make sure unnecessary spillage into the
C-TCAM does not occur.

Jiri Pirko (5):
  mlxsw: spectrum_acl: Include delta bits into hashtable key
  mlxsw: spectrum_acl: Add C-TCAM spill tracepoint
  selftests: spectrum-2: Extend and move trace helpers
  selftests: spectrum-2: Fix multiple_masks_test
  selftests: spectrum-2: Add delta two masks one key test

 .../mellanox/mlxsw/spectrum_acl_atcam.c       |  24 +--
 .../mlxsw/spectrum_acl_bloom_filter.c         |   2 +-
 .../mellanox/mlxsw/spectrum_acl_tcam.h        |  10 +-
 include/trace/events/mlxsw.h                  |  38 +++++
 .../drivers/net/mlxsw/spectrum-2/tc_flower.sh | 143 ++++++++++++++----
 5 files changed, 174 insertions(+), 43 deletions(-)
 create mode 100644 include/trace/events/mlxsw.h

Comments

David Miller Jan. 30, 2019, 6:07 p.m. UTC | #1
From: Ido Schimmel <idosch@mellanox.com>
Date: Wed, 30 Jan 2019 08:58:29 +0000

> The Spectrum-2 ASIC allows multiple rules to use the same mask provided
> that the difference between their masks is small enough (up to 8
> consecutive delta bits). A more detailed explanation is provided in
> merge commit 756cd36626f7 ("Merge branch
> 'mlxsw-Introduce-algorithmic-TCAM-support'").
> 
> These delta bits are part of the rule's key and therefore rules that
> only differ in their delta bits can be inserted with the same A-TCAM
> mask. In case two rules share the same key and only differ in their
> priority, then the second will spill to the C-TCAM.
> 
> Current code does not take the delta bits into account when checking for
> duplicate rules, which leads to unnecessary spillage to the C-TCAM.
> This may result in reduced scale and performance.
> 
> Patch #1 includes the delta bits in the rule's key to avoid the above
> mentioned problem.
> 
> Patch #2 adds a tracepoint when a rule is inserted into the C-TCAM.
> 
> Patches #3-#5 add test cases to make sure unnecessary spillage into the
> C-TCAM does not occur.

Series applied, thanks.