xref: /titanic_50/usr/src/man/man3iscsit/it_config_load.3iscsit (revision 0a70879558a701a07771af87e7852a12f3bfd438)
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_CONFIG_LOAD 3ISCSIT "Oct 1, 2008"
NAME
it_config_load, it_config_commit, it_config_setprop, it_config_free - set and retrieve configuration data for the iSCSI Target Port Provider
SYNOPSIS

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

int it_config_load(it_config_t **cfg);

int it_config_commit(it_config_t *cfg);

int it_config_setprop(it_config_t *cfg, nvlist_t *proplist,
 nvlist_t **errlist);

void it_config_free(it_config_t *cfg);
PARAMETERS
cfg

a pointer to the iSCSI configuration structure

proplist

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

errlist

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

DESCRIPTION

The it_config_load() function allocates and creates an it_config_t structure representing the current iSCSI configuration. This structure is compiled using the "provider" data returned by stmfGetProviderData(3STMF). If there is no provider data associated with iscsit, the it_config_t structure is set to a default configuration.

The it_config_commit() function informs the iscsit service that the configuration has changed and commits the new configuration to the persistent store by calling stmfSetProviderData(3STMF). This function can be called multiple times during a configuration sequence, if necessary.

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

The it_config_free() function frees resources associated with the it_config_t structure.

Global nvlist properties are as follows:

nvlist Key Type Valid Values
alias string any string
auth string radius, chap, or none
isns boolean B_TRUE, B_FALSE
isnsserver string array
Array of portal specifications of the form IPaddress:port. Port is optional; if not specified, the default iSNS port number of 3205 will be used. IPv6 addresses should be enclosed in square brackets '[' ']'. If "none" is specified, all defined iSNS servers will be removed from the configuration.
radiusserver string
IPaddress:port specification as described for 'isnsserver'
radiussecret string
string of at least 12 characters but not more than 255 characters. secret will be base64 encoded when stored.
RETURN VALUES

The it_config_load(), it_config_commit(), and it_config_setprop() functions return 0 on success and an error value on failure.

ERRORS

The it_config_load(), it_config_commit(), and it_config_setprop() functions will fail if: EINVAL

A parameter or property is invalid.

ENOMEM

Resources could not be allocated.

The it_config_commit() function will also fail if: STMF_ERROR_SERVICE_DATA_VERSION

The configuration was updated by another client. See stmfSetProviderData(3STMF).

ATTRIBUTES

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

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

it_ini_create(3ISCSIT), it_portal_create(3ISCSIT), it_tgt_create(3ISCSIT), it_tpg_create(3ISCSIT), libiscsit(3LIB), libnvpair(3LIB), libstmf(3LIB), stmfGetProviderData(3STMF), stmfSetProviderData(3STMF), attributes(5)