examples/flow_filtering: filter out unsupported offloads
authorOri Kam <orika@mellanox.com>
Mon, 5 Nov 2018 09:35:27 +0000 (09:35 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 6 Nov 2018 01:35:34 +0000 (02:35 +0100)
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: stable@dpdk.org
Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
examples/flow_filtering/main.c

index a73d120..27e287a 100644 (file)
@@ -136,6 +136,8 @@ init_port(void)
        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 @@ init_port(void)
                        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 */