Lines Matching refs:ire
2629 ire_t *ire, *nire; in icmp_redirect_v4() local
2641 ire = ire_ftable_lookup_v4(gateway, 0, 0, IRE_ONLINK, NULL, in icmp_redirect_v4()
2656 if (prev_ire == NULL || ire == NULL || in icmp_redirect_v4()
2659 !(ire->ire_type & IRE_IF_ALL) || in icmp_redirect_v4()
2664 if (ire != NULL) in icmp_redirect_v4()
2665 ire_refrele(ire); in icmp_redirect_v4()
2672 ire_refrele(ire); in icmp_redirect_v4()
2695 ire = ire_create( in icmp_redirect_v4()
2706 if (ire == NULL) { in icmp_redirect_v4()
2710 nire = ire_add(ire); in icmp_redirect_v4()
2712 if (nire != NULL && nire != ire) { in icmp_redirect_v4()
2718 ire = nire; in icmp_redirect_v4()
2719 if (ire != NULL) { in icmp_redirect_v4()
2720 ire_refrele(ire); /* Held in ire_add */ in icmp_redirect_v4()
2785 ire_t *ire; in icmp_pkt() local
2831 ire = ire_ftable_lookup_v4(ipha->ipha_dst, 0, 0, in icmp_pkt()
2834 if (ire != NULL) { in icmp_pkt()
2835 ire_refrele(ire); in icmp_pkt()
3057 ip_send_potential_redirect_v4(mblk_t *mp, ipha_t *ipha, ire_t *ire, in ip_send_potential_redirect_v4() argument
3082 if ((ire->ire_type & IRE_ONLINK) || in ip_send_potential_redirect_v4()
3086 nhop_ire = ire_nexthop(ire); in ip_send_potential_redirect_v4()
3367 ire_t *ire = NULL; in ip_set_destination_v4() local
3407 ire = ip_select_route_v4(firsthop, *src_addrp, ixa, in ip_set_destination_v4()
3409 ASSERT(ire != NULL); /* IRE_NOROUTE if none found */ in ip_set_destination_v4()
3422 if (ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE)) { in ip_set_destination_v4()
3445 if (!(ire->ire_type & IRE_HOST)) in ip_set_destination_v4()
3452 if ((ire->ire_type & (IRE_BROADCAST|IRE_MULTICAST)) && in ip_set_destination_v4()
3454 ire_refrele(ire); in ip_set_destination_v4()
3455 ire = ire_reject(ipst, B_FALSE); in ip_set_destination_v4()
3464 ire_refhold_notr(ire); in ip_set_destination_v4()
3465 ire_refrele(ire); in ip_set_destination_v4()
3467 ixa->ixa_ire = ire; in ip_set_destination_v4()
3506 ixa->ixa_postfragfn = ire->ire_postfragfn; in ip_set_destination_v4()
3509 if (!(ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE))) { in ip_set_destination_v4()
3511 nce = ire_to_nce(ire, firsthop, NULL); in ip_set_destination_v4()
3529 if ((ire->ire_type & IRE_LOCAL) && ire->ire_zoneid != zoneid) { in ip_set_destination_v4()
3530 ire = NULL; /* Stored in ixa_ire */ in ip_set_destination_v4()
3534 if (!(ire->ire_type & (IRE_LOOPBACK|IRE_LOCAL|IRE_MULTICAST))) { in ip_set_destination_v4()
3535 ire = NULL; /* Stored in ixa_ire */ in ip_set_destination_v4()
3540 if (ire->ire_type & IRE_BROADCAST) { in ip_set_destination_v4()
3565 ill = ire_nexthop_ill(ire); in ip_set_destination_v4()
3577 ire = NULL; /* Stored in ixa_ire */ in ip_set_destination_v4()
3588 !(ire->ire_type & (IRE_LOCAL|IRE_LOOPBACK|IRE_MULTICAST)) && in ip_set_destination_v4()
3589 !(ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE))) { in ip_set_destination_v4()
3590 ire = NULL; /* Stored in ixa_ire */ in ip_set_destination_v4()
3615 if (ire->ire_type & (IRE_BROADCAST|IRE_MULTICAST)) in ip_set_destination_v4()
3641 rts_merge_metrics(uinfo, &ire->ire_metrics); in ip_set_destination_v4()
3647 uinfo->iulp_localnet = (ire->ire_type & IRE_ONLINK) != 0; in ip_set_destination_v4()
3648 uinfo->iulp_loopback = (ire->ire_type & IRE_LOOPBACK) != 0; in ip_set_destination_v4()
3649 uinfo->iulp_local = (ire->ire_type & IRE_LOCAL) != 0; in ip_set_destination_v4()
3658 if (ire != NULL) in ip_set_destination_v4()
3659 ire_refrele(ire); in ip_set_destination_v4()
3685 ip_get_base_mtu(ill_t *ill, ire_t *ire) in ip_get_base_mtu() argument
3688 uint_t iremtu = ire->ire_metrics.iulp_mtu; in ip_get_base_mtu()
3690 if (ire->ire_type & (IRE_MULTICAST|IRE_BROADCAST)) in ip_get_base_mtu()
3718 ire_t *ire; in ip_get_pmtu() local
3721 ire = ixa->ixa_ire; in ip_get_pmtu()
3760 if (ire->ire_metrics.iulp_mtu != 0 && in ip_get_pmtu()
3761 ire->ire_metrics.iulp_mtu < pmtu) in ip_get_pmtu()
3762 pmtu = ire->ire_metrics.iulp_mtu; in ip_get_pmtu()
3792 if (ire->ire_type & (IRE_LOCAL|IRE_LOOPBACK)) { in ip_get_pmtu()
3795 loopback_mtu = (ire->ire_ipversion == IPV6_VERSION) ? in ip_get_pmtu()
3807 if (ire->ire_type & (IRE_MULTICAST|IRE_BROADCAST)) { in ip_get_pmtu()
3844 if (ire->ire_type & IRE_MULTICAST) in ip_get_pmtu()
3855 if (ire->ire_type & IRE_MULTICAST) in ip_get_pmtu()
3876 (ire->ire_flags & RTF_MULTIRT) || in ip_get_pmtu()
5639 ire_t *ire; in ip_type_v4() local
5642 ire = ire_ftable_lookup_simple_v4(addr, 0, ipst, NULL); in ip_type_v4()
5643 ASSERT(ire != NULL); in ip_type_v4()
5644 if (ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE)) in ip_type_v4()
5647 result = ire->ire_type; in ip_type_v4()
5648 ire_refrele(ire); in ip_type_v4()
5661 ire_t *ire; in ip_type_v6() local
5664 ire = ire_ftable_lookup_simple_v6(addr, 0, ipst, NULL); in ip_type_v6()
5665 ASSERT(ire != NULL); in ip_type_v6()
5666 if (ire->ire_flags & (RTF_REJECT|RTF_BLACKHOLE)) in ip_type_v6()
5669 result = ire->ire_type; in ip_type_v6()
5670 ire_refrele(ire); in ip_type_v6()
6316 ire_t *ire; in ip_opt_set_multicast_group() local
6391 ire = ire_ftable_lookup_v4(group, IP_HOST_MASK, 0, in ip_opt_set_multicast_group()
6395 ire = ire_ftable_lookup_v6(&v6group, &ipv6_all_ones, 0, in ip_opt_set_multicast_group()
6399 if (ire != NULL) { in ip_opt_set_multicast_group()
6400 if (ire->ire_flags & RTF_MULTIRT) { in ip_opt_set_multicast_group()
6401 error = ip_multirt_apply_membership(optfn, ire, connp, in ip_opt_set_multicast_group()
6405 ire_refrele(ire); in ip_opt_set_multicast_group()
6436 ire_t *ire; in ip_opt_set_multicast_sources() local
6521 ire = ire_ftable_lookup_v4(group, IP_HOST_MASK, 0, in ip_opt_set_multicast_sources()
6525 ire = ire_ftable_lookup_v6(&v6group, &ipv6_all_ones, 0, in ip_opt_set_multicast_sources()
6529 if (ire != NULL) { in ip_opt_set_multicast_sources()
6530 if (ire->ire_flags & RTF_MULTIRT) { in ip_opt_set_multicast_sources()
6531 error = ip_multirt_apply_membership(optfn, ire, connp, in ip_opt_set_multicast_sources()
6535 ire_refrele(ire); in ip_opt_set_multicast_sources()
6588 ip_ire_rebind_walker(ire_t *ire, void *notused) in ip_ire_rebind_walker() argument
6590 if (!ire->ire_unbound || ire->ire_ill != NULL) in ip_ire_rebind_walker()
6592 ire_rebind(ire); in ip_ire_rebind_walker()
6593 ire_delete(ire); in ip_ire_rebind_walker()
6604 ip_ire_unbind_walker(ire_t *ire, void *notused) in ip_ire_unbind_walker() argument
6608 if (!ire->ire_unbound || ire->ire_ill == NULL) in ip_ire_unbind_walker()
6610 if (ire->ire_ipversion == IPV6_VERSION) { in ip_ire_unbind_walker()
6611 new_ire = ire_create_v6(&ire->ire_addr_v6, &ire->ire_mask_v6, in ip_ire_unbind_walker()
6612 &ire->ire_gateway_addr_v6, ire->ire_type, NULL, in ip_ire_unbind_walker()
6613 ire->ire_zoneid, ire->ire_flags, NULL, ire->ire_ipst); in ip_ire_unbind_walker()
6615 new_ire = ire_create((uchar_t *)&ire->ire_addr, in ip_ire_unbind_walker()
6616 (uchar_t *)&ire->ire_mask, in ip_ire_unbind_walker()
6617 (uchar_t *)&ire->ire_gateway_addr, ire->ire_type, NULL, in ip_ire_unbind_walker()
6618 ire->ire_zoneid, ire->ire_flags, NULL, ire->ire_ipst); in ip_ire_unbind_walker()
6627 ire_delete(ire); in ip_ire_unbind_walker()
7684 ip_check_multihome(void *addr, ire_t *ire, ill_t *ill) in ip_check_multihome() argument
7697 ASSERT(ire->ire_ill != NULL); in ip_check_multihome()
7698 if (IS_IN_SAME_ILLGRP(ill, ire->ire_ill)) in ip_check_multihome()
7699 return (ire); in ip_check_multihome()
7715 if (ire->ire_ipversion == IPV4_VERSION) { in ip_check_multihome()
7740 if (new_ire != ire) in ip_check_multihome()
7744 return (ire); in ip_check_multihome()
7750 ASSERT(ire->ire_ill != NULL); in ip_check_multihome()
7751 ire_ill = ire->ire_ill; in ip_check_multihome()
7760 return (ire); in ip_check_multihome()
7768 return (ire); in ip_check_multihome()
7770 if ((ill->ill_flags & ire->ire_ill->ill_flags & ILLF_ROUTER) != 0) { in ip_check_multihome()
7771 return (ire); in ip_check_multihome()
9403 ire_t *ire; in ip_input_options() local
9479 ire = ire_ftable_lookup_v4(dst, 0, 0, in ip_input_options()
9484 if (ire == NULL) { in ip_input_options()
9490 ire_refrele(ire); in ip_input_options()
10915 ip_snmp_get2_v4(ire_t *ire, iproutedata_t *ird) in ip_snmp_get2_v4() argument
10923 ip_stack_t *ipst = ire->ire_ipst; in ip_snmp_get2_v4()
10925 ASSERT(ire->ire_ipversion == IPV4_VERSION); in ip_snmp_get2_v4()
10928 if (ire->ire_testhidden) in ip_snmp_get2_v4()
10930 if (ire->ire_type & IRE_IF_CLONE) in ip_snmp_get2_v4()
10937 if ((attrp = ire->ire_gw_secattr) != NULL) { in ip_snmp_get2_v4()
10949 re->ipRouteDest = ire->ire_addr; in ip_snmp_get2_v4()
10950 ill = ire->ire_ill; in ip_snmp_get2_v4()
10962 re->ipRouteNextHop = ire->ire_gateway_addr; in ip_snmp_get2_v4()
10964 if (ire->ire_flags & (RTF_REJECT | RTF_BLACKHOLE)) in ip_snmp_get2_v4()
10966 else if (ire->ire_type & IRE_ONLINK) in ip_snmp_get2_v4()
10972 re->ipRouteAge = gethrestime_sec() - ire->ire_create_time; in ip_snmp_get2_v4()
10973 re->ipRouteMask = ire->ire_mask; in ip_snmp_get2_v4()
10975 re->ipRouteInfo.re_max_frag = ire->ire_metrics.iulp_mtu; in ip_snmp_get2_v4()
10976 if (ire->ire_ill != NULL && re->ipRouteInfo.re_max_frag == 0) in ip_snmp_get2_v4()
10977 re->ipRouteInfo.re_max_frag = ire->ire_ill->ill_mtu; in ip_snmp_get2_v4()
10982 re->ipRouteInfo.re_ref = ire->ire_refcnt; in ip_snmp_get2_v4()
10983 re->ipRouteInfo.re_obpkt = ire->ire_ob_pkt_count; in ip_snmp_get2_v4()
10984 re->ipRouteInfo.re_ibpkt = ire->ire_ib_pkt_count; in ip_snmp_get2_v4()
10985 re->ipRouteInfo.re_flags = ire->ire_flags; in ip_snmp_get2_v4()
10988 if (ire->ire_type & IRE_INTERFACE) { in ip_snmp_get2_v4()
10992 child = ire->ire_dep_children; in ip_snmp_get2_v4()
11001 if (ire->ire_flags & RTF_DYNAMIC) { in ip_snmp_get2_v4()
11004 re->ipRouteInfo.re_ire_type = ire->ire_type; in ip_snmp_get2_v4()
11037 ip_snmp_get2_v6_route(ire_t *ire, iproutedata_t *ird) in ip_snmp_get2_v6_route() argument
11045 ip_stack_t *ipst = ire->ire_ipst; in ip_snmp_get2_v6_route()
11047 ASSERT(ire->ire_ipversion == IPV6_VERSION); in ip_snmp_get2_v6_route()
11050 if (ire->ire_testhidden) in ip_snmp_get2_v6_route()
11052 if (ire->ire_type & IRE_IF_CLONE) in ip_snmp_get2_v6_route()
11059 if ((attrp = ire->ire_gw_secattr) != NULL) { in ip_snmp_get2_v6_route()
11071 re->ipv6RouteDest = ire->ire_addr_v6; in ip_snmp_get2_v6_route()
11072 re->ipv6RoutePfxLength = ip_mask_to_plen_v6(&ire->ire_mask_v6); in ip_snmp_get2_v6_route()
11075 ill = ire->ire_ill; in ip_snmp_get2_v6_route()
11082 ASSERT(!(ire->ire_type & IRE_BROADCAST)); in ip_snmp_get2_v6_route()
11084 mutex_enter(&ire->ire_lock); in ip_snmp_get2_v6_route()
11085 re->ipv6RouteNextHop = ire->ire_gateway_addr_v6; in ip_snmp_get2_v6_route()
11086 mutex_exit(&ire->ire_lock); in ip_snmp_get2_v6_route()
11089 if (ire->ire_flags & (RTF_REJECT | RTF_BLACKHOLE)) in ip_snmp_get2_v6_route()
11091 else if (ire->ire_type & IRE_ONLINK) in ip_snmp_get2_v6_route()
11098 re->ipv6RouteAge = gethrestime_sec() - ire->ire_create_time; in ip_snmp_get2_v6_route()
11102 re->ipv6RouteInfo.re_max_frag = ire->ire_metrics.iulp_mtu; in ip_snmp_get2_v6_route()
11103 if (ire->ire_ill != NULL && re->ipv6RouteInfo.re_max_frag == 0) in ip_snmp_get2_v6_route()
11104 re->ipv6RouteInfo.re_max_frag = ire->ire_ill->ill_mtu; in ip_snmp_get2_v6_route()
11109 re->ipv6RouteInfo.re_obpkt = ire->ire_ob_pkt_count; in ip_snmp_get2_v6_route()
11110 re->ipv6RouteInfo.re_ibpkt = ire->ire_ib_pkt_count; in ip_snmp_get2_v6_route()
11111 re->ipv6RouteInfo.re_ref = ire->ire_refcnt; in ip_snmp_get2_v6_route()
11112 re->ipv6RouteInfo.re_flags = ire->ire_flags; in ip_snmp_get2_v6_route()
11115 if (ire->ire_type & IRE_INTERFACE) { in ip_snmp_get2_v6_route()
11119 child = ire->ire_dep_children; in ip_snmp_get2_v6_route()
11127 if (ire->ire_flags & RTF_DYNAMIC) { in ip_snmp_get2_v6_route()
11130 re->ipv6RouteInfo.re_ire_type = ire->ire_type; in ip_snmp_get2_v6_route()
12982 ire_t *ire; in ip_output_options() local
13015 ire = ire_ftable_lookup_v4(dst, 0, 0, in ip_output_options()
13020 if (ire == NULL) { in ip_output_options()
13026 ire_refrele(ire); in ip_output_options()
13719 ire_t *ire, conn_t *connp, boolean_t checkonly, const in6_addr_t *v6group, in ip_multirt_apply_membership() argument
13727 ip_stack_t *ipst = ire->ire_ipst; in ip_multirt_apply_membership()
13739 irb = ire->ire_bucket; in ip_multirt_apply_membership()
13744 for (; ire != NULL; ire = ire->ire_next) { in ip_multirt_apply_membership()
13745 if ((ire->ire_flags & RTF_MULTIRT) == 0) in ip_multirt_apply_membership()
13750 if (ire->ire_ill != NULL) in ip_multirt_apply_membership()
13754 if (!IN6_ARE_ADDR_EQUAL(&ire->ire_addr_v6, v6group)) in ip_multirt_apply_membership()
13757 ire_gw = ire_ftable_lookup_v6(&ire->ire_gateway_addr_v6, in ip_multirt_apply_membership()
13758 0, 0, IRE_INTERFACE, ire->ire_ill, ALL_ZONES, NULL, in ip_multirt_apply_membership()
13761 if (ire->ire_addr != group) in ip_multirt_apply_membership()
13764 ire_gw = ire_ftable_lookup_v4(ire->ire_gateway_addr, in ip_multirt_apply_membership()
13765 0, 0, IRE_INTERFACE, ire->ire_ill, ALL_ZONES, NULL, in ip_multirt_apply_membership()
15100 ire_t *ire; in ip_get_zoneid_v4() local
15109 ire = ire_ftable_lookup_v4(addr, NULL, NULL, IRE_LOCAL | IRE_LOOPBACK, in ip_get_zoneid_v4()
15111 if (ire != NULL) { in ip_get_zoneid_v4()
15112 zoneid = IP_REAL_ZONEID(ire->ire_zoneid, ipst); in ip_get_zoneid_v4()
15113 ire_refrele(ire); in ip_get_zoneid_v4()
15123 ire_t *ire; in ip_get_zoneid_v6() local
15135 ire = ire_ftable_lookup_v6(addr, NULL, NULL, IRE_LOCAL | IRE_LOOPBACK, in ip_get_zoneid_v6()
15137 if (ire != NULL) { in ip_get_zoneid_v6()
15138 zoneid = IP_REAL_ZONEID(ire->ire_zoneid, ipst); in ip_get_zoneid_v6()
15139 ire_refrele(ire); in ip_get_zoneid_v6()