NAME
libiscsi —
iSCSI network storage
protocol implementation
LIBRARY
iSCSI protocol library (libiscsi, -liscsi)
SYNOPSIS
#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);
DESCRIPTION
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
iscsi_target_set_defaults() and will
then set various values using the
iscsi_target_setvar()
function. The value of a variable can be retrieved at any time using the
iscsi_target_getvar() function. When all of the variables
have been set, the
iscsi_target_start() 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
iscsi_initiator_set_defaults() function, to set default
values for the initiator variables. Once all the values have been set to the
user preferences using the
iscsi_initiator_setvar()
function, then the
iscsi_initiator_start() function is
called.
The
libiscsi library can be used to perform iSCSI device
discovery by calling the
iscsi_initiator_discovery()
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.
SEE ALSO
iscsi-initiator(8),
iscsi-target(8)
HISTORY
The
libiscsi library first appeared in
NetBSD
4.0. This programmatic interface to the iSCSI subsystem first appeared
in
NetBSD 6.0.
AUTHORS
Alistair Crooks
<
agc@NetBSD.org>.