freebsd-nq/sys/netinet
Ermal Luçi d14122b078 Avoid doing multiple route lookups for the same destination IP during forwarding
ip_forward() does a route lookup for testing this packet can be sent to a known destination,
it also can do another route lookup if it detects that an ICMP redirect is needed,
it forgets all of this and handovers to ip_output() to do the same lookup yet again.

This optimisation just does one route lookup during the forwarding path and handovers that to be considered by ip_output().

Differential Revision:	https://reviews.freebsd.org/D2964
Approved by:	ae, gnn(mentor)
MFC after:	1 week
2015-07-02 18:10:41 +00:00
..
cc
khelp
libalias mdoc: fix rendering issues 2015-04-26 11:39:25 +00:00
accf_data.c
accf_dns.c
accf_http.c
cc.h
icmp6.h Implement Enhanced DAD algorithm for IPv6 described in 2015-03-02 17:30:26 +00:00
icmp_var.h
if_atm.c
if_atm.h
if_ether.c If there is a system with a bpf consumer running and a packet is wanted 2015-06-17 12:23:04 +00:00
if_ether.h
igmp_var.h - Rename 'struct igmp_ifinfo' into 'struct igmp_ifsoftc', since it really 2015-02-19 22:35:23 +00:00
igmp.c Improve patch for SA-15:04.igmp to solve a potential buffer overflow. 2015-04-07 20:20:03 +00:00
igmp.h
in_cksum.c
in_debug.c
in_gif.c Add an ability accept encapsulated packets from different sources by one 2015-05-15 12:19:45 +00:00
in_kdtrace.c Brief demo script showing the various values that can be read via 2015-04-29 17:19:55 +00:00
in_kdtrace.h Brief demo script showing the various values that can be read via 2015-04-29 17:19:55 +00:00
in_mcast.c Fix build with KTR after r278978. 2015-02-19 15:41:23 +00:00
in_pcb.c CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
in_pcb.h
in_pcbgroup.c
in_proto.c
in_rmx.c
in_rss.c Correctly const-ify things. 2015-03-18 04:40:36 +00:00
in_rss.h
in_systm.h
in_var.h Move all code related to IP fragment reassembly to ip_reass.c. Some 2015-04-10 06:02:37 +00:00
in.c Provide functions to determine presence of a given address 2015-04-17 11:57:06 +00:00
in.h Provide functions to determine presence of a given address 2015-04-17 11:57:06 +00:00
ip6.h
ip_carp.c Improve carp(4) locking: 2015-04-21 20:25:12 +00:00
ip_carp.h
ip_divert.c
ip_divert.h
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c Fix possible use after free in encap[46]_input(). 2015-06-18 18:28:38 +00:00
ip_encap.h
ip_fastfwd.c
ip_fw.h Make rule table kernel-index rewriting support any kind of objects. 2015-04-27 08:29:39 +00:00
ip_gre.c o Use new function ip_fillid() in all places throughout the kernel, 2015-04-01 22:26:39 +00:00
ip_icmp.c
ip_icmp.h
ip_id.c Provide a comment explaining issues with the counter(9) trick, so that 2015-04-02 14:22:59 +00:00
ip_input.c Avoid doing multiple route lookups for the same destination IP during forwarding 2015-07-02 18:10:41 +00:00
ip_ipsec.c Remove now unneded KEY_FREESP() for case when ipsec[46]_process_packet() 2015-04-27 01:11:09 +00:00
ip_ipsec.h
ip_mroute.c CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
ip_mroute.h
ip_options.c
ip_options.h
ip_output.c Extend fixes made in r278103 and r38754 by copying the complete packet 2015-04-02 15:47:37 +00:00
ip_reass.c Fix RSS build - netisr input / NETISR_IP_DIRECT is used here. 2015-04-15 00:57:21 +00:00
ip_var.h o Use new function ip_fillid() in all places throughout the kernel, 2015-04-01 22:26:39 +00:00
ip.h Change struct attribute to avoid aligned operations mismatch 2015-02-24 12:57:03 +00:00
pim_var.h
pim.h
raw_ip.c o Use new function ip_fillid() in all places throughout the kernel, 2015-04-01 22:26:39 +00:00
sctp_asconf.c Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_asconf.h
sctp_auth.c Make sure that we don't free an SCTP shared key too early. 2015-03-25 22:45:54 +00:00
sctp_auth.h
sctp_bsd_addr.c
sctp_bsd_addr.h
sctp_cc_functions.c Fix and cleanup the debug information. This has no user-visible changes. 2015-05-28 16:00:23 +00:00
sctp_constants.h Fix and cleanup the debug information. This has no user-visible changes. 2015-05-28 16:00:23 +00:00
sctp_crc32.c
sctp_crc32.h
sctp_dtrace_declare.h
sctp_dtrace_define.h
sctp_header.h
sctp_indata.c Fix and cleanup the debug information. This has no user-visible changes. 2015-05-28 16:00:23 +00:00
sctp_indata.h
sctp_input.c Fix a bug related to flow assignment I introduce in 2015-06-17 19:26:23 +00:00
sctp_input.h Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_lock_bsd.h
sctp_os_bsd.h Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_os.h
sctp_output.c Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_output.h Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_pcb.c Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_pcb.h Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctp_peeloff.c Add a SCTP socket option to limit the cwnd for each path. 2015-03-10 19:49:25 +00:00
sctp_peeloff.h
sctp_ss_functions.c
sctp_structs.h Improve the selection of the destination address of SACK chunks. 2015-03-26 22:05:31 +00:00
sctp_syscalls.c Fix two KTRACE related bugs. 2015-06-19 21:55:12 +00:00
sctp_sysctl.c Export a pointer to the SCTP socket. This is needed to add SCTP support 2015-06-04 12:46:56 +00:00
sctp_sysctl.h
sctp_timer.c Fix and cleanup the debug information. This has no user-visible changes. 2015-05-28 16:00:23 +00:00
sctp_timer.h
sctp_uio.h Export a pointer to the SCTP socket. This is needed to add SCTP support 2015-06-04 12:46:56 +00:00
sctp_usrreq.c When setting the primary address, return an error whenever it fails. 2015-06-19 12:48:22 +00:00
sctp_var.h Stop the heartbeat timer when removing a net. 2015-06-14 17:48:44 +00:00
sctp.h Add a SCTP socket option to limit the cwnd for each path. 2015-03-10 19:49:25 +00:00
sctputil.c Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
sctputil.h Add FIB support for SCTP. 2015-06-17 15:20:14 +00:00
siftr.c Move the SIFTR DTrace probe out of the writing thread context 2015-04-30 17:43:40 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
tcp_hostcache.h
tcp_input.c Reverting r284710. 2015-06-22 22:16:06 +00:00
tcp_lro.c Fix leak in tcp_lro_rx. Simply clearing M_PKTHDR isn't enough, any tags 2015-06-30 17:19:58 +00:00
tcp_lro.h
tcp_offload.c
tcp_offload.h
tcp_output.c Avoid a situation where we do not set persist timer after a zero window 2015-06-29 21:23:54 +00:00
tcp_reass.c
tcp_sack.c
tcp_seq.h
tcp_subr.c CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
tcp_syncache.c
tcp_syncache.h
tcp_timer.c Fix a callout race condition introduced in TCP timers callouts with r281599. 2015-06-10 20:43:07 +00:00
tcp_timer.h Fix a callout race condition introduced in TCP timers callouts with r281599. 2015-06-10 20:43:07 +00:00
tcp_timewait.c Add a state transition call to show that we have entered TIME_WAIT. 2015-05-01 12:49:03 +00:00
tcp_usrreq.c In TCP, connect() can return incorrect error code EINVAL 2015-03-09 20:29:16 +00:00
tcp_var.h Fix an old and well-documented use-after-free race condition in 2015-04-16 10:00:06 +00:00
tcp.h
tcpip.h
toecore.c
toecore.h
udp_usrreq.c
udp_var.h
udp.h
udplite.h