Lines Matching defs:ire

109 	ire_t		*ire;
153 ire = ip_select_route_v6(&firsthop, ip6h->ip6_src, ixa, NULL, &setsrc,
155 ASSERT(ire != NULL); /* IRE_NOROUTE if none found */
164 if (ire->ire_flags & (RTF_BLACKHOLE|RTF_REJECT)) {
169 ire->ire_ob_pkt_count++;
172 error = (ire->ire_sendfn)(ire, mp, ip6h, ixa,
178 nce = ire_to_nce(ire, INADDR_ANY, &ip6h->ip6_dst);
189 nce1 = ire_handle_condemned_nce(nce, ire, NULL, ip6h, B_TRUE);
195 ire_refrele(ire);
218 ixa->ixa_postfragfn = ire->ire_postfragfn;
252 ixa->ixa_fragsize = ip_get_base_mtu(nce->nce_ill, ire);
256 fragsize = ip_get_base_mtu(nce->nce_ill, ire);
262 ixa->ixa_fragsize = ip_get_base_mtu(nce->nce_ill, ire);
269 ill = ire_nexthop_ill(ire);
337 ire->ire_ob_pkt_count++;
347 error = (ire->ire_sendfn)(ire, mp, ip6h, ixa, &dce->dce_ident);
349 ire_refrele(ire);
377 ire_send_local_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
382 ill_t *ill = ire->ire_ill;
441 dzone = ire->ire_zoneid;
497 ire->ire_ib_pkt_count++;
502 iras.ira_zoneid = ire->ire_zoneid;
533 multirt_check_v6(ire_t *ire, ip6_t *ip6h, ip_xmit_attr_t *ixa)
538 if (ire->ire_type & IRE_MULTICAST) {
567 ire_send_multicast_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
572 ill_t *ill = ire->ire_ill;
580 multirt_check_v6(ire, ip6h, ixa);
637 return (ire_send_wire_v6(ire, mp, ip6h, ixa, identp));
644 ire_send_multirt_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
649 multirt_check_v6(ire, ip6h, ixa);
651 if (ire->ire_type & IRE_MULTICAST)
652 return (ire_send_multicast_v6(ire, mp, ip6h, ixa, identp));
654 return (ire_send_wire_v6(ire, mp, ip6h, ixa, identp));
662 ire_send_noroute_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
673 if (ire->ire_type & IRE_NOROUTE) {
679 if (ire->ire_flags & RTF_BLACKHOLE) {
937 * Assumes that the caller has a hold on the ire.
944 ire_send_wire_v6(ire_t *ire, mblk_t *mp, void *iph_arg,
1146 ire_t *ire;
1180 * Use the nce (nexthop) and ip6_dst to find the ire.
1187 ire = ire_ftable_lookup_v6(&ip6h->ip6_dst, 0, 0, 0, NULL,
1191 ire = ire_ftable_lookup_v6(&ip6h->ip6_dst, 0, &nce->nce_addr,
1195 if (ire == NULL ||
1196 (ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE)) ||
1197 !(ire->ire_flags & RTF_MULTIRT)) {
1201 if (ire != NULL)
1202 ire_refrele(ire);
1206 irb = ire->ire_bucket;
1214 if (!IN6_ARE_ADDR_EQUAL(&ire->ire_addr_v6, &ire1->ire_addr_v6))
1217 /* Do the ire argument one after the loop */
1218 if (ire1 == ire)
1224 * This ire might not have been picked by
1305 ire_refrele(ire);