Lines Matching refs:pr

50 void		incoming_prefix_onlink_process(struct prefix *pr,
57 struct prefix *pr, uchar_t *opt,
646 struct prefix *pr; in incoming_prefix_onlink() local
651 for (pr = pi->pi_prefix_list; pr != NULL; pr = pr->pr_next) { in incoming_prefix_onlink()
652 if (pr->pr_prefix_len == plen && in incoming_prefix_onlink()
653 prefix_equal(po->nd_opt_pi_prefix, pr->pr_prefix, plen)) { in incoming_prefix_onlink()
655 if (pr->pr_state & PR_STATIC) in incoming_prefix_onlink()
658 incoming_prefix_onlink_process(pr, opt); in incoming_prefix_onlink()
669 pr = prefix_create(pi, po->nd_opt_pi_prefix, plen, 0); in incoming_prefix_onlink()
670 if (pr == NULL) in incoming_prefix_onlink()
672 incoming_prefix_onlink_process(pr, opt); in incoming_prefix_onlink()
676 incoming_prefix_onlink_process(struct prefix *pr, uchar_t *opt) in incoming_prefix_onlink_process() argument
684 pr->pr_state |= PR_ONLINK; in incoming_prefix_onlink_process()
686 pr->pr_state &= ~PR_ONLINK; in incoming_prefix_onlink_process()
696 if (pr->pr_flags & IFF_TEMPORARY) { in incoming_prefix_onlink_process()
697 pr->pr_OnLinkLifetime = pr->pr_ValidLifetime; in incoming_prefix_onlink_process()
700 pr->pr_OnLinkLifetime = PREFIX_INFINITY - 1; in incoming_prefix_onlink_process()
702 pr->pr_OnLinkLifetime = validtime * MILLISEC; in incoming_prefix_onlink_process()
704 pr->pr_OnLinkFlag = _B_TRUE; in incoming_prefix_onlink_process()
708 pr->pr_name, inet_ntop(AF_INET6, (void *)&pr->pr_prefix, in incoming_prefix_onlink_process()
709 abuf, sizeof (abuf)), pr->pr_prefix_len, in incoming_prefix_onlink_process()
710 pr->pr_OnLinkLifetime, pr->pr_state, pr->pr_kernel_state); in incoming_prefix_onlink_process()
713 if (pr->pr_kernel_state != pr->pr_state) { in incoming_prefix_onlink_process()
714 prefix_update_k(pr); in incoming_prefix_onlink_process()
717 if (pr->pr_OnLinkLifetime != 0) in incoming_prefix_onlink_process()
718 timer_schedule(pr->pr_OnLinkLifetime); in incoming_prefix_onlink_process()
729 struct prefix *pr; in incoming_prefix_stateful() local
747 for (pr = pi->pi_prefix_list; pr != NULL; pr = pr->pr_next) { in incoming_prefix_stateful()
748 if (prefix_equal(po->nd_opt_pi_prefix, pr->pr_prefix, in incoming_prefix_stateful()
750 if ((pr->pr_flags & IFF_DHCPRUNNING) && in incoming_prefix_stateful()
751 pr->pr_prefix_len != po->nd_opt_pi_prefix_len) { in incoming_prefix_stateful()
752 pr->pr_prefix_len = po->nd_opt_pi_prefix_len; in incoming_prefix_stateful()
753 if (pr->pr_flags & IFF_UP) { in incoming_prefix_stateful()
758 pr->pr_name); in incoming_prefix_stateful()
759 prefix_update_dhcp(pr); in incoming_prefix_stateful()
762 if (pr->pr_prefix_len == po->nd_opt_pi_prefix_len && in incoming_prefix_stateful()
763 (!(pr->pr_state & PR_STATIC) || in incoming_prefix_stateful()
764 (pr->pr_flags & IFF_DHCPRUNNING))) in incoming_prefix_stateful()
773 pr = prefix_create(pi, po->nd_opt_pi_prefix, in incoming_prefix_stateful()
775 if (pr != NULL) { in incoming_prefix_stateful()
776 pr->pr_state = PR_STATIC; in incoming_prefix_stateful()
798 struct prefix *pr; in incoming_prefix_addrconf() local
824 for (pr = pi->pi_prefix_list; pr != NULL; pr = pr->pr_next) { in incoming_prefix_addrconf()
825 if (pr->pr_prefix_len == plen && in incoming_prefix_addrconf()
826 prefix_equal(po->nd_opt_pi_prefix, pr->pr_prefix, plen)) { in incoming_prefix_addrconf()
829 if ((pr->pr_state & PR_STATIC) || in incoming_prefix_addrconf()
830 (pr->pr_flags & IFF_DHCPRUNNING)) in incoming_prefix_addrconf()
832 if (pr->pr_flags & IFF_TEMPORARY) { in incoming_prefix_addrconf()
839 if (!((pr->pr_flags & IFF_DEPRECATED) && in incoming_prefix_addrconf()
841 pr->pr_address, TMP_TOKEN_BITS))) in incoming_prefix_addrconf()
846 (void) incoming_prefix_addrconf_process(pi, pr, opt, in incoming_prefix_addrconf()
861 pr = prefix_create(pi, po->nd_opt_pi_prefix, plen, 0); in incoming_prefix_addrconf()
862 if (pr == NULL) in incoming_prefix_addrconf()
864 ret = incoming_prefix_addrconf_process(pi, pr, opt, from, in incoming_prefix_addrconf()
875 pr = prefix_create(pi, po->nd_opt_pi_prefix, plen, in incoming_prefix_addrconf()
877 if (pr == NULL) in incoming_prefix_addrconf()
879 ret = incoming_prefix_addrconf_process(pi, pr, opt, from, in incoming_prefix_addrconf()
887 incoming_prefix_addrconf_process(struct phyint *pi, struct prefix *pr, in incoming_prefix_addrconf_process() argument
910 recorded_validtime = pr->pr_ValidLifetime / MILLISEC; in incoming_prefix_addrconf_process()
912 if (loopback || !(pr->pr_state & PR_AUTO) || in incoming_prefix_addrconf_process()
961 if (pr->pr_flags & IFF_TEMPORARY) { in incoming_prefix_addrconf_process()
972 cur_vexp = pr->pr_CreateTime + pi->pi_TmpValidLifetime; in incoming_prefix_addrconf_process()
973 cur_pexp = pr->pr_CreateTime + cur_tpreftime; in incoming_prefix_addrconf_process()
983 if ((pr->pr_PreferredLifetime == 0) && in incoming_prefix_addrconf_process()
984 !token_equal(pr->pr_address, pi->pi_tmp_token, in incoming_prefix_addrconf_process()
1004 prefix_update_ipadm_addrobj(pr, _B_FALSE); in incoming_prefix_addrconf_process()
1005 prefix_delete(pr); in incoming_prefix_addrconf_process()
1012 "p %d\n", pr->pr_name, pr->pr_flags, validtime, preftime); in incoming_prefix_addrconf_process()
1014 if (!(pr->pr_state & PR_AUTO)) { in incoming_prefix_addrconf_process()
1020 if (pr->pr_flags & IFF_TEMPORARY) { in incoming_prefix_addrconf_process()
1023 prefix_delete(pr); in incoming_prefix_addrconf_process()
1033 if (pr->pr_prefix_len + tokenlen != IPV6_ABITS) { in incoming_prefix_addrconf_process()
1043 pr->pr_prefix_len, tokenlen); in incoming_prefix_addrconf_process()
1051 pr->pr_address.s6_addr[i] = pr->pr_prefix.s6_addr[i] | in incoming_prefix_addrconf_process()
1058 if ((other_pr = prefix_lookup_addr_match(pr)) != NULL) { in incoming_prefix_addrconf_process()
1071 prefix_update_ipadm_addrobj(pr, _B_FALSE); in incoming_prefix_addrconf_process()
1072 prefix_delete(pr); in incoming_prefix_addrconf_process()
1078 if ((pr->pr_flags & IFF_TEMPORARY) && new_prefix) { in incoming_prefix_addrconf_process()
1079 pr->pr_CreateTime = getcurrenttime() / MILLISEC; in incoming_prefix_addrconf_process()
1083 pr->pr_name, validtime, preftime); in incoming_prefix_addrconf_process()
1088 pr->pr_state |= PR_AUTO; in incoming_prefix_addrconf_process()
1090 pr->pr_state &= ~(PR_AUTO|PR_DEPRECATED); in incoming_prefix_addrconf_process()
1091 if (preftime != 0 || !(pr->pr_state & PR_AUTO)) in incoming_prefix_addrconf_process()
1092 pr->pr_state &= ~PR_DEPRECATED; in incoming_prefix_addrconf_process()
1094 pr->pr_state |= PR_DEPRECATED; in incoming_prefix_addrconf_process()
1105 pr->pr_ValidLifetime = PREFIX_INFINITY - 1; in incoming_prefix_addrconf_process()
1107 pr->pr_ValidLifetime = validtime * MILLISEC; in incoming_prefix_addrconf_process()
1109 pr->pr_PreferredLifetime = PREFIX_INFINITY - 1; in incoming_prefix_addrconf_process()
1111 pr->pr_PreferredLifetime = preftime * MILLISEC; in incoming_prefix_addrconf_process()
1112 pr->pr_AutonomousFlag = _B_TRUE; in incoming_prefix_addrconf_process()
1117 pr->pr_physical->pi_name, in incoming_prefix_addrconf_process()
1118 inet_ntop(AF_INET6, (void *)&pr->pr_prefix, in incoming_prefix_addrconf_process()
1119 abuf, sizeof (abuf)), pr->pr_prefix_len, in incoming_prefix_addrconf_process()
1120 pr->pr_ValidLifetime, pr->pr_PreferredLifetime); in incoming_prefix_addrconf_process()
1123 if (pr->pr_state & PR_AUTO) { in incoming_prefix_addrconf_process()
1125 if (pr->pr_ValidLifetime != 0) in incoming_prefix_addrconf_process()
1126 timer_schedule(pr->pr_ValidLifetime); in incoming_prefix_addrconf_process()
1127 if (pr->pr_PreferredLifetime != 0) in incoming_prefix_addrconf_process()
1128 timer_schedule(pr->pr_PreferredLifetime); in incoming_prefix_addrconf_process()
1130 if (pr->pr_kernel_state != pr->pr_state) { in incoming_prefix_addrconf_process()
1132 if ((pr->pr_kernel_state & PR_AUTO) && in incoming_prefix_addrconf_process()
1133 !(pr->pr_state & PR_AUTO)) { in incoming_prefix_addrconf_process()
1138 inet_ntop(AF_INET6, (void *)&pr->pr_address, in incoming_prefix_addrconf_process()
1141 prefix_update_k(pr); in incoming_prefix_addrconf_process()