mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum_trap: Split sampling traps between ASICs
Sampling of ingress packets is supported using a dedicated sampling mechanism on all Spectrum ASICs. However, Spectrum-2 and later ASICs support more sophisticated sampling by mirroring packets to the CPU. As a preparation for more advanced sampling configurations, split the trap configuration used for sampled packets between Spectrum-1 and later ASICs. This is needed since packets that are mirrored to the CPU are trapped via a different trap identifier compared to packets that are sampled using the dedicated sampling mechanism. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
20afb9bc48
commit
34a277212c
|
@ -463,11 +463,6 @@ static const struct mlxsw_sp_trap_group_item mlxsw_sp_trap_group_items_arr[] = {
|
|||
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_PTP1,
|
||||
.priority = 2,
|
||||
},
|
||||
{
|
||||
.group = DEVLINK_TRAP_GROUP_GENERIC(ACL_SAMPLE, 0),
|
||||
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_PKT_SAMPLE,
|
||||
.priority = 0,
|
||||
},
|
||||
{
|
||||
.group = DEVLINK_TRAP_GROUP_GENERIC(ACL_TRAP, 18),
|
||||
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_FLOW_LOGGING,
|
||||
|
@ -992,14 +987,6 @@ static const struct mlxsw_sp_trap_item mlxsw_sp_trap_items_arr[] = {
|
|||
MLXSW_SP_RXL_NO_MARK(PTP1, PTP1, TRAP_TO_CPU, false),
|
||||
},
|
||||
},
|
||||
{
|
||||
.trap = MLXSW_SP_TRAP_CONTROL(FLOW_ACTION_SAMPLE, ACL_SAMPLE,
|
||||
MIRROR),
|
||||
.listeners_arr = {
|
||||
MLXSW_RXL(mlxsw_sp_rx_sample_listener, PKT_SAMPLE,
|
||||
MIRROR_TO_CPU, false, SP_PKT_SAMPLE, DISCARD),
|
||||
},
|
||||
},
|
||||
{
|
||||
.trap = MLXSW_SP_TRAP_CONTROL(FLOW_ACTION_TRAP, ACL_TRAP, TRAP),
|
||||
.listeners_arr = {
|
||||
|
@ -1709,10 +1696,23 @@ int mlxsw_sp_trap_group_policer_hw_id_get(struct mlxsw_sp *mlxsw_sp, u16 id,
|
|||
|
||||
static const struct mlxsw_sp_trap_group_item
|
||||
mlxsw_sp1_trap_group_items_arr[] = {
|
||||
{
|
||||
.group = DEVLINK_TRAP_GROUP_GENERIC(ACL_SAMPLE, 0),
|
||||
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_PKT_SAMPLE,
|
||||
.priority = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct mlxsw_sp_trap_item
|
||||
mlxsw_sp1_trap_items_arr[] = {
|
||||
{
|
||||
.trap = MLXSW_SP_TRAP_CONTROL(FLOW_ACTION_SAMPLE, ACL_SAMPLE,
|
||||
MIRROR),
|
||||
.listeners_arr = {
|
||||
MLXSW_RXL(mlxsw_sp_rx_sample_listener, PKT_SAMPLE,
|
||||
MIRROR_TO_CPU, false, SP_PKT_SAMPLE, DISCARD),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static int
|
||||
|
@ -1749,6 +1749,11 @@ mlxsw_sp2_trap_group_items_arr[] = {
|
|||
.priority = 0,
|
||||
.fixed_policer = true,
|
||||
},
|
||||
{
|
||||
.group = DEVLINK_TRAP_GROUP_GENERIC(ACL_SAMPLE, 0),
|
||||
.hw_group_id = MLXSW_REG_HTGT_TRAP_GROUP_SP_PKT_SAMPLE,
|
||||
.priority = 0,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct mlxsw_sp_trap_item
|
||||
|
@ -1760,6 +1765,14 @@ mlxsw_sp2_trap_items_arr[] = {
|
|||
},
|
||||
.is_source = true,
|
||||
},
|
||||
{
|
||||
.trap = MLXSW_SP_TRAP_CONTROL(FLOW_ACTION_SAMPLE, ACL_SAMPLE,
|
||||
MIRROR),
|
||||
.listeners_arr = {
|
||||
MLXSW_RXL(mlxsw_sp_rx_sample_listener, PKT_SAMPLE,
|
||||
MIRROR_TO_CPU, false, SP_PKT_SAMPLE, DISCARD),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static int
|
||||
|
|
Loading…
Reference in New Issue