2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * CDDL HEADER START
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * The contents of this file are subject to the terms of the
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * Common Development and Distribution License (the "License").
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * You may not use this file except in compliance with the License.
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * See the License for the specific language governing permissions
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * and limitations under the License.
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * When distributing Covered Code, include this CDDL HEADER in each
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * If applicable, add the following below this CDDL HEADER, with the
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * fields enclosed by brackets "[]" replaced with your own identifying
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * information: Portions Copyright [yyyy] [name of copyright owner]
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * CDDL HEADER END
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar * Use is subject to license terms.
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar/* This file is getting large unexpectly, a lex & yacc */
2654012f83cec5dc15b61dfe3e4a4915f186e7a6Reza Sabdar/* implementation is expected. */
#include "isns_dd.h"
#include "isns_cache.h"
#include "isns_pdu.h"
#ifdef DEBUG
NULL,
&print_pg,
&print_dd,
static int run_cmd(char *);
switch (tag) {
case ISNS_DELIMITER_ATTR_ID:
case ISNS_EID_ATTR_ID:
case ISNS_TIMESTAMP_ATTR_ID:
case ISNS_PORTAL_PORT_ATTR_ID:
case ISNS_PORTAL_NAME_ATTR_ID:
case ISNS_ESI_PORT_ATTR_ID:
case ISNS_SCN_PORT_ATTR_ID:
case ISNS_ISCSI_NAME_ATTR_ID:
case ISNS_ISCSI_ALIAS_ATTR_ID:
case ISNS_PG_TAG_ATTR_ID:
case ISNS_PG_INDEX_ATTR_ID:
case ISNS_DD_NAME_ATTR_ID:
case ISNS_DD_ID_ATTR_ID:
case ISNS_DD_SET_NAME_ATTR_ID:
case ISNS_DD_SET_ID_ATTR_ID:
int flag
if (flag) {
while (len > 0) {
uint8_t *v;
case ISNS_EID_ATTR_ID:
case ISNS_ISCSI_NAME_ATTR_ID:
case ISNS_ISCSI_ALIAS_ATTR_ID:
case ISNS_DD_NAME_ATTR_ID:
case ISNS_DD_SET_NAME_ATTR_ID:
case ISNS_PORTAL_PORT_ATTR_ID:
case ISNS_ESI_PORT_ATTR_ID:
case ISNS_SCN_PORT_ATTR_ID:
if (i & ISNS_CONTROL_NODE_TYPE) {
if (i & ISNS_INITIATOR_NODE_TYPE) {
if (i & ISNS_TARGET_NODE_TYPE) {
case ISNS_PG_TAG_ATTR_ID:
get_tlv_tag_name(t), t);
if (verbose_net) {
if (verbose_net) {
*argc = 0;
if (*cmd == 0) {
return (CMD_NONE);
return (CMD_HELP);
if (*cmd == 0) {
return (CMD_LIST);
cmd ++;
if (*cmd == 0) {
return (CMD_LISTP);
cmd ++;
if (*cmd == 0) {
return (CMD_LISTPG);
cmd ++;
if (*cmd == 0) {
return (CMD_LISTNE);
if (*cmd == 0) {
return (CMD_LISTDDS);
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_LISTDDSN);
if (*cmd == 0) {
return (CMD_LISTDD);
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_LISTDDN);
return (CMD_INVALID);
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_VIEW);
return (CMD_INVALID);
return (CMD_INVALID);
tmp[j] = 0;
return (CMD_INVALID);
if (*cmd != 0) {
switch (addcmd) {
case CMD_ADDDDN:
case CMD_ADDDDSN:
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_INVALID);
case CMD_ADDDD:
cmd[--j] = 0;
cmd[j] = 0;
return (CMD_INVALID);
return (addcmd);
return (CMD_INVALID);
return (CMD_INVALID);
tmp[j] = 0;
return (CMD_INVALID);
if (*cmd != 0) {
switch (rmcmd) {
case CMD_REMDDN:
case CMD_REMDDSN:
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_INVALID);
case CMD_REMDD:
cmd[--j] = 0;
cmd[j] = 0;
return (CMD_INVALID);
return (rmcmd);
return (CMD_INVALID);
if (*cmd == 0) {
return (newcmd);
switch (newcmd) {
case CMD_NEWDDN:
case CMD_NEWDDSN:
tmp[j] = 0;
return (CMD_INVALID);
case CMD_NEWDD:
case CMD_NEWDDS:
if (*cmd != 0) {
cmd[--j] = 0;
cmd[j] = 0;
return (newcmd);
return (CMD_INVALID);
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (delcmd);
return (CMD_INVALID);
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_ENABLE);
return (CMD_INVALID);
tmp[j] = 0;
if (*cmd == 0 && j > 0) {
return (CMD_DISABLE);
return (CMD_INVALID);
if (*cmd != 0) {
cmd[--j] = 0;
cmd[j] = 0;
return (CMD_FILE);
return (CMD_INVALID);
if (*cmd == 0) {
return (CMD_PAUSE);
return (CMD_INVALID);
if (*cmd == 0) {
return (CMD_HELP);
return (CMD_INVALID);
if (*cmd == 0) {
return (CMD_VERBOSE_PARSER);
cmd ++;
if (*cmd == 0) {
return (CMD_VERBOSE_MEMORY);
cmd ++;
if (*cmd == 0) {
return (CMD_VERBOSE_NET);
cmd ++;
if (*cmd == 0) {
return (CMD_VERBOSE_PARSER);
cmd ++;
if (*cmd == 0) {
return (CMD_VERBOSE_TIME);
cmd ++;
if (*cmd == 0) {
return (CMD_VERBOSE_LOCK);
return (CMD_INVALID);
if (*cmd == 0) {
return (CMD_QUIT);
return (CMD_INVALID);
return (CMD_INVALID);
if (ident != NULL) {
if (ident != NULL) {
num = 0;
while (num > 0) {
num --;
if (!alias) {
if (ident != NULL) {
if (ident != NULL) {
if (ident != NULL) {
if (ident != NULL) {
if (ident != NULL) {
if (ident != NULL) {
void *p1,
void *p2
bmp_t *p;
uint32_t n;
if (uid != 0) {
if (uid != 0) {
free(p);
bmp_t *p;
uint32_t n;
if (uid != 0) {
if (uid != 0) {
free(p);
int cmd_id,
int argc,
int *argv
switch (cmd_id) {
case CMD_NEWDD:
if (len > 0) {
case CMD_NEWDDS:
if (len > 0) {
case CMD_NEWDDN:
switch (argc) {
if (len > 0) {
if (uid > 0) {
case CMD_NEWDDSN:
switch (argc) {
if (len > 0) {
if (uid > 0) {
int cmd_id,
int uid
if (uid == 0) {
int cmd_id,
int uid
if (uid == 0) {
int cmd_id,
int *argv
if (uid == 0) {
switch (cmd_id) {
case CMD_ADDDD:
case CMD_ADDDDN:
case CMD_REMDD:
case CMD_REMDDN:
case CMD_ADDDDSN:
case CMD_REMDDSN:
switch (cmd_id) {
case CMD_ADDDD:
case CMD_REMDD:
case CMD_ADDDDN:
case CMD_REMDDN:
case CMD_ADDDDSN:
case CMD_REMDDSN:
switch (cmd_id) {
case CMD_ADDDD:
case CMD_REMDD:
case CMD_ADDDDN:
case CMD_ADDDDSN:
case CMD_REMDDN:
case CMD_REMDDSN:
char *file
if (f != NULL) {
cmd[i] = 0;
fclose(f);
char *cmd
switch (cmd_id) {
case CMD_LIST:
list_node();
case CMD_LISTNE:
list_entity();
case CMD_LISTP:
list_portal();
case CMD_LISTPG:
list_pg();
case CMD_LISTDD:
list_dd();
case CMD_LISTDDS:
list_dds();
case CMD_LISTDDN:
case CMD_LISTDDSN:
case CMD_NEWDD:
case CMD_NEWDDS:
case CMD_NEWDDN:
case CMD_NEWDDSN:
case CMD_DELDD:
case CMD_DELDDS:
case CMD_ENABLE:
case CMD_DISABLE:
case CMD_ADDDD:
case CMD_ADDDDN:
case CMD_ADDDDSN:
case CMD_REMDD:
case CMD_REMDDN:
case CMD_REMDDSN:
case CMD_PAUSE:
getchar();
case CMD_FILE:
case CMD_HELP:
case CMD_VERBOSE_MEMORY:
case CMD_VERBOSE_NET:
case CMD_VERBOSE_TIME:
case CMD_VERBOSE_LOCK:
case CMD_VERBOSE_PARSER:
case CMD_QUIT:
case CMD_NONE:
cmd[i] = 0;
return (NULL);