Lines Matching refs:fib_cache
541 struct prestera_kern_fib_cache *fib_cache; in prestera_kern_fib_cache_find() local
543 fib_cache = in prestera_kern_fib_cache_find()
546 return fib_cache; in prestera_kern_fib_cache_find()
551 struct prestera_kern_fib_cache *fib_cache) in __prestera_kern_fib_cache_destruct() argument
557 n_cache = fib_cache->kern_neigh_cache_head[i].n_cache; in __prestera_kern_fib_cache_destruct()
559 list_del(&fib_cache->kern_neigh_cache_head[i].head); in __prestera_kern_fib_cache_destruct()
564 fib_info_put(fib_cache->fen4_info.fi); in __prestera_kern_fib_cache_destruct()
569 struct prestera_kern_fib_cache *fib_cache) in prestera_kern_fib_cache_destroy() argument
572 &fib_cache->ht_node, in prestera_kern_fib_cache_destroy()
574 __prestera_kern_fib_cache_destruct(sw, fib_cache); in prestera_kern_fib_cache_destroy()
575 kfree(fib_cache); in prestera_kern_fib_cache_destroy()
623 struct prestera_kern_fib_cache *fib_cache; in prestera_kern_fib_cache_create() local
626 fib_cache = kzalloc(sizeof(*fib_cache), GFP_KERNEL); in prestera_kern_fib_cache_create()
627 if (!fib_cache) in prestera_kern_fib_cache_create()
630 memcpy(&fib_cache->key, key, sizeof(*key)); in prestera_kern_fib_cache_create()
632 memcpy(&fib_cache->fen4_info, fen_info, sizeof(*fen_info)); in prestera_kern_fib_cache_create()
635 &fib_cache->ht_node, in prestera_kern_fib_cache_create()
641 err = __prestera_kern_fib_cache_create_nhs(sw, fib_cache); in prestera_kern_fib_cache_create()
646 return fib_cache; in prestera_kern_fib_cache_create()
650 kfree(fib_cache); in prestera_kern_fib_cache_create()
730 struct prestera_kern_fib_cache *fib_cache; in __prestera_k_arb_n_lpm_set() local
745 fib_cache = prestera_kern_fib_cache_find(sw, &fc_key); in __prestera_k_arb_n_lpm_set()
751 if (!fib_cache || !fib_cache->reachable) { in __prestera_k_arb_n_lpm_set()
1158 struct prestera_kern_fib_cache *fib_cache; in prestera_k_arb_fib_evt() local
1162 fib_cache = prestera_kern_fib_cache_find(sw, &fc_key); in prestera_k_arb_fib_evt()
1163 if (fib_cache) { in prestera_k_arb_fib_evt()
1164 fib_cache->reachable = false; in prestera_k_arb_fib_evt()
1165 err = __prestera_k_arb_fc_apply(sw, fib_cache); in prestera_k_arb_fib_evt()
1170 bfib_cache = __prestera_k_arb_util_fib_overlaps(sw, fib_cache); in prestera_k_arb_fib_evt()
1171 tfib_cache = __prestera_k_arb_util_fib_overlapped(sw, fib_cache); in prestera_k_arb_fib_evt()
1180 prestera_kern_fib_cache_destroy(sw, fib_cache); in prestera_k_arb_fib_evt()
1184 fib_cache = prestera_kern_fib_cache_create(sw, &fc_key, info); in prestera_k_arb_fib_evt()
1185 if (!fib_cache) { in prestera_k_arb_fib_evt()
1190 bfib_cache = __prestera_k_arb_util_fib_overlaps(sw, fib_cache); in prestera_k_arb_fib_evt()
1191 tfib_cache = __prestera_k_arb_util_fib_overlapped(sw, fib_cache); in prestera_k_arb_fib_evt()
1193 fib_cache->reachable = true; in prestera_k_arb_fib_evt()
1203 err = __prestera_k_arb_fc_apply(sw, fib_cache); in prestera_k_arb_fib_evt()
1234 struct prestera_kern_fib_cache *fib_cache = ptr; in __prestera_k_arb_abort_fib_ht_cb() local
1237 __prestera_k_arb_fib_lpm_offload_set(sw, fib_cache, in __prestera_k_arb_abort_fib_ht_cb()
1240 __prestera_k_arb_fib_nh_offload_set(sw, fib_cache, NULL, in __prestera_k_arb_abort_fib_ht_cb()
1245 __prestera_kern_fib_cache_destruct(sw, fib_cache); in __prestera_k_arb_abort_fib_ht_cb()
1246 kfree(fib_cache); in __prestera_k_arb_abort_fib_ht_cb()