Lines Matching defs:ncec
221 ncec_t *ncec;
228 ncec = ncec_lookup_illgrp_v4(ill, src_paddr);
229 *sncec = ncec;
231 if (ncec == NULL) {
236 mutex_enter(&ncec->ncec_lock);
243 lladdr = ncec->ncec_lladdr;
244 if (NCE_MYADDR(ncec) && hlen == ncec->ncec_ill->ill_phys_addr_length &&
246 mutex_exit(&ncec->ncec_lock);
256 if (ncec->ncec_flags & NCE_F_UNVERIFIED) {
257 mutex_exit(&ncec->ncec_lock);
258 ncec_delete(ncec);
259 ncec_refrele(ncec);
278 if (ncec->ncec_flags & NCE_F_AUTHORITY) {
279 ncec->ncec_unsolicit_count = 0;
280 mutex_exit(&ncec->ncec_lock);
287 * ready to update the ncec's hwaddr. The nce MUST NOT be on an
292 ASSERT(!IS_UNDER_IPMP(ncec->ncec_ill));
295 * update ncec with src_haddr, hlen.
304 ip1dbg(("got info for ncec %p from addr %x\n",
305 (void *)ncec, *src_paddr));
307 if (ncec->ncec_state == ND_INCOMPLETE ||
308 ncec->ncec_state == ND_INITIAL) {
311 ll_changed = nce_cmp_ll_addr(ncec, src_haddr, hlen);
325 switch (ncec->ncec_state) {
338 nce_update(ncec, new_state, (ll_changed ? src_haddr : NULL));
339 mutex_exit(&ncec->ncec_lock);
340 nce_resolv_ok(ncec);
1112 * create the ncec for the sender on ipmp_ill.
1129 ip1dbg(("added ncec %p in state %d ill %s\n",
1147 /* set up cleanup interval on ncec */
1441 ip_recv_attr_t *ira, ncec_t *ncec)
1469 if (ip_nce_conflict(mp, ira, ncec)) {
1477 (void) arp_announce(ncec);
1483 ncec_delete(ncec);
1637 arp_request(ncec_t *ncec, in_addr_t sender, ill_t *ill)
1643 boolean_t use_rcnt = !NCE_ISREACHABLE(ncec);
1645 ASSERT(MUTEX_HELD(&ncec->ncec_lock));
1648 if (use_rcnt && ncec->ncec_rcnt == 0) {
1656 IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &nce_paddr);
1661 if (NCE_ISREACHABLE(ncec)) {
1662 dst_lladdr = ncec->ncec_lladdr;
1668 mutex_exit(&ncec->ncec_lock);
1672 mutex_enter(&ncec->ncec_lock);
1678 * the ncec will eventually be cleaned up (ipif_down_tail()
1679 * will call ipif_nce_down() and flush the ncec), to terminate
1683 return (ncec->ncec_ill->ill_reachable_retrans_time);
1687 ncec->ncec_rcnt--;
1689 return (ncec->ncec_ill->ill_reachable_retrans_time);
1694 arp_announce(ncec_t *ncec)
1702 ASSERT((ncec->ncec_flags & NCE_F_BCAST) == 0);
1703 ASSERT((ncec->ncec_flags & NCE_F_MCAST) == 0);
1705 if (IS_IPMP(ncec->ncec_ill)) {
1707 ill = ipmp_ill_hold_xmit_ill(ncec->ncec_ill, B_FALSE);
1712 ill = ncec->ncec_ill;
1718 IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &ncec_addr);
1720 sphys_addr = ncec->ncec_lladdr;
1734 arp_probe(ncec_t *ncec)
1741 if (IS_IPMP(ncec->ncec_ill)) {
1742 ill = ipmp_ill_hold_xmit_ill(ncec->ncec_ill, B_FALSE);
1746 ill = ncec->ncec_ill;
1749 IN6_V4MAPPED_TO_INADDR(&ncec->ncec_addr, &ncec_addr);
1751 sphys_addr = ncec->ncec_lladdr;
1756 if (IS_IPMP(ncec->ncec_ill))
1989 * tearing down the ipif also meas deleting the ncec through ipif_down,