138414Smckusick /* 263236Sbostic * Copyright (c) 1989, 1993 363236Sbostic * The Regents of the University of California. All rights reserved. 438414Smckusick * 538414Smckusick * This code is derived from software contributed to Berkeley by 638414Smckusick * Rick Macklem at The University of Guelph. 738414Smckusick * 844515Sbostic * %sccs.include.redist.c% 938414Smckusick * 10*68653Smckusick * @(#)rpcv2.h 8.2 (Berkeley) 03/30/95 1138414Smckusick */ 1238414Smckusick 13*68653Smckusick 14*68653Smckusick #ifndef _NFS_RPCV2_H_ 15*68653Smckusick #define _NFS_RPCV2_H_ 16*68653Smckusick 1738414Smckusick /* 1838414Smckusick * Definitions for Sun RPC Version 2, from 1939747Smckusick * "RPC: Remote Procedure Call Protocol Specification" RFC1057 2038414Smckusick */ 2138414Smckusick 2238414Smckusick /* Version # */ 2338414Smckusick #define RPC_VER2 2 2438414Smckusick 2541896Smckusick /* Authentication */ 2638414Smckusick #define RPCAUTH_NULL 0 2738414Smckusick #define RPCAUTH_UNIX 1 2838414Smckusick #define RPCAUTH_SHORT 2 29*68653Smckusick #define RPCAUTH_KERB4 4 3052196Smckusick #define RPCAUTH_NQNFS 300000 3141896Smckusick #define RPCAUTH_MAXSIZ 400 32*68653Smckusick #define RPCVERF_MAXSIZ 12 /* For Kerb, can actually be 400 */ 3341896Smckusick #define RPCAUTH_UNIXGIDS 16 3438414Smckusick 35*68653Smckusick /* 36*68653Smckusick * Constants associated with authentication flavours. 37*68653Smckusick */ 38*68653Smckusick #define RPCAKN_FULLNAME 0 39*68653Smckusick #define RPCAKN_NICKNAME 1 40*68653Smckusick 4138414Smckusick /* Rpc Constants */ 4238414Smckusick #define RPC_CALL 0 4338414Smckusick #define RPC_REPLY 1 4438414Smckusick #define RPC_MSGACCEPTED 0 4538414Smckusick #define RPC_MSGDENIED 1 4638414Smckusick #define RPC_PROGUNAVAIL 1 4738414Smckusick #define RPC_PROGMISMATCH 2 4838414Smckusick #define RPC_PROCUNAVAIL 3 4938414Smckusick #define RPC_GARBAGE 4 /* I like this one */ 5038414Smckusick #define RPC_MISMATCH 0 5152196Smckusick #define RPC_AUTHERR 1 5238414Smckusick 5338414Smckusick /* Authentication failures */ 5438414Smckusick #define AUTH_BADCRED 1 5538414Smckusick #define AUTH_REJECTCRED 2 5638414Smckusick #define AUTH_BADVERF 3 5738414Smckusick #define AUTH_REJECTVERF 4 5838414Smckusick #define AUTH_TOOWEAK 5 /* Give em wheaties */ 5938414Smckusick 6038414Smckusick /* Sizes of rpc header parts */ 6138414Smckusick #define RPC_SIZ 24 6238414Smckusick #define RPC_REPLYSIZ 28 6338414Smckusick 6438414Smckusick /* RPC Prog definitions */ 6538414Smckusick #define RPCPROG_MNT 100005 6638414Smckusick #define RPCMNT_VER1 1 6738414Smckusick #define RPCMNT_MOUNT 1 6838414Smckusick #define RPCMNT_DUMP 2 6938414Smckusick #define RPCMNT_UMOUNT 3 7038414Smckusick #define RPCMNT_UMNTALL 4 7138414Smckusick #define RPCMNT_EXPORT 5 7238414Smckusick #define RPCMNT_NAMELEN 255 7338414Smckusick #define RPCMNT_PATHLEN 1024 7438414Smckusick #define RPCPROG_NFS 100003 75*68653Smckusick 76*68653Smckusick /* 77*68653Smckusick * Structures used for RPCAUTH_KERB4. 78*68653Smckusick */ 79*68653Smckusick struct nfsrpc_fullverf { 80*68653Smckusick u_long t1; 81*68653Smckusick u_long t2; 82*68653Smckusick u_long w2; 83*68653Smckusick }; 84*68653Smckusick 85*68653Smckusick struct nfsrpc_fullblock { 86*68653Smckusick u_long t1; 87*68653Smckusick u_long t2; 88*68653Smckusick u_long w1; 89*68653Smckusick u_long w2; 90*68653Smckusick }; 91*68653Smckusick 92*68653Smckusick struct nfsrpc_nickverf { 93*68653Smckusick u_long kind; 94*68653Smckusick struct nfsrpc_fullverf verf; 95*68653Smckusick }; 96*68653Smckusick 97*68653Smckusick /* 98*68653Smckusick * and their sizes in bytes.. If sizeof (struct nfsrpc_xx) != these 99*68653Smckusick * constants, well then things will break in mount_nfs and nfsd. 100*68653Smckusick */ 101*68653Smckusick #define RPCX_FULLVERF 12 102*68653Smckusick #define RPCX_FULLBLOCK 16 103*68653Smckusick #define RPCX_NICKVERF 16 104*68653Smckusick 105*68653Smckusick #ifdef NFSKERB 106*68653Smckusick XXX 107*68653Smckusick #else 108*68653Smckusick typedef u_char NFSKERBKEY_T[2]; 109*68653Smckusick typedef u_char NFSKERBKEYSCHED_T[2]; 110*68653Smckusick #endif 111*68653Smckusick #define NFS_KERBSRV "rcmd" /* Kerberos Service for NFS */ 112*68653Smckusick #define NFS_KERBTTL (30 * 60) /* Credential ttl (sec) */ 113*68653Smckusick #define NFS_KERBCLOCKSKEW (5 * 60) /* Clock skew (sec) */ 114*68653Smckusick #define NFS_KERBW1(t) (*((u_long *)(&((t).dat[((t).length + 3) & ~0x3])))) 115*68653Smckusick #endif 116