My program call rte_eth_dev_flow_ctrl_set after rte_eth_dev_start. I found that x710 dropped all packets(rx_dropped_packets in xstats). I have used testpmd to confirm the problem: diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index da29858..eb11789 100755 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2928,6 +2928,16 @@ struct extmem_param { continue; } + { + struct rte_eth_fc_conf fc_conf = { + .autoneg = 0, + .mode = RTE_FC_NONE, + }; + + if (!rte_eth_dev_flow_ctrl_set(pi, &fc_conf)) + printf("set port %d flow ctrl\n", pi); + } + if (port->port_status == RTE_PORT_HANDLING) port->port_status = RTE_PORT_STARTED; else If I stop and start the port again, packet will be received as good.
please offer the reproduce steps with standard DPDK API like testpmd, l3fwd and other examples.