Commit | Line | Data |
---|---|---|
805e021f CE |
1 | /* |
2 | * RX OSD interface description | |
3 | */ | |
4 | ||
5 | package RXOSD_ | |
6 | prefix S | |
7 | ||
8 | %#include <rx/rx.h> | |
9 | %#include <rx/rx_null.h> | |
10 | ||
11 | /* prototype for pseudo-RPC call */ | |
12 | %char *RXOSD_TranslateOpCode(afs_int32 code); | |
13 | ||
14 | %#define OSD_SERVER_PORT htons(7011) /* as MR-AFS remioserver */ | |
15 | %#define OSD_SERVICE_PORT htons(0) | |
16 | %#define OSD_SERVICE_ID 900 /* same as REMIOSRV for MR-AFS */ | |
17 | %#define OSD_NULL 0 | |
18 | %#define OSD_RXKAD 2 | |
19 | %#define RXOSD_RESTARTING -100 | |
20 | ||
21 | %#ifndef OSD_WAIT_FOR_TAPE | |
22 | %#define OSD_WAIT_FOR_TAPE 1096 | |
23 | %#endif | |
24 | ||
25 | %#define T10_CDB_SIZE 200 | |
26 | ||
27 | typedef opaque t10rock<T10_CDB_SIZE>; | |
28 | ||
29 | %#define CAPCRYPTLEN 72 | |
30 | struct t10cap { | |
31 | afs_uint32 pid_hi; | |
32 | afs_uint32 pid_lo; | |
33 | afs_uint32 oid_hi; | |
34 | afs_uint32 oid_lo; | |
35 | afs_uint32 maxlen_hi; | |
36 | afs_uint32 maxlen_lo; | |
37 | afs_uint32 ip; | |
38 | short port; | |
39 | short reserved; | |
40 | afsUUID uuid; | |
41 | afs_uint32 cap; | |
42 | afs_uint32 expires; | |
43 | afs_uint32 user; | |
44 | afs_uint32 spare[3]; | |
45 | afs_uint32 epoch; | |
46 | afs_uint32 cid; | |
47 | }; | |
48 | ||
49 | struct t10sec { | |
50 | char check[20]; | |
51 | char nonce[12]; | |
52 | char datain[4]; | |
53 | char dataout[4]; | |
54 | }; | |
55 | ||
56 | struct t10cdb { | |
57 | char operation; | |
58 | char control; | |
59 | char res1[5]; | |
60 | char lng; | |
61 | char action[2]; | |
62 | char service[6]; | |
63 | char pid[8]; | |
64 | char oid[8]; | |
65 | char res2[4]; | |
66 | char length[8]; | |
67 | char offset[8]; | |
68 | char attrparm[28]; | |
69 | struct t10cap cap; | |
70 | struct t10sec sec; | |
71 | }; | |
72 | ||
73 | struct osd_incdec { | |
74 | afs_uint64 oid; | |
75 | afs_uint64 pid; | |
76 | afs_int32 todo; | |
77 | afs_int32 done; | |
78 | }; | |
79 | typedef struct osd_incdec osd_incdecList <>; | |
80 | ||
81 | struct osd_md5 { | |
82 | afs_uint64 oid; | |
83 | afs_uint64 pid; | |
84 | afs_uint64 size; | |
85 | afs_uint32 md5[4]; | |
86 | }; | |
87 | ||
88 | struct osd_obj_desc { | |
89 | afs_uint64 oid; | |
90 | afs_uint64 pid; | |
91 | afs_uint32 id; | |
92 | afs_uint32 ip; | |
93 | afs_uint32 stripe; | |
94 | }; | |
95 | typedef struct osd_obj_desc osd_obj_descList <>; | |
96 | ||
97 | struct osd_segm_desc { | |
98 | afs_uint64 length; | |
99 | afs_uint32 stripes; | |
100 | afs_uint32 stripe_size; | |
101 | osd_obj_descList objList; | |
102 | }; | |
103 | typedef struct osd_segm_desc osd_segm_descList <>; | |
104 | ||
105 | struct rxosd_fetch_entry { | |
106 | afs_uint64 part_id; | |
107 | afs_uint64 obj_id; | |
108 | afs_uint32 user; | |
109 | afs_uint32 time; | |
110 | afs_uint32 fileserver; | |
111 | struct osd_segm_descList list; | |
112 | }; | |
113 | typedef struct rxosd_fetch_entry rxosd_fetch_entryList<>; | |
114 | ||
115 | %#define TAPE_FETCH 1 | |
116 | %#define XFERING 2 | |
117 | %#define SET_FILE_READY 3 | |
118 | ||
119 | struct FetchEntry { | |
120 | afs_uint32 Requestor; | |
121 | afs_uint32 TimeStamp; | |
122 | afs_uint32 Volume; | |
123 | afs_uint32 Vnode; | |
124 | afs_uint32 Uniquifier; | |
125 | afs_uint32 rank; | |
126 | afs_uint32 state; | |
127 | afs_uint32 caller; | |
128 | }; | |
129 | typedef FetchEntry FetchEntryList<>; | |
130 | ||
131 | struct WipeCandidate { | |
132 | afs_uint64 p_id; | |
133 | afs_uint64 o_id; | |
134 | afs_uint64 size; | |
135 | afs_uint32 atime; | |
136 | }; | |
137 | typedef WipeCandidate WipeCandidateList<>; | |
138 | ||
139 | struct activerpc { | |
140 | afs_uint32 num; | |
141 | afs_uint32 ip; | |
142 | afs_uint64 part; | |
143 | afs_uint64 obj; | |
144 | }; | |
145 | typedef activerpc activerpcList<>; | |
146 | ||
147 | struct varname { | |
148 | char name[64]; | |
149 | }; | |
150 | ||
151 | struct rxosd_stat { | |
152 | afs_uint32 rpc; | |
153 | afs_uint64 cnt; | |
154 | }; | |
155 | typedef rxosd_stat rxosd_statList<>; | |
156 | ||
157 | struct rxosd_kbps { | |
158 | afs_uint32 val[96]; | |
159 | }; | |
160 | ||
161 | create_part (IN afs_uint64 part_id) = 1; | |
162 | ||
163 | create (IN afs_uint64 part_id, | |
164 | IN afs_uint64 from_id, | |
165 | OUT afs_uint64 *obj_id) = 2; | |
166 | ||
167 | hardlink (IN afs_uint64 from_part, | |
168 | IN afs_uint64 from_id, | |
169 | IN afs_uint64 to_part, | |
170 | IN afs_uint64 to_id, | |
171 | OUT afs_uint64 *obj_id) = 3; | |
172 | ||
173 | write (IN t10rock rock, | |
174 | IN afs_uint64 part_id, | |
175 | IN afs_uint64 obj_id, | |
176 | IN afs_uint64 offset, | |
177 | IN afs_uint64 length) split = 4; | |
178 | ||
179 | write_keep (IN afs_uint64 part_id, | |
180 | IN afs_uint64 obj_id, | |
181 | IN afs_uint64 offset, | |
182 | IN afs_uint64 length, | |
183 | IN afs_uint32 atime, | |
184 | IN afs_uint32 mtime) split = 5; | |
185 | ||
186 | writePS (IN t10rock rock, | |
187 | IN afs_uint64 part_id, | |
188 | IN afs_uint64 obj_id, | |
189 | IN afs_uint64 offset, | |
190 | IN afs_uint64 length, | |
191 | IN afs_uint32 stripe_size, | |
192 | IN afs_uint32 nstripes, | |
193 | IN afs_uint32 mystripe) split = 6; | |
194 | ||
195 | read (IN t10rock rock, | |
196 | IN afs_uint64 part_id, | |
197 | IN afs_uint64 obj_id, | |
198 | IN afs_uint64 offset, | |
199 | IN afs_uint64 length) split = 7; | |
200 | ||
201 | readPS (IN t10rock rock, | |
202 | IN afs_uint64 part_id, | |
203 | IN afs_uint64 obj_id, | |
204 | IN afs_uint64 offset, | |
205 | IN afs_uint64 length, | |
206 | IN afs_uint32 stripe_size, | |
207 | IN afs_uint32 nstripes, | |
208 | IN afs_uint32 mystripe) split = 8; | |
209 | ||
210 | truncate (IN afs_uint64 part_id, | |
211 | IN afs_uint64 obj_id, | |
212 | IN afs_uint64 length) = 9; | |
213 | ||
214 | incdec (IN afs_uint64 part_id, | |
215 | IN afs_uint64 obj_id, | |
216 | IN afs_int32 diff) = 10; | |
217 | ||
218 | bulkincdec (INOUT osd_incdecList *list) = 11; | |
219 | ||
220 | remove_part (IN afs_uint64 part_id) = 12; | |
221 | ||
222 | list (IN afs_uint64 part_id, | |
223 | IN afs_uint64 start_id) split = 13; | |
224 | ||
225 | examine (IN afs_uint64 part_id, | |
226 | IN afs_uint64 obj_id, | |
227 | OUT afs_uint64 *size, | |
228 | OUT afs_uint32 *linkcount, | |
229 | OUT afs_uint32 *mtime, | |
230 | OUT afs_uint32 *atime) = 14; | |
231 | ||
232 | examineHSM (IN afs_uint64 part_id, | |
233 | IN afs_uint64 obj_id, | |
234 | OUT afs_uint64 *size, | |
235 | OUT afs_uint32 *linkcount, | |
236 | OUT afs_uint32 *time, | |
237 | OUT afs_int32 *status) = 15; | |
238 | ||
239 | list_part (IN afs_uint64 start_id) split = 16; | |
240 | ||
241 | copy (IN afs_uint64 from_part, | |
242 | IN afs_uint64 to_part, | |
243 | IN afs_uint64 from_id, | |
244 | IN afs_uint64 to_id, | |
245 | IN afs_uint32 to_osd) = 17; | |
246 | ||
247 | CopyOnWrite (IN afs_uint64 part_id, | |
248 | IN afs_uint64 from_id, | |
249 | IN afs_uint64 offs, | |
250 | IN afs_uint64 length, | |
251 | IN afs_uint64 size, | |
252 | OUT afs_uint64 *obj_id) = 18; | |
253 | ||
254 | Dummy (IN afs_uint32 in, | |
255 | OUT afs_uint32 *out) = 19; | |
256 | ||
257 | md5sum (IN afs_uint64 part_id, | |
258 | IN afs_uint64 obj_id, | |
259 | OUT struct osd_md5 *md5) = 20; | |
260 | ||
261 | create_archive (IN afs_uint64 part_id, | |
262 | IN afs_uint64 from_id, | |
263 | IN struct osd_segm_descList *list, | |
264 | OUT struct osd_md5 *output) = 21; | |
265 | ||
266 | restore_archive (IN afs_uint64 part_id, | |
267 | IN afs_uint64 obj_id, | |
268 | IN afs_uint32 user, | |
269 | IN struct osd_segm_descList *listi, | |
270 | OUT osd_md5 *output) = 22; | |
271 | ||
272 | close_file (IN afs_uint64 part_id, | |
273 | IN afs_uint64 obj_id) = 23; | |
274 | ||
275 | fetchqueue (OUT FetchEntryList *list) = 24; | |
276 | ||
277 | wipe_candidates (IN afs_uint32 lun, | |
278 | IN afs_uint32 max, | |
279 | IN afs_uint32 algorithm, | |
280 | IN afs_uint32 minMB, | |
281 | IN afs_uint32 spare, | |
282 | OUT WipeCandidateList *list) = 25; | |
283 | ||
284 | Variable (IN afs_int32 cmd, | |
285 | IN string name<256>, | |
286 | IN afs_int64 value, | |
287 | OUT afs_int64 *result) = 26; | |
288 | ||
289 | threads (OUT struct activerpcList *list) = 27; | |
290 | ||
291 | statistic (IN afs_int32 reset, | |
292 | OUT afs_uint32 *since, | |
293 | OUT afs_uint64 *received, | |
294 | OUT afs_uint64 *sent, | |
295 | OUT rxosd_statList *stat, | |
296 | OUT struct rxosd_kbps *kbpsrcvd, | |
297 | OUT struct rxosd_kbps *kbpssent) = 28; | |
298 | ||
299 | setatime (IN afs_uint64 part_id, | |
300 | IN afs_uint64 obj_id, | |
301 | IN afs_uint32 atime, | |
302 | IN afs_uint32 mtime) = 29; | |
303 | ||
304 | updatecounters (IN afs_uint64 bytes_rcvd, | |
305 | IN afs_uint64 bytes_sent) = 30; | |
306 | ||
307 | write_to_hpss (IN afs_uint64 part_id, | |
308 | IN afs_uint64 obj_id, | |
309 | IN struct osd_segm_descList *list, | |
310 | OUT osd_md5 *output) = 31; | |
311 | ||
312 | read_from_hpss (IN afs_uint64 part_id, | |
313 | IN afs_uint64 obj_id, | |
314 | IN struct osd_segm_descList *list, | |
315 | OUT osd_md5 *output) = 32; | |
316 | ||
317 | ProbeServer () = 33; | |
318 | ||
319 | /* end package */ | |
320 |