libstoragemgmt_types.h File Reference

#include <inttypes.h>
Include dependency graph for libstoragemgmt_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define LSM_CLIENT_FLAG_RSVD   0
#define LSM_VOLUME_STRIP_SIZE_UNKNOWN   0
#define LSM_VOLUME_DISK_COUNT_UNKNOWN   0
#define LSM_VOLUME_MIN_IO_SIZE_UNKNOWN   0
#define LSM_VOLUME_OPT_IO_SIZE_UNKNOWN   0
#define LSM_VOLUME_ADMIN_STATE_ENABLED   0x1
#define LSM_VOLUME_ADMIN_STATE_DISABLED   0x0
#define LSM_SYSTEM_STATUS_UNKNOWN   0x00000001
#define LSM_SYSTEM_STATUS_OK   0x00000002
#define LSM_SYSTEM_STATUS_ERROR   0x00000004
#define LSM_SYSTEM_STATUS_DEGRADED   0x00000008
#define LSM_SYSTEM_STATUS_PREDICTIVE_FAILURE   0x00000010
#define LSM_SYSTEM_STATUS_OTHER   0x00000020
#define LSM_DISK_STATUS_UNKNOWN   0x0000000000000001
#define LSM_DISK_STATUS_OK   0x0000000000000002
#define LSM_DISK_STATUS_OTHER   0x0000000000000004
#define LSM_DISK_STATUS_PREDICTIVE_FAILURE   0x0000000000000008
#define LSM_DISK_STATUS_ERROR   0x0000000000000010
#define LSM_DISK_STATUS_REMOVED   0x0000000000000020
#define LSM_DISK_STATUS_STARTING   0x0000000000000040
#define LSM_DISK_STATUS_STOPPING   0x0000000000000080
#define LSM_DISK_STATUS_STOPPED   0x0000000000000100
#define LSM_DISK_STATUS_INITIALIZING   0x0000000000000200
#define LSM_DISK_STATUS_MAINTENANCE_MODE   0x0000000000000400
#define LSM_DISK_STATUS_SPARE_DISK   0x0000000000000800
#define LSM_DISK_STATUS_RECONSTRUCT   0x0000000000001000
#define LSM_DISK_STATUS_FREE   0x0000000000002000
#define LSM_DISK_BLOCK_SIZE_NOT_FOUND   -1
#define LSM_DISK_BLOCK_COUNT_NOT_FOUND   -1
#define LSM_POOL_STATUS_UNKNOWN   0x0000000000000001
#define LSM_POOL_STATUS_OK   0x0000000000000002
#define LSM_POOL_STATUS_OTHER   0x0000000000000004
#define LSM_POOL_STATUS_DEGRADED   0x0000000000000010
#define LSM_POOL_STATUS_ERROR   0x0000000000000020
#define LSM_POOL_STATUS_STOPPED   0x0000000000000200
#define LSM_POOL_STATUS_RECONSTRUCTING   0x0000000000001000
#define LSM_POOL_STATUS_VERIFYING   0x0000000000002000
#define LSM_POOL_STATUS_INITIALIZING   0x0000000000004000
#define LSM_POOL_STATUS_GROWING   0x0000000000008000
#define LSM_POOL_ELEMENT_TYPE_POOL   0x0000000000000002
#define LSM_POOL_ELEMENT_TYPE_VOLUME   0x0000000000000004
#define LSM_POOL_ELEMENT_TYPE_FS   0x0000000000000008
#define LSM_POOL_ELEMENT_TYPE_DELTA   0x0000000000000010
#define LSM_POOL_ELEMENT_TYPE_VOLUME_FULL   0x0000000000000020
#define LSM_POOL_ELEMENT_TYPE_VOLUME_THIN   0x0000000000000040
#define LSM_POOL_ELEMENT_TYPE_SYS_RESERVED   0x0000000000000400
#define LSM_POOL_UNSUPPORTED_VOLUME_GROW   0x0000000000000001
#define LSM_POOL_UNSUPPORTED_VOLUME_SHRINK   0x0000000000000002
#define LSM_VOLUME_VCR_STRIP_SIZE_DEFAULT   0

Typedefs

typedef uint64_t lsm_flag
typedef struct _lsm_connect lsm_connect
typedef struct _lsm_volume lsm_volume
typedef struct _lsm_pool lsm_pool
typedef struct _lsm_initiator lsm_initiator
typedef struct
_lsm_storage_capabilities 
lsm_storage_capabilities
typedef struct _lsm_access_group lsm_access_group
typedef struct _lsm_nfs_export lsm_nfs_export
typedef struct _lsm_block_range lsm_block_range
typedef struct _lsm_system lsm_system
typedef struct _lsm_string_list lsm_string_list
typedef struct _lsm_fs lsm_fs
typedef struct _lsm_fs_ss lsm_fs_ss
typedef struct _lsm_disk lsm_disk
typedef struct _lsm_hash lsm_hash

Enumerations

enum  lsm_replication_type {
  LSM_VOLUME_REPLICATE_UNKNOWN = -1, LSM_VOLUME_REPLICATE_CLONE = 2, LSM_VOLUME_REPLICATE_COPY = 3, LSM_VOLUME_REPLICATE_MIRROR_SYNC = 4,
  LSM_VOLUME_REPLICATE_MIRROR_ASYNC = 5
}
enum  lsm_volume_provision_type { LSM_VOLUME_PROVISION_UNKNOWN = -1, LSM_VOLUME_PROVISION_THIN = 1, LSM_VOLUME_PROVISION_FULL = 2, LSM_VOLUME_PROVISION_DEFAULT = 3 }
enum  lsm_volume_raid_type {
  LSM_VOLUME_RAID_TYPE_UNKNOWN = -1, LSM_VOLUME_RAID_TYPE_RAID0 = 0, LSM_VOLUME_RAID_TYPE_RAID1 = 1, LSM_VOLUME_RAID_TYPE_RAID3 = 3,
  LSM_VOLUME_RAID_TYPE_RAID4 = 4, LSM_VOLUME_RAID_TYPE_RAID5 = 5, LSM_VOLUME_RAID_TYPE_RAID6 = 6, LSM_VOLUME_RAID_TYPE_RAID10 = 10,
  LSM_VOLUME_RAID_TYPE_RAID15 = 15, LSM_VOLUME_RAID_TYPE_RAID16 = 16, LSM_VOLUME_RAID_TYPE_RAID50 = 50, LSM_VOLUME_RAID_TYPE_RAID60 = 60,
  LSM_VOLUME_RAID_TYPE_RAID51 = 51, LSM_VOLUME_RAID_TYPE_RAID61 = 61, LSM_VOLUME_RAID_TYPE_JBOD = 20, LSM_VOLUME_RAID_TYPE_MIXED = 21,
  LSM_VOLUME_RAID_TYPE_OTHER = 22
}
enum  lsm_pool_member_type { LSM_POOL_MEMBER_TYPE_UNKNOWN = 0, LSM_POOL_MEMBER_TYPE_OTHER = 1, LSM_POOL_MEMBER_TYPE_DISK = 2, LSM_POOL_MEMBER_TYPE_POOL = 3 }
enum  lsm_access_group_init_type {
  LSM_ACCESS_GROUP_INIT_TYPE_UNKNOWN = 0, LSM_ACCESS_GROUP_INIT_TYPE_OTHER = 1, LSM_ACCESS_GROUP_INIT_TYPE_WWPN = 2, LSM_ACCESS_GROUP_INIT_TYPE_ISCSI_IQN = 5,
  LSM_ACCESS_GROUP_INIT_TYPE_ISCSI_WWPN_MIXED = 7
}
enum  lsm_job_status { LSM_JOB_INPROGRESS = 1, LSM_JOB_COMPLETE = 2, LSM_JOB_ERROR = 3 }
enum  lsm_disk_type {
  LSM_DISK_TYPE_UNKNOWN = 0, LSM_DISK_TYPE_OTHER = 1, LSM_DISK_TYPE_ATA = 3, LSM_DISK_TYPE_SATA = 4,
  LSM_DISK_TYPE_SAS = 5, LSM_DISK_TYPE_FC = 6, LSM_DISK_TYPE_SOP = 7, LSM_DISK_TYPE_SCSI = 8,
  LSM_DISK_TYPE_LUN = 9, LSM_DISK_TYPE_NL_SAS = 51, LSM_DISK_TYPE_HDD = 52, LSM_DISK_TYPE_SSD = 53,
  LSM_DISK_TYPE_HYBRID = 54
}
enum  lsm_target_port_type { LSM_TARGET_PORT_TYPE_OTHER = 1, LSM_TARGET_PORT_TYPE_FC = 2, LSM_TARGET_PORT_TYPE_FCOE = 3, LSM_TARGET_PORT_TYPE_ISCSI = 4 }

Detailed Description

Definition in file libstoragemgmt_types.h.


Define Documentation

#define LSM_CLIENT_FLAG_RSVD   0

Definition at line 38 of file libstoragemgmt_types.h.

#define LSM_DISK_BLOCK_COUNT_NOT_FOUND   -1

Definition at line 297 of file libstoragemgmt_types.h.

#define LSM_DISK_BLOCK_SIZE_NOT_FOUND   -1

^ New in version 1.2, New in version 1.2, indicate the whole disk is not holding any data or acting as a dedicate spare disk. This disk could be assigned as a dedicated spare disk or used for creating pool. If any spare disk(like those on NetApp ONTAP) does not require any explicit action when assigning to pool, it should be treated as free disk and marked as LSM_DISK_STATUS_FREE|LSM_DISK_STATUS_SPARE_DISK.

Definition at line 296 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_ERROR   0x0000000000000010

Definition at line 276 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_FREE   0x0000000000002000

Definition at line 285 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_INITIALIZING   0x0000000000000200

Definition at line 281 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_MAINTENANCE_MODE   0x0000000000000400

Definition at line 282 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_OK   0x0000000000000002

Definition at line 273 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_OTHER   0x0000000000000004

Definition at line 274 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_PREDICTIVE_FAILURE   0x0000000000000008

Definition at line 275 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_RECONSTRUCT   0x0000000000001000

Definition at line 284 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_REMOVED   0x0000000000000020

Definition at line 277 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_SPARE_DISK   0x0000000000000800

Definition at line 283 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_STARTING   0x0000000000000040

Definition at line 278 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_STOPPED   0x0000000000000100

Definition at line 280 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_STOPPING   0x0000000000000080

Definition at line 279 of file libstoragemgmt_types.h.

#define LSM_DISK_STATUS_UNKNOWN   0x0000000000000001

Definition at line 272 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_DELTA   0x0000000000000010

Definition at line 313 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_FS   0x0000000000000008

Definition at line 312 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_POOL   0x0000000000000002

Definition at line 310 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_SYS_RESERVED   0x0000000000000400

Definition at line 316 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_VOLUME   0x0000000000000004

Definition at line 311 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_VOLUME_FULL   0x0000000000000020

Definition at line 314 of file libstoragemgmt_types.h.

#define LSM_POOL_ELEMENT_TYPE_VOLUME_THIN   0x0000000000000040

Definition at line 315 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_DEGRADED   0x0000000000000010

Definition at line 302 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_ERROR   0x0000000000000020

Definition at line 303 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_GROWING   0x0000000000008000

Definition at line 308 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_INITIALIZING   0x0000000000004000

Definition at line 307 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_OK   0x0000000000000002

Definition at line 300 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_OTHER   0x0000000000000004

Definition at line 301 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_RECONSTRUCTING   0x0000000000001000

Definition at line 305 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_STOPPED   0x0000000000000200

Definition at line 304 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_UNKNOWN   0x0000000000000001

Definition at line 299 of file libstoragemgmt_types.h.

#define LSM_POOL_STATUS_VERIFYING   0x0000000000002000

Definition at line 306 of file libstoragemgmt_types.h.

#define LSM_POOL_UNSUPPORTED_VOLUME_GROW   0x0000000000000001

Definition at line 318 of file libstoragemgmt_types.h.

#define LSM_POOL_UNSUPPORTED_VOLUME_SHRINK   0x0000000000000002

Definition at line 319 of file libstoragemgmt_types.h.

#define LSM_SYSTEM_STATUS_DEGRADED   0x00000008

^ Error(s) exist

Definition at line 223 of file libstoragemgmt_types.h.

#define LSM_SYSTEM_STATUS_ERROR   0x00000004

^ OK

Definition at line 221 of file libstoragemgmt_types.h.

#define LSM_SYSTEM_STATUS_OK   0x00000002

^ Unknown

Definition at line 219 of file libstoragemgmt_types.h.

#define LSM_SYSTEM_STATUS_OTHER   0x00000020

^ System has predictive failure(s)

Definition at line 227 of file libstoragemgmt_types.h.

#define LSM_SYSTEM_STATUS_PREDICTIVE_FAILURE   0x00000010

^ Degraded

Definition at line 225 of file libstoragemgmt_types.h.

#define LSM_SYSTEM_STATUS_UNKNOWN   0x00000001

^ Volume unaccessible Different states a system status can be in. Bit field, can be in multiple states at the same time.

Definition at line 217 of file libstoragemgmt_types.h.

#define LSM_VOLUME_ADMIN_STATE_DISABLED   0x0

^ Volume accessible

Definition at line 210 of file libstoragemgmt_types.h.

#define LSM_VOLUME_ADMIN_STATE_ENABLED   0x1

Admin state for volume, enabled or disabled

Definition at line 208 of file libstoragemgmt_types.h.

#define LSM_VOLUME_DISK_COUNT_UNKNOWN   0

Definition at line 201 of file libstoragemgmt_types.h.

#define LSM_VOLUME_MIN_IO_SIZE_UNKNOWN   0

Definition at line 202 of file libstoragemgmt_types.h.

#define LSM_VOLUME_OPT_IO_SIZE_UNKNOWN   0

Definition at line 203 of file libstoragemgmt_types.h.

#define LSM_VOLUME_STRIP_SIZE_UNKNOWN   0

Definition at line 200 of file libstoragemgmt_types.h.

#define LSM_VOLUME_VCR_STRIP_SIZE_DEFAULT   0

Definition at line 328 of file libstoragemgmt_types.h.


Typedef Documentation

Access group

Definition at line 69 of file libstoragemgmt_types.h.

Opaque data type for block ranges (regions to replicate)

Definition at line 79 of file libstoragemgmt_types.h.

typedef struct _lsm_connect lsm_connect

Opaque data type for a connection.

Definition at line 43 of file libstoragemgmt_types.h.

typedef struct _lsm_disk lsm_disk

Opaque data type for disk

Definition at line 104 of file libstoragemgmt_types.h.

typedef uint64_t lsm_flag

Definition at line 36 of file libstoragemgmt_types.h.

typedef struct _lsm_fs lsm_fs

Opaque data type for file systems

Definition at line 94 of file libstoragemgmt_types.h.

typedef struct _lsm_fs_ss lsm_fs_ss

Opaque data type for snapshot

Definition at line 99 of file libstoragemgmt_types.h.

typedef struct _lsm_hash lsm_hash

Optional data type

Definition at line 109 of file libstoragemgmt_types.h.

typedef struct _lsm_initiator lsm_initiator

Opaque data type for an initiator.

Definition at line 59 of file libstoragemgmt_types.h.

Opaque data type for nfs exports

Definition at line 74 of file libstoragemgmt_types.h.

typedef struct _lsm_pool lsm_pool

Opaque data type for a storage pool which is used as a base for Volumes etc. to be created from.

Definition at line 54 of file libstoragemgmt_types.h.

Opaque data type for storage capabilities.

Definition at line 64 of file libstoragemgmt_types.h.

Opaque data type for string collection

Definition at line 89 of file libstoragemgmt_types.h.

typedef struct _lsm_system lsm_system

Opaque data type for systems.

Definition at line 84 of file libstoragemgmt_types.h.

typedef struct _lsm_volume lsm_volume

Opaque data type for a block based storage unit

Definition at line 48 of file libstoragemgmt_types.h.


Enumeration Type Documentation

^ Vendor specific

Enumerator:
LSM_ACCESS_GROUP_INIT_TYPE_UNKNOWN 
LSM_ACCESS_GROUP_INIT_TYPE_OTHER 

^ Unknown

LSM_ACCESS_GROUP_INIT_TYPE_WWPN 

^ Something not seen before

LSM_ACCESS_GROUP_INIT_TYPE_ISCSI_IQN 

^ Port name

LSM_ACCESS_GROUP_INIT_TYPE_ISCSI_WWPN_MIXED 

^ ISCSI IQN

Definition at line 231 of file libstoragemgmt_types.h.

Enumerator:
LSM_DISK_TYPE_UNKNOWN 
LSM_DISK_TYPE_OTHER 
LSM_DISK_TYPE_ATA 
LSM_DISK_TYPE_SATA 
LSM_DISK_TYPE_SAS 
LSM_DISK_TYPE_FC 
LSM_DISK_TYPE_SOP 
LSM_DISK_TYPE_SCSI 
LSM_DISK_TYPE_LUN 
LSM_DISK_TYPE_NL_SAS 
LSM_DISK_TYPE_HDD 
LSM_DISK_TYPE_SSD 
LSM_DISK_TYPE_HYBRID 

Definition at line 255 of file libstoragemgmt_types.h.

^ Job states

Enumerator:
LSM_JOB_INPROGRESS 
LSM_JOB_COMPLETE 

^ Job is in progress

LSM_JOB_ERROR 

^ Job is complete

Definition at line 246 of file libstoragemgmt_types.h.

^ Different types of Pool member

Enumerator:
LSM_POOL_MEMBER_TYPE_UNKNOWN 
LSM_POOL_MEMBER_TYPE_OTHER 

^ Plugin failed to detect the RAID member type.

LSM_POOL_MEMBER_TYPE_DISK 

^ Vendor specific RAID member type.

LSM_POOL_MEMBER_TYPE_POOL 

^ Pool is created from RAID group using whole disks.

Definition at line 184 of file libstoragemgmt_types.h.

Opaque data type for Target ports Different types of replications that can be created

Enumerator:
LSM_VOLUME_REPLICATE_UNKNOWN 
LSM_VOLUME_REPLICATE_CLONE 

^ Unknown replicate

LSM_VOLUME_REPLICATE_COPY 

^ Space efficient copy

LSM_VOLUME_REPLICATE_MIRROR_SYNC 

^ Full bitwise copy

LSM_VOLUME_REPLICATE_MIRROR_ASYNC 

^ Mirrors always in sync

Definition at line 118 of file libstoragemgmt_types.h.

Enumerator:
LSM_TARGET_PORT_TYPE_OTHER 
LSM_TARGET_PORT_TYPE_FC 
LSM_TARGET_PORT_TYPE_FCOE 
LSM_TARGET_PORT_TYPE_ISCSI 

Definition at line 321 of file libstoragemgmt_types.h.

Different types of provisioning

Enumerator:
LSM_VOLUME_PROVISION_UNKNOWN 
LSM_VOLUME_PROVISION_THIN 

^ Unknown

LSM_VOLUME_PROVISION_FULL 

^ Thin provisioning

LSM_VOLUME_PROVISION_DEFAULT 

^ Thick provisioning

Definition at line 132 of file libstoragemgmt_types.h.

^ Different types of RAID

Enumerator:
LSM_VOLUME_RAID_TYPE_UNKNOWN 
LSM_VOLUME_RAID_TYPE_RAID0 

^ Unknown

LSM_VOLUME_RAID_TYPE_RAID1 

^ Stripe

LSM_VOLUME_RAID_TYPE_RAID3 

^ Mirror between two disks. For 4 disks or more, they are RAID10.

LSM_VOLUME_RAID_TYPE_RAID4 

^ Byte-level striping with dedicated parity

LSM_VOLUME_RAID_TYPE_RAID5 

^ Block-level striping with dedicated parity

LSM_VOLUME_RAID_TYPE_RAID6 

^ Block-level striping with distributed parity

LSM_VOLUME_RAID_TYPE_RAID10 

^ Block-level striping with two distributed parities, aka, RAID-DP

LSM_VOLUME_RAID_TYPE_RAID15 

^ Stripe of mirrors

LSM_VOLUME_RAID_TYPE_RAID16 

^ Parity of mirrors

LSM_VOLUME_RAID_TYPE_RAID50 

^ Dual parity of mirrors

LSM_VOLUME_RAID_TYPE_RAID60 

^ Stripe of parities

LSM_VOLUME_RAID_TYPE_RAID51 

^ Stripe of dual parities

LSM_VOLUME_RAID_TYPE_RAID61 

^ Mirror of parities

LSM_VOLUME_RAID_TYPE_JBOD 

^ Mirror of dual parities

LSM_VOLUME_RAID_TYPE_MIXED 

^ Just bunch of disks, no parity, no striping.

LSM_VOLUME_RAID_TYPE_OTHER 

^ This volume contains multiple RAID settings.

Definition at line 145 of file libstoragemgmt_types.h.


Generated on 9 Jul 2015 for libStorageMgmt by  doxygen 1.6.1