• Vladimir Oltean's avatar
    net: mscc: ocelot: create TCAM skeleton from tc filter chains · 1397a2eb
    Vladimir Oltean authored
    For Ocelot switches, there are 2 ingress pipelines for flow offload
    rules: VCAP IS1 (Ingress Classification) and IS2 (Security Enforcement).
    IS1 and IS2 support different sets of actions. The pipeline order for a
    packet on ingress is:
    
    Basic classification -> VCAP IS1 -> VCAP IS2
    
    Furthermore, IS1 is looked up 3 times, and IS2 is looked up twice (each
    TCAM entry can be configured to match only on the first lookup, or only
    on the second, or on both etc).
    
    Because the TCAMs are completely independent in hardware, and because of
    the fixed pipeline, we actually have very limited options when it comes
    to offloading complex rules to them while still maintaining the same
    semantics with the software data path.
    
    This patch maps flow offload rules to ingress TCAMs according to a
    predefined chain index number. There is going to be a script in
    selftests that clarifies the usage model.
    
    There is also an egress TCAM (VCAP ES0, the Egress Rewriter), which is
    modeled on top of the default chain 0 of the egress qdisc, because it
    doesn't have multiple lookups.
    Suggested-by: default avatarAllan W. Nielsen <allan.nielsen@microchip.com>
    Co-developed-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1397a2eb
ocelot_vcap.c 32.9 KB