Lines Matching full:rule

113 			 * to ingress/egress in future. Ingress rule is  in mlxsw_sp_flower_parse_actions()
181 NL_SET_ERR_MSG_MOD(extack, "Multiple mirror actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
230 NL_SET_ERR_MSG_MOD(extack, "Multiple police actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
254 NL_SET_ERR_MSG_MOD(extack, "Multiple sample actions per rule are not supported"); in mlxsw_sp_flower_parse_actions()
288 struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_meta() local
293 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_META)) in mlxsw_sp_flower_parse_meta()
296 flow_rule_match_meta(rule, &match); in mlxsw_sp_flower_parse_meta()
332 flow_rule_match_ipv4_addrs(f->rule, &match); in mlxsw_sp_flower_parse_ipv4()
347 flow_rule_match_ipv6_addrs(f->rule, &match); in mlxsw_sp_flower_parse_ipv6()
380 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_ports() local
383 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) in mlxsw_sp_flower_parse_ports()
392 flow_rule_match_ports(rule, &match); in mlxsw_sp_flower_parse_ports()
407 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_tcp() local
410 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_TCP)) in mlxsw_sp_flower_parse_tcp()
419 flow_rule_match_tcp(rule, &match); in mlxsw_sp_flower_parse_tcp()
438 const struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse_ip() local
441 if (!flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) in mlxsw_sp_flower_parse_ip()
450 flow_rule_match_ip(rule, &match); in mlxsw_sp_flower_parse_ip()
471 struct flow_rule *rule = flow_cls_offload_flow_rule(f); in mlxsw_sp_flower_parse() local
472 struct flow_dissector *dissector = rule->match.dissector; in mlxsw_sp_flower_parse()
501 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_CONTROL)) { in mlxsw_sp_flower_parse()
504 flow_rule_match_control(rule, &match); in mlxsw_sp_flower_parse()
508 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) { in mlxsw_sp_flower_parse()
511 flow_rule_match_basic(rule, &match); in mlxsw_sp_flower_parse()
530 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { in mlxsw_sp_flower_parse()
533 flow_rule_match_eth_addrs(rule, &match); in mlxsw_sp_flower_parse()
552 if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_VLAN)) { in mlxsw_sp_flower_parse()
555 flow_rule_match_vlan(rule, &match); in mlxsw_sp_flower_parse()
597 &f->rule->action, in mlxsw_sp_flower_parse()
635 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_replace() local
648 rule = mlxsw_sp_acl_rule_create(mlxsw_sp, ruleset, f->cookie, NULL, in mlxsw_sp_flower_replace()
650 if (IS_ERR(rule)) { in mlxsw_sp_flower_replace()
651 err = PTR_ERR(rule); in mlxsw_sp_flower_replace()
655 rulei = mlxsw_sp_acl_rule_rulei(rule); in mlxsw_sp_flower_replace()
664 err = mlxsw_sp_acl_rule_add(mlxsw_sp, rule); in mlxsw_sp_flower_replace()
674 mlxsw_sp_acl_rule_destroy(mlxsw_sp, rule); in mlxsw_sp_flower_replace()
685 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_destroy() local
693 rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie); in mlxsw_sp_flower_destroy()
694 if (rule) { in mlxsw_sp_flower_destroy()
695 mlxsw_sp_acl_rule_del(mlxsw_sp, rule); in mlxsw_sp_flower_destroy()
696 mlxsw_sp_acl_rule_destroy(mlxsw_sp, rule); in mlxsw_sp_flower_destroy()
708 struct mlxsw_sp_acl_rule *rule; in mlxsw_sp_flower_stats() local
721 rule = mlxsw_sp_acl_rule_lookup(mlxsw_sp, ruleset, f->cookie); in mlxsw_sp_flower_stats()
722 if (!rule) in mlxsw_sp_flower_stats()
725 err = mlxsw_sp_acl_rule_get_stats(mlxsw_sp, rule, &packets, &bytes, in mlxsw_sp_flower_stats()