FW seems to be a bit old. Please update to 22.34.1xxx to have a try. From: Junghan Yoon Sent: Friday, June 9, 2023 10:06 PM To: Bing Zhao ; users@dpdk.org Subject: RE: RE: About rte_flow asynchronous API External email: Use caution opening links or attachments Thank you for your quick response. Firmware version is 22.30.1004, and OFED version is OFED-5.8-1.1.2. Sincerely, Junghan Yoon 보낸 사람: Bing Zhao 보낸 날짜: 2023년 6월 9일 금요일 오후 10:56 받는 사람: Junghan Yoon; users@dpdk.org 제목: RE: RE: About rte_flow asynchronous API What’s the FW version are you using? If you are using OFED driver, it is suggested that you try the OFED >=5.8 with the FW inside. BR. Bing From: Junghan Yoon > Sent: Friday, June 9, 2023 9:50 PM To: Bing Zhao >; users@dpdk.org Subject: RE: RE: About rte_flow asynchronous API External email: Use caution opening links or attachments Thank you Zhao. I tried it, but now mlx5 driver returned error. mlx5_net: [mlx5dr_action_create_generic]: Cannot create HWS action since HWS is not supported It is what I saw in my original code before trying on testpmd. It seems to be an issue from connectX-6 configuration. Is there anyone ever tried to use asynchronous API with connectX-6? Setting dv_flow_en=2 and dv_esw_en=1 seems not enough. I explored the mlx5 code, and found that rte_flow_configure() queries HCA capability by mlx5dr_cmd_query_caps(). In my case, rte_flow_configure() returned error since caps->wqe_based_update is set by 0. Is there anyone know how to set this value to non-zero? I already wrote the same question on nvidia forum. Sincerely, Junghan Yoon 보낸 사람: Bing Zhao 보낸 날짜: 2023년 6월 9일 금요일 오후 10:00 받는 사람: users@dpdk.org; cerotyki@gmail.com 제목: RE: About rte_flow asynchronous API Hi Junghan, In testpmd, you can easily do it by: port stop all # or port stop 0 flow configure 0 …… # if there are other port(s) # flow configure Y …… port start all # or port start 0 With the source code implementation, you can configure it before starting a device. BR. Bing From: Junghan Yoon > Sent: Friday, June 9, 2023 10:57:13 AM To: users@dpdk.org > Subject: About rte_flow asynchronous API Hi. I’m trying to use testpmd to test rte_flow with asynchronous API in DPDK 22.11. I turned on dv_esw_en=1 by echoing switchdev to /sys/class/net/…., and set dv_flow_en to 2 to use connectX-6 HWS (hardware steering). sudo build/app/dpdk-testpmd -a 0000:8a:00.0,dv_flow_en=2 -a 0000:8a:00.1,dv_flow_en=2 -- -i --rxq=1 --txq=1 In the prompt, I typed below flow configure 0 queues_number 1 queues_size 10 counters_number 0 aging_counters_number 0 meters_number 0 flags 0 but it said “Device with port_id=0 already started.”. I know rte_flow_configure() call should be in the middle of rte_eth_dev_configure() and rte_eth_dev_start(). So, I run testpmd by below to postpone device start, sudo build/app/dpdk-testpmd -a 0000:8a:00.0,dv_flow_en=2 -a 0000:8a:00.1,dv_flow_en=2 -- -i --rxq=1 --txq=1 --disable-device-start However, now not only rte_eth_dev_start() but also rte_eth_dev_configure() does not start, so it said “Device with port_id=0 is not configured.”. How can I run rte_flow_configure() between rte_eth_dev_configure() and rte_eth_dev_start() in testpmd? Is there any parameter to postpone only rte_eth_dev_start()? Sincerely, Junghan Yoon.