freebsd-nq/sys
Alexander V. Chernikov 36402a681f Finish r275196: do not dereference rtentry in if_output() routines.
The only piece of information that is required is rt_flags subset.

In particular, if_loop() requires RTF_REJECT and RTF_BLACKHOLE flags
  to check if this particular mbuf needs to be dropped (and what
  error should be returned).
Note that if_loop() will always return EHOSTUNREACH for "reject" routes
  regardless of RTF_HOST flag existence. This is due to upcoming routing
  changes where RTF_HOST value won't be available as lookup result.

All other functions require RTF_GATEWAY flag to check if they need
  to return EHOSTUNREACH instead of EHOSTDOWN error.

There are 11 places where non-zero 'struct route' is passed to if_output().
For most of the callers (forwarding, bpf, arp) does not care about exact
  error value. In fact, the only place where this result is propagated
  is ip_output(). (ip6_output() passes NULL route to nd6_output_ifp()).

Given that, add 3 new 'struct route' flags (RT_REJECT, RT_BLACKHOLE and
  RT_IS_GW) and inline function (rt_update_ro_flags()) to copy necessary
  rte flags to ro_flags. Call this function in ip_output() after looking up/
  verifying rte.

Reviewed by:	ae
2016-01-09 16:34:37 +00:00
..
amd64 Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
arm Print curpmap in "show pcpu" command. 2016-01-07 12:31:49 +00:00
arm64 Fix the arm64 build by adding an all-important '&' to get a pointer. 2016-01-02 21:13:14 +00:00
boot Remove hidden "Not ufs" printfs from boot code 2016-01-09 03:30:33 +00:00
bsm Merge from contrib/openbsm to bring the kernel audit bits up to date with OpenBSM 1.2 alpha 4: 2015-12-20 23:22:04 +00:00
cam Convert sys/cam to use make_dev_s(). 2016-01-07 20:22:55 +00:00
cddl Fix const conversion warning in lz4_decompress 2016-01-06 20:28:09 +00:00
compat LinuxKPI style changes: 2016-01-08 10:04:19 +00:00
conf Make additional parts of sys/geom/eli more usable in userspace 2016-01-07 05:47:34 +00:00
contrib Have krping use IB_ACCESS_LOCAL_WRITE because it's required for remote 2016-01-05 01:58:30 +00:00
crypto Break up opencrypto/xform.c so it can be reused piecemeal 2015-12-30 22:43:07 +00:00
ddb Add helper to catch single step debug event and distinguish it from bkpt 2015-11-27 19:03:59 +00:00
dev New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and 2016-01-08 20:34:57 +00:00
fs ext2fs: reading mmaped file in Ext4 causes panic 2016-01-07 21:43:43 +00:00
gdb
geom Make additional parts of sys/geom/eli more usable in userspace 2016-01-07 05:47:34 +00:00
gnu
i386 Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
isa
kern Prevent cv_waiters wraparound. 2016-01-09 01:56:46 +00:00
kgssapi Unset the gss kernel state when gssd exits 2016-01-01 17:06:16 +00:00
libkern libkern: ffs, fls: s/4/3/ the 3rd BSD clause 2015-10-22 21:04:47 +00:00
mips Make the 'env' directive described in config(5) work on all architectures, 2016-01-02 02:53:48 +00:00
modules Make additional parts of sys/geom/eli more usable in userspace 2016-01-07 05:47:34 +00:00
net Finish r275196: do not dereference rtentry in if_output() routines. 2016-01-09 16:34:37 +00:00
net80211 Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
netgraph Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
netinet Finish r275196: do not dereference rtentry in if_output() routines. 2016-01-09 16:34:37 +00:00
netinet6 Remove prefix check from in6_addroute(). 2016-01-09 11:41:37 +00:00
netipsec Overhaul if_enc(4) and make it loadable in run-time. 2015-11-25 07:31:59 +00:00
netnatm
netpfil Remove sys/eventhandler.h from net/route.h 2016-01-09 09:34:39 +00:00
netsmb The problem report was for a crash that happened when smbfs was 2015-11-18 23:04:01 +00:00
nfs Add kernel support to the NFS server for the "-manage-gids" 2015-11-30 21:54:27 +00:00
nfsclient
nfsserver
nlm
ofed Finish r275196: do not dereference rtentry in if_output() routines. 2016-01-09 16:34:37 +00:00
opencrypto Break up opencrypto/xform.c so it can be reused piecemeal 2015-12-30 22:43:07 +00:00
pc98 Add asynchronous command support to the pass(4) driver, and the new 2015-12-03 20:54:55 +00:00
powerpc Make arguments for booke_init() u_long, to match register width. 2016-01-04 02:20:14 +00:00
riscv/include Import RISC-V machine headers. This is a minimal set required to compile 2015-12-17 18:44:30 +00:00
rpc Improve locking of sg_threadcount. 2015-11-19 08:04:05 +00:00
security Merge from contrib/openbsm to bring the kernel audit bits up to date with OpenBSM 1.2 alpha 4: 2015-12-20 23:22:04 +00:00
sparc64 Make using the #address-cells property on the interrupt parent in device 2016-01-02 19:28:35 +00:00
sys New sendfile(2) syscall. A joint effort of NGINX and Netflix from 2013 and 2016-01-08 20:34:57 +00:00
teken
tests Style 9 changes. 2015-11-12 10:31:14 +00:00
tools Rename the /usr/share/doc/legal files to driver.LICENSE to work around 2015-10-16 00:38:05 +00:00
ufs Recheck curthread->td_su after the VFS_SYNC() call, and re-sync if the 2015-12-21 11:50:32 +00:00
vm Add missed relpbuf() for a smallfs page-in. 2015-12-27 14:42:39 +00:00
x86 Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
xdr
xen Clean up unused-but-set-variable spotted by gcc-4.9. 2015-12-31 01:54:07 +00:00
Makefile