Lines Matching refs:nc

658 				    struct prestera_kern_neigh_cache *nc,
667 if (!nc) {
672 if (prestera_util_nhc_eq_n_cache_key(sw, nhc, &nc->key)) {
681 struct prestera_kern_neigh_cache *nc,
686 n = neigh_lookup(&arp_tbl, &nc->key.addr.u.ipv4,
687 nc->key.dev);
775 struct prestera_kern_neigh_cache *nc)
777 if (prestera_util_kern_n_is_reachable(l3mdev_fib_table(nc->key.dev),
778 &nc->key.addr, nc->key.dev))
779 nc->reachable = true;
781 nc->reachable = false;
787 struct prestera_kern_neigh_cache *nc)
792 memset(&nc->nh_neigh_info, 0, sizeof(nc->nh_neigh_info));
793 n = neigh_lookup(&arp_tbl, &nc->key.addr.u.ipv4, nc->key.dev);
799 err = prestera_neigh_iface_init(sw, &nc->nh_neigh_info.iface,
804 memcpy(&nc->nh_neigh_info.ha[0], &n->ha[0], ETH_ALEN);
805 nc->nh_neigh_info.connected = true;
810 nc->in_kernel = nc->nh_neigh_info.connected;
818 struct prestera_kern_neigh_cache *nc)
825 __prestera_k_arb_n_lpm_set(sw, nc, nc->reachable && nc->in_kernel);
826 __prestera_k_arb_n_offload_set(sw, nc, nc->reachable && nc->in_kernel);
828 prestera_util_nc_key2nh_key(&nc->key, &nh_key);
834 if (memcmp(&nc->nh_neigh_info, &nh_neigh->info,
836 memcpy(&nh_neigh->info, &nc->nh_neigh_info,
849 list_for_each_entry(nhead, &nc->kern_fib_cache_list, head) {
850 __prestera_k_arb_fib_nh_offload_set(sw, nhead->this, nc,
851 nc->in_kernel,
852 !nc->in_kernel);
1029 struct prestera_kern_neigh_cache *nc)
1036 prestera_util_nc_key2nh_key(&nc->key, &nh_key);
1040 &nc->key.addr.u.ipv4);
1047 if (!hw_active && nc->in_kernel)
1054 if (nc->key.addr.v == PRESTERA_IPV4) {
1055 n = neigh_lookup(&arp_tbl, &nc->key.addr.u.ipv4,
1056 nc->key.dev);
1058 n = neigh_create(&arp_tbl, &nc->key.addr.u.ipv4,
1059 nc->key.dev);
1068 pr_err("Cannot create neighbour %pI4n", &nc->key.addr.u.ipv4);