[dpdk-users] Issues with rte_flow_destroy

Xing, Beilei beilei.xing at intel.com
Thu May 27 10:27:03 CEST 2021


Hi,

What's the DPDK version you used? With the latest DPDK version, there's no such issue.

BR,
Beilei

> -----Original Message-----
> From: users <users-bounces at dpdk.org> On Behalf Of Antoine POLLENUS
> Sent: Tuesday, May 25, 2021 8:34 PM
> To: users at dpdk.org
> Subject: [dpdk-users] Issues with rte_flow_destroy
> 
> Hi,
> 
> I'm experiencing some issues using the flow API and a intel XXV710 (i40e).
> 
> I managed to reproduce it  in the flow filtering sample.
> 
> I'm creating one flow than deleting it and then creating another with basic
> change #define SRC_IP ((0<<24) + (0<<16) + (0<<8) + 0) /* src ip = 0.0.0.0 */
> #define SRC_IP_1 ((192<<24) + (168<<16) + (1<<8) + 3) /* dest ip = 192.168.1.1
> */ #define DEST_IP ((192<<24) + (168<<16) + (1<<8) + 1) /* dest ip = 192.168.1.1
> */ #define DEST_IP_1 ((192<<24) + (168<<16) + (1<<8) + 2) /* dest ip =
> 192.168.1.1 */
> 
>                 flow = generate_ipv4_flow(port_id, selected_queue,
>                                                                SRC_IP, EMPTY_MASK,
>                                                                DEST_IP, FULL_MASK, &error);
>                 if (!flow) {
>                                printf("Flow can't be created %d message: %s\n",
>                                                error.type,
>                                                error.message ? error.message : "(no stated reason)");
>                                rte_exit(EXIT_FAILURE, "error in creating flow");
>                 }
>                 //Deleting the rule
>                 int returned;
>                 returned = rte_flow_destroy(port_id, flow, &error);
>                 if(returned < 0)
>                 {
>                                printf("destroy %d message: %s\n",
>                                                error.type,
>                                                error.message ? error.message : "(no stated reason)");
>                 }
>                 //Generating another rule
>                 flow1 = generate_ipv4_flow(port_id, selected_queue,
>                                                                SRC_IP_1, FULL_MASK,
>                                                                DEST_IP_1, FULL_MASK, &error);
>                 if (!flow1) {
>                                printf("Flow can't be created %d message: %s\n",
>                                                error.type,
>                                                error.message ? error.message : "(no stated reason)");
>                                rte_exit(EXIT_FAILURE, "error in creating flow");
>                 }
> 
> When doing that I always get an error on the second flow I want to add.
> 
> Flow can't be created 13 message: Conflict with the first rule's input set.
> 
> The rule is indeed in conflict because it uses the same as the previous but with
> the source IP changing and also the destination IP.
> 
> The strange thing is that a destroy has been made on the previous rule and
> should not be there anymore....
> 
> Am I doing something wrong or is there a bug in the destroy function ?
> 
> Thank you in advance for your answer,
> 
> Regards,
> 
> Antoine Pollenus


More information about the users mailing list