freebsd-dev/sys/net
Alexander V. Chernikov 0d4df0290e Handle IPV6_PATHMTU option by spliting ip6_getpmtu_ctl() from ip6_getpmtu().
Add ro_mtu field to 'struct route' to be able to pass lookup MTU back to
  the caller.

Currently, ip6_getpmtu() has 2 totally different use cases:
1) control plane (IPV6_PATHMTU req), where we just need to calculate MTU
  and return it, w/o any reusability.
2) Actual ip6_output() data path where we (nearly) always use the provided
  route lookup data. If this data is not 'valid' we need to perform another
  lookup and save the result (which cannot be re-used by ip6_output()).

Given that, handle 1) by calling separate function doing rte lookup itself.
  Resulting MTU is calculated by (newly-added) ip6_calcmtu() used by both
  ip6_getpmtu_ctl() and ip6_getpmtu().
For 2) instead of storing ref'ed rte, store mtu (the only needed data
  from the lookup result) inside newly-added ro_mtu field.
  'struct route' was shrinked by 8(or 4 bytes) in r292978. Grow it again
  by 4 bytes. New ro_mtu field will be used in other places like
  ip/tcp_output (EMSGSIZE handling from output routines).

Reviewed by:	ae
2016-01-03 09:54:03 +00:00
..
altq Fix the spelling of eri's name. 2015-08-24 23:40:36 +00:00
bpf_buffer.c Remove the sleep from the buffer allocation routine. 2015-07-31 20:25:54 +00:00
bpf_buffer.h
bpf_filter.c
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Implement interface link header precomputation API. 2015-12-31 05:03:27 +00:00
bpf.h Remove two unnecessary sleeps from the hot path in bpf(4). 2015-07-31 21:43:27 +00:00
bpfdesc.h
bridgestp.c
bridgestp.h
ethernet.h Sync to HEAD@r274766 2014-11-21 01:22:33 +00:00
fddi.h
firewire.h
flowtable.c Implement interface link header precomputation API. 2015-12-31 05:03:27 +00:00
flowtable.h
ieee8023ad_lacp.c Add sysctl to control LACP strict compliance default 2015-11-06 15:33:27 +00:00
ieee8023ad_lacp.h Make LAG LACP fast timeout tunable through IOCTL. 2015-08-12 20:21:04 +00:00
ieee_oui.h
if_arc.h Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_arcsubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_arp.h Remove struct arpcom. It is unused by most interface types, that allocate 2014-11-07 15:14:10 +00:00
if_atm.h Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_atmsubr.c Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
if_bridge.c Fix panic when adding vtnet interfaces to a bridge 2015-06-13 19:39:21 +00:00
if_bridgevar.h
if_clone.c Fix group membership of cloned interfaces when one is moved by 2015-03-02 20:00:03 +00:00
if_clone.h Fix group membership of cloned interfaces when one is moved by 2015-03-02 20:00:03 +00:00
if_dead.c Provide a dead version of if_get_counter. 2014-12-12 16:10:42 +00:00
if_debug.c Remove ifq_drops from struct ifqueue. Now queue drops are accounted in 2014-09-19 09:01:19 +00:00
if_disc.c Remove net/route_internal header from if_disc and if_faith. 2014-11-09 16:58:36 +00:00
if_dl.h Constantify lookup key in ifa_ifwith* functions. 2015-09-05 05:33:20 +00:00
if_edsc.c Virtualize if_edsc(4). 2014-10-05 21:27:26 +00:00
if_enc.c Fix building sys/modules/if_enc by adding missing headers 2015-11-25 21:16:10 +00:00
if_enc.h Overhaul if_enc(4) and make it loadable in run-time. 2015-11-25 07:31:59 +00:00
if_epair.c Fix a panic which was reproducible by an infinite loop of 2015-09-02 16:30:45 +00:00
if_ethersubr.c Remove second EVENTHANDLER_REGISTER slipped in r292978. 2016-01-01 10:15:06 +00:00
if_fddisubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_fwsubr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_gif.c Clean up unused-but-set-variable spotted by gcc4.9. 2015-12-31 07:03:41 +00:00
if_gif.h - Remove GIF_{SEND,ACCEPT}_REVETHIP. 2015-09-10 05:59:39 +00:00
if_gre.c Wrap using #ifdef 'notyet' those variables and statements not yet 2015-12-31 02:01:20 +00:00
if_gre.h Extern declarations in C files loses compile-time checking that 2014-12-25 21:32:37 +00:00
if_iso88025subr.c Replace the fastforward path with tryforward which does not require a 2015-11-05 07:26:32 +00:00
if_lagg.c Revert r292275 & r292379 2015-12-17 14:41:30 +00:00
if_lagg.h Revert r292275 & r292379 2015-12-17 14:41:30 +00:00
if_llatbl.c Implement interface link header precomputation API. 2015-12-31 05:03:27 +00:00
if_llatbl.h Implement interface link header precomputation API. 2015-12-31 05:03:27 +00:00
if_llc.h
if_loop.c Fix if_loop so bpfwrite() can use it regardless of the state of 2015-07-06 02:12:49 +00:00
if_me.c Add IFCAP_LINKSTATE support. 2015-10-03 09:15:23 +00:00
if_media.c Make IFMEDIA_DEBUG a kernel option. 2015-04-21 10:35:23 +00:00
if_media.h ifmedia changes: 2015-04-07 21:31:17 +00:00
if_mib.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c Mechanically convert to if_inc_counter(). 2014-09-19 10:39:58 +00:00
if_spppsubr.c Convert in_ifaddr_lock and in6_ifaddr_lock to rmlock. 2015-07-29 08:12:05 +00:00
if_stf.c Convert if_stf(4) to new routing api. 2015-12-16 09:18:20 +00:00
if_tap.c if_tap: correct typo in sysctl description (Enably) 2015-10-21 19:56:16 +00:00
if_tap.h
if_tapvar.h
if_tun.c * Address review (and add a bit myself). 2015-07-12 18:14:38 +00:00
if_tun.h
if_types.h After r281643 an #ifdef IFT_FOO preprocessor directive returns false, 2015-05-02 20:37:40 +00:00
if_var.h Implement interface link header precomputation API. 2015-12-31 05:03:27 +00:00
if_vlan_var.h Move struct ether_vlan_header to ethernet.h, out of if_vlan_var.h, 2014-11-11 10:22:33 +00:00
if_vlan.c Move iflladdr_event eventhandler invocation to if_setlladdr. 2015-11-14 13:34:03 +00:00
if_vxlan.c Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
if_vxlan.h Add vxlan interface 2014-10-20 14:42:42 +00:00
if.c Implement interface link header precomputation API. 2015-12-31 05:03:27 +00:00
if.h * Add SIOCGI2C driver ioctl used to retrieve i2c info. 2014-08-29 18:02:58 +00:00
ifq.h Move ALTQ from contrib to net/altq. The ALTQ code is for many years 2015-04-16 20:22:40 +00:00
iso88025.h Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
netisr_internal.h
netisr.c Currently there is no easy way to specify net.isr.maxthreads = all cpus. We need 2015-04-25 16:12:06 +00:00
netisr.h Update the IPv4 input path to handle reassembled frames and incoming frames 2014-09-09 04:18:20 +00:00
netmap_user.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
netmap.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
paravirt.h Update to the current version of netmap. 2014-08-16 15:00:01 +00:00
pfil.c
pfil.h
pfkeyv2.h Implement the sadb_x_policy_priority field as it is done in Linux: 2015-11-17 14:39:33 +00:00
pfvar.h pf: Fix compliation warning with gcc 2015-10-25 18:09:03 +00:00
ppp_defs.h
radix_mpath.c Replace 'struct route *' if_output() argument with 'struct nhop_info *'. 2014-11-09 16:33:04 +00:00
radix_mpath.h
radix.c Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
radix.h Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
route.c Fix PINNED routes handling. 2015-12-13 16:37:01 +00:00
route.h Handle IPV6_PATHMTU option by spliting ip6_getpmtu_ctl() from ip6_getpmtu(). 2016-01-03 09:54:03 +00:00
rss_config.c Remove now unused (and #if 0'ed out) headers. 2015-08-29 04:33:31 +00:00
rss_config.h Replace the printf()s with optional rate limited debugging for RSS. 2015-08-28 05:58:16 +00:00
rtsock.c Switch route radix to dual-lock model: 2014-11-10 00:07:06 +00:00
sff8436.h Add SFF-8024 Extended Specification Compliance 2015-12-28 09:26:07 +00:00
sff8472.h * Update SFF-8024 Identifier constants. 2015-05-16 13:11:35 +00:00
slcompress.c
slcompress.h
toeplitz.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
toeplitz.h Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
vnet.c
vnet.h Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00