summaryrefslogtreecommitdiff
path: root/net/nfs.h
diff options
context:
space:
mode:
authorGuillaume GARDET <guillaume.gardet@free.fr>2016-07-29 09:31:00 (GMT)
committerJoe Hershberger <joe.hershberger@ni.com>2016-08-22 19:20:20 (GMT)
commitb0baca9820485507a3ec0e5b403a6bf0a57ff2fc (patch)
tree800a4db3f6aba3e9ff749ce0a8197df42181780b /net/nfs.h
parentd23d7bd7935127bf50713ec2b4c3014ac279d2e5 (diff)
downloadu-boot-fsl-qoriq-b0baca9820485507a3ec0e5b403a6bf0a57ff2fc.tar.xz
net: NFS: Add NFSv3 support
This patch enables NFSv3 support. If NFSv2 is available use it as usual. If NFSv2 is not available, but NFSv3 is available, use NFSv3. If NFSv2 and NFSv3 are not available, print an error message since NFSv4 is not supported. Tested on iMX6 sabrelite with 4 Linux NFS servers: * NFSv2 + NFSv3 + NFSv4 server: use NFSv2 protocol * NFSv2 + NFSv3 server: use NFSv2 protocol * NFSv3 + NFSv4 server: use NFSv3 protocol * NFSv3 server: use NFSv3 protocol Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr> Cc: Tom Rini <trini@konsulko.com> Cc: joe.hershberger@ni.com Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'net/nfs.h')
-rw-r--r--net/nfs.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/net/nfs.h b/net/nfs.h
index 2a1f4db..45da246 100644
--- a/net/nfs.h
+++ b/net/nfs.h
@@ -25,7 +25,10 @@
#define NFS_READLINK 5
#define NFS_READ 6
+#define NFS3PROC_LOOKUP 3
+
#define NFS_FHSIZE 32
+#define NFS3_FHSIZE 64
#define NFSERR_PERM 1
#define NFSERR_NOENT 2
@@ -44,6 +47,16 @@
#define NFS_READ_SIZE 1024 /* biggest power of two that fits Ether frame */
#endif
+/* Values for Accept State flag on RPC answers (See: rfc1831) */
+enum rpc_accept_stat {
+ NFS_RPC_SUCCESS = 0, /* RPC executed successfully */
+ NFS_RPC_PROG_UNAVAIL = 1, /* remote hasn't exported program */
+ NFS_RPC_PROG_MISMATCH = 2, /* remote can't support version # */
+ NFS_RPC_PROC_UNAVAIL = 3, /* program can't support procedure */
+ NFS_RPC_GARBAGE_ARGS = 4, /* procedure can't decode params */
+ NFS_RPC_SYSTEM_ERR = 5 /* errors like memory allocation failure */
+};
+
struct rpc_t {
union {
uint8_t data[2048];
@@ -63,7 +76,7 @@ struct rpc_t {
uint32_t verifier;
uint32_t v2;
uint32_t astatus;
- uint32_t data[19];
+ uint32_t data[NFS_READ_SIZE];
} reply;
} u;
};