|
@@ -38,7 +38,7 @@
|
|
|
#include "spectrum_span.h"
|
|
|
|
|
|
static int mlxsw_sp_act_kvdl_set_add(void *priv, u32 *p_kvdl_index,
|
|
|
- char *enc_actions, bool is_first)
|
|
|
+ char *enc_actions, bool is_first, bool ca)
|
|
|
{
|
|
|
struct mlxsw_sp *mlxsw_sp = priv;
|
|
|
char pefa_pl[MLXSW_REG_PEFA_LEN];
|
|
@@ -55,7 +55,7 @@ static int mlxsw_sp_act_kvdl_set_add(void *priv, u32 *p_kvdl_index,
|
|
|
1, &kvdl_index);
|
|
|
if (err)
|
|
|
return err;
|
|
|
- mlxsw_reg_pefa_pack(pefa_pl, kvdl_index, enc_actions);
|
|
|
+ mlxsw_reg_pefa_pack(pefa_pl, kvdl_index, ca, enc_actions);
|
|
|
err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(pefa), pefa_pl);
|
|
|
if (err)
|
|
|
goto err_pefa_write;
|
|
@@ -68,6 +68,20 @@ err_pefa_write:
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
+static int mlxsw_sp1_act_kvdl_set_add(void *priv, u32 *p_kvdl_index,
|
|
|
+ char *enc_actions, bool is_first)
|
|
|
+{
|
|
|
+ return mlxsw_sp_act_kvdl_set_add(priv, p_kvdl_index, enc_actions,
|
|
|
+ is_first, false);
|
|
|
+}
|
|
|
+
|
|
|
+static int mlxsw_sp2_act_kvdl_set_add(void *priv, u32 *p_kvdl_index,
|
|
|
+ char *enc_actions, bool is_first)
|
|
|
+{
|
|
|
+ return mlxsw_sp_act_kvdl_set_add(priv, p_kvdl_index, enc_actions,
|
|
|
+ is_first, true);
|
|
|
+}
|
|
|
+
|
|
|
static void mlxsw_sp_act_kvdl_set_del(void *priv, u32 kvdl_index,
|
|
|
bool is_first)
|
|
|
{
|
|
@@ -158,7 +172,7 @@ mlxsw_sp_act_mirror_del(void *priv, u8 local_in_port, int span_id, bool ingress)
|
|
|
}
|
|
|
|
|
|
const struct mlxsw_afa_ops mlxsw_sp1_act_afa_ops = {
|
|
|
- .kvdl_set_add = mlxsw_sp_act_kvdl_set_add,
|
|
|
+ .kvdl_set_add = mlxsw_sp1_act_kvdl_set_add,
|
|
|
.kvdl_set_del = mlxsw_sp_act_kvdl_set_del,
|
|
|
.kvdl_fwd_entry_add = mlxsw_sp_act_kvdl_fwd_entry_add,
|
|
|
.kvdl_fwd_entry_del = mlxsw_sp_act_kvdl_fwd_entry_del,
|
|
@@ -169,7 +183,7 @@ const struct mlxsw_afa_ops mlxsw_sp1_act_afa_ops = {
|
|
|
};
|
|
|
|
|
|
const struct mlxsw_afa_ops mlxsw_sp2_act_afa_ops = {
|
|
|
- .kvdl_set_add = mlxsw_sp_act_kvdl_set_add,
|
|
|
+ .kvdl_set_add = mlxsw_sp2_act_kvdl_set_add,
|
|
|
.kvdl_set_del = mlxsw_sp_act_kvdl_set_del,
|
|
|
.kvdl_fwd_entry_add = mlxsw_sp_act_kvdl_fwd_entry_add,
|
|
|
.kvdl_fwd_entry_del = mlxsw_sp_act_kvdl_fwd_entry_del,
|