From: Ivan Malov <ivan.ma...@oktetlabs.ru> Client drivers may need to request that matching traffic be dropped. Add a dedicated API to support this. The API relies on action DELIVER with properly constructed NULL MPORT argument.
Signed-off-by: Ivan Malov <ivan.ma...@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com> Reviewed-by: Andy Moreton <amore...@xilinx.com> --- drivers/common/sfc_efx/base/efx.h | 5 +++++ drivers/common/sfc_efx/base/efx_mae.c | 19 +++++++++++++++++++ .../sfc_efx/rte_common_sfc_efx_version.map | 1 + 3 files changed, 25 insertions(+) diff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h index 96ea93f75a..4a4dc8ba4d 100644 --- a/drivers/common/sfc_efx/base/efx.h +++ b/drivers/common/sfc_efx/base/efx.h @@ -4211,6 +4211,11 @@ efx_mae_action_set_populate_deliver( __in efx_mae_actions_t *spec, __in const efx_mport_sel_t *mportp); +LIBEFX_API +extern __checkReturn efx_rc_t +efx_mae_action_set_populate_drop( + __in efx_mae_actions_t *spec); + LIBEFX_API extern __checkReturn boolean_t efx_mae_action_set_specs_equal( diff --git a/drivers/common/sfc_efx/base/efx_mae.c b/drivers/common/sfc_efx/base/efx_mae.c index ee51f19e5e..0cfa3f6c06 100644 --- a/drivers/common/sfc_efx/base/efx_mae.c +++ b/drivers/common/sfc_efx/base/efx_mae.c @@ -1028,6 +1028,25 @@ efx_mae_action_set_populate_deliver( return (rc); } + __checkReturn efx_rc_t +efx_mae_action_set_populate_drop( + __in efx_mae_actions_t *spec) +{ + efx_mport_sel_t mport; + const uint8_t *arg; + efx_dword_t dword; + + EFX_POPULATE_DWORD_1(dword, + MAE_MPORT_SELECTOR_FLAT, MAE_MPORT_SELECTOR_NULL); + + mport.sel = dword.ed_u32[0]; + + arg = (const uint8_t *)&mport.sel; + + return (efx_mae_action_set_spec_populate(spec, + EFX_MAE_ACTION_DELIVER, sizeof (mport.sel), arg)); +} + __checkReturn boolean_t efx_mae_action_set_specs_equal( __in const efx_mae_actions_t *left, diff --git a/drivers/common/sfc_efx/rte_common_sfc_efx_version.map b/drivers/common/sfc_efx/rte_common_sfc_efx_version.map index cb92955a64..7cc692db3f 100644 --- a/drivers/common/sfc_efx/rte_common_sfc_efx_version.map +++ b/drivers/common/sfc_efx/rte_common_sfc_efx_version.map @@ -90,6 +90,7 @@ INTERNAL { efx_mae_action_set_alloc; efx_mae_action_set_free; efx_mae_action_set_populate_deliver; + efx_mae_action_set_populate_drop; efx_mae_action_set_populate_flag; efx_mae_action_set_populate_mark; efx_mae_action_set_populate_vlan_pop; -- 2.17.1