Lines Matching defs:rt

280 #define MF6CFIND(o, g, rt) do { \
282 rt = NULL; \
287 rt = _rt; \
292 if (rt == NULL) { \
466 struct mf6c *rt;
473 MF6CFIND(req->src.sin6_addr, req->grp.sin6_addr, rt);
474 if (rt == NULL) {
477 req->pktcnt = rt->mf6c_pkt_cnt;
478 req->bytecnt = rt->mf6c_byte_cnt;
479 req->wrong_if = rt->mf6c_wrong_if;
576 struct mf6c *rt;
608 rt = mf6ctable[i];
609 while (rt) {
612 for (rte = rt->mf6c_stall; rte != NULL; ) {
619 frt = rt;
620 rt = rt->mf6c_next;
789 struct mf6c *rt;
798 mfccp->mf6cc_mcastgrp.sin6_addr, rt);
801 if (rt) {
807 rt->mf6c_parent = mfccp->mf6cc_parent;
808 rt->mf6c_ifset = mfccp->mf6cc_ifset;
819 for (rt = mf6ctable[hash], nstl = 0; rt; rt = rt->mf6c_next) {
820 if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr,
822 IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr,
824 (rt->mf6c_stall != NULL)) {
834 mfccp->mf6cc_parent, rt->mf6c_stall);
841 mfccp->mf6cc_parent, rt->mf6c_stall);
843 rt->mf6c_origin = mfccp->mf6cc_origin;
844 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
845 rt->mf6c_parent = mfccp->mf6cc_parent;
846 rt->mf6c_ifset = mfccp->mf6cc_ifset;
848 rt->mf6c_pkt_cnt = 0;
849 rt->mf6c_byte_cnt = 0;
850 rt->mf6c_wrong_if = 0;
852 rt->mf6c_expire = 0; /* Don't clean this guy up */
856 for (rte = rt->mf6c_stall; rte != NULL; ) {
858 ip6_mdq(rte->m, rte->ifp, rt);
866 rt->mf6c_stall = NULL;
879 for (rt = mf6ctable[hash]; rt; rt = rt->mf6c_next) {
881 if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr,
883 IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr,
886 rt->mf6c_origin = mfccp->mf6cc_origin;
887 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
888 rt->mf6c_parent = mfccp->mf6cc_parent;
889 rt->mf6c_ifset = mfccp->mf6cc_ifset;
891 rt->mf6c_pkt_cnt = 0;
892 rt->mf6c_byte_cnt = 0;
893 rt->mf6c_wrong_if = 0;
895 if (rt->mf6c_expire)
897 rt->mf6c_expire = 0;
900 if (rt == NULL) {
902 rt = (struct mf6c *)malloc(sizeof(*rt), M_MRTABLE6,
904 if (rt == NULL) {
910 rt->mf6c_origin = mfccp->mf6cc_origin;
911 rt->mf6c_mcastgrp = mfccp->mf6cc_mcastgrp;
912 rt->mf6c_parent = mfccp->mf6cc_parent;
913 rt->mf6c_ifset = mfccp->mf6cc_ifset;
915 rt->mf6c_pkt_cnt = 0;
916 rt->mf6c_byte_cnt = 0;
917 rt->mf6c_wrong_if = 0;
918 rt->mf6c_expire = 0;
919 rt->mf6c_stall = NULL;
922 rt->mf6c_next = mf6ctable[hash];
923 mf6ctable[hash] = rt;
968 struct mf6c *rt;
983 while ((rt = *nptr) != NULL) {
985 &rt->mf6c_origin.sin6_addr) &&
987 &rt->mf6c_mcastgrp.sin6_addr) &&
988 rt->mf6c_stall == NULL)
991 nptr = &rt->mf6c_next;
993 if (rt == NULL) {
998 *nptr = rt->mf6c_next;
999 free(rt, M_MRTABLE6);
1045 struct mf6c *rt;
1097 MF6CFIND(ip6->ip6_src, ip6->ip6_dst, rt);
1101 if (rt) {
1103 return (ip6_mdq(m, ifp, rt));
1139 for (rt = mf6ctable[hash]; rt; rt = rt->mf6c_next) {
1141 &rt->mf6c_origin.sin6_addr) &&
1143 &rt->mf6c_mcastgrp.sin6_addr) && (rt->mf6c_stall != NULL))
1147 if (rt == NULL) {
1153 rt = (struct mf6c *)malloc(sizeof(*rt), M_MRTABLE6, M_NOWAIT);
1154 if (rt == NULL) {
1168 free(rt, M_MRTABLE6);
1197 free(rt, M_MRTABLE6);
1224 free(rt, M_MRTABLE6);
1232 bzero(rt, sizeof(*rt));
1233 rt->mf6c_origin.sin6_family = AF_INET6;
1234 rt->mf6c_origin.sin6_len = sizeof(struct sockaddr_in6);
1235 rt->mf6c_origin.sin6_addr = ip6->ip6_src;
1236 rt->mf6c_mcastgrp.sin6_family = AF_INET6;
1237 rt->mf6c_mcastgrp.sin6_len = sizeof(struct sockaddr_in6);
1238 rt->mf6c_mcastgrp.sin6_addr = ip6->ip6_dst;
1239 rt->mf6c_expire = UPCALL_EXPIRE;
1241 rt->mf6c_parent = MF6C_INCOMPLETE_PARENT;
1244 rt->mf6c_next = mf6ctable[hash];
1245 mf6ctable[hash] = rt;
1247 rt->mf6c_stall = rte;
1253 for (p = &rt->mf6c_stall; *p != NULL; p = &(*p)->next)
1339 ip6_mdq(struct mbuf *m, struct ifnet *ifp, struct mf6c *rt)
1366 mifi = rt->mf6c_parent;
1373 rt->mf6c_wrong_if++;
1466 rt->mf6c_pkt_cnt++;
1467 rt->mf6c_byte_cnt += plen;
1481 if (IF_ISSET(mifi, &rt->mf6c_ifset)) {
1488 if (!(mif6table[rt->mf6c_parent].m6_flags &