• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/netinet6/

Lines Matching refs:ims

141 static void	im6s_merge(struct ip6_msource *ims,
296 struct ip6_msource *ims;
304 ims = RB_FIND(ip6_msource_tree, &imf->im6f_sources, &find);
306 return ((struct in6_msource *)ims);
320 struct in6_msource *ims;
339 ims = im6o_match_source(imf, src);
341 if ((ims == NULL && mode == MCAST_INCLUDE) ||
342 (ims != NULL && ims->im6sl_st[0] != mode))
631 struct ip6_msource *ims;
635 RB_FOREACH(ims, ip6_msource_tree, &inm->in6m_srcs) {
636 if (ims->im6s_stp) {
637 ims->im6s_stp = 0;
671 struct ip6_msource *ims, *nims;
676 ims = RB_FIND(ip6_msource_tree, &inm->in6m_srcs, &find);
677 if (ims && ims->im6s_stp)
679 if (ims == NULL) {
689 ims = nims;
696 ++ims->im6s_stp;
718 struct ip6_msource *ims, *nims;
723 ims = NULL;
727 ims = RB_FIND(ip6_msource_tree, &imf->im6f_sources, &find);
728 lims = (struct in6_msource *)ims;
789 struct ip6_msource *ims;
793 ims = RB_FIND(ip6_msource_tree, &imf->im6f_sources, &find);
794 if (ims == NULL)
796 lims = (struct in6_msource *)ims;
807 struct ip6_msource *ims, *tims;
810 RB_FOREACH_SAFE(ims, ip6_msource_tree, &imf->im6f_sources, tims) {
811 lims = (struct in6_msource *)ims;
820 CTR2(KTR_MLD, "%s: free ims %p", __func__, ims);
821 RB_REMOVE(ip6_msource_tree, &imf->im6f_sources, ims);
822 free(ims, M_IN6MFILTER);
835 struct ip6_msource *ims;
838 RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
839 lims = (struct in6_msource *)ims;
851 struct ip6_msource *ims;
854 RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
855 lims = (struct in6_msource *)ims;
867 struct ip6_msource *ims, *tims;
870 RB_FOREACH_SAFE(ims, ip6_msource_tree, &imf->im6f_sources, tims) {
871 lims = (struct in6_msource *)ims;
874 CTR2(KTR_MLD, "%s: free lims %p", __func__, ims);
875 RB_REMOVE(ip6_msource_tree, &imf->im6f_sources, ims);
876 free(ims, M_IN6MFILTER);
888 struct ip6_msource *ims, *tims;
890 RB_FOREACH_SAFE(ims, ip6_msource_tree, &imf->im6f_sources, tims) {
891 CTR2(KTR_MLD, "%s: free ims %p", __func__, ims);
892 RB_REMOVE(ip6_msource_tree, &imf->im6f_sources, ims);
893 free(ims, M_IN6MFILTER);
917 struct ip6_msource *ims, *nims;
923 ims = RB_FIND(ip6_msource_tree, &inm->in6m_srcs, &find);
924 if (ims == NULL && !noalloc) {
934 ims = nims;
936 ip6_sprintf(ip6tbuf, addr), ims);
939 *pims = ims;
948 im6s_merge(struct ip6_msource *ims, const struct in6_msource *lims,
960 ims->im6s_st[1].ex -= n;
963 ims->im6s_st[1].in -= n;
968 ims->im6s_st[1].ex += n;
971 ims->im6s_st[1].in += n;
983 * which would eliminate the repeated lookup from root of ims nodes,
992 struct ip6_msource *ims, *nims;
1009 RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
1010 lims = (struct in6_msource *)ims;
1023 RB_FOREACH_REVERSE_FROM(ims, ip6_msource_tree, nims) {
1024 lims = (struct in6_msource *)ims;
1121 struct ip6_msource *ims;
1127 RB_FOREACH(ims, ip6_msource_tree, &inm->in6m_srcs) {
1128 ims->im6s_st[0] = ims->im6s_st[1];
1139 struct ip6_msource *ims, *tims;
1141 RB_FOREACH_SAFE(ims, ip6_msource_tree, &inm->in6m_srcs, tims) {
1142 if (ims->im6s_st[0].ex > 0 || ims->im6s_st[0].in > 0 ||
1143 ims->im6s_st[1].ex > 0 || ims->im6s_st[1].in > 0 ||
1144 ims->im6s_stp != 0)
1146 CTR2(KTR_MLD, "%s: free ims %p", __func__, ims);
1147 RB_REMOVE(ip6_msource_tree, &inm->in6m_srcs, ims);
1148 free(ims, M_IP6MSOURCE);
1159 struct ip6_msource *ims, *tims;
1161 RB_FOREACH_SAFE(ims, ip6_msource_tree, &inm->in6m_srcs, tims) {
1162 CTR2(KTR_MLD, "%s: free ims %p", __func__, ims);
1163 RB_REMOVE(ip6_msource_tree, &inm->in6m_srcs, ims);
1164 free(ims, M_IP6MSOURCE);
1400 struct in6_msource *ims;
1481 ims = im6o_match_source(imf, &ssa->sa);
1482 if ((ims != NULL && doblock) || (ims == NULL && !doblock)) {
1497 ims = im6f_graft(imf, fmode, &ssa->sin6);
1498 if (ims == NULL)
1628 struct ip6_msource *ims;
1709 RB_FOREACH(ims, ip6_msource_tree, &imf->im6f_sources) {
1710 lims = (struct in6_msource *)ims;
2166 struct in6_msource *ims;
2335 ims = im6o_match_source(imf, &ssa->sa);
2336 if (ims == NULL) {
2733 struct ip6_msource *ims;
2798 RB_FOREACH(ims, ip6_msource_tree, &inm->in6m_srcs) {
2799 CTR2(KTR_MLD, "%s: visit node %p", __func__, ims);
2803 if (fmode != im6s_get_mode(inm, ims, 1)) {
2808 src = ims->im6s_addr;