Lines Matching refs:rule
414 struct rte_flow_classify_rule *rule; in allocate_acl_ipv4_5tuple_rule() local
416 rule = malloc(sizeof(struct rte_flow_classify_rule)); in allocate_acl_ipv4_5tuple_rule()
417 if (!rule) in allocate_acl_ipv4_5tuple_rule()
418 return rule; in allocate_acl_ipv4_5tuple_rule()
420 memset(rule, 0, sizeof(struct rte_flow_classify_rule)); in allocate_acl_ipv4_5tuple_rule()
421 rule->id = unique_id++; in allocate_acl_ipv4_5tuple_rule()
422 rule->rules.type = RTE_FLOW_CLASSIFY_RULE_TYPE_IPV4_5TUPLE; in allocate_acl_ipv4_5tuple_rule()
425 rule->u.key.key_add.priority = cls->ntuple_filter.priority; in allocate_acl_ipv4_5tuple_rule()
426 rule->u.key.key_add.field_value[PROTO_FIELD_IPV4].mask_range.u8 = in allocate_acl_ipv4_5tuple_rule()
428 rule->u.key.key_add.field_value[PROTO_FIELD_IPV4].value.u8 = in allocate_acl_ipv4_5tuple_rule()
430 rule->rules.u.ipv4_5tuple.proto = cls->ntuple_filter.proto; in allocate_acl_ipv4_5tuple_rule()
431 rule->rules.u.ipv4_5tuple.proto_mask = cls->ntuple_filter.proto_mask; in allocate_acl_ipv4_5tuple_rule()
433 rule->u.key.key_add.field_value[SRC_FIELD_IPV4].mask_range.u32 = in allocate_acl_ipv4_5tuple_rule()
435 rule->u.key.key_add.field_value[SRC_FIELD_IPV4].value.u32 = in allocate_acl_ipv4_5tuple_rule()
437 rule->rules.u.ipv4_5tuple.src_ip_mask = cls->ntuple_filter.src_ip_mask; in allocate_acl_ipv4_5tuple_rule()
438 rule->rules.u.ipv4_5tuple.src_ip = cls->ntuple_filter.src_ip; in allocate_acl_ipv4_5tuple_rule()
440 rule->u.key.key_add.field_value[DST_FIELD_IPV4].mask_range.u32 = in allocate_acl_ipv4_5tuple_rule()
442 rule->u.key.key_add.field_value[DST_FIELD_IPV4].value.u32 = in allocate_acl_ipv4_5tuple_rule()
444 rule->rules.u.ipv4_5tuple.dst_ip_mask = cls->ntuple_filter.dst_ip_mask; in allocate_acl_ipv4_5tuple_rule()
445 rule->rules.u.ipv4_5tuple.dst_ip = cls->ntuple_filter.dst_ip; in allocate_acl_ipv4_5tuple_rule()
447 rule->u.key.key_add.field_value[SRCP_FIELD_IPV4].mask_range.u16 = in allocate_acl_ipv4_5tuple_rule()
449 rule->u.key.key_add.field_value[SRCP_FIELD_IPV4].value.u16 = in allocate_acl_ipv4_5tuple_rule()
451 rule->rules.u.ipv4_5tuple.src_port_mask = in allocate_acl_ipv4_5tuple_rule()
453 rule->rules.u.ipv4_5tuple.src_port = cls->ntuple_filter.src_port; in allocate_acl_ipv4_5tuple_rule()
455 rule->u.key.key_add.field_value[DSTP_FIELD_IPV4].mask_range.u16 = in allocate_acl_ipv4_5tuple_rule()
457 rule->u.key.key_add.field_value[DSTP_FIELD_IPV4].value.u16 = in allocate_acl_ipv4_5tuple_rule()
459 rule->rules.u.ipv4_5tuple.dst_port_mask = in allocate_acl_ipv4_5tuple_rule()
461 rule->rules.u.ipv4_5tuple.dst_port = cls->ntuple_filter.dst_port; in allocate_acl_ipv4_5tuple_rule()
464 print_acl_ipv4_key_add(&rule->u.key.key_add); in allocate_acl_ipv4_5tuple_rule()
467 memcpy(&rule->u.key.key_del.field_value[PROTO_FIELD_IPV4], in allocate_acl_ipv4_5tuple_rule()
468 &rule->u.key.key_add.field_value[PROTO_FIELD_IPV4], in allocate_acl_ipv4_5tuple_rule()
472 print_acl_ipv4_key_delete(&rule->u.key.key_del); in allocate_acl_ipv4_5tuple_rule()
474 return rule; in allocate_acl_ipv4_5tuple_rule()
485 struct rte_flow_classify_rule *rule; in rte_flow_classify_table_entry_add() local
508 rule = allocate_acl_ipv4_5tuple_rule(cls); in rte_flow_classify_table_entry_add()
509 if (!rule) in rte_flow_classify_table_entry_add()
511 rule->tbl_type = table_type; in rte_flow_classify_table_entry_add()
519 table_entry = &rule->entry; in rte_flow_classify_table_entry_add()
520 table_entry->rule_id = rule->id; in rte_flow_classify_table_entry_add()
540 &rule->u.key.key_add, in rte_flow_classify_table_entry_add()
541 &rule->entry, in rte_flow_classify_table_entry_add()
542 &rule->key_found, in rte_flow_classify_table_entry_add()
543 &rule->entry_ptr); in rte_flow_classify_table_entry_add()
545 free(rule); in rte_flow_classify_table_entry_add()
549 *key_found = rule->key_found; in rte_flow_classify_table_entry_add()
552 return rule; in rte_flow_classify_table_entry_add()
555 free(rule); in rte_flow_classify_table_entry_add()
561 struct rte_flow_classify_rule *rule) in rte_flow_classify_table_entry_delete() argument
566 if (!cls || !rule) in rte_flow_classify_table_entry_delete()
568 enum rte_flow_classify_table_type tbl_type = rule->tbl_type; in rte_flow_classify_table_entry_delete()
576 &rule->u.key.key_del, in rte_flow_classify_table_entry_delete()
577 &rule->key_found, in rte_flow_classify_table_entry_delete()
578 &rule->entry); in rte_flow_classify_table_entry_delete()
580 free(rule); in rte_flow_classify_table_entry_delete()
613 struct rte_flow_classify_rule *rule, in action_apply() argument
617 struct rte_flow_classify_table_entry *entry = &rule->entry; in action_apply()
624 if (rule->id == cls->entries[i]->rule_id) in action_apply()
631 ntuple_stats->ipv4_5tuple = rule->rules.u.ipv4_5tuple; in action_apply()
641 struct rte_flow_classify_rule *rule, in rte_flow_classifier_query() argument
648 if (!cls || !rule || !stats || !pkts || nb_pkts == 0) in rte_flow_classifier_query()
651 tbl_type = rule->tbl_type; in rte_flow_classifier_query()
659 ret = action_apply(cls, rule, stats); in rte_flow_classifier_query()