Lines Matching refs:e
579 struct prestera_acl_rule_entry *e) in __prestera_acl_rule_entry2hw_del() argument
581 return prestera_hw_vtcam_rule_del(sw, e->vtcam_id, e->hw_id); in __prestera_acl_rule_entry2hw_del()
585 struct prestera_acl_rule_entry *e) in __prestera_acl_rule_entry2hw_add() argument
594 if (e->accept.valid) { in __prestera_acl_rule_entry2hw_add()
599 if (e->drop.valid) { in __prestera_acl_rule_entry2hw_add()
604 if (e->trap.valid) { in __prestera_acl_rule_entry2hw_add()
609 if (e->police.valid) { in __prestera_acl_rule_entry2hw_add()
611 act_hw[act_num].police = e->police.i; in __prestera_acl_rule_entry2hw_add()
615 if (e->jump.valid) { in __prestera_acl_rule_entry2hw_add()
617 act_hw[act_num].jump = e->jump.i; in __prestera_acl_rule_entry2hw_add()
621 if (e->counter.block) { in __prestera_acl_rule_entry2hw_add()
623 act_hw[act_num].count.id = e->counter.id; in __prestera_acl_rule_entry2hw_add()
627 return prestera_hw_vtcam_rule_add(sw, e->vtcam_id, e->key.prio, in __prestera_acl_rule_entry2hw_add()
628 e->key.match.key, e->key.match.mask, in __prestera_acl_rule_entry2hw_add()
629 act_hw, act_num, &e->hw_id); in __prestera_acl_rule_entry2hw_add()
634 struct prestera_acl_rule_entry *e) in __prestera_acl_rule_entry_act_destruct() argument
637 prestera_counter_put(sw->counter, e->counter.block, e->counter.id); in __prestera_acl_rule_entry_act_destruct()
639 if (e->police.valid) in __prestera_acl_rule_entry_act_destruct()
640 prestera_hw_policer_release(sw, e->police.i.id); in __prestera_acl_rule_entry_act_destruct()
644 struct prestera_acl_rule_entry *e) in prestera_acl_rule_entry_destroy() argument
648 rhashtable_remove_fast(&acl->acl_rule_entry_ht, &e->ht_node, in prestera_acl_rule_entry_destroy()
651 ret = __prestera_acl_rule_entry2hw_del(acl->sw, e); in prestera_acl_rule_entry_destroy()
654 __prestera_acl_rule_entry_act_destruct(acl->sw, e); in prestera_acl_rule_entry_destroy()
655 kfree(e); in prestera_acl_rule_entry_destroy()
660 struct prestera_acl_rule_entry *e, in __prestera_acl_rule_entry_act_construct() argument
666 e->accept.valid = arg->accept.valid; in __prestera_acl_rule_entry_act_construct()
668 e->drop.valid = arg->drop.valid; in __prestera_acl_rule_entry_act_construct()
670 e->trap.valid = arg->trap.valid; in __prestera_acl_rule_entry_act_construct()
672 e->jump.valid = arg->jump.valid; in __prestera_acl_rule_entry_act_construct()
673 e->jump.i = arg->jump.i; in __prestera_acl_rule_entry_act_construct()
679 err = prestera_hw_policer_create(sw, type, &e->police.i.id); in __prestera_acl_rule_entry_act_construct()
683 err = prestera_hw_policer_sr_tcm_set(sw, e->police.i.id, in __prestera_acl_rule_entry_act_construct()
687 prestera_hw_policer_release(sw, e->police.i.id); in __prestera_acl_rule_entry_act_construct()
690 e->police.valid = arg->police.valid; in __prestera_acl_rule_entry_act_construct()
695 &e->counter.block, in __prestera_acl_rule_entry_act_construct()
696 &e->counter.id); in __prestera_acl_rule_entry_act_construct()
704 __prestera_acl_rule_entry_act_destruct(sw, e); in __prestera_acl_rule_entry_act_construct()
713 struct prestera_acl_rule_entry *e; in prestera_acl_rule_entry_create() local
716 e = kzalloc(sizeof(*e), GFP_KERNEL); in prestera_acl_rule_entry_create()
717 if (!e) in prestera_acl_rule_entry_create()
720 memcpy(&e->key, key, sizeof(*key)); in prestera_acl_rule_entry_create()
721 e->vtcam_id = arg->vtcam_id; in prestera_acl_rule_entry_create()
722 err = __prestera_acl_rule_entry_act_construct(acl->sw, e, arg); in prestera_acl_rule_entry_create()
726 err = __prestera_acl_rule_entry2hw_add(acl->sw, e); in prestera_acl_rule_entry_create()
730 err = rhashtable_insert_fast(&acl->acl_rule_entry_ht, &e->ht_node, in prestera_acl_rule_entry_create()
735 return e; in prestera_acl_rule_entry_create()
738 WARN_ON(__prestera_acl_rule_entry2hw_del(acl->sw, e)); in prestera_acl_rule_entry_create()
740 __prestera_acl_rule_entry_act_destruct(acl->sw, e); in prestera_acl_rule_entry_create()
742 kfree(e); in prestera_acl_rule_entry_create()