mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
mlxsw: core_acl_flex_actions: Add IGNORE_ACTION
Add the IGNORE_ACTION which is used to ignore basic switching functions such as learning on a per-packet basis. The action will be prepended to the FORWARDING_ACTION in subsequent patches. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
58c1e0bace
commit
d0d449c747
@ -1887,6 +1887,46 @@ int mlxsw_afa_block_append_fid_set(struct mlxsw_afa_block *block, u16 fid,
|
||||
}
|
||||
EXPORT_SYMBOL(mlxsw_afa_block_append_fid_set);
|
||||
|
||||
/* Ignore Action
|
||||
* -------------
|
||||
* The ignore action is used to ignore basic switching functions such as
|
||||
* learning on a per-packet basis.
|
||||
*/
|
||||
|
||||
#define MLXSW_AFA_IGNORE_CODE 0x0F
|
||||
#define MLXSW_AFA_IGNORE_SIZE 1
|
||||
|
||||
/* afa_ignore_disable_learning
|
||||
* Disable learning on ingress.
|
||||
*/
|
||||
MLXSW_ITEM32(afa, ignore, disable_learning, 0x00, 29, 1);
|
||||
|
||||
/* afa_ignore_disable_security
|
||||
* Disable security lookup on ingress.
|
||||
* Reserved when Spectrum-1.
|
||||
*/
|
||||
MLXSW_ITEM32(afa, ignore, disable_security, 0x00, 28, 1);
|
||||
|
||||
static void mlxsw_afa_ignore_pack(char *payload, bool disable_learning,
|
||||
bool disable_security)
|
||||
{
|
||||
mlxsw_afa_ignore_disable_learning_set(payload, disable_learning);
|
||||
mlxsw_afa_ignore_disable_security_set(payload, disable_security);
|
||||
}
|
||||
|
||||
int mlxsw_afa_block_append_ignore(struct mlxsw_afa_block *block,
|
||||
bool disable_learning, bool disable_security)
|
||||
{
|
||||
char *act = mlxsw_afa_block_append_action(block, MLXSW_AFA_IGNORE_CODE,
|
||||
MLXSW_AFA_IGNORE_SIZE);
|
||||
|
||||
if (IS_ERR(act))
|
||||
return PTR_ERR(act);
|
||||
mlxsw_afa_ignore_pack(act, disable_learning, disable_security);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(mlxsw_afa_block_append_ignore);
|
||||
|
||||
/* MC Routing Action
|
||||
* -----------------
|
||||
* The Multicast router action. Can be used by RMFT_V2 - Router Multicast
|
||||
|
@ -89,6 +89,8 @@ int mlxsw_afa_block_append_counter(struct mlxsw_afa_block *block,
|
||||
struct netlink_ext_ack *extack);
|
||||
int mlxsw_afa_block_append_fid_set(struct mlxsw_afa_block *block, u16 fid,
|
||||
struct netlink_ext_ack *extack);
|
||||
int mlxsw_afa_block_append_ignore(struct mlxsw_afa_block *block,
|
||||
bool disable_learning, bool disable_security);
|
||||
int mlxsw_afa_block_append_mcrouter(struct mlxsw_afa_block *block,
|
||||
u16 expected_irif, u16 min_mtu,
|
||||
bool rmid_valid, u32 kvdl_index);
|
||||
|
Loading…
Reference in New Issue
Block a user