Version

Name Value Meaning
IBPv031 0 Original IBP release. LoRS still requires some of this functionality
IBPv040 1 Current implementation by LoCI and ACCRE

Commands

Name Value Meaning
IBP_ALLOCATE 1 Creates an IBP storage allocation
IBP_STORE 2 Append data to an allocation
IBP_STATUS 4 Modify depot or resource parameters
IBP_SEND 5 Copies data between depots
IBP_LOAD 8 Read data from allocation at specified offset
IBP_MANAGE 9 Modify an existing allocation
IBP_WRITE 13 Store data at the specified offset
IBP_ALIAS_ALLOCATE 14 Generate a proxy allocation from an existing allocation
IBP_ALIAS_MANAGE 15 Modify a proxy allocation
IBP_RENAME 16 Regenerate an existing allocation’s capabilities
IBP_PHOEBUS_SEND 17 Copies data between depots using a PHOEBUS connection
IBP_SPLIT_ALLOCATE 18 Split an existing allocation
IBP_MERGE_ALLOCATE 19 Merge 2 existing allocations reserved space. The data is NOT merged.
IBP_PUSH 20 Push data between 2 depots
IBP_PULL 21 Pull data between 2 depots
IBP_PUSH_CHKSUM 22 Push data bewtween 2 depots with network checksums
IBP_PULL_CHKSUM 23 Pull data between 2 depots using network checksums
IBP_LOAD_CHKSUM 24 Read data from an allocation with network checksums
IBP_SEND_CHKSUM 25 Copies data between 2 depots with network checksums
IBP_PHOEBUS_SEND_CHKSUM 26 Copy data between depots using a Phoebus path and network checksums
IBP_WRITE_CHKSUM 27 Write data to an allocation using network checksums
IBP_STORE_CHKSUM 28 Append data to an allocation using network checksums in the transfer
IBP_ALLOCATE_CHKSUM 29 Create an allocation with disk checksumming enabled
IBP_SPLIT_ALLOCATE_CHKSUM 30 Split an existing allocation in two with disk checksumming enabled for the new allocation
IBP_GET_CHKSUM 31 Retreive the checksum information for the allocation
IBP_VALIDATE_CHKSUM 32 Perform an internal check of an allocation using the disk checksum information
IBP_VEC_WRITE 33 Vector write operation to a single allocation
IBP_VEC_WRITE_CHKSUM 34 Vector write operation to a sinle allocation with network checksums
IBP_VEC_READ 35 Vector read operation from a single allocation
IBP_VEC_READ_CHKSUM 36 Vector read operation from a single allocation with network checksums
INTERNAL_RID_SET_MODE 90 Set the Read/Write/Manage access controls for the resource
INTERNAL_RID_MOUNT 91 Add a resource to the running IBP server
INTERNAL_RID_UMOUNT 92 Remove the resource from the running IBP server
INTERNAL_GET_CORRUPT 93 Get the corrupt allocation list for the RID
INTERNAL_GET_CONFIG 94 Get the running depot configuration
INTERNAL_RESCAN 95 Rescan the expired and deleted trash bins
INTERNAL_UNDELETE 96 Undelete an allocation from a trash bin
INTERNAL_EXPIRE_LIST 97 Retrieve the allocation in order of expiration.
INTERNAL_DATE_FREE 98 Retreive allocation expiring based on a date in the future
INTERNAL_GET_ALLOC 99 Retreive information about an allocation

Options for IBP_MANAGE

Name Value Meaning
IBP_PROBE 40 Return information about the allocation
IBP_INCR 41 Increment the WRITE or READ reference count
IBP_DECR 42 Decrement the WRITE or READ reference count
IBP_CHNG 43 Modify an allocations attribute

Options for IBP_STATUS

Name Value Meaning
IBP_ST_INQ 1 Inquire about a depot resouce
IBP_ST_CHANGE 2 Modify a depot’s resource
IBP_ST_RES 3 Get a list of resources managed by the depot

Allocation relibability

Name Value Meaning
IBP_SOFT 1 Soft allocation
IBP_HARD 2 Hard Allocation

Allocation types

Name Value Meaning
IBP_BYTEARRAY 1 Array of bytes. Supports random access.
IBP_BUFFER 2 Writes always start at the beginning. No append or random access.
IBP_FIFO 3 Allocation is treated as a FIFO queue. All writes append and all reads occur at the start. If the allocation becomes full it blocks on writes until data is read.
IBP_CIRQ 4 Similar to FIFO but if the allocation becomes full it starts overwriting data form the beginning.

Error messages

Name Value Meaning
IBP_OK 1 No Errors.
IBP_E_GENERIC -1 Generic unclassified error.
IBP_E_SOCK_READ -2 Error reading the socket
IBP_E_SOCK_WRITE -3 Error writing to the socket
IBP_E_CAP_NOT_FOUND -4 Capability does not exist on resource
IBP_E_CAP_NOT_WRITE -5 Wrong capability
IBP_E_CAP_NOT_READ -6 Wrong capability
IBP_E_CAP_NOT_MANAGE -7 Wrong capability
IBP_E_INVALID_WRITE_CAP -8 Invalid capability
IBP_E_INVALID_READ_CAP -9 Invalid capability
IBP_E_INVALID_MANAGE_CAP -10 Invalid capability
IBP_E_WRONG_CAP_FORMAT -11 Mangled capability
IBP_E_CAP_ACCESS_DENIED -12 Accessed denied
IBP_E_CONNECTION -13 Generic socket error
IBP_E_WOULD_EXCEED_LIMIT -19 Operation would exceed limit
IBP_E_WOULD_DAMAGE_DATA -20 Data loss would occur if command completed
IBP_E_BAD_FORMAT -21 Bad format for command
IBP_E_TYPE_NOT_SUPPORTED -22 The allocation type is not supported.
IBP_E_RSRC_UNAVAIL -23 The resource is unavailable for use
IBP_E_INTERNAL -24 Generic internal depot error
IBP_E_INVALID_CMD -25 Invalid IBP command or sub-command
IBP_E_PROT_VERS -27 Protocol version not supported by depot.
IBP_E_WRONG_PASSWD -29 Invalid password
IBP_E_INVALID_PARAMETER -30 One or more parameters are invalid
IBP_E_CLIENT_TIMEOUT -42 Command timed out before completion
IBP_E_WOULD_EXCEED_POLICY -45 Exceeds depot policy
IBP_E_SERVER_TIMEOUT -46 Command timed out on server before completion
IBP_E_INVALID_RID -50 Unknown resource