Lines Matching refs:encap
469 struct efx_tc_encap_match *encap) in efx_tc_flower_release_encap_match() argument
473 if (!refcount_dec_and_test(&encap->ref)) in efx_tc_flower_release_encap_match()
476 if (encap->type == EFX_TC_EM_DIRECT) { in efx_tc_flower_release_encap_match()
477 rc = efx_mae_unregister_encap_match(efx, encap); in efx_tc_flower_release_encap_match()
484 encap->fw_id, rc); in efx_tc_flower_release_encap_match()
486 rhashtable_remove_fast(&efx->tc->encap_match_ht, &encap->linkage, in efx_tc_flower_release_encap_match()
488 if (encap->pseudo) in efx_tc_flower_release_encap_match()
489 efx_tc_flower_release_encap_match(efx, encap->pseudo); in efx_tc_flower_release_encap_match()
490 kfree(encap); in efx_tc_flower_release_encap_match()
501 struct efx_tc_encap_match *encap, *old, *pseudo = NULL; in efx_tc_flower_record_encap_match() local
565 pseudo = pmatch.encap; in efx_tc_flower_record_encap_match()
578 encap = kzalloc(sizeof(*encap), GFP_USER); in efx_tc_flower_record_encap_match()
579 if (!encap) { in efx_tc_flower_record_encap_match()
583 encap->src_ip = match->value.enc_src_ip; in efx_tc_flower_record_encap_match()
584 encap->dst_ip = match->value.enc_dst_ip; in efx_tc_flower_record_encap_match()
586 encap->src_ip6 = match->value.enc_src_ip6; in efx_tc_flower_record_encap_match()
587 encap->dst_ip6 = match->value.enc_dst_ip6; in efx_tc_flower_record_encap_match()
589 encap->udp_dport = match->value.enc_dport; in efx_tc_flower_record_encap_match()
590 encap->tun_type = type; in efx_tc_flower_record_encap_match()
591 encap->ip_tos = match->value.enc_ip_tos; in efx_tc_flower_record_encap_match()
592 encap->ip_tos_mask = match->mask.enc_ip_tos; in efx_tc_flower_record_encap_match()
593 encap->child_ip_tos_mask = child_ip_tos_mask; in efx_tc_flower_record_encap_match()
594 encap->udp_sport = match->value.enc_sport; in efx_tc_flower_record_encap_match()
595 encap->udp_sport_mask = match->mask.enc_sport; in efx_tc_flower_record_encap_match()
596 encap->child_udp_sport_mask = child_udp_sport_mask; in efx_tc_flower_record_encap_match()
597 encap->type = em_type; in efx_tc_flower_record_encap_match()
598 encap->pseudo = pseudo; in efx_tc_flower_record_encap_match()
600 &encap->linkage, in efx_tc_flower_record_encap_match()
604 kfree(encap); in efx_tc_flower_record_encap_match()
662 encap = old; in efx_tc_flower_record_encap_match()
665 rc = efx_mae_register_encap_match(efx, encap); in efx_tc_flower_record_encap_match()
671 refcount_set(&encap->ref, 1); in efx_tc_flower_record_encap_match()
673 match->encap = encap; in efx_tc_flower_record_encap_match()
676 rhashtable_remove_fast(&efx->tc->encap_match_ht, &encap->linkage, in efx_tc_flower_record_encap_match()
678 kfree(encap); in efx_tc_flower_record_encap_match()
746 if (rule->match.encap) in efx_tc_delete_rule()
747 efx_tc_flower_release_encap_match(efx, rule->match.encap); in efx_tc_delete_rule()
1669 if (match.encap) in efx_tc_flower_replace_foreign()
1670 efx_tc_flower_release_encap_match(efx, match.encap); in efx_tc_flower_replace_foreign()
1983 struct efx_tc_encap_action *encap; in efx_tc_flower_replace() local
1991 encap = efx_tc_flower_create_encap_md( in efx_tc_flower_replace()
1993 if (IS_ERR_OR_NULL(encap)) { in efx_tc_flower_replace()
1994 rc = PTR_ERR(encap); in efx_tc_flower_replace()
1999 act->encap_md = encap; in efx_tc_flower_replace()
2000 list_add_tail(&act->encap_user, &encap->users); in efx_tc_flower_replace()
2001 act->dest_mport = encap->dest_mport; in efx_tc_flower_replace()
2244 if (lhs_rule->match.encap) in efx_tc_flower_destroy()
2245 efx_tc_flower_release_encap_match(efx, lhs_rule->match.encap); in efx_tc_flower_destroy()
2602 struct efx_tc_encap_match *encap = ptr; in efx_tc_encap_match_free() local
2604 WARN_ON(refcount_read(&encap->ref)); in efx_tc_encap_match_free()
2605 kfree(encap); in efx_tc_encap_match_free()