Lines Matching refs:rt

205 #define MF6CFIND(o, g, rt) do { \
207 rt = NULL; \
213 rt = _rt; \
218 if (rt == NULL) { \
389 struct mf6c *rt;
391 MF6CFIND(req->src.sin6_addr, req->grp.sin6_addr, rt);
392 if (rt != NULL) {
393 req->pktcnt = rt->mf6c_pkt_cnt;
394 req->bytecnt = rt->mf6c_byte_cnt;
395 req->wrong_if = rt->mf6c_wrong_if;
510 struct mf6c *rt;
561 rt = mf6ctable[i];
562 while (rt) {
565 for (rte = rt->mf6c_stall; rte != NULL; ) {
572 frt = rt;
573 rt = rt->mf6c_next;
729 struct mf6c *rt;
735 mfccp->mf6cc_mcastgrp.sin6_addr, rt);
738 if (rt) {
748 rt->mf6c_parent = mfccp->mf6cc_parent;
749 rt->mf6c_ifset = mfccp->mf6cc_ifset;
758 for (rt = mf6ctable[hash], nstl = 0; rt; rt = rt->mf6c_next) {
759 if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr,
761 IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr,
763 (rt->mf6c_stall != NULL)) {
771 mfccp->mf6cc_parent, rt->mf6c_stall);
779 mfccp->mf6cc_parent, rt->mf6c_stall);
782 rt->mf6c_origin = mfccp->mf6cc_origin;
783 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
784 rt->mf6c_parent = mfccp->mf6cc_parent;
785 rt->mf6c_ifset = mfccp->mf6cc_ifset;
787 rt->mf6c_pkt_cnt = 0;
788 rt->mf6c_byte_cnt = 0;
789 rt->mf6c_wrong_if = 0;
791 rt->mf6c_expire = 0; /* Don't clean this guy up */
795 for (rte = rt->mf6c_stall; rte != NULL; ) {
797 ip6_mdq(rte->m, rte->ifp, rt);
805 rt->mf6c_stall = NULL;
822 for (rt = mf6ctable[hash]; rt; rt = rt->mf6c_next) {
824 if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr,
826 IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr,
829 rt->mf6c_origin = mfccp->mf6cc_origin;
830 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
831 rt->mf6c_parent = mfccp->mf6cc_parent;
832 rt->mf6c_ifset = mfccp->mf6cc_ifset;
834 rt->mf6c_pkt_cnt = 0;
835 rt->mf6c_byte_cnt = 0;
836 rt->mf6c_wrong_if = 0;
838 if (rt->mf6c_expire)
840 rt->mf6c_expire = 0;
843 if (rt == NULL) {
845 rt = (struct mf6c *)_MALLOC(sizeof(*rt), M_MRTABLE,
847 if (rt == NULL) {
852 rt->mf6c_origin = mfccp->mf6cc_origin;
853 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
854 rt->mf6c_parent = mfccp->mf6cc_parent;
855 rt->mf6c_ifset = mfccp->mf6cc_ifset;
857 rt->mf6c_pkt_cnt = 0;
858 rt->mf6c_byte_cnt = 0;
859 rt->mf6c_wrong_if = 0;
860 rt->mf6c_expire = 0;
861 rt->mf6c_stall = NULL;
864 rt->mf6c_next = mf6ctable[hash];
865 mf6ctable[hash] = rt;
907 struct mf6c *rt;
924 while ((rt = *nptr) != NULL) {
926 &rt->mf6c_origin.sin6_addr) &&
928 &rt->mf6c_mcastgrp.sin6_addr) &&
929 rt->mf6c_stall == NULL)
932 nptr = &rt->mf6c_next;
934 if (rt == NULL) {
938 *nptr = rt->mf6c_next;
939 FREE(rt, M_MRTABLE);
981 struct mf6c *rt;
1029 MF6CFIND(ip6->ip6_src, ip6->ip6_dst, rt);
1032 if (rt) {
1033 return (ip6_mdq(m, ifp, rt));
1083 for (rt = mf6ctable[hash]; rt; rt = rt->mf6c_next) {
1085 &rt->mf6c_origin.sin6_addr) &&
1087 &rt->mf6c_mcastgrp.sin6_addr) &&
1088 (rt->mf6c_stall != NULL))
1092 if (rt == NULL) {
1099 rt = (struct mf6c *)_MALLOC(sizeof(*rt), M_MRTABLE,
1101 if (rt == NULL) {
1115 FREE(rt, M_MRTABLE);
1144 FREE(rt, M_MRTABLE);
1176 FREE(rt, M_MRTABLE);
1183 bzero(rt, sizeof(*rt));
1184 rt->mf6c_origin.sin6_family = AF_INET6;
1185 rt->mf6c_origin.sin6_len = sizeof(struct sockaddr_in6);
1186 rt->mf6c_origin.sin6_addr = ip6->ip6_src;
1187 rt->mf6c_mcastgrp.sin6_family = AF_INET6;
1188 rt->mf6c_mcastgrp.sin6_len = sizeof(struct sockaddr_in6);
1189 rt->mf6c_mcastgrp.sin6_addr = ip6->ip6_dst;
1190 rt->mf6c_expire = UPCALL_EXPIRE;
1192 rt->mf6c_parent = MF6C_INCOMPLETE_PARENT;
1195 rt->mf6c_next = mf6ctable[hash];
1196 mf6ctable[hash] = rt;
1198 rt->mf6c_stall = rte;
1204 for (p = &rt->mf6c_stall; *p != NULL; p = &(*p)->next)
1288 ip6_mdq(m, ifp, rt)
1291 struct mf6c *rt;
1318 mifi = rt->mf6c_parent;
1329 rt->mf6c_wrong_if++;
1424 rt->mf6c_pkt_cnt++;
1425 rt->mf6c_byte_cnt += plen;
1439 if (IF_ISSET(mifi, &rt->mf6c_ifset)) {
1446 if (!(mif6table[rt->mf6c_parent].m6_flags &