Lines Matching refs:mfc_rt
612 struct mfc *mfc_rt; in ip_mrouter_done() local
706 mfc_rt = ipst->ips_mfcs[i].mfcb_mfc; in ip_mrouter_done()
707 while (mfc_rt) { in ip_mrouter_done()
709 mutex_enter(&mfc_rt->mfc_mutex); in ip_mrouter_done()
710 if (mfc_rt->mfc_rte != NULL) { in ip_mrouter_done()
711 if (mfc_rt->mfc_timeout_id != 0) { in ip_mrouter_done()
719 mfc_rt->mfc_timeout_id = 0; in ip_mrouter_done()
720 mutex_exit(&mfc_rt->mfc_mutex); in ip_mrouter_done()
722 mfc_rt->mfc_timeout_id); in ip_mrouter_done()
723 mfc_rt->mfc_timeout_id = 0; in ip_mrouter_done()
724 mutex_enter(&mfc_rt->mfc_mutex); in ip_mrouter_done()
734 mfc_rt->mfc_marks |= MFCB_MARK_CONDEMNED; in ip_mrouter_done()
736 mutex_exit(&mfc_rt->mfc_mutex); in ip_mrouter_done()
737 mfc_rt = mfc_rt->mfc_next; in ip_mrouter_done()
1663 struct mfc *mfc_rt = NULL; in ip_mforward() local
1700 for (mfc_rt = ipst->ips_mfcs[hash].mfcb_mfc; mfc_rt; in ip_mforward()
1701 mfc_rt = mfc_rt->mfc_next) { in ip_mforward()
1702 mutex_enter(&mfc_rt->mfc_mutex); in ip_mforward()
1708 hash, ntohl(mfc_rt->mfc_origin.s_addr), in ip_mforward()
1709 ntohl(mfc_rt->mfc_mcastgrp.s_addr)); in ip_mforward()
1712 if ((src == mfc_rt->mfc_origin.s_addr) && in ip_mforward()
1713 (dst == mfc_rt->mfc_mcastgrp.s_addr) && in ip_mforward()
1714 (mfc_rt->mfc_rte != NULL) && in ip_mforward()
1715 !(mfc_rt->mfc_marks & MFCB_MARK_CONDEMNED)) { in ip_mforward()
1718 mutex_exit(&mfc_rt->mfc_mutex); in ip_mforward()
1721 if (mfc_rt == NULL) { in ip_mforward()
1722 mfc_rt = (struct mfc *)mi_zalloc(sizeof (struct mfc)); in ip_mforward()
1723 if (mfc_rt == NULL) { in ip_mforward()
1739 mutex_enter(&mfc_rt->mfc_mutex); in ip_mforward()
1746 mutex_exit(&mfc_rt->mfc_mutex); in ip_mforward()
1756 mutex_exit(&mfc_rt->mfc_mutex); in ip_mforward()
1775 for (rte_m = mfc_rt->mfc_rte, npkts = 0; rte_m; in ip_mforward()
1784 mutex_exit(&mfc_rt->mfc_mutex); in ip_mforward()
1795 mfc_rt->mfc_origin.s_addr = src; in ip_mforward()
1796 mfc_rt->mfc_mcastgrp.s_addr = dst; in ip_mforward()
1800 mfc_rt->mfc_ttls[i] = 0; in ip_mforward()
1802 mfc_rt->mfc_parent = ALL_VIFS; in ip_mforward()
1810 ntohl(mfc_rt->mfc_origin.s_addr), in ip_mforward()
1811 ntohl(mfc_rt->mfc_mcastgrp.s_addr)); in ip_mforward()
1813 mfc_rt->mfc_next = ipst->ips_mfcs[hash].mfcb_mfc; in ip_mforward()
1814 ipst->ips_mfcs[hash].mfcb_mfc = mfc_rt; in ip_mforward()
1815 mfc_rt->mfc_rte = NULL; in ip_mforward()
1820 if (mfc_rt->mfc_rte == NULL) in ip_mforward()
1821 mfc_rt->mfc_rte = rte; in ip_mforward()
1824 prev_rte = mfc_rt->mfc_rte; in ip_mforward()
1825 for (rte1 = mfc_rt->mfc_rte->rte_next; rte1; in ip_mforward()
1867 mfc_rt->mfc_timeout_id = timeout(expire_upcalls, in ip_mforward()
1868 mfc_rt, EXPIRE_TIMEOUT * UPCALL_EXPIRE); in ip_mforward()
1869 mutex_exit(&mfc_rt->mfc_mutex); in ip_mforward()
1877 mutex_exit(&mfc_rt->mfc_mutex); in ip_mforward()
1893 if (mfc_rt != NULL && (new_mfc == B_TRUE)) in ip_mforward()
1894 mi_free((char *)mfc_rt); in ip_mforward()
1915 struct mfc *mfc_rt = arg; in expire_upcalls() local
1921 if (mfc_rt->mfc_rte == NULL || mfc_rt->mfc_rte->ill != NULL) { in expire_upcalls()
1925 ipst = mfc_rt->mfc_rte->ill->ill_ipst; in expire_upcalls()
1928 hash = MFCHASH(mfc_rt->mfc_origin.s_addr, mfc_rt->mfc_mcastgrp.s_addr); in expire_upcalls()
1932 hash, ntohl(mfc_rt->mfc_origin.s_addr), in expire_upcalls()
1933 ntohl(mfc_rt->mfc_mcastgrp.s_addr)); in expire_upcalls()
1936 mutex_enter(&mfc_rt->mfc_mutex); in expire_upcalls()
1941 if (mfc_rt->mfc_timeout_id == 0) in expire_upcalls()
1944 mfc_rt->mfc_timeout_id = 0; in expire_upcalls()
1949 if (mfc0 == mfc_rt) in expire_upcalls()
1960 mfc_rt->mfc_marks |= MFCB_MARK_CONDEMNED; in expire_upcalls()
1967 mutex_exit(&mfc_rt->mfc_mutex); in expire_upcalls()