freebsd-dev/sys/netinet
Gleb Smirnoff df0633a145 If ip_output() returns EMSGSIZE to tcp_output(), then the latter calls
tcp_mtudisc(), which in its turn may call tcp_output(). Under certain
conditions (must admit they are very special) an infinite recursion can
happen.

To avoid recursion we can pass struct route to ip_output() and obtain
correct mtu. This allows us not to use tcp_mtudisc() but call tcp_mss_update()
directly.

PR:		kern/155585
Submitted by:	Andrey Zonov <andrey zonov.org> (original version of patch)
2012-07-16 07:08:34 +00:00
..
cc
ipfw Make ipfw0 logging pseudo-interface clonable. It can be created automatically 2012-07-09 07:16:19 +00:00
khelp
libalias mdoc: avoid nested displays. Fixes mandoc warnings. 2012-06-13 18:57:27 +00:00
accf_data.c
accf_dns.c
accf_http.c
cc.h
icmp6.h Correct typo in the RFC number for the constants based on IANA assignments 2012-03-04 18:47:20 +00:00
icmp_var.h Add rate limitation for SCTP OOTB responses. 2012-06-18 17:11:24 +00:00
if_atm.c
if_atm.h
if_ether.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
if_ether.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
igmp_var.h
igmp.c Don't check for ifp != NULL before KASSERT, as ifp may not be NULL here 2012-07-03 19:04:18 +00:00
igmp.h
in_cksum.c
in_debug.c
in_gif.c
in_gif.h
in_mcast.c Remove unused variable. 2012-01-24 14:27:14 +00:00
in_pcb.c Add a IP_RECVTOS socket option to receive for received UDP/IPv4 2012-06-12 14:02:38 +00:00
in_pcb.h Add a IP_RECVTOS socket option to receive for received UDP/IPv4 2012-06-12 14:02:38 +00:00
in_pcbgroup.c
in_proto.c Bunch of fixes to pfsync(4) module load/unload: 2012-01-09 08:50:22 +00:00
in_rmx.c
in_systm.h
in_var.h Provide IA_MASKSIN() macro similar to IA_SIN() and IA_DSTSIN(). 2012-01-08 17:20:29 +00:00
in.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
in.h Add a IP_RECVTOS socket option to receive for received UDP/IPv4 2012-06-12 14:02:38 +00:00
ip6.h
ip_carp.c Improve style(9) of bcopy() to and from mbuf tag. 2012-05-30 13:51:00 +00:00
ip_carp.h
ip_divert.c Make #error messages string-literals and remove punctuation. 2012-01-22 10:41:58 +00:00
ip_divert.h
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c
ip_fw.h Revert r234834 per luigi@ request. 2012-05-03 08:56:43 +00:00
ip_gre.c Make #error messages string-literals and remove punctuation. 2012-01-22 10:41:58 +00:00
ip_gre.h
ip_icmp.c Add rate limitation for SCTP OOTB responses. 2012-06-18 17:11:24 +00:00
ip_icmp.h
ip_id.c
ip_input.c When ip_output()/ip6_output() is supplied a struct route *ro argument, 2012-07-04 07:37:53 +00:00
ip_ipsec.c Clean up some #endif comments removing from short sections. Add #endif 2012-01-22 02:13:19 +00:00
ip_ipsec.h
ip_mroute.c Remove route caching from IP multicast routing code. There is no 2012-07-02 19:44:18 +00:00
ip_mroute.h Remove route caching from IP multicast routing code. There is no 2012-07-02 19:44:18 +00:00
ip_options.c
ip_options.h
ip_output.c When ip_output()/ip6_output() is supplied a struct route *ro argument, 2012-07-04 07:37:53 +00:00
ip_var.h
ip.h Add ToS definitions for DiffServ Codepoints as per RFC2474. 2012-05-04 21:00:32 +00:00
pim_var.h
pim.h
raw_ip.c
sctp_asconf.c Changes which improve compilation if neither INET nor INET6 is defined. 2012-07-15 20:16:17 +00:00
sctp_asconf.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_auth.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_auth.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_bsd_addr.c Do packet logging in a consistent way. 2012-06-24 21:25:54 +00:00
sctp_bsd_addr.h Do packet logging in a consistent way. 2012-06-24 21:25:54 +00:00
sctp_cc_functions.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_constants.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_crc32.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_crc32.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_dtrace_declare.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_dtrace_define.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_header.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_indata.c Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_indata.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_input.c Use case for selecting the address family (as in other places). 2012-07-14 19:44:39 +00:00
sctp_input.h Move common code parts to sctp_common_input_processing(). 2012-07-02 16:44:09 +00:00
sctp_lock_bsd.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_os_bsd.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_os.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_output.c Changes which improve compilation if neither INET nor INET6 is defined. 2012-07-15 20:16:17 +00:00
sctp_output.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_pcb.c #ifdef INET and INET6 consistently. This also fixes a bug, where 2012-07-15 11:04:49 +00:00
sctp_pcb.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
sctp_peeloff.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_peeloff.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_ss_functions.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_structs.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_sysctl.c Whitespace cleanup. 2012-06-25 17:15:09 +00:00
sctp_sysctl.h Whitespace cleanup. 2012-06-25 17:15:09 +00:00
sctp_timer.c Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_timer.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp_uio.h Changes which improve compilation if neither INET nor INET6 is defined. 2012-07-15 20:16:17 +00:00
sctp_usrreq.c Changes which improve compilation if neither INET nor INET6 is defined. 2012-07-15 20:16:17 +00:00
sctp_var.h Use consistent text at the begining of the files. 2012-05-23 11:26:28 +00:00
sctp.h Undefine SCTP_PACKED before including sctp_uio.h, which doesn't 2012-05-25 11:14:08 +00:00
sctputil.c #ifdef INET and INET6 consistently. This also fixes a bug, where 2012-07-15 11:04:49 +00:00
sctputil.h Pass the src and dst address of a received packet explicitly around. 2012-06-28 16:01:08 +00:00
siftr.c
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c Fix RTTVAR scale in net.inet.tcp.hostcache.list sysctl. 2012-07-03 18:59:13 +00:00
tcp_hostcache.h
tcp_input.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_lro.c Make TCP LRO work properly with VIMAGE kernels rather than just panicing. 2012-06-01 11:42:50 +00:00
tcp_lro.h MFp4 bz_ipv6_fast: 2012-05-24 23:03:23 +00:00
tcp_offload.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_offload.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_output.c If ip_output() returns EMSGSIZE to tcp_output(), then the latter calls 2012-07-16 07:08:34 +00:00
tcp_reass.c
tcp_sack.c
tcp_seq.h Fix PAWS (Protect Against Wrapped Sequence numbers) in cases when 2012-02-15 16:09:56 +00:00
tcp_subr.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_syncache.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_syncache.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_timer.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_timer.h Add new socket options: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL and 2012-02-05 16:53:02 +00:00
tcp_timewait.c It turns out that too many drivers are not only parsing the L2/3/4 2012-05-28 09:30:13 +00:00
tcp_usrreq.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp_var.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
tcp.h Add new socket options: TCP_KEEPINIT, TCP_KEEPIDLE, TCP_KEEPINTVL and 2012-02-05 16:53:02 +00:00
tcpip.h
toecore.c - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
toecore.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
udp_usrreq.c Add a cmsg of type IP_TOS for UDP/IPv4 sockets to specify the TOS byte. 2012-06-12 14:56:08 +00:00
udp_var.h Export the udp_cksum sysctl for upcoming SCTP work. Rather than always, 2012-03-27 15:14:29 +00:00
udp.h