diff options
author | Xiaoliang Yang <xiaoliang.yang_1@nxp.com> | 2021-11-18 13:12:00 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-11-18 15:07:24 +0300 |
commit | 7d4b564d6adde3167dd015f7dbb7aee1d7a4294e (patch) | |
tree | 7c8d2946d1737333405b9203913ce8ae351acf09 /include/soc/mscc/ocelot.h | |
parent | 23e2c506ad6c588b469e3d06cc20299434440d02 (diff) | |
download | linux-7d4b564d6adde3167dd015f7dbb7aee1d7a4294e.tar.xz |
net: dsa: felix: support psfp filter on vsc9959
VSC9959 supports Per-Stream Filtering and Policing(PSFP) that complies
with the IEEE 802.1Qci standard. The stream is identified by Null stream
identification(DMAC and VLAN ID) defined in IEEE802.1CB.
For PSFP, four tables need to be set up: stream table, stream filter
table, stream gate table, and flow meter table. Identify the stream by
parsing the tc flower keys and add it to the stream table. The stream
filter table is automatically maintained, and its index is determined by
SGID(flow gate index) and FMID(flow meter index).
Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/soc/mscc/ocelot.h')
-rw-r--r-- | include/soc/mscc/ocelot.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index e9985ace59c0..5ea72d274d7f 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -586,6 +586,12 @@ enum ocelot_port_tag_config { OCELOT_PORT_TAG_TRUNK = 3, }; +struct ocelot_psfp_list { + struct list_head stream_list; + struct list_head sfi_list; + struct list_head sgi_list; +}; + enum ocelot_sb { OCELOT_SB_BUF, OCELOT_SB_REF, @@ -687,6 +693,8 @@ struct ocelot { struct ocelot_vcap_block block[3]; struct vcap_props *vcap; + struct ocelot_psfp_list psfp; + /* Workqueue to check statistics for overflow with its lock */ struct mutex stats_lock; u64 *stats; |