From: Ivan Malov Date: Tue, 20 Oct 2020 09:13:18 +0000 (+0100) Subject: common/sfc_efx/base: add API for adding action drop X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=bb024542fffd;p=dpdk.git 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 --- 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;