From: Roman Zhukov Date: Thu, 19 Apr 2018 11:37:01 +0000 (+0100) Subject: net/sfc/base: get actions MARK and FLAG support X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=618869b815dfc481cb277b9d4d24e3444a8f375f;p=dpdk.git net/sfc/base: get actions MARK and FLAG support Filter actions MARK and FLAG are supported on Medford2 by DPDK firmware variant. Signed-off-by: Roman Zhukov Signed-off-by: Andrew Rybchenko --- diff --git a/drivers/net/sfc/base/ef10_nic.c b/drivers/net/sfc/base/ef10_nic.c index 35b719ac89..b28226d9a6 100644 --- a/drivers/net/sfc/base/ef10_nic.c +++ b/drivers/net/sfc/base/ef10_nic.c @@ -1294,6 +1294,16 @@ ef10_get_datapath_caps( */ encp->enc_rx_scale_l4_hash_supported = B_TRUE; } + /* Check if the firmware supports "FLAG" and "MARK" filter actions */ + if (CAP_FLAGS2(req, FILTER_ACTION_FLAG)) + encp->enc_filter_action_flag_supported = B_TRUE; + else + encp->enc_filter_action_flag_supported = B_FALSE; + + if (CAP_FLAGS2(req, FILTER_ACTION_MARK)) + encp->enc_filter_action_mark_supported = B_TRUE; + else + encp->enc_filter_action_mark_supported = B_FALSE; #undef CAP_FLAGS1 #undef CAP_FLAGS2 diff --git a/drivers/net/sfc/base/efx.h b/drivers/net/sfc/base/efx.h index b334cc5b47..cd0e6f805f 100644 --- a/drivers/net/sfc/base/efx.h +++ b/drivers/net/sfc/base/efx.h @@ -1293,6 +1293,9 @@ typedef struct efx_nic_cfg_s { /* Firmware support for extended MAC_STATS buffer */ uint32_t enc_mac_stats_nstats; boolean_t enc_fec_counters; + /* Firmware support for "FLAG" and "MARK" filter actions */ + boolean_t enc_filter_action_flag_supported; + boolean_t enc_filter_action_mark_supported; } efx_nic_cfg_t; #define EFX_PCI_FUNCTION_IS_PF(_encp) ((_encp)->enc_vf == 0xffff) diff --git a/drivers/net/sfc/base/siena_nic.c b/drivers/net/sfc/base/siena_nic.c index 15aa06b772..b7033698ed 100644 --- a/drivers/net/sfc/base/siena_nic.c +++ b/drivers/net/sfc/base/siena_nic.c @@ -172,6 +172,9 @@ siena_board_cfg( encp->enc_mac_stats_nstats = MC_CMD_MAC_NSTATS; + encp->enc_filter_action_flag_supported = B_FALSE; + encp->enc_filter_action_mark_supported = B_FALSE; + return (0); fail2: