8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / cmd / ndmpd / ndmp / ndmp.x
blobdb66110bbaf65c170549c162cddc45943934930e
1 /*
2  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
4  */
6 /*
7  * BSD 3 Clause License
8  *
9  * Copyright (c) 2007, The Storage Networking Industry Association.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  *      - Redistributions of source code must retain the above copyright
15  *        notice, this list of conditions and the following disclaimer.
16  *
17  *      - Redistributions in binary form must reproduce the above copyright
18  *        notice, this list of conditions and the following disclaimer in
19  *        the documentation and/or other materials provided with the
20  *        distribution.
21  *
22  *      - Neither the name of The Storage Networking Industry Association (SNIA)
23  *        nor the names of its contributors may be used to endorse or promote
24  *        products derived from this software without specific prior written
25  *        permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
31  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37  * POSSIBILITY OF SUCH DAMAGE.
38  */
39 /* Copyright (c) 1996, 1997 PDC, Network Appliance. All Rights Reserved */
41 #define VER 3
43 const NDMPV2 = 2;
44 const NDMPV3 = 3;
45 const NDMPV4 = 4;
46 const NDMPVER = NDMPV4;
47 const NDMPPORT = 10000;
49 struct ndmp_u_quad
51         u_long  high;
52         u_long  low;
55 struct ndmp_pval
57         string  name<>;
58         string  value<>;
61 struct ndmp_scsi_device
63         string  name<>;
66 struct ndmp_tape_device
68         string  name<>;
71 enum ndmp_error  
72
73         NDMP_NO_ERR                     =  0, /* No error */
74         NDMP_NOT_SUPPORTED_ERR          =  1, /* Call is not supported */
75         NDMP_DEVICE_BUSY_ERR            =  2, /* The device is in use */
76         NDMP_DEVICE_OPENED_ERR          =  3, /* Another tape or scsi device is already open */
77         NDMP_NOT_AUTHORIZED_ERR         =  4, /* Connection has not been authorized */
78         NDMP_PERMISSION_ERR             =  5, /* Some sort of permission problem */
79         NDMP_DEV_NOT_OPEN_ERR           =  6, /* SCSI device is not open */
80         NDMP_IO_ERR                     =  7, /* I/O error */   
81         NDMP_TIMEOUT_ERR                =  8, /* command timed out */   
82         NDMP_ILLEGAL_ARGS_ERR           =  9, /* illegal arguments in request */   
83         NDMP_NO_TAPE_LOADED_ERR         = 10, /* Cannot open because there is no tape loaded */   
84         NDMP_WRITE_PROTECT_ERR          = 11, /* tape cannot be open for write */   
85         NDMP_EOF_ERR                    = 12, /* Command encountered EOF */   
86         NDMP_EOM_ERR                    = 13, /* Command encountered EOM */   
87         NDMP_FILE_NOT_FOUND_ERR         = 14, /* File not found during restore */   
88         NDMP_BAD_FILE_ERR               = 15, /* The file descriptor is invalid */   
89         NDMP_NO_DEVICE_ERR              = 16, /* The device is not at that target */   
90         NDMP_NO_BUS_ERR                 = 17, /* Invalid controller */   
91         NDMP_XDR_DECODE_ERR             = 18, /* Can't decode the request argument */   
92         NDMP_ILLEGAL_STATE_ERR          = 19, /* Call can't be performed at this state */   
93         NDMP_UNDEFINED_ERR              = 20, /* Undefined Error */   
94         NDMP_XDR_ENCODE_ERR             = 21, /* Can't encode the reply argument */   
95         NDMP_NO_MEM_ERR                 = 22, /* No memory */   
97         /*
98          * NDMP V3
99          */
100         NDMP_CONNECT_ERR                = 23,  
102         /*
103          * NDMP V4
104          */
105         NDMP_SEQUENCE_NUM_ERR           = 24,    
106         NDMP_READ_IN_PROGRESS_ERR       = 25, 
107         NDMP_PRECONDITION_ERR           = 26,  
108         NDMP_CLASS_NOT_SUPPORTED_ERR    = 27, 
109         NDMP_VERSION_NOT_SUPPORTED_ERR  = 28, 
110         NDMP_EXT_DUPL_CLASSES_ERR       = 29, 
111         NDMP_EXT_DANDN_ILLEGAL_ERR      = 30 
112 }; 
114 enum ndmp_header_message_type
116         NDMP_MESSAGE_REQUEST,
117         NDMP_MESSAGE_REPLY
120 enum ndmp_message
122         NDMP_CONNECT_OPEN               = 0x900, 
123         NDMP_CONNECT_CLIENT_AUTH        = 0x901, 
124         NDMP_CONNECT_CLOSE              = 0x902, 
125         NDMP_CONNECT_SERVER_AUTH        = 0x903, 
127         NDMP_CONFIG_GET_HOST_INFO       = 0x100, 
128         NDMP_CONFIG_GET_BUTYPE_ATTR     = 0x101,        /* NDMP V2 */
129         NDMP_CONFIG_GET_CONNECTION_TYPE = 0x102,           
130         NDMP_CONFIG_GET_AUTH_ATTR       = 0x103, 
131         NDMP_CONFIG_GET_BUTYPE_INFO     = 0x104,        /* NDMP V3,4 */
132         NDMP_CONFIG_GET_FS_INFO         = 0x105,        /* NDMP V3,4 */
133         NDMP_CONFIG_GET_TAPE_INFO       = 0x106,        /* NDMP V3,4 */
134         NDMP_CONFIG_GET_SCSI_INFO       = 0x107,        /* NDMP V3,4 */
135         NDMP_CONFIG_GET_SERVER_INFO     = 0x108,        /* NDMP V3,4 */
136         NDMP_CONFIG_SET_EXT_LIST        = 0x109,        /* NDMP V4 */
137         NDMP_CONFIG_GET_EXT_LIST        = 0x10A,        /* NDMP V4 */
139         NDMP_SCSI_OPEN                  = 0x200,     
140         NDMP_SCSI_CLOSE                 = 0x201, 
141         NDMP_SCSI_GET_STATE             = 0x202, 
142         NDMP_SCSI_SET_TARGET            = 0x203,        /* NDMP V2,3 */
143         NDMP_SCSI_RESET_DEVICE          = 0x204, 
144         NDMP_SCSI_RESET_BUS             = 0x205,        /* NDMP V2,3 */
145         NDMP_SCSI_EXECUTE_CDB           = 0x206, 
147         NDMP_TAPE_OPEN                  = 0x300, 
148         NDMP_TAPE_CLOSE                 = 0x301, 
149         NDMP_TAPE_GET_STATE             = 0x302, 
150         NDMP_TAPE_MTIO                  = 0x303, 
151         NDMP_TAPE_WRITE                 = 0x304, 
152         NDMP_TAPE_READ                  = 0x305, 
153         NDMP_TAPE_SET_RECORD_SIZE       = 0x306,        /* NDMP V1 */
154         NDMP_TAPE_EXECUTE_CDB           = 0x307, 
156         NDMP_DATA_GET_STATE             = 0x400, 
157         NDMP_DATA_START_BACKUP          = 0x401, 
158         NDMP_DATA_START_RECOVER         = 0x402, 
159         NDMP_DATA_ABORT                 = 0x403, 
160         NDMP_DATA_GET_ENV               = 0x404, 
161         NDMP_DATA_RESVD1                = 0x405,
162         NDMP_DATA_RESVD2                = 0x406,
163         NDMP_DATA_STOP                  = 0x407, 
164         NDMP_DATA_CONTINUE              = 0x408,        /* NDMP V1 */
165         NDMP_DATA_LISTEN                = 0x409,  
166         NDMP_DATA_CONNECT               = 0x40A, 
167         NDMP_DATA_START_RECOVER_FILEHIST = 0x40B,       /* NDMP V4 */
169         NDMP_NOTIFY_RESERVED            = 0x500,
170         NDMP_NOTIFY_DATA_HALTED         = 0x501,     
171         NDMP_NOTIFY_CONNECTION_STATUS   = 0x502,     
172         NDMP_NOTIFY_MOVER_HALTED        = 0x503, 
173         NDMP_NOTIFY_MOVER_PAUSED        = 0x504, 
174         NDMP_NOTIFY_DATA_READ           = 0x505, 
176         _NDMP_LOG_LOG                   = 0x600,        /* NDMP V2 */
177         _NDMP_LOG_DEBUG                 = 0x601,        /* NDMP V2 */
178         NDMP_LOG_FILE                   = 0x602,        /* NDMP V3,4 */
179         NDMP_LOG_MESSAGE                = 0x603,        /* NDMP V3,4 */ 
181         NDMP_FH_ADD_UNIX_PATH           = 0x700,        /* NDMP V2,3 */
182         NDMP_FH_ADD_UNIX_DIR            = 0x701,        /* NDMP V2,3 */
183         NDMP_FH_ADD_UNIX_NODE           = 0x702,        /* NDMP V2,3 */
184         NDMP_FH_ADD_FILE                = 0x703,        /* NDMP V3,4 */
185         NDMP_FH_ADD_DIR                 = 0x704,        /* NDMP V3,4 */
186         NDMP_FH_ADD_NODE                = 0x705,        /* NDMP V3,4 */
188         NDMP_MOVER_GET_STATE            = 0xA00, 
189         NDMP_MOVER_LISTEN               = 0xA01, 
190         NDMP_MOVER_CONTINUE             = 0xA02, 
191         NDMP_MOVER_ABORT                = 0xA03, 
192         NDMP_MOVER_STOP                 = 0xA04, 
193         NDMP_MOVER_SET_WINDOW           = 0xA05, 
194         NDMP_MOVER_READ                 = 0xA06, 
195         NDMP_MOVER_CLOSE                = 0xA07, 
196         NDMP_MOVER_SET_RECORD_SIZE      = 0xA08, 
197         NDMP_MOVER_CONNECT              = 0xA09,        /* NDMP V3,4 */
199         NDMP_EXT_STANDARD_BASE          = 0x10000, 
201         NDMP_EXT_PROPRIETARY_BASE       = 0x20000000 
205 const NDMP_CONNECT_AUTH = NDMP_CONNECT_CLIENT_AUTH;
206 const NDMP_MESSAGE_POST = NDMP_MESSAGE_REQUEST; 
208 struct ndmp_header
210         u_long sequence;                        /* Monotonically increasing number */
211         u_long time_stamp;                      /* Time stamp of message */
212         ndmp_header_message_type message_type;  /* What type of message */
213         enum ndmp_message message;              /* Message number */
214         u_long reply_sequence;                  /* Reply is in response to */
215         ndmp_error error;                       /* Communications errors */
219 /***************************/
220 /*  CONNECT INTERFACE (V2) */
221 /***************************/
223 /* NDMP_CONNECT_OPEN */
224 struct ndmp_connect_open_request
226         u_short protocol_version;       /* the version of protocol supported */
229 struct ndmp_connect_open_reply
231         ndmp_error      error;
234 /* NDMP_CONNECT_CLIENT_AUTH = NDMP_CONNECT_AUTH */
235 enum ndmp_auth_type
237         NDMP_AUTH_NONE,         /* no password is required */
238         NDMP_AUTH_TEXT,         /* the clear text password */
239         NDMP_AUTH_MD5           /* md5 */
242 struct ndmp_auth_text
244         string  user<>;
245         string  password<>;
248 struct ndmp_auth_md5
250         string  user<>;
251         opaque  auth_digest[16];
254 union ndmp_auth_data switch (enum ndmp_auth_type auth_type)
256         case NDMP_AUTH_NONE:
257                 void;
258         case NDMP_AUTH_TEXT:
259                 struct ndmp_auth_text   auth_text;
260         case NDMP_AUTH_MD5:
261                 struct ndmp_auth_md5    auth_md5;
264 struct ndmp_connect_client_auth_request
266         ndmp_auth_data  auth_data;
269 struct ndmp_connect_client_auth_reply
271         ndmp_error      error;
275 /* NDMP_CONNECT_CLOSE */
276 /* no request arguments */
277 /* no reply arguments */
279 /* NDMP_CONNECT_SERVER_AUTH */
280 union ndmp_auth_attr switch (enum ndmp_auth_type auth_type)
282         case NDMP_AUTH_NONE:
283                 void;
284         case NDMP_AUTH_TEXT:
285                 void;
286         case NDMP_AUTH_MD5:
287                 opaque  challenge[64];
290 struct ndmp_connect_server_auth_request
292         ndmp_auth_attr  client_attr;
295 struct ndmp_connect_server_auth_reply
297         ndmp_error      error;
298         ndmp_auth_data  auth_result;
302 /***************************/
303 /*  CONNECT INTERFACE (V3) */
304 /***************************/
306 /* NDMP_CONNECT_OPEN - same as V2 */
308 struct ndmp_auth_text_v3
310         string  auth_id<>;
311         string  auth_password<>;
315 struct ndmp_auth_md5_v3
317         string  auth_id<>;
318         opaque  auth_digest[16];
321 union ndmp_auth_data_v3 switch (enum ndmp_auth_type auth_type)
323         case NDMP_AUTH_NONE:
324                 void;
325         case NDMP_AUTH_TEXT:
326                 struct ndmp_auth_text_v3        auth_text;
327         case NDMP_AUTH_MD5:
328                 struct ndmp_auth_md5_v3 auth_md5;
331 struct ndmp_connect_client_auth_request_v3
333         ndmp_auth_data_v3       auth_data;
336 struct ndmp_connect_client_auth_reply_v3
338         ndmp_error      error;
341 /* NDMP_CONNECT_CLOSE - same as V2 */
343 /* NDMP_CONNECT_SERVER_AUTH - same as V2 */
346 /***************************/
347 /*  CONNECT INTERFACE (V4) */
348 /***************************/
350 /* NDMP_CONNECT_OPEN - same as V3 */
352 /* NDMP_CONNECT_CLIENT_AUTH - same as V3 */
354 /* NDMP_CONNECT_CLOSE - same as V3 */
356 /* NDMP_CONNECT_SERVER_AUTH - same as V3 */
359 /*************************/
360 /* CONFIG INTERFACE (V2) */
361 /*************************/
363 /* NDMP_CONFIG_GET_HOST_INFO */
364 /* no request arguments */
366 struct ndmp_config_get_host_info_reply
368         ndmp_error      error;
369         string          hostname<>;     /* host name */
370         string          os_type<>;      /* The operating system type (i.e. SOLARIS) */
371         string          os_vers<>;      /* The version number of the OS (i.e. 2.5) */
372         string          hostid<>;
373         ndmp_auth_type  auth_type<>;
376 /* NDMP_CONFIG_GET_BUTYPE_ATTR */
377 const NDMP_NO_BACKUP_FILELIST   = 0x0001;
378 const NDMP_NO_BACKUP_FHINFO     = 0x0002;
379 const NDMP_NO_RECOVER_FILELIST  = 0x0004;
380 const NDMP_NO_RECOVER_FHINFO    = 0x0008;
381 const NDMP_NO_RECOVER_SSID      = 0x0010;
382 const NDMP_NO_RECOVER_INC_ONLY  = 0x0020;
384 struct ndmp_config_get_butype_attr_request
386         string  name<>;         /* backup type name */
389 struct ndmp_config_get_butype_attr_reply
391         ndmp_error      error;
392         u_long          attrs;
395 /* NDMP_CONFIG_GET_MOVER_TYPE */
396 /* no request arguments */
398 enum ndmp_addr_type  
400         NDMP_ADDR_LOCAL    = 0, 
401         NDMP_ADDR_TCP      = 1, 
402         NDMP_ADDR_FC       = 2,         /* NDMP V2,3 */
403         NDMP_ADDR_IPC      = 3 
404 }; 
406 struct ndmp_config_get_mover_type_reply
408         ndmp_error              error;
409         ndmp_addr_type          methods<>;
412 /* NDMP_CONFIG_GET_AUTH_ATTR */
413 struct ndmp_config_get_auth_attr_request
415         ndmp_auth_type  auth_type;
418 struct ndmp_config_get_auth_attr_reply
420         ndmp_error              error;
421         ndmp_auth_attr          server_attr;
425 /*************************/
426 /* CONFIG INTERFACE (V3) */
427 /*************************/
429 /* NDMP_CONFIG_GET_HOST_INFO */
430 /* no request arguments */
432 struct ndmp_config_get_host_info_reply_v3
434         ndmp_error      error;
435         string          hostname<>;     /* host name */
436         string          os_type<>;      /* The operating system type (i.e. SOLARIS) */
437         string          os_vers<>;      /* The version number of the OS (i.e. 2.5) */
438         string          hostid<>;
441 /* NDMP_CONFIG_GET_CONNECTION_TYPE */
442 /* no request arguments */
444 struct ndmp_config_get_connection_type_reply_v3
446         ndmp_error      error;
447         ndmp_addr_type  addr_types<>;
450 /* NDMP_CONFIG_GET_AUTH_ATTR - same as V2 */
452 /* NDMP_CONFIG_GET_SERVER_INFO */
453 /* no requset arguments */
455 struct ndmp_config_get_server_info_reply_v3
457         ndmp_error      error;
458         string          vendor_name<>;
459         string          product_name<>;
460         string          revision_number<>;
461         ndmp_auth_type  auth_type<>;
464 /* Backup type attributes */
465 const NDMP_BUTYPE_BACKUP_FILE_HISTORY    = 0x0001;      /* NDMP V2,3 */
466 const NDMP_BUTYPE_BACKUP_FILELIST        = 0x0002; 
467 const NDMP_BUTYPE_RECOVER_FILELIST       = 0x0004; 
468 const NDMP_BUTYPE_BACKUP_DIRECT          = 0x0008; 
469 const NDMP_BUTYPE_RECOVER_DIRECT         = 0x0010; 
470 const NDMP_BUTYPE_BACKUP_INCREMENTAL     = 0x0020; 
471 const NDMP_BUTYPE_RECOVER_INCREMENTAL    = 0x0040; 
472 const NDMP_BUTYPE_BACKUP_UTF8            = 0x0080; 
473 const NDMP_BUTYPE_RECOVER_UTF8           = 0x0100; 
474 const NDMP_BUTYPE_BACKUP_FH_FILE         = 0x0200;      /* NDMP V4 */
475 const NDMP_BUTYPE_BACKUP_FH_DIR          = 0x0400;      /* NDMP V4 */
476 const NDMP_BUTYPE_RECOVER_FILEHIST       = 0x0800;      /* NDMP V4 */
477 const NDMP_BUTYPE_RECOVER_FH_FILE        = 0x1000;      /* NDMP V4 */
478 const NDMP_BUTYPE_RECOVER_FH_DIR         = 0x2000;      /* NDMP V4 */
481 struct ndmp_butype_info
483         string          butype_name<>;
484         ndmp_pval       default_env<>;
485         u_long          attrs;
488 /* NDMP_CONFIG_GET_BUTYPE_INFO */
489 /* no request arguments */
491 struct ndmp_config_get_butype_info_reply_v3 
493         ndmp_error              error;
494         ndmp_butype_info        butype_info<>;
497 /* invalid bit */
498 const   NDMP_FS_INFO_TOTAL_SIZE_INVALID         = 0x00000001;
499 const   NDMP_FS_INFO_USED_SIZE_INVALID          = 0x00000002;
500 const   NDMP_FS_INFO_AVAIL_SIZE_INVALID         = 0x00000004;
501 const   NDMP_FS_INFO_TOTAL_INODES_INVALID       = 0x00000008;
502 const   NDMP_FS_INFO_USED_INODES_INVALID        = 0x00000010;
504 struct ndmp_fs_info_v3
506         u_long          invalid;
507         string          fs_type<>;
508         string          fs_logical_device<>;
509         string          fs_physical_device<>;
510         ndmp_u_quad     total_size;
511         ndmp_u_quad     used_size;
512         ndmp_u_quad     avail_size;
513         ndmp_u_quad     total_inodes;
514         ndmp_u_quad     used_inodes;
515         ndmp_pval       fs_env<>;
516         string          fs_status<>;
519 /* NDMP_CONFIG_GET_FS_INFO */
520 /* no request arguments */
522 struct ndmp_config_get_fs_info_reply_v3
524         ndmp_error              error;
525         ndmp_fs_info_v3         fs_info<>;
528 /* NDMP_CONFIG_GET_TAPE_INFO */
529 /* no request arguments */
531 /* tape attributes */
532 const NDMP_TAPE_ATTR_REWIND = 0x00000001; 
533 const NDMP_TAPE_ATTR_UNLOAD = 0x00000002; 
534 const NDMP_TAPE_ATTR_RAW    = 0x00000004; 
537 struct ndmp_device_capability_v3
539         string          device<>;
540         u_long          attr;
541         ndmp_pval       capability<>;
544 struct ndmp_device_info_v3
546         string                          model<>;
547         ndmp_device_capability_v3       caplist<>;
550 struct ndmp_config_get_tape_info_reply_v3 
552         ndmp_error              error;
553         ndmp_device_info_v3     tape_info<>;
557 /* NDMP_CONFIG_GET_SCSI_INFO */
559 /* jukebox attributes */
560 struct ndmp_config_get_scsi_info_reply_v3
562         ndmp_error              error;
563         ndmp_device_info_v3     scsi_info<>;
567 /*************************/
568 /* CONFIG INTERFACE (V4) */
569 /*************************/
571 /* NDMP_CONFIG_GET_HOST_INFO - same as V3 */
573 /* NDMP_CONFIG_GET_SERVER_INFO - same as V3 */
575 /* NDMP_CONFIG_GET_CONNECTION_TYPE - same as V3 */
577 /* NDMP_CONFIG_GET_AUTH_ATTR - same as V3 */
580 struct ndmp_config_get_butype_info_reply_v4
582         ndmp_error            error; 
583         ndmp_butype_info      butype_info<>; 
584 }; 
587 /* NDMP_CONFIG_GET_FS_INFO - same as V3 */
589 struct ndmp_class_list  
591         u_short      ext_class_id; 
592         u_short      ext_version<>; 
593 };  
595 struct ndmp_class_version 
597         u_short      ext_class_id; 
598         u_short      ext_version; 
599 }; 
601 struct ndmp_config_get_ext_list_reply 
603         ndmp_error         error; 
604         ndmp_class_list    class_list<>; 
605 }; 
607 struct ndmp_config_set_ext_list_request 
609         ndmp_class_version    ndmp_selected_ext<>; 
610 };  
612 struct ndmp_config_set_ext_list_reply 
614         ndmp_error      error; 
615 }; 
618 /***********************/
619 /* SCSI INTERFACE (V2) */
620 /***********************/
622 /* NDMP_SCSI_OPEN */
623 struct ndmp_scsi_open_request
625         ndmp_scsi_device        device;
628 struct ndmp_scsi_open_reply
630         ndmp_error      error;
633 /* NDMP_SCSI_CLOSE */
634 /* no request arguments */
636 struct ndmp_scsi_close_reply
638         ndmp_error      error;
641 /* NDMP_SCSI_GET_STATE */
642 /* no request arguments */
644 struct ndmp_scsi_get_state_reply
646         ndmp_error      error;
647         short           target_controller;
648         short           target_id;
649         short           target_lun;
652 /* NDMP_SCSI_SET_TARGET */
653 struct ndmp_scsi_set_target_request
655         ndmp_scsi_device        device;
656         u_short                 target_controller;
657         u_short                 target_id;
658         u_short                 target_lun;
661 struct ndmp_scsi_set_target_reply
663         ndmp_error      error;
666 /* NDMP_SCSI_RESET_DEVICE */
667 /* no request arguments */
669 struct ndmp_scsi_reset_device_reply
671         ndmp_error      error;
674 /* NDMP_SCSI_RESET_BUS */
675 /* no request arguments */
677 struct ndmp_scsi_reset_bus_reply
679         ndmp_error      error;
682 /* NDMP_SCSI_EXECUTE_CDB */
683 const NDMP_SCSI_DATA_IN         = 0x00000001;   /* Expect data from SCSI device */
684 const NDMP_SCSI_DATA_OUT        = 0x00000002;   /* Transfer data to SCSI device */
686 struct ndmp_execute_cdb_request
688         u_long  flags;
689         u_long  timeout;
690         u_long  datain_len;             /* Set for expected datain */
691         opaque  cdb<>;
692         opaque  dataout<>;
695 struct ndmp_execute_cdb_reply
697         ndmp_error      error;
698         u_char          status;         /* SCSI status bytes */
699         u_long          dataout_len;
700         opaque          datain<>;       /* SCSI datain */
701         opaque          ext_sense<>;    /* Extended sense data */
705 /***********************/
706 /* SCSI INTERFACE (V3) */
707 /***********************/
709 /* NDMP_SCSI_OPEN */
710 struct ndmp_scsi_open_request_v3
712         string  device<>;
714 /* reply the same as V2 */
717 /* NDMP_SCSI_CLOSE - same as V2 */
719 /* NDMP_SCSI_GET_STATE - same as V2 */
721 struct ndmp_scsi_set_target_request_v3
723         string          device<>;
724         u_short         target_controller;
725         u_short         target_id;
726         u_short         target_lun;
728 /* reply the same as V2 */
731 /* NDMP_SCSI_RESET_DEVICE - same as V2 */
733 /* NDMP_SCSI_RESET_BUS - same as V2 */
735 /* NDMP_SCSI_EXECUTE_CDB - same as V2 */
738 /***********************/
739 /* SCSI INTERFACE (V4) */
740 /***********************/
742 /* NDMP_SCSI_OPEN - same as V3 */
744 /* NDMP_SCSI_CLOSE - same as V3 */
746 /* NDMP_SCSI_GET_STATE - same as V3 */
748 /* NDMP_SCSI_RESET_DEVICE - same as V3 */
750 /* NDMP_SCSI_EXECUTE_CDB - same as V3 */
753 /***********************/
754 /* TAPE INTERFACE (V2) */
755 /***********************/
757 /* NDMP_TAPE_OPEN */
758 enum ndmp_tape_open_mode
760         NDMP_TAPE_READ_MODE,
761         NDMP_TAPE_WRITE_MODE,
762         NDMP_TAPE_RAW_MODE,                             /* NDMP V4 */
763         NDMP_TAPE_RAW1_MODE = 0x7fffffff,               /* NDMP V3 */
764         NDMP_TAPE_RAW2_MODE = NDMP_TAPE_RAW_MODE        /* NDMP V3 */
765         
768 struct ndmp_tape_open_request
770         ndmp_tape_device        device;
771         ndmp_tape_open_mode     mode;
774 struct ndmp_tape_open_reply
776         ndmp_error      error;
779 /* NDMP_TAPE_CLOSE */
780 /* no request arguments */
781 struct ndmp_tape_close_reply
783         ndmp_error      error;
786 /* NDMP_TAPE_GET_STATE */
787 /* no request arguments */
788 const NDMP_TAPE_NOREWIND        = 0x0008;       /* non-rewind device */
789 const NDMP_TAPE_WR_PROT         = 0x0010;       /* write-protected */
790 const NDMP_TAPE_ERROR           = 0x0020;       /* media error */
791 const NDMP_TAPE_UNLOAD          = 0x0040;       /* tape will be unloaded when the device is closed */
793 struct ndmp_tape_get_state_reply
795         ndmp_error      error;
796         u_long          flags;
797         u_long          file_num;
798         u_long          soft_errors;
799         u_long          block_size;
800         u_long          blockno;
801         ndmp_u_quad     total_space;
802         ndmp_u_quad     space_remain;
805 enum ndmp_tape_mtio_op 
807         NDMP_MTIO_FSF  = 0, 
808         NDMP_MTIO_BSF  = 1, 
809         NDMP_MTIO_FSR  = 2, 
810         NDMP_MTIO_BSR  = 3, 
811         NDMP_MTIO_REW  = 4, 
812         NDMP_MTIO_EOF  = 5, 
813         NDMP_MTIO_OFF  = 6, 
814         NDMP_MTIO_TUR  = 7      /* NDMP V4 */
815 }; 
818 struct ndmp_tape_mtio_request
820         ndmp_tape_mtio_op       tape_op;
821         u_long                  count;
824 struct ndmp_tape_mtio_reply
826         ndmp_error      error;
827         u_long          resid_count;
830 /* NDMP_TAPE_WRITE */
831 struct ndmp_tape_write_request
833         opaque  data_out<>;
836 struct ndmp_tape_write_reply
838         ndmp_error      error;
839         u_long          count;
842 /* NDMP_TAPE_READ */
843 struct ndmp_tape_read_request
845         u_long  count;
848 struct ndmp_tape_read_reply
850         ndmp_error      error;
851         opaque          data_in<>;
854 /* NDMP_TAPE_EXECUTE_CDB */
855 typedef ndmp_execute_cdb_request        ndmp_tape_execute_cdb_request;
856 typedef ndmp_execute_cdb_reply          ndmp_tape_execute_cdb_reply;
859 /***********************/
860 /* TAPE INTERFACE (V3) */
861 /***********************/
863 /* NDMP_TAPE_OPEN */
864 struct ndmp_tape_open_request_v3
866         string  device<>;
867         ndmp_tape_open_mode     mode;
869 /* reply the same as V2 */
872 /* NDMP_TAPE_CLOSE - same as V2 */
874 /* NDMP_TAPE_GET_STATE */
875 /* no request arguments */
876 const NDMP_TAPE_STATE_NOREWIND  = 0x0008;       /* non-rewind device */
877 const NDMP_TAPE_STATE_WR_PROT   = 0x0010;       /* write-protected */
878 const NDMP_TAPE_STATE_ERROR     = 0x0020;       /* media error */
879 const NDMP_TAPE_STATE_UNLOAD    = 0x0040;       /* tape will be unloaded when the device is closed */
881 /* invalid bit */
882 const NDMP_TAPE_STATE_FILE_NUM_INVALID          = 0x00000001;
883 const NDMP_TAPE_STATE_SOFT_ERRORS_INVALID       = 0x00000002;
884 const NDMP_TAPE_STATE_BLOCK_SIZE_INVALID        = 0x00000004;
885 const NDMP_TAPE_STATE_BLOCKNO_INVALID           = 0x00000008;
886 const NDMP_TAPE_STATE_TOTAL_SPACE_INVALID       = 0x00000010;
887 const NDMP_TAPE_STATE_SPACE_REMAIN_INVALID      = 0x00000020;
888 const NDMP_TAPE_STATE_PARTITION_INVALID         = 0x00000040;
890 struct ndmp_tape_get_state_reply_v3
892         u_long          invalid;
893         ndmp_error      error;
894         u_long          flags;
895         u_long          file_num;
896         u_long          soft_errors;
897         u_long          block_size;
898         u_long          blockno;
899         ndmp_u_quad     total_space;
900         ndmp_u_quad     space_remain;
901         u_long          partition;
904 /* NDMP_TAPE_MTIO - same as V2 */
906 /* NDMP_TAPE_WRITE - same as V2 */
908 /* NDMP_TAPE_READ - same as V2 */
910 /* NDMP_TAPE_EXECUTE_CDB - same as V2 */
913 /***********************/
914 /* TAPE INTERFACE (V4) */
915 /***********************/
917 /* NDMP_TAPE_OPEN - same as V3 */
919 /* NDMP_TAPE_CLOSE - same as V3 */
921 struct ndmp_tape_get_state_reply_v4
923         u_long       unsupported; 
924         ndmp_error   error; 
925         u_long       flags; 
926         u_long       file_num; 
927         u_long       soft_errors; 
928         u_long       block_size; 
929         u_long       blockno; 
930         ndmp_u_quad  total_space; 
931         ndmp_u_quad  space_remain; 
932 }; 
934 /* NDMP_TAPE_MTIO - same as V3 */
936 /* NDMP_TAPE_WRITE - same as V3 */
938 /* NDMP_TAPE_READ - same as V3 */
940 /* NDMP_TAPE_EXECUTE_CDB - same as V3 */
943 /************************/
944 /* MOVER INTERFACE (V2) */
945 /************************/
946 enum ndmp_mover_mode  
948         NDMP_MOVER_MODE_READ            = 0,  
949         NDMP_MOVER_MODE_WRITE           = 1,  
950         NDMP_MOVER_MODE_NOACTION        = 2     /* NDMP V4 */
951 };  
953 enum ndmp_mover_state 
955         NDMP_MOVER_STATE_IDLE    = 0, 
956         NDMP_MOVER_STATE_LISTEN  = 1, 
957         NDMP_MOVER_STATE_ACTIVE  = 2, 
958         NDMP_MOVER_STATE_PAUSED  = 3, 
959         NDMP_MOVER_STATE_HALTED  = 4 
960 }; 
962 enum ndmp_mover_pause_reason 
964         NDMP_MOVER_PAUSE_NA    = 0, 
965         NDMP_MOVER_PAUSE_EOM   = 1, 
966         NDMP_MOVER_PAUSE_EOF   = 2, 
967         NDMP_MOVER_PAUSE_SEEK  = 3, 
968         NDMP_MOVER_PAUSE_MEDIA_ERROR = 4,       /* NDMP V2,3 */
969         NDMP_MOVER_PAUSE_EOW  = 5 
970 }; 
972 enum ndmp_mover_halt_reason 
974         NDMP_MOVER_HALT_NA             = 0, 
975         NDMP_MOVER_HALT_CONNECT_CLOSED = 1, 
976         NDMP_MOVER_HALT_ABORTED        = 2, 
977         NDMP_MOVER_HALT_INTERNAL_ERROR = 3, 
978         NDMP_MOVER_HALT_CONNECT_ERROR  = 4, 
979         NDMP_MOVER_HALT_MEDIA_ERROR    = 5      /* NDMP V4 */
980 }; 
983 /* NDMP_MOVER_GET_STATE */
985 /* no request arguments */
986 struct ndmp_mover_get_state_reply
988         ndmp_error              error;
989         ndmp_mover_state        state;
990         ndmp_mover_pause_reason pause_reason;
991         ndmp_mover_halt_reason  halt_reason;
992         u_long                  record_size;
993         u_long                  record_num;
994         ndmp_u_quad             data_written;
995         ndmp_u_quad             seek_position;
996         ndmp_u_quad             bytes_left_to_read;
997         ndmp_u_quad             window_offset;
998         ndmp_u_quad             window_length;
1001 /* NDMP_MOVER_LISTEN */
1003 struct ndmp_tcp_addr
1005         u_long  ip_addr;
1006         u_short port;
1009 union ndmp_mover_addr switch (ndmp_addr_type addr_type)
1011         case NDMP_ADDR_LOCAL:
1012                 void;
1013         case NDMP_ADDR_TCP:
1014           ndmp_tcp_addr addr;
1017 struct ndmp_mover_listen_request
1019         ndmp_mover_mode         mode;
1020         ndmp_addr_type          addr_type;
1023 struct ndmp_mover_listen_reply
1025         ndmp_error              error;
1026         ndmp_mover_addr         mover;
1029 /* NDMP_MOVER_SET_RECORD_SIZE */
1030 struct ndmp_mover_set_record_size_request
1032         u_long  len;
1035 struct ndmp_mover_set_record_size_reply
1037         ndmp_error      error;
1040 /* NDMP_MOVER_SET_WINDOW */
1041 struct ndmp_mover_set_window_request
1043         ndmp_u_quad     offset;
1044         ndmp_u_quad     length;
1047 struct ndmp_mover_set_window_reply
1049         ndmp_error      error;
1052 /* NDMP_MOVER_CONTINUE */
1053 /* no request arguments */
1055 struct ndmp_mover_continue_reply
1057         ndmp_error      error;
1061 /* NDMP_MOVER_ABORT */
1062 /* no request arguments */
1063 struct ndmp_mover_abort_reply
1065         ndmp_error      error;
1068 /* NDMP_MOVER_STOP */
1069 /* no request arguments */
1071 struct ndmp_mover_stop_reply
1073         ndmp_error      error;
1076 /* NDMP_MOVER_READ */
1077 struct ndmp_mover_read_request
1079         ndmp_u_quad     offset;
1080         ndmp_u_quad     length;
1083 struct ndmp_mover_read_reply
1085         ndmp_error      error;
1088 /* NDMP_MOVER_CLOSE */
1089 /* no request arguments */
1091 struct ndmp_mover_close_reply
1093         ndmp_error      error;
1097 /************************/
1098 /* MOVER INTERFACE (V3) */
1099 /************************/
1101 /* NDMP_MOVER_STATE - same as V2 */
1103 /* NDMP_MOVER_PAUSE_REASON - same as V2 */
1105 /* NDMP_MOVER_HALT_REASON - same as V2 */
1107 /* NDMP_MOVER_MODE - same as V2 */
1109 struct ndmp_fc_addr_v3
1111         u_long  loop_id;
1114 struct ndmp_ipc_addr_v3
1116         opaque comm_data<>;
1119 union ndmp_addr_v3 switch (ndmp_addr_type addr_type)
1121         case NDMP_ADDR_LOCAL:
1122                 void;
1123         case NDMP_ADDR_TCP:
1124                 ndmp_tcp_addr           tcp_addr;
1125         case NDMP_ADDR_FC:
1126                 ndmp_fc_addr_v3         fc_addr;
1127         case NDMP_ADDR_IPC:
1128                 ndmp_ipc_addr_v3        ipc_addr;
1129         
1135 % * Macros to access the port and IP address of TCP addresses.
1136 % */
1137 %#ifndef tcp_ip_v3
1138 %#define tcp_ip_v3      ndmp_addr_v3_u.tcp_addr.ip_addr
1139 %#endif /* tcp_ip_v3 */
1140 %#ifndef tcp_port_v3
1141 %#define tcp_port_v3    ndmp_addr_v3_u.tcp_addr.port
1142 %#endif /* tcp_port_v3 */
1144 /* NDMP_MOVER_GET_STATE */
1145 /* no request arguments */
1147 struct ndmp_mover_get_state_reply_v3
1149         ndmp_error              error;
1150         ndmp_mover_state        state;
1151         ndmp_mover_pause_reason pause_reason;
1152         ndmp_mover_halt_reason  halt_reason;
1153         u_long                  record_size;
1154         u_long                  record_num;
1155         ndmp_u_quad             data_written;
1156         ndmp_u_quad             seek_position;
1157         ndmp_u_quad             bytes_left_to_read;
1158         ndmp_u_quad             window_offset;
1159         ndmp_u_quad             window_length;
1160         ndmp_addr_v3            data_connection_addr;
1163 /* NDMP_MOVER_LISTEN - same as v2 */
1165 struct ndmp_mover_listen_reply_v3
1167         ndmp_error      error;
1168         ndmp_addr_v3    data_connection_addr;
1171 /* NDMP_MOVER_CONNECT */
1172 struct ndmp_mover_connect_request_v3
1174         ndmp_mover_mode         mode;
1175         ndmp_addr_v3            addr;
1178 struct ndmp_mover_connect_reply_v3
1180         ndmp_error      error;
1183 /* NDMP_MOVER_SET_RECORD_SIZE - same as V2 */
1185 /* NDMP_MOVER_SET_WINDOW - same as V2 */
1187 /* NDMP_MOVER_CONTINUE - same as V2 */
1189 /* NDMP_MOVER_ABORT - same as V2 */
1191 /* NDMP_MOVER_STOP - same as V2 */
1193 /* NDMP_MOVER_READ - same as V2 */
1195 /* NDMP_MOVER_CLOSE - same as V2 */
1198 /************************/
1199 /* MOVER INTERFACE (V4) */
1200 /************************/
1202 /* NDMP_MOVER_SET_RECORD_SIZE - same as V3 */
1204 /* NDMP_MOVER_SET_WINDOW_SIZE - same as V3 */
1209 % * Macros to access the port and IP address of TCP addresses.
1210 % */
1211 %#ifndef tcp_addr_v4
1212 %#define tcp_addr_v4    ndmp_addr_v4_u.tcp_addr.tcp_addr_val
1213 %#endif /* tcp_addr_v4 */
1214 %#ifndef tcp_ip_v4
1215 %#define tcp_ip_v4(n)   ndmp_addr_v4_u.tcp_addr.tcp_addr_val[n].ip_addr
1216 %#endif /* tcp_ip_v4 */
1217 %#ifndef tcp_port_v4
1218 %#define tcp_port_v4(n) ndmp_addr_v4_u.tcp_addr.tcp_addr_val[n].port
1219 %#endif /* tcp_port_v4 */
1220 %#ifndef tcp_len_v4
1221 %#define tcp_len_v4     ndmp_addr_v4_u.tcp_addr.tcp_addr_len
1222 %#endif /* tcp_len_v4 */
1223 %#ifndef tcp_env_v4
1224 %#define tcp_env_v4(n)  ndmp_addr_v4_u.tcp_addr.tcp_addr_val[n].addr_env
1225 %#endif /* tcp_env_v4 */
1227 struct ndmp_tcp_addr_v4
1229         u_long       ip_addr; 
1230         u_short      port; 
1231         ndmp_pval    addr_env<>; 
1232 }; 
1234 union ndmp_addr_v4
1235 switch (ndmp_addr_type addr_type)  
1237         case NDMP_ADDR_LOCAL: 
1238                 void; 
1239         case NDMP_ADDR_TCP: 
1240                 ndmp_tcp_addr_v4  tcp_addr<>; 
1241         case NDMP_ADDR_IPC: 
1242                 ndmp_ipc_addr_v3  ipc_addr; 
1243 };  
1245 struct ndmp_mover_connect_request_v4
1247         ndmp_mover_mode       mode; 
1248         ndmp_addr_v4          addr; 
1249 }; 
1251 struct ndmp_mover_listen_reply_v4
1253         ndmp_error           error; 
1254         ndmp_addr_v4         connect_addr; 
1255 }; 
1257 /* NDMP_MOVER_READ - same as v3 */
1259 struct ndmp_mover_get_state_reply_v4
1260 {  
1261         ndmp_error               error;  
1262         ndmp_mover_mode          mode;  
1263         ndmp_mover_state         state;  
1264         ndmp_mover_pause_reason  pause_reason;  
1265         ndmp_mover_halt_reason   halt_reason;  
1266         u_long                   record_size;  
1267         u_long                   record_num;  
1268         ndmp_u_quad              bytes_moved;  
1269         ndmp_u_quad              seek_position;  
1270         ndmp_u_quad              bytes_left_to_read;  
1271         ndmp_u_quad              window_offset;  
1272         ndmp_u_quad              window_length;  
1273         ndmp_addr_v4             data_connection_addr;  
1274 };  
1276 /* NDMP_MOVER_CONTINUE - same as V3 */
1278 /* NDMP_MOVER_CLOSE - same as V3 */
1280 /* NDMP_MOVER_ABORT - same as V3 */
1282 /* NDMP_MOVER_STOP - same as V3 */
1285 /***********************/
1286 /* DATA INTERFACE (V2) */
1287 /***********************/
1289 /* NDMP_DATA_GET_STATE */
1290 /* no request arguments */
1292 enum ndmp_data_operation  
1293 {  
1294         NDMP_DATA_OP_NOACTION           = 0,  
1295         NDMP_DATA_OP_BACKUP             = 1,  
1296         NDMP_DATA_OP_RECOVER            = 2,  
1297         NDMP_DATA_OP_RECOVER_FILEHIST   = 3     /* NDMP V4 */
1298 }; 
1300 enum ndmp_data_state  
1302         NDMP_DATA_STATE_IDLE      = 0, 
1303         NDMP_DATA_STATE_ACTIVE    = 1, 
1304         NDMP_DATA_STATE_HALTED    = 2, 
1305         NDMP_DATA_STATE_LISTEN    = 3,          /* NDMP V3 */
1306         NDMP_DATA_STATE_CONNECTED = 4           /* NDMP V3 */
1307 };  
1309 enum ndmp_data_halt_reason  
1311         NDMP_DATA_HALT_NA             = 0, 
1312         NDMP_DATA_HALT_SUCCESSFUL     = 1, 
1313         NDMP_DATA_HALT_ABORTED        = 2, 
1314         NDMP_DATA_HALT_INTERNAL_ERROR = 3, 
1315         NDMP_DATA_HALT_CONNECT_ERROR  = 4 
1316 }; 
1318 struct ndmp_data_get_state_reply
1320         ndmp_error              error;
1321         ndmp_data_operation     operation;
1322         ndmp_data_state         state;
1323         ndmp_data_halt_reason   halt_reason;
1324         ndmp_u_quad             bytes_processed;
1325         ndmp_u_quad             est_bytes_remain;
1326         u_long                  est_time_remain;
1327         ndmp_mover_addr         mover;
1328         ndmp_u_quad             read_offset;
1329         ndmp_u_quad             read_length;
1332 /* NDMP_DATA_START_BACKUP */
1334 struct ndmp_data_start_backup_request
1336         ndmp_mover_addr         mover;          /* mover to receive data */
1337         string                  bu_type<>;      /* backup method to use */
1338         ndmp_pval               env<>;          /* Parameters that may modify backup */
1341 struct ndmp_data_start_backup_reply
1343         ndmp_error      error;
1346 /* NDMP_DATA_START_RECOVER */
1347 struct ndmp_name
1349         string          name<>;
1350         string          dest<>;
1351         u_short         ssid;
1352         ndmp_u_quad     fh_info;
1355 struct ndmp_data_start_recover_request
1357         ndmp_mover_addr         mover;
1358         ndmp_pval               env<>;
1359         ndmp_name               nlist<>;
1360         string                  bu_type<>;
1364 struct ndmp_data_start_recover_reply
1366         ndmp_error      error;
1369 /* NDMP_DATA_ABORT */
1370 /* no request arguments */
1372 struct ndmp_data_abort_reply
1374         ndmp_error      error;
1377 /* NDMP_DATA_STOP */
1378 /* no request arguments */
1380 struct ndmp_data_stop_reply
1382         ndmp_error      error;
1385 /* NDMP_DATA_GET_ENV */
1386 /* no request arguments */
1388 struct ndmp_data_get_env_reply
1390         ndmp_error      error;
1391         ndmp_pval       env<>;
1393 /* no reply arguments */
1395 struct ndmp_notify_data_halted_request
1397         ndmp_data_halt_reason           reason;
1398         string                          text_reason<>;
1400 /* no reply arguments */
1403 /***********************/
1404 /* DATA INTERFACE (V3) */
1405 /***********************/
1407 /* NDMP_DATA_GET_STATE */
1408 /* no request arguments */
1409 /* ndmp_data_operation the same as V2 */
1411 /* invalid bit */
1412 const NDMP_DATA_STATE_EST_BYTES_REMAIN_INVALID  = 0x00000001;
1413 const NDMP_DATA_STATE_EST_TIME_REMAIN_INVALID   = 0x00000002;
1415 struct ndmp_data_get_state_reply_v3
1417         u_long                  invalid;
1418         ndmp_error              error;
1419         ndmp_data_operation     operation;
1420         ndmp_data_state         state;
1421         ndmp_data_halt_reason   halt_reason;
1422         ndmp_u_quad             bytes_processed;
1423         ndmp_u_quad             est_bytes_remain;
1424         u_long                  est_time_remain;
1425         ndmp_addr_v3            data_connection_addr;
1426         ndmp_u_quad             read_offset;
1427         ndmp_u_quad             read_length;
1430 /* NDMP_DATA_START_BACKUP */
1431 struct ndmp_data_start_backup_request_v3
1433         string          bu_type<>;      /* backup method to use */
1434         ndmp_pval       env<>;          /* Parameters that may modify backup */
1437 /* NDMP_DATA_START_RECOVER */
1438 struct ndmp_name_v3
1440         string          original_path<>;
1441         string          destination_dir<>;
1442         string          new_name<>;     /* Direct access restore only */
1443         string          other_name<>;   /* Direct access restore only */
1444         ndmp_u_quad     node;           /* Direct access restore only */
1445         ndmp_u_quad     fh_info;        /* Direct access restore only */
1448 struct ndmp_data_start_recover_request_v3
1450         ndmp_pval       env<>;
1451         ndmp_name_v3    nlist<>;
1452         string          bu_type<>;
1455 /* NDMP_DATA_ABORT - same as V2 */
1457 /* NDMP_DATA_STOP - same as V2 */
1459 /* NDMP_DATA_GET_ENV - same as V2 */
1461 /* NDMP_DATA_LISTEN */
1462 struct ndmp_data_listen_request_v3
1464         ndmp_addr_type  addr_type;
1467 struct ndmp_data_listen_reply_v3
1469         ndmp_error      error;
1470         ndmp_addr_v3    data_connection_addr;
1473 /* NDMP_DATA_CONNECT */
1474 struct ndmp_data_connect_request_v3
1476         ndmp_addr_v3    addr;
1479 struct ndmp_data_connect_reply_v3
1481         ndmp_error      error;
1485 /***********************/
1486 /* DATA INTERFACE (V4) */
1487 /***********************/
1489 struct ndmp_data_get_state_reply_v4
1491         u_long                    unsupported; 
1492         ndmp_error                error; 
1493         ndmp_data_operation       operation; 
1494         ndmp_data_state           state; 
1495         ndmp_data_halt_reason     halt_reason; 
1496         ndmp_u_quad               bytes_processed; 
1497         ndmp_u_quad               est_bytes_remain; 
1498         u_long                    est_time_remain; 
1499         ndmp_addr_v4              data_connection_addr; 
1500         ndmp_u_quad               read_offset; 
1501         ndmp_u_quad               read_length; 
1502 }; 
1504 struct ndmp_data_listen_reply_v4
1506         ndmp_error   error; 
1507         ndmp_addr_v4    connect_addr; 
1508 }; 
1510 struct ndmp_data_connect_request_v4
1512         ndmp_addr_v4   addr; 
1513 };  
1516 /* NDMP_DATA_START_BACKUP - same as V3 */
1518 /* NDMP_DATA_START_RECOVER - same as V3 */
1520 /* NDMP_DATA_ABORT - same as V3 */
1522 /* NDMP_DATA_STOP - same as V3 */
1524 /* NDMP_DATA_GET_ENV - same as V3 */
1527 /*************************/
1528 /* NOTIFY INTERFACE (V2) */
1529 /*************************/
1531 /* NDMP_NOTIFY_CONNECTED */
1532 enum ndmp_connect_reason
1534         NDMP_CONNECTED,         /* Connect successfully */
1535         NDMP_SHUTDOWN,          /* Connection shutdown */
1536         NDMP_REFUSED            /* reach the maximum number of connections */
1539 struct ndmp_notify_connected_request
1541         ndmp_connect_reason     reason;
1542         u_short                 protocol_version;
1543         string                  text_reason<>;
1546 /* NDMP_NOTIFY_MOVER_PAUSED */
1547 struct ndmp_notify_mover_paused_request
1549         ndmp_mover_pause_reason reason;
1550         ndmp_u_quad             seek_position;
1552 /* no reply arguments */
1554 /* NDMP_NOTIFY_MOVER_HALTED */
1555 struct ndmp_notify_mover_halted_request
1557         ndmp_mover_halt_reason  reason;
1558         string                  text_reason<>;
1560 /* no reply arguments */
1562 /* NDMP_NOTIFY_DATA_READ */
1563 struct ndmp_notify_data_read_request
1565         ndmp_u_quad     offset;
1566         ndmp_u_quad     length;
1568 /* no reply arguments */
1571 /*************************/
1572 /* NOTIFY INTERFACE (V3) */
1573 /*************************/
1575 /* NDMP_NOTIFY_DATA_HALTED - same as V2 */
1577 /* NDMP_NOTIFY_CONNECTED - same as V2 */
1579 /* NDMP_NOTIFY_MOVER_PAUSED - same as V2 */
1581 /* NDMP_NOTIFY_MOVER_HALTED - same as V2 */
1583 /* NDMP_NOTIFY_DATA_READ - same as V2 */
1586 /*************************/
1587 /* NOTIFY INTERFACE (V4) */
1588 /*************************/
1590 struct ndmp_notify_data_halted_request_v4
1592         ndmp_data_halt_reason   reason; 
1593 }; 
1595 /* NDMP_NOTIFY_CONNECTION_STATUS - same as V3 */
1597 struct ndmp_notify_mover_halted_request_v4
1599         ndmp_mover_halt_reason      reason; 
1600 }; 
1602 /* NDMP_NOTIFY_MOVER_PAUSED - same as V3 */
1604 /* NDMP_NOTIFY_DATA_READ - same as V3 */
1607 /**********************/
1608 /* LOG INTERFACE (V2) */
1609 /**********************/
1611 /* NDMP_LOG_LOG */
1612 struct ndmp_log_log_request
1614         string  entry<>;
1616 /* no reply arguments */
1618 /* NDMP_LOG_DEBUG */
1619 enum ndmp_debug_level
1621         NDMP_DBG_USER_INFO,
1622         NDMP_DBG_USER_SUMMARY,
1623         NDMP_DBG_USER_DETAIL,
1624         NDMP_DBG_DIAG_INFO,
1625         NDMP_DBG_DIAG_SUMMARY,
1626         NDMP_DBG_DIAG_DETAIL,
1627         NDMP_DBG_PROG_INFO,
1628         NDMP_DBG_PROG_SUMMARY,
1629         NDMP_DBG_PROG_DETAIL
1632 struct ndmp_log_debug_request
1634         ndmp_debug_level        level;
1635         string                  message<>;
1637 /* no reply arguments */
1639 /* NDMP_LOG_FILE */
1640 struct ndmp_log_file_request
1642         string          name<>;
1643         u_short         ssid;
1644         ndmp_error      error;
1646 /* no reply arguments */
1649 /**********************/
1650 /* LOG INTERFACE (V3) */
1651 /**********************/
1653 /* NDMP_LOG_MESSAGE */
1654 enum ndmp_log_type 
1656         NDMP_LOG_NORMAL  = 0, 
1657         NDMP_LOG_DEBUG   = 1, 
1658         NDMP_LOG_ERROR   = 2, 
1659         NDMP_LOG_WARNING = 3 
1660 }; 
1662 struct ndmp_log_message_request_v3
1664         ndmp_log_type           log_type;
1665         u_long                  message_id;
1666         string                  entry<>;
1668 /* no reply arguments */
1670 /* NDMP_LOG_FILE */
1671 struct ndmp_log_file_request_v3
1673         string          name<>;
1674         ndmp_error      error;
1676 /* no reply arguments */
1679 /**********************/
1680 /* LOG INTERFACE (V4) */
1681 /**********************/
1683 enum ndmp_has_associated_message 
1685         NDMP_NO_ASSOCIATED_MESSAGE     = 0, 
1686         NDMP_HAS_ASSOCIATED_MESSAGE    = 1 
1687 }; 
1689 enum ndmp_recovery_status 
1691         NDMP_RECOVERY_SUCCESSFUL                 = 0,    
1692         NDMP_RECOVERY_FAILED_PERMISSION          = 1, 
1693         NDMP_RECOVERY_FAILED_NOT_FOUND           = 2, 
1694         NDMP_RECOVERY_FAILED_NO_DIRECTORY        = 3, 
1695         NDMP_RECOVERY_FAILED_OUT_OF_MEMORY       = 4, 
1696         NDMP_RECOVERY_FAILED_IO_ERROR            = 5, 
1697         NDMP_RECOVERY_FAILED_UNDEFINED_ERROR     = 6, 
1698         NDMP_RECOVERY_FAILED_FILE_PATH_EXISTS    = 7 
1699 }; 
1701 struct ndmp_log_message_request_v4
1703         ndmp_log_type      log_type; 
1704         u_long             message_id; 
1705         string             entry<>; 
1706         ndmp_has_associated_message associated_message_valid; 
1707         u_long             associated_message_sequence; 
1708 }; 
1710 struct ndmp_log_file_request_v4
1712         string                   name<>; 
1713         ndmp_recovery_status     recovery_status; 
1714 }; 
1718 /*******************************/
1719 /* FILE HISTORY INTERFACE (V2) */
1720 /*******************************/
1722 /* NDMP_FH_ADD_UNIX_PATH */
1723 typedef string ndmp_unix_path<>;
1724 enum ndmp_file_type 
1726         NDMP_FILE_DIR      = 0, 
1727         NDMP_FILE_FIFO     = 1, 
1728         NDMP_FILE_CSPEC    = 2, 
1729         NDMP_FILE_BSPEC    = 3, 
1730         NDMP_FILE_REG      = 4, 
1731         NDMP_FILE_SLINK    = 5, 
1732         NDMP_FILE_SOCK     = 6, 
1733         NDMP_FILE_REGISTRY = 7, 
1734         NDMP_FILE_OTHER    = 8 
1735 }; 
1737 struct ndmp_unix_file_stat
1739         ndmp_file_type  ftype;
1740         u_long                  mtime;
1741         u_long                  atime;
1742         u_long                  ctime;
1743         u_long                  uid;
1744         u_long                  gid;
1745         u_long                  mode;
1746         ndmp_u_quad             size;
1747         ndmp_u_quad             fh_info;
1750 struct ndmp_fh_unix_path
1752         ndmp_unix_path          name;
1753         ndmp_unix_file_stat     fstat;
1756 struct ndmp_fh_add_unix_path_request
1758         ndmp_fh_unix_path       paths<>;
1760 /* no reply arguments */
1762 /* NDMP_FH_ADD_UNIX_DIR */
1763 struct ndmp_fh_unix_dir
1765         ndmp_unix_path          name;
1766         u_long                  node;
1767         u_long                  parent;
1770 struct ndmp_fh_add_unix_dir_request
1772         ndmp_fh_unix_dir        dirs<>;
1774 /* no reply arguments */
1776 /* NDMP_FH_ADD_UNIX_NODE */
1777 struct ndmp_fh_unix_node
1779         ndmp_unix_file_stat     fstat;
1780         u_long                  node;
1783 struct ndmp_fh_add_unix_node_request
1785         ndmp_fh_unix_node       nodes<>;
1787 /* no reply arguments */
1790 /********************************/
1791 /* FILE HISTORY INTERFACE (V3) */
1792 /********************************/
1794 /* NDMP_FH_ADD_FILE */
1795 enum ndmp_fs_type 
1797         NDMP_FS_UNIX   = 0, 
1798         NDMP_FS_NT     = 1, 
1799         NDMP_FS_OTHER  = 2 
1800 }; 
1803 typedef string ndmp_path_v3<>;
1804 struct ndmp_nt_path_v3
1806         ndmp_path_v3    nt_path;
1807         ndmp_path_v3    dos_path;
1810 union ndmp_file_name_v3 switch (ndmp_fs_type fs_type)
1812         case NDMP_FS_UNIX:
1813                 ndmp_path_v3            unix_name;
1814         case NDMP_FS_NT:
1815                 ndmp_nt_path_v3 nt_name;
1816         default:
1817                 ndmp_path_v3            other_name;
1820 /* invalid bit */
1821 const NDMP_FILE_STAT_ATIME_INVALID      = 0x00000001;
1822 const NDMP_FILE_STAT_CTIME_INVALID      = 0x00000002;
1823 const NDMP_FILE_STAT_GROUP_INVALID      = 0x00000004;
1825 struct ndmp_file_stat_v3
1827         u_long                  invalid;
1828         ndmp_fs_type            fs_type;
1829         ndmp_file_type          ftype;
1830         u_long                  mtime;
1831         u_long                  atime;
1832         u_long                  ctime;
1833         u_long                  owner; /* uid for UNIX, owner for NT */
1834         u_long                  group; /* gid for UNIX, NA for NT */
1835         u_long                  fattr; /* mode for UNIX, fattr for NT */
1836         ndmp_u_quad             size;
1837         u_long                  links;
1841 /* one file could have both UNIX and NT name and attributes */
1842 struct ndmp_file_v3
1844         ndmp_file_name_v3       names<>;
1845         ndmp_file_stat_v3       stats<>;
1846         ndmp_u_quad             node;           /* used for the direct access */
1847         ndmp_u_quad             fh_info;        /* used for the direct access */
1850 struct ndmp_fh_add_file_request_v3
1852         ndmp_file_v3            files<>;
1854 /* no reply arguments */
1856 /* NDMP_FH_ADD_DIR */
1858 struct ndmp_dir_v3
1860         ndmp_file_name_v3       names<>;
1861         ndmp_u_quad             node;
1862         ndmp_u_quad             parent;
1865 struct ndmp_fh_add_dir_request_v3
1867         ndmp_dir_v3     dirs<>;
1869 /* no reply arguments */
1871 /* NDMP_FH_ADD_NODE */
1873 struct ndmp_node_v3
1875         ndmp_file_stat_v3       stats<>;
1876         ndmp_u_quad             node;
1877         ndmp_u_quad             fh_info;
1880 struct ndmp_fh_add_node_request_v3
1882         ndmp_node_v3    nodes<>;
1884 /* no reply arguments */
1887 /********************************/
1888 /* FILE HISTORY INTERFACE (V4) */
1889 /********************************/
1891 /* NDMP_FH_ADD_FILE - same as V3 */
1893 /* NDMP_FH_ADD_DIR - same as V3 */
1895 /* NDMP_FH_ADD_NODE - same as V3 */
1899 /********************************/
1900 /* NDMP requests                */
1901 /********************************/
1902 /* CONNECT */
1903 typedef ndmp_auth_text ndmp_auth_text_v2;
1904 typedef ndmp_auth_text_v3 ndmp_auth_text_v4;
1905 typedef ndmp_auth_md5 ndmp_auth_md5_v2;
1906 typedef ndmp_auth_md5_v3 ndmp_auth_md5_v4;
1907 typedef ndmp_auth_data ndmp_auth_data_v2;
1908 typedef ndmp_auth_data_v3 ndmp_auth_data_v4;
1910 typedef ndmp_connect_open_request ndmp_connect_open_request_v2;
1911 typedef ndmp_connect_open_request ndmp_connect_open_request_v3;
1912 typedef ndmp_connect_open_request ndmp_connect_open_request_v4;
1913 typedef ndmp_connect_open_reply ndmp_connect_open_reply_v2;
1914 typedef ndmp_connect_open_reply ndmp_connect_open_reply_v3;
1915 typedef ndmp_connect_open_reply ndmp_connect_open_reply_v4;
1916 typedef ndmp_connect_client_auth_request ndmp_connect_client_auth_request_v2;
1917 typedef ndmp_connect_client_auth_request_v3 ndmp_connect_client_auth_request_v4;
1918 typedef ndmp_connect_client_auth_reply ndmp_connect_client_auth_reply_v2;
1919 typedef ndmp_connect_client_auth_reply_v3 ndmp_connect_client_auth_reply_v4;
1920 typedef ndmp_connect_server_auth_request ndmp_connect_server_auth_request_v2;
1921 typedef ndmp_connect_server_auth_request ndmp_connect_server_auth_request_v3;
1922 typedef ndmp_connect_server_auth_request ndmp_connect_server_auth_request_v4;
1923 typedef ndmp_connect_server_auth_reply ndmp_connect_server_auth_reply_v2;
1924 typedef ndmp_connect_server_auth_reply ndmp_connect_server_auth_reply_v3;
1925 typedef ndmp_connect_server_auth_reply ndmp_connect_server_auth_reply_v4;
1928 /* CONFIG */
1929 typedef ndmp_config_get_host_info_reply ndmp_config_get_host_info_reply_v2;
1930 typedef ndmp_config_get_host_info_reply_v3 ndmp_config_get_host_info_reply_v4;
1931 typedef ndmp_config_get_butype_attr_request ndmp_config_get_butype_attr_request_v2;
1932 typedef ndmp_config_get_butype_attr_reply ndmp_config_get_butype_attr_reply_v2;
1933 typedef ndmp_config_get_mover_type_reply ndmp_config_get_mover_type_reply_v2;
1934 typedef ndmp_config_get_auth_attr_request ndmp_config_get_auth_attr_request_v2;
1935 typedef ndmp_config_get_auth_attr_request ndmp_config_get_auth_attr_request_v3;
1936 typedef ndmp_config_get_auth_attr_request ndmp_config_get_auth_attr_request_v4;
1937 typedef ndmp_config_get_auth_attr_reply ndmp_config_get_auth_attr_reply_v2;
1938 typedef ndmp_config_get_auth_attr_reply ndmp_config_get_auth_attr_reply_v3;
1939 typedef ndmp_config_get_auth_attr_reply ndmp_config_get_auth_attr_reply_v4;
1940 typedef ndmp_config_get_connection_type_reply_v3 ndmp_config_get_connection_type_reply_v4;
1941 typedef ndmp_config_get_server_info_reply_v3 ndmp_config_get_server_info_reply_v4;
1942 typedef ndmp_fs_info_v3 ndmp_fs_info_v4;
1943 typedef ndmp_config_get_fs_info_reply_v3 ndmp_config_get_fs_info_reply_v4;
1944 typedef ndmp_device_info_v3 ndmp_device_info_v4;
1945 typedef ndmp_config_get_tape_info_reply_v3  ndmp_config_get_tape_info_reply_v4;
1946 typedef ndmp_config_get_scsi_info_reply_v3 ndmp_config_get_scsi_info_reply_v4;
1947 typedef ndmp_config_get_ext_list_reply ndmp_config_get_ext_list_reply_v4;
1948 typedef ndmp_config_set_ext_list_request ndmp_config_set_ext_list_request_v4;
1949 typedef ndmp_config_set_ext_list_reply ndmp_config_set_ext_list_reply_v4;
1952 /* SCSI */
1953 typedef ndmp_scsi_open_request ndmp_scsi_open_request_v2;
1954 typedef ndmp_scsi_open_request_v3 ndmp_scsi_open_request_v4;
1955 typedef ndmp_scsi_open_reply ndmp_scsi_open_reply_v2;
1956 typedef ndmp_scsi_open_reply ndmp_scsi_open_reply_v3;
1957 typedef ndmp_scsi_open_reply ndmp_scsi_open_reply_v4;
1958 typedef ndmp_scsi_close_reply ndmp_scsi_close_reply_v2;
1959 typedef ndmp_scsi_close_reply ndmp_scsi_close_reply_v3;
1960 typedef ndmp_scsi_close_reply ndmp_scsi_close_reply_v4;
1961 typedef ndmp_scsi_get_state_reply ndmp_scsi_get_state_reply_v2;
1962 typedef ndmp_scsi_get_state_reply ndmp_scsi_get_state_reply_v3;
1963 typedef ndmp_scsi_get_state_reply ndmp_scsi_get_state_reply_v4;
1964 typedef ndmp_scsi_set_target_request ndmp_scsi_set_target_request_v2;
1965 typedef ndmp_scsi_set_target_reply ndmp_scsi_set_target_reply_v2;
1966 typedef ndmp_scsi_set_target_reply ndmp_scsi_set_target_reply_v3;
1967 typedef ndmp_scsi_reset_device_reply ndmp_scsi_reset_device_reply_v2;
1968 typedef ndmp_scsi_reset_device_reply ndmp_scsi_reset_device_reply_v3;
1969 typedef ndmp_scsi_reset_device_reply ndmp_scsi_reset_device_reply_v4;
1970 typedef ndmp_scsi_reset_bus_reply ndmp_scsi_reset_bus_reply_v2;
1971 typedef ndmp_scsi_reset_bus_reply ndmp_scsi_reset_bus_reply_v3;
1972 typedef ndmp_execute_cdb_request ndmp_scsi_execute_cdb_request_v2;
1973 typedef ndmp_execute_cdb_request ndmp_scsi_execute_cdb_request_v3;
1974 typedef ndmp_execute_cdb_request ndmp_scsi_execute_cdb_request_v4;
1975 typedef ndmp_execute_cdb_reply ndmp_scsi_execute_cdb_reply_v2;
1976 typedef ndmp_execute_cdb_reply ndmp_scsi_execute_cdb_reply_v3;
1977 typedef ndmp_execute_cdb_reply ndmp_scsi_execute_cdb_reply_v4;
1980 /* TAPE */
1981 typedef ndmp_tape_open_request ndmp_tape_open_request_v2;
1982 typedef ndmp_tape_open_request_v3 ndmp_tape_open_request_v4;
1983 typedef ndmp_tape_open_reply ndmp_tape_open_reply_v2;
1984 typedef ndmp_tape_open_reply ndmp_tape_open_reply_v3;
1985 typedef ndmp_tape_open_reply ndmp_tape_open_reply_v4;
1986 typedef ndmp_tape_close_reply ndmp_tape_close_reply_v2;
1987 typedef ndmp_tape_close_reply ndmp_tape_close_reply_v3;
1988 typedef ndmp_tape_close_reply ndmp_tape_close_reply_v4;
1989 typedef ndmp_tape_get_state_reply ndmp_tape_get_state_reply_v2;
1990 typedef ndmp_tape_mtio_request ndmp_tape_mtio_request_v2;
1991 typedef ndmp_tape_mtio_request ndmp_tape_mtio_request_v3;
1992 typedef ndmp_tape_mtio_request ndmp_tape_mtio_request_v4;
1993 typedef ndmp_tape_mtio_reply ndmp_tape_mtio_reply_v2;
1994 typedef ndmp_tape_mtio_reply ndmp_tape_mtio_reply_v3;
1995 typedef ndmp_tape_mtio_reply ndmp_tape_mtio_reply_v4;
1996 typedef ndmp_tape_write_request ndmp_tape_write_request_v2;
1997 typedef ndmp_tape_write_request ndmp_tape_write_request_v3;
1998 typedef ndmp_tape_write_request ndmp_tape_write_request_v4;
1999 typedef ndmp_tape_write_reply ndmp_tape_write_reply_v2;
2000 typedef ndmp_tape_write_reply ndmp_tape_write_reply_v3;
2001 typedef ndmp_tape_write_reply ndmp_tape_write_reply_v4;
2002 typedef ndmp_tape_read_request ndmp_tape_read_request_v2;
2003 typedef ndmp_tape_read_request ndmp_tape_read_request_v3;
2004 typedef ndmp_tape_read_request ndmp_tape_read_request_v4;
2005 typedef ndmp_tape_read_reply ndmp_tape_read_reply_v2;
2006 typedef ndmp_tape_read_reply ndmp_tape_read_reply_v3;
2007 typedef ndmp_tape_read_reply ndmp_tape_read_reply_v4;
2008 typedef ndmp_tape_execute_cdb_request ndmp_tape_execute_cdb_request_v2;
2009 typedef ndmp_tape_execute_cdb_request ndmp_tape_execute_cdb_request_v3;
2010 typedef ndmp_tape_execute_cdb_request ndmp_tape_execute_cdb_request_v4;
2011 typedef ndmp_tape_execute_cdb_reply ndmp_tape_execute_cdb_reply_v2;
2012 typedef ndmp_tape_execute_cdb_reply ndmp_tape_execute_cdb_reply_v3;
2013 typedef ndmp_tape_execute_cdb_reply ndmp_tape_execute_cdb_reply_v4;
2016 /* MOVER */
2017 typedef ndmp_fc_addr_v3 ndmp_fc_addr;
2018 typedef ndmp_ipc_addr_v3 ndmp_ipc_addr;
2019 typedef ndmp_mover_get_state_reply ndmp_mover_get_state_reply_v2;
2020 typedef ndmp_mover_listen_request ndmp_mover_listen_request_v2;
2021 typedef ndmp_mover_listen_request ndmp_mover_listen_request_v3;
2022 typedef ndmp_mover_listen_request ndmp_mover_listen_request_v4;
2023 typedef ndmp_mover_listen_reply ndmp_mover_listen_reply_v2;
2024 typedef ndmp_mover_set_record_size_request ndmp_mover_set_record_size_request_v2;
2025 typedef ndmp_mover_set_record_size_request ndmp_mover_set_record_size_request_v3;
2026 typedef ndmp_mover_set_record_size_request ndmp_mover_set_record_size_request_v4;
2027 typedef ndmp_mover_set_record_size_reply ndmp_mover_set_record_size_reply_v2;
2028 typedef ndmp_mover_set_record_size_reply ndmp_mover_set_record_size_reply_v3;
2029 typedef ndmp_mover_set_record_size_reply ndmp_mover_set_record_size_reply_v4;
2030 typedef ndmp_mover_set_window_request ndmp_mover_set_window_request_v2;
2031 typedef ndmp_mover_set_window_request ndmp_mover_set_window_request_v3;
2032 typedef ndmp_mover_set_window_request ndmp_mover_set_window_request_v4;
2033 typedef ndmp_mover_set_window_reply ndmp_mover_set_window_reply_v2;
2034 typedef ndmp_mover_set_window_reply ndmp_mover_set_window_reply_v3;
2035 typedef ndmp_mover_set_window_reply ndmp_mover_set_window_reply_v4;
2036 typedef ndmp_mover_continue_reply ndmp_mover_continue_reply_v2;
2037 typedef ndmp_mover_continue_reply ndmp_mover_continue_reply_v3;
2038 typedef ndmp_mover_continue_reply ndmp_mover_continue_reply_v4;
2039 typedef ndmp_mover_abort_reply ndmp_mover_abort_reply_v2;
2040 typedef ndmp_mover_abort_reply ndmp_mover_abort_reply_v3;
2041 typedef ndmp_mover_abort_reply ndmp_mover_abort_reply_v4;
2042 typedef ndmp_mover_stop_reply ndmp_mover_stop_reply_v2;
2043 typedef ndmp_mover_stop_reply ndmp_mover_stop_reply_v3;
2044 typedef ndmp_mover_stop_reply ndmp_mover_stop_reply_v4;
2045 typedef ndmp_mover_read_request ndmp_mover_read_request_v2;
2046 typedef ndmp_mover_read_request ndmp_mover_read_request_v3;
2047 typedef ndmp_mover_read_request ndmp_mover_read_request_v4;
2048 typedef ndmp_mover_read_reply ndmp_mover_read_reply_v2;
2049 typedef ndmp_mover_read_reply ndmp_mover_read_reply_v3;
2050 typedef ndmp_mover_read_reply ndmp_mover_read_reply_v4;
2051 typedef ndmp_mover_close_reply ndmp_mover_close_reply_v2;
2052 typedef ndmp_mover_close_reply ndmp_mover_close_reply_v3;
2053 typedef ndmp_mover_close_reply ndmp_mover_close_reply_v4;
2054 typedef ndmp_mover_connect_reply_v3 ndmp_mover_connect_reply_v4;
2057 /* DATA */
2058 typedef ndmp_data_get_state_reply ndmp_data_get_state_reply_v2;
2059 typedef ndmp_data_start_backup_request ndmp_data_start_backup_request_v2;
2060 typedef ndmp_data_start_backup_request_v3 ndmp_data_start_backup_request_v4;
2061 typedef ndmp_data_start_backup_reply ndmp_data_start_backup_reply_v2;
2062 typedef ndmp_data_start_backup_reply ndmp_data_start_backup_reply_v3;
2063 typedef ndmp_data_start_backup_reply ndmp_data_start_backup_reply_v4;
2064 typedef ndmp_name ndmp_name_v2;
2065 typedef ndmp_data_start_recover_request ndmp_data_start_recover_request_v2;
2066 typedef ndmp_data_start_recover_request_v3 ndmp_data_start_recover_request_v4;
2067 typedef ndmp_data_start_recover_reply ndmp_data_start_recover_reply_v2;
2068 typedef ndmp_data_start_recover_reply ndmp_data_start_recover_reply_v3;
2069 typedef ndmp_data_start_recover_reply ndmp_data_start_recover_reply_v4;
2070 typedef ndmp_data_start_recover_reply ndmp_data_start_recover_filehist_reply_v4;
2071 typedef ndmp_data_abort_reply ndmp_data_abort_reply_v2;
2072 typedef ndmp_data_abort_reply ndmp_data_abort_reply_v3;
2073 typedef ndmp_data_abort_reply ndmp_data_abort_reply_v4;
2074 typedef ndmp_data_stop_reply ndmp_data_stop_reply_v2;
2075 typedef ndmp_data_stop_reply ndmp_data_stop_reply_v3;
2076 typedef ndmp_data_stop_reply ndmp_data_stop_reply_v4;
2077 typedef ndmp_data_get_env_reply ndmp_data_get_env_reply_v2;
2078 typedef ndmp_data_get_env_reply ndmp_data_get_env_reply_v3;
2079 typedef ndmp_data_get_env_reply ndmp_data_get_env_reply_v4;
2080 typedef ndmp_data_listen_request_v3 ndmp_data_listen_request_v4;
2081 typedef ndmp_data_connect_reply_v3 ndmp_data_connect_reply_v4;
2084 /* NOTIFY */
2085 typedef ndmp_notify_data_halted_request ndmp_notify_data_halted_request_v2;
2086 typedef ndmp_notify_data_halted_request ndmp_notify_data_halted_request_v3;
2087 typedef ndmp_notify_connected_request ndmp_notify_connection_status_request_v2;
2088 typedef ndmp_notify_connected_request ndmp_notify_connection_status_request_v3;
2089 typedef ndmp_notify_connected_request ndmp_notify_connection_status_request_v4;
2090 typedef ndmp_notify_mover_paused_request ndmp_notify_mover_paused_request_v2;
2091 typedef ndmp_notify_mover_paused_request ndmp_notify_mover_paused_request_v3;
2092 typedef ndmp_notify_mover_paused_request ndmp_notify_mover_paused_request_v4;
2093 typedef ndmp_notify_mover_halted_request ndmp_notify_mover_halted_request_v2;
2094 typedef ndmp_notify_mover_halted_request ndmp_notify_mover_halted_request_v3;
2095 typedef ndmp_notify_data_read_request ndmp_notify_data_read_request_v2;
2096 typedef ndmp_notify_data_read_request ndmp_notify_data_read_request_v3;
2097 typedef ndmp_notify_data_read_request ndmp_notify_data_read_request_v4;
2100 /* LOG */
2101 typedef ndmp_log_log_request ndmp_log_log_request_v2;
2102 typedef ndmp_log_log_request ndmp_log_log_request_v3;
2103 typedef ndmp_log_log_request ndmp_log_log_request_v4;
2104 typedef ndmp_log_debug_request ndmp_log_debug_request_v2;
2105 typedef ndmp_log_debug_request ndmp_log_debug_request_v3;
2106 typedef ndmp_log_debug_request ndmp_log_debug_request_v4;
2107 typedef ndmp_log_file_request ndmp_log_file_request_v2;
2110 /* FILE HISTORY */
2111 typedef ndmp_file_v3 ndmp_file;
2112 typedef ndmp_dir_v3 ndmp_dir;
2113 typedef ndmp_node_v3 ndmp_node;
2114 typedef ndmp_fh_add_unix_path_request ndmp_fh_add_unix_path_request_v2;
2115 typedef ndmp_fh_add_unix_path_request ndmp_fh_add_unix_path_request_v3;
2116 typedef ndmp_fh_add_file_request_v3 ndmp_fh_add_file_request_v4;
2117 typedef ndmp_fh_add_unix_dir_request ndmp_fh_add_unix_dir_request_v2;
2118 typedef ndmp_fh_add_unix_dir_request ndmp_fh_add_unix_dir_request_v3;
2119 typedef ndmp_fh_add_dir_request_v3 ndmp_fh_add_dir_request_v4;
2120 typedef ndmp_fh_add_unix_node_request ndmp_fh_add_unix_node_request_v2;
2121 typedef ndmp_fh_add_unix_node_request ndmp_fh_add_unix_node_request_v3;
2122 typedef ndmp_fh_add_node_request_v3 ndmp_fh_add_node_request_v4;