From bb024542fffd3ee0ca606d38d3e735c39dd26aec Mon Sep 17 00:00:00 2001 From: Ivan Malov Date: Tue, 20 Oct 2020 10:13:18 +0100 Subject: [PATCH] common/sfc_efx/base: add API for adding action drop 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 Signed-off-by: Andrew Rybchenko Reviewed-by: Andy Moreton --- drivers/common/sfc_efx/base/efx.h | 5 +++++ drivers/common/sfc_efx/base/efx_mae.c | 19 +++++++++++++++++++ drivers/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 7acb964e65..4b569119f8 100644 --- a/drivers/common/sfc_efx/base/efx_mae.c +++ b/drivers/common/sfc_efx/base/efx_mae.c @@ -1028,6 +1028,25 @@ fail1: 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/version.map b/drivers/common/sfc_efx/version.map index cb92955a64..7cc692db3f 100644 --- a/drivers/common/sfc_efx/version.map +++ b/drivers/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.20.1