b4e63e2d15
In case when router has a lot of multicast groups, the reply can take several packets due to MTU limitation. Also we have a limit IGMP_MAX_RESPONSE_BURST == 4, that limits the number of packets we send in one shot. Then we recalculate the timer value and schedule the remaining packets for sending. The problem is that when we call igmp_v3_dispatch_general_query() to send remaining packets, we queue new reply in the same mbuf queue. And when number of packets is bigger than IGMP_MAX_RESPONSE_BURST, we get endless reply of IGMPv3 reports. To fix this, add the check for remaining packets in the queue. MFC after: 1 week Sponsored by: Yandex LLC |
||
---|---|---|
.. | ||
cc | ||
khelp | ||
libalias | ||
accf_data.c | ||
accf_dns.c | ||
accf_http.c | ||
cc.h | ||
icmp6.h | ||
icmp_var.h | ||
if_atm.c | ||
if_atm.h | ||
if_ether.c | ||
if_ether.h | ||
igmp_var.h | ||
igmp.c | ||
igmp.h | ||
in_cksum.c | ||
in_debug.c | ||
in_gif.c | ||
in_kdtrace.c | ||
in_kdtrace.h | ||
in_mcast.c | ||
in_pcb.c | ||
in_pcb.h | ||
in_pcbgroup.c | ||
in_proto.c | ||
in_rmx.c | ||
in_rss.c | ||
in_rss.h | ||
in_systm.h | ||
in_var.h | ||
in.c | ||
in.h | ||
ip6.h | ||
ip_carp.c | ||
ip_carp.h | ||
ip_divert.c | ||
ip_divert.h | ||
ip_dummynet.h | ||
ip_ecn.c | ||
ip_ecn.h | ||
ip_encap.c | ||
ip_encap.h | ||
ip_fastfwd.c | ||
ip_fw.h | ||
ip_gre.c | ||
ip_icmp.c | ||
ip_icmp.h | ||
ip_id.c | ||
ip_input.c | ||
ip_ipsec.c | ||
ip_ipsec.h | ||
ip_mroute.c | ||
ip_mroute.h | ||
ip_options.c | ||
ip_options.h | ||
ip_output.c | ||
ip_reass.c | ||
ip_var.h | ||
ip.h | ||
pim_var.h | ||
pim.h | ||
raw_ip.c | ||
sctp_asconf.c | ||
sctp_asconf.h | ||
sctp_auth.c | ||
sctp_auth.h | ||
sctp_bsd_addr.c | ||
sctp_bsd_addr.h | ||
sctp_cc_functions.c | ||
sctp_constants.h | ||
sctp_crc32.c | ||
sctp_crc32.h | ||
sctp_dtrace_declare.h | ||
sctp_dtrace_define.h | ||
sctp_header.h | ||
sctp_indata.c | ||
sctp_indata.h | ||
sctp_input.c | ||
sctp_input.h | ||
sctp_lock_bsd.h | ||
sctp_os_bsd.h | ||
sctp_os.h | ||
sctp_output.c | ||
sctp_output.h | ||
sctp_pcb.c | ||
sctp_pcb.h | ||
sctp_peeloff.c | ||
sctp_peeloff.h | ||
sctp_ss_functions.c | ||
sctp_structs.h | ||
sctp_syscalls.c | ||
sctp_sysctl.c | ||
sctp_sysctl.h | ||
sctp_timer.c | ||
sctp_timer.h | ||
sctp_uio.h | ||
sctp_usrreq.c | ||
sctp_var.h | ||
sctp.h | ||
sctputil.c | ||
sctputil.h | ||
siftr.c | ||
tcp_debug.c | ||
tcp_debug.h | ||
tcp_fsm.h | ||
tcp_hostcache.c | ||
tcp_hostcache.h | ||
tcp_input.c | ||
tcp_lro.c | ||
tcp_lro.h | ||
tcp_offload.c | ||
tcp_offload.h | ||
tcp_output.c | ||
tcp_pcap.c | ||
tcp_pcap.h | ||
tcp_reass.c | ||
tcp_sack.c | ||
tcp_seq.h | ||
tcp_subr.c | ||
tcp_syncache.c | ||
tcp_syncache.h | ||
tcp_timer.c | ||
tcp_timer.h | ||
tcp_timewait.c | ||
tcp_usrreq.c | ||
tcp_var.h | ||
tcp.h | ||
tcpip.h | ||
toecore.c | ||
toecore.h | ||
udp_usrreq.c | ||
udp_var.h | ||
udp.h | ||
udplite.h |