1 /*
   2  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
   4  */
   5 
   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 #ifndef _NDMPD_PROP_H
  40 #define _NDMPD_PROP_H
  41 
  42 #include <sys/types.h>
  43 #include <libscf.h>
  44 
  45 #ifdef __cplusplus
  46 extern "C" {
  47 #endif
  48 
  49 /* NDMP property parameter flags */
  50 #define NDMP_CF_NOTINIT         0x00    /* Not initialized yet */
  51 #define NDMP_CF_DEFINED         0x01    /* Defined/read from env */
  52 #define NDMP_CF_MODIFIED        0x02    /* Has been modified */
  53 
  54 typedef enum {
  55         NDMP_DAR_SUPPORT = 0,
  56         NDMP_MOVER_NIC,
  57         /*
  58          * Force backing up the directories leading to
  59          * a modified object for 'dump' format backup.
  60          */
  61         NDMP_DUMP_PATHNODE_ENV,
  62         /*
  63          * Force backing up the directories leading to
  64          * a modified object for 'tar' format backup.
  65          */
  66         NDMP_TAR_PATHNODE_ENV,
  67         /*
  68          * Force to send the file history node entries
  69          * along with the file history dir entries for
  70          * all directories containing the changed files
  71          * to the client for incremental backup.
  72          *
  73          * Note: This variable is added to support BakBone
  74          * Software's NetVault DMA which expects to get the
  75          * FH ADD NODES for all upper directories which
  76          * contain the changed files in incremental backup
  77          * along with the FH ADD DIRS.
  78          */
  79         NDMP_FHIST_INCR_ENV,
  80         /* Ignore st_ctime when backing up. */
  81         NDMP_IGNCTIME_ENV,
  82         /* If we should check for the last modification time. */
  83         NDMP_INCLMTIME_ENV,
  84         /*
  85          * Environment variable name for the maximum permitted
  86          * token sequence for token-based backups.
  87          */
  88         NDMP_MAXSEQ_ENV,
  89         /* Environment variable name for the active version. */
  90         NDMP_VERSION_ENV,
  91         /*
  92          * Environment variable name for restore path.
  93          * Suppose that a dircetroy named "/d1/d11" is backed
  94          * up and there is a file "/d1/d11/d111/f" under that
  95          * directory and  the restore path is "/d1/r1".
  96          * If restore path mechanism is set to 0 which means
  97          * partial path restore, then the result will be
  98          * "/d1/r1/d111/f". If it is set to 1 which means full
  99          * path restore, the result will be "/d1/r1/d1/d11/d111/f"
 100          */
 101         NDMP_FULL_RESTORE_PATH,
 102         NDMP_DEBUG_PATH,
 103         NDMP_PLUGIN_PATH,
 104         NDMP_SOCKET_CSS,
 105         NDMP_SOCKET_CRS,
 106         NDMP_MOVER_RECSIZE,
 107         NDMP_RESTORE_WILDCARD_ENABLE,
 108         NDMP_CRAM_MD5_USERNAME,
 109         NDMP_CRAM_MD5_PASSWORD,
 110         NDMP_CLEARTEXT_USERNAME,
 111         NDMP_CLEARTEXT_PASSWORD,
 112         NDMP_TCP_PORT,
 113         NDMP_BACKUP_QTN,
 114         NDMP_RESTORE_QTN,
 115         NDMP_OVERWRITE_QTN,
 116         NDMP_ZFS_FORCE_OVERRIDE,
 117         NDMP_DRIVE_TYPE,
 118         NDMP_DEBUG_MODE,
 119         NDMP_MAXALL
 120 } ndmpd_cfg_id_t;
 121 
 122 extern int ndmpd_load_prop(void);
 123 extern char *ndmpd_get_prop(ndmpd_cfg_id_t);
 124 extern char *ndmpd_get_prop_default(ndmpd_cfg_id_t, char *);
 125 extern int ndmpd_get_prop_yorn(ndmpd_cfg_id_t);
 126 
 127 #ifdef  __cplusplus
 128 }
 129 #endif
 130 
 131 #endif /* _NDMPD_PROP_H */