xref: /illumos-gate/usr/src/man/man3iscsit/it_tgt_create.3iscsit (revision 9b0bb795691f70ec1b1796f6d15266f82d7a3200)
te
Copyright (c) 2008, Sun Microsystems Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
IT_TGT_CREATE 3ISCSIT "Oct 1, 2008"
NAME
it_tgt_create, it_tgt_setprop, it_tgt_delete, it_tpgt_create, it_tpgt_delete, it_tgt_free, it_tpgt_free - create, modify and delete iSCSI Targets
SYNOPSIS

cc [ flag.\|.\|. ] file.\|.\|. -liscsit [ library.\|.\|. ]
#include <libiscsit.h>

int it_tgt_create(it_config_t **cfg, it_tgt_t **tgt,
 char *tgt_name);

int it_tgt_setprop(it_config_t *cfg it_tgt_t *tgt,
 nvlist_t *proplist, nvlist_t **errlist);

int it_tgt_delete(it_config_t *cfg, it_tgt_t *tgt,
 boolean_t force);

int it_tpgt_create(it_config_t *cfg, it_tgt_t *tgt,
 it_tpgt_t **tpgt, char *tpg_name, uint16_t tpgt_tag);

void it_tpgt_delete(it_config_t *cfg, it_tgt_t *tgt,
 it_tpgt_t *tpgt);

void it_tgt_free(it_tgt_t *tgt);

void it_tpgt_free(it_tpgt_t *tpgt);
PARAMETERS
cfg

a pointer to the iSCSI configuration structure

tgt

a pointer to an iSCSI target structure

tgt_name

the target node name for the target to be created. The name must be in either IQN or EUI format. If this value is NULL, a node name will be generated automatically in IQN format.

proplist

a pointer to an nvlist_t containing the target properties to be set

errlist

an optional pointer to an nvlist_t that will be used to store specific errors (if any) when validating target properties

force

a boolean value indicating if the target should be set to offline before removing it from the configuration. If not specified, the operation will fail if the target is determined to be online

tpgt

a pointer to a target portal group tag structure

tpgt_name

the name of the target portal group to be associated with this target portal group tag

tpgt_tag

a 16-bit numerical identifier for this target portal group tag. Valid values are 2 through 65535. If tpgt_tag is '0', it_tpgt_create() will assign an appropriate tag number. If tpgt_tag is != 0, and the requested tag number is unavailable, another value will be chosen.

DESCRIPTION

The it_tgt_create() function allocates and creates an it_tgt_t structure representing a new iSCSI target node. If tgt_name is NULL, then a unique target node name will be generated automatically. Otherwise, the value of tgt_name will be used as the target node name. The new it_tgt_t structure is added to the target list (cfg_tgt_list) in the configuration structure.

The it_tgt_setprop() function validates the provided property list and sets the properties for the specified target. If errlist is not NULL, this function returns detailed errors for each property that failed. The format for errlist is key = property, value = error string.

The it_tgt_delete() function removes the target represented by tgt from the configuration. The tgt argument is an existing it_tgt_t structure within the configuration cfg.

The it_tpgt_create() function allocates and creates an it_tpgt_t structure representing a new iSCSI target portal group tag. The new it_tpgt_t structure is added to the target tpgt list (tgt_tpgt_list) in the it_tgt_t structure.

The it_tpgt_delete() function removes the target portal group tag represented by tpgt, from the configuration. The tpgt argument is an existing is_tpgt_t structure within the target tgt.

The it_tgt_free() function frees an it_tgt_t structure. If tgt\(->next is not NULL, this function frees all structures in the list.

The it_tpgt_free() function deallocates resources of an it_tpgt_t structure. If tpgt->next is not NULL, this function frees all members of the list.

Configuration changes as a result of these functions are not instantiated until the modified configuration is committed by calling it_config_commit(3ISCSIT).

Target nvlist properties are as follows:

nvlist Key Type Valid Values
targetchapuser string any string, or none to remove
targetchapsecret string
string of at least 12 characters but not more than 255 characters. secret will be base64 encoded when stored.
alias string any string or none to remove
auth string radius, chap, or none
RETURN VALUES

The it_tgt_create(), it_tgt_setprop(), it_tgt_delete(), it_tpgt_create(), and it_tpgt_delete() functions return 0 on success and an error value on failure.

ERRORS

The it_tgt_create(), it_tgt_setprop(), it_tgt_delete(), it_tpgt_create(), and it_tpgt_delete() functions will fail if: E2BIG

All tag numbers are already in use.

EBUSY

The target is online.

EEXIST

The requested target node name is already configured.

EINVAL

A parameter or property is invalid.

ENOMEM

Resources could not be allocated.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Committed
MT-Level MT-Safe
SEE ALSO

it_config_commit(3ISCSIT), it_ini_create(3ISCSIT), it_portal_create(3ISCSIT), it_tpg_create(3ISCSIT), libiscsit(3LIB), libnvpair(3LIB), libstmf(3LIB), attributes(5)