Lines Matching defs:ire

242 	 * We do ire caching from one iteration to
480 ire_t *ire;
483 ire = ire_route_recursive_v6(nexthop, 0, ill, ALL_ZONES, ira->ira_tsl,
485 if (!(ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE)) ||
487 return (ire);
496 return (ire);
500 ire_refrele(ire);
501 ire = ire_route_recursive_v6(nexthop, 0, ill, ALL_ZONES, ira->ira_tsl,
504 return (ire);
515 ire_t *ire;
766 ire = ire_multicast(ill);
768 ire = ire_linklocal(&nexthop, ill, ira, irr_flags,
772 ire = ire_route_recursive_v6(&nexthop, 0, NULL,
778 ASSERT(ire != NULL);
781 rtc->rtc_ire = ire;
786 ire = rtc->rtc_ire;
790 ire = ire_multicast(ill);
792 ire = ire_linklocal(&nexthop, ill, ira, irr_flags,
795 ire = ire_route_recursive_dstonly_v6(&nexthop,
798 ASSERT(ire != NULL);
801 rtc->rtc_ire = ire;
805 ire->ire_ib_pkt_count++;
818 (*ire->ire_recvfn)(ire, mp, ip6h, ira);
826 ire_recv_forward_v6(ire_t *ire, mblk_t *mp, void *iph_arg, ip_recv_attr_t *ira)
864 mutex_enter(&ire->ire_lock);
865 nce = ire->ire_nce_cache;
868 mutex_exit(&ire->ire_lock);
869 (void) ire_revalidate_nce(ire);
870 mutex_enter(&ire->ire_lock);
871 nce = ire->ire_nce_cache;
873 mutex_exit(&ire->ire_lock);
882 mutex_exit(&ire->ire_lock);
887 nce1 = ire_handle_condemned_nce(nce, ire, NULL, ip6h, B_FALSE);
914 if (ire->ire_zoneid != GLOBAL_ZONEID && ire->ire_zoneid != ALL_ZONES) {
915 ire->ire_ib_pkt_count--;
922 ire = ire_route_recursive_v6(&ip6h->ip6_dst, 0, NULL,
926 ire->ire_ib_pkt_count++;
927 (*ire->ire_recvfn)(ire, mp, ip6h, ira);
928 ire_refrele(ire);
1026 ip_send_potential_redirect_v6(mp, ip6h, ire, ira);
1038 if ((mp1 = tsol_ip_forward(ire, mp, ira)) == NULL) {
1058 if ((iremtu = ire->ire_metrics.iulp_mtu) != 0 && iremtu < mtu)
1139 * which is what ire_route_recursive returns when there is no matching ire.
1143 ire_recv_noroute_v6(ire_t *ire, mblk_t *mp, void *iph_arg, ip_recv_attr_t *ira)
1177 if (ire->ire_flags & RTF_BLACKHOLE) {
1195 ire_recv_noaccept_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
1233 ire_recv_local_v6(ire, mp, ip6h, ira);
1240 ire_recv_multicast_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
1246 ASSERT(ire->ire_ill == ira->ira_ill);
1279 ASSERT(ire->ire_ill == ira->ira_ill);
1373 ip_input_local_v6(ire, mp, ip6h, ira);
1375 if (ill != ire->ire_ill) {
1377 ira->ira_ill = ire->ire_ill;
1388 ire_recv_multirt_v6(ire_t *ire, mblk_t *mp, void *iph_arg, ip_recv_attr_t *ira)
1404 ire_recv_loopback_v6(ire_t *ire, mblk_t *mp, void *iph_arg, ip_recv_attr_t *ira)
1408 ill_t *ire_ill = ire->ire_ill;
1417 * No need to hold the ill since we have a hold on the ire
1422 ip_input_local_v6(ire, mp, ip6h, ira);
1430 ip_input_local_v6(ire, mp, ip6h, ira);
1437 ire_recv_local_v6(ire_t *ire, mblk_t *mp, void *iph_arg, ip_recv_attr_t *ira)
1441 ill_t *ire_ill = ire->ire_ill;
1444 ire->ire_last_used_time = LBOLT_FASTPATH;
1447 ira->ira_zoneid = ire->ire_zoneid;
1460 new_ire = ip_check_multihome(&ip6h->ip6_dst, ire, ill);
1471 * hold on the ire. Note that we do the switch even if
1472 * new_ire == ire (for IPMP, ire would be the one corresponding
1489 if (new_ire != ire)
1494 ip_input_local_v6(ire, mp, ip6h, ira);
1502 ip_input_local_v6(ire_t *ire, mblk_t *mp, ip6_t *ip6h, ip_recv_attr_t *ira)
1512 ip_input_multicast_v6(ire, mp, ip6h, ira);
1532 ip_input_multicast_v6(ire_t *ire, mblk_t *mp, ip6_t *ip6h, ip_recv_attr_t *ira)
1610 /* Do the main ire */