Rte_fdir_conf of rte_eth_conf should be initialized before port initialization. It is a workaround solution when working with Intel I40e.
Fixes: 4a3ef59a10c8 ("examples/flow_filtering: add simple demo of flow API") Cc: sta...@dpdk.org Signed-off-by: Rosen Xu <rosen...@intel.com> Acked-by: Ori Kam <or...@mellanox.com> Reviewed-by: Ferruh Yigit <ferruh.yi...@intel.com> v4 updates: =========== - Fix typo and lack of punctuation. - Add why it is needed, and what are we waiting to remove the workaround. v3 updates: =========== - Fix small comment of commit log and code comment v2 updates: =========== - Take more test on I40e - Add comments --- examples/flow_filtering/main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index f595034..ce91e8a 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -132,6 +132,22 @@ DEV_TX_OFFLOAD_SCTP_CKSUM | DEV_TX_OFFLOAD_TCP_TSO, }, + /* + * Initialize fdir_conf of rte_eth_conf. + * Fdir is used in flow filtering for I40e, + * so rte_flow rules involve some fdir + * configurations. In long term it's better + * that drivers don't require any fdir + * configuration for rte_flow, but we need to + * get this workaround so that sample app can + * run on I40e. + */ + .fdir_conf = { + .mode = RTE_FDIR_MODE_PERFECT, + .pballoc = RTE_FDIR_PBALLOC_64K, + .status = RTE_FDIR_REPORT_STATUS, + .drop_queue = 127, + }, }; struct rte_eth_txconf txq_conf; struct rte_eth_rxconf rxq_conf; -- 1.8.3.1