Lines Matching defs:igmp
36 * @(#)igmp.c 8.1 (Berkeley) 7/19/93
86 #include <netinet/igmp.h>
107 const struct igmp *);
109 const struct igmp *);
115 /*const*/ struct igmp *);
117 /*const*/ struct igmp *);
151 .nh_name = "igmp",
200 static MALLOC_DEFINE(M_IGMP, "igmp", "igmp state");
570 * If the net.inet.igmp.sendlocal sysctl is 0, then IGMP reports are
757 const struct igmp *igmp)
772 if (!in_allhosts(ip->ip_dst) || !in_nullhost(igmp->igmp_group)) {
842 const struct igmp *igmp)
858 if (in_nullhost(igmp->igmp_group)) {
892 timer = igmp->igmp_code * PR_FASTHZ / IGMP_TIMER_SCALE;
915 inm = inm_lookup(ifp, igmp->igmp_group);
919 ntohl(igmp->igmp_group.s_addr), ifp, ifp->if_xname);
1260 /*const*/ struct igmp *igmp)
1271 if (!IN_MULTICAST(ntohl(igmp->igmp_group.s_addr)) ||
1272 !in_hosteq(igmp->igmp_group, ip->ip_dst)) {
1291 ntohl(igmp->igmp_group.s_addr), ifp, ifp->if_xname);
1299 inm = inm_lookup(ifp, igmp->igmp_group);
1334 ntohl(igmp->igmp_group.s_addr), ifp,
1342 ntohl(igmp->igmp_group.s_addr), ifp,
1369 /*const*/ struct igmp *igmp)
1391 if (!IN_MULTICAST(ntohl(igmp->igmp_group.s_addr)) ||
1392 !in_hosteq(igmp->igmp_group, ip->ip_dst)) {
1410 ntohl(igmp->igmp_group.s_addr), ifp, ifp->if_xname);
1419 inm = inm_lookup(ifp, igmp->igmp_group);
1451 ntohl(igmp->igmp_group.s_addr), ifp, ifp->if_xname);
1473 struct igmp *igmp;
1522 igmp = mtod(m, struct igmp *);
1536 if (igmp->igmp_type != IGMP_DVMRP && ip->ip_ttl != 1) {
1542 switch (igmp->igmp_type) {
1545 if (igmp->igmp_code == 0)
1562 if (igmp_input_v1_query(ifp, ip, igmp) != 0) {
1572 if (igmp_input_v2_query(ifp, ip, igmp) != 0) {
1584 igmpv3 = (struct igmpv3 *)igmp;
1621 if (igmp_input_v1_report(ifp, ip, igmp) != 0) {
1632 if (igmp_input_v2_report(ifp, ip, igmp) != 0) {
2241 struct igmp *igmp;
2253 M_ALIGN(m, sizeof(struct ip) + sizeof(struct igmp));
2255 m->m_pkthdr.len = sizeof(struct ip) + sizeof(struct igmp);
2258 m->m_len = sizeof(struct igmp);
2260 igmp = mtod(m, struct igmp *);
2261 igmp->igmp_type = type;
2262 igmp->igmp_code = 0;
2263 igmp->igmp_group = inm->inm_addr;
2264 igmp->igmp_cksum = 0;
2265 igmp->igmp_cksum = in_cksum(m, sizeof(struct igmp));
2272 ip->ip_len = htons(sizeof(struct ip) + sizeof(struct igmp));
3539 struct igmp_report *igmp;
3563 igmp = mtod(m, struct igmp_report *);
3564 igmp->ir_type = IGMP_v3_HOST_MEMBERSHIP_REPORT;
3565 igmp->ir_rsv1 = 0;
3566 igmp->ir_rsv2 = 0;
3567 igmp->ir_numgrps = htons(m->m_pkthdr.PH_vt.vt_nrecs);
3568 igmp->ir_cksum = 0;
3569 igmp->ir_cksum = in_cksum(m, sizeof(struct igmp_report) + igmpreclen);
3706 "igmp",
3710 DECLARE_MODULE(igmp, igmp_mod, SI_SUB_PROTO_MC, SI_ORDER_MIDDLE);