/*
* CDDL HEADER START
*
* 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
* 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]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _FC_ERROR_H
#define _FC_ERROR_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* If there are a good set of status, reason (may be action, expln)
* values, an FC_FAILURE function return code should be enough.
* Otherwise pick and choose your favorite from here. Try consulting
* the transport programming guide for any help. If that doesn't help,
* watch the blue sky.
*
* Geez, FC_ is already in use in vm/faultcode.h. Hope it won't grow
* much. The FC_NOMAP is already a defined Value there. So defining
* FC_NOMAP as FC_NO_MAP here. Remember to keep a tab on faultcode.h
*
*/
/* handle this FC4 type */
/*
* pkt state definitions
*/
/*
* pkt_reason for REMOTE_STOP
*/
/*
* pkt_reason (except for state = NPORT_RJT, FABRIC_RJT, NPORT_BSY,
* FABRIC_BSY, LS_RJT, BA_RJT, FS_RJT)
*
* FCA unique error codes can begin after
* FC_REASON_FCA_UNIQUE. Each FCA defines its
* own set with values greater >= 0x7F
*/
/*
* pkt_reason for FABRIC_RJT and NPORT_RJT
*
* +--------------------------------------------+
* | F_RJT Specific P_RJT Specific |
* +--------------------------------------------+
* | INVALID_D_ID INVALID_D_ID |
* | INVALID_S_ID INVALID_S_ID |
* | NPORT_NOT_AVAIL_TEMP |
* | NPORT_NOT_AVAIL_PERM |
* | CLASS_NOT_SUPPORTED CLASS_NOT_SUPPORTED |
* | DELIMITER_ERROR DELIMITER_ERROR |
* | TYPE_NOT_SUPPORTED TYPE_NOT_SUPPORTED |
* | INVALID_LINK_CONTROL |
* | INVALID_R_CTL |
* | INVALID_F_CTL |
* | INVALID_OX_ID |
* | INVALID_RX_ID |
* | INVALID_SEQ_ID |
* | INVALID_DF_CTL |
* | INVALID_SEQ_CNT |
* | INVALID_PARAMETER |
* | EXCHANGE_ERROR |
* | PROTOCOL_ERROR PROTOCOL_ERROR |
* | INCORRECT_LENGTH INCORRECT_LENGTH |
* | UNEXPECTED_ACK |
* | LOGIN_REQUIRED LOGIN_REQUIRED |
* | EXCESSIVE_SEQUENCES |
* | CANT_ESTABLISH_EXCH |
* | SECURITY_NOT_SUPP |
* | NO_FABRIC_PATH |
* | VENDOR_UNIQUE VENDOR_UNIQUE |
* +--------------------------------------------+
*
*/
/*
* pkt_reason for NPORT_BSY
*/
/*
* pkt_reason for FABRIC_BSY
*/
/*
* pkt_reason for LS_RJT
* pkt_reason for BA_RJT
*/
/*
* pkt_reason for FS_RJT
*/
/*
* pkt_action for NPORT_BUSY
*/
/*
* pkt_action codes for NPORT_RJT, FABRIC_RJT
* and TIMEOUT
*/
/*
* pkt_action codes for reason FC_REASON_ABORT_TIMEOUT
*/
/*
* pkt_expln codes for BA_RJT
*/
#ifdef __cplusplus
}
#endif
#endif /* _FC_ERROR_H */