0001
0002
0003
0004
0005
0006
0007
0008 #ifndef AFS_VL_H
0009 #define AFS_VL_H
0010
0011 #include "afs.h"
0012
0013 #define AFS_VL_PORT 7003
0014 #define VL_SERVICE 52
0015 #define YFS_VL_SERVICE 2503
0016
0017 enum AFSVL_Operations {
0018 VLGETENTRYBYID = 503,
0019 VLGETENTRYBYNAME = 504,
0020 VLPROBE = 514,
0021 VLGETENTRYBYIDU = 526,
0022 VLGETENTRYBYNAMEU = 527,
0023 VLGETADDRSU = 533,
0024 YVLGETENDPOINTS = 64002,
0025 YVLGETCELLNAME = 64014,
0026 VLGETCAPABILITIES = 65537,
0027 };
0028
0029 enum AFSVL_Errors {
0030 AFSVL_IDEXIST = 363520,
0031 AFSVL_IO = 363521,
0032 AFSVL_NAMEEXIST = 363522,
0033 AFSVL_CREATEFAIL = 363523,
0034 AFSVL_NOENT = 363524,
0035 AFSVL_EMPTY = 363525,
0036 AFSVL_ENTDELETED = 363526,
0037 AFSVL_BADNAME = 363527,
0038 AFSVL_BADINDEX = 363528,
0039 AFSVL_BADVOLTYPE = 363529,
0040 AFSVL_BADSERVER = 363530,
0041 AFSVL_BADPARTITION = 363531,
0042 AFSVL_REPSFULL = 363532,
0043 AFSVL_NOREPSERVER = 363533,
0044 AFSVL_DUPREPSERVER = 363534,
0045 AFSVL_RWNOTFOUND = 363535,
0046 AFSVL_BADREFCOUNT = 363536,
0047 AFSVL_SIZEEXCEEDED = 363537,
0048 AFSVL_BADENTRY = 363538,
0049 AFSVL_BADVOLIDBUMP = 363539,
0050 AFSVL_IDALREADYHASHED = 363540,
0051 AFSVL_ENTRYLOCKED = 363541,
0052 AFSVL_BADVOLOPER = 363542,
0053 AFSVL_BADRELLOCKTYPE = 363543,
0054 AFSVL_RERELEASE = 363544,
0055 AFSVL_BADSERVERFLAG = 363545,
0056 AFSVL_PERM = 363546,
0057 AFSVL_NOMEM = 363547,
0058 };
0059
0060 enum {
0061 YFS_SERVER_INDEX = 0,
0062 YFS_SERVER_UUID = 1,
0063 YFS_SERVER_ENDPOINT = 2,
0064 };
0065
0066 enum {
0067 YFS_ENDPOINT_IPV4 = 0,
0068 YFS_ENDPOINT_IPV6 = 1,
0069 };
0070
0071 #define YFS_MAXENDPOINTS 16
0072
0073
0074
0075
0076 struct afs_vldbentry {
0077 char name[65];
0078 afs_voltype_t type;
0079 unsigned num_servers;
0080 unsigned clone_id;
0081
0082 unsigned flags;
0083 #define AFS_VLF_RWEXISTS 0x1000
0084 #define AFS_VLF_ROEXISTS 0x2000
0085 #define AFS_VLF_BACKEXISTS 0x4000
0086
0087 afs_volid_t volume_ids[3];
0088
0089 struct {
0090 struct in_addr addr;
0091 unsigned partition;
0092 unsigned flags;
0093 #define AFS_VLSF_NEWREPSITE 0x0001
0094 #define AFS_VLSF_ROVOL 0x0002
0095 #define AFS_VLSF_RWVOL 0x0004
0096 #define AFS_VLSF_BACKVOL 0x0008
0097 #define AFS_VLSF_UUID 0x0010
0098 #define AFS_VLSF_DONTUSE 0x0020
0099 } servers[8];
0100 };
0101
0102 #define AFS_VLDB_MAXNAMELEN 65
0103
0104
0105 struct afs_ListAddrByAttributes__xdr {
0106 __be32 Mask;
0107 #define AFS_VLADDR_IPADDR 0x1
0108 #define AFS_VLADDR_INDEX 0x2
0109 #define AFS_VLADDR_UUID 0x4
0110 __be32 ipaddr;
0111 __be32 index;
0112 __be32 spare;
0113 struct afs_uuid__xdr uuid;
0114 };
0115
0116 struct afs_uvldbentry__xdr {
0117 __be32 name[AFS_VLDB_MAXNAMELEN];
0118 __be32 nServers;
0119 struct afs_uuid__xdr serverNumber[AFS_NMAXNSERVERS];
0120 __be32 serverUnique[AFS_NMAXNSERVERS];
0121 __be32 serverPartition[AFS_NMAXNSERVERS];
0122 __be32 serverFlags[AFS_NMAXNSERVERS];
0123 __be32 volumeId[AFS_MAXTYPES];
0124 __be32 cloneId;
0125 __be32 flags;
0126 __be32 spares1;
0127 __be32 spares2;
0128 __be32 spares3;
0129 __be32 spares4;
0130 __be32 spares5;
0131 __be32 spares6;
0132 __be32 spares7;
0133 __be32 spares8;
0134 __be32 spares9;
0135 };
0136
0137 struct afs_address_list {
0138 refcount_t usage;
0139 unsigned int version;
0140 unsigned int nr_addrs;
0141 struct sockaddr_rxrpc addrs[];
0142 };
0143
0144 extern void afs_put_address_list(struct afs_address_list *alist);
0145
0146 #endif