Lines Matching refs:rule

417 	struct rte_flow_classify_rule *rule;  in allocate_acl_ipv4_5tuple_rule()  local
419 rule = malloc(sizeof(struct rte_flow_classify_rule)); in allocate_acl_ipv4_5tuple_rule()
420 if (!rule) in allocate_acl_ipv4_5tuple_rule()
421 return rule; in allocate_acl_ipv4_5tuple_rule()
423 memset(rule, 0, sizeof(struct rte_flow_classify_rule)); in allocate_acl_ipv4_5tuple_rule()
424 rule->id = unique_id++; in allocate_acl_ipv4_5tuple_rule()
425 rule->rules.type = RTE_FLOW_CLASSIFY_RULE_TYPE_IPV4_5TUPLE; in allocate_acl_ipv4_5tuple_rule()
428 rule->u.key.key_add.priority = cls->ntuple_filter.priority; in allocate_acl_ipv4_5tuple_rule()
429 rule->u.key.key_add.field_value[PROTO_FIELD_IPV4].mask_range.u8 = in allocate_acl_ipv4_5tuple_rule()
431 rule->u.key.key_add.field_value[PROTO_FIELD_IPV4].value.u8 = in allocate_acl_ipv4_5tuple_rule()
433 rule->rules.u.ipv4_5tuple.proto = cls->ntuple_filter.proto; in allocate_acl_ipv4_5tuple_rule()
434 rule->rules.u.ipv4_5tuple.proto_mask = cls->ntuple_filter.proto_mask; in allocate_acl_ipv4_5tuple_rule()
436 rule->u.key.key_add.field_value[SRC_FIELD_IPV4].mask_range.u32 = in allocate_acl_ipv4_5tuple_rule()
438 rule->u.key.key_add.field_value[SRC_FIELD_IPV4].value.u32 = in allocate_acl_ipv4_5tuple_rule()
440 rule->rules.u.ipv4_5tuple.src_ip_mask = cls->ntuple_filter.src_ip_mask; in allocate_acl_ipv4_5tuple_rule()
441 rule->rules.u.ipv4_5tuple.src_ip = cls->ntuple_filter.src_ip; in allocate_acl_ipv4_5tuple_rule()
443 rule->u.key.key_add.field_value[DST_FIELD_IPV4].mask_range.u32 = in allocate_acl_ipv4_5tuple_rule()
445 rule->u.key.key_add.field_value[DST_FIELD_IPV4].value.u32 = in allocate_acl_ipv4_5tuple_rule()
447 rule->rules.u.ipv4_5tuple.dst_ip_mask = cls->ntuple_filter.dst_ip_mask; in allocate_acl_ipv4_5tuple_rule()
448 rule->rules.u.ipv4_5tuple.dst_ip = cls->ntuple_filter.dst_ip; in allocate_acl_ipv4_5tuple_rule()
450 rule->u.key.key_add.field_value[SRCP_FIELD_IPV4].mask_range.u16 = in allocate_acl_ipv4_5tuple_rule()
452 rule->u.key.key_add.field_value[SRCP_FIELD_IPV4].value.u16 = in allocate_acl_ipv4_5tuple_rule()
454 rule->rules.u.ipv4_5tuple.src_port_mask = in allocate_acl_ipv4_5tuple_rule()
456 rule->rules.u.ipv4_5tuple.src_port = cls->ntuple_filter.src_port; in allocate_acl_ipv4_5tuple_rule()
458 rule->u.key.key_add.field_value[DSTP_FIELD_IPV4].mask_range.u16 = in allocate_acl_ipv4_5tuple_rule()
460 rule->u.key.key_add.field_value[DSTP_FIELD_IPV4].value.u16 = in allocate_acl_ipv4_5tuple_rule()
462 rule->rules.u.ipv4_5tuple.dst_port_mask = in allocate_acl_ipv4_5tuple_rule()
464 rule->rules.u.ipv4_5tuple.dst_port = cls->ntuple_filter.dst_port; in allocate_acl_ipv4_5tuple_rule()
467 print_acl_ipv4_key_add(&rule->u.key.key_add); in allocate_acl_ipv4_5tuple_rule()
470 memcpy(&rule->u.key.key_del.field_value[PROTO_FIELD_IPV4], in allocate_acl_ipv4_5tuple_rule()
471 &rule->u.key.key_add.field_value[PROTO_FIELD_IPV4], in allocate_acl_ipv4_5tuple_rule()
475 print_acl_ipv4_key_delete(&rule->u.key.key_del); in allocate_acl_ipv4_5tuple_rule()
477 return rule; in allocate_acl_ipv4_5tuple_rule()
488 struct rte_flow_classify_rule *rule; in rte_flow_classify_table_entry_add() local
511 rule = allocate_acl_ipv4_5tuple_rule(cls); in rte_flow_classify_table_entry_add()
512 if (!rule) in rte_flow_classify_table_entry_add()
514 rule->tbl_type = table_type; in rte_flow_classify_table_entry_add()
522 table_entry = &rule->entry; in rte_flow_classify_table_entry_add()
523 table_entry->rule_id = rule->id; in rte_flow_classify_table_entry_add()
543 &rule->u.key.key_add, in rte_flow_classify_table_entry_add()
544 &rule->entry, in rte_flow_classify_table_entry_add()
545 &rule->key_found, in rte_flow_classify_table_entry_add()
546 &rule->entry_ptr); in rte_flow_classify_table_entry_add()
548 free(rule); in rte_flow_classify_table_entry_add()
552 *key_found = rule->key_found; in rte_flow_classify_table_entry_add()
555 return rule; in rte_flow_classify_table_entry_add()
558 free(rule); in rte_flow_classify_table_entry_add()
564 struct rte_flow_classify_rule *rule) in rte_flow_classify_table_entry_delete() argument
569 if (!cls || !rule) in rte_flow_classify_table_entry_delete()
571 enum rte_flow_classify_table_type tbl_type = rule->tbl_type; in rte_flow_classify_table_entry_delete()
579 &rule->u.key.key_del, in rte_flow_classify_table_entry_delete()
580 &rule->key_found, in rte_flow_classify_table_entry_delete()
581 &rule->entry); in rte_flow_classify_table_entry_delete()
587 free(rule); in rte_flow_classify_table_entry_delete()
616 struct rte_flow_classify_rule *rule, in action_apply() argument
620 struct rte_flow_classify_table_entry *entry = &rule->entry; in action_apply()
627 if (rule->id == cls->entries[i]->rule_id) in action_apply()
634 ntuple_stats->ipv4_5tuple = rule->rules.u.ipv4_5tuple; in action_apply()
644 struct rte_flow_classify_rule *rule, in rte_flow_classifier_query() argument
651 if (!cls || !rule || !stats || !pkts || nb_pkts == 0) in rte_flow_classifier_query()
654 tbl_type = rule->tbl_type; in rte_flow_classifier_query()
662 ret = action_apply(cls, rule, stats); in rte_flow_classifier_query()