Lines Matching defs:rt
201 #define MF6CFIND(o, g, rt) do { \
203 rt = NULL; \
209 rt = _rt; \
214 if (rt == NULL) { \
382 struct mf6c *rt;
384 MF6CFIND(req->src.sin6_addr, req->grp.sin6_addr, rt);
385 if (rt != NULL) {
386 req->pktcnt = rt->mf6c_pkt_cnt;
387 req->bytecnt = rt->mf6c_byte_cnt;
388 req->wrong_if = rt->mf6c_wrong_if;
486 struct mf6c *rt;
545 rt = mf6ctable[i];
546 while (rt) {
549 for (rte = rt->mf6c_stall; rte != NULL; ) {
556 frt = rt;
557 rt = rt->mf6c_next;
710 struct mf6c *rt;
716 mfccp->mf6cc_mcastgrp.sin6_addr, rt);
719 if (rt) {
729 rt->mf6c_parent = mfccp->mf6cc_parent;
730 rt->mf6c_ifset = mfccp->mf6cc_ifset;
739 for (rt = mf6ctable[hash], nstl = 0; rt; rt = rt->mf6c_next) {
740 if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr,
742 IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr,
744 (rt->mf6c_stall != NULL)) {
752 mfccp->mf6cc_parent, rt->mf6c_stall);
760 mfccp->mf6cc_parent, rt->mf6c_stall);
763 rt->mf6c_origin = mfccp->mf6cc_origin;
764 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
765 rt->mf6c_parent = mfccp->mf6cc_parent;
766 rt->mf6c_ifset = mfccp->mf6cc_ifset;
768 rt->mf6c_pkt_cnt = 0;
769 rt->mf6c_byte_cnt = 0;
770 rt->mf6c_wrong_if = 0;
772 rt->mf6c_expire = 0; /* Don't clean this guy up */
776 for (rte = rt->mf6c_stall; rte != NULL; ) {
778 ip6_mdq(rte->m, rte->ifp, rt);
786 rt->mf6c_stall = NULL;
803 for (rt = mf6ctable[hash]; rt; rt = rt->mf6c_next) {
805 if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr,
807 IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr,
810 rt->mf6c_origin = mfccp->mf6cc_origin;
811 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
812 rt->mf6c_parent = mfccp->mf6cc_parent;
813 rt->mf6c_ifset = mfccp->mf6cc_ifset;
815 rt->mf6c_pkt_cnt = 0;
816 rt->mf6c_byte_cnt = 0;
817 rt->mf6c_wrong_if = 0;
819 if (rt->mf6c_expire)
821 rt->mf6c_expire = 0;
824 if (rt == NULL) {
826 rt = (struct mf6c *)_MALLOC(sizeof(*rt), M_MRTABLE,
828 if (rt == NULL) {
833 rt->mf6c_origin = mfccp->mf6cc_origin;
834 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
835 rt->mf6c_parent = mfccp->mf6cc_parent;
836 rt->mf6c_ifset = mfccp->mf6cc_ifset;
838 rt->mf6c_pkt_cnt = 0;
839 rt->mf6c_byte_cnt = 0;
840 rt->mf6c_wrong_if = 0;
841 rt->mf6c_expire = 0;
842 rt->mf6c_stall = NULL;
845 rt->mf6c_next = mf6ctable[hash];
846 mf6ctable[hash] = rt;
888 struct mf6c *rt;
905 while ((rt = *nptr) != NULL) {
907 &rt->mf6c_origin.sin6_addr) &&
909 &rt->mf6c_mcastgrp.sin6_addr) &&
910 rt->mf6c_stall == NULL)
913 nptr = &rt->mf6c_next;
915 if (rt == NULL) {
919 *nptr = rt->mf6c_next;
920 FREE(rt, M_MRTABLE);
962 struct mf6c *rt;
1010 MF6CFIND(ip6->ip6_src, ip6->ip6_dst, rt);
1013 if (rt) {
1014 return (ip6_mdq(m, ifp, rt));
1064 for (rt = mf6ctable[hash]; rt; rt = rt->mf6c_next) {
1066 &rt->mf6c_origin.sin6_addr) &&
1068 &rt->mf6c_mcastgrp.sin6_addr) &&
1069 (rt->mf6c_stall != NULL))
1073 if (rt == NULL) {
1080 rt = (struct mf6c *)_MALLOC(sizeof(*rt), M_MRTABLE,
1082 if (rt == NULL) {
1096 FREE(rt, M_MRTABLE);
1125 FREE(rt, M_MRTABLE);
1157 FREE(rt, M_MRTABLE);
1164 bzero(rt, sizeof(*rt));
1165 rt->mf6c_origin.sin6_family = AF_INET6;
1166 rt->mf6c_origin.sin6_len = sizeof(struct sockaddr_in6);
1167 rt->mf6c_origin.sin6_addr = ip6->ip6_src;
1168 rt->mf6c_mcastgrp.sin6_family = AF_INET6;
1169 rt->mf6c_mcastgrp.sin6_len = sizeof(struct sockaddr_in6);
1170 rt->mf6c_mcastgrp.sin6_addr = ip6->ip6_dst;
1171 rt->mf6c_expire = UPCALL_EXPIRE;
1173 rt->mf6c_parent = MF6C_INCOMPLETE_PARENT;
1176 rt->mf6c_next = mf6ctable[hash];
1177 mf6ctable[hash] = rt;
1179 rt->mf6c_stall = rte;
1185 for (p = &rt->mf6c_stall; *p != NULL; p = &(*p)->next)
1274 ip6_mdq(m, ifp, rt)
1277 struct mf6c *rt;
1301 mifi = rt->mf6c_parent;
1312 rt->mf6c_wrong_if++;
1407 rt->mf6c_pkt_cnt++;
1408 rt->mf6c_byte_cnt += plen;
1415 if (IF_ISSET(mifi, &rt->mf6c_ifset)) {
1422 if ((mif6table[rt->mf6c_parent].m6_flags &