Lines Matching full:rule

73 			 * to ingress/egress in future. Ingress rule is  in mlxsw_sp_flower_parse_actions()
141 NL_SET_ERR_MSG_MOD(extack, "Multiple mirror actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
190 NL_SET_ERR_MSG_MOD(extack, "Multiple police actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
215 NL_SET_ERR_MSG_MOD(extack, "Multiple sample actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
243 struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_meta() local
248 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_META)) in mlxsw_sp_flower_parse_meta()
251 flow_rule_match_meta(rule, &match); in mlxsw_sp_flower_parse_meta()
287 flow_rule_match_ipv4_addrs(f->rule, &match); in mlxsw_sp_flower_parse_ipv4()
302 flow_rule_match_ipv6_addrs(f->rule, &match); in mlxsw_sp_flower_parse_ipv6()
335 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_ports() local
338 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) in mlxsw_sp_flower_parse_ports()
347 flow_rule_match_ports(rule, &match); in mlxsw_sp_flower_parse_ports()
362 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_tcp() local
365 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_TCP)) in mlxsw_sp_flower_parse_tcp()
374 flow_rule_match_tcp(rule, &match); in mlxsw_sp_flower_parse_tcp()
393 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_ip() local
396 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) in mlxsw_sp_flower_parse_ip()
405 flow_rule_match_ip(rule, &match); in mlxsw_sp_flower_parse_ip()
426 struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse() local
427 struct flow_dissector *dissector = rule->match.dissector; in mlxsw_sp_flower_parse()
456 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_CONTROL)) { in mlxsw_sp_flower_parse()
459 flow_rule_match_control(rule, &match); in mlxsw_sp_flower_parse()
463 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) { in mlxsw_sp_flower_parse()
466 flow_rule_match_basic(rule, &match); in mlxsw_sp_flower_parse()
485 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { in mlxsw_sp_flower_parse()
488 flow_rule_match_eth_addrs(rule, &match); in mlxsw_sp_flower_parse()
507 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_VLAN)) { in mlxsw_sp_flower_parse()
510 flow_rule_match_vlan(rule, &match); in mlxsw_sp_flower_parse()
551 &f->rule->action, in mlxsw_sp_flower_parse()
589 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_replace() local
602 rule = mlxsw_sp_acl_rule_create(mlxsw_sp, ruleset, f->cookie, NULL, in mlxsw_sp_flower_replace()
604 if (IS_ERR(rule)) { in mlxsw_sp_flower_replace()
605 err = PTR_ERR(rule); in mlxsw_sp_flower_replace()
609 rulei = mlxsw_sp_acl_rule_rulei(rule); in mlxsw_sp_flower_replace()
618 err = mlxsw_sp_acl_rule_add(mlxsw_sp, rule); in mlxsw_sp_flower_replace()
628 mlxsw_sp_acl_rule_destroy(mlxsw_sp, rule); in mlxsw_sp_flower_replace()
639 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_destroy() local
647 rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie); in mlxsw_sp_flower_destroy()
648 if (rule) { in mlxsw_sp_flower_destroy()
649 mlxsw_sp_acl_rule_del(mlxsw_sp, rule); in mlxsw_sp_flower_destroy()
650 mlxsw_sp_acl_rule_destroy(mlxsw_sp, rule); in mlxsw_sp_flower_destroy()
662 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_stats() local
675 rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie); in mlxsw_sp_flower_stats()
676 if (!rule) in mlxsw_sp_flower_stats()
679 err = mlxsw_sp_acl_rule_get_stats(mlxsw_sp, rule, &packets, &bytes, in mlxsw_sp_flower_stats()