Lines Matching refs:rule
169 u16 prestera_acl_rule_ruleset_id_get(const struct prestera_acl_rule *rule) in prestera_acl_rule_ruleset_id_get() argument
171 return rule->block->ruleset->id; in prestera_acl_rule_ruleset_id_get()
196 struct prestera_acl_rule *rule; in prestera_acl_rule_create() local
198 rule = kzalloc(sizeof(*rule), GFP_KERNEL); in prestera_acl_rule_create()
199 if (!rule) in prestera_acl_rule_create()
202 INIT_LIST_HEAD(&rule->match_list); in prestera_acl_rule_create()
203 INIT_LIST_HEAD(&rule->action_list); in prestera_acl_rule_create()
204 rule->cookie = cookie; in prestera_acl_rule_create()
205 rule->block = block; in prestera_acl_rule_create()
207 return rule; in prestera_acl_rule_create()
211 prestera_acl_rule_match_list_get(struct prestera_acl_rule *rule) in prestera_acl_rule_match_list_get() argument
213 return &rule->match_list; in prestera_acl_rule_match_list_get()
217 prestera_acl_rule_action_list_get(struct prestera_acl_rule *rule) in prestera_acl_rule_action_list_get() argument
219 return &rule->action_list; in prestera_acl_rule_action_list_get()
222 int prestera_acl_rule_action_add(struct prestera_acl_rule *rule, in prestera_acl_rule_action_add() argument
232 list_add(&a_entry->list, &rule->action_list); in prestera_acl_rule_action_add()
234 rule->n_actions++; in prestera_acl_rule_action_add()
238 u8 prestera_acl_rule_action_len(struct prestera_acl_rule *rule) in prestera_acl_rule_action_len() argument
240 return rule->n_actions; in prestera_acl_rule_action_len()
243 u32 prestera_acl_rule_priority_get(struct prestera_acl_rule *rule) in prestera_acl_rule_priority_get() argument
245 return rule->priority; in prestera_acl_rule_priority_get()
248 void prestera_acl_rule_priority_set(struct prestera_acl_rule *rule, in prestera_acl_rule_priority_set() argument
251 rule->priority = priority; in prestera_acl_rule_priority_set()
254 int prestera_acl_rule_match_add(struct prestera_acl_rule *rule, in prestera_acl_rule_match_add() argument
264 list_add(&m_entry->list, &rule->match_list); in prestera_acl_rule_match_add()
266 rule->n_matches++; in prestera_acl_rule_match_add()
270 u8 prestera_acl_rule_match_len(struct prestera_acl_rule *rule) in prestera_acl_rule_match_len() argument
272 return rule->n_matches; in prestera_acl_rule_match_len()
275 void prestera_acl_rule_destroy(struct prestera_acl_rule *rule) in prestera_acl_rule_destroy() argument
281 list_for_each_safe(pos, n, &rule->match_list) { in prestera_acl_rule_destroy()
287 list_for_each_safe(pos, n, &rule->action_list) { in prestera_acl_rule_destroy()
293 kfree(rule); in prestera_acl_rule_destroy()
297 struct prestera_acl_rule *rule) in prestera_acl_rule_add() argument
303 err = rhashtable_insert_fast(&rule->block->ruleset->rule_ht, in prestera_acl_rule_add()
304 &rule->ht_node, in prestera_acl_rule_add()
310 err = prestera_hw_acl_rule_add(sw, rule, &rule_id); in prestera_acl_rule_add()
314 rule->id = rule_id; in prestera_acl_rule_add()
316 list_add_tail(&rule->list, &sw->acl->rules); in prestera_acl_rule_add()
321 rhashtable_remove_fast(&rule->block->ruleset->rule_ht, &rule->ht_node, in prestera_acl_rule_add()
327 struct prestera_acl_rule *rule) in prestera_acl_rule_del() argument
329 rhashtable_remove_fast(&rule->block->ruleset->rule_ht, &rule->ht_node, in prestera_acl_rule_del()
331 list_del(&rule->list); in prestera_acl_rule_del()
332 prestera_hw_acl_rule_del(sw, rule->id); in prestera_acl_rule_del()
336 struct prestera_acl_rule *rule, in prestera_acl_rule_get_stats() argument
343 err = prestera_hw_acl_rule_stats_get(sw, rule->id, ¤t_packets, in prestera_acl_rule_get_stats()