igmp
struct igmp *igmp;
igmp = mtod(m, struct igmp *);
timer = igmp->igmp_code * PR_FASTHZ / IGMP_TIMER_SCALE;
switch (igmp->igmp_type) {
if (igmp->igmp_code == 0) {
igmp->igmp_group.s_addr != 0) {
if (igmp->igmp_group.s_addr != 0 &&
!IN_MULTICAST(ntohl(igmp->igmp_group.s_addr))) {
(igmp->igmp_group.s_addr == 0 ||
igmp->igmp_group.s_addr == inm->inm_addr.s_addr)) {
if (!IN_MULTICAST(ntohl(igmp->igmp_group.s_addr))) {
inm = IN_LOOKUP_MULTI(&igmp->igmp_group, ifp);
struct igmp *igmp;
igmp = mtod(m, struct igmp *);
igmp->igmp_type = type;
igmp->igmp_code = 0;
igmp->igmp_group = inm->inm_addr;
igmp->igmp_cksum = 0;
igmp->igmp_cksum = in_cksum(m, IGMP_MINLEN);
ip->ip_dst.s_addr = addr ? addr : igmp->igmp_group.s_addr;
SYSCTL_NODE(_net_inet, IPPROTO_IGMP, igmp, CTLFLAG_RW, 0, "IGMP");