usr/src/cmd/mdb/common/modules/ip/ip.c
1939
ncec },
usr/src/cmd/mdb/common/modules/ip/ip.c
2086
ncec_l2_addr(const ncec_t *ncec, const ill_t *ill)
usr/src/cmd/mdb/common/modules/ip/ip.c
2091
if (ncec->ncec_lladdr == NULL) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2101
(uintptr_t)ncec->ncec_lladdr) == -1) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2103
ncec->ncec_lladdr);
usr/src/cmd/mdb/common/modules/ip/ip.c
2170
ncec_t ncec;
usr/src/cmd/mdb/common/modules/ip/ip.c
2192
if (mdb_vread(&ncec, sizeof (ncec_t), addr) == -1) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2196
if (ipversion != 0 && ncec.ncec_ipversion != ipversion) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2201
return (ncec_format(addr, &ncec, ipversion));
usr/src/cmd/mdb/common/modules/ip/ip.c
2216
ncec_format(uintptr_t addr, const ncec_t *ncec, int ipversion)
usr/src/cmd/mdb/common/modules/ip/ip.c
2234
if (mdb_vread(&ill, sizeof (ill), (uintptr_t)ncec->ncec_ill) == -1) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2236
ncec->ncec_ill);
usr/src/cmd/mdb/common/modules/ip/ip.c
2244
ncec->ncec_flags, ncec_flags);
usr/src/cmd/mdb/common/modules/ip/ip.c
2246
if (ipversion != 0 && ncec->ncec_ipversion != ipversion)
usr/src/cmd/mdb/common/modules/ip/ip.c
2249
if (ncec->ncec_ipversion == IPV4_VERSION) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2250
IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &nceaddr);
usr/src/cmd/mdb/common/modules/ip/ip.c
2254
addr, ncec_l2_addr(ncec, &ill),
usr/src/cmd/mdb/common/modules/ip/ip.c
2255
ncec_state(ncec->ncec_state),
usr/src/cmd/mdb/common/modules/ip/ip.c
2260
addr, ncec_l2_addr(ncec, &ill),
usr/src/cmd/mdb/common/modules/ip/ip.c
2261
ncec_state(ncec->ncec_state),
usr/src/cmd/mdb/common/modules/ip/ip.c
2263
ill_name, &ncec->ncec_addr);
usr/src/cmd/mdb/common/modules/ip/ip.c
227
static int ncec_format(uintptr_t addr, const ncec_t *ncec, int ipversion);
usr/src/cmd/mdb/common/modules/ip/ip.c
228
static int ncec(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv);
usr/src/cmd/mdb/common/modules/ip/ip.c
2463
if (mdb_vread(&nw->ncec, sizeof (ncec_t), addr) == -1) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2468
wsp->walk_addr = (uintptr_t)nw->ncec.ncec_next;
usr/src/cmd/mdb/common/modules/ip/ip.c
2486
ncec_t ncec;
usr/src/cmd/mdb/common/modules/ip/ip.c
2488
if (mdb_vread(&ncec, sizeof (ncec_t), addr) == -1) {
usr/src/cmd/mdb/common/modules/ip/ip.c
2492
(void) ncec_format(addr, &ncec, id->ncec_ipversion);
usr/src/cmd/mdb/common/modules/ip/ip.c
746
ncec_t ncec;
usr/src/cmd/mdb/common/modules/ip/ip.c
748
if (mdb_vread(&ncec, sizeof (ncec),
usr/src/cmd/mdb/common/modules/ip/ip.c
754
ncec.ncec_ipversion != nce_cb->nce_ipversion)
usr/src/cmd/mdb/common/modules/ip/ip.c
769
if (ncec.ncec_ipversion == IPV6_VERSION) {
usr/src/cmd/mdb/common/modules/ip/ip.c
92
ncec_t ncec;
usr/src/uts/common/inet/ip/ip.c
11227
ip_snmp_get2_v6_media(ncec_t *ncec, void *ptr)
usr/src/uts/common/inet/ip/ip.c
11233
ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip.c
11243
ntme.ipv6NetToMediaNetAddress = ncec->ncec_addr;
usr/src/uts/common/inet/ip/ip.c
11245
if (ncec->ncec_lladdr != NULL) {
usr/src/uts/common/inet/ip/ip.c
11246
bcopy(ncec->ncec_lladdr, ntme.ipv6NetToMediaPhysAddress.o_bytes,
usr/src/uts/common/inet/ip/ip.c
11254
ntme.ipv6NetToMediaState = ncec->ncec_state;
usr/src/uts/common/inet/ip/ip.c
11258
if (NCE_MYADDR(ncec)) {
usr/src/uts/common/inet/ip/ip.c
11260
} else if (ncec->ncec_flags & NCE_F_PUBLISH) {
usr/src/uts/common/inet/ip/ip.c
11262
} else if (ncec->ncec_flags & NCE_F_STATIC) {
usr/src/uts/common/inet/ip/ip.c
11264
} else if (ncec->ncec_flags & (NCE_F_MCAST|NCE_F_BCAST)) {
usr/src/uts/common/inet/ip/ip.c
11278
nce2ace(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip.c
11282
if (NCE_ISREACHABLE(ncec))
usr/src/uts/common/inet/ip/ip.c
11284
if (ncec->ncec_flags & NCE_F_AUTHORITY)
usr/src/uts/common/inet/ip/ip.c
11286
if (ncec->ncec_flags & NCE_F_PUBLISH)
usr/src/uts/common/inet/ip/ip.c
11288
if ((ncec->ncec_flags & NCE_F_NONUD) != 0)
usr/src/uts/common/inet/ip/ip.c
11290
if (NCE_MYADDR(ncec))
usr/src/uts/common/inet/ip/ip.c
11292
if (ncec->ncec_flags & NCE_F_UNVERIFIED)
usr/src/uts/common/inet/ip/ip.c
11294
if (ncec->ncec_flags & NCE_F_AUTHORITY)
usr/src/uts/common/inet/ip/ip.c
11296
if (ncec->ncec_flags & NCE_F_DELAYED)
usr/src/uts/common/inet/ip/ip.c
11305
ip_snmp_get2_v4_media(ncec_t *ncec, void *ptr)
usr/src/uts/common/inet/ip/ip.c
11313
ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip.c
11314
if (ill->ill_isv6 || (ncec->ncec_flags & NCE_F_BCAST) ||
usr/src/uts/common/inet/ip/ip.c
11321
if (NCE_MYADDR(ncec)) {
usr/src/uts/common/inet/ip/ip.c
11323
} else if (ncec->ncec_flags & (NCE_F_MCAST|NCE_F_BCAST|NCE_F_PUBLISH)) {
usr/src/uts/common/inet/ip/ip.c
11332
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, ncec_addr);
usr/src/uts/common/inet/ip/ip.c
11342
ntme.ipNetToMediaInfo.ntm_flags = nce2ace(ncec);
usr/src/uts/common/inet/ip/ip.c
11347
if (!NCE_ISREACHABLE(ncec))
usr/src/uts/common/inet/ip/ip.c
11350
if (ncec->ncec_lladdr != NULL) {
usr/src/uts/common/inet/ip/ip.c
11351
bcopy(ncec->ncec_lladdr,
usr/src/uts/common/inet/ip/ip.c
14508
ncec_t *ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip.c
14607
switch (ncec->ncec_state) {
usr/src/uts/common/inet/ip/ip.c
14677
if (ncec->ncec_flags & NCE_F_NONUD)
usr/src/uts/common/inet/ip/ip.c
14680
ASSERT(ncec->ncec_state != ND_INCOMPLETE);
usr/src/uts/common/inet/ip/ip.c
14692
ncec->ncec_last = TICK_TO_MSEC(now);
usr/src/uts/common/inet/ip/ip.c
14693
if (ncec->ncec_state != ND_REACHABLE) {
usr/src/uts/common/inet/ip/ip.c
14694
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14695
ncec->ncec_state = ND_REACHABLE;
usr/src/uts/common/inet/ip/ip.c
14696
tid = ncec->ncec_timeout_id;
usr/src/uts/common/inet/ip/ip.c
14697
ncec->ncec_timeout_id = 0;
usr/src/uts/common/inet/ip/ip.c
14698
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14705
&ncec->ncec_addr);
usr/src/uts/common/inet/ip/ip.c
14711
delta = TICK_TO_MSEC(now) - ncec->ncec_last;
usr/src/uts/common/inet/ip/ip.c
14716
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14717
switch (ncec->ncec_state) {
usr/src/uts/common/inet/ip/ip.c
14719
ASSERT((ncec->ncec_flags & NCE_F_NONUD) == 0);
usr/src/uts/common/inet/ip/ip.c
14733
ncec->ncec_state = ND_DELAY;
usr/src/uts/common/inet/ip/ip.c
14734
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14735
nce_restart_timer(ncec,
usr/src/uts/common/inet/ip/ip.c
14742
&ncec->ncec_addr);
usr/src/uts/common/inet/ip/ip.c
14747
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14760
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14764
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14775
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14776
if (NCE_ISREACHABLE(ncec)) {
usr/src/uts/common/inet/ip/ip.c
14777
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14781
nce_queue_mp(ncec, mp, is_probe);
usr/src/uts/common/inet/ip/ip.c
14782
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14784
(ncec_t *), ncec, (mblk_t *), mp);
usr/src/uts/common/inet/ip/ip.c
14793
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14794
if (NCE_ISREACHABLE(ncec)) {
usr/src/uts/common/inet/ip/ip.c
14795
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14798
nce_queue_mp(ncec, mp, is_probe);
usr/src/uts/common/inet/ip/ip.c
14799
if (ncec->ncec_state == ND_INITIAL) {
usr/src/uts/common/inet/ip/ip.c
14800
ncec->ncec_state = ND_INCOMPLETE;
usr/src/uts/common/inet/ip/ip.c
14801
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip.c
14806
ip_ndp_resolve(ncec);
usr/src/uts/common/inet/ip/ip.c
14808
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
103
sdl->sdl_type = ncec->ncec_ill->ill_type;
usr/src/uts/common/inet/ip/ip2mac.c
109
sdl->sdl_alen = ncec->ncec_ill->ill_phys_addr_length;
usr/src/uts/common/inet/ip/ip2mac.c
110
if (ncec->ncec_lladdr != NULL)
usr/src/uts/common/inet/ip/ip2mac.c
111
bcopy(ncec->ncec_lladdr, LLADDR(sdl), sdl->sdl_alen);
usr/src/uts/common/inet/ip/ip2mac.c
116
ncec_cb_refhold_locked(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip2mac.c
118
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip2mac.c
119
ncec->ncec_cb_walker_cnt++;
usr/src/uts/common/inet/ip/ip2mac.c
123
ncec_cb_refrele(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip2mac.c
127
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip2mac.c
128
if (--ncec->ncec_cb_walker_cnt == 0) {
usr/src/uts/common/inet/ip/ip2mac.c
129
for (ncec_cb = list_head(&ncec->ncec_cb); ncec_cb != NULL;
usr/src/uts/common/inet/ip/ip2mac.c
132
ncec_cb_next = list_next(&ncec->ncec_cb, ncec_cb);
usr/src/uts/common/inet/ip/ip2mac.c
135
list_remove(&ncec->ncec_cb, ncec_cb);
usr/src/uts/common/inet/ip/ip2mac.c
146
ncec_add_cb(ncec_t *ncec, ip2mac_callback_t *cb, void *cbarg)
usr/src/uts/common/inet/ip/ip2mac.c
151
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip2mac.c
162
nce_cb->ncec_cb_id = ncec; /* no refs! just an address */
usr/src/uts/common/inet/ip/ip2mac.c
163
list_insert_tail(&ncec->ncec_cb, nce_cb);
usr/src/uts/common/inet/ip/ip2mac.c
164
ip2mid = ncec; /* this is the id to be used in ip2mac_cancel */
usr/src/uts/common/inet/ip/ip2mac.c
180
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip2mac.c
240
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip2mac.c
241
delta = TICK_TO_MSEC(ddi_get_lbolt64()) - ncec->ncec_last;
usr/src/uts/common/inet/ip/ip2mac.c
242
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
243
if (NCE_ISREACHABLE(ncec) &&
usr/src/uts/common/inet/ip/ip2mac.c
245
ncec_ip2mac_response(ip2m, ncec);
usr/src/uts/common/inet/ip/ip2mac.c
250
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
258
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip2mac.c
259
delta = TICK_TO_MSEC(ddi_get_lbolt64()) - ncec->ncec_last;
usr/src/uts/common/inet/ip/ip2mac.c
260
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
261
if (NCE_ISCONDEMNED(ncec)) {
usr/src/uts/common/inet/ip/ip2mac.c
264
if (NCE_ISREACHABLE(ncec)) {
usr/src/uts/common/inet/ip/ip2mac.c
265
if (NCE_MYADDR(ncec) ||
usr/src/uts/common/inet/ip/ip2mac.c
267
ncec_ip2mac_response(ip2m, ncec);
usr/src/uts/common/inet/ip/ip2mac.c
269
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
286
ncec->ncec_rcnt = ill->ill_xmit_count;
usr/src/uts/common/inet/ip/ip2mac.c
287
ncec->ncec_state = ND_PROBE;
usr/src/uts/common/inet/ip/ip2mac.c
289
} else if (ncec->ncec_state == ND_INITIAL) {
usr/src/uts/common/inet/ip/ip2mac.c
291
ncec->ncec_state = ND_INCOMPLETE;
usr/src/uts/common/inet/ip/ip2mac.c
297
if (ncec->ncec_rcnt > 0) {
usr/src/uts/common/inet/ip/ip2mac.c
302
ip2mid = ncec_add_cb(ncec, cb, cbarg);
usr/src/uts/common/inet/ip/ip2mac.c
311
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
318
ip_ndp_resolve(ncec);
usr/src/uts/common/inet/ip/ip2mac.c
340
ip2mac_cancel_callback(ncec_t *ncec, void *arg)
usr/src/uts/common/inet/ip/ip2mac.c
346
if (ip2m_nce_cb->ncec_cb_id != ncec)
usr/src/uts/common/inet/ip/ip2mac.c
349
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
350
if (list_is_empty(&ncec->ncec_cb)) {
usr/src/uts/common/inet/ip/ip2mac.c
351
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
362
ncec_cb = list_head(&ncec->ncec_cb);
usr/src/uts/common/inet/ip/ip2mac.c
363
for (; ncec_cb != NULL; ncec_cb = list_next(&ncec->ncec_cb, ncec_cb)) {
usr/src/uts/common/inet/ip/ip2mac.c
370
if (ncec->ncec_cb_walker_cnt == 0) {
usr/src/uts/common/inet/ip/ip2mac.c
371
list_remove(&ncec->ncec_cb, ncec_cb);
usr/src/uts/common/inet/ip/ip2mac.c
377
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
41
ncec_cb_dispatch(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip2mac.c
46
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
47
if (list_is_empty(&ncec->ncec_cb)) {
usr/src/uts/common/inet/ip/ip2mac.c
48
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
51
ncec_ip2mac_response(&ip2m, ncec);
usr/src/uts/common/inet/ip/ip2mac.c
52
ncec_cb_refhold_locked(ncec);
usr/src/uts/common/inet/ip/ip2mac.c
61
ncec_cb = list_head(&ncec->ncec_cb);
usr/src/uts/common/inet/ip/ip2mac.c
62
for (; ncec_cb != NULL; ncec_cb = list_next(&ncec->ncec_cb, ncec_cb)) {
usr/src/uts/common/inet/ip/ip2mac.c
66
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
68
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
70
ncec_cb_refrele(ncec);
usr/src/uts/common/inet/ip/ip2mac.c
71
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip2mac.c
78
ncec_ip2mac_response(ip2mac_t *ip2m, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip2mac.c
80
boolean_t isv6 = (ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip2mac.c
85
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip2mac.c
87
if (NCE_ISREACHABLE(ncec) && !NCE_ISCONDEMNED(ncec))
usr/src/uts/common/inet/ip/ip2mac.c
94
sin6->sin6_addr = ncec->ncec_addr;
usr/src/uts/common/inet/ip/ip2mac.c
98
IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &sin->sin_addr);
usr/src/uts/common/inet/ip/ip6.c
1629
ncec_t *ncec = NULL;
usr/src/uts/common/inet/ip/ip6.c
1660
ncec = ncec_lookup_illgrp_v6(ill, targetp);
usr/src/uts/common/inet/ip/ip6.c
1661
if (ncec != NULL && ncec->ncec_state != ND_INCOMPLETE &&
usr/src/uts/common/inet/ip/ip6.c
1662
ncec->ncec_lladdr != NULL) {
usr/src/uts/common/inet/ip/ip6.c
1670
if (ncec != NULL)
usr/src/uts/common/inet/ip/ip6.c
1671
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip6.c
1686
if (ncec != NULL && ll_opt_len != 0) {
usr/src/uts/common/inet/ip/ip6.c
1689
bcopy((char *)ncec->ncec_lladdr, &opt[1],
usr/src/uts/common/inet/ip/ip6.c
1692
if (ncec != NULL)
usr/src/uts/common/inet/ip/ip6.c
1693
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_arp.c
1442
ip_recv_attr_t *ira, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_arp.c
1470
if (ip_nce_conflict(mp, ira, ncec)) {
usr/src/uts/common/inet/ip/ip_arp.c
1478
(void) arp_announce(ncec);
usr/src/uts/common/inet/ip/ip_arp.c
1484
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_arp.c
1638
arp_request(ncec_t *ncec, in_addr_t sender, ill_t *ill)
usr/src/uts/common/inet/ip/ip_arp.c
1644
boolean_t use_rcnt = !NCE_ISREACHABLE(ncec);
usr/src/uts/common/inet/ip/ip_arp.c
1646
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_arp.c
1649
if (use_rcnt && ncec->ncec_rcnt == 0) {
usr/src/uts/common/inet/ip/ip_arp.c
1657
IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &nce_paddr);
usr/src/uts/common/inet/ip/ip_arp.c
1662
if (NCE_ISREACHABLE(ncec)) {
usr/src/uts/common/inet/ip/ip_arp.c
1663
dst_lladdr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_arp.c
1669
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
1673
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
1684
return (ncec->ncec_ill->ill_reachable_retrans_time);
usr/src/uts/common/inet/ip/ip_arp.c
1688
ncec->ncec_rcnt--;
usr/src/uts/common/inet/ip/ip_arp.c
1690
return (ncec->ncec_ill->ill_reachable_retrans_time);
usr/src/uts/common/inet/ip/ip_arp.c
1695
arp_announce(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_arp.c
1703
ASSERT((ncec->ncec_flags & NCE_F_BCAST) == 0);
usr/src/uts/common/inet/ip/ip_arp.c
1704
ASSERT((ncec->ncec_flags & NCE_F_MCAST) == 0);
usr/src/uts/common/inet/ip/ip_arp.c
1706
if (IS_IPMP(ncec->ncec_ill)) {
usr/src/uts/common/inet/ip/ip_arp.c
1708
ill = ipmp_ill_hold_xmit_ill(ncec->ncec_ill, B_FALSE);
usr/src/uts/common/inet/ip/ip_arp.c
1713
ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_arp.c
1719
IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &ncec_addr);
usr/src/uts/common/inet/ip/ip_arp.c
1721
sphys_addr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_arp.c
1735
arp_probe(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_arp.c
1742
if (IS_IPMP(ncec->ncec_ill)) {
usr/src/uts/common/inet/ip/ip_arp.c
1743
ill = ipmp_ill_hold_xmit_ill(ncec->ncec_ill, B_FALSE);
usr/src/uts/common/inet/ip/ip_arp.c
1747
ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_arp.c
1750
IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &ncec_addr);
usr/src/uts/common/inet/ip/ip_arp.c
1752
sphys_addr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_arp.c
1757
if (IS_IPMP(ncec->ncec_ill))
usr/src/uts/common/inet/ip/ip_arp.c
220
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_arp.c
227
ncec = ncec_lookup_illgrp_v4(ill, src_paddr);
usr/src/uts/common/inet/ip/ip_arp.c
228
*sncec = ncec;
usr/src/uts/common/inet/ip/ip_arp.c
230
if (ncec == NULL) {
usr/src/uts/common/inet/ip/ip_arp.c
235
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
242
lladdr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_arp.c
243
if (NCE_MYADDR(ncec) && hlen == ncec->ncec_ill->ill_phys_addr_length &&
usr/src/uts/common/inet/ip/ip_arp.c
245
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
255
if (ncec->ncec_flags & NCE_F_UNVERIFIED) {
usr/src/uts/common/inet/ip/ip_arp.c
256
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
257
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_arp.c
258
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_arp.c
277
if (ncec->ncec_flags & NCE_F_AUTHORITY) {
usr/src/uts/common/inet/ip/ip_arp.c
278
ncec->ncec_unsolicit_count = 0;
usr/src/uts/common/inet/ip/ip_arp.c
279
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
291
ASSERT(!IS_UNDER_IPMP(ncec->ncec_ill));
usr/src/uts/common/inet/ip/ip_arp.c
304
(void *)ncec, *src_paddr));
usr/src/uts/common/inet/ip/ip_arp.c
306
if (ncec->ncec_state == ND_INCOMPLETE ||
usr/src/uts/common/inet/ip/ip_arp.c
307
ncec->ncec_state == ND_INITIAL) {
usr/src/uts/common/inet/ip/ip_arp.c
310
ll_changed = nce_cmp_ll_addr(ncec, src_haddr, hlen);
usr/src/uts/common/inet/ip/ip_arp.c
324
switch (ncec->ncec_state) {
usr/src/uts/common/inet/ip/ip_arp.c
337
nce_update(ncec, new_state, (ll_changed ? src_haddr : NULL));
usr/src/uts/common/inet/ip/ip_arp.c
338
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_arp.c
339
nce_resolv_ok(ncec);
usr/src/uts/common/inet/ip/ip_if.c
12237
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_if.c
12242
ncec = ncec_lookup_illgrp_v6(ipif->ipif_ill,
usr/src/uts/common/inet/ip/ip_if.c
12263
ncec = ncec_lookup_illgrp_v4(ipif->ipif_ill, &v4addr);
usr/src/uts/common/inet/ip/ip_if.c
12266
if (ncec == NULL) {
usr/src/uts/common/inet/ip/ip_if.c
12271
if (!nce_restart_dad(ncec)) {
usr/src/uts/common/inet/ip/ip_if.c
12280
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_if.c
2745
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_if.c
2756
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_if.c
2757
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_if.c
2759
ncec->ncec_flags |= NCE_F_ISROUTER;
usr/src/uts/common/inet/ip/ip_if.c
2761
ncec->ncec_flags &= ~NCE_F_ISROUTER;
usr/src/uts/common/inet/ip/ip_if.c
2762
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_if.c
8197
ncec_t *ncec = NULL;
usr/src/uts/common/inet/ip/ip_if.c
8301
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_if.c
8309
if (ncec == NULL) {
usr/src/uts/common/inet/ip/ip_if.c
8314
if (NCE_MYADDR(ncec)) {
usr/src/uts/common/inet/ip/ip_if.c
8324
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_if.c
8336
if (ncec != NULL) {
usr/src/uts/common/inet/ip/ip_if.c
8337
lladdr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_if.c
8338
flags = ncec->ncec_flags;
usr/src/uts/common/inet/ip/ip_if.c
8340
ip_sioctl_garp_reply(mp, ncec->ncec_ill, lladdr, flags);
usr/src/uts/common/inet/ip/ip_if.c
8348
if (ncec != NULL && NCE_MYADDR(ncec)) {
usr/src/uts/common/inet/ip/ip_if.c
8378
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_if.c
8379
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_if.c
8380
ncec->ncec_state = ND_REACHABLE;
usr/src/uts/common/inet/ip/ip_if.c
8381
ncec->ncec_flags = flags;
usr/src/uts/common/inet/ip/ip_if.c
8382
nce_update(ncec, ND_UNCHANGED, lladdr);
usr/src/uts/common/inet/ip/ip_if.c
8383
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1112
ncec_mcast_reap_one(ncec_t *ncec, void *arg)
usr/src/uts/common/inet/ip/ip_ndp.c
1118
if (ncec == NULL || ncec->ncec_ill != ill ||
usr/src/uts/common/inet/ip/ip_ndp.c
1119
(ncec->ncec_flags & NCE_F_MCAST) == 0)
usr/src/uts/common/inet/ip/ip_ndp.c
1122
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1129
ASSERT(ncec->ncec_refcnt >= 2);
usr/src/uts/common/inet/ip/ip_ndp.c
113
static void nce_cleanup_list(ncec_t *ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1130
reapit = (ncec->ncec_refcnt == 2);
usr/src/uts/common/inet/ip/ip_ndp.c
1131
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1135
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
114
static void nce_set_ll(ncec_t *ncec, uchar_t *ll_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
1305
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
1319
ncec = ncec_lookup_illgrp_v6(ill, addr);
usr/src/uts/common/inet/ip/ip_ndp.c
1320
if (ncec == NULL)
usr/src/uts/common/inet/ip/ip_ndp.c
1323
if (!NCE_ISREACHABLE(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
1324
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1328
bcopy(ncec->ncec_lladdr, (uchar_t *)&lnr->lnr_hdw_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
1330
if (ncec->ncec_flags & NCE_F_ISROUTER)
usr/src/uts/common/inet/ip/ip_ndp.c
1332
if (ncec->ncec_flags & NCE_F_ANYCAST)
usr/src/uts/common/inet/ip/ip_ndp.c
1334
if (ncec->ncec_flags & NCE_F_STATIC)
usr/src/uts/common/inet/ip/ip_ndp.c
1336
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1377
ip_ndp_resolve(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
1384
src_ill = nce_resolve_src(ncec, &sender6);
usr/src/uts/common/inet/ip/ip_ndp.c
1387
ms = ncec->ncec_ill->ill_reachable_retrans_time;
usr/src/uts/common/inet/ip/ip_ndp.c
1388
nce_restart_timer(ncec, (clock_t)ms);
usr/src/uts/common/inet/ip/ip_ndp.c
1391
if (ncec->ncec_ipversion == IPV4_VERSION)
usr/src/uts/common/inet/ip/ip_ndp.c
1393
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1394
if (ncec->ncec_ipversion == IPV6_VERSION)
usr/src/uts/common/inet/ip/ip_ndp.c
1395
ms = ndp_solicit(ncec, sender6, src_ill);
usr/src/uts/common/inet/ip/ip_ndp.c
1397
ms = arp_request(ncec, sender4, src_ill);
usr/src/uts/common/inet/ip/ip_ndp.c
1398
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1400
if (ncec->ncec_state != ND_REACHABLE) {
usr/src/uts/common/inet/ip/ip_ndp.c
1401
if (ncec->ncec_ipversion == IPV6_VERSION)
usr/src/uts/common/inet/ip/ip_ndp.c
1402
ndp_resolv_failed(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1404
arp_resolv_failed(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1405
ASSERT((ncec->ncec_flags & NCE_F_STATIC) == 0);
usr/src/uts/common/inet/ip/ip_ndp.c
1406
nce_make_unreachable(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1407
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
1410
nce_restart_timer(ncec, (clock_t)ms);
usr/src/uts/common/inet/ip/ip_ndp.c
1428
ndp_solicit(ncec_t *ncec, in6_addr_t src, ill_t *ill)
usr/src/uts/common/inet/ip/ip_ndp.c
1433
ASSERT(ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
1434
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
1436
if (ncec->ncec_rcnt == 0)
usr/src/uts/common/inet/ip/ip_ndp.c
1439
dst = ncec->ncec_addr;
usr/src/uts/common/inet/ip/ip_ndp.c
1440
ncec->ncec_rcnt--;
usr/src/uts/common/inet/ip/ip_ndp.c
1441
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1444
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1446
ncec->ncec_rcnt++;
usr/src/uts/common/inet/ip/ip_ndp.c
1447
return (ncec->ncec_ill->ill_reachable_retrans_time);
usr/src/uts/common/inet/ip/ip_ndp.c
175
nce_dad(ncec_t *ncec, ill_t *src_ill, boolean_t send_probe)
usr/src/uts/common/inet/ip/ip_ndp.c
1792
ip_nce_conflict(mblk_t *mp, ip_recv_attr_t *ira, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
180
ASSERT(!(ncec->ncec_flags & NCE_F_MCAST));
usr/src/uts/common/inet/ip/ip_ndp.c
1805
ipif = ipif_lookup_addr_v6(&ncec->ncec_addr, ill, ALL_ZONES,
usr/src/uts/common/inet/ip/ip_ndp.c
181
ASSERT(!(ncec->ncec_flags & NCE_F_BCAST));
usr/src/uts/common/inet/ip/ip_ndp.c
1815
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, ncec_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
182
if (ncec->ncec_ipversion == IPV6_VERSION) {
usr/src/uts/common/inet/ip/ip_ndp.c
1835
elapsed = (drv_hztousec(now - ncec->ncec_last_time_defended))/1000000;
usr/src/uts/common/inet/ip/ip_ndp.c
1836
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
1837
if ((defs = ncec->ncec_defense_count) > 0 &&
usr/src/uts/common/inet/ip/ip_ndp.c
184
ncec->ncec_lladdr, ncec->ncec_lladdr_length,
usr/src/uts/common/inet/ip/ip_ndp.c
1843
ncec->ncec_defense_count = defs = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
1845
ncec->ncec_defense_count++;
usr/src/uts/common/inet/ip/ip_ndp.c
1846
ncec->ncec_last_time_defended = now;
usr/src/uts/common/inet/ip/ip_ndp.c
1847
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
185
&ipv6_all_zeros, &ncec->ncec_addr, NDP_PROBE);
usr/src/uts/common/inet/ip/ip_ndp.c
190
dropped = arp_probe(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
193
probe_interval = nce_fuzz_interval(ncec->ncec_xmit_interval,
usr/src/uts/common/inet/ip/ip_ndp.c
197
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
198
ncec->ncec_pcnt--;
usr/src/uts/common/inet/ip/ip_ndp.c
199
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
201
nce_restart_timer(ncec, probe_interval);
usr/src/uts/common/inet/ip/ip_ndp.c
208
nce_advert_flags(const ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
212
if (ncec->ncec_flags & NCE_F_ISROUTER)
usr/src/uts/common/inet/ip/ip_ndp.c
214
if (!(ncec->ncec_flags & NCE_F_ANYCAST))
usr/src/uts/common/inet/ip/ip_ndp.c
251
ncec_t *ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
253
uchar_t *hw_addr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_ndp.c
2534
nce_make_unreachable(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
2536
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2537
ncec->ncec_state = ND_UNREACHABLE;
usr/src/uts/common/inet/ip/ip_ndp.c
2538
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
254
uint_t hw_addr_len = ncec->ncec_lladdr_length;
usr/src/uts/common/inet/ip/ip_ndp.c
255
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
2550
ncec_t *ncec = arg;
usr/src/uts/common/inet/ip/ip_ndp.c
2551
ill_t *ill = ncec->ncec_ill, *src_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
2554
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
2555
boolean_t isv6 = (ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
2565
ASSERT(ncec != NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
2566
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2567
ncec_refhold_locked(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2568
ncec->ncec_timeout_id = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
2569
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
257
uint16_t flags = ncec->ncec_flags;
usr/src/uts/common/inet/ip/ip_ndp.c
2571
src_ill = nce_resolve_src(ncec, &sender6);
usr/src/uts/common/inet/ip/ip_ndp.c
2575
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, sender4);
usr/src/uts/common/inet/ip/ip_ndp.c
2580
&ncec->ncec_addr, addrbuf, sizeof (addrbuf))));
usr/src/uts/common/inet/ip/ip_ndp.c
2582
nce_restart_timer(ncec, ill->ill_reachable_retrans_time);
usr/src/uts/common/inet/ip/ip_ndp.c
2583
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2589
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2593
switch (ncec->ncec_state) {
usr/src/uts/common/inet/ip/ip_ndp.c
2595
ASSERT(ncec->ncec_lladdr != NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
2596
ncec->ncec_state = ND_PROBE;
usr/src/uts/common/inet/ip/ip_ndp.c
2597
ncec->ncec_pcnt = ND_MAX_UNICAST_SOLICIT;
usr/src/uts/common/inet/ip/ip_ndp.c
2599
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2603
&sender6, &ncec->ncec_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
2606
dropped = (arp_request(ncec, sender4, src_ill) == 0);
usr/src/uts/common/inet/ip/ip_ndp.c
2607
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2610
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2611
ncec->ncec_pcnt--;
usr/src/uts/common/inet/ip/ip_ndp.c
2612
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2617
"to PROBE\n", AF_INET6, &ncec->ncec_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
2619
nce_restart_timer(ncec, ill->ill_reachable_retrans_time);
usr/src/uts/common/inet/ip/ip_ndp.c
2623
ASSERT(ncec->ncec_pcnt >= -1);
usr/src/uts/common/inet/ip/ip_ndp.c
2624
if (ncec->ncec_pcnt > 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2632
ncec->ncec_pcnt,
usr/src/uts/common/inet/ip/ip_ndp.c
2634
&ncec->ncec_addr, addrbuf, sizeof (addrbuf))));
usr/src/uts/common/inet/ip/ip_ndp.c
2635
if (NCE_PUBLISH(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
2636
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2643
nce_dad(ncec, src_ill, B_TRUE);
usr/src/uts/common/inet/ip/ip_ndp.c
2647
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2652
&sender6, &ncec->ncec_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
2660
dropped = (arp_request(ncec, sender4,
usr/src/uts/common/inet/ip/ip_ndp.c
2662
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2665
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2666
ncec->ncec_pcnt--;
usr/src/uts/common/inet/ip/ip_ndp.c
2667
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2669
nce_restart_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
267
if (NCE_PUBLISH(ncec) || !NCE_ISREACHABLE(ncec) ||
usr/src/uts/common/inet/ip/ip_ndp.c
2672
} else if (ncec->ncec_pcnt < 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2675
ncec->ncec_state = ND_UNREACHABLE;
usr/src/uts/common/inet/ip/ip_ndp.c
2676
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2681
&ncec->ncec_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
2684
if ((ncec->ncec_flags & NCE_F_STATIC) == 0)
usr/src/uts/common/inet/ip/ip_ndp.c
2685
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2687
} else if (!NCE_PUBLISH(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
2693
ASSERT((ncec->ncec_flags & NCE_F_NONUD) == 0);
usr/src/uts/common/inet/ip/ip_ndp.c
2695
ncec->ncec_pcnt, inet_ntop(AF_INET6,
usr/src/uts/common/inet/ip/ip_ndp.c
2696
&ncec->ncec_addr, addrbuf, sizeof (addrbuf))));
usr/src/uts/common/inet/ip/ip_ndp.c
2697
ncec->ncec_pcnt--;
usr/src/uts/common/inet/ip/ip_ndp.c
2698
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2700
nce_restart_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
2711
ncec->ncec_state = ND_REACHABLE;
usr/src/uts/common/inet/ip/ip_ndp.c
2712
ncec->ncec_flags &= ~NCE_F_UNVERIFIED;
usr/src/uts/common/inet/ip/ip_ndp.c
2713
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2716
&ncec->ncec_addr, ill, ipst);
usr/src/uts/common/inet/ip/ip_ndp.c
2718
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
273
if (NCE_PUBLISH(ncec) && ncec->ncec_state == ND_PROBE) {
usr/src/uts/common/inet/ip/ip_ndp.c
2746
if (ncec->ncec_unsolicit_count > 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2747
ncec->ncec_unsolicit_count--;
usr/src/uts/common/inet/ip/ip_ndp.c
2749
dropped = ndp_announce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2751
dropped = arp_announce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2755
ncec->ncec_unsolicit_count++;
usr/src/uts/common/inet/ip/ip_ndp.c
2757
ncec->ncec_last_time_defended =
usr/src/uts/common/inet/ip/ip_ndp.c
2760
if (ncec->ncec_unsolicit_count > 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2761
nce_restart_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
2764
nce_restart_timer(ncec, DEFENSE_INTERVAL(isv6));
usr/src/uts/common/inet/ip/ip_ndp.c
2773
ncec->ncec_state = ND_REACHABLE;
usr/src/uts/common/inet/ip/ip_ndp.c
2774
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2788
prevmpp = &ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
2789
for (mp = ncec->ncec_qd_mp; mp != NULL; mp = nextmp) {
usr/src/uts/common/inet/ip/ip_ndp.c
2792
if (IS_UNDER_IPMP(ill) && ncec->ncec_nprobes > 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2794
ncec->ncec_nprobes--;
usr/src/uts/common/inet/ip/ip_ndp.c
2804
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2805
ip_ndp_resolve(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2809
if (((ncec->ncec_flags & NCE_F_UNSOL_ADV) &&
usr/src/uts/common/inet/ip/ip_ndp.c
2810
ncec->ncec_unsolicit_count != 0) ||
usr/src/uts/common/inet/ip/ip_ndp.c
2811
(NCE_PUBLISH(ncec) && DEFENSE_INTERVAL(isv6) != 0)) {
usr/src/uts/common/inet/ip/ip_ndp.c
2812
if (ncec->ncec_unsolicit_count > 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2813
ncec->ncec_unsolicit_count--;
usr/src/uts/common/inet/ip/ip_ndp.c
2814
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2822
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2823
rate_limit = ill_defend_rate_limit(ill, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2825
nce_restart_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
2831
dropped = ndp_announce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2833
dropped = arp_announce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2835
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2837
ncec->ncec_unsolicit_count++;
usr/src/uts/common/inet/ip/ip_ndp.c
2839
ncec->ncec_last_time_defended =
usr/src/uts/common/inet/ip/ip_ndp.c
284
nce_dad(ncec, hwaddr_ill, B_TRUE);
usr/src/uts/common/inet/ip/ip_ndp.c
2842
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2843
if (ncec->ncec_unsolicit_count != 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
2844
nce_restart_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
2847
nce_restart_timer(ncec, DEFENSE_INTERVAL(isv6));
usr/src/uts/common/inet/ip/ip_ndp.c
2850
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2854
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2858
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
2867
nce_set_ll(ncec_t *ncec, uchar_t *ll_addr)
usr/src/uts/common/inet/ip/ip_ndp.c
2869
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
2890
bcopy(ll_addr, ncec->ncec_lladdr, ill->ill_nd_lla_len);
usr/src/uts/common/inet/ip/ip_ndp.c
2895
nce_cmp_ll_addr(const ncec_t *ncec, const uchar_t *ll_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
2898
ASSERT(ncec->ncec_lladdr != NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
2901
if (bcmp(ll_addr, ncec->ncec_lladdr, ll_addr_len) != 0)
usr/src/uts/common/inet/ip/ip_ndp.c
2911
nce_update(ncec_t *ncec, uint16_t new_state, uchar_t *new_ll_addr)
usr/src/uts/common/inet/ip/ip_ndp.c
2913
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
2919
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
292
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2929
if ((ncec->ncec_flags & NCE_F_NONUD) &&
usr/src/uts/common/inet/ip/ip_ndp.c
293
ncec->ncec_unsolicit_count =
usr/src/uts/common/inet/ip/ip_ndp.c
2930
(ncec->ncec_state != ND_INCOMPLETE))
usr/src/uts/common/inet/ip/ip_ndp.c
2936
ncec->ncec_last = TICK_TO_MSEC(ddi_get_lbolt64());
usr/src/uts/common/inet/ip/ip_ndp.c
2939
ncec->ncec_last = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
2941
ncec->ncec_state = new_state;
usr/src/uts/common/inet/ip/ip_ndp.c
2942
ncec->ncec_pcnt = ND_MAX_UNICAST_SOLICIT;
usr/src/uts/common/inet/ip/ip_ndp.c
2943
ASSERT(ncec->ncec_lladdr != NULL || new_state == ND_INITIAL ||
usr/src/uts/common/inet/ip/ip_ndp.c
2948
if (need_stop_timer || (ncec->ncec_flags & NCE_F_STATIC)) {
usr/src/uts/common/inet/ip/ip_ndp.c
2949
tid = ncec->ncec_timeout_id;
usr/src/uts/common/inet/ip/ip_ndp.c
295
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2950
ncec->ncec_timeout_id = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
2958
bcopy(new_ll_addr, ncec->ncec_lladdr,
usr/src/uts/common/inet/ip/ip_ndp.c
2962
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2963
if (need_stop_timer || (ncec->ncec_flags & NCE_F_STATIC)) {
usr/src/uts/common/inet/ip/ip_ndp.c
2973
nce_fastpath_list_delete(ncec->ncec_ill, ncec, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
2977
nce = nce_fastpath(ncec, B_TRUE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
2981
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
2985
nce_queue_mp_common(ncec_t *ncec, mblk_t *mp, boolean_t head_insert)
usr/src/uts/common/inet/ip/ip_ndp.c
2990
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
2992
for (mpp = &ncec->ncec_qd_mp; *mpp != NULL; mpp = &(*mpp)->b_next) {
usr/src/uts/common/inet/ip/ip_ndp.c
2993
if (++count > ncec->ncec_ill->ill_max_buf) {
usr/src/uts/common/inet/ip/ip_ndp.c
2994
tmp = ncec->ncec_qd_mp->b_next;
usr/src/uts/common/inet/ip/ip_ndp.c
2995
ncec->ncec_qd_mp->b_next = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
300
&ncec->ncec_addr, /* Source and target of the adv */
usr/src/uts/common/inet/ip/ip_ndp.c
3000
BUMP_MIB(ncec->ncec_ill->ill_ip_mib,
usr/src/uts/common/inet/ip/ip_ndp.c
3002
ip_drop_output("ipIfStatsOutDiscards", ncec->ncec_qd_mp,
usr/src/uts/common/inet/ip/ip_ndp.c
3003
ncec->ncec_ill);
usr/src/uts/common/inet/ip/ip_ndp.c
3004
freemsg(ncec->ncec_qd_mp);
usr/src/uts/common/inet/ip/ip_ndp.c
3005
ncec->ncec_qd_mp = tmp;
usr/src/uts/common/inet/ip/ip_ndp.c
3010
ncec->ncec_nprobes++;
usr/src/uts/common/inet/ip/ip_ndp.c
3011
mp->b_next = ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
3012
ncec->ncec_qd_mp = mp;
usr/src/uts/common/inet/ip/ip_ndp.c
302
nce_advert_flags(ncec));
usr/src/uts/common/inet/ip/ip_ndp.c
303
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3043
nce_queue_mp(ncec_t *ncec, mblk_t *mp, boolean_t head_insert)
usr/src/uts/common/inet/ip/ip_ndp.c
3045
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
3046
nce_queue_mp_common(ncec, mp, head_insert);
usr/src/uts/common/inet/ip/ip_ndp.c
305
ncec->ncec_unsolicit_count++;
usr/src/uts/common/inet/ip/ip_ndp.c
3054
ndp_resolv_failed(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3058
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
307
ncec->ncec_last_time_defended = ddi_get_lbolt();
usr/src/uts/common/inet/ip/ip_ndp.c
3074
inet_ntop(AF_INET6, (char *)&ncec->ncec_addr, buf, sizeof (buf))));
usr/src/uts/common/inet/ip/ip_ndp.c
3075
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3076
mp = ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
3077
ncec->ncec_qd_mp = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
3078
ncec->ncec_nprobes = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
3079
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
308
if (ncec->ncec_unsolicit_count != 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
309
nce_start_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
3092
ncec_cb_dispatch(ncec); /* finish off waiting callbacks */
usr/src/uts/common/inet/ip/ip_ndp.c
3099
nce_resolv_ok(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3105
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
3106
boolean_t isv6 = (ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
3109
if (IS_IPMP(ncec->ncec_ill)) {
usr/src/uts/common/inet/ip/ip_ndp.c
3110
nce_resolv_ipmp_ok(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3115
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3116
ASSERT(ncec->ncec_nprobes == 0);
usr/src/uts/common/inet/ip/ip_ndp.c
3117
mp = ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
3118
ncec->ncec_qd_mp = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
3119
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
312
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3143
nce = nce_lookup(ill, &ncec->ncec_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
3171
ncec_cb_dispatch(ncec); /* complete callbacks */
usr/src/uts/common/inet/ip/ip_ndp.c
3184
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
3253
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
3254
old_flags = ncec->ncec_flags;
usr/src/uts/common/inet/ip/ip_ndp.c
3256
ncec_router_to_host(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3273
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3274
ncec->ncec_flags = new_flags;
usr/src/uts/common/inet/ip/ip_ndp.c
3275
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3282
nce_process(ncec, (uchar_t *)lnr->lnr_hdw_addr, 0, B_FALSE);
usr/src/uts/common/inet/ip/ip_ndp.c
3293
nce_fastpath_create(ill_t *ill, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3298
nce = nce_ill_lookup_then_add(ill, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3310
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3311
if (ncec->ncec_lladdr != NULL) {
usr/src/uts/common/inet/ip/ip_ndp.c
3312
bcopy(ncec->ncec_lladdr, nce->nce_dlur_mp->b_rptr +
usr/src/uts/common/inet/ip/ip_ndp.c
3318
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3336
nce_fastpath(ncec_t *ncec, boolean_t trigger_fp_req, nce_t *ncec_nce)
usr/src/uts/common/inet/ip/ip_ndp.c
3339
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
3345
ipmp_ncec_refresh_nce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3355
nce = nce_fastpath_create(ill, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3375
ncec_t *ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
3386
nce_fastpath_list_delete(ill, ncec, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
3393
nce_ill_lookup_then_add_locked(ill_t *ill, ncec_t *ncec, list_t *graveyard)
usr/src/uts/common/inet/ip/ip_ndp.c
3404
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3409
if (!NCE_ISCONDEMNED(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
3410
nce = nce_lookup(ill, &ncec->ncec_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
3413
nce = nce_add(ill, ncec, graveyard);
usr/src/uts/common/inet/ip/ip_ndp.c
3416
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3421
nce_ill_lookup_then_add(ill_t *ill, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3428
nce = nce_ill_lookup_then_add_locked(ill, ncec, &graveyard);
usr/src/uts/common/inet/ip/ip_ndp.c
3441
nce_fastpath_list_delete(ill_t *ill, ncec_t *ncec, list_t *dead)
usr/src/uts/common/inet/ip/ip_ndp.c
3449
ipmp_ncec_delete_nce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3455
if (nce->nce_common == ncec) {
usr/src/uts/common/inet/ip/ip_ndp.c
3513
ncec_t *ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
3540
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3544
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3548
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3650
ncec_cache_reclaim(ncec_t *ncec, void *arg)
usr/src/uts/common/inet/ip/ip_ndp.c
3652
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
3656
if ((ncec->ncec_flags &
usr/src/uts/common/inet/ip/ip_ndp.c
3662
NCE_ADDR_HASH_V6(ncec->ncec_addr, NCE_TABLE_SIZE);
usr/src/uts/common/inet/ip/ip_ndp.c
3665
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3721
ncec_trace_ref(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3723
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
3725
if (ncec->ncec_trace_disable)
usr/src/uts/common/inet/ip/ip_ndp.c
3728
if (!th_trace_ref(ncec, ncec->ncec_ipst)) {
usr/src/uts/common/inet/ip/ip_ndp.c
3729
ncec->ncec_trace_disable = B_TRUE;
usr/src/uts/common/inet/ip/ip_ndp.c
3730
ncec_trace_cleanup(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3735
ncec_untrace_ref(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3737
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
3739
if (!ncec->ncec_trace_disable)
usr/src/uts/common/inet/ip/ip_ndp.c
3740
th_trace_unref(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
3744
ncec_trace_cleanup(const ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3746
th_trace_cleanup(ncec, ncec->ncec_trace_disable);
usr/src/uts/common/inet/ip/ip_ndp.c
3755
arp_resolv_failed(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
3760
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
3761
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
3776
IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &ipv4addr);
usr/src/uts/common/inet/ip/ip_ndp.c
3779
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3780
mp = ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
3781
ncec->ncec_qd_mp = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
3782
ncec->ncec_nprobes = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
3783
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
3801
ncec_cb_dispatch(ncec); /* finish off waiting callbacks */
usr/src/uts/common/inet/ip/ip_ndp.c
3966
ncec_t *ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
3967
uint16_t flags = ncec->ncec_flags;
usr/src/uts/common/inet/ip/ip_ndp.c
3971
ip_stack_t *ipst = ncec->ncec_ill->ill_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
3972
uchar_t *hw_addr = ncec->ncec_lladdr;
usr/src/uts/common/inet/ip/ip_ndp.c
3981
if (NCE_PUBLISH(ncec) || !NCE_ISREACHABLE(ncec) || (hw_addr == NULL &&
usr/src/uts/common/inet/ip/ip_ndp.c
3982
ncec->ncec_ill->ill_net_type != IRE_IF_NORESOLVER))
usr/src/uts/common/inet/ip/ip_ndp.c
3988
if (NCE_PUBLISH(ncec) && ncec->ncec_state == ND_PROBE) {
usr/src/uts/common/inet/ip/ip_ndp.c
4002
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4003
ncec->ncec_unsolicit_count =
usr/src/uts/common/inet/ip/ip_ndp.c
4005
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4006
dropped = arp_announce(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4007
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4009
ncec->ncec_unsolicit_count++;
usr/src/uts/common/inet/ip/ip_ndp.c
4011
ncec->ncec_last_time_defended = ddi_get_lbolt();
usr/src/uts/common/inet/ip/ip_ndp.c
4012
if (ncec->ncec_unsolicit_count != 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
4013
nce_start_timer(ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
4016
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4024
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4025
if (ncec->ncec_pcnt == 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
4032
ncec->ncec_unsolicit_count = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
4033
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4034
nce_restart_timer(ncec, 0);
usr/src/uts/common/inet/ip/ip_ndp.c
4036
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4037
delay = ((ncec->ncec_flags & NCE_F_FAST) ?
usr/src/uts/common/inet/ip/ip_ndp.c
4040
nce_dad(ncec, NULL, (delay == 0 ? B_TRUE : B_FALSE));
usr/src/uts/common/inet/ip/ip_ndp.c
4052
nce_update_hw_changed(ncec_t *ncec, void *arg)
usr/src/uts/common/inet/ip/ip_ndp.c
4057
if (ncec->ncec_state != ND_REACHABLE)
usr/src/uts/common/inet/ip/ip_ndp.c
4060
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, ncec_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
4064
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4066
ncec->ncec_flags = hwm->hwm_flags;
usr/src/uts/common/inet/ip/ip_ndp.c
4067
nce_update(ncec, ND_STALE, hwm->hwm_hwaddr);
usr/src/uts/common/inet/ip/ip_ndp.c
4068
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4072
ncec_refhold(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4074
mutex_enter(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4075
(ncec)->ncec_refcnt++;
usr/src/uts/common/inet/ip/ip_ndp.c
4076
ASSERT((ncec)->ncec_refcnt != 0);
usr/src/uts/common/inet/ip/ip_ndp.c
4078
ncec_trace_ref(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4080
mutex_exit(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4084
ncec_refhold_notr(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4086
mutex_enter(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4087
(ncec)->ncec_refcnt++;
usr/src/uts/common/inet/ip/ip_ndp.c
4088
ASSERT((ncec)->ncec_refcnt != 0);
usr/src/uts/common/inet/ip/ip_ndp.c
4089
mutex_exit(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4093
ncec_refhold_locked(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4095
ASSERT(MUTEX_HELD(&(ncec)->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
4096
(ncec)->ncec_refcnt++;
usr/src/uts/common/inet/ip/ip_ndp.c
4098
ncec_trace_ref(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4104
ncec_refrele(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4106
mutex_enter(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4108
ncec_untrace_ref(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4110
ASSERT((ncec)->ncec_refcnt != 0);
usr/src/uts/common/inet/ip/ip_ndp.c
4111
if (--(ncec)->ncec_refcnt == 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
4112
ncec_inactive(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4114
mutex_exit(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4119
ncec_refrele_notr(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4121
mutex_enter(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4122
ASSERT((ncec)->ncec_refcnt != 0);
usr/src/uts/common/inet/ip/ip_ndp.c
4123
if (--(ncec)->ncec_refcnt == 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
4124
ncec_inactive(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4126
mutex_exit(&(ncec)->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4134
nce_restart_timer(ncec_t *ncec, uint_t ms)
usr/src/uts/common/inet/ip/ip_ndp.c
4138
ASSERT(!MUTEX_HELD(&(ncec)->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
4141
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4142
tid = ncec->ncec_timeout_id;
usr/src/uts/common/inet/ip/ip_ndp.c
4143
ncec->ncec_timeout_id = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
4145
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4147
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4151
nce_start_timer(ncec, ms);
usr/src/uts/common/inet/ip/ip_ndp.c
4152
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4156
nce_start_timer(ncec_t *ncec, uint_t ms)
usr/src/uts/common/inet/ip/ip_ndp.c
4158
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
4163
if (!NCE_ISCONDEMNED(ncec) && ncec->ncec_timeout_id == 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
4164
ncec->ncec_timeout_id = timeout(nce_timer, ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
422
nce_remove(ndp_g_t *ndp, ncec_t *ncec, ncec_t **free_nce_list)
usr/src/uts/common/inet/ip/ip_ndp.c
4252
ncec_t *ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
4254
ASSERT(ncec->ncec_ill == ncert->ncert_ill);
usr/src/uts/common/inet/ip/ip_ndp.c
4258
if (!NCE_MYADDR(ncec) || ncec->ncec_state != ND_REACHABLE)
usr/src/uts/common/inet/ip/ip_ndp.c
4261
ncec_refhold(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4262
ncert->ncert_nces[ncert->ncert_num++] = ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
4266
ncec_refhold(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4268
ASSERT(ncec != NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
4270
ncec->ncec_last_time_defended) {
usr/src/uts/common/inet/ip/ip_ndp.c
4272
*ncecs = ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
4273
ncec = ncec_temp;
usr/src/uts/common/inet/ip/ip_ndp.c
4276
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
429
for (; ncec; ncec = ncec1) {
usr/src/uts/common/inet/ip/ip_ndp.c
4290
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
430
ncec1 = ncec->ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
431
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4310
ncec = ncert->ncert_nces[i];
usr/src/uts/common/inet/ip/ip_ndp.c
4311
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4312
ncec->ncec_flags |= NCE_F_DELAYED;
usr/src/uts/common/inet/ip/ip_ndp.c
4313
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
432
if (NCE_ISCONDEMNED(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
433
ptpn = ncec->ncec_ptpn;
usr/src/uts/common/inet/ip/ip_ndp.c
4335
ill_defend_rate_limit(ill_t *ill, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
434
ncec1 = ncec->ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
4372
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4373
if (ncec->ncec_flags & NCE_F_DELAYED) {
usr/src/uts/common/inet/ip/ip_ndp.c
438
ncec->ncec_ptpn = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
4380
ncec->ncec_flags &= ~NCE_F_DELAYED;
usr/src/uts/common/inet/ip/ip_ndp.c
4381
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4385
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
439
ncec->ncec_next = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
440
ncec->ncec_next = *free_nce_list;
usr/src/uts/common/inet/ip/ip_ndp.c
441
*free_nce_list = ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
4417
ndp_announce(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4419
return (ndp_xmit(ncec->ncec_ill, ND_NEIGHBOR_ADVERT, ncec->ncec_lladdr,
usr/src/uts/common/inet/ip/ip_ndp.c
4420
ncec->ncec_lladdr_length, &ncec->ncec_addr, &ipv6_all_hosts_mcast,
usr/src/uts/common/inet/ip/ip_ndp.c
4421
nce_advert_flags(ncec)));
usr/src/uts/common/inet/ip/ip_ndp.c
4425
nce_resolve_src(ncec_t *ncec, in6_addr_t *src)
usr/src/uts/common/inet/ip/ip_ndp.c
443
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4430
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
4433
boolean_t is_myaddr = NCE_MYADDR(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4434
boolean_t isv6 = (ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
4441
src6 = ncec->ncec_addr;
usr/src/uts/common/inet/ip/ip_ndp.c
4443
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, src4);
usr/src/uts/common/inet/ip/ip_ndp.c
4448
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4449
mp = ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
4462
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4498
ncec_t *, ncec, ipif_t *, ipif);
usr/src/uts/common/inet/ip/ip_ndp.c
4514
ipif = ipif_select_source_v6(ill, &ncec->ncec_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
4520
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, nce_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
4530
&ncec->ncec_addr, B_TRUE,
usr/src/uts/common/inet/ip/ip_ndp.c
4534
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr,
usr/src/uts/common/inet/ip/ip_ndp.c
4548
(char *)&ncec->ncec_addr, buf, sizeof (buf))));
usr/src/uts/common/inet/ip/ip_ndp.c
4549
DTRACE_PROBE1(nce__resolve__no__ipif, ncec_t *, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4562
DTRACE_PROBE2(nce__resolve__src__ill, ncec_t *, ncec,
usr/src/uts/common/inet/ip/ip_ndp.c
457
ncec_delete(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
4573
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
4584
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_ndp.c
4585
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4586
if (NCE_ISREACHABLE(ncec))
usr/src/uts/common/inet/ip/ip_ndp.c
4590
ncec->ncec_flags = flags;
usr/src/uts/common/inet/ip/ip_ndp.c
4591
nce_update(ncec, new_state, hwaddr);
usr/src/uts/common/inet/ip/ip_ndp.c
4592
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
461
int ipversion = ncec->ncec_ipversion;
usr/src/uts/common/inet/ip/ip_ndp.c
463
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
4631
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
4680
ncec = *ncep;
usr/src/uts/common/inet/ip/ip_ndp.c
4681
for (; ncec != NULL; ncec = ncec->ncec_next) {
usr/src/uts/common/inet/ip/ip_ndp.c
4682
if (ncec->ncec_ill == ill) {
usr/src/uts/common/inet/ip/ip_ndp.c
4683
if (IN6_ARE_ADDR_EQUAL(&ncec->ncec_addr, addr)) {
usr/src/uts/common/inet/ip/ip_ndp.c
4698
if (NCE_MYADDR(ncec))
usr/src/uts/common/inet/ip/ip_ndp.c
4700
*retnce = nce_ill_lookup_then_add(ill, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4709
ncec = kmem_cache_alloc(ncec_cache, KM_NOSLEEP);
usr/src/uts/common/inet/ip/ip_ndp.c
471
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4710
if (ncec == NULL)
usr/src/uts/common/inet/ip/ip_ndp.c
4712
*ncec = nce_nil;
usr/src/uts/common/inet/ip/ip_ndp.c
4713
ncec->ncec_ill = ill;
usr/src/uts/common/inet/ip/ip_ndp.c
4714
ncec->ncec_ipversion = (ill->ill_isv6 ? IPV6_VERSION : IPV4_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
4715
ncec->ncec_flags = flags;
usr/src/uts/common/inet/ip/ip_ndp.c
4716
ncec->ncec_ipst = ipst; /* No netstack_hold */
usr/src/uts/common/inet/ip/ip_ndp.c
472
if (NCE_ISCONDEMNED(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
4732
} else if (IS_IPMP(ill) && NCE_PUBLISH(ncec) &&
usr/src/uts/common/inet/ip/ip_ndp.c
474
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4742
ncec->ncec_xmit_interval =
usr/src/uts/common/inet/ip/ip_ndp.c
4744
ncec->ncec_pcnt =
usr/src/uts/common/inet/ip/ip_ndp.c
4746
ncec->ncec_flags |= NCE_F_FAST;
usr/src/uts/common/inet/ip/ip_ndp.c
4748
ncec->ncec_xmit_interval =
usr/src/uts/common/inet/ip/ip_ndp.c
4750
ncec->ncec_pcnt =
usr/src/uts/common/inet/ip/ip_ndp.c
4753
if (NCE_PUBLISH(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
4754
ncec->ncec_unsolicit_count =
usr/src/uts/common/inet/ip/ip_ndp.c
4762
ncec->ncec_pcnt = ND_MAX_UNICAST_SOLICIT;
usr/src/uts/common/inet/ip/ip_ndp.c
4763
if (NCE_PUBLISH(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
4764
ncec->ncec_unsolicit_count =
usr/src/uts/common/inet/ip/ip_ndp.c
4768
ncec->ncec_rcnt = ill->ill_xmit_count;
usr/src/uts/common/inet/ip/ip_ndp.c
4769
ncec->ncec_addr = *addr;
usr/src/uts/common/inet/ip/ip_ndp.c
4770
ncec->ncec_qd_mp = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
4771
ncec->ncec_refcnt = 1; /* for ncec getting created */
usr/src/uts/common/inet/ip/ip_ndp.c
4772
mutex_init(&ncec->ncec_lock, NULL, MUTEX_DEFAULT, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
4773
ncec->ncec_trace_disable = B_FALSE;
usr/src/uts/common/inet/ip/ip_ndp.c
4784
ncec->ncec_lladdr = template;
usr/src/uts/common/inet/ip/ip_ndp.c
4785
ncec->ncec_lladdr_length = hw_addr_len;
usr/src/uts/common/inet/ip/ip_ndp.c
4786
bzero(ncec->ncec_lladdr, hw_addr_len);
usr/src/uts/common/inet/ip/ip_ndp.c
481
ASSERT(ncec->ncec_refcnt >= 2);
usr/src/uts/common/inet/ip/ip_ndp.c
4810
ncec->ncec_lladdr, ill->ill_phys_addr_length);
usr/src/uts/common/inet/ip/ip_ndp.c
482
ncec->ncec_flags |= NCE_F_CONDEMNED;
usr/src/uts/common/inet/ip/ip_ndp.c
4822
ncec->ncec_lladdr, ill->ill_phys_addr_length);
usr/src/uts/common/inet/ip/ip_ndp.c
483
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4830
ncec->ncec_flags |= NCE_F_NONUD;
usr/src/uts/common/inet/ip/ip_ndp.c
4848
else if (!NCE_PUBLISH(ncec))
usr/src/uts/common/inet/ip/ip_ndp.c
4853
nce_set_ll(ncec, hw_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
4860
ncec->ncec_flags |= NCE_F_UNVERIFIED;
usr/src/uts/common/inet/ip/ip_ndp.c
4862
ncec->ncec_state = state;
usr/src/uts/common/inet/ip/ip_ndp.c
4865
ncec->ncec_last = ncec->ncec_init_time =
usr/src/uts/common/inet/ip/ip_ndp.c
4868
ncec->ncec_last = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
487
nce_fastpath_list_delete(ncec->ncec_ill, ncec, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
4870
ncec->ncec_init_time = TICK_TO_MSEC(ddi_get_lbolt64());
usr/src/uts/common/inet/ip/ip_ndp.c
4872
list_create(&ncec->ncec_cb, sizeof (ncec_cb_t),
usr/src/uts/common/inet/ip/ip_ndp.c
4883
if (ncec->ncec_lladdr != NULL ||
usr/src/uts/common/inet/ip/ip_ndp.c
4885
dlur_mp = ill_dlur_gen(ncec->ncec_lladdr,
usr/src/uts/common/inet/ip/ip_ndp.c
490
ncec_cb_dispatch(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4904
if (!NCE_MYADDR(ncec) &&
usr/src/uts/common/inet/ip/ip_ndp.c
4907
DTRACE_PROBE1(nce__add__on__down__ill, ncec_t *, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4916
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4917
if ((ncec->ncec_next = *ncep) != NULL)
usr/src/uts/common/inet/ip/ip_ndp.c
4918
ncec->ncec_next->ncec_ptpn = &ncec->ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
4919
*ncep = ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
4920
ncec->ncec_ptpn = ncep;
usr/src/uts/common/inet/ip/ip_ndp.c
4924
(char *), "ncec", (void *), ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
4931
*retnce = nce_add_impl(ill, ncec, nce, dlur_mp, &graveyard);
usr/src/uts/common/inet/ip/ip_ndp.c
4932
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
4940
if (ncec != NULL)
usr/src/uts/common/inet/ip/ip_ndp.c
4941
kmem_cache_free(ncec_cache, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
497
if (ncec->ncec_timeout_id != 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
498
(void) untimeout(ncec->ncec_timeout_id);
usr/src/uts/common/inet/ip/ip_ndp.c
499
ncec->ncec_timeout_id = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
5026
nce_add_impl(ill_t *ill, ncec_t *ncec, nce_t *nce, mblk_t *dlur_mp,
usr/src/uts/common/inet/ip/ip_ndp.c
503
if (ncec->ncec_ptpn == NULL) {
usr/src/uts/common/inet/ip/ip_ndp.c
5031
if ((ncec->ncec_flags & NCE_F_MCAST) != 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
5041
nce->nce_common = ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
5042
nce->nce_addr = ncec->ncec_addr;
usr/src/uts/common/inet/ip/ip_ndp.c
5049
ncec->ncec_refcnt++; /* want ncec_refhold_locked_notr(ncec) */
usr/src/uts/common/inet/ip/ip_ndp.c
5059
nce_add(ill_t *ill, ncec_t *ncec, list_t *graveyard)
usr/src/uts/common/inet/ip/ip_ndp.c
5065
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
5070
if (ncec->ncec_lladdr != NULL ||
usr/src/uts/common/inet/ip/ip_ndp.c
5072
dlur_mp = ill_dlur_gen(ncec->ncec_lladdr,
usr/src/uts/common/inet/ip/ip_ndp.c
5084
return (nce_add_impl(ill, ncec, nce, dlur_mp, graveyard));
usr/src/uts/common/inet/ip/ip_ndp.c
5234
nce_resolv_ipmp_ok(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
5240
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
5241
boolean_t isv6 = (ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
5249
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
525
ptpn = ncec->ncec_ptpn;
usr/src/uts/common/inet/ip/ip_ndp.c
5250
nprobes = ncec->ncec_nprobes;
usr/src/uts/common/inet/ip/ip_ndp.c
5251
mp = ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
5252
ncec->ncec_qd_mp = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
5253
ncec->ncec_nprobes = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
5254
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
526
ncec1 = ncec->ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
5296
send_ill = ipmp_ill_hold_xmit_ill(ncec->ncec_ill,
usr/src/uts/common/inet/ip/ip_ndp.c
530
ncec->ncec_ptpn = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
5304
(ncec_t *), ncec, (ipif_t *),
usr/src/uts/common/inet/ip/ip_ndp.c
531
ncec->ncec_next = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
5314
if (IS_IN_SAME_ILLGRP(send_ill, ncec->ncec_ill))
usr/src/uts/common/inet/ip/ip_ndp.c
5315
under_nce = nce_fastpath_create(send_ill, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
5319
if (under_nce != NULL && NCE_ISREACHABLE(ncec))
usr/src/uts/common/inet/ip/ip_ndp.c
5347
ncec_cb_dispatch(ncec); /* complete callbacks */
usr/src/uts/common/inet/ip/ip_ndp.c
535
ncec_refrele_notr(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
539
ncec_inactive(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
542
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
543
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
545
ASSERT(ncec->ncec_refcnt == 0);
usr/src/uts/common/inet/ip/ip_ndp.c
546
ASSERT(MUTEX_HELD(&ncec->ncec_lock));
usr/src/uts/common/inet/ip/ip_ndp.c
549
if (NCE_ISCONDEMNED(ncec))
usr/src/uts/common/inet/ip/ip_ndp.c
553
mpp = &ncec->ncec_qd_mp;
usr/src/uts/common/inet/ip/ip_ndp.c
565
ASSERT(list_is_empty(&ncec->ncec_cb));
usr/src/uts/common/inet/ip/ip_ndp.c
566
list_destroy(&ncec->ncec_cb);
usr/src/uts/common/inet/ip/ip_ndp.c
570
if (ncec->ncec_lladdr_length > 0)
usr/src/uts/common/inet/ip/ip_ndp.c
571
kmem_free(ncec->ncec_lladdr, ncec->ncec_lladdr_length);
usr/src/uts/common/inet/ip/ip_ndp.c
574
ncec_trace_cleanup(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
579
(char *), "ncec", (void *), ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
581
ncec->ncec_ill = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
594
mutex_destroy(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
595
kmem_cache_free(ncec_cache, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
603
ncec_delete_per_ill(ncec_t *ncec, void *arg)
usr/src/uts/common/inet/ip/ip_ndp.c
605
if ((ncec != NULL) && ncec->ncec_ill == arg) {
usr/src/uts/common/inet/ip/ip_ndp.c
606
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
614
nce_cleanup_list(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
618
ASSERT(ncec != NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
619
while (ncec != NULL) {
usr/src/uts/common/inet/ip/ip_ndp.c
620
ncec_next = ncec->ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
621
ncec->ncec_next = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
632
nce_fastpath_list_delete(ncec->ncec_ill, ncec, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
639
if (ncec->ncec_timeout_id != 0) {
usr/src/uts/common/inet/ip/ip_ndp.c
640
(void) untimeout(ncec->ncec_timeout_id);
usr/src/uts/common/inet/ip/ip_ndp.c
641
ncec->ncec_timeout_id = 0;
usr/src/uts/common/inet/ip/ip_ndp.c
644
ncec_refrele_notr(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
645
ncec = ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
653
nce_restart_dad(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
658
if (ncec == NULL)
usr/src/uts/common/inet/ip/ip_ndp.c
660
ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
661
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
662
if (ncec->ncec_state == ND_PROBE) {
usr/src/uts/common/inet/ip/ip_ndp.c
663
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
665
} else if (ncec->ncec_state == ND_REACHABLE) {
usr/src/uts/common/inet/ip/ip_ndp.c
666
ASSERT(ncec->ncec_lladdr != NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
667
ncec->ncec_state = ND_PROBE;
usr/src/uts/common/inet/ip/ip_ndp.c
668
ncec->ncec_pcnt = ND_MAX_UNICAST_SOLICIT;
usr/src/uts/common/inet/ip/ip_ndp.c
673
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
676
ncec->ncec_lladdr, ncec->ncec_lladdr_length);
usr/src/uts/common/inet/ip/ip_ndp.c
680
nce_dad(ncec, hwaddr_ill, B_TRUE);
usr/src/uts/common/inet/ip/ip_ndp.c
683
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
696
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
703
ncec = *((ncec_t **)NCE_HASH_PTR_V6(ipst, *addr));
usr/src/uts/common/inet/ip/ip_ndp.c
704
ncec = ncec_lookup_illgrp(ill, addr, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
707
return (ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
716
ncec_t *ncec = NULL;
usr/src/uts/common/inet/ip/ip_ndp.c
724
ncec = *((ncec_t **)NCE_HASH_PTR_V4(ipst, *addr));
usr/src/uts/common/inet/ip/ip_ndp.c
726
ncec = ncec_lookup_illgrp(ill, &addr6, ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
729
return (ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
743
ncec_lookup_illgrp(ill_t *ill, const in6_addr_t *addr, ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
757
for (; ncec != NULL; ncec = ncec->ncec_next) {
usr/src/uts/common/inet/ip/ip_ndp.c
758
if (ncec->ncec_ill == ill ||
usr/src/uts/common/inet/ip/ip_ndp.c
759
IS_IN_SAME_ILLGRP(ill, ncec->ncec_ill)) {
usr/src/uts/common/inet/ip/ip_ndp.c
760
if (IN6_ARE_ADDR_EQUAL(&ncec->ncec_addr, addr)) {
usr/src/uts/common/inet/ip/ip_ndp.c
761
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
762
if (!NCE_ISCONDEMNED(ncec)) {
usr/src/uts/common/inet/ip/ip_ndp.c
763
ncec_refhold_locked(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
764
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
767
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
771
return (ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
840
ncec_router_to_host(ncec_t *ncec)
usr/src/uts/common/inet/ip/ip_ndp.c
843
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ip_ndp.c
845
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
846
ncec->ncec_flags &= ~NCE_F_ISROUTER;
usr/src/uts/common/inet/ip/ip_ndp.c
847
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
850
&ncec->ncec_addr, IRE_DEFAULT, ncec->ncec_ill, ALL_ZONES, NULL,
usr/src/uts/common/inet/ip/ip_ndp.c
864
nce_process(ncec_t *ncec, uchar_t *hw_addr, uint32_t flag, boolean_t is_adv)
usr/src/uts/common/inet/ip/ip_ndp.c
866
ill_t *ill = ncec->ncec_ill;
usr/src/uts/common/inet/ip/ip_ndp.c
872
ASSERT(ncec->ncec_ipversion == IPV6_VERSION);
usr/src/uts/common/inet/ip/ip_ndp.c
878
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
879
if (ncec->ncec_state == ND_INCOMPLETE) {
usr/src/uts/common/inet/ip/ip_ndp.c
881
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
884
nce_set_ll(ncec, hw_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
890
nce_update(ncec, ND_REACHABLE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
892
nce_update(ncec, ND_STALE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
894
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
895
nce = nce_fastpath(ncec, B_TRUE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
896
nce_resolv_ok(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
901
ll_changed = nce_cmp_ll_addr(ncec, hw_addr, hw_addr_len);
usr/src/uts/common/inet/ip/ip_ndp.c
905
nce_update(ncec, ND_STALE, hw_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
906
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
907
ncec_cb_dispatch(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
912
if (ncec->ncec_state == ND_REACHABLE) {
usr/src/uts/common/inet/ip/ip_ndp.c
913
nce_update(ncec, ND_STALE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
915
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
916
ncec_cb_dispatch(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
920
nce_update(ncec, ND_UNCHANGED, hw_addr);
usr/src/uts/common/inet/ip/ip_ndp.c
924
nce_update(ncec, ND_REACHABLE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
927
nce_update(ncec, ND_STALE, NULL);
usr/src/uts/common/inet/ip/ip_ndp.c
930
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ip_ndp.c
931
if (!(flag & ND_NA_FLAG_ROUTER) && (ncec->ncec_flags &
usr/src/uts/common/inet/ip/ip_ndp.c
933
ncec_router_to_host(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
935
ncec_cb_dispatch(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
949
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_ndp.c
960
for (ncec = *ncep; ncec != NULL; ncec = ncec1) {
usr/src/uts/common/inet/ip/ip_ndp.c
961
ncec1 = ncec->ncec_next;
usr/src/uts/common/inet/ip/ip_ndp.c
962
if (ill == NULL || ncec->ncec_ill == ill) {
usr/src/uts/common/inet/ip/ip_ndp.c
964
ncec_refhold(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
965
(*cbf)(ncec, arg1);
usr/src/uts/common/inet/ip/ip_ndp.c
966
ncec_refrele(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
968
ncec_refhold_notr(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
969
(*cbf)(ncec, arg1);
usr/src/uts/common/inet/ip/ip_ndp.c
970
ncec_refrele_notr(ncec);
usr/src/uts/common/inet/ip/ip_ndp.c
981
ncec = *ncep;
usr/src/uts/common/inet/ip/ip_ndp.c
982
if (ncec != NULL) {
usr/src/uts/common/inet/ip/ip_ndp.c
983
nce_remove(ndp, ncec, &free_nce_list);
usr/src/uts/common/inet/ip/ip_output.c
2071
ncec_t *ncec;
usr/src/uts/common/inet/ip/ip_output.c
2073
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ip_output.c
2076
if (ncec->ncec_flags & NCE_F_BCAST)
usr/src/uts/common/inet/ip/ip_output.c
2078
else if (ncec->ncec_flags & NCE_F_MCAST)
usr/src/uts/common/inet/ip/ipmp.c
2186
ipmp_ncec_delete_nonlocal(ncec_t *ncec, void *ill_arg)
usr/src/uts/common/inet/ip/ipmp.c
2188
if (!NCE_MYADDR(ncec) && ncec->ncec_ill == (ill_t *)ill_arg)
usr/src/uts/common/inet/ip/ipmp.c
2189
ncec_delete(ncec);
usr/src/uts/common/inet/ip/ipmp.c
2197
ipmp_ncec_delete_nce(ncec_t *ncec)
usr/src/uts/common/inet/ip/ipmp.c
2199
ipmp_illgrp_t *illg = ncec->ncec_ill->ill_grp;
usr/src/uts/common/inet/ip/ipmp.c
2200
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ipmp.c
2205
ASSERT(IS_IPMP(ncec->ncec_ill));
usr/src/uts/common/inet/ip/ipmp.c
2217
nce_fastpath_list_delete(ill, ncec, &dead);
usr/src/uts/common/inet/ip/ipmp.c
2231
ipmp_ncec_refresh_nce(ncec_t *ncec)
usr/src/uts/common/inet/ip/ipmp.c
2233
ipmp_illgrp_t *illg = ncec->ncec_ill->ill_grp;
usr/src/uts/common/inet/ip/ipmp.c
2234
ip_stack_t *ipst = ncec->ncec_ipst;
usr/src/uts/common/inet/ip/ipmp.c
2239
ASSERT(IS_IPMP(ncec->ncec_ill));
usr/src/uts/common/inet/ip/ipmp.c
2244
if (!NCE_ISREACHABLE(ncec))
usr/src/uts/common/inet/ip/ipmp.c
2263
&ncec->ncec_addr)) {
usr/src/uts/common/inet/ip/ipmp.c
2278
if (ncec->ncec_ill->ill_isv6) {
usr/src/uts/common/inet/ip/ipmp.c
2280
ncec->ncec_lladdr, ncec->ncec_lladdr_length,
usr/src/uts/common/inet/ip/ipmp.c
2281
&nce->nce_addr, ncec->ncec_flags, ND_UNCHANGED,
usr/src/uts/common/inet/ip/ipmp.c
2286
IN6_V4MAPPED_TO_IPADDR(&ncec->ncec_addr, ipaddr);
usr/src/uts/common/inet/ip/ipmp.c
2288
ncec->ncec_lladdr, ncec->ncec_lladdr_length,
usr/src/uts/common/inet/ip/ipmp.c
2289
&ipaddr, ncec->ncec_flags, ND_UNCHANGED, NULL);
usr/src/uts/common/inet/ip/ipmp.c
923
ncec_t *ncec;
usr/src/uts/common/inet/ip/ipmp.c
959
ncec = nce->nce_common;
usr/src/uts/common/inet/ip/ipmp.c
960
mutex_enter(&ncec->ncec_lock);
usr/src/uts/common/inet/ip/ipmp.c
961
nce_update(ncec, ND_UNCHANGED, ill->ill_phys_addr);
usr/src/uts/common/inet/ip/ipmp.c
962
mutex_exit(&ncec->ncec_lock);
usr/src/uts/common/inet/ip_ndp.h
193
#define NCE_ISREACHABLE(ncec) \
usr/src/uts/common/inet/ip_ndp.h
194
(((((ncec)->ncec_state) >= ND_REACHABLE) && \
usr/src/uts/common/inet/ip_ndp.h
195
((ncec)->ncec_state) <= ND_PROBE))
usr/src/uts/common/inet/ip_ndp.h
197
#define NCE_ISCONDEMNED(ncec) ((ncec)->ncec_flags & NCE_F_CONDEMNED)
usr/src/uts/common/inet/ip_ndp.h
228
#define NCE_MYADDR(ncec) (((ncec)->ncec_flags & NCE_F_MYADDR) != 0)
usr/src/uts/common/inet/ip_ndp.h
235
#define NCE_PUBLISH(ncec) ((ncec->ncec_flags & NCE_F_PUBLISH) != 0)