Lines Matching +full:1 +full:ma
76 static void igmp6_join_group(struct ifmcaddr6 *ma);
77 static void igmp6_leave_group(struct ifmcaddr6 *ma);
169 return iv > 0 ? iv : 1; in unsolicited_report_interval()
427 if (psl->sl_count == 1 && omode == MCAST_INCLUDE) { in ip6_mc_source()
428 leavegroup = 1; in ip6_mc_source()
433 ip6_mc_del_src(idev, group, omode, 1, source, 1); in ip6_mc_source()
435 for (j = i+1; j < psl->sl_count; j++) in ip6_mc_source()
436 psl->sl_addr[j-1] = psl->sl_addr[j]; in ip6_mc_source()
471 rv = 1; /* > 0 for insert logic below if sl_count is 0 */ in ip6_mc_source()
477 for (j = psl->sl_count-1; j >= i; j--) in ip6_mc_source()
478 psl->sl_addr[j+1] = psl->sl_addr[j]; in ip6_mc_source()
483 ip6_mc_add_src(idev, group, omode, 1, source, 1); in ip6_mc_source()
518 leavegroup = 1; in ip6_mc_msfilter()
892 mc->mca_users = 1; in mca_alloc()
895 refcount_set(&mc->mca_refcnt, 1); in mca_alloc()
898 mc->mca_sfcount[mode] = 1; in mca_alloc()
915 .netnsid = -1, in inet6_ifmcaddr_notify()
1006 struct ifmcaddr6 *ma, __rcu **map; in __ipv6_dev_mc_dec() local
1012 (ma = mc_dereference(*map, idev)); in __ipv6_dev_mc_dec()
1013 map = &ma->next) { in __ipv6_dev_mc_dec()
1014 if (ipv6_addr_equal(&ma->mca_addr, addr)) { in __ipv6_dev_mc_dec()
1015 if (--ma->mca_users == 0) { in __ipv6_dev_mc_dec()
1016 *map = ma->next; in __ipv6_dev_mc_dec()
1018 igmp6_group_dropped(ma); in __ipv6_dev_mc_dec()
1019 inet6_ifmcaddr_notify(idev->dev, ma, in __ipv6_dev_mc_dec()
1021 ip6_mc_clear_src(ma); in __ipv6_dev_mc_dec()
1024 ma_put(ma); in __ipv6_dev_mc_dec()
1099 idev->mc_gq_running = 1; in mld_gq_start_work()
1162 static void igmp6_group_queried(struct ifmcaddr6 *ma, unsigned long resptime) in igmp6_group_queried() argument
1167 if (ipv6_addr_is_ll_all_nodes(&ma->mca_addr) || in igmp6_group_queried()
1168 IPV6_ADDR_MC_SCOPE(&ma->mca_addr) < IPV6_ADDR_SCOPE_LINKLOCAL) in igmp6_group_queried()
1171 if (cancel_delayed_work(&ma->mca_work)) { in igmp6_group_queried()
1172 refcount_dec(&ma->mca_refcnt); in igmp6_group_queried()
1173 delay = ma->mca_work.timer.expires - jiffies; in igmp6_group_queried()
1179 if (!mod_delayed_work(mld_wq, &ma->mca_work, delay)) in igmp6_group_queried()
1180 refcount_inc(&ma->mca_refcnt); in igmp6_group_queried()
1181 ma->mca_flags |= MAF_TIMER_RUNNING; in igmp6_group_queried()
1233 psf->sf_gsresp = 1; in mld_marksources()
1267 return mld_force_mld_version(idev) == 1; in mld_in_v1_mode_only()
1383 *max_delay = max(msecs_to_jiffies(mldv1_md), 1UL); in mld_process_v1()
1406 *max_delay = max(msecs_to_jiffies(mldv2_mrc(mld)), 1UL); in mld_process_v2()
1443 struct ifmcaddr6 *ma; in __mld_query_work() local
1459 * address, if the Hop Limit is set to 1, and if the Router Alert in __mld_query_work()
1464 ipv6_hdr(skb)->hop_limit != 1 || in __mld_query_work()
1513 mark = 1; in __mld_query_work()
1520 for_each_mc_mclock(idev, ma) { in __mld_query_work()
1521 igmp6_group_queried(ma, max_delay); in __mld_query_work()
1524 for_each_mc_mclock(idev, ma) { in __mld_query_work()
1525 if (!ipv6_addr_equal(group, &ma->mca_addr)) in __mld_query_work()
1527 if (ma->mca_flags & MAF_TIMER_RUNNING) { in __mld_query_work()
1530 ma->mca_flags &= ~MAF_GSQUERY; in __mld_query_work()
1534 ma->mca_flags |= MAF_GSQUERY; in __mld_query_work()
1536 ma->mca_flags &= ~MAF_GSQUERY; in __mld_query_work()
1538 if (!(ma->mca_flags & MAF_GSQUERY) || in __mld_query_work()
1539 mld_marksources(ma, ntohs(mlh2->mld2q_nsrcs), mlh2->mld2q_srcs)) in __mld_query_work()
1540 igmp6_group_queried(ma, max_delay); in __mld_query_work()
1608 struct ifmcaddr6 *ma; in __mld_report_work() local
1640 for_each_mc_mclock(idev, ma) { in __mld_report_work()
1641 if (ipv6_addr_equal(&ma->mca_addr, &mld->mld_mca)) { in __mld_report_work()
1642 if (cancel_delayed_work(&ma->mca_work)) in __mld_report_work()
1643 refcount_dec(&ma->mca_refcnt); in __mld_report_work()
1644 ma->mca_flags &= ~(MAF_LAST_REPORTER | in __mld_report_work()
1909 pmr->mld2r_ngrec = htons(ntohs(pmr->mld2r_ngrec)+1); in add_grhead()
1960 first = 1; in add_grec()
1996 first = 1; in add_grec()
2118 skb = add_grec(skb, pmc, type, 1, 0, 0); in mld_send_cr()
2119 skb = add_grec(skb, pmc, dtype, 1, 1, 0); in mld_send_cr()
2124 skb = add_grec(skb, pmc, type, 1, 0, 0); in mld_send_cr()
2155 skb = add_grec(skb, pmc, dtype, 0, 1, 0); /* deleted sources */ in mld_send_cr()
2282 skb = add_grec(skb, pmc, type, 0, 0, 1); in mld_send_initial_cr()
2336 WRITE_ONCE(psf->sf_count[sfmode], psf->sf_count[sfmode] - 1); in ip6_mc_del1_src()
2354 rv = 1; in ip6_mc_del1_src()
2442 WRITE_ONCE(psf->sf_count[sfmode], psf->sf_count[sfmode] + 1); in ip6_mc_add1_src()
2555 pmc->mca_sfcount[sfmode] + 1); in ip6_mc_add_src()
2567 pmc->mca_sfcount[sfmode] - 1); in ip6_mc_add_src()
2613 WRITE_ONCE(pmc->mca_sfcount[MCAST_EXCLUDE], 1); in ip6_mc_clear_src()
2617 static void igmp6_join_group(struct ifmcaddr6 *ma) in igmp6_join_group() argument
2621 if (ma->mca_flags & MAF_NOREPORT) in igmp6_join_group()
2624 igmp6_send(&ma->mca_addr, ma->idev->dev, ICMPV6_MGM_REPORT); in igmp6_join_group()
2626 delay = get_random_u32_below(unsolicited_report_interval(ma->idev)); in igmp6_join_group()
2628 if (cancel_delayed_work(&ma->mca_work)) { in igmp6_join_group()
2629 refcount_dec(&ma->mca_refcnt); in igmp6_join_group()
2630 delay = ma->mca_work.timer.expires - jiffies; in igmp6_join_group()
2633 if (!mod_delayed_work(mld_wq, &ma->mca_work, delay)) in igmp6_join_group()
2634 refcount_inc(&ma->mca_refcnt); in igmp6_join_group()
2635 ma->mca_flags |= MAF_TIMER_RUNNING | MAF_LAST_REPORTER; in igmp6_join_group()
2668 static void igmp6_leave_group(struct ifmcaddr6 *ma) in igmp6_leave_group() argument
2670 if (mld_in_v1_mode(ma->idev)) { in igmp6_leave_group()
2671 if (ma->mca_flags & MAF_LAST_REPORTER) { in igmp6_leave_group()
2672 igmp6_send(&ma->mca_addr, ma->idev->dev, in igmp6_leave_group()
2676 mld_add_delrec(ma->idev, ma); in igmp6_leave_group()
2677 mld_ifc_event(ma->idev); in igmp6_leave_group()
2721 mld_ifc_start_work(idev, 1); in mld_ifc_event()
2726 struct ifmcaddr6 *ma = container_of(to_delayed_work(work), in mld_mca_work() local
2729 mutex_lock(&ma->idev->mc_lock); in mld_mca_work()
2730 if (mld_in_v1_mode(ma->idev)) in mld_mca_work()
2731 igmp6_send(&ma->mca_addr, ma->idev->dev, ICMPV6_MGM_REPORT); in mld_mca_work()
2733 mld_send_report(ma->idev, ma); in mld_mca_work()
2734 ma->mca_flags |= MAF_LAST_REPORTER; in mld_mca_work()
2735 ma->mca_flags &= ~MAF_TIMER_RUNNING; in mld_mca_work()
2736 mutex_unlock(&ma->idev->mc_lock); in mld_mca_work()
2738 ma_put(ma); in mld_mca_work()
3087 return *pos ? igmp6_mcf_get_idx(seq, *pos - 1) : SEQ_START_TOKEN; in igmp6_mcf_seq_start()
3190 inet6_sk(net->ipv6.igmp_sk)->hop_limit = 1; in igmp6_net_init()