Some of the requested offloads are not supported by all devices.

This patch fixes this issue by setting only the supported offloads.

Fixes: feca6c428a5e ("examples/flow_filtering: add Tx queues setup process")
Cc: wei.zh...@intel.com

Signed-off-by: Ori Kam <or...@mellanox.com>
---
 examples/flow_filtering/main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c
index a73d120..27e287a 100644
--- a/examples/flow_filtering/main.c
+++ b/examples/flow_filtering/main.c
@@ -136,6 +136,8 @@
        struct rte_eth_rxconf rxq_conf;
        struct rte_eth_dev_info dev_info;
 
+       rte_eth_dev_info_get(port_id, &dev_info);
+       port_conf.txmode.offloads &= dev_info.rx_offload_capa;
        printf(":: initializing port: %d\n", port_id);
        ret = rte_eth_dev_configure(port_id,
                                nr_queues, nr_queues, &port_conf);
@@ -145,7 +147,6 @@
                        ret, port_id);
        }
 
-       rte_eth_dev_info_get(port_id, &dev_info);
        rxq_conf = dev_info.default_rxconf;
        rxq_conf.offloads = port_conf.rxmode.offloads;
        /* only set Rx queues: something we care only so far */
-- 
1.8.3.1

Reply via email to