linux/net/sunrpc
Jeff Layton 5283b03ee5 nfs/nfsd/sunrpc: enforce transport requirements for NFSv4
NFSv4 requires a transport "that is specified to avoid network
congestion" (RFC 7530, section 3.1, paragraph 2).  In practical terms,
that means that you should not run NFSv4 over UDP. The server has never
enforced that requirement, however.

This patchset fixes this by adding a new flag to the svc_version that
states that it has these transport requirements. With that, we can check
that the transport has XPT_CONG_CTRL set before processing an RPC. If it
doesn't we reject it with RPC_PROG_MISMATCH.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2017-02-24 17:03:34 -05:00
..
auth_gss svcrpc: free contexts immediately on PROC_DESTROY 2017-01-31 12:31:53 -05:00
xprtrdma sunrpc: flag transports as having congestion control 2017-02-24 16:55:46 -05:00
addr.c
auth_generic.c NFS client updates for Linux 4.9 2016-10-13 21:28:20 -07:00
auth_null.c sunrpc: move NO_CRKEY_TIMEOUT to the auth->au_flags 2016-07-19 16:23:24 -04:00
auth_unix.c NFS client updates for Linux 4.9 2016-10-13 21:28:20 -07:00
auth.c sunrpc: replace generic auth_cred hash with auth-specific function 2016-09-30 15:47:47 -04:00
backchannel_rqst.c SUNRPC: Refactor rpc_xdr_buf_init() 2016-09-19 13:08:37 -04:00
cache.c SUNRPC: Drop all entries from cache_detail when cache_purge() 2017-02-08 16:49:32 -05:00
clnt.c SUNRPC: cleanup ida information when removing sunrpc module 2017-01-24 15:29:24 -05:00
debugfs.c SUNRPC: Address kbuild warning in net/sunrpc/debugfs.c 2015-06-11 14:01:06 -04:00
Kconfig rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
Makefile SUNRPC: Add a structure to track multiple transports 2016-02-05 18:48:54 -05:00
netns.h netns: make struct pernet_operations::id unsigned int 2016-11-18 10:59:15 -05:00
rpc_pipe.c fs: Replace CURRENT_TIME with current_time() for inode timestamps 2016-09-27 21:06:21 -04:00
rpcb_clnt.c SUNRPC: Use the multipath iterator to assign a transport to each task 2016-02-05 18:48:55 -05:00
sched.c SUNRPC: Separate buffer pointers for RPC Call and Reply messages 2016-09-19 13:08:37 -04:00
socklib.c sunrpc: do not pull udp headers on receive 2016-04-11 15:31:33 -04:00
stats.c SUNRPC: Proper metric accounting when RPC is not transmitted 2016-11-29 16:45:44 -05:00
sunrpc_syms.c SUNRPC: cleanup ida information when removing sunrpc module 2017-01-24 15:29:24 -05:00
sunrpc.h
svc_xprt.c sunrpc: don't call sleeping functions from the notifier block callbacks 2017-01-12 15:56:40 -05:00
svc.c nfs/nfsd/sunrpc: enforce transport requirements for NFSv4 2017-02-24 17:03:34 -05:00
svcauth_unix.c cred: simpler, 1D supplementary groups 2016-10-07 18:46:30 -07:00
svcauth.c sunrpc: use DEFINE_SPINLOCK() 2016-12-06 14:18:30 -05:00
svcsock.c sunrpc: flag transports as having congestion control 2017-02-24 16:55:46 -05:00
sysctl.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
timer.c
xdr.c SUNRPC: Fix setting of buffer length in xdr_set_next_buffer() 2016-09-22 17:17:47 -04:00
xprt.c sunrpc: Don't engage exponential backoff when connection attempt is rejected. 2016-12-01 17:40:41 -05:00
xprtmultipath.c SUNRPC search xprt switch for sockaddr 2016-09-19 13:08:36 -04:00
xprtsock.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-15 10:54:36 -05:00