at v2.6.15 2.7 kB view raw
1/* 2 * linux/include/net/sunrpc/msg_prot.h 3 * 4 * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de> 5 */ 6 7#ifndef _LINUX_SUNRPC_MSGPROT_H_ 8#define _LINUX_SUNRPC_MSGPROT_H_ 9 10#ifdef __KERNEL__ /* user programs should get these from the rpc header files */ 11 12#define RPC_VERSION 2 13 14/* spec defines authentication flavor as an unsigned 32 bit integer */ 15typedef u32 rpc_authflavor_t; 16 17enum rpc_auth_flavors { 18 RPC_AUTH_NULL = 0, 19 RPC_AUTH_UNIX = 1, 20 RPC_AUTH_SHORT = 2, 21 RPC_AUTH_DES = 3, 22 RPC_AUTH_KRB = 4, 23 RPC_AUTH_GSS = 6, 24 RPC_AUTH_MAXFLAVOR = 8, 25 /* pseudoflavors: */ 26 RPC_AUTH_GSS_KRB5 = 390003, 27 RPC_AUTH_GSS_KRB5I = 390004, 28 RPC_AUTH_GSS_KRB5P = 390005, 29 RPC_AUTH_GSS_LKEY = 390006, 30 RPC_AUTH_GSS_LKEYI = 390007, 31 RPC_AUTH_GSS_LKEYP = 390008, 32 RPC_AUTH_GSS_SPKM = 390009, 33 RPC_AUTH_GSS_SPKMI = 390010, 34 RPC_AUTH_GSS_SPKMP = 390011, 35}; 36 37enum rpc_msg_type { 38 RPC_CALL = 0, 39 RPC_REPLY = 1 40}; 41 42enum rpc_reply_stat { 43 RPC_MSG_ACCEPTED = 0, 44 RPC_MSG_DENIED = 1 45}; 46 47enum rpc_accept_stat { 48 RPC_SUCCESS = 0, 49 RPC_PROG_UNAVAIL = 1, 50 RPC_PROG_MISMATCH = 2, 51 RPC_PROC_UNAVAIL = 3, 52 RPC_GARBAGE_ARGS = 4, 53 RPC_SYSTEM_ERR = 5 54}; 55 56enum rpc_reject_stat { 57 RPC_MISMATCH = 0, 58 RPC_AUTH_ERROR = 1 59}; 60 61enum rpc_auth_stat { 62 RPC_AUTH_OK = 0, 63 RPC_AUTH_BADCRED = 1, 64 RPC_AUTH_REJECTEDCRED = 2, 65 RPC_AUTH_BADVERF = 3, 66 RPC_AUTH_REJECTEDVERF = 4, 67 RPC_AUTH_TOOWEAK = 5, 68 /* RPCSEC_GSS errors */ 69 RPCSEC_GSS_CREDPROBLEM = 13, 70 RPCSEC_GSS_CTXPROBLEM = 14 71}; 72 73#define RPC_PMAP_PROGRAM 100000 74#define RPC_PMAP_VERSION 2 75#define RPC_PMAP_PORT 111 76 77#define RPC_MAXNETNAMELEN 256 78 79/* 80 * From RFC 1831: 81 * 82 * "A record is composed of one or more record fragments. A record 83 * fragment is a four-byte header followed by 0 to (2**31) - 1 bytes of 84 * fragment data. The bytes encode an unsigned binary number; as with 85 * XDR integers, the byte order is from highest to lowest. The number 86 * encodes two values -- a boolean which indicates whether the fragment 87 * is the last fragment of the record (bit value 1 implies the fragment 88 * is the last fragment) and a 31-bit unsigned binary value which is the 89 * length in bytes of the fragment's data. The boolean value is the 90 * highest-order bit of the header; the length is the 31 low-order bits. 91 * (Note that this record specification is NOT in XDR standard form!)" 92 * 93 * The Linux RPC client always sends its requests in a single record 94 * fragment, limiting the maximum payload size for stream transports to 95 * 2GB. 96 */ 97 98typedef u32 rpc_fraghdr; 99 100#define RPC_LAST_STREAM_FRAGMENT (1U << 31) 101#define RPC_FRAGMENT_SIZE_MASK (~RPC_LAST_STREAM_FRAGMENT) 102#define RPC_MAX_FRAGMENT_SIZE ((1U << 31) - 1) 103 104#endif /* __KERNEL__ */ 105#endif /* _LINUX_SUNRPC_MSGPROT_H_ */