LIBISCSI(3) Library Functions Manual LIBISCSI(3)

libiscsiiSCSI network storage protocol implementation

iSCSI protocol library (libiscsi, -liscsi)

#include <iscsi.h>

int
iscsi_target_set_defaults(iscsi_target_t *target);

int
iscsi_target_start(iscsi_target_t *target);

int
iscsi_target_listen(iscsi_target_t *target);

int
iscsi_target_shutdown(iscsi_target_t *target);

void
iscsi_target_write_pidfile(const char *filename);

int
iscsi_target_setvar(iscsi_target_t *target, const char *name, const char *value);

char *
iscsi_target_getvar(iscsi_target_t *target, const char *name);

int
iscsi_initiator_set_defaults(iscsi_initiator_t *initiator);

int
iscsi_initiator_start(iscsi_initiator_t *initiator);

int
iscsi_initiator_discover(iscsi_initiator_t *initiator, char *x, uint64_t a, int b);

int
iscsi_initiator_shutdown(iscsi_initiator_t *initiator);

int
iscsi_initiator_setvar(iscsi_initiator_t *initiator, const char *name, const char *value);

char *
iscsi_initiator_getvar(iscsi_initiator_t *initiator, const char *name);

libiscsi is a library interface to the iSCSI target and initiator. This conforms to IETF RFC 3720. The corresponding command line utilities for libiscsi are iscsi-initiator(8) and iscsi-target(8).

In normal operation, a process acting as a target (i.e. presenting storage to the network) will call () and will then set various values using the () function. The value of a variable can be retrieved at any time using the () function. When all of the variables have been set, the () function is called, and the block storage will be served up by the process.

A useful illustration of the use of these functions can be found in the source code to the iscsi-target(8) utility.

The libiscsi library also provides an implementation of the client end of the iSCSI subsystem, which is known as the initiator. The process acting as an initiator will first call the () function, to set default values for the initiator variables. Once all the values have been set to the user preferences using the () function, then the () function is called.

The libiscsi library can be used to perform iSCSI device discovery by calling the () function. This will return a list of all the iSCSI targets which are serving up block storage according to the variables which have already been set.

iscsi-initiator(8), iscsi-target(8)

The libiscsi library first appeared in NetBSD 4.0. This programmatic interface to the iSCSI subsystem first appeared in NetBSD 6.0.

Alistair Crooks <agc@NetBSD.org>.

February 19, 2011 NetBSD 11.0