2 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
9 * Copyright (c) 2007, The Storage Networking Industry Association.
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
14 * - Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
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
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
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.
39 /* Copyright (c) 1996, 1997 PDC, Network Appliance. All Rights Reserved */
46 const NDMPVER = NDMPV4;
47 const NDMPPORT = 10000;
61 struct ndmp_scsi_device
66 struct ndmp_tape_device
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 */
100 NDMP_CONNECT_ERR = 23,
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
114 enum ndmp_header_message_type
116 NDMP_MESSAGE_REQUEST,
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;
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
234 /* NDMP_CONNECT_CLIENT_AUTH = NDMP_CONNECT_AUTH */
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
251 opaque auth_digest[16];
254 union ndmp_auth_data switch (enum ndmp_auth_type auth_type)
259 struct ndmp_auth_text auth_text;
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
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)
287 opaque challenge[64];
290 struct ndmp_connect_server_auth_request
292 ndmp_auth_attr client_attr;
295 struct ndmp_connect_server_auth_reply
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
311 string auth_password<>;
315 struct ndmp_auth_md5_v3
318 opaque auth_digest[16];
321 union ndmp_auth_data_v3 switch (enum ndmp_auth_type auth_type)
326 struct ndmp_auth_text_v3 auth_text;
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
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
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) */
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
395 /* NDMP_CONFIG_GET_MOVER_TYPE */
396 /* no request arguments */
402 NDMP_ADDR_FC = 2, /* NDMP V2,3 */
406 struct ndmp_config_get_mover_type_reply
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
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
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) */
441 /* NDMP_CONFIG_GET_CONNECTION_TYPE */
442 /* no request arguments */
444 struct ndmp_config_get_connection_type_reply_v3
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
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<>;
488 /* NDMP_CONFIG_GET_BUTYPE_INFO */
489 /* no request arguments */
491 struct ndmp_config_get_butype_info_reply_v3
494 ndmp_butype_info butype_info<>;
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
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;
519 /* NDMP_CONFIG_GET_FS_INFO */
520 /* no request arguments */
522 struct ndmp_config_get_fs_info_reply_v3
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
541 ndmp_pval capability<>;
544 struct ndmp_device_info_v3
547 ndmp_device_capability_v3 caplist<>;
550 struct ndmp_config_get_tape_info_reply_v3
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
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
583 ndmp_butype_info butype_info<>;
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<>;
595 struct ndmp_class_version
597 u_short ext_class_id;
601 struct ndmp_config_get_ext_list_reply
604 ndmp_class_list class_list<>;
607 struct ndmp_config_set_ext_list_request
609 ndmp_class_version ndmp_selected_ext<>;
612 struct ndmp_config_set_ext_list_reply
618 /***********************/
619 /* SCSI INTERFACE (V2) */
620 /***********************/
623 struct ndmp_scsi_open_request
625 ndmp_scsi_device device;
628 struct ndmp_scsi_open_reply
633 /* NDMP_SCSI_CLOSE */
634 /* no request arguments */
636 struct ndmp_scsi_close_reply
641 /* NDMP_SCSI_GET_STATE */
642 /* no request arguments */
644 struct ndmp_scsi_get_state_reply
647 short target_controller;
652 /* NDMP_SCSI_SET_TARGET */
653 struct ndmp_scsi_set_target_request
655 ndmp_scsi_device device;
656 u_short target_controller;
661 struct ndmp_scsi_set_target_reply
666 /* NDMP_SCSI_RESET_DEVICE */
667 /* no request arguments */
669 struct ndmp_scsi_reset_device_reply
674 /* NDMP_SCSI_RESET_BUS */
675 /* no request arguments */
677 struct ndmp_scsi_reset_bus_reply
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
690 u_long datain_len; /* Set for expected datain */
695 struct ndmp_execute_cdb_reply
698 u_char status; /* SCSI status bytes */
700 opaque datain<>; /* SCSI datain */
701 opaque ext_sense<>; /* Extended sense data */
705 /***********************/
706 /* SCSI INTERFACE (V3) */
707 /***********************/
710 struct ndmp_scsi_open_request_v3
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
724 u_short target_controller;
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 /***********************/
758 enum ndmp_tape_open_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 */
768 struct ndmp_tape_open_request
770 ndmp_tape_device device;
771 ndmp_tape_open_mode mode;
774 struct ndmp_tape_open_reply
779 /* NDMP_TAPE_CLOSE */
780 /* no request arguments */
781 struct ndmp_tape_close_reply
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
801 ndmp_u_quad total_space;
802 ndmp_u_quad space_remain;
805 enum ndmp_tape_mtio_op
814 NDMP_MTIO_TUR = 7 /* NDMP V4 */
818 struct ndmp_tape_mtio_request
820 ndmp_tape_mtio_op tape_op;
824 struct ndmp_tape_mtio_reply
830 /* NDMP_TAPE_WRITE */
831 struct ndmp_tape_write_request
836 struct ndmp_tape_write_reply
843 struct ndmp_tape_read_request
848 struct ndmp_tape_read_reply
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 /***********************/
864 struct ndmp_tape_open_request_v3
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 */
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
899 ndmp_u_quad total_space;
900 ndmp_u_quad space_remain;
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
930 ndmp_u_quad total_space;
931 ndmp_u_quad space_remain;
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 /************************/
948 NDMP_MOVER_MODE_READ = 0,
949 NDMP_MOVER_MODE_WRITE = 1,
950 NDMP_MOVER_MODE_NOACTION = 2 /* NDMP V4 */
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
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
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 */
983 /* NDMP_MOVER_GET_STATE */
985 /* no request arguments */
986 struct ndmp_mover_get_state_reply
989 ndmp_mover_state state;
990 ndmp_mover_pause_reason pause_reason;
991 ndmp_mover_halt_reason halt_reason;
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
1009 union ndmp_mover_addr switch (ndmp_addr_type addr_type)
1011 case NDMP_ADDR_LOCAL:
1017 struct ndmp_mover_listen_request
1019 ndmp_mover_mode mode;
1020 ndmp_addr_type addr_type;
1023 struct ndmp_mover_listen_reply
1026 ndmp_mover_addr mover;
1029 /* NDMP_MOVER_SET_RECORD_SIZE */
1030 struct ndmp_mover_set_record_size_request
1035 struct ndmp_mover_set_record_size_reply
1040 /* NDMP_MOVER_SET_WINDOW */
1041 struct ndmp_mover_set_window_request
1047 struct ndmp_mover_set_window_reply
1052 /* NDMP_MOVER_CONTINUE */
1053 /* no request arguments */
1055 struct ndmp_mover_continue_reply
1061 /* NDMP_MOVER_ABORT */
1062 /* no request arguments */
1063 struct ndmp_mover_abort_reply
1068 /* NDMP_MOVER_STOP */
1069 /* no request arguments */
1071 struct ndmp_mover_stop_reply
1076 /* NDMP_MOVER_READ */
1077 struct ndmp_mover_read_request
1083 struct ndmp_mover_read_reply
1088 /* NDMP_MOVER_CLOSE */
1089 /* no request arguments */
1091 struct ndmp_mover_close_reply
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
1114 struct ndmp_ipc_addr_v3
1119 union ndmp_addr_v3 switch (ndmp_addr_type addr_type)
1121 case NDMP_ADDR_LOCAL:
1124 ndmp_tcp_addr tcp_addr;
1126 ndmp_fc_addr_v3 fc_addr;
1128 ndmp_ipc_addr_v3 ipc_addr;
1135 % * Macros to access the port and IP address of TCP addresses.
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
1150 ndmp_mover_state state;
1151 ndmp_mover_pause_reason pause_reason;
1152 ndmp_mover_halt_reason halt_reason;
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
1168 ndmp_addr_v3 data_connection_addr;
1171 /* NDMP_MOVER_CONNECT */
1172 struct ndmp_mover_connect_request_v3
1174 ndmp_mover_mode mode;
1178 struct ndmp_mover_connect_reply_v3
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.
1211 %#ifndef tcp_addr_v4
1212 %#define tcp_addr_v4 ndmp_addr_v4_u.tcp_addr.tcp_addr_val
1213 %#endif /* tcp_addr_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 */
1221 %#define tcp_len_v4 ndmp_addr_v4_u.tcp_addr.tcp_addr_len
1222 %#endif /* tcp_len_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
1231 ndmp_pval addr_env<>;
1235 switch (ndmp_addr_type addr_type)
1237 case NDMP_ADDR_LOCAL:
1240 ndmp_tcp_addr_v4 tcp_addr<>;
1242 ndmp_ipc_addr_v3 ipc_addr;
1245 struct ndmp_mover_connect_request_v4
1247 ndmp_mover_mode mode;
1251 struct ndmp_mover_listen_reply_v4
1254 ndmp_addr_v4 connect_addr;
1257 /* NDMP_MOVER_READ - same as v3 */
1259 struct ndmp_mover_get_state_reply_v4
1262 ndmp_mover_mode mode;
1263 ndmp_mover_state state;
1264 ndmp_mover_pause_reason pause_reason;
1265 ndmp_mover_halt_reason halt_reason;
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;
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
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 */
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 */
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
1318 struct ndmp_data_get_state_reply
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
1346 /* NDMP_DATA_START_RECOVER */
1352 ndmp_u_quad fh_info;
1355 struct ndmp_data_start_recover_request
1357 ndmp_mover_addr mover;
1364 struct ndmp_data_start_recover_reply
1369 /* NDMP_DATA_ABORT */
1370 /* no request arguments */
1372 struct ndmp_data_abort_reply
1377 /* NDMP_DATA_STOP */
1378 /* no request arguments */
1380 struct ndmp_data_stop_reply
1385 /* NDMP_DATA_GET_ENV */
1386 /* no request arguments */
1388 struct ndmp_data_get_env_reply
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 */
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
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 */
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
1451 ndmp_name_v3 nlist<>;
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
1470 ndmp_addr_v3 data_connection_addr;
1473 /* NDMP_DATA_CONNECT */
1474 struct ndmp_data_connect_request_v3
1479 struct ndmp_data_connect_reply_v3
1485 /***********************/
1486 /* DATA INTERFACE (V4) */
1487 /***********************/
1489 struct ndmp_data_get_state_reply_v4
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;
1504 struct ndmp_data_listen_reply_v4
1507 ndmp_addr_v4 connect_addr;
1510 struct ndmp_data_connect_request_v4
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
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;
1595 /* NDMP_NOTIFY_CONNECTION_STATUS - same as V3 */
1597 struct ndmp_notify_mover_halted_request_v4
1599 ndmp_mover_halt_reason reason;
1602 /* NDMP_NOTIFY_MOVER_PAUSED - same as V3 */
1604 /* NDMP_NOTIFY_DATA_READ - same as V3 */
1607 /**********************/
1608 /* LOG INTERFACE (V2) */
1609 /**********************/
1612 struct ndmp_log_log_request
1616 /* no reply arguments */
1618 /* NDMP_LOG_DEBUG */
1619 enum ndmp_debug_level
1622 NDMP_DBG_USER_SUMMARY,
1623 NDMP_DBG_USER_DETAIL,
1625 NDMP_DBG_DIAG_SUMMARY,
1626 NDMP_DBG_DIAG_DETAIL,
1628 NDMP_DBG_PROG_SUMMARY,
1629 NDMP_DBG_PROG_DETAIL
1632 struct ndmp_log_debug_request
1634 ndmp_debug_level level;
1637 /* no reply arguments */
1640 struct ndmp_log_file_request
1646 /* no reply arguments */
1649 /**********************/
1650 /* LOG INTERFACE (V3) */
1651 /**********************/
1653 /* NDMP_LOG_MESSAGE */
1656 NDMP_LOG_NORMAL = 0,
1659 NDMP_LOG_WARNING = 3
1662 struct ndmp_log_message_request_v3
1664 ndmp_log_type log_type;
1668 /* no reply arguments */
1671 struct ndmp_log_file_request_v3
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
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
1701 struct ndmp_log_message_request_v4
1703 ndmp_log_type log_type;
1706 ndmp_has_associated_message associated_message_valid;
1707 u_long associated_message_sequence;
1710 struct ndmp_log_file_request_v4
1713 ndmp_recovery_status recovery_status;
1718 /*******************************/
1719 /* FILE HISTORY INTERFACE (V2) */
1720 /*******************************/
1722 /* NDMP_FH_ADD_UNIX_PATH */
1723 typedef string ndmp_unix_path<>;
1728 NDMP_FILE_CSPEC = 2,
1729 NDMP_FILE_BSPEC = 3,
1731 NDMP_FILE_SLINK = 5,
1733 NDMP_FILE_REGISTRY = 7,
1737 struct ndmp_unix_file_stat
1739 ndmp_file_type ftype;
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;
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;
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 */
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)
1813 ndmp_path_v3 unix_name;
1815 ndmp_nt_path_v3 nt_name;
1817 ndmp_path_v3 other_name;
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
1828 ndmp_fs_type fs_type;
1829 ndmp_file_type ftype;
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 */
1841 /* one file could have both UNIX and NT name and attributes */
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 */
1860 ndmp_file_name_v3 names<>;
1865 struct ndmp_fh_add_dir_request_v3
1869 /* no reply arguments */
1871 /* NDMP_FH_ADD_NODE */
1875 ndmp_file_stat_v3 stats<>;
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 /********************************/
1901 /********************************/
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;
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;
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;
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;
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;
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;
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;
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;
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;