neigh 241 drivers/firewire/net.c static int fwnet_header_cache(const struct neighbour *neigh, neigh 249 drivers/firewire/net.c net = neigh->dev; neigh 252 drivers/firewire/net.c memcpy(h->h_dest, neigh->ha, net->addr_len); neigh 853 drivers/infiniband/core/addr.c struct neighbour *neigh = ctx; neigh 855 drivers/infiniband/core/addr.c if (neigh->nud_state & NUD_VALID) { neigh 4074 drivers/infiniband/hw/cxgb4/cm.c struct neighbour *neigh; neigh 4143 drivers/infiniband/hw/cxgb4/cm.c neigh = dst_neigh_lookup_skb(dst, skb); neigh 4145 drivers/infiniband/hw/cxgb4/cm.c if (!neigh) { neigh 4150 drivers/infiniband/hw/cxgb4/cm.c if (neigh->dev->flags & IFF_LOOPBACK) { neigh 4152 drivers/infiniband/hw/cxgb4/cm.c e = cxgb4_l2t_get(dev->rdev.lldi.l2t, neigh, neigh 4157 drivers/infiniband/hw/cxgb4/cm.c pdev = get_real_dev(neigh->dev); neigh 4158 drivers/infiniband/hw/cxgb4/cm.c e = cxgb4_l2t_get(dev->rdev.lldi.l2t, neigh, neigh 4162 drivers/infiniband/hw/cxgb4/cm.c neigh_release(neigh); neigh 1988 drivers/infiniband/hw/i40iw/i40iw_cm.c struct neighbour *neigh; neigh 1999 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh = dst_neigh_lookup(&rt->dst, &dst_ipaddr); neigh 2002 drivers/infiniband/hw/i40iw/i40iw_cm.c if (neigh) { neigh 2003 drivers/infiniband/hw/i40iw/i40iw_cm.c if (neigh->nud_state & NUD_VALID) { neigh 2006 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh->ha)) neigh 2016 drivers/infiniband/hw/i40iw/i40iw_cm.c i40iw_manage_arp_cache(iwdev, neigh->ha, &dst_ip, true, I40IW_ARP_ADD); neigh 2019 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh_event_send(neigh, NULL); neigh 2025 drivers/infiniband/hw/i40iw/i40iw_cm.c if (neigh) neigh 2026 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh_release(neigh); neigh 2062 drivers/infiniband/hw/i40iw/i40iw_cm.c struct neighbour *neigh; neigh 2084 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh = dst_neigh_lookup(dst, dst_addr.sin6_addr.in6_u.u6_addr32); neigh 2087 drivers/infiniband/hw/i40iw/i40iw_cm.c if (neigh) { neigh 2088 drivers/infiniband/hw/i40iw/i40iw_cm.c i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_CM, "dst_neigh_lookup MAC=%pM\n", neigh->ha); neigh 2089 drivers/infiniband/hw/i40iw/i40iw_cm.c if (neigh->nud_state & NUD_VALID) { neigh 2093 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh->ha)) { neigh 2104 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh->ha, neigh 2114 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh_event_send(neigh, NULL); neigh 2120 drivers/infiniband/hw/i40iw/i40iw_cm.c if (neigh) neigh 2121 drivers/infiniband/hw/i40iw/i40iw_cm.c neigh_release(neigh); neigh 276 drivers/infiniband/hw/i40iw/i40iw_utils.c struct neighbour *neigh = ptr; neigh 284 drivers/infiniband/hw/i40iw/i40iw_utils.c iwhdl = i40iw_find_netdev((struct net_device *)neigh->dev); neigh 290 drivers/infiniband/hw/i40iw/i40iw_utils.c p = (__be32 *)neigh->primary_key; neigh 292 drivers/infiniband/hw/i40iw/i40iw_utils.c if (neigh->nud_state & NUD_VALID) { neigh 294 drivers/infiniband/hw/i40iw/i40iw_utils.c neigh->ha, neigh 301 drivers/infiniband/hw/i40iw/i40iw_utils.c neigh->ha, neigh 437 drivers/infiniband/hw/qedr/qedr_iw_cm.c struct neighbour *neigh = NULL; neigh 447 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh = dst_neigh_lookup(&rt->dst, &dst_ip); neigh 449 drivers/infiniband/hw/qedr/qedr_iw_cm.c if (neigh) { neigh 451 drivers/infiniband/hw/qedr/qedr_iw_cm.c if (neigh->nud_state & NUD_VALID) { neigh 452 drivers/infiniband/hw/qedr/qedr_iw_cm.c ether_addr_copy(dst_mac, neigh->ha); neigh 455 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh_event_send(neigh, NULL); neigh 458 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh_release(neigh); neigh 471 drivers/infiniband/hw/qedr/qedr_iw_cm.c struct neighbour *neigh = NULL; neigh 491 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh = dst_neigh_lookup(dst, &fl6.daddr); neigh 492 drivers/infiniband/hw/qedr/qedr_iw_cm.c if (neigh) { neigh 494 drivers/infiniband/hw/qedr/qedr_iw_cm.c if (neigh->nud_state & NUD_VALID) { neigh 495 drivers/infiniband/hw/qedr/qedr_iw_cm.c ether_addr_copy(dst_mac, neigh->ha); neigh 498 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh_event_send(neigh, NULL); neigh 501 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh_release(neigh); neigh 250 drivers/infiniband/ulp/ipoib/ipoib.h struct ipoib_neigh *neigh; neigh 465 drivers/infiniband/ulp/ipoib/ipoib.h void ipoib_neigh_dtor(struct ipoib_neigh *neigh); neigh 466 drivers/infiniband/ulp/ipoib/ipoib.h static inline void ipoib_neigh_put(struct ipoib_neigh *neigh) neigh 468 drivers/infiniband/ulp/ipoib/ipoib.h if (atomic_dec_and_test(&neigh->refcnt)) neigh 469 drivers/infiniband/ulp/ipoib/ipoib.h ipoib_neigh_dtor(neigh); neigh 474 drivers/infiniband/ulp/ipoib/ipoib.h void ipoib_neigh_free(struct ipoib_neigh *neigh); neigh 638 drivers/infiniband/ulp/ipoib/ipoib.h static inline int ipoib_cm_up(struct ipoib_neigh *neigh) neigh 641 drivers/infiniband/ulp/ipoib/ipoib.h return test_bit(IPOIB_FLAG_OPER_UP, &neigh->cm->flags); neigh 644 drivers/infiniband/ulp/ipoib/ipoib.h static inline struct ipoib_cm_tx *ipoib_cm_get(struct ipoib_neigh *neigh) neigh 646 drivers/infiniband/ulp/ipoib/ipoib.h return neigh->cm; neigh 649 drivers/infiniband/ulp/ipoib/ipoib.h static inline void ipoib_cm_set(struct ipoib_neigh *neigh, struct ipoib_cm_tx *tx) neigh 651 drivers/infiniband/ulp/ipoib/ipoib.h neigh->cm = tx; neigh 673 drivers/infiniband/ulp/ipoib/ipoib.h struct ipoib_neigh *neigh); neigh 695 drivers/infiniband/ulp/ipoib/ipoib.h static inline int ipoib_cm_up(struct ipoib_neigh *neigh) neigh 701 drivers/infiniband/ulp/ipoib/ipoib.h static inline struct ipoib_cm_tx *ipoib_cm_get(struct ipoib_neigh *neigh) neigh 706 drivers/infiniband/ulp/ipoib/ipoib.h static inline void ipoib_cm_set(struct ipoib_neigh *neigh, struct ipoib_cm_tx *tx) neigh 752 drivers/infiniband/ulp/ipoib/ipoib.h struct ipoib_neigh *neigh) neigh 834 drivers/infiniband/ulp/ipoib/ipoib_cm.c struct ipoib_neigh *neigh; neigh 850 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh = tx->neigh; neigh 852 drivers/infiniband/ulp/ipoib/ipoib_cm.c if (neigh) { neigh 853 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh->cm = NULL; neigh 854 drivers/infiniband/ulp/ipoib/ipoib_cm.c ipoib_neigh_free(neigh); neigh 856 drivers/infiniband/ulp/ipoib/ipoib_cm.c tx->neigh = NULL; neigh 1035 drivers/infiniband/ulp/ipoib/ipoib_cm.c if (p->neigh) neigh 1036 drivers/infiniband/ulp/ipoib/ipoib_cm.c while ((skb = __skb_dequeue(&p->neigh->queue))) neigh 1259 drivers/infiniband/ulp/ipoib/ipoib_cm.c struct ipoib_neigh *neigh; neigh 1281 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh = tx->neigh; neigh 1283 drivers/infiniband/ulp/ipoib/ipoib_cm.c if (neigh) { neigh 1284 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh->cm = NULL; neigh 1285 drivers/infiniband/ulp/ipoib/ipoib_cm.c ipoib_neigh_free(neigh); neigh 1287 drivers/infiniband/ulp/ipoib/ipoib_cm.c tx->neigh = NULL; neigh 1306 drivers/infiniband/ulp/ipoib/ipoib_cm.c struct ipoib_neigh *neigh) neigh 1315 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh->cm = tx; neigh 1316 drivers/infiniband/ulp/ipoib/ipoib_cm.c tx->neigh = neigh; neigh 1333 drivers/infiniband/ulp/ipoib/ipoib_cm.c tx->neigh->daddr + 4); neigh 1334 drivers/infiniband/ulp/ipoib/ipoib_cm.c tx->neigh = NULL; neigh 1346 drivers/infiniband/ulp/ipoib/ipoib_cm.c struct ipoib_neigh *neigh; neigh 1361 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh = p->neigh; neigh 1363 drivers/infiniband/ulp/ipoib/ipoib_cm.c qpn = IPOIB_QPN(neigh->daddr); neigh 1368 drivers/infiniband/ulp/ipoib/ipoib_cm.c path = __path_find(dev, neigh->daddr + QPN_AND_OPTIONS_OFFSET); neigh 1372 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh->daddr + QPN_AND_OPTIONS_OFFSET); neigh 1387 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh = p->neigh; neigh 1388 drivers/infiniband/ulp/ipoib/ipoib_cm.c if (neigh) { neigh 1389 drivers/infiniband/ulp/ipoib/ipoib_cm.c neigh->cm = NULL; neigh 1390 drivers/infiniband/ulp/ipoib/ipoib_cm.c ipoib_neigh_free(neigh); neigh 750 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh, *tn; neigh 806 drivers/infiniband/ulp/ipoib/ipoib_main.c list_for_each_entry_safe(neigh, tn, &path->neigh_list, list) { neigh 807 drivers/infiniband/ulp/ipoib/ipoib_main.c if (neigh->ah) { neigh 808 drivers/infiniband/ulp/ipoib/ipoib_main.c WARN_ON(neigh->ah != old_ah); neigh 816 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_put_ah(neigh->ah); neigh 819 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->ah = path->ah; neigh 821 drivers/infiniband/ulp/ipoib/ipoib_main.c if (ipoib_cm_enabled(dev, neigh->daddr)) { neigh 822 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!ipoib_cm_get(neigh)) neigh 823 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_cm_set(neigh, ipoib_cm_create_tx(dev, neigh 825 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh)); neigh 826 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!ipoib_cm_get(neigh)) { neigh 827 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_free(neigh); neigh 832 drivers/infiniband/ulp/ipoib/ipoib_main.c while ((skb = __skb_dequeue(&neigh->queue))) neigh 928 drivers/infiniband/ulp/ipoib/ipoib_main.c static void neigh_refresh_path(struct ipoib_neigh *neigh, u8 *daddr, neigh 952 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 956 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = ipoib_neigh_alloc(daddr, dev); neigh 957 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!neigh) { neigh 967 drivers/infiniband/ulp/ipoib/ipoib_main.c if (unlikely(!list_empty(&neigh->list))) { neigh 969 drivers/infiniband/ulp/ipoib/ipoib_main.c return neigh; neigh 981 drivers/infiniband/ulp/ipoib/ipoib_main.c list_add_tail(&neigh->list, &path->neigh_list); neigh 985 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->ah = path->ah; neigh 987 drivers/infiniband/ulp/ipoib/ipoib_main.c if (ipoib_cm_enabled(dev, neigh->daddr)) { neigh 988 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!ipoib_cm_get(neigh)) neigh 989 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_cm_set(neigh, ipoib_cm_create_tx(dev, path, neigh)); neigh 990 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!ipoib_cm_get(neigh)) { neigh 991 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_free(neigh); neigh 994 drivers/infiniband/ulp/ipoib/ipoib_main.c if (skb_queue_len(&neigh->queue) < neigh 996 drivers/infiniband/ulp/ipoib/ipoib_main.c push_pseudo_header(skb, neigh->daddr); neigh 997 drivers/infiniband/ulp/ipoib/ipoib_main.c __skb_queue_tail(&neigh->queue, skb); neigh 1000 drivers/infiniband/ulp/ipoib/ipoib_main.c skb_queue_len(&neigh->queue)); neigh 1007 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_put(neigh); neigh 1011 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->ah = NULL; neigh 1015 drivers/infiniband/ulp/ipoib/ipoib_main.c if (skb_queue_len(&neigh->queue) < IPOIB_MAX_PATH_REC_QUEUE) { neigh 1016 drivers/infiniband/ulp/ipoib/ipoib_main.c push_pseudo_header(skb, neigh->daddr); neigh 1017 drivers/infiniband/ulp/ipoib/ipoib_main.c __skb_queue_tail(&neigh->queue, skb); neigh 1024 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_put(neigh); neigh 1028 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_free(neigh); neigh 1034 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_put(neigh); neigh 1098 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 1123 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = ipoib_neigh_get(dev, phdr->hwaddr); neigh 1124 drivers/infiniband/ulp/ipoib/ipoib_main.c if (likely(neigh)) neigh 1135 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = ipoib_neigh_get(dev, phdr->hwaddr); neigh 1136 drivers/infiniband/ulp/ipoib/ipoib_main.c if (unlikely(!neigh)) { neigh 1137 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = neigh_add_path(skb, phdr->hwaddr, dev); neigh 1138 drivers/infiniband/ulp/ipoib/ipoib_main.c if (likely(!neigh)) neigh 1156 drivers/infiniband/ulp/ipoib/ipoib_main.c if (ipoib_cm_get(neigh)) { neigh 1157 drivers/infiniband/ulp/ipoib/ipoib_main.c if (ipoib_cm_up(neigh)) { neigh 1158 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_cm_send(dev, skb, ipoib_cm_get(neigh)); neigh 1161 drivers/infiniband/ulp/ipoib/ipoib_main.c } else if (neigh->ah && neigh->ah->valid) { neigh 1162 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->ah->last_send = rn->send(dev, skb, neigh->ah->ah, neigh 1165 drivers/infiniband/ulp/ipoib/ipoib_main.c } else if (neigh->ah) { neigh 1166 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh_refresh_path(neigh, phdr->hwaddr, dev); neigh 1169 drivers/infiniband/ulp/ipoib/ipoib_main.c if (skb_queue_len(&neigh->queue) < IPOIB_MAX_PATH_REC_QUEUE) { neigh 1172 drivers/infiniband/ulp/ipoib/ipoib_main.c __skb_queue_tail(&neigh->queue, skb); neigh 1180 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_put(neigh); neigh 1268 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh = NULL; neigh 1279 drivers/infiniband/ulp/ipoib/ipoib_main.c for (neigh = rcu_dereference_bh(htbl->buckets[hash_val]); neigh 1280 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh != NULL; neigh 1281 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = rcu_dereference_bh(neigh->hnext)) { neigh 1282 drivers/infiniband/ulp/ipoib/ipoib_main.c if (memcmp(daddr, neigh->daddr, INFINIBAND_ALEN) == 0) { neigh 1284 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!atomic_inc_not_zero(&neigh->refcnt)) { neigh 1286 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = NULL; neigh 1290 drivers/infiniband/ulp/ipoib/ipoib_main.c if (likely(skb_queue_len(&neigh->queue) < IPOIB_MAX_PATH_REC_QUEUE)) neigh 1291 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->alive = jiffies; neigh 1298 drivers/infiniband/ulp/ipoib/ipoib_main.c return neigh; neigh 1324 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 1327 drivers/infiniband/ulp/ipoib/ipoib_main.c while ((neigh = rcu_dereference_protected(*np, neigh 1330 drivers/infiniband/ulp/ipoib/ipoib_main.c if (time_after(neigh_obsolete, neigh->alive)) { neigh 1332 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_check_and_add_mcast_sendonly(priv, neigh->daddr + 4, &remove_list); neigh 1335 drivers/infiniband/ulp/ipoib/ipoib_main.c rcu_dereference_protected(neigh->hnext, neigh 1338 drivers/infiniband/ulp/ipoib/ipoib_main.c list_del_init(&neigh->list); neigh 1339 drivers/infiniband/ulp/ipoib/ipoib_main.c call_rcu(&neigh->rcu, ipoib_neigh_reclaim); neigh 1341 drivers/infiniband/ulp/ipoib/ipoib_main.c np = &neigh->hnext; neigh 1367 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 1369 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = kzalloc(sizeof(*neigh), GFP_ATOMIC); neigh 1370 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!neigh) neigh 1373 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->dev = dev; neigh 1374 drivers/infiniband/ulp/ipoib/ipoib_main.c memcpy(&neigh->daddr, daddr, sizeof(neigh->daddr)); neigh 1375 drivers/infiniband/ulp/ipoib/ipoib_main.c skb_queue_head_init(&neigh->queue); neigh 1376 drivers/infiniband/ulp/ipoib/ipoib_main.c INIT_LIST_HEAD(&neigh->list); neigh 1377 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_cm_set(neigh, NULL); neigh 1379 drivers/infiniband/ulp/ipoib/ipoib_main.c atomic_set(&neigh->refcnt, 1); neigh 1381 drivers/infiniband/ulp/ipoib/ipoib_main.c return neigh; neigh 1390 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 1396 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = NULL; neigh 1404 drivers/infiniband/ulp/ipoib/ipoib_main.c for (neigh = rcu_dereference_protected(htbl->buckets[hash_val], neigh 1406 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh != NULL; neigh 1407 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = rcu_dereference_protected(neigh->hnext, neigh 1409 drivers/infiniband/ulp/ipoib/ipoib_main.c if (memcmp(daddr, neigh->daddr, INFINIBAND_ALEN) == 0) { neigh 1411 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!atomic_inc_not_zero(&neigh->refcnt)) { neigh 1413 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = NULL; neigh 1416 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->alive = jiffies; neigh 1421 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh = ipoib_neigh_ctor(daddr, dev); neigh 1422 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!neigh) neigh 1426 drivers/infiniband/ulp/ipoib/ipoib_main.c atomic_inc(&neigh->refcnt); neigh 1427 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->alive = jiffies; neigh 1429 drivers/infiniband/ulp/ipoib/ipoib_main.c rcu_assign_pointer(neigh->hnext, neigh 1432 drivers/infiniband/ulp/ipoib/ipoib_main.c rcu_assign_pointer(htbl->buckets[hash_val], neigh); neigh 1437 drivers/infiniband/ulp/ipoib/ipoib_main.c return neigh; neigh 1440 drivers/infiniband/ulp/ipoib/ipoib_main.c void ipoib_neigh_dtor(struct ipoib_neigh *neigh) neigh 1443 drivers/infiniband/ulp/ipoib/ipoib_main.c struct net_device *dev = neigh->dev; neigh 1446 drivers/infiniband/ulp/ipoib/ipoib_main.c if (neigh->ah) neigh 1447 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_put_ah(neigh->ah); neigh 1448 drivers/infiniband/ulp/ipoib/ipoib_main.c while ((skb = __skb_dequeue(&neigh->queue))) { neigh 1452 drivers/infiniband/ulp/ipoib/ipoib_main.c if (ipoib_cm_get(neigh)) neigh 1453 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_cm_destroy_tx(ipoib_cm_get(neigh)); neigh 1456 drivers/infiniband/ulp/ipoib/ipoib_main.c IPOIB_QPN(neigh->daddr), neigh 1457 drivers/infiniband/ulp/ipoib/ipoib_main.c neigh->daddr + 4); neigh 1458 drivers/infiniband/ulp/ipoib/ipoib_main.c kfree(neigh); neigh 1468 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh = container_of(rp, struct ipoib_neigh, rcu); neigh 1470 drivers/infiniband/ulp/ipoib/ipoib_main.c ipoib_neigh_put(neigh); neigh 1473 drivers/infiniband/ulp/ipoib/ipoib_main.c void ipoib_neigh_free(struct ipoib_neigh *neigh) neigh 1475 drivers/infiniband/ulp/ipoib/ipoib_main.c struct net_device *dev = neigh->dev; neigh 1488 drivers/infiniband/ulp/ipoib/ipoib_main.c hash_val = ipoib_addr_hash(htbl, neigh->daddr); neigh 1495 drivers/infiniband/ulp/ipoib/ipoib_main.c if (n == neigh) { neigh 1498 drivers/infiniband/ulp/ipoib/ipoib_main.c rcu_dereference_protected(neigh->hnext, neigh 1501 drivers/infiniband/ulp/ipoib/ipoib_main.c list_del_init(&neigh->list); neigh 1502 drivers/infiniband/ulp/ipoib/ipoib_main.c call_rcu(&neigh->rcu, ipoib_neigh_reclaim); neigh 1573 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 1576 drivers/infiniband/ulp/ipoib/ipoib_main.c while ((neigh = rcu_dereference_protected(*np, neigh 1579 drivers/infiniband/ulp/ipoib/ipoib_main.c if (!memcmp(gid, neigh->daddr + 4, sizeof (union ib_gid))) { neigh 1581 drivers/infiniband/ulp/ipoib/ipoib_main.c rcu_dereference_protected(neigh->hnext, neigh 1584 drivers/infiniband/ulp/ipoib/ipoib_main.c list_del_init(&neigh->list); neigh 1585 drivers/infiniband/ulp/ipoib/ipoib_main.c call_rcu(&neigh->rcu, ipoib_neigh_reclaim); neigh 1587 drivers/infiniband/ulp/ipoib/ipoib_main.c np = &neigh->hnext; neigh 1618 drivers/infiniband/ulp/ipoib/ipoib_main.c struct ipoib_neigh *neigh; neigh 1621 drivers/infiniband/ulp/ipoib/ipoib_main.c while ((neigh = rcu_dereference_protected(*np, neigh 1624 drivers/infiniband/ulp/ipoib/ipoib_main.c rcu_dereference_protected(neigh->hnext, neigh 1627 drivers/infiniband/ulp/ipoib/ipoib_main.c list_del_init(&neigh->list); neigh 1628 drivers/infiniband/ulp/ipoib/ipoib_main.c call_rcu(&neigh->rcu, ipoib_neigh_reclaim); neigh 812 drivers/infiniband/ulp/ipoib/ipoib_multicast.c struct ipoib_neigh *neigh; neigh 815 drivers/infiniband/ulp/ipoib/ipoib_multicast.c neigh = ipoib_neigh_get(dev, daddr); neigh 817 drivers/infiniband/ulp/ipoib/ipoib_multicast.c if (!neigh) { neigh 818 drivers/infiniband/ulp/ipoib/ipoib_multicast.c neigh = ipoib_neigh_alloc(daddr, dev); neigh 822 drivers/infiniband/ulp/ipoib/ipoib_multicast.c if (neigh && list_empty(&neigh->list)) { neigh 824 drivers/infiniband/ulp/ipoib/ipoib_multicast.c neigh->ah = mcast->ah; neigh 825 drivers/infiniband/ulp/ipoib/ipoib_multicast.c neigh->ah->valid = 1; neigh 826 drivers/infiniband/ulp/ipoib/ipoib_multicast.c list_add_tail(&neigh->list, &mcast->neigh_list); neigh 832 drivers/infiniband/ulp/ipoib/ipoib_multicast.c if (neigh) neigh 833 drivers/infiniband/ulp/ipoib/ipoib_multicast.c ipoib_neigh_put(neigh); neigh 66 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c static void cxgb_neigh_update(struct neighbour *neigh); neigh 68 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c struct neighbour *neigh, const void *daddr); neigh 488 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c static void dummy_neigh_update(struct t3cdev *dev, struct neighbour *neigh) neigh 972 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c cxgb_redirect(nr->old, nr->new, nr->neigh, neigh 974 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c cxgb_neigh_update(nr->neigh); neigh 1073 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c static void cxgb_neigh_update(struct neighbour *neigh) neigh 1077 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c if (!neigh) neigh 1079 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c dev = neigh->dev; neigh 1084 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c t3_l2t_update(tdev, neigh); neigh 1111 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c struct neighbour *neigh, neigh 1122 drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c dev = neigh->dev; neigh 77 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (e->neigh) neigh 78 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_release(e->neigh); neigh 79 drivers/net/ethernet/chelsio/cxgb3/l2t.c e->neigh = n; neigh 105 drivers/net/ethernet/chelsio/cxgb3/l2t.c memcpy(e->dmac, e->neigh->ha, sizeof(e->dmac)); neigh 134 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_event_send(e->neigh, NULL); neigh 160 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (!neigh_event_send(e->neigh, NULL)) { neigh 184 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_event_send(e->neigh, NULL); neigh 210 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_event_send(e->neigh, NULL); neigh 268 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (e->neigh) { neigh 269 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_release(e->neigh); neigh 270 drivers/net/ethernet/chelsio/cxgb3/l2t.c e->neigh = NULL; neigh 283 drivers/net/ethernet/chelsio/cxgb3/l2t.c static inline void reuse_entry(struct l2t_entry *e, struct neighbour *neigh) neigh 289 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (neigh != e->neigh) neigh 290 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_replace(e, neigh); neigh 291 drivers/net/ethernet/chelsio/cxgb3/l2t.c nud_state = neigh->nud_state; neigh 292 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (memcmp(e->dmac, neigh->ha, sizeof(e->dmac)) || neigh 306 drivers/net/ethernet/chelsio/cxgb3/l2t.c struct neighbour *neigh; neigh 315 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh = dst_neigh_lookup(dst, daddr); neigh 316 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (!neigh) neigh 319 drivers/net/ethernet/chelsio/cxgb3/l2t.c addr = *(u32 *) neigh->primary_key; neigh 320 drivers/net/ethernet/chelsio/cxgb3/l2t.c ifidx = neigh->dev->ifindex; neigh 323 drivers/net/ethernet/chelsio/cxgb3/l2t.c dev = neigh->dev; neigh 339 drivers/net/ethernet/chelsio/cxgb3/l2t.c reuse_entry(e, neigh); neigh 354 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_replace(e, neigh); neigh 355 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (is_vlan_dev(neigh->dev)) neigh 356 drivers/net/ethernet/chelsio/cxgb3/l2t.c e->vlan = vlan_dev_vlan_id(neigh->dev); neigh 364 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (neigh) neigh 365 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_release(neigh); neigh 399 drivers/net/ethernet/chelsio/cxgb3/l2t.c void t3_l2t_update(struct t3cdev *dev, struct neighbour *neigh) neigh 404 drivers/net/ethernet/chelsio/cxgb3/l2t.c u32 addr = *(u32 *) neigh->primary_key; neigh 405 drivers/net/ethernet/chelsio/cxgb3/l2t.c int ifidx = neigh->dev->ifindex; neigh 422 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (neigh != e->neigh) neigh 423 drivers/net/ethernet/chelsio/cxgb3/l2t.c neigh_replace(e, neigh); neigh 426 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (neigh->nud_state & NUD_FAILED) { neigh 428 drivers/net/ethernet/chelsio/cxgb3/l2t.c } else if (neigh->nud_state & (NUD_CONNECTED|NUD_STALE)) neigh 431 drivers/net/ethernet/chelsio/cxgb3/l2t.c e->state = neigh->nud_state & NUD_CONNECTED ? neigh 433 drivers/net/ethernet/chelsio/cxgb3/l2t.c if (!ether_addr_equal(e->dmac, neigh->ha)) neigh 64 drivers/net/ethernet/chelsio/cxgb3/l2t.h struct neighbour *neigh; /* associated neighbour */ neigh 111 drivers/net/ethernet/chelsio/cxgb3/l2t.h void t3_l2t_update(struct t3cdev *dev, struct neighbour *neigh); neigh 61 drivers/net/ethernet/chelsio/cxgb3/t3cdev.h void (*neigh_update)(struct t3cdev *dev, struct neighbour *neigh); neigh 1974 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c static void check_neigh_update(struct neighbour *neigh) neigh 1977 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c const struct net_device *netdev = neigh->dev; neigh 1983 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c t4_l2t_update(dev_get_drvdata(parent), neigh); neigh 129 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (e->neigh) neigh 130 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_release(e->neigh); neigh 131 drivers/net/ethernet/chelsio/cxgb4/l2t.c e->neigh = n; neigh 158 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (e->neigh && !(e->neigh->dev->flags & IFF_LOOPBACK)) neigh 159 drivers/net/ethernet/chelsio/cxgb4/l2t.c memcpy(e->dmac, e->neigh->ha, sizeof(e->dmac)); neigh 205 drivers/net/ethernet/chelsio/cxgb4/l2t.c e->state = (e->neigh->nud_state & NUD_STALE) ? neigh 229 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_event_send(e->neigh, NULL); neigh 249 drivers/net/ethernet/chelsio/cxgb4/l2t.c !neigh_event_send(e->neigh, NULL)) { neigh 357 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (e->neigh) { neigh 358 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_release(e->neigh); neigh 359 drivers/net/ethernet/chelsio/cxgb4/l2t.c e->neigh = NULL; neigh 377 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (e->neigh) { neigh 378 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_release(e->neigh); neigh 379 drivers/net/ethernet/chelsio/cxgb4/l2t.c e->neigh = NULL; neigh 401 drivers/net/ethernet/chelsio/cxgb4/l2t.c static void reuse_entry(struct l2t_entry *e, struct neighbour *neigh) neigh 406 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (neigh != e->neigh) neigh 407 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_replace(e, neigh); neigh 408 drivers/net/ethernet/chelsio/cxgb4/l2t.c nud_state = neigh->nud_state; neigh 409 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (memcmp(e->dmac, neigh->ha, sizeof(e->dmac)) || neigh 419 drivers/net/ethernet/chelsio/cxgb4/l2t.c struct l2t_entry *cxgb4_l2t_get(struct l2t_data *d, struct neighbour *neigh, neigh 426 drivers/net/ethernet/chelsio/cxgb4/l2t.c unsigned int addr_len = neigh->tbl->key_len; neigh 427 drivers/net/ethernet/chelsio/cxgb4/l2t.c u32 *addr = (u32 *)neigh->primary_key; neigh 428 drivers/net/ethernet/chelsio/cxgb4/l2t.c int ifidx = neigh->dev->ifindex; neigh 431 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (neigh->dev->flags & IFF_LOOPBACK) neigh 436 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (is_vlan_dev(neigh->dev)) { neigh 437 drivers/net/ethernet/chelsio/cxgb4/l2t.c vlan = vlan_dev_vlan_id(neigh->dev); neigh 438 drivers/net/ethernet/chelsio/cxgb4/l2t.c vlan |= vlan_dev_get_egress_qos_mask(neigh->dev, priority); neigh 449 drivers/net/ethernet/chelsio/cxgb4/l2t.c reuse_entry(e, neigh); neigh 458 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (neigh->dev->flags & IFF_LOOPBACK) neigh 466 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_replace(e, neigh); neigh 534 drivers/net/ethernet/chelsio/cxgb4/l2t.c void t4_l2t_update(struct adapter *adap, struct neighbour *neigh) neigh 539 drivers/net/ethernet/chelsio/cxgb4/l2t.c unsigned int addr_len = neigh->tbl->key_len; neigh 540 drivers/net/ethernet/chelsio/cxgb4/l2t.c u32 *addr = (u32 *) neigh->primary_key; neigh 541 drivers/net/ethernet/chelsio/cxgb4/l2t.c int ifidx = neigh->dev->ifindex; neigh 559 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (neigh != e->neigh) neigh 560 drivers/net/ethernet/chelsio/cxgb4/l2t.c neigh_replace(e, neigh); neigh 563 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (neigh->nud_state & NUD_FAILED) { neigh 565 drivers/net/ethernet/chelsio/cxgb4/l2t.c } else if ((neigh->nud_state & (NUD_CONNECTED | NUD_STALE)) && neigh 570 drivers/net/ethernet/chelsio/cxgb4/l2t.c e->state = neigh->nud_state & NUD_CONNECTED ? neigh 572 drivers/net/ethernet/chelsio/cxgb4/l2t.c if (memcmp(e->dmac, neigh->ha, sizeof(e->dmac))) neigh 726 drivers/net/ethernet/chelsio/cxgb4/l2t.c e->neigh ? e->neigh->dev->name : ""); neigh 78 drivers/net/ethernet/chelsio/cxgb4/l2t.h struct neighbour *neigh; /* associated neighbour */ neigh 113 drivers/net/ethernet/chelsio/cxgb4/l2t.h struct l2t_entry *cxgb4_l2t_get(struct l2t_data *d, struct neighbour *neigh, neigh 120 drivers/net/ethernet/chelsio/cxgb4/l2t.h void t4_l2t_update(struct adapter *adap, struct neighbour *neigh); neigh 113 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c struct neighbour *neigh = neigh_lookup(tbl, pkey, dev); neigh 116 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c if (!neigh) { neigh 117 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c neigh = neigh_create(tbl, pkey, dev); neigh 118 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c if (IS_ERR(neigh)) neigh 119 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c return PTR_ERR(neigh); neigh 122 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c neigh_event_send(neigh, NULL); neigh 124 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c read_lock_bh(&neigh->lock); neigh 125 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c if ((neigh->nud_state & NUD_VALID) && !neigh->dead) neigh 126 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c memcpy(dmac, neigh->ha, ETH_ALEN); neigh 129 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c read_unlock_bh(&neigh->lock); neigh 131 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c neigh_release(neigh); neigh 291 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c struct flowi4 *flow, struct neighbour *neigh, gfp_t flag) neigh 304 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c if (!(neigh->nud_state & NUD_VALID) || neigh->dead) { neigh 307 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c neigh_event_send(neigh, NULL); neigh 314 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c neigh_ha_snapshot(payload.dst_addr, neigh, netdev); neigh 340 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c n = redir->neigh; neigh 149 drivers/net/plip/plip.c static int plip_hard_header_cache(const struct neighbour *neigh, neigh 1035 drivers/net/plip/plip.c static int plip_hard_header_cache(const struct neighbour *neigh, neigh 1040 drivers/net/plip/plip.c ret = eth_header_cache(neigh, hh, type); neigh 1046 drivers/net/plip/plip.c plip_rewrite_address (neigh->dev, eth); neigh 366 drivers/net/vrf.c struct neighbour *neigh; neigh 376 drivers/net/vrf.c neigh = __ipv6_neigh_lookup_noref(dst->dev, nexthop); neigh 377 drivers/net/vrf.c if (unlikely(!neigh)) neigh 378 drivers/net/vrf.c neigh = __neigh_create(&nd_tbl, nexthop, dst->dev, false); neigh 379 drivers/net/vrf.c if (!IS_ERR(neigh)) { neigh 380 drivers/net/vrf.c sock_confirm_neigh(skb, neigh); neigh 381 drivers/net/vrf.c ret = neigh_output(neigh, skb, false); neigh 560 drivers/net/vrf.c struct neighbour *neigh; neigh 584 drivers/net/vrf.c neigh = ip_neigh_for_gw(rt, skb, &is_v6gw); neigh 585 drivers/net/vrf.c if (!IS_ERR(neigh)) { neigh 586 drivers/net/vrf.c sock_confirm_neigh(skb, neigh); neigh 588 drivers/net/vrf.c ret = neigh_output(neigh, skb, is_v6gw); neigh 38 include/linux/etherdevice.h int eth_header_cache(const struct neighbour *neigh, struct hh_cache *hh, neigh 270 include/linux/netdevice.h int (*cache)(const struct neighbour *neigh, struct hh_cache *hh, __be16 type); neigh 42 include/net/atmclip.h struct neighbour *neigh; /* neighbour back-pointer */ neigh 210 include/net/ndisc.h struct neighbour *neigh, u8 *ha_buf, neigh 266 include/net/ndisc.h struct neighbour *neigh, neigh 271 include/net/ndisc.h neigh, ha_buf, ha); neigh 342 include/net/ndisc.h struct neighbour *neigh, neigh 348 include/net/ndisc.h ndisc_ops_redirect_opt_addr_space(dev, neigh, ops_data_buf, neigh 444 include/net/ndisc.h struct neighbour *neigh; neigh 446 include/net/ndisc.h neigh = __ipv6_neigh_lookup_noref_stub(dev, addr); neigh 447 include/net/ndisc.h if (unlikely(!neigh)) neigh 448 include/net/ndisc.h neigh = __neigh_create(ipv6_stub->nd_tbl, addr, dev, false); neigh 450 include/net/ndisc.h return neigh; neigh 476 include/net/ndisc.h void ndisc_update(const struct net_device *dev, struct neighbour *neigh, neigh 325 include/net/neighbour.h void neigh_destroy(struct neighbour *neigh); neigh 326 include/net/neighbour.h int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb); neigh 327 include/net/neighbour.h int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, u32 flags, neigh 329 include/net/neighbour.h void __neigh_set_probe_once(struct neighbour *neigh); neigh 334 include/net/neighbour.h int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb); neigh 335 include/net/neighbour.h int neigh_connected_output(struct neighbour *neigh, struct sk_buff *skb); neigh 336 include/net/neighbour.h int neigh_direct_output(struct neighbour *neigh, struct sk_buff *skb); neigh 422 include/net/neighbour.h static inline void neigh_release(struct neighbour *neigh) neigh 424 include/net/neighbour.h if (refcount_dec_and_test(&neigh->refcnt)) neigh 425 include/net/neighbour.h neigh_destroy(neigh); neigh 428 include/net/neighbour.h static inline struct neighbour * neigh_clone(struct neighbour *neigh) neigh 430 include/net/neighbour.h if (neigh) neigh 431 include/net/neighbour.h refcount_inc(&neigh->refcnt); neigh 432 include/net/neighbour.h return neigh; neigh 437 include/net/neighbour.h static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) neigh 441 include/net/neighbour.h if (READ_ONCE(neigh->used) != now) neigh 442 include/net/neighbour.h WRITE_ONCE(neigh->used, now); neigh 443 include/net/neighbour.h if (!(neigh->nud_state&(NUD_CONNECTED|NUD_DELAY|NUD_PROBE))) neigh 444 include/net/neighbour.h return __neigh_event_send(neigh, skb); neigh 557 include/net/neighbour.h static inline void neigh_update_is_router(struct neighbour *neigh, u32 flags, neigh 563 include/net/neighbour.h if ((neigh->flags ^ ndm_flags) & NTF_ROUTER) { neigh 565 include/net/neighbour.h neigh->flags |= NTF_ROUTER; neigh 567 include/net/neighbour.h neigh->flags &= ~NTF_ROUTER; neigh 21 include/net/netevent.h struct neighbour *neigh; neigh 360 include/net/route.h struct neighbour *neigh; neigh 362 include/net/route.h neigh = __ipv4_neigh_lookup_noref(dev, daddr); neigh 363 include/net/route.h if (unlikely(!neigh)) neigh 364 include/net/route.h neigh = __neigh_create(&arp_tbl, &daddr, dev, false); neigh 366 include/net/route.h return neigh; neigh 374 include/net/route.h struct neighbour *neigh; neigh 377 include/net/route.h neigh = ip_neigh_gw4(dev, rt->rt_gw4); neigh 379 include/net/route.h neigh = ip_neigh_gw6(dev, &rt->rt_gw6); neigh 382 include/net/route.h neigh = ip_neigh_gw4(dev, ip_hdr(skb)->daddr); neigh 384 include/net/route.h return neigh; neigh 2 include/trace/events/neigh.h #define TRACE_SYSTEM neigh neigh 228 include/trace/events/neigh.h TP_PROTO(struct neighbour *neigh, int err), neigh 229 include/trace/events/neigh.h TP_ARGS(neigh, err) neigh 233 include/trace/events/neigh.h TP_PROTO(struct neighbour *neigh, int err), neigh 234 include/trace/events/neigh.h TP_ARGS(neigh, err) neigh 238 include/trace/events/neigh.h TP_PROTO(struct neighbour *neigh, int err), neigh 239 include/trace/events/neigh.h TP_ARGS(neigh, err) neigh 243 include/trace/events/neigh.h TP_PROTO(struct neighbour *neigh, int err), neigh 244 include/trace/events/neigh.h TP_ARGS(neigh, err) neigh 248 include/trace/events/neigh.h TP_PROTO(struct neighbour *neigh, int rc), neigh 249 include/trace/events/neigh.h TP_ARGS(neigh, rc) neigh 97 lib/cpu_rmap.c int neigh; neigh 99 lib/cpu_rmap.c for_each_cpu(neigh, mask) { neigh 101 lib/cpu_rmap.c rmap->near[neigh].dist <= dist) { neigh 102 lib/cpu_rmap.c rmap->near[cpu].index = rmap->near[neigh].index; neigh 60 net/6lowpan/ndisc.c struct lowpan_802154_neigh *neigh = lowpan_802154_neigh(neighbour_priv(n)); neigh 95 net/6lowpan/ndisc.c ieee802154_be16_to_le16(&neigh->short_addr, lladdr_short); neigh 96 net/6lowpan/ndisc.c if (!lowpan_802154_is_valid_src_short_addr(neigh->short_addr)) neigh 97 net/6lowpan/ndisc.c neigh->short_addr = cpu_to_le16(IEEE802154_ADDR_SHORT_UNSPEC); neigh 115 net/6lowpan/ndisc.c u8 icmp6_type, struct neighbour *neigh, neigh 127 net/6lowpan/ndisc.c n = lowpan_802154_neigh(neighbour_priv(neigh)); neigh 129 net/6lowpan/ndisc.c read_lock_bh(&neigh->lock); neigh 133 net/6lowpan/ndisc.c read_unlock_bh(&neigh->lock); neigh 137 net/6lowpan/ndisc.c read_unlock_bh(&neigh->lock); neigh 78 net/atm/clip.c pr_debug("%p to entry %p (neigh %p)\n", clip_vcc, entry, entry->neigh); neigh 83 net/atm/clip.c entry->neigh->used = jiffies; neigh 95 net/atm/clip.c netif_tx_lock_bh(entry->neigh->dev); /* block clip_start_xmit() */ neigh 96 net/atm/clip.c entry->neigh->used = jiffies; neigh 104 net/atm/clip.c netif_wake_queue(entry->neigh->dev); neigh 109 net/atm/clip.c error = neigh_update(entry->neigh, NULL, NUD_NONE, neigh 117 net/atm/clip.c netif_tx_unlock_bh(entry->neigh->dev); neigh 211 net/atm/clip.c skb->dev = clip_vcc->entry ? clip_vcc->entry->neigh->dev : clip_devs; neigh 266 net/atm/clip.c static void clip_neigh_solicit(struct neighbour *neigh, struct sk_buff *skb) neigh 268 net/atm/clip.c __be32 *ip = (__be32 *) neigh->primary_key; neigh 270 net/atm/clip.c pr_debug("(neigh %p, skb %p)\n", neigh, skb); neigh 271 net/atm/clip.c to_atmarpd(act_need, PRIV(neigh->dev)->number, *ip); neigh 274 net/atm/clip.c static void clip_neigh_error(struct neighbour *neigh, struct sk_buff *skb) neigh 290 net/atm/clip.c static int clip_constructor(struct net_device *dev, struct neighbour *neigh) neigh 292 net/atm/clip.c struct atmarp_entry *entry = neighbour_priv(neigh); neigh 294 net/atm/clip.c if (neigh->tbl->family != AF_INET) neigh 297 net/atm/clip.c if (neigh->type != RTN_UNICAST) neigh 300 net/atm/clip.c neigh->nud_state = NUD_NONE; neigh 301 net/atm/clip.c neigh->ops = &clip_neigh_ops; neigh 302 net/atm/clip.c neigh->output = neigh->ops->output; neigh 303 net/atm/clip.c entry->neigh = neigh; neigh 367 net/atm/clip.c if (entry->neigh->arp_queue.qlen < ATMARP_MAX_UNRES_PACKETS) neigh 368 net/atm/clip.c skb_queue_tail(&entry->neigh->arp_queue, skb); neigh 446 net/atm/clip.c struct neighbour *neigh; neigh 469 net/atm/clip.c neigh = __neigh_lookup(&arp_tbl, &ip, rt->dst.dev, 1); neigh 471 net/atm/clip.c if (!neigh) neigh 473 net/atm/clip.c entry = neighbour_priv(neigh); neigh 483 net/atm/clip.c error = neigh_update(neigh, llc_oui, NUD_PERMANENT, neigh 485 net/atm/clip.c neigh_release(neigh); neigh 750 net/atm/clip.c exp = entry->neigh->used; neigh 770 net/atm/clip.c refcount_read(&entry->neigh->refcnt)); neigh 163 net/atm/proc.c dev = clip_vcc->entry ? clip_vcc->entry->neigh->dev : NULL; neigh 74 net/batman-adv/bat_algo.c !bat_algo_ops->neigh.cmp || neigh 75 net/batman-adv/bat_algo.c !bat_algo_ops->neigh.is_similar_or_better) { neigh 2745 net/batman-adv/bat_iv_ogm.c .neigh = { neigh 1045 net/batman-adv/bat_v.c .neigh = { neigh 65 net/batman-adv/bat_v_elp.c static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh) neigh 67 net/batman-adv/bat_v_elp.c struct batadv_hard_iface *hard_iface = neigh->if_incoming; neigh 93 net/batman-adv/bat_v_elp.c ret = cfg80211_get_station(real_netdev, neigh->addr, &sinfo); neigh 170 net/batman-adv/bat_v_elp.c struct batadv_hardif_neigh_node *neigh; neigh 174 net/batman-adv/bat_v_elp.c neigh = container_of(neigh_bat_v, struct batadv_hardif_neigh_node, neigh 177 net/batman-adv/bat_v_elp.c ewma_throughput_add(&neigh->bat_v.throughput, neigh 178 net/batman-adv/bat_v_elp.c batadv_v_elp_get_throughput(neigh)); neigh 183 net/batman-adv/bat_v_elp.c batadv_hardif_neigh_put(neigh); neigh 198 net/batman-adv/bat_v_elp.c batadv_v_elp_wifi_neigh_probe(struct batadv_hardif_neigh_node *neigh) neigh 200 net/batman-adv/bat_v_elp.c struct batadv_hard_iface *hard_iface = neigh->if_incoming; neigh 218 net/batman-adv/bat_v_elp.c last_tx_diff = jiffies_to_msecs(jiffies - neigh->bat_v.last_unicast_tx); neigh 241 net/batman-adv/bat_v_elp.c hard_iface->net_dev->name, neigh->addr); neigh 243 net/batman-adv/bat_v_elp.c batadv_send_skb_packet(skb, hard_iface, neigh->addr); neigh 459 net/batman-adv/bat_v_elp.c struct batadv_neigh_node *neigh; neigh 469 net/batman-adv/bat_v_elp.c neigh = batadv_neigh_node_get_or_create(orig_neigh, neigh 471 net/batman-adv/bat_v_elp.c if (!neigh) neigh 487 net/batman-adv/bat_v_elp.c neigh->last_seen = jiffies; neigh 496 net/batman-adv/bat_v_elp.c if (neigh) neigh 497 net/batman-adv/bat_v_elp.c batadv_neigh_node_put(neigh); neigh 443 net/batman-adv/originator.c batadv_neigh_ifinfo_get(struct batadv_neigh_node *neigh, neigh 450 net/batman-adv/originator.c hlist_for_each_entry_rcu(tmp_neigh_ifinfo, &neigh->ifinfo_list, neigh 478 net/batman-adv/originator.c batadv_neigh_ifinfo_new(struct batadv_neigh_node *neigh, neigh 483 net/batman-adv/originator.c spin_lock_bh(&neigh->ifinfo_lock); neigh 485 net/batman-adv/originator.c neigh_ifinfo = batadv_neigh_ifinfo_get(neigh, if_outgoing); neigh 501 net/batman-adv/originator.c hlist_add_head_rcu(&neigh_ifinfo->list, &neigh->ifinfo_list); neigh 504 net/batman-adv/originator.c spin_unlock_bh(&neigh->ifinfo_lock); neigh 582 net/batman-adv/originator.c if (bat_priv->algo_ops->neigh.hardif_init) neigh 583 net/batman-adv/originator.c bat_priv->algo_ops->neigh.hardif_init(hardif_neigh); neigh 761 net/batman-adv/originator.c if (!bat_priv->algo_ops->neigh.print) { neigh 767 net/batman-adv/originator.c bat_priv->algo_ops->neigh.print(bat_priv, seq); neigh 827 net/batman-adv/originator.c if (!bat_priv->algo_ops->neigh.dump) { neigh 832 net/batman-adv/originator.c bat_priv->algo_ops->neigh.dump(msg, cb, bat_priv, hardif); neigh 1084 net/batman-adv/originator.c struct batadv_neigh_node *neigh) neigh 1090 net/batman-adv/originator.c spin_lock_bh(&neigh->ifinfo_lock); neigh 1094 net/batman-adv/originator.c &neigh->ifinfo_list, list) { neigh 1109 net/batman-adv/originator.c neigh->addr, if_outgoing->net_dev->name); neigh 1115 net/batman-adv/originator.c spin_unlock_bh(&neigh->ifinfo_lock); neigh 1241 net/batman-adv/originator.c struct batadv_neigh_node *best = NULL, *neigh; neigh 1245 net/batman-adv/originator.c hlist_for_each_entry_rcu(neigh, &orig_node->neigh_list, list) { neigh 1246 net/batman-adv/originator.c if (best && (bao->neigh.cmp(neigh, if_outgoing, best, neigh 1250 net/batman-adv/originator.c if (!kref_get_unless_zero(&neigh->refcount)) neigh 1256 net/batman-adv/originator.c best = neigh; neigh 41 net/batman-adv/originator.h batadv_neigh_ifinfo_new(struct batadv_neigh_node *neigh, neigh 44 net/batman-adv/originator.h batadv_neigh_ifinfo_get(struct batadv_neigh_node *neigh, neigh 598 net/batman-adv/routing.c if (!bao->neigh.is_similar_or_better(cand_router, neigh 140 net/batman-adv/send.c struct batadv_neigh_node *neigh) neigh 147 net/batman-adv/send.c ret = batadv_send_skb_packet(skb, neigh->if_incoming, neigh->addr); neigh 150 net/batman-adv/send.c hardif_neigh = batadv_hardif_neigh_get(neigh->if_incoming, neigh->addr); neigh 1862 net/batman-adv/translation-table.c bao->neigh.cmp(router, BATADV_IF_DEFAULT, best_router, neigh 2213 net/batman-adv/types.h void (*hardif_init)(struct batadv_hardif_neigh_node *neigh); neigh 2317 net/batman-adv/types.h struct batadv_algo_neigh_ops neigh; neigh 167 net/bluetooth/6lowpan.c struct neighbour *neigh; neigh 209 net/bluetooth/6lowpan.c neigh = __ipv6_neigh_lookup(dev->netdev, nexthop); neigh 210 net/bluetooth/6lowpan.c if (neigh) { neigh 212 net/bluetooth/6lowpan.c if (!memcmp(neigh->ha, peer->lladdr, ETH_ALEN)) { neigh 213 net/bluetooth/6lowpan.c neigh_release(neigh); neigh 218 net/bluetooth/6lowpan.c neigh_release(neigh); neigh 268 net/bridge/br_netfilter_hooks.c struct neighbour *neigh; neigh 275 net/bridge/br_netfilter_hooks.c neigh = dst_neigh_lookup_skb(dst, skb); neigh 276 net/bridge/br_netfilter_hooks.c if (neigh) { neigh 280 net/bridge/br_netfilter_hooks.c if ((neigh->nud_state & NUD_CONNECTED) && neigh->hh.hh_len) { neigh 281 net/bridge/br_netfilter_hooks.c neigh_hh_bridge(&neigh->hh, skb); neigh 296 net/bridge/br_netfilter_hooks.c ret = neigh->output(neigh, skb); neigh 298 net/bridge/br_netfilter_hooks.c neigh_release(neigh); neigh 4600 net/core/filter.c const struct neighbour *neigh, neigh 4603 net/core/filter.c memcpy(params->dmac, neigh->ha, ETH_ALEN); neigh 4619 net/core/filter.c struct neighbour *neigh; neigh 4711 net/core/filter.c neigh = __ipv4_neigh_lookup_noref(dev, neigh 4718 net/core/filter.c neigh = __ipv6_neigh_lookup_noref_stub(dev, dst); neigh 4721 net/core/filter.c if (!neigh) neigh 4724 net/core/filter.c return bpf_fib_set_fwd_params(params, neigh, dev); neigh 4735 net/core/filter.c struct neighbour *neigh; neigh 4832 net/core/filter.c neigh = __ipv6_neigh_lookup_noref_stub(dev, dst); neigh 4833 net/core/filter.c if (!neigh) neigh 4836 net/core/filter.c return bpf_fib_set_fwd_params(params, neigh, dev); neigh 57 net/core/neighbour.c static void neigh_update_notify(struct neighbour *neigh, u32 nlmsg_pid); neigh 93 net/core/neighbour.c static int neigh_blackhole(struct neighbour *neigh, struct sk_buff *skb) neigh 99 net/core/neighbour.c static void neigh_cleanup_and_release(struct neighbour *neigh) neigh 101 net/core/neighbour.c trace_neigh_cleanup_and_release(neigh, 0); neigh 102 net/core/neighbour.c __neigh_notify(neigh, RTM_DELNEIGH, 0, 0); neigh 103 net/core/neighbour.c call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh); neigh 104 net/core/neighbour.c neigh_release(neigh); neigh 155 net/core/neighbour.c static bool neigh_update_ext_learned(struct neighbour *neigh, u32 flags, neigh 165 net/core/neighbour.c if ((neigh->flags ^ ndm_flags) & NTF_EXT_LEARNED) { neigh 167 net/core/neighbour.c neigh->flags |= NTF_EXT_LEARNED; neigh 169 net/core/neighbour.c neigh->flags &= ~NTF_EXT_LEARNED; neigh 184 net/core/neighbour.c struct neighbour *neigh; neigh 186 net/core/neighbour.c neigh = rcu_dereference_protected(n->next, neigh 188 net/core/neighbour.c rcu_assign_pointer(*np, neigh); neigh 828 net/core/neighbour.c void neigh_destroy(struct neighbour *neigh) neigh 830 net/core/neighbour.c struct net_device *dev = neigh->dev; neigh 832 net/core/neighbour.c NEIGH_CACHE_STAT_INC(neigh->tbl, destroys); neigh 834 net/core/neighbour.c if (!neigh->dead) { neigh 835 net/core/neighbour.c pr_warn("Destroying alive neighbour %p\n", neigh); neigh 840 net/core/neighbour.c if (neigh_del_timer(neigh)) neigh 843 net/core/neighbour.c write_lock_bh(&neigh->lock); neigh 844 net/core/neighbour.c __skb_queue_purge(&neigh->arp_queue); neigh 845 net/core/neighbour.c write_unlock_bh(&neigh->lock); neigh 846 net/core/neighbour.c neigh->arp_queue_len_bytes = 0; neigh 849 net/core/neighbour.c dev->netdev_ops->ndo_neigh_destroy(dev, neigh); neigh 852 net/core/neighbour.c neigh_parms_put(neigh->parms); neigh 854 net/core/neighbour.c neigh_dbg(2, "neigh %p is destroyed\n", neigh); neigh 856 net/core/neighbour.c atomic_dec(&neigh->tbl->entries); neigh 857 net/core/neighbour.c kfree_rcu(neigh, rcu); neigh 866 net/core/neighbour.c static void neigh_suspect(struct neighbour *neigh) neigh 868 net/core/neighbour.c neigh_dbg(2, "neigh %p is suspected\n", neigh); neigh 870 net/core/neighbour.c neigh->output = neigh->ops->output; neigh 878 net/core/neighbour.c static void neigh_connect(struct neighbour *neigh) neigh 880 net/core/neighbour.c neigh_dbg(2, "neigh %p is connected\n", neigh); neigh 882 net/core/neighbour.c neigh->output = neigh->ops->connected_output; neigh 975 net/core/neighbour.c static void neigh_invalidate(struct neighbour *neigh) neigh 976 net/core/neighbour.c __releases(neigh->lock) neigh 977 net/core/neighbour.c __acquires(neigh->lock) neigh 981 net/core/neighbour.c NEIGH_CACHE_STAT_INC(neigh->tbl, res_failed); neigh 982 net/core/neighbour.c neigh_dbg(2, "neigh %p is failed\n", neigh); neigh 983 net/core/neighbour.c neigh->updated = jiffies; neigh 990 net/core/neighbour.c while (neigh->nud_state == NUD_FAILED && neigh 991 net/core/neighbour.c (skb = __skb_dequeue(&neigh->arp_queue)) != NULL) { neigh 992 net/core/neighbour.c write_unlock(&neigh->lock); neigh 993 net/core/neighbour.c neigh->ops->error_report(neigh, skb); neigh 994 net/core/neighbour.c write_lock(&neigh->lock); neigh 996 net/core/neighbour.c __skb_queue_purge(&neigh->arp_queue); neigh 997 net/core/neighbour.c neigh->arp_queue_len_bytes = 0; neigh 1000 net/core/neighbour.c static void neigh_probe(struct neighbour *neigh) neigh 1001 net/core/neighbour.c __releases(neigh->lock) neigh 1003 net/core/neighbour.c struct sk_buff *skb = skb_peek_tail(&neigh->arp_queue); neigh 1007 net/core/neighbour.c write_unlock(&neigh->lock); neigh 1008 net/core/neighbour.c if (neigh->ops->solicit) neigh 1009 net/core/neighbour.c neigh->ops->solicit(neigh, skb); neigh 1010 net/core/neighbour.c atomic_inc(&neigh->probes); neigh 1019 net/core/neighbour.c struct neighbour *neigh = from_timer(neigh, t, timer); neigh 1023 net/core/neighbour.c write_lock(&neigh->lock); neigh 1025 net/core/neighbour.c state = neigh->nud_state; neigh 1034 net/core/neighbour.c neigh->confirmed + neigh->parms->reachable_time)) { neigh 1035 net/core/neighbour.c neigh_dbg(2, "neigh %p is still alive\n", neigh); neigh 1036 net/core/neighbour.c next = neigh->confirmed + neigh->parms->reachable_time; neigh 1038 net/core/neighbour.c neigh->used + neigh 1039 net/core/neighbour.c NEIGH_VAR(neigh->parms, DELAY_PROBE_TIME))) { neigh 1040 net/core/neighbour.c neigh_dbg(2, "neigh %p is delayed\n", neigh); neigh 1041 net/core/neighbour.c neigh->nud_state = NUD_DELAY; neigh 1042 net/core/neighbour.c neigh->updated = jiffies; neigh 1043 net/core/neighbour.c neigh_suspect(neigh); neigh 1044 net/core/neighbour.c next = now + NEIGH_VAR(neigh->parms, DELAY_PROBE_TIME); neigh 1046 net/core/neighbour.c neigh_dbg(2, "neigh %p is suspected\n", neigh); neigh 1047 net/core/neighbour.c neigh->nud_state = NUD_STALE; neigh 1048 net/core/neighbour.c neigh->updated = jiffies; neigh 1049 net/core/neighbour.c neigh_suspect(neigh); neigh 1054 net/core/neighbour.c neigh->confirmed + neigh 1055 net/core/neighbour.c NEIGH_VAR(neigh->parms, DELAY_PROBE_TIME))) { neigh 1056 net/core/neighbour.c neigh_dbg(2, "neigh %p is now reachable\n", neigh); neigh 1057 net/core/neighbour.c neigh->nud_state = NUD_REACHABLE; neigh 1058 net/core/neighbour.c neigh->updated = jiffies; neigh 1059 net/core/neighbour.c neigh_connect(neigh); neigh 1061 net/core/neighbour.c next = neigh->confirmed + neigh->parms->reachable_time; neigh 1063 net/core/neighbour.c neigh_dbg(2, "neigh %p is probed\n", neigh); neigh 1064 net/core/neighbour.c neigh->nud_state = NUD_PROBE; neigh 1065 net/core/neighbour.c neigh->updated = jiffies; neigh 1066 net/core/neighbour.c atomic_set(&neigh->probes, 0); neigh 1068 net/core/neighbour.c next = now + NEIGH_VAR(neigh->parms, RETRANS_TIME); neigh 1072 net/core/neighbour.c next = now + NEIGH_VAR(neigh->parms, RETRANS_TIME); neigh 1075 net/core/neighbour.c if ((neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) && neigh 1076 net/core/neighbour.c atomic_read(&neigh->probes) >= neigh_max_probes(neigh)) { neigh 1077 net/core/neighbour.c neigh->nud_state = NUD_FAILED; neigh 1079 net/core/neighbour.c neigh_invalidate(neigh); neigh 1083 net/core/neighbour.c if (neigh->nud_state & NUD_IN_TIMER) { neigh 1086 net/core/neighbour.c if (!mod_timer(&neigh->timer, next)) neigh 1087 net/core/neighbour.c neigh_hold(neigh); neigh 1089 net/core/neighbour.c if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) { neigh 1090 net/core/neighbour.c neigh_probe(neigh); neigh 1093 net/core/neighbour.c write_unlock(&neigh->lock); neigh 1097 net/core/neighbour.c neigh_update_notify(neigh, 0); neigh 1099 net/core/neighbour.c trace_neigh_timer_handler(neigh, 0); neigh 1101 net/core/neighbour.c neigh_release(neigh); neigh 1104 net/core/neighbour.c int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) neigh 1109 net/core/neighbour.c write_lock_bh(&neigh->lock); neigh 1112 net/core/neighbour.c if (neigh->nud_state & (NUD_CONNECTED | NUD_DELAY | NUD_PROBE)) neigh 1114 net/core/neighbour.c if (neigh->dead) neigh 1117 net/core/neighbour.c if (!(neigh->nud_state & (NUD_STALE | NUD_INCOMPLETE))) { neigh 1118 net/core/neighbour.c if (NEIGH_VAR(neigh->parms, MCAST_PROBES) + neigh 1119 net/core/neighbour.c NEIGH_VAR(neigh->parms, APP_PROBES)) { neigh 1122 net/core/neighbour.c atomic_set(&neigh->probes, neigh 1123 net/core/neighbour.c NEIGH_VAR(neigh->parms, UCAST_PROBES)); neigh 1124 net/core/neighbour.c neigh_del_timer(neigh); neigh 1125 net/core/neighbour.c neigh->nud_state = NUD_INCOMPLETE; neigh 1126 net/core/neighbour.c neigh->updated = now; neigh 1127 net/core/neighbour.c next = now + max(NEIGH_VAR(neigh->parms, RETRANS_TIME), neigh 1129 net/core/neighbour.c neigh_add_timer(neigh, next); neigh 1132 net/core/neighbour.c neigh->nud_state = NUD_FAILED; neigh 1133 net/core/neighbour.c neigh->updated = jiffies; neigh 1134 net/core/neighbour.c write_unlock_bh(&neigh->lock); neigh 1139 net/core/neighbour.c } else if (neigh->nud_state & NUD_STALE) { neigh 1140 net/core/neighbour.c neigh_dbg(2, "neigh %p is delayed\n", neigh); neigh 1141 net/core/neighbour.c neigh_del_timer(neigh); neigh 1142 net/core/neighbour.c neigh->nud_state = NUD_DELAY; neigh 1143 net/core/neighbour.c neigh->updated = jiffies; neigh 1144 net/core/neighbour.c neigh_add_timer(neigh, jiffies + neigh 1145 net/core/neighbour.c NEIGH_VAR(neigh->parms, DELAY_PROBE_TIME)); neigh 1148 net/core/neighbour.c if (neigh->nud_state == NUD_INCOMPLETE) { neigh 1150 net/core/neighbour.c while (neigh->arp_queue_len_bytes + skb->truesize > neigh 1151 net/core/neighbour.c NEIGH_VAR(neigh->parms, QUEUE_LEN_BYTES)) { neigh 1154 net/core/neighbour.c buff = __skb_dequeue(&neigh->arp_queue); neigh 1157 net/core/neighbour.c neigh->arp_queue_len_bytes -= buff->truesize; neigh 1159 net/core/neighbour.c NEIGH_CACHE_STAT_INC(neigh->tbl, unres_discards); neigh 1162 net/core/neighbour.c __skb_queue_tail(&neigh->arp_queue, skb); neigh 1163 net/core/neighbour.c neigh->arp_queue_len_bytes += skb->truesize; neigh 1169 net/core/neighbour.c neigh_probe(neigh); neigh 1171 net/core/neighbour.c write_unlock(&neigh->lock); neigh 1173 net/core/neighbour.c trace_neigh_event_send_done(neigh, rc); neigh 1177 net/core/neighbour.c if (neigh->nud_state & NUD_STALE) neigh 1179 net/core/neighbour.c write_unlock_bh(&neigh->lock); neigh 1181 net/core/neighbour.c trace_neigh_event_send_dead(neigh, 1); neigh 1186 net/core/neighbour.c static void neigh_update_hhs(struct neighbour *neigh) neigh 1192 net/core/neighbour.c if (neigh->dev->header_ops) neigh 1193 net/core/neighbour.c update = neigh->dev->header_ops->cache_update; neigh 1196 net/core/neighbour.c hh = &neigh->hh; neigh 1199 net/core/neighbour.c update(hh, neigh->dev, neigh->ha); neigh 1226 net/core/neighbour.c static int __neigh_update(struct neighbour *neigh, const u8 *lladdr, neigh 1237 net/core/neighbour.c trace_neigh_update(neigh, lladdr, new, flags, nlmsg_pid); neigh 1239 net/core/neighbour.c write_lock_bh(&neigh->lock); neigh 1241 net/core/neighbour.c dev = neigh->dev; neigh 1242 net/core/neighbour.c old = neigh->nud_state; neigh 1248 net/core/neighbour.c if (neigh->dead) { neigh 1253 net/core/neighbour.c ext_learn_change = neigh_update_ext_learned(neigh, flags, ¬ify); neigh 1256 net/core/neighbour.c neigh_del_timer(neigh); neigh 1258 net/core/neighbour.c neigh_suspect(neigh); neigh 1259 net/core/neighbour.c neigh->nud_state = new; neigh 1264 net/core/neighbour.c neigh_invalidate(neigh); neigh 1273 net/core/neighbour.c lladdr = neigh->ha; neigh 1281 net/core/neighbour.c !memcmp(lladdr, neigh->ha, dev->addr_len)) neigh 1282 net/core/neighbour.c lladdr = neigh->ha; neigh 1292 net/core/neighbour.c lladdr = neigh->ha; neigh 1299 net/core/neighbour.c neigh->confirmed = jiffies; neigh 1307 net/core/neighbour.c if (lladdr != neigh->ha && !(flags & NEIGH_UPDATE_F_OVERRIDE)) { neigh 1311 net/core/neighbour.c lladdr = neigh->ha; neigh 1316 net/core/neighbour.c if (lladdr == neigh->ha && new == NUD_STALE && neigh 1326 net/core/neighbour.c if (new != old || lladdr != neigh->ha) neigh 1327 net/core/neighbour.c neigh->updated = jiffies; neigh 1330 net/core/neighbour.c neigh_del_timer(neigh); neigh 1332 net/core/neighbour.c atomic_set(&neigh->probes, 0); neigh 1334 net/core/neighbour.c neigh_add_timer(neigh, (jiffies + neigh 1336 net/core/neighbour.c neigh->parms->reachable_time : neigh 1338 net/core/neighbour.c neigh->nud_state = new; neigh 1342 net/core/neighbour.c if (lladdr != neigh->ha) { neigh 1343 net/core/neighbour.c write_seqlock(&neigh->ha_lock); neigh 1344 net/core/neighbour.c memcpy(&neigh->ha, lladdr, dev->addr_len); neigh 1345 net/core/neighbour.c write_sequnlock(&neigh->ha_lock); neigh 1346 net/core/neighbour.c neigh_update_hhs(neigh); neigh 1348 net/core/neighbour.c neigh->confirmed = jiffies - neigh 1349 net/core/neighbour.c (NEIGH_VAR(neigh->parms, BASE_REACHABLE_TIME) << 1); neigh 1355 net/core/neighbour.c neigh_connect(neigh); neigh 1357 net/core/neighbour.c neigh_suspect(neigh); neigh 1363 net/core/neighbour.c while (neigh->nud_state & NUD_VALID && neigh 1364 net/core/neighbour.c (skb = __skb_dequeue(&neigh->arp_queue)) != NULL) { neigh 1366 net/core/neighbour.c struct neighbour *n2, *n1 = neigh; neigh 1367 net/core/neighbour.c write_unlock_bh(&neigh->lock); neigh 1389 net/core/neighbour.c write_lock_bh(&neigh->lock); neigh 1391 net/core/neighbour.c __skb_queue_purge(&neigh->arp_queue); neigh 1392 net/core/neighbour.c neigh->arp_queue_len_bytes = 0; neigh 1396 net/core/neighbour.c neigh_update_is_router(neigh, flags, ¬ify); neigh 1397 net/core/neighbour.c write_unlock_bh(&neigh->lock); neigh 1400 net/core/neighbour.c neigh_update_gc_list(neigh); neigh 1403 net/core/neighbour.c neigh_update_notify(neigh, nlmsg_pid); neigh 1405 net/core/neighbour.c trace_neigh_update_done(neigh, err); neigh 1410 net/core/neighbour.c int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new, neigh 1413 net/core/neighbour.c return __neigh_update(neigh, lladdr, new, flags, nlmsg_pid, NULL); neigh 1420 net/core/neighbour.c void __neigh_set_probe_once(struct neighbour *neigh) neigh 1422 net/core/neighbour.c if (neigh->dead) neigh 1424 net/core/neighbour.c neigh->updated = jiffies; neigh 1425 net/core/neighbour.c if (!(neigh->nud_state & NUD_FAILED)) neigh 1427 net/core/neighbour.c neigh->nud_state = NUD_INCOMPLETE; neigh 1428 net/core/neighbour.c atomic_set(&neigh->probes, neigh_max_probes(neigh)); neigh 1429 net/core/neighbour.c neigh_add_timer(neigh, neigh 1430 net/core/neighbour.c jiffies + NEIGH_VAR(neigh->parms, RETRANS_TIME)); neigh 1438 net/core/neighbour.c struct neighbour *neigh = __neigh_lookup(tbl, saddr, dev, neigh 1440 net/core/neighbour.c if (neigh) neigh 1441 net/core/neighbour.c neigh_update(neigh, lladdr, NUD_STALE, neigh 1443 net/core/neighbour.c return neigh; neigh 1467 net/core/neighbour.c int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb) neigh 1471 net/core/neighbour.c if (!neigh_event_send(neigh, skb)) { neigh 1473 net/core/neighbour.c struct net_device *dev = neigh->dev; neigh 1476 net/core/neighbour.c if (dev->header_ops->cache && !READ_ONCE(neigh->hh.hh_len)) neigh 1477 net/core/neighbour.c neigh_hh_init(neigh); neigh 1481 net/core/neighbour.c seq = read_seqbegin(&neigh->ha_lock); neigh 1483 net/core/neighbour.c neigh->ha, NULL, skb->len); neigh 1484 net/core/neighbour.c } while (read_seqretry(&neigh->ha_lock, seq)); neigh 1502 net/core/neighbour.c int neigh_connected_output(struct neighbour *neigh, struct sk_buff *skb) neigh 1504 net/core/neighbour.c struct net_device *dev = neigh->dev; neigh 1510 net/core/neighbour.c seq = read_seqbegin(&neigh->ha_lock); neigh 1512 net/core/neighbour.c neigh->ha, NULL, skb->len); neigh 1513 net/core/neighbour.c } while (read_seqretry(&neigh->ha_lock, seq)); neigh 1525 net/core/neighbour.c int neigh_direct_output(struct neighbour *neigh, struct sk_buff *skb) neigh 1791 net/core/neighbour.c struct neighbour *neigh; neigh 1831 net/core/neighbour.c neigh = neigh_lookup(tbl, nla_data(dst_attr), dev); neigh 1832 net/core/neighbour.c if (neigh == NULL) { neigh 1837 net/core/neighbour.c err = __neigh_update(neigh, NULL, NUD_FAILED, neigh 1841 net/core/neighbour.c neigh_release(neigh); neigh 1842 net/core/neighbour.c neigh_remove_one(neigh, tbl); neigh 1859 net/core/neighbour.c struct neighbour *neigh; neigh 1929 net/core/neighbour.c neigh = neigh_lookup(tbl, dst, dev); neigh 1930 net/core/neighbour.c if (neigh == NULL) { neigh 1940 net/core/neighbour.c neigh = ___neigh_create(tbl, dst, dev, exempt_from_gc, true); neigh 1941 net/core/neighbour.c if (IS_ERR(neigh)) { neigh 1942 net/core/neighbour.c err = PTR_ERR(neigh); neigh 1948 net/core/neighbour.c neigh_release(neigh); neigh 1958 net/core/neighbour.c neigh->protocol = protocol; neigh 1967 net/core/neighbour.c neigh_event_send(neigh, NULL); neigh 1970 net/core/neighbour.c err = __neigh_update(neigh, lladdr, ndm->ndm_state, flags, neigh 1973 net/core/neighbour.c neigh_release(neigh); neigh 2422 net/core/neighbour.c static int neigh_fill_info(struct sk_buff *skb, struct neighbour *neigh, neigh 2435 net/core/neighbour.c ndm->ndm_family = neigh->ops->family; neigh 2438 net/core/neighbour.c ndm->ndm_flags = neigh->flags; neigh 2439 net/core/neighbour.c ndm->ndm_type = neigh->type; neigh 2440 net/core/neighbour.c ndm->ndm_ifindex = neigh->dev->ifindex; neigh 2442 net/core/neighbour.c if (nla_put(skb, NDA_DST, neigh->tbl->key_len, neigh->primary_key)) neigh 2445 net/core/neighbour.c read_lock_bh(&neigh->lock); neigh 2446 net/core/neighbour.c ndm->ndm_state = neigh->nud_state; neigh 2447 net/core/neighbour.c if (neigh->nud_state & NUD_VALID) { neigh 2450 net/core/neighbour.c neigh_ha_snapshot(haddr, neigh, neigh->dev); neigh 2451 net/core/neighbour.c if (nla_put(skb, NDA_LLADDR, neigh->dev->addr_len, haddr) < 0) { neigh 2452 net/core/neighbour.c read_unlock_bh(&neigh->lock); neigh 2457 net/core/neighbour.c ci.ndm_used = jiffies_to_clock_t(now - neigh->used); neigh 2458 net/core/neighbour.c ci.ndm_confirmed = jiffies_to_clock_t(now - neigh->confirmed); neigh 2459 net/core/neighbour.c ci.ndm_updated = jiffies_to_clock_t(now - neigh->updated); neigh 2460 net/core/neighbour.c ci.ndm_refcnt = refcount_read(&neigh->refcnt) - 1; neigh 2461 net/core/neighbour.c read_unlock_bh(&neigh->lock); neigh 2463 net/core/neighbour.c if (nla_put_u32(skb, NDA_PROBES, atomic_read(&neigh->probes)) || neigh 2467 net/core/neighbour.c if (neigh->protocol && nla_put_u8(skb, NDA_PROTOCOL, neigh->protocol)) neigh 2512 net/core/neighbour.c static void neigh_update_notify(struct neighbour *neigh, u32 nlmsg_pid) neigh 2514 net/core/neighbour.c call_netevent_notifiers(NETEVENT_NEIGH_UPDATE, neigh); neigh 2515 net/core/neighbour.c __neigh_notify(neigh, RTM_NEWNEIGH, 0, nlmsg_pid); neigh 2814 net/core/neighbour.c static int neigh_get_reply(struct net *net, struct neighbour *neigh, neigh 2824 net/core/neighbour.c err = neigh_fill_info(skb, neigh, pid, seq, RTM_NEWNEIGH, 0); neigh 2842 net/core/neighbour.c static int pneigh_get_reply(struct net *net, struct pneigh_entry *neigh, neigh 2852 net/core/neighbour.c err = pneigh_fill_info(skb, neigh, pid, seq, RTM_NEWNEIGH, 0, tbl); neigh 2869 net/core/neighbour.c struct neighbour *neigh; neigh 2910 net/core/neighbour.c neigh = neigh_lookup(tbl, dst, dev); neigh 2911 net/core/neighbour.c if (!neigh) { neigh 2916 net/core/neighbour.c err = neigh_get_reply(net, neigh, NETLINK_CB(in_skb).portid, neigh 2919 net/core/neighbour.c neigh_release(neigh); neigh 2987 net/core/neighbour.c struct neighbour *neigh; neigh 2996 net/core/neighbour.c neigh = __ipv4_neigh_lookup_noref(dev, key); neigh 2998 net/core/neighbour.c neigh = __neigh_lookup_noref(tbl, addr, dev); neigh 3000 net/core/neighbour.c if (!neigh) neigh 3001 net/core/neighbour.c neigh = __neigh_create(tbl, addr, dev, false); neigh 3002 net/core/neighbour.c err = PTR_ERR(neigh); neigh 3003 net/core/neighbour.c if (IS_ERR(neigh)) { neigh 3007 net/core/neighbour.c err = neigh->output(neigh, skb); neigh 54 net/decnet/dn_neigh.c static int dn_neigh_output(struct neighbour *neigh, struct sk_buff *skb); neigh 73 net/decnet/dn_neigh.c static bool dn_key_eq(const struct neighbour *neigh, const void *pkey) neigh 75 net/decnet/dn_neigh.c return neigh_key_eq16(neigh, pkey); neigh 111 net/decnet/dn_neigh.c static int dn_neigh_construct(struct neighbour *neigh) neigh 113 net/decnet/dn_neigh.c struct net_device *dev = neigh->dev; neigh 114 net/decnet/dn_neigh.c struct dn_neigh *dn = container_of(neigh, struct dn_neigh, n); neigh 131 net/decnet/dn_neigh.c __neigh_parms_put(neigh->parms); neigh 132 net/decnet/dn_neigh.c neigh->parms = neigh_parms_clone(parms); neigh 135 net/decnet/dn_neigh.c neigh->ops = &dn_neigh_ops; neigh 136 net/decnet/dn_neigh.c neigh->nud_state = NUD_NOARP; neigh 137 net/decnet/dn_neigh.c neigh->output = neigh->ops->connected_output; neigh 140 net/decnet/dn_neigh.c memcpy(neigh->ha, dev->broadcast, dev->addr_len); neigh 142 net/decnet/dn_neigh.c dn_dn2eth(neigh->ha, dn->addr); neigh 167 net/decnet/dn_neigh.c static void dn_neigh_error_report(struct neighbour *neigh, struct sk_buff *skb) neigh 173 net/decnet/dn_neigh.c static int dn_neigh_output(struct neighbour *neigh, struct sk_buff *skb) neigh 177 net/decnet/dn_neigh.c struct net_device *dev = neigh->dev; neigh 184 net/decnet/dn_neigh.c seq = read_seqbegin(&neigh->ha_lock); neigh 186 net/decnet/dn_neigh.c neigh->ha, mac_addr, skb->len); neigh 187 net/decnet/dn_neigh.c } while (read_seqretry(&neigh->ha_lock, seq)); neigh 202 net/decnet/dn_neigh.c struct neighbour *neigh = rt->n; neigh 204 net/decnet/dn_neigh.c return neigh->output(neigh, skb); neigh 210 net/decnet/dn_neigh.c static int dn_long_output(struct neighbour *neigh, struct sock *sk, neigh 213 net/decnet/dn_neigh.c struct net_device *dev = neigh->dev; neigh 251 net/decnet/dn_neigh.c &init_net, sk, skb, NULL, neigh->dev, neigh 258 net/decnet/dn_neigh.c static int dn_short_output(struct neighbour *neigh, struct sock *sk, neigh 261 net/decnet/dn_neigh.c struct net_device *dev = neigh->dev; neigh 292 net/decnet/dn_neigh.c &init_net, sk, skb, NULL, neigh->dev, neigh 301 net/decnet/dn_neigh.c static int dn_phase3_output(struct neighbour *neigh, struct sock *sk, neigh 304 net/decnet/dn_neigh.c struct net_device *dev = neigh->dev; neigh 334 net/decnet/dn_neigh.c &init_net, sk, skb, NULL, neigh->dev, neigh 342 net/decnet/dn_neigh.c struct neighbour *neigh = rt->n; neigh 343 net/decnet/dn_neigh.c struct dn_neigh *dn = container_of(neigh, struct dn_neigh, n); neigh 348 net/decnet/dn_neigh.c dn_db = rcu_dereference(neigh->dev->dn_ptr); neigh 357 net/decnet/dn_neigh.c return dn_phase3_output(neigh, sk, skb); neigh 359 net/decnet/dn_neigh.c return dn_long_output(neigh, sk, skb); neigh 361 net/decnet/dn_neigh.c return dn_short_output(neigh, sk, skb); neigh 386 net/decnet/dn_neigh.c struct neighbour *neigh; neigh 393 net/decnet/dn_neigh.c neigh = __neigh_lookup(&dn_neigh_table, &src, skb->dev, 1); neigh 395 net/decnet/dn_neigh.c dn = container_of(neigh, struct dn_neigh, n); neigh 397 net/decnet/dn_neigh.c if (neigh) { neigh 398 net/decnet/dn_neigh.c write_lock(&neigh->lock); neigh 400 net/decnet/dn_neigh.c neigh->used = jiffies; neigh 401 net/decnet/dn_neigh.c dn_db = rcu_dereference(neigh->dev->dn_ptr); neigh 403 net/decnet/dn_neigh.c if (!(neigh->nud_state & NUD_PERMANENT)) { neigh 404 net/decnet/dn_neigh.c neigh->updated = jiffies; neigh 406 net/decnet/dn_neigh.c if (neigh->dev->type == ARPHRD_ETHER) neigh 407 net/decnet/dn_neigh.c memcpy(neigh->ha, ð_hdr(skb)->h_source, ETH_ALEN); neigh 427 net/decnet/dn_neigh.c dn_db->router = neigh_clone(neigh); neigh 430 net/decnet/dn_neigh.c neigh_release(xchg(&dn_db->router, neigh_clone(neigh))); neigh 433 net/decnet/dn_neigh.c write_unlock(&neigh->lock); neigh 434 net/decnet/dn_neigh.c neigh_release(neigh); neigh 447 net/decnet/dn_neigh.c struct neighbour *neigh; neigh 453 net/decnet/dn_neigh.c neigh = __neigh_lookup(&dn_neigh_table, &src, skb->dev, 1); neigh 455 net/decnet/dn_neigh.c dn = container_of(neigh, struct dn_neigh, n); neigh 457 net/decnet/dn_neigh.c if (neigh) { neigh 458 net/decnet/dn_neigh.c write_lock(&neigh->lock); neigh 460 net/decnet/dn_neigh.c neigh->used = jiffies; neigh 462 net/decnet/dn_neigh.c if (!(neigh->nud_state & NUD_PERMANENT)) { neigh 463 net/decnet/dn_neigh.c neigh->updated = jiffies; neigh 465 net/decnet/dn_neigh.c if (neigh->dev->type == ARPHRD_ETHER) neigh 466 net/decnet/dn_neigh.c memcpy(neigh->ha, ð_hdr(skb)->h_source, ETH_ALEN); neigh 472 net/decnet/dn_neigh.c write_unlock(&neigh->lock); neigh 473 net/decnet/dn_neigh.c neigh_release(neigh); neigh 506 net/decnet/dn_neigh.c static void neigh_elist_cb(struct neighbour *neigh, void *_info) neigh 511 net/decnet/dn_neigh.c if (neigh->dev != s->dev) neigh 514 net/decnet/dn_neigh.c dn = container_of(neigh, struct dn_neigh, n); neigh 527 net/decnet/dn_neigh.c *(s->rs) = neigh->nud_state & NUD_CONNECTED ? 0x80 : 0x0; neigh 959 net/decnet/dn_route.c struct neighbour *neigh = NULL; neigh 1071 net/decnet/dn_route.c neigh = neigh_lookup_nodev(&dn_neigh_table, &init_net, &fld.daddr); neigh 1072 net/decnet/dn_route.c if (neigh) { neigh 1074 net/decnet/dn_route.c (neigh->dev->ifindex != oldflp->flowidn_oif)) || neigh 1076 net/decnet/dn_route.c (!dn_dev_islocal(neigh->dev, neigh 1078 net/decnet/dn_route.c neigh_release(neigh); neigh 1079 net/decnet/dn_route.c neigh = NULL; neigh 1083 net/decnet/dn_route.c if (dn_dev_islocal(neigh->dev, fld.daddr)) { neigh 1087 net/decnet/dn_route.c dev_out = neigh->dev; neigh 1113 net/decnet/dn_route.c neigh = neigh_clone(dn_db->router); neigh 1114 net/decnet/dn_route.c BUG_ON(neigh && neigh->dev != dev_out); neigh 1118 net/decnet/dn_route.c if (neigh) neigh 1119 net/decnet/dn_route.c gateway = ((struct dn_neigh *)neigh)->addr; neigh 1196 net/decnet/dn_route.c rt->n = neigh; neigh 1197 net/decnet/dn_route.c neigh = NULL; neigh 1215 net/decnet/dn_route.c if (neigh) neigh 1216 net/decnet/dn_route.c neigh_release(neigh); neigh 1307 net/decnet/dn_route.c struct neighbour *neigh = NULL; neigh 1428 net/decnet/dn_route.c neigh = neigh_clone(dn_db->router); neigh 1429 net/decnet/dn_route.c if (neigh) { neigh 1430 net/decnet/dn_route.c gateway = ((struct dn_neigh *)neigh)->addr; neigh 1464 net/decnet/dn_route.c rt->n = neigh; neigh 1494 net/decnet/dn_route.c if (neigh) neigh 1495 net/decnet/dn_route.c neigh_release(neigh); neigh 233 net/ethernet/eth.c int eth_header_cache(const struct neighbour *neigh, struct hh_cache *hh, __be16 type) neigh 236 net/ethernet/eth.c const struct net_device *dev = neigh->dev; neigh 246 net/ethernet/eth.c memcpy(eth->h_dest, neigh->ha, ETH_ALEN); neigh 79 net/ieee802154/6lowpan/core.c struct lowpan_802154_neigh *neigh = lowpan_802154_neigh(neighbour_priv(n)); neigh 82 net/ieee802154/6lowpan/core.c neigh->short_addr = cpu_to_le16(IEEE802154_ADDR_SHORT_UNSPEC); neigh 124 net/ipv4/arp.c static int arp_constructor(struct neighbour *neigh); neigh 125 net/ipv4/arp.c static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb); neigh 126 net/ipv4/arp.c static void arp_error_report(struct neighbour *neigh, struct sk_buff *skb); neigh 215 net/ipv4/arp.c static bool arp_key_eq(const struct neighbour *neigh, const void *pkey) neigh 217 net/ipv4/arp.c return neigh_key_eq32(neigh, pkey); neigh 220 net/ipv4/arp.c static int arp_constructor(struct neighbour *neigh) neigh 223 net/ipv4/arp.c struct net_device *dev = neigh->dev; neigh 229 net/ipv4/arp.c memcpy(neigh->primary_key, &inaddr_any, arp_tbl.key_len); neigh 231 net/ipv4/arp.c addr = *(__be32 *)neigh->primary_key; neigh 239 net/ipv4/arp.c neigh->type = inet_addr_type_dev_table(dev_net(dev), dev, addr); neigh 242 net/ipv4/arp.c __neigh_parms_put(neigh->parms); neigh 243 net/ipv4/arp.c neigh->parms = neigh_parms_clone(parms); neigh 247 net/ipv4/arp.c neigh->nud_state = NUD_NOARP; neigh 248 net/ipv4/arp.c neigh->ops = &arp_direct_ops; neigh 249 net/ipv4/arp.c neigh->output = neigh_direct_output; neigh 266 net/ipv4/arp.c if (neigh->type == RTN_MULTICAST) { neigh 267 net/ipv4/arp.c neigh->nud_state = NUD_NOARP; neigh 268 net/ipv4/arp.c arp_mc_map(addr, neigh->ha, dev, 1); neigh 270 net/ipv4/arp.c neigh->nud_state = NUD_NOARP; neigh 271 net/ipv4/arp.c memcpy(neigh->ha, dev->dev_addr, dev->addr_len); neigh 272 net/ipv4/arp.c } else if (neigh->type == RTN_BROADCAST || neigh 274 net/ipv4/arp.c neigh->nud_state = NUD_NOARP; neigh 275 net/ipv4/arp.c memcpy(neigh->ha, dev->broadcast, dev->addr_len); neigh 279 net/ipv4/arp.c neigh->ops = &arp_hh_ops; neigh 281 net/ipv4/arp.c neigh->ops = &arp_generic_ops; neigh 283 net/ipv4/arp.c if (neigh->nud_state & NUD_VALID) neigh 284 net/ipv4/arp.c neigh->output = neigh->ops->connected_output; neigh 286 net/ipv4/arp.c neigh->output = neigh->ops->output; neigh 291 net/ipv4/arp.c static void arp_error_report(struct neighbour *neigh, struct sk_buff *skb) neigh 330 net/ipv4/arp.c static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb) neigh 334 net/ipv4/arp.c struct net_device *dev = neigh->dev; neigh 335 net/ipv4/arp.c __be32 target = *(__be32 *)neigh->primary_key; neigh 336 net/ipv4/arp.c int probes = atomic_read(&neigh->probes); neigh 373 net/ipv4/arp.c probes -= NEIGH_VAR(neigh->parms, UCAST_PROBES); neigh 375 net/ipv4/arp.c if (!(neigh->nud_state & NUD_VALID)) neigh 377 net/ipv4/arp.c neigh_ha_snapshot(dst_ha, neigh, dev); neigh 380 net/ipv4/arp.c probes -= NEIGH_VAR(neigh->parms, APP_PROBES); neigh 382 net/ipv4/arp.c neigh_app_ns(neigh); neigh 1022 net/ipv4/arp.c struct neighbour *neigh; neigh 1062 net/ipv4/arp.c neigh = __neigh_lookup_errno(&arp_tbl, &ip, dev); neigh 1063 net/ipv4/arp.c err = PTR_ERR(neigh); neigh 1064 net/ipv4/arp.c if (!IS_ERR(neigh)) { neigh 1068 net/ipv4/arp.c err = neigh_update(neigh, (r->arp_flags & ATF_COM) ? neigh 1072 net/ipv4/arp.c neigh_release(neigh); neigh 1077 net/ipv4/arp.c static unsigned int arp_state_to_flags(struct neighbour *neigh) neigh 1079 net/ipv4/arp.c if (neigh->nud_state&NUD_PERMANENT) neigh 1081 net/ipv4/arp.c else if (neigh->nud_state&NUD_VALID) neigh 1094 net/ipv4/arp.c struct neighbour *neigh; neigh 1097 net/ipv4/arp.c neigh = neigh_lookup(&arp_tbl, &ip, dev); neigh 1098 net/ipv4/arp.c if (neigh) { neigh 1099 net/ipv4/arp.c if (!(neigh->nud_state & NUD_NOARP)) { neigh 1100 net/ipv4/arp.c read_lock_bh(&neigh->lock); neigh 1101 net/ipv4/arp.c memcpy(r->arp_ha.sa_data, neigh->ha, dev->addr_len); neigh 1102 net/ipv4/arp.c r->arp_flags = arp_state_to_flags(neigh); neigh 1103 net/ipv4/arp.c read_unlock_bh(&neigh->lock); neigh 1108 net/ipv4/arp.c neigh_release(neigh); neigh 1115 net/ipv4/arp.c struct neighbour *neigh = neigh_lookup(&arp_tbl, &ip, dev); neigh 1119 net/ipv4/arp.c if (neigh) { neigh 1120 net/ipv4/arp.c if (neigh->nud_state & ~NUD_NOARP) neigh 1121 net/ipv4/arp.c err = neigh_update(neigh, NULL, NUD_FAILED, neigh 1125 net/ipv4/arp.c neigh_release(neigh); neigh 1126 net/ipv4/arp.c neigh_remove_one(neigh, tbl); neigh 191 net/ipv4/ip_output.c struct neighbour *neigh; neigh 222 net/ipv4/ip_output.c neigh = ip_neigh_for_gw(rt, skb, &is_v6gw); neigh 223 net/ipv4/ip_output.c if (!IS_ERR(neigh)) { neigh 226 net/ipv4/ip_output.c sock_confirm_neigh(skb, neigh); neigh 228 net/ipv4/ip_output.c res = neigh_output(neigh, skb, is_v6gw); neigh 684 net/ipv4/ip_tunnel.c struct neighbour *neigh; neigh 688 net/ipv4/ip_tunnel.c neigh = dst_neigh_lookup(skb_dst(skb), neigh 690 net/ipv4/ip_tunnel.c if (!neigh) neigh 693 net/ipv4/ip_tunnel.c addr6 = (const struct in6_addr *)&neigh->primary_key; neigh 707 net/ipv4/ip_tunnel.c neigh_release(neigh); neigh 63 net/ipv6/ip6_output.c struct neighbour *neigh; neigh 111 net/ipv6/ip6_output.c neigh = __ipv6_neigh_lookup_noref(dst->dev, nexthop); neigh 112 net/ipv6/ip6_output.c if (unlikely(!neigh)) neigh 113 net/ipv6/ip6_output.c neigh = __neigh_create(&nd_tbl, nexthop, dst->dev, false); neigh 114 net/ipv6/ip6_output.c if (!IS_ERR(neigh)) { neigh 115 net/ipv6/ip6_output.c sock_confirm_neigh(skb, neigh); neigh 116 net/ipv6/ip6_output.c ret = neigh_output(neigh, skb, false); neigh 1062 net/ipv6/ip6_tunnel.c struct neighbour *neigh; neigh 1068 net/ipv6/ip6_tunnel.c neigh = dst_neigh_lookup(skb_dst(skb), neigh 1070 net/ipv6/ip6_tunnel.c if (!neigh) neigh 1073 net/ipv6/ip6_tunnel.c addr6 = (struct in6_addr *)&neigh->primary_key; neigh 1080 net/ipv6/ip6_tunnel.c neigh_release(neigh); neigh 75 net/ipv6/ndisc.c static bool ndisc_key_eq(const struct neighbour *neigh, const void *pkey); neigh 78 net/ipv6/ndisc.c static int ndisc_constructor(struct neighbour *neigh); neigh 79 net/ipv6/ndisc.c static void ndisc_solicit(struct neighbour *neigh, struct sk_buff *skb); neigh 80 net/ipv6/ndisc.c static void ndisc_error_report(struct neighbour *neigh, struct sk_buff *skb); neigh 322 net/ipv6/ndisc.c static int ndisc_constructor(struct neighbour *neigh) neigh 324 net/ipv6/ndisc.c struct in6_addr *addr = (struct in6_addr *)&neigh->primary_key; neigh 325 net/ipv6/ndisc.c struct net_device *dev = neigh->dev; neigh 336 net/ipv6/ndisc.c __neigh_parms_put(neigh->parms); neigh 337 net/ipv6/ndisc.c neigh->parms = neigh_parms_clone(parms); neigh 339 net/ipv6/ndisc.c neigh->type = is_multicast ? RTN_MULTICAST : RTN_UNICAST; neigh 341 net/ipv6/ndisc.c neigh->nud_state = NUD_NOARP; neigh 342 net/ipv6/ndisc.c neigh->ops = &ndisc_direct_ops; neigh 343 net/ipv6/ndisc.c neigh->output = neigh_direct_output; neigh 346 net/ipv6/ndisc.c neigh->nud_state = NUD_NOARP; neigh 347 net/ipv6/ndisc.c ndisc_mc_map(addr, neigh->ha, dev, 1); neigh 349 net/ipv6/ndisc.c neigh->nud_state = NUD_NOARP; neigh 350 net/ipv6/ndisc.c memcpy(neigh->ha, dev->dev_addr, dev->addr_len); neigh 352 net/ipv6/ndisc.c neigh->type = RTN_LOCAL; neigh 354 net/ipv6/ndisc.c neigh->nud_state = NUD_NOARP; neigh 355 net/ipv6/ndisc.c memcpy(neigh->ha, dev->broadcast, dev->addr_len); neigh 358 net/ipv6/ndisc.c neigh->ops = &ndisc_hh_ops; neigh 360 net/ipv6/ndisc.c neigh->ops = &ndisc_generic_ops; neigh 361 net/ipv6/ndisc.c if (neigh->nud_state&NUD_VALID) neigh 362 net/ipv6/ndisc.c neigh->output = neigh->ops->connected_output; neigh 364 net/ipv6/ndisc.c neigh->output = neigh->ops->output; neigh 703 net/ipv6/ndisc.c static void ndisc_error_report(struct neighbour *neigh, struct sk_buff *skb) neigh 715 net/ipv6/ndisc.c static void ndisc_solicit(struct neighbour *neigh, struct sk_buff *skb) neigh 719 net/ipv6/ndisc.c struct net_device *dev = neigh->dev; neigh 720 net/ipv6/ndisc.c struct in6_addr *target = (struct in6_addr *)&neigh->primary_key; neigh 721 net/ipv6/ndisc.c int probes = atomic_read(&neigh->probes); neigh 727 net/ipv6/ndisc.c probes -= NEIGH_VAR(neigh->parms, UCAST_PROBES); neigh 729 net/ipv6/ndisc.c if (!(neigh->nud_state & NUD_VALID)) { neigh 735 net/ipv6/ndisc.c } else if ((probes -= NEIGH_VAR(neigh->parms, APP_PROBES)) < 0) { neigh 736 net/ipv6/ndisc.c neigh_app_ns(neigh); neigh 758 net/ipv6/ndisc.c void ndisc_update(const struct net_device *dev, struct neighbour *neigh, neigh 762 net/ipv6/ndisc.c neigh_update(neigh, lladdr, new, flags, 0); neigh 764 net/ipv6/ndisc.c ndisc_ops_update(dev, neigh, flags, icmp6_type, ndopts); neigh 779 net/ipv6/ndisc.c struct neighbour *neigh; neigh 930 net/ipv6/ndisc.c neigh = __neigh_lookup(&nd_tbl, saddr, dev, neigh 932 net/ipv6/ndisc.c if (neigh) neigh 933 net/ipv6/ndisc.c ndisc_update(dev, neigh, lladdr, NUD_STALE, neigh 937 net/ipv6/ndisc.c if (neigh || !dev->header_ops) { neigh 940 net/ipv6/ndisc.c if (neigh) neigh 941 net/ipv6/ndisc.c neigh_release(neigh); neigh 963 net/ipv6/ndisc.c struct neighbour *neigh; neigh 1024 net/ipv6/ndisc.c neigh = neigh_lookup(&nd_tbl, &msg->target, dev); neigh 1026 net/ipv6/ndisc.c if (neigh) { neigh 1027 net/ipv6/ndisc.c u8 old_flags = neigh->flags; neigh 1030 net/ipv6/ndisc.c if (neigh->nud_state & NUD_FAILED) neigh 1045 net/ipv6/ndisc.c ndisc_update(dev, neigh, lladdr, neigh 1053 net/ipv6/ndisc.c if ((old_flags & ~neigh->flags) & NTF_ROUTER) { neigh 1061 net/ipv6/ndisc.c neigh_release(neigh); neigh 1069 net/ipv6/ndisc.c struct neighbour *neigh; neigh 1108 net/ipv6/ndisc.c neigh = __neigh_lookup(&nd_tbl, saddr, skb->dev, 1); neigh 1109 net/ipv6/ndisc.c if (neigh) { neigh 1110 net/ipv6/ndisc.c ndisc_update(skb->dev, neigh, lladdr, NUD_STALE, neigh 1115 net/ipv6/ndisc.c neigh_release(neigh); neigh 1170 net/ipv6/ndisc.c struct neighbour *neigh = NULL; neigh 1292 net/ipv6/ndisc.c neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, neigh 1295 net/ipv6/ndisc.c if (!neigh) { neigh 1322 net/ipv6/ndisc.c neigh = ip6_neigh_lookup(&rt->fib6_nh->fib_nh_gw6, neigh 1325 net/ipv6/ndisc.c if (!neigh) { neigh 1332 net/ipv6/ndisc.c neigh->flags |= NTF_ROUTER; neigh 1399 net/ipv6/ndisc.c if (!neigh) neigh 1400 net/ipv6/ndisc.c neigh = __neigh_lookup(&nd_tbl, &ipv6_hdr(skb)->saddr, neigh 1402 net/ipv6/ndisc.c if (neigh) { neigh 1413 net/ipv6/ndisc.c ndisc_update(skb->dev, neigh, lladdr, NUD_STALE, neigh 1516 net/ipv6/ndisc.c if (neigh) neigh 1517 net/ipv6/ndisc.c neigh_release(neigh); neigh 1640 net/ipv6/ndisc.c struct neighbour *neigh = dst_neigh_lookup(skb_dst(skb), target); neigh 1641 net/ipv6/ndisc.c if (!neigh) { neigh 1647 net/ipv6/ndisc.c read_lock_bh(&neigh->lock); neigh 1648 net/ipv6/ndisc.c if (neigh->nud_state & NUD_VALID) { neigh 1649 net/ipv6/ndisc.c memcpy(ha_buf, neigh->ha, dev->addr_len); neigh 1650 net/ipv6/ndisc.c read_unlock_bh(&neigh->lock); neigh 1652 net/ipv6/ndisc.c optlen += ndisc_redirect_opt_addr_space(dev, neigh, neigh 1656 net/ipv6/ndisc.c read_unlock_bh(&neigh->lock); neigh 1658 net/ipv6/ndisc.c neigh_release(neigh); neigh 627 net/ipv6/route.c struct neighbour *neigh; neigh 647 net/ipv6/route.c neigh = __ipv6_neigh_lookup_noref(dev, nh_gw); neigh 648 net/ipv6/route.c if (neigh) { neigh 649 net/ipv6/route.c if (neigh->nud_state & NUD_VALID) neigh 652 net/ipv6/route.c write_lock(&neigh->lock); neigh 653 net/ipv6/route.c if (!(neigh->nud_state & NUD_VALID) && neigh 655 net/ipv6/route.c neigh->updated + idev->cnf.rtr_probe_interval)) { neigh 658 net/ipv6/route.c __neigh_set_probe_once(neigh); neigh 660 net/ipv6/route.c write_unlock(&neigh->lock); neigh 692 net/ipv6/route.c struct neighbour *neigh; neigh 695 net/ipv6/route.c neigh = __ipv6_neigh_lookup_noref(fib6_nh->fib_nh_dev, neigh 697 net/ipv6/route.c if (neigh) { neigh 698 net/ipv6/route.c read_lock(&neigh->lock); neigh 699 net/ipv6/route.c if (neigh->nud_state & NUD_VALID) neigh 702 net/ipv6/route.c else if (!(neigh->nud_state & NUD_FAILED)) neigh 707 net/ipv6/route.c read_unlock(&neigh->lock); neigh 2102 net/ipv6/route.c struct neighbour *neigh; neigh 2105 net/ipv6/route.c neigh = __ipv6_neigh_lookup_noref(rt->dst.dev, &rt->rt6i_gateway); neigh 2106 net/ipv6/route.c if (neigh) neigh 2107 net/ipv6/route.c neigh_flags = neigh->flags; neigh 3983 net/ipv6/route.c struct neighbour *neigh; neigh 4050 net/ipv6/route.c neigh = __neigh_lookup(&nd_tbl, &msg->target, skb->dev, 1); neigh 4051 net/ipv6/route.c if (!neigh) neigh 4058 net/ipv6/route.c ndisc_update(skb->dev, neigh, lladdr, NUD_STALE, neigh 4099 net/ipv6/route.c nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key; neigh 4110 net/ipv6/route.c netevent.neigh = neigh; neigh 4115 net/ipv6/route.c neigh_release(neigh); neigh 841 net/ipv6/sit.c struct neighbour *neigh = NULL; neigh 845 net/ipv6/sit.c neigh = dst_neigh_lookup(skb_dst(skb), &iph6->daddr); neigh 847 net/ipv6/sit.c if (!neigh) { neigh 852 net/ipv6/sit.c addr6 = (const struct in6_addr *)&neigh->primary_key; neigh 861 net/ipv6/sit.c neigh_release(neigh); neigh 870 net/ipv6/sit.c struct neighbour *neigh = NULL; neigh 874 net/ipv6/sit.c neigh = dst_neigh_lookup(skb_dst(skb), &iph6->daddr); neigh 876 net/ipv6/sit.c if (!neigh) { neigh 881 net/ipv6/sit.c addr6 = (const struct in6_addr *)&neigh->primary_key; neigh 894 net/ipv6/sit.c neigh_release(neigh); neigh 140 net/rose/af_rose.c void rose_kill_by_neigh(struct rose_neigh *neigh) neigh 148 net/rose/af_rose.c if (rose->neighbour == neigh) { neigh 251 net/rose/af_rose.c struct sock *rose_find_socket(unsigned int lci, struct rose_neigh *neigh) neigh 259 net/rose/af_rose.c if (rose->lci == lci && rose->neighbour == neigh) neigh 271 net/rose/af_rose.c unsigned int rose_new_lci(struct rose_neigh *neigh) neigh 275 net/rose/af_rose.c if (neigh->dce_mode) { neigh 277 net/rose/af_rose.c if (rose_find_socket(lci, neigh) == NULL && rose_route_free_lci(lci, neigh) == NULL) neigh 281 net/rose/af_rose.c if (rose_find_socket(lci, neigh) == NULL && rose_route_free_lci(lci, neigh) == NULL) neigh 947 net/rose/af_rose.c int rose_rx_call_request(struct sk_buff *skb, struct net_device *dev, struct rose_neigh *neigh, unsigned int lci) neigh 965 net/rose/af_rose.c rose_transmit_clear_request(neigh, lci, ROSE_INVALID_FACILITY, 76); neigh 976 net/rose/af_rose.c rose_transmit_clear_request(neigh, lci, ROSE_NETWORK_CONGESTION, 120); neigh 995 net/rose/af_rose.c make_rose->neighbour = neigh; neigh 30 net/rose/rose_link.c static void rose_transmit_restart_confirmation(struct rose_neigh *neigh); neigh 31 net/rose/rose_link.c static void rose_transmit_restart_request(struct rose_neigh *neigh); neigh 33 net/rose/rose_link.c void rose_start_ftimer(struct rose_neigh *neigh) neigh 35 net/rose/rose_link.c del_timer(&neigh->ftimer); neigh 37 net/rose/rose_link.c neigh->ftimer.function = rose_ftimer_expiry; neigh 38 net/rose/rose_link.c neigh->ftimer.expires = neigh 41 net/rose/rose_link.c add_timer(&neigh->ftimer); neigh 44 net/rose/rose_link.c static void rose_start_t0timer(struct rose_neigh *neigh) neigh 46 net/rose/rose_link.c del_timer(&neigh->t0timer); neigh 48 net/rose/rose_link.c neigh->t0timer.function = rose_t0timer_expiry; neigh 49 net/rose/rose_link.c neigh->t0timer.expires = neigh 52 net/rose/rose_link.c add_timer(&neigh->t0timer); neigh 55 net/rose/rose_link.c void rose_stop_ftimer(struct rose_neigh *neigh) neigh 57 net/rose/rose_link.c del_timer(&neigh->ftimer); neigh 60 net/rose/rose_link.c void rose_stop_t0timer(struct rose_neigh *neigh) neigh 62 net/rose/rose_link.c del_timer(&neigh->t0timer); neigh 65 net/rose/rose_link.c int rose_ftimer_running(struct rose_neigh *neigh) neigh 67 net/rose/rose_link.c return timer_pending(&neigh->ftimer); neigh 70 net/rose/rose_link.c static int rose_t0timer_running(struct rose_neigh *neigh) neigh 72 net/rose/rose_link.c return timer_pending(&neigh->t0timer); neigh 81 net/rose/rose_link.c struct rose_neigh *neigh = from_timer(neigh, t, t0timer); neigh 83 net/rose/rose_link.c rose_transmit_restart_request(neigh); neigh 85 net/rose/rose_link.c neigh->dce_mode = 0; neigh 87 net/rose/rose_link.c rose_start_t0timer(neigh); neigh 95 net/rose/rose_link.c static int rose_send_frame(struct sk_buff *skb, struct rose_neigh *neigh) neigh 101 net/rose/rose_link.c rose_call = (ax25_address *)neigh->dev->dev_addr; neigh 105 net/rose/rose_link.c ax25s = neigh->ax25; neigh 106 net/rose/rose_link.c neigh->ax25 = ax25_send_frame(skb, 260, rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); neigh 110 net/rose/rose_link.c return neigh->ax25 != NULL; neigh 118 net/rose/rose_link.c static int rose_link_up(struct rose_neigh *neigh) neigh 124 net/rose/rose_link.c rose_call = (ax25_address *)neigh->dev->dev_addr; neigh 128 net/rose/rose_link.c ax25s = neigh->ax25; neigh 129 net/rose/rose_link.c neigh->ax25 = ax25_find_cb(rose_call, &neigh->callsign, neigh->digipeat, neigh->dev); neigh 133 net/rose/rose_link.c return neigh->ax25 != NULL; neigh 139 net/rose/rose_link.c void rose_link_rx_restart(struct sk_buff *skb, struct rose_neigh *neigh, unsigned short frametype) neigh 145 net/rose/rose_link.c rose_stop_t0timer(neigh); neigh 146 net/rose/rose_link.c neigh->restarted = 1; neigh 147 net/rose/rose_link.c neigh->dce_mode = (skb->data[3] == ROSE_DTE_ORIGINATED); neigh 148 net/rose/rose_link.c rose_transmit_restart_confirmation(neigh); neigh 152 net/rose/rose_link.c rose_stop_t0timer(neigh); neigh 153 net/rose/rose_link.c neigh->restarted = 1; neigh 166 net/rose/rose_link.c if (neigh->restarted) { neigh 167 net/rose/rose_link.c while ((skbn = skb_dequeue(&neigh->queue)) != NULL) neigh 168 net/rose/rose_link.c if (!rose_send_frame(skbn, neigh)) neigh 176 net/rose/rose_link.c static void rose_transmit_restart_request(struct rose_neigh *neigh) neigh 198 net/rose/rose_link.c if (!rose_send_frame(skb, neigh)) neigh 205 net/rose/rose_link.c static void rose_transmit_restart_confirmation(struct rose_neigh *neigh) neigh 225 net/rose/rose_link.c if (!rose_send_frame(skb, neigh)) neigh 233 net/rose/rose_link.c void rose_transmit_clear_request(struct rose_neigh *neigh, unsigned int lci, unsigned char cause, unsigned char diagnostic) neigh 255 net/rose/rose_link.c if (!rose_send_frame(skb, neigh)) neigh 259 net/rose/rose_link.c void rose_transmit_link(struct sk_buff *skb, struct rose_neigh *neigh) neigh 263 net/rose/rose_link.c if (neigh->loopback) { neigh 264 net/rose/rose_link.c rose_loopback_queue(skb, neigh); neigh 268 net/rose/rose_link.c if (!rose_link_up(neigh)) neigh 269 net/rose/rose_link.c neigh->restarted = 0; neigh 274 net/rose/rose_link.c if (neigh->restarted) { neigh 275 net/rose/rose_link.c if (!rose_send_frame(skb, neigh)) neigh 278 net/rose/rose_link.c skb_queue_tail(&neigh->queue, skb); neigh 280 net/rose/rose_link.c if (!rose_t0timer_running(neigh)) { neigh 281 net/rose/rose_link.c rose_transmit_restart_request(neigh); neigh 282 net/rose/rose_link.c neigh->dce_mode = 0; neigh 283 net/rose/rose_link.c rose_start_t0timer(neigh); neigh 34 net/rose/rose_loopback.c int rose_loopback_queue(struct sk_buff *skb, struct rose_neigh *neigh) neigh 659 net/rose/rose_route.c struct rose_route *rose_route_free_lci(unsigned int lci, struct rose_neigh *neigh) neigh 664 net/rose/rose_route.c if ((rose_route->neigh1 == neigh && rose_route->lci1 == lci) || neigh 665 net/rose/rose_route.c (rose_route->neigh2 == neigh && rose_route->lci2 == lci))