Lines Matching full:rule

72 			 * to ingress/egress in future. Ingress rule is  in mlxsw_sp_flower_parse_actions()
140 NL_SET_ERR_MSG_MOD(extack, "Multiple mirror actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
189 NL_SET_ERR_MSG_MOD(extack, "Multiple police actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
220 struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_meta() local
225 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_META)) in mlxsw_sp_flower_parse_meta()
228 flow_rule_match_meta(rule, &match); in mlxsw_sp_flower_parse_meta()
264 flow_rule_match_ipv4_addrs(f->rule, &match); in mlxsw_sp_flower_parse_ipv4()
279 flow_rule_match_ipv6_addrs(f->rule, &match); in mlxsw_sp_flower_parse_ipv6()
312 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_ports() local
315 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) in mlxsw_sp_flower_parse_ports()
324 flow_rule_match_ports(rule, &match); in mlxsw_sp_flower_parse_ports()
339 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_tcp() local
342 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_TCP)) in mlxsw_sp_flower_parse_tcp()
351 flow_rule_match_tcp(rule, &match); in mlxsw_sp_flower_parse_tcp()
370 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_ip() local
373 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) in mlxsw_sp_flower_parse_ip()
382 flow_rule_match_ip(rule, &match); in mlxsw_sp_flower_parse_ip()
403 struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse() local
404 struct flow_dissector *dissector = rule->match.dissector; in mlxsw_sp_flower_parse()
433 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_CONTROL)) { in mlxsw_sp_flower_parse()
436 flow_rule_match_control(rule, &match); in mlxsw_sp_flower_parse()
440 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) { in mlxsw_sp_flower_parse()
443 flow_rule_match_basic(rule, &match); in mlxsw_sp_flower_parse()
462 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { in mlxsw_sp_flower_parse()
465 flow_rule_match_eth_addrs(rule, &match); in mlxsw_sp_flower_parse()
484 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_VLAN)) { in mlxsw_sp_flower_parse()
487 flow_rule_match_vlan(rule, &match); in mlxsw_sp_flower_parse()
528 &f->rule->action, in mlxsw_sp_flower_parse()
566 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_replace() local
579 rule = mlxsw_sp_acl_rule_create(mlxsw_sp, ruleset, f->cookie, NULL, in mlxsw_sp_flower_replace()
581 if (IS_ERR(rule)) { in mlxsw_sp_flower_replace()
582 err = PTR_ERR(rule); in mlxsw_sp_flower_replace()
586 rulei = mlxsw_sp_acl_rule_rulei(rule); in mlxsw_sp_flower_replace()
595 err = mlxsw_sp_acl_rule_add(mlxsw_sp, rule); in mlxsw_sp_flower_replace()
605 mlxsw_sp_acl_rule_destroy(mlxsw_sp, rule); in mlxsw_sp_flower_replace()
616 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_destroy() local
624 rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie); in mlxsw_sp_flower_destroy()
625 if (rule) { in mlxsw_sp_flower_destroy()
626 mlxsw_sp_acl_rule_del(mlxsw_sp, rule); in mlxsw_sp_flower_destroy()
627 mlxsw_sp_acl_rule_destroy(mlxsw_sp, rule); in mlxsw_sp_flower_destroy()
639 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_stats() local
652 rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie); in mlxsw_sp_flower_stats()
653 if (!rule) in mlxsw_sp_flower_stats()
656 err = mlxsw_sp_acl_rule_get_stats(mlxsw_sp, rule, &packets, &bytes, in mlxsw_sp_flower_stats()