Author: rmacklem
Date: Mon Jun 12 23:41:20 2017
New Revision: 319882
URL: https://svnweb.freebsd.org/changeset/base/319882

Log:
  Define NFS_MAXXDR as the upper bound on XDR overhead in an NFS RPC.
  
  This definition is a part of the maxiotune2 patch that will be
  committed soon. It is being committed separately to ease merging
  with the pNFS projects subversion trees.
  
  MFC after:    1 month
  Differential Revision:        https://reviews.freebsd.org/D10991

Modified:
  head/sys/fs/nfs/nfsproto.h

Modified: head/sys/fs/nfs/nfsproto.h
==============================================================================
--- head/sys/fs/nfs/nfsproto.h  Mon Jun 12 22:53:18 2017        (r319881)
+++ head/sys/fs/nfs/nfsproto.h  Mon Jun 12 23:41:20 2017        (r319882)
@@ -56,8 +56,22 @@
 #define        NFS_MAXDGRAMDATA 16384
 #define        NFS_MAXPATHLEN  1024
 #define        NFS_MAXNAMLEN   255
+/*
+ * Calculating the maximum XDR overhead for an NFS RPC isn't easy.
+ * NFS_MAXPKTHDR is antiquated and assumes AUTH_SYS over UDP.
+ * NFS_MAXXDR should be sufficient for all NFS versions over TCP.
+ * It includes:
+ * - Maximum RPC message header. It can include 2 400byte authenticators plus
+ *   a machine name of unlimited length, although it is usually relatively
+ *   small.
+ * - XDR overheads for the NFSv4 compound. This can include Owner and
+ *   Owner_group strings, which are usually fairly small, but are allowed
+ *   to be up to 1024 bytes each.
+ * 4096 is overkill, but should always be sufficient.
+ */
 #define        NFS_MAXPKTHDR   404
-#define        NFS_MAXPACKET   (NFS_SRVMAXIO + 2048)
+#define        NFS_MAXXDR      4096
+#define        NFS_MAXPACKET   (NFS_SRVMAXIO + NFS_MAXXDR)
 #define        NFS_MINPACKET   20
 #define        NFS_FABLKSIZE   512     /* Size in bytes of a block wrt 
fa_blocks */
 #define        NFSV4_MINORVERSION      0       /* V4 Minor version */
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to