Lines Matching defs:ill
241 * ioctls one per ill. For example plumbing of hme0 and qfe0 can go on in
248 * Lookups of an ipif or ill by a thread return a refheld ipif / ill.
250 * In addition ipif's and ill's referenced by the ire are also indirectly
251 * refheld. Thus no ipif or ill can vanish as long as an ipif is refheld
276 * - ill_lock protects fields of the ill and ipif. Details in ip.h
280 * * The linked list of all ipifs of an ill
282 * * <ill-phyint> association
283 * Insertion/deletion of an ill in the system, insertion/deletion of an ipif
284 * into an ill, changing the <ipsq-xop> mapping of an ill, changing the
285 * <ill-phyint> assoc of an ill will all have to hold the ill_g_lock as
288 * - ill_lock: This is a per ill mutex.
290 * It also protects the <ill-phyint> assoc.
291 * It also protects the list of ipifs hanging off the ill.
320 * Changing <ill-phyint>, <ipsq-xop> assocications:
322 * To change the <ill-phyint> association, the ill_g_lock must be held
323 * as writer, and the ill_locks of both the v4 and v6 instance of the ill
330 * To add or delete an ipif from the list of ipifs hanging off the ill,
334 * To add or delete an ill to the system, the ill_g_lock must be held as
337 * To add or delete an ilm to an ill, the ill_lock must be held and the thread
355 * When more than 1 ill lock is needed to be held, all ill lock addresses
453 * ILL_DIRECT_CAPABLE(ill) is TRUE, IP can do direct function calls into
459 * the ill (i.e. ILL_DIRECT_CAPABLE(ill) is true).
619 * the same ill as the ill with which is IRE_LOCAL is associated.
628 * address on the input ill, see ip_input_broadcast().
1339 ill_t *ill = ira->ira_ill;
1340 ip_stack_t *ipst = ill->ill_ipst;
1352 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInTruncatedPkts);
1353 ip_drop_input("ipIfStatsInTruncatedPkts", mp, ill);
1471 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
1473 mp, ill);
1531 BUMP_MIB(ill->ill_ip_mib,
1534 ill);
1562 ipif = ipif_lookup_addr(ipha->ipha_dst, ill, zoneid, ipst);
1565 ipif = ipif_lookup_remote(ill, ipha->ipha_src, zoneid);
1599 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
1600 ip_drop_input("ipIfStatsInDiscards - copymsg", mp, ill);
1615 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
1617 mp, ill);
1628 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
1629 ip_drop_input("ipIfStatsInDiscards - copymsg", mp, ill);
1676 ill_t *ill = ira->ira_ill;
1677 ip_stack_t *ipst = ill->ill_ipst;
1716 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
1752 ill_t *ill = ira->ira_ill;
1842 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
1847 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInTruncatedPkts);
1848 ip_drop_input("ipIfStatsInTruncatedPkts", mp, ill);
1879 ill_t *ill = ira->ira_ill;
1880 ip_stack_t *ipst = ill->ill_ipst;
1888 ASSERT(ill != NULL);
1915 old_mtu = ill->ill_mtu;
2080 ill_t *ill = ira->ira_ill;
2081 ip_stack_t *ipst = ill->ill_ipst;
2139 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
2141 ip_drop_input("ipIfStatsInDiscards", mp, ill);
2158 ira->ira_ill = ill;
2309 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
2311 ip_drop_input("ipIfStatsInDiscards", mp, ill);
2317 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInTruncatedPkts);
2318 ip_drop_input("ipIfStatsInTruncatedPkts", mp, ill);
2700 NULL, /* ill */
3376 ill_t *ill = NULL;
3565 ill = ire_nexthop_ill(ire);
3567 /* If unreachable we have no ill but need some source */
3568 if (ill == NULL) {
3573 error = ip_select_source_v4(ill, setsrc, dst_addr,
3652 if (ill != NULL)
3653 ill_refrele(ill);
3661 if (ill != NULL)
3662 ill_refrele(ill);
3685 ip_get_base_mtu(ill_t *ill, ire_t *ire)
3691 mtu = ill->ill_mc_mtu;
3693 mtu = ill->ill_mtu;
3789 * the ill for going out the wire i.e., IRE_LOCAL gets the same
3804 * an ill. We'd use the above IP_MAXPACKET in that case just
3987 /* The ill stream is being unplumbed. Called from ip_close */
3989 ip_modclose(ill_t *ill)
3994 queue_t *q = ill->ill_rq;
3995 ip_stack_t *ipst = ill->ill_ipst;
3997 arl_ill_common_t *ai = ill->ill_common;
4004 success = ipsq_enter(ill, B_FALSE, NEW_OP);
4010 * be another close thread that has set CONDEMNED on this ill.
4014 ipsq = ill->ill_phyint->phyint_ipsq;
4017 * Mark it condemned. No new reference will be made to this ill.
4022 mutex_enter(&ill->ill_lock);
4023 ill->ill_state_flags |= ILL_CONDEMNED;
4024 for (ipif = ill->ill_ipif; ipif != NULL;
4032 cv_broadcast(&ill->ill_cv);
4033 mutex_exit(&ill->ill_lock);
4041 ill_dlpi_send_deferred(ill);
4048 (void) untimeout(ill->ill_frag_timer_id);
4049 (void) ill_frag_timeout(ill, 0);
4052 * Call ill_delete to bring down the ipifs, ilms and ill on
4053 * this ill. Then wait for the refcnts to drop to zero.
4054 * ill_is_freeable checks whether the ill is really quiescent.
4060 ill_delete(ill);
4061 mutex_enter(&ill->ill_lock);
4062 while (!ill_is_freeable(ill))
4063 cv_wait(&ill->ill_cv, &ill->ill_lock);
4065 while (ill->ill_waiters)
4066 cv_wait(&ill->ill_cv, &ill->ill_lock);
4068 mutex_exit(&ill->ill_lock);
4078 ill_delete_tail(ill);
4083 arp_unbind_complete(ill);
4084 ASSERT(ill->ill_ipst == NULL);
4099 * ai can be null if this is an IPv6 ill, or if the IPv4
4105 ASSERT(!ill->ill_isv6);
4118 mi_close_unlink(&ipst->ips_ip_g_head, (IDP)ill);
4125 if (ill->ill_credp != NULL)
4126 crfree(ill->ill_credp);
4128 mutex_destroy(&ill->ill_saved_ire_lock);
4129 mutex_destroy(&ill->ill_lock);
4130 rw_destroy(&ill->ill_mcast_lock);
4131 mutex_destroy(&ill->ill_mcast_serializer);
4132 list_destroy(&ill->ill_nce);
4140 mi_close_free((IDP)ill);
4830 ill_t *ill = ira->ira_ill;
4831 ip_stack_t *ipst = ill->ill_ipst;
4854 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
4855 ip_drop_input("ip_fanout_send_icmp_v4", mp, ill);
4872 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInUnknownProtos);
4873 ip_drop_input("ipIfStatsInUnknownProtos", mp, ill);
4876 BUMP_MIB(ill->ill_ip_mib, udpIfStatsNoPorts);
4877 ip_drop_input("ipIfStatsNoPorts", mp, ill);
4926 ill_t *ill = ira->ira_ill;
4927 ip_stack_t *ipst = ill->ill_ipst;
4940 BUMP_MIB(ill->ill_icmp6_mib, ipv6IfIcmpInOverflows);
4946 BUMP_MIB(ill->ill_ip_mib, rawipIfStatsInOverflows);
4962 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
4964 ip_drop_input("ipIfStatsInDiscards", mp, ill);
4974 BUMP_MIB(ill->ill_ip_mib, ipIfStatsHCInDelivers);
4978 ira->ira_ill = ill;
5009 * with each explicit zoneid that exists on that ill.
5019 ill_t *ill = ira->ira_ill;
5020 ip_stack_t *ipst = ill->ill_ipst;
5074 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
5075 ip_drop_input("ipIfStatsInDiscards", mp, ill);
5206 ill_t *ill = ira->ira_ill;
5207 ip_stack_t *ipst = ill->ill_ipst;
5216 BUMP_MIB(ill->ill_ip_mib, udpIfStatsInOverflows);
5228 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
5230 ip_drop_input("ipIfStatsInDiscards", mp, ill);
5244 BUMP_MIB(ill->ill_ip_mib, ipIfStatsHCInDelivers);
5248 ira->ira_ill = ill;
5269 * with each explicit zoneid that exists on that ill.
5281 ill_t *ill = ira->ira_ill;
5282 ip_stack_t *ipst = ill->ill_ipst;
5337 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
5338 ip_drop_input("ipIfStatsInDiscards", mp, ill);
5414 BUMP_MIB(ill->ill_ip_mib, udpIfStatsNoPorts);
5452 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
5453 ip_drop_input("ipIfStatsInDiscards", mp, ill);
5844 ip_wait_for_info_ack(ill_t *ill)
5848 mutex_enter(&ill->ill_lock);
5849 while (ill->ill_state_flags & ILL_LL_SUBNET_PENDING) {
5853 err = cv_wait_sig(&ill->ill_cv, &ill->ill_lock);
5855 mutex_exit(&ill->ill_lock);
5859 mutex_exit(&ill->ill_lock);
5864 return (ill->ill_error);
5875 ill_t *ill;
5902 ill = (ill_t *)mi_open_alloc_sleep(sizeof (ill_t));
5903 q->q_ptr = WR(q)->q_ptr = ill;
5904 ill->ill_ipst = ipst;
5905 ill->ill_zoneid = zoneid;
5908 * ill_init initializes the ill fields and then sends down
5911 err = ill_init(q, ill);
5914 mi_free(ill);
5927 ipsq_exit(ill->ill_phyint->phyint_ipsq);
5928 err = ip_wait_for_info_ack(ill);
5930 ill->ill_credp = credp;
6672 ip_reassemble(mblk_t *mp, ipf_t *ipf, uint_t start, boolean_t more, ill_t *ill,
6844 BUMP_MIB(ill->ill_ip_mib,
6870 BUMP_MIB(ill->ill_ip_mib,
6899 BUMP_MIB(ill->ill_ip_mib,
6909 BUMP_MIB(ill->ill_ip_mib,
6946 BUMP_MIB(ill->ill_ip_mib,
6977 BUMP_MIB(ill->ill_ip_mib,
7037 ill_t *ill = ira->ira_ill;
7038 ip_stack_t *ipst = ill->ill_ipst;
7141 if ((msg_len + sizeof (*ipf) + ill->ill_frag_count) >=
7144 uint_t, ill->ill_frag_count,
7146 ill_frag_prune(ill,
7152 ipfb = &ill->ill_frag_hash_tbl[ILL_FRAG_HASH(src, ident)];
7173 ill_frag_free_pkts(ill, ipfb, ipf, 1);
7206 ill_frag_free_pkts(ill, ipfb, ipfb->ipfb_ipf, 1);
7212 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
7213 ip_drop_input("ipIfStatsInDiscards", mp, ill);
7220 BUMP_MIB(ill->ill_ip_mib, ipIfStatsReasmReqds);
7237 ipf->ipf_gen = ill->ill_ipf_gen++;
7295 (frag_offset_flags & IPH_MF), ill, msg_len);
7297 /* Update per ipfb and ill byte counts */
7300 atomic_add_32(&ill->ill_frag_count, ipf->ipf_count);
7302 mutex_enter(&ill->ill_lock);
7303 ill_frag_timer_start(ill);
7304 mutex_exit(&ill->ill_lock);
7343 /* Update per ipfb and ill byte counts */
7346 atomic_add_32(&ill->ill_frag_count, msg_len);
7364 (frag_offset_flags & IPH_MF), ill, msg_len);
7368 /* Update per ipfb and ill byte counts */
7371 atomic_add_32(&ill->ill_frag_count, count);
7377 ill_frag_free_pkts(ill, ipfb, ipf, 1);
7395 BUMP_MIB(ill->ill_ip_mib, ipIfStatsReasmOKs);
7410 atomic_add_32(&ill->ill_frag_count, -count);
7423 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7424 ip_drop_input("Reassembled packet too large", mp, ill);
7433 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
7434 ip_drop_input("ipIfStatsInDiscards", mp, ill);
7472 ill_t *ill = ira->ira_ill;
7475 (void) mi_strlog(ill->ill_rq, 1, SL_ERROR|SL_TRACE,
7478 ill->ill_name, len, (void *)mp->b_rptr);
7492 * pass in the ill.
7496 ip_setl2src(mblk_t *mp, ip_recv_attr_t *ira, ill_t *ill)
7504 ASSERT(ill != NULL);
7505 alen = ill->ill_phys_addr_length;
7511 (addr = ill->ill_phys_addr) != NULL) {
7525 ill_t *ill = ira->ira_ill;
7531 IP_STAT(ill->ill_ipst, ip_notaligned);
7533 IP_STAT(ill->ill_ipst, ip_recv_pullup);
7537 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7538 ip_drop_input("ipIfStatsInHdrErrors", mp, ill);
7561 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7562 ip_drop_input("ipIfStatsInHdrErrors", mp, ill);
7564 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
7565 ip_drop_input("ipIfStatsInDiscards", mp, ill);
7580 ill_t *ill = ira->ira_ill;
7589 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7590 ip_drop_input("ipIfStatsInHdrErrors", mp, ill);
7595 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInTruncatedPkts);
7596 ip_drop_input("ipIfStatsInTruncatedPkts", mp, ill);
7605 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7606 ip_drop_input("ipIfStatsInHdrErrors", mp, ill);
7611 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInTruncatedPkts);
7612 ip_drop_input("ipIfStatsInTruncatedPkts", mp, ill);
7624 IP_STAT(ill->ill_ipst, ip_multimblk);
7637 ill_t *ill = ira->ira_ill;
7642 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7643 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInWrongIPVersion);
7644 ip_drop_input("IPvN packet on IPv4 ill", mp, ill);
7650 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7651 ip_drop_input("ipIfStatsInHdrErrors", mp, ill);
7662 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInHdrErrors);
7663 ip_drop_input("ipIfStatsInHdrErrors", mp, ill);
7668 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
7669 ip_drop_input("ipIfStatsInDiscards", mp, ill);
7684 ip_check_multihome(void *addr, ire_t *ire, ill_t *ill)
7689 ip_stack_t *ipst = ill->ill_ipst;
7698 if (IS_IN_SAME_ILLGRP(ill, ire->ire_ill))
7702 * Do another ire lookup here, using the ingress ill, to see if the
7712 * only find the IRE_LOCAL associated with the ingress ill if one
7719 IRE_LOCAL, ill, ALL_ZONES, NULL,
7726 IRE_LOCAL, ill, ALL_ZONES, NULL,
7732 * arrived on a different ill in the group than the one associated with
7752 ifindex = ill->ill_usesrc_ifindex;
7770 if ((ill->ill_flags & ire->ire_ill->ill_flags & ILLF_ROUTER) != 0) {
7792 ip_dlur_to_mhi(ill_t *ill, mblk_t *mb, struct mac_header_info_s *mhip)
7802 if (ill->ill_sap_length < 0)
7805 extra_offset = ill->ill_sap_length;
7820 (bmp = ill->ill_bcast_mp) != NULL) {
7850 ip_mdata_to_mhi(ill_t *ill, mblk_t *mp, struct mac_header_info_s *mhip)
7867 if (ill->ill_type != IFT_ETHER)
7875 if (ill->ill_isv6) {
7895 if ((bmp = ill->ill_bcast_mp) != NULL) {
7902 if (ill->ill_sap_length < 0) {
7905 addrlen += ill->ill_sap_length;
7909 ill->ill_sap_length;
7910 addrlen -= ill->ill_sap_length;
7923 ip_rput_notdata(ill_t *ill, mblk_t *mp)
7935 ip_rput_dlpi(ill, mp);
7947 ip_dlur_to_mhi(ill, first_mp, &mhi);
7948 if (ill->ill_isv6)
7949 ip_input_v6(ill, NULL, mp, &mhi);
7951 ip_input(ill, NULL, mp, &mhi);
7961 ill_fastpath_ack(ill, mp);
7964 putnext(ill->ill_rq, mp);
7970 mutex_enter(&ill->ill_lock);
7971 if (ill->ill_state_flags & ILL_CONDEMNED) {
7972 mutex_exit(&ill->ill_lock);
7976 ill_refhold_locked(ill);
7977 mutex_exit(&ill->ill_lock);
7978 qwriter_ip(ill, ill->ill_rq, mp, ip_rput_other, CUR_OP,
7982 putnext(ill->ill_rq, mp);
7989 ip_rput_other(NULL, ill->ill_rq, mp, NULL);
7996 putnext(ill->ill_rq, mp);
8005 ill_t *ill;
8008 ill = (ill_t *)q->q_ptr;
8010 if (ill->ill_state_flags & (ILL_CONDEMNED | ILL_LL_SUBNET_PENDING)) {
8013 * DLPI messages. (On open ill->ill_ipif has not yet been
8014 * created; on close, things hanging off the ill may have been
8027 ip_mdata_to_mhi(ill, mp, &mhi);
8028 ip_input(ill, NULL, mp, &mhi);
8030 ip_rput_notdata(ill, mp);
8041 ill_t *ill = ira->ira_ill;
8042 ip_stack_t *ipst = ill->ill_ipst;
8052 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
8053 ip_drop_input("ipIfStatsInDiscards", mp, ill);
8070 ip_dlpi_error(ill_t *ill, t_uscalar_t prim, t_uscalar_t dl_err,
8074 (void) mi_strlog(ill->ill_rq, 1, SL_CONSOLE|SL_ERROR|SL_TRACE,
8076 ill->ill_name, dl_primstr(prim), err);
8080 (void) mi_strlog(ill->ill_rq, 1, SL_CONSOLE|SL_ERROR|SL_TRACE,
8081 "%s: %s failed: %s\n", ill->ill_name, dl_primstr(prim),
8092 ip_rput_dlpi(ill_t *ill, mblk_t *mp)
8096 queue_t *q = ill->ill_rq;
8101 char *, dl_primstr(prim), ill_t *, ill);
8112 "(0x%x), unix %u\n", ill->ill_name, dl_primstr(reqprim),
8138 !ill_dlpi_pending(ill, reqprim)) {
8153 mutex_enter(&ill->ill_lock);
8154 ill->ill_state_flags &= ~ILL_DL_UNBIND_IN_PROGRESS;
8155 cv_signal(&ill->ill_cv);
8156 mutex_exit(&ill->ill_lock);
8161 if (ill->ill_dlpi_multicast_state == IDS_INPROGRESS)
8162 ill->ill_dlpi_multicast_state = IDS_OK;
8174 * As required by qwriter_ip(), we refhold the ill; it will refrele.
8175 * Since this is on the ill stream we unconditionally bump up the
8178 ill_refhold(ill);
8180 qwriter_ip(ill, q, mp, ip_rput_dlpi_writer, NEW_OP, B_FALSE);
8182 qwriter_ip(ill, q, mp, ip_rput_dlpi_writer, CUR_OP, B_FALSE);
8198 ill_t *ill = (ill_t *)q->q_ptr;
8209 char *, dl_primstr(dloa->dl_primitive), ill_t *, ill);
8212 ASSERT(ipsq->ipsq_xop == ill->ill_phyint->phyint_ipsq->ipsq_xop);
8213 ASSERT(IAM_WRITER_ILL(ill));
8218 * ioctl to bring up another ill could have started. We could still
8221 if (ipif != NULL && ipif->ipif_ill != ill)
8231 ill_t *, ill);
8235 ill_dlpi_done(ill, dlea->dl_error_primitive);
8242 ill_dlpi_done(ill, dlea->dl_error_primitive);
8245 ill_dlpi_done(ill, DL_NOTIFY_REQ);
8262 paddrreq = ill->ill_phys_addr_pend;
8263 ill_dlpi_done(ill, DL_PHYS_ADDR_REQ);
8265 ill->ill_token_length = 0;
8269 ill->ill_nd_lla_len = 0;
8278 * However, ill_dl_phys was called on an ill queue
8282 if (!ill->ill_ifname_pending)
8284 ill->ill_ifname_pending = 0;
8290 * happened on the ill. Assert there is no conn
8293 q = ill->ill_wq;
8297 ill_dlpi_done(ill, DL_BIND_REQ);
8298 if (ill->ill_ifname_pending)
8300 mutex_enter(&ill->ill_lock);
8301 ill->ill_state_flags &= ~ILL_DOWN_IN_PROGRESS;
8302 mutex_exit(&ill->ill_lock);
8324 ill_dlpi_done(ill, DL_ENABMULTI_REQ);
8326 if (ill->ill_dlpi_multicast_state == IDS_INPROGRESS)
8327 ill->ill_dlpi_multicast_state = IDS_FAILED;
8328 if (ill->ill_dlpi_multicast_state == IDS_FAILED) {
8333 dlea->dl_errno, ill->ill_name);
8337 * writer, so ok to access ill->ill_ipif
8340 mutex_enter(&ill->ill_phyint->phyint_lock);
8341 ill->ill_phyint->phyint_flags |=
8343 mutex_exit(&ill->ill_phyint->phyint_lock);
8351 if (ill->ill_dlpi_capab_state == IDCS_PROBE_SENT)
8352 ill->ill_dlpi_capab_state = IDCS_FAILED;
8353 ill_capability_done(ill);
8370 if (ill->ill_ifname_pending_err != 0) {
8371 err = ill->ill_ifname_pending_err;
8372 ill->ill_ifname_pending_err = 0;
8382 } else if (log && ill->ill_ifname_pending &&
8383 ill->ill_ifname_pending_err == 0) {
8384 ill->ill_ifname_pending_err = dlea->dl_unix_errno ?
8389 ip_dlpi_error(ill, dlea->dl_error_primitive,
8393 ill_capability_ack(ill, mp);
8403 ill_dlpi_done(ill, DL_INFO_REQ);
8404 ip_ll_subnet_defaults(ill, mp);
8405 ASSERT(!MUTEX_HELD(&ill->ill_phyint->phyint_ipsq->ipsq_lock));
8412 ill_dlpi_done(ill, DL_BIND_REQ);
8414 if (ill->ill_ifname_pending) {
8416 ill_t *, ill, mblk_t *, mp);
8419 mutex_enter(&ill->ill_lock);
8420 ill->ill_dl_up = 1;
8421 ill->ill_state_flags &= ~ILL_DOWN_IN_PROGRESS;
8422 mutex_exit(&ill->ill_lock);
8427 DTRACE_PROBE1(ip__rput__dlpi__no__mblk, ill_t *, ill);
8440 ip1dbg(("ip_rput_dlpi: bind_ack %s\n", ill->ill_name));
8441 DTRACE_PROBE1(ip__rput__dlpi__bind__ack, ill_t *, ill);
8442 ill_nic_event_dispatch(ill, 0, NE_UP, NULL, 0);
8450 if (ill->ill_isv6) {
8460 } else if (ill->ill_net_type == IRE_IF_RESOLVER) {
8468 mutex_enter(&ill->ill_lock);
8470 mutex_exit(&ill->ill_lock);
8492 if ((err == 0) && (ill->ill_up_ipifs)) {
8493 err = ill_up_ipifs(ill, q, mp1);
8502 * succeeded to this point, bring it up on the IPMP ill.
8506 if (ill->ill_move_ipif != NULL) {
8508 ill->ill_move_ipif = NULL;
8510 ipif = ill->ill_move_ipif;
8511 ill->ill_move_ipif = NULL;
8527 err = ill_set_phys_addr(ill, mp);
8536 err = ill_replumb(ill, mp);
8540 nce_flush(ill, B_FALSE);
8553 mutex_enter(&ill->ill_lock);
8554 orig_mtu = ill->ill_mtu;
8555 orig_mc_mtu = ill->ill_mc_mtu;
8558 ill->ill_current_frag =
8560 ill->ill_mc_mtu = (uint_t)notify->dl_data;
8563 ill->ill_current_frag =
8565 ill->ill_mc_mtu = (uint_t)notify->dl_data2;
8568 if (ill->ill_current_frag > ill->ill_max_frag)
8569 ill->ill_max_frag = ill->ill_current_frag;
8571 if (!(ill->ill_flags & ILLF_FIXEDMTU)) {
8572 ill->ill_mtu = ill->ill_current_frag;
8578 if (ill->ill_user_mtu != 0 &&
8579 ill->ill_user_mtu < ill->ill_mtu)
8580 ill->ill_mtu = ill->ill_user_mtu;
8582 if (ill->ill_user_mtu != 0 &&
8583 ill->ill_user_mtu < ill->ill_mc_mtu)
8584 ill->ill_mc_mtu = ill->ill_user_mtu;
8586 if (ill->ill_isv6) {
8587 if (ill->ill_mtu < IPV6_MIN_MTU)
8588 ill->ill_mtu = IPV6_MIN_MTU;
8589 if (ill->ill_mc_mtu < IPV6_MIN_MTU)
8590 ill->ill_mc_mtu = IPV6_MIN_MTU;
8592 if (ill->ill_mtu < IP_MIN_MTU)
8593 ill->ill_mtu = IP_MIN_MTU;
8594 if (ill->ill_mc_mtu < IP_MIN_MTU)
8595 ill->ill_mc_mtu = IP_MIN_MTU;
8597 } else if (ill->ill_mc_mtu > ill->ill_mtu) {
8598 ill->ill_mc_mtu = ill->ill_mtu;
8601 mutex_exit(&ill->ill_lock);
8606 if (orig_mtu != ill->ill_mtu ||
8607 orig_mc_mtu != ill->ill_mc_mtu) {
8608 dce_increment_all_generations(ill->ill_isv6,
8609 ill->ill_ipst);
8615 if (IS_UNDER_IPMP(ill))
8616 ipmp_illgrp_refresh_mtu(ill->ill_grp);
8622 * We are writer. ill / phyint / ipsq assocs stable.
8625 phyint_t *phyint = ill->ill_phyint;
8637 if (IS_IPMP(ill)) {
8659 phyint_t *phyint = ill->ill_phyint;
8667 phyint_t *phyint = ill->ill_phyint;
8678 * on this ill. One possible cause is the aggregation
8684 * mark the ill's ill_capab_reneg to be B_TRUE,
8694 ipsq_current_start(ipsq, ill->ill_ipif, 0);
8695 ill_capability_reset(ill, B_TRUE);
8700 ill_set_allowed_ips(ill, mp);
8719 ill->ill_note_link = 1;
8720 ill_dlpi_done(ill, DL_NOTIFY_REQ);
8732 * is invoked from an ill queue, conn_oper_pending_ill is not
8738 paddrreq = ill->ill_phys_addr_pend;
8743 ill_dlpi_done(ill, DL_PHYS_ADDR_REQ);
8751 bcopy(addr, &ill->ill_token.s6_addr32[2], paddrlen);
8752 ill->ill_token_length = paddrlen;
8755 ASSERT(ill->ill_nd_lla_mp == NULL);
8756 ill_set_ndmp(ill, mp, paddroff, paddrlen);
8760 ASSERT(ill->ill_dest_addr_mp == NULL);
8761 ill->ill_dest_addr_mp = mp;
8762 ill->ill_dest_addr = addr;
8764 if (ill->ill_isv6) {
8765 ill_setdesttoken(ill);
8766 ipif_setdestlinklocal(ill->ill_ipif);
8772 ASSERT(ill->ill_phys_addr_mp == NULL);
8773 if (!ill->ill_ifname_pending)
8775 ill->ill_ifname_pending = 0;
8780 q = ill->ill_wq;
8787 if (ill->ill_ifname_pending_err != 0) {
8788 err = ill->ill_ifname_pending_err;
8789 ill->ill_ifname_pending_err = 0;
8793 ill->ill_phys_addr_mp = mp;
8794 ill->ill_phys_addr = (paddrlen == 0 ? NULL : addr);
8805 if (paddrlen == 0 || ill->ill_phys_addr_length == 0) {
8806 ill->ill_phys_addr = NULL;
8807 } else if (paddrlen != ill->ill_phys_addr_length) {
8809 paddrlen, ill->ill_phys_addr_length));
8814 if (ill->ill_nd_lla_mp == NULL) {
8815 if ((mp_hw = copyb(ill->ill_phys_addr_mp)) == NULL) {
8819 ill_set_ndmp(ill, mp_hw, paddroff, paddrlen);
8822 if (ill->ill_isv6) {
8823 ill_setdefaulttoken(ill);
8824 ipif_setlinklocal(ill->ill_ipif);
8834 ill_t *, ill);
8839 ill_dlpi_done(ill, dloa->dl_correct_primitive);
8845 ill_dlpi_done(ill, dloa->dl_correct_primitive);
8865 int, ipsq->ipsq_xop->ipx_current_ioctl, ill_t *, ill,
8875 ill_t *ill_other = ILL_OTHER(ill);
8879 * ill has a peer which is in an IPMP group, then place ill
8882 * ill, it is possible for multiple ifconfig applications to
8888 ipmp_grp_t *grp = ill->ill_phyint->phyint_grp;
8891 illg = ill->ill_isv6 ? grp->gr_v6 : grp->gr_v4;
8893 ipmp_phyint_leave_grp(ill->ill_phyint);
8895 ipmp_ill_join_illgrp(ill, illg);
8922 ill_t *ill = q->q_ptr;
8929 ill->ill_phyint->phyint_ipsq->ipsq_xop);
8942 ill->ill_error = (int)(*mp->b_rptr & 0xFF);
8943 if (ill->ill_error == 0)
8944 ill->ill_error = ENXIO;
8957 mutex_enter(&ill->ill_lock);
8958 if (ill->ill_dlpi_fastpath_state == IDS_INPROGRESS) {
8959 ill->ill_dlpi_fastpath_state = IDS_FAILED;
8960 mutex_exit(&ill->ill_lock);
8966 ill->ill_name));
8968 mutex_exit(&ill->ill_lock);
9160 ill_t *ill = (ill_t *)arg;
9162 ip_stack_t *ipst = ill->ill_ipst;
9165 mutex_enter(&ill->ill_lock);
9166 ASSERT(!ill->ill_fragtimer_executing);
9167 if (ill->ill_state_flags & ILL_CONDEMNED) {
9168 ill->ill_frag_timer_id = 0;
9169 mutex_exit(&ill->ill_lock);
9172 ill->ill_fragtimer_executing = 1;
9173 mutex_exit(&ill->ill_lock);
9175 timeout = (ill->ill_isv6 ? ipst->ips_ipv6_reassembly_timeout :
9178 frag_pending = ill_frag_timeout(ill, timeout);
9184 mutex_enter(&ill->ill_lock);
9185 ill->ill_fragtimer_executing = 0;
9186 ill->ill_frag_timer_id = 0;
9187 if (frag_pending || ill->ill_fragtimer_needrestart)
9188 ill_frag_timer_start(ill);
9189 mutex_exit(&ill->ill_lock);
9193 ill_frag_timer_start(ill_t *ill)
9195 ip_stack_t *ipst = ill->ill_ipst;
9198 ASSERT(MUTEX_HELD(&ill->ill_lock));
9200 /* If the ill is closing or opening don't proceed */
9201 if (ill->ill_state_flags & ILL_CONDEMNED)
9204 if (ill->ill_fragtimer_executing) {
9211 ill->ill_fragtimer_needrestart = 1;
9215 if (ill->ill_frag_timer_id == 0) {
9216 timeo_ms = (ill->ill_isv6 ? ipst->ips_ipv6_reassembly_timeout :
9224 ill->ill_frag_timer_id = timeout(ill_frag_timer, ill,
9226 ill->ill_fragtimer_needrestart = 0;
9246 ill_t *ill = ira->ira_ill;
9247 ip_stack_t *ipst = ill->ill_ipst;
9302 if (ip_select_source_v4(ill, INADDR_ANY, ipha->ipha_dst,
9353 if (ip_select_source_v4(ill, INADDR_ANY,
9380 ip_drop_input("ICMP_SOURCE_ROUTE_FAILED", mp, ill);
9588 * One per ill plus one generic
9590 * One per ill plus one generic
9833 ill_t *ill;
9883 ill = ILL_START_WALK_V4(&ctx, ipst);
9884 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
9885 ill->ill_ip_mib->ipIfStatsIfIndex =
9886 ill->ill_phyint->phyint_ifindex;
9887 SET_MIB(ill->ill_ip_mib->ipIfStatsForwarding,
9889 SET_MIB(ill->ill_ip_mib->ipIfStatsDefaultTTL,
9892 ip_mib2_add_ip_stats(&global_ip_mib, ill->ill_ip_mib);
9894 (char *)ill->ill_ip_mib,
9895 (int)sizeof (*ill->ill_ip_mib))) {
9898 (uint_t)sizeof (*ill->ill_ip_mib)));
10003 ill_t *ill;
10027 ill = ILL_START_WALK_V4(&ctx, ipst);
10028 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10029 for (ipif = ill->ill_ipif; ipif != NULL;
10067 ill->ill_flags | ill->ill_phyint->phyint_flags;
10069 ill->ill_reachable_retrans_time;
10095 ill_t *ill;
10119 ill = ILL_START_WALK_V6(&ctx, ipst);
10120 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10121 for (ipif = ill->ill_ipif; ipif != NULL;
10174 ill->ill_flags | ill->ill_phyint->phyint_flags;
10176 mae6.ipv6AddrIdentifier = ill->ill_token;
10177 mae6.ipv6AddrIdentifierLen = ill->ill_token_length;
10178 mae6.ipv6AddrReachableTime = ill->ill_reachable_time;
10180 ill->ill_reachable_retrans_time;
10204 ill_t *ill;
10225 ill = ILL_START_WALK_V4(&ctx, ipst);
10226 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10227 /* Make sure the ill isn't going away. */
10228 if (!ill_check_and_refhold(ill))
10231 rw_enter(&ill->ill_mcast_lock, RW_READER);
10232 for (ilm = ill->ill_ilm; ilm; ilm = ilm->ilm_next) {
10238 for (ipif = ill->ill_ipif; ipif != NULL;
10250 ill_get_name(ill,
10267 rw_exit(&ill->ill_mcast_lock);
10268 ill_refrele(ill);
10285 ill_t *ill;
10304 ill = ILL_START_WALK_V6(&ctx, ipst);
10305 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10306 /* Make sure the ill isn't going away. */
10307 if (!ill_check_and_refhold(ill))
10314 rw_enter(&ill->ill_mcast_lock, RW_READER);
10315 ipm6.ipv6GroupMemberIfIndex = ill->ill_phyint->phyint_ifindex;
10316 for (ilm = ill->ill_ilm; ilm; ilm = ilm->ilm_next) {
10331 rw_exit(&ill->ill_mcast_lock);
10332 ill_refrele(ill);
10350 ill_t *ill;
10373 ill = ILL_START_WALK_V4(&ctx, ipst);
10374 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10375 /* Make sure the ill isn't going away. */
10376 if (!ill_check_and_refhold(ill))
10379 rw_enter(&ill->ill_mcast_lock, RW_READER);
10380 for (ilm = ill->ill_ilm; ilm; ilm = ilm->ilm_next) {
10389 for (ipif = ill->ill_ipif; ipif != NULL;
10401 ill_get_name(ill,
10422 rw_exit(&ill->ill_mcast_lock);
10423 ill_refrele(ill);
10440 ill_t *ill;
10461 ill = ILL_START_WALK_V6(&ctx, ipst);
10462 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10463 /* Make sure the ill isn't going away. */
10464 if (!ill_check_and_refhold(ill))
10471 rw_enter(&ill->ill_mcast_lock, RW_READER);
10472 ips6.ipv6GroupSourceIfIndex = ill->ill_phyint->phyint_ifindex;
10473 for (ilm = ill->ill_ilm; ilm; ilm = ilm->ilm_next) {
10492 rw_exit(&ill->ill_mcast_lock);
10493 ill_refrele(ill);
10725 * IPv6 mib: One per ill
10733 ill_t *ill;
10809 ill = ILL_START_WALK_V6(&ctx, ipst);
10810 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10811 ill->ill_ip_mib->ipIfStatsIfIndex =
10812 ill->ill_phyint->phyint_ifindex;
10813 SET_MIB(ill->ill_ip_mib->ipIfStatsForwarding,
10815 SET_MIB(ill->ill_ip_mib->ipIfStatsDefaultHopLimit,
10816 ill->ill_max_hops);
10821 SYNC32_MIB(ill->ill_ip_mib, ipIfStatsInReceives,
10823 SYNC32_MIB(ill->ill_ip_mib, ipIfStatsInDelivers,
10825 SYNC32_MIB(ill->ill_ip_mib, ipIfStatsOutRequests,
10827 SYNC32_MIB(ill->ill_ip_mib, ipIfStatsOutForwDatagrams,
10829 SYNC32_MIB(ill->ill_ip_mib, ipIfStatsOutMcastPkts,
10831 SYNC32_MIB(ill->ill_ip_mib, ipIfStatsInMcastPkts,
10835 (char *)ill->ill_ip_mib, (int)ise_size)) {
10856 * ICMPv6 mib: One per ill
10863 ill_t *ill;
10889 ill = ILL_START_WALK_V6(&ctx, ipst);
10890 for (; ill != NULL; ill = ill_next(&ctx, ill)) {
10891 ill->ill_icmp6_mib->ipv6IfIcmpIfIndex =
10892 ill->ill_phyint->phyint_ifindex;
10894 (char *)ill->ill_icmp6_mib,
10895 (int)sizeof (*ill->ill_icmp6_mib))) {
10898 (uint_t)sizeof (*ill->ill_icmp6_mib)));
10917 ill_t *ill;
10950 ill = ire->ire_ill;
10952 if (ill != NULL) {
10953 ill_get_name(ill, re->ipRouteIfIndex.o_bytes, OCTET_LENGTH);
11039 ill_t *ill;
11075 ill = ire->ire_ill;
11076 if (ill != NULL) {
11077 ill_get_name(ill, re->ipv6RouteIfIndex.o_bytes, OCTET_LENGTH);
11165 ill_t *ill;
11168 ill = ncec->ncec_ill;
11170 if (ill->ill_isv6 == B_FALSE || ill->ill_net_type == IRE_LOOPBACK)
11177 ntme.ipv6NetToMediaIfIndex = ill->ill_phyint->phyint_ifindex;
11179 ntme.ipv6NetToMediaPhysAddress.o_length = ill->ill_phys_addr_length;
11243 ill_t *ill;
11248 ill = ncec->ncec_ill;
11249 if (ill->ill_isv6 || (ncec->ncec_flags & NCE_F_BCAST) ||
11250 ill->ill_net_type == IRE_LOOPBACK)
11254 name = ill->ill_name;
11280 MIN(OCTET_LENGTH, ill->ill_phys_addr_length);
11635 ill_t *ill = nce->nce_ill;
11636 ip_stack_t *ipst = ill->ill_ipst;
11642 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragReqds);
11653 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragFails);
11654 ip_drop_output("FragFails: zero max_frag", mp, ill);
11673 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragFails);
11674 ip_drop_output("FragFails: bad starting offset", mp, ill);
11692 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragFails);
11693 ip_drop_output("FragFails: no hdr_mp", mp, ill);
11722 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragFails);
11723 ip_drop_output("FragFails: could not carve mp", mp_orig, ill);
11729 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragCreates);
11735 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragFails);
11736 ip_drop_output("FragFails: postfragfn failed", mp_orig, ill);
11843 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragCreates);
11849 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragOKs);
11853 DTRACE_PROBE2(ip__xmit__frag__fail, ill_t *, ill,
11863 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutFragFails);
11864 ip_drop_output("FragFails: loop ended", NULL, ill);
12103 ill_t *ill = nce->nce_ill;
12105 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
12106 ip_drop_output("ipIfStatsOutDiscards", mp, ill);
12130 ill_t *ill = nce->nce_ill;
12132 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
12133 ip_drop_output("ipIfStatsOutDiscards", mp, ill);
12365 ill_t *ill = ixa->ixa_nce->nce_ill;
12378 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
12379 ip_drop_packet(mp, B_TRUE, ill,
12397 ip_drop_packet(mp, B_FALSE, ill,
12417 (void) mi_strlog(ill->ill_rq, 0,
12421 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
12422 ip_drop_output("ipIfStatsOutDiscards", mp, ill);
12517 ill_t *ill = q->q_ptr;
12518 ipsq_current_start(ipsq, ill->ill_ipif, ipip->ipi_cmd);
12591 * ill may not exist yet. This happens in the case of lo0
12610 /* ioctl comes down the ill */
12974 ip_output_options(mblk_t *mp, ipha_t *ipha, ip_xmit_attr_t *ixa, ill_t *ill)
13089 iras.ira_ill = iras.ira_rill = ill;
13090 iras.ira_ruifindex = ill->ill_phyint->phyint_ifindex;
13094 ip_drop_output("ip_output_options", mp, ill);
13101 iras.ira_ill = iras.ira_rill = ill;
13102 iras.ira_ruifindex = ill->ill_phyint->phyint_ifindex;
13106 ip_drop_input("ICMP_SOURCE_ROUTE_FAILED", mp, ill);
13295 * this conn is draining because flow-control on the ill has been relieved.
13351 ill_t *ill;
13353 ill = (ill_t *)q->q_ptr;
13354 if (ill->ill_state_flags == 0) {
13355 ip_stack_t *ipst = ill->ill_ipst;
13366 enableok(ill->ill_wq);
13385 ill_t *ill = (ill_t *)arg;
13386 ip_stack_t *ipst = ill->ill_ipst;
13417 * Determine if the ill and multicast aspects of that packets
13423 ill_t *ill = ira->ira_rill;
13441 if (in_ifindex != 0 && in_ifindex != ill->ill_phyint->phyint_ifindex) {
13442 if (!IS_UNDER_IPMP(ill))
13445 if (in_ifindex != ipmp_ill_get_ipmp_ifindex(ill))
13642 * this packet and ill is the interface this packet arrived on or will leave
13646 * on the ill corrsponding to the destination IP address.
13649 ip_process(ip_proc_t proc, mblk_t *mp, ill_t *rill, ill_t *ill)
13694 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
13695 ip_drop_input("ip_process", mp, ill);
13697 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
13698 ip_drop_output("ip_process", mp, ill);
13748 /* We handle -ifp routes by matching on the ill if set */
14075 ill_t *ill;
14098 ill = ILL_START_WALK_V4(&ctx, ipst);
14099 for (; ill != NULL; ill = ill_next(&ctx, ill))
14100 ip_mib2_add_ip_stats(&ipmib, ill->ill_ip_mib);
14298 ill_t *ill = ira->ira_ill;
14299 ip_stack_t *ipst = ill->ill_ipst;
14321 ira->ira_ill = ill;
14328 BUMP_MIB(ill->ill_ip_mib, rawipIfStatsInOverflows);
14339 BUMP_MIB(ill->ill_ip_mib, ipIfStatsInDiscards);
14341 ip_drop_input("ipIfStatsInDiscards", mp, ill);
14352 BUMP_MIB(ill->ill_ip_mib, ipIfStatsHCInDelivers);
14356 ira->ira_ill = ill;
14367 ip_xmit_flowctl_drop(ill_t *ill, mblk_t *mp, boolean_t is_fp_mp, int fp_mp_len)
14372 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
14394 ip_drop_output("ipIfStatsOutDiscards - flow ctl", mp, ill);
14422 ill_t *ill = nce->nce_ill;
14423 ip_stack_t *ipst = ill->ill_ipst;
14425 boolean_t isv6 = ill->ill_isv6;
14457 NULL, ill, ipha, mp, mp, 0, ipst, error);
14482 ill, ipst);
14485 void_ip_t *, ipha, __dtrace_ipsr_ill_t *, ill,
14499 NULL, ill, ip6h, mp, mp, 0, ipst, error);
14513 ill, ipst);
14516 void_ip_t *, ip6h, __dtrace_ipsr_ill_t *, ill,
14545 (ill->ill_capabilities & ILL_CAPAB_DLD_DIRECT)) {
14548 idd = &ill->ill_dld_capab->idc_direct;
14556 BUMP_MIB(ill->ill_ip_mib, ipIfStatsHCOutTransmits);
14557 UPDATE_MIB(ill->ill_ip_mib, ipIfStatsHCOutOctets,
14574 wq = ill->ill_wq;
14580 ip_xmit_flowctl_drop(ill, mp, fp_mp,
14585 BUMP_MIB(ill->ill_ip_mib, ipIfStatsHCOutTransmits);
14586 UPDATE_MIB(ill->ill_ip_mib, ipIfStatsHCOutOctets,
14632 ill->ill_reachable_time));
14633 if (delta > (uint64_t)ill->ill_reachable_time) {
14731 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
14733 mp, ill);
14739 BUMP_MIB(ill->ill_ip_mib, ipIfStatsOutDiscards);
14741 mp, ill);
15119 ip_get_zoneid_v6(in6_addr_t *addr, mblk_t *mp, const ill_t *ill,
15136 ill, lookup_zoneid, NULL, ire_flags, 0, ipst, NULL);
15177 const ill_t *ill, ip_stack_t *ipst)
15197 if (IS_UNDER_IPMP(ill))
15198 grifindex = ipmp_ill_get_ipmp_ifindex(ill);
15205 hdr->hpo_ifindex = htonl(ill->ill_phyint->phyint_ifindex);
15212 if (ill->ill_isv6) {
15228 * interface `ill'. If `ipifp' is non-NULL, it's set to a held ipif
15230 * inside the IPSQ (ill_g_lock is not held), `ill' may be removed from the
15234 ipif_lookup_testaddr_v4(ill_t *ill, const in_addr_t *v4srcp, ipif_t **ipifp)
15238 ipif = ipif_lookup_addr_exact(*v4srcp, ill, ill->ill_ipst);