Lines Matching defs:rule

115 	struct flow_rule_entry *rule;
123 rule = &flow_rule_tbl[nb_flow_rule];
124 memset(rule, 0, sizeof(*rule));
135 rule->mark_val.id = atoi(tokens[ti]);
136 rule->enable_mark = true;
140 rule->is_eth = true;
145 rule->is_ipv4 = true;
153 if (ipv4_addr_cpy(&rule->ipv4.spec.hdr.src_addr,
154 &rule->ipv4.mask.hdr.src_addr,
162 if (ipv4_addr_cpy(&rule->ipv4.spec.hdr.dst_addr,
163 &rule->ipv4.mask.hdr.dst_addr,
170 rule->is_ipv6 = true;
178 if (ipv6_addr_cpy(&rule->ipv6.spec.hdr.src_addr,
179 &rule->ipv6.mask.hdr.src_addr,
187 if (ipv6_addr_cpy(&rule->ipv6.spec.hdr.dst_addr,
188 &rule->ipv6.mask.hdr.dst_addr,
203 rule->port = atoi(tokens[ti]);
215 rule->queue = atoi(tokens[ti]);
216 rule->is_queue_set = true;
221 rule->enable_count = true;
226 rule->set_security_action = true;
237 rule->set_mark_action = true;
238 rule->mark_action_val = atoi(tokens[ti]);
256 flow_init_single(struct flow_rule_entry *rule)
270 if (rule->is_queue_set) {
271 queue_action.index = rule->queue;
277 if (rule->enable_count) {
282 if (rule->set_security_action) {
288 if (rule->set_mark_action) {
289 mark_action.id = rule->mark_action_val;
298 if (rule->enable_mark) {
301 pattern[pattern_idx].spec = &rule->mark_val;
306 if (rule->is_eth) {
311 if (rule->is_ipv4) {
313 pattern[pattern_idx].spec = &rule->ipv4.spec;
314 pattern[pattern_idx].mask = &rule->ipv4.mask;
316 } else if (rule->is_ipv6) {
318 pattern[pattern_idx].spec = &rule->ipv6.spec;
319 pattern[pattern_idx].mask = &rule->ipv6.mask;
323 if (rule->set_security_action) {
333 ret = rte_flow_validate(rule->port, &attr, pattern, action, &err);
336 rule->flow = 0;
340 rule->flow = rte_flow_create(rule->port, &attr, pattern, action, &err);
341 if (rule->flow == NULL)
350 struct flow_rule_entry *rule;
357 rule = &flow_rule_tbl[i];
358 if (!rule->flow || !rule->enable_count)
364 ret = rte_flow_query(rule->port, rule->flow, &action,
370 rule->port, error.message);
373 if (rule->is_ipv4) {
375 ipv4_hdr_print(&rule->ipv4.spec.hdr);
377 if (rule->is_ipv6) {
379 ipv6_hdr_print(&rule->ipv6.spec.hdr);
382 if (rule->set_security_action)
385 if (rule->enable_mark)
388 printf(" Port: %d,", rule->port);
389 if (rule->is_queue_set)
390 printf(" Queue: %d", rule->queue);
398 struct flow_rule_entry *rule;
402 rule = &flow_rule_tbl[i];
403 flow_init_single(rule);
407 rule = &flow_rule_tbl[i];
409 if (rule->is_ipv4) {
411 ipv4_hdr_print(&rule->ipv4.spec.hdr);
414 ipv4_hdr_print(&rule->ipv4.mask.hdr);
416 if (rule->is_ipv6) {
418 ipv6_hdr_print(&rule->ipv6.spec.hdr);
421 ipv6_hdr_print(&rule->ipv6.mask.hdr);
424 if (rule->enable_mark)
427 printf("\tPort: %d,", rule->port);
428 if (rule->is_queue_set)
429 printf(" Queue: %d,", rule->queue);
431 if (rule->set_security_action)
434 if (rule->set_mark_action)
435 printf(" Mark: %d,", rule->mark_action_val);
437 if (rule->enable_count)
440 if (rule->flow == NULL)