opnsense-src/sys/fs/nfsclient
Rick Macklem 1e0a518d65 nfscl: Add a Linux compatible "nconnect" mount option
Linux has had an "nconnect" NFS mount option for some time.
It specifies that N (up to 16) TCP connections are to created for a mount,
instead of just one TCP connection.

A discussion on freebsd-net@ indicated that this could improve
client<-->server network bandwidth, if either the client or server
have one of the following:
- multiple network ports aggregated to-gether with lagg/lacp.
- a fast NIC that is using multiple queues
It does result in using more IP port#s and might increase server
peak load for a client.

One difference from the Linux implementation is that this implementation
uses the first TCP connection for all RPCs composed of small messages
and uses the additional TCP connections for RPCs that normally have
large messages (Read/Readdir/Write).  The Linux implementation spreads
all RPCs across all TCP connections in a round robin fashion, whereas
this implementation spreads Read/Readdir/Write across the additional
TCP connections in a round robin fashion.

Reviewed by:	markj
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D30970
2021-07-08 17:39:04 -07:00
..
nfs.h Remove "struct ucred*" argument from vtruncbuf 2019-05-24 20:27:50 +00:00
nfs_clbio.c nfsclient: add nfs node locking around uses of n_direofoffset 2021-02-28 14:53:54 -08:00
nfs_clcomsubs.c nfscl: Add support for va_birthtime to NFSv4 2021-05-07 17:30:56 -07:00
nfs_clkdtrace.c fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs_clkrpc.c fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfs_clnfsiod.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
nfs_clnode.c nfscl: add check for NULL clp and forced dismounts to nfscl_delegreturnvp() 2021-04-27 17:30:16 -07:00
nfs_clport.c nfscl: Fix generation of va_fsid for a tree of NFSv4 server file systems 2021-06-07 13:48:25 -07:00
nfs_clrpcops.c nfscl: Add a Linux compatible "nconnect" mount option 2021-07-08 17:39:04 -07:00
nfs_clstate.c nfscl: Change the default minor version for NFSv4 mounts 2021-06-24 18:52:23 -07:00
nfs_clsubs.c nfsclient: add nfs node locking around uses of n_direofoffset 2021-02-28 14:53:54 -08:00
nfs_clvfsops.c nfscl: Add a Linux compatible "nconnect" mount option 2021-07-08 17:39:04 -07:00
nfs_clvnops.c nfscl: Add support for va_birthtime to NFSv4 2021-05-07 17:30:56 -07:00
nfs_kdtrace.h fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
nfsmount.h nfscl: Add a Linux compatible "nconnect" mount option 2021-07-08 17:39:04 -07:00
nfsnode.h Fix interface between nfsclient and vnode pager. 2019-10-22 16:17:38 +00:00
nlminfo.h sys/fs: further adoption of SPDX licensing ID tags. 2017-11-27 15:15:37 +00:00