Lines Matching defs:conn

45 	struct efx_tc_ct_entry *conn = ptr;
50 conn->cookie);
55 efx_tc_flower_release_counter(efx, conn->cnt);
56 kfree(conn);
94 struct efx_tc_ct_entry *conn)
147 conn->eth_proto = fm.key->n_proto;
148 if (conn->eth_proto != (ipv == 4 ? htons(ETH_P_IP)
152 ipv, ntohs(conn->eth_proto));
161 conn->ip_proto = fm.key->ip_proto;
162 switch (conn->ip_proto) {
171 conn->ip_proto);
190 conn->src_ip = fm.key->src;
197 conn->dst_ip = fm.key->dst;
208 conn->src_ip6 = fm.key->src;
215 conn->dst_ip6 = fm.key->dst;
232 conn->l4_sport = fm.key->src;
239 conn->l4_dport = fm.key->dst;
283 struct efx_tc_ct_entry *conn, *old;
294 conn = kzalloc(sizeof(*conn), GFP_USER);
295 if (!conn)
297 conn->cookie = tc->cookie;
299 &conn->linkage,
312 conn->zone = ct_zone;
313 rc = efx_tc_ct_parse_match(efx, fr, conn);
321 conn->mark = fa->ct_metadata.mark;
338 conn->nat_ip = conn->dnat ? conn->dst_ip : conn->src_ip;
339 conn->l4_natport = conn->dnat ? conn->l4_dport : conn->l4_sport;
346 conn->cnt = cnt;
348 rc = efx_mae_insert_ct(efx, conn);
355 list_add_tail(&conn->list, &ct_zone->cts);
359 if (conn->cnt)
360 efx_tc_flower_release_counter(efx, conn->cnt);
362 rhashtable_remove_fast(&efx->tc->ct_ht, &conn->linkage,
364 kfree(conn);
369 static void efx_tc_ct_remove(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
374 rc = efx_mae_remove_ct(efx, conn);
376 rhashtable_remove_fast(&efx->tc->ct_ht, &conn->linkage,
381 conn->cookie, rc);
384 conn->cookie);
388 static void efx_tc_ct_remove_finish(struct efx_nic *efx, struct efx_tc_ct_entry *conn)
390 /* Remove related CT counter. This is delayed after the conn object we
394 efx_tc_flower_release_counter(efx, conn->cnt);
395 kfree(conn);
402 struct efx_tc_ct_entry *conn;
404 conn = rhashtable_lookup_fast(&efx->tc->ct_ht, &tc->cookie,
406 if (!conn) {
413 list_del(&conn->list);
414 efx_tc_ct_remove(efx, conn);
417 efx_tc_ct_remove_finish(efx, conn);
425 struct efx_tc_ct_entry *conn;
429 conn = rhashtable_lookup_fast(&efx->tc->ct_ht, &tc->cookie,
431 if (!conn) {
438 cnt = conn->cnt;
519 struct efx_tc_ct_entry *conn, *next;
527 list_for_each_entry(conn, &ct_zone->cts, list)
528 efx_tc_ct_remove(efx, conn);
530 /* need to use _safe because efx_tc_ct_remove_finish() frees conn */
531 list_for_each_entry_safe(conn, next, &ct_zone->cts, list)
532 efx_tc_ct_remove_finish(efx, conn);