[dpdk-users] Issues with rte_flow_destroy
Antoine POLLENUS
a.pollenus at deltacast.tv
Tue May 25 14:34:27 CEST 2021
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