fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * CDDL HEADER START
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The contents of this file are subject to the terms of the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Common Development and Distribution License (the "License").
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * You may not use this file except in compliance with the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * or http://www.opensolaris.org/os/licensing.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * See the License for the specific language governing permissions
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * and limitations under the License.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * When distributing Covered Code, include this CDDL HEADER in each
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * If applicable, add the following below this CDDL HEADER, with the
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner]
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * CDDL HEADER END
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
7ff836697c120cb94bd30d5c2204eb9b74718e4cZhong Wang * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Use is subject to license terms.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifndef _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#include <sys/note.h>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef __cplusplus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteextern "C" {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * A device handle describes the characterics of a device
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Node. Each device handle also contains information
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * on the serveral different ports it is discovered on.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Classification of Name Server Objects
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * +-----------------------------------+---------------------------+
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | Device (node) Specific | Port Specific |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * +-----------------------------------+---------------------------+
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | Node Name (NN) | Port type (PT) |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | Symbolic Node Name Length | Port Id (ID) |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | Symbloic Node Name(SNN) | Symbolic Port Name length |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | Initial Process associator(IPA) | Symbolic Port Name (SPN) |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | | Class of Service (CS) |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | | fc4 types (FT) |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * | | IP Address (IP) |
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * +-----------------------------------+---------------------------+
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * The above classification causes some inconvenience in not having
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * the ability to directly copy all the nameserver objects into a
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * contiguous piece of memory. But we'll live with it.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define CT_REV 0x01 /* Common Transport revision */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* FCS types */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSTYPE_KEYSERVICE 0xF7
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSTYPE_ALIAS 0xF8
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSTYPE_MGMTSERVICE 0xFA
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSTYPE_TIMESERVICE 0xFB
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSTYPE_DIRECTORY 0xFC
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSTYEP_FABRIC 0xFD
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * FCS subtypes for Directory Service
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_DS_NAME_SERVER 0x02 /* Zoned Name Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_DS_IPADDR_SERVER 0x03 /* IP Address Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * FCS subtypes for Management Service
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_MS_CONFIG_SERVER 0x01 /* Fabric Config Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_MS_UNZONED_NAME_SERVER 0x02 /* Unzoned Name Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_MS_ZONE_SERVER 0x03 /* Fabric Zone Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * FCS subtypes for Time Service
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_TS_TIME_SERVER 0x01 /* Time Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * FCS subtypes for Alias Service
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_AS_ALIAS_SERVER 0x01 /* Alias Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * FCS subtypes for Key Service
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FCSSUB_KS_KEY_SERVER 0x00 /* Key Distribution Server */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* FC-CT response codes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FS_RJT_IU 0x8001
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FS_ACC_IU 0x8002
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* FS_RJT Reason Codes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_BADCMD 0x01 /* Invalid command code */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_BADVER 0x02 /* Invalid version level */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_LOGICALERR 0x03 /* Logical error */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_BADSIZE 0x04 /* Invalid IU size */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_BUSY 0x05 /* Logical busy */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_PROTOCOLERR 0x07 /* Protocol error */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_CMDFAILED 0x08 /* Unable to perform command */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_UNSUPP 0x0b /* Command not supported */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FSRJT_VENDOR 0xff /* vendor unique error */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Name Service Command Codes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GA_NXT 0x0100 /* Get All next */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GPN_ID 0x0112 /* Get Port Name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GNN_ID 0x0113 /* Get Node Name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GCS_ID 0x0114 /* Get Class Of service */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GFT_ID 0x0117 /* Get FC-4 Types */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GSPN_ID 0x0118 /* Get Sym Port name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GPT_ID 0x011A /* Get Port Type */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GID_PN 0x0121 /* Get port id for PN */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GID_NN 0x0131 /* Get port id for NN */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GIP_NN 0x0135 /* Get IP address */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GIPA_NN 0x0136 /* Get I.P.A */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GSNN_NN 0x0139 /* Get Sym Node name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GNN_IP 0x0153 /* Get Node name for IP */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GIPA_IP 0x0156 /* Get I.P.A for IP */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GID_FT 0x0171 /* Get port Id for FC-4 type */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GID_PT 0x01A1 /* Get port Id for type */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RPN_ID 0x0212 /* Reg port name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RNN_ID 0x0213 /* Reg node name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RCS_ID 0x0214 /* Reg C.O.S */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RFT_ID 0x0217 /* Reg FC-4 Types */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RSPN_ID 0x0218 /* Reg Sym Port name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RPT_ID 0x021A /* Reg Port Type */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RIP_NN 0x0235 /* Reg I.P address */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RIPA_NN 0x0236 /* Reg I.P.A */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_RSNN_NN 0x0239 /* Reg Sym Node name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_DA_ID 0x0300 /* De-Register all */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/* Name service reject explanation codes */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_NONE 0x00 /* No additional explanation */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_PORTNOTREG 0x01 /* Port ID not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_PWWNNOTREG 0x02 /* Port Name not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_NWWNNOTREG 0x03 /* Node Name not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_CoSNOTREG 0x04 /* Class of Service no registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_IPNOTREG 0x05 /* IP Address not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_IPANOTREG 0x06 /* Initial Proc. Assoc not reg. */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_FC4NOTREG 0x07 /* FC$ types not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_SPNNOTREG 0x08 /* Symbolic port name not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_SNNNOTREG 0x09 /* Symbolic node name not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_TYPENOTREG 0x0a /* Port type not registered */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_NOPERM 0x10 /* Access denied */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_BADPORTID 0x11 /* Unacceptable port ID */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NSRJTX_DBEMPTY 0x12 /* Data base empty */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
7ff836697c120cb94bd30d5c2204eb9b74718e4cZhong Wang/* Management Service Command Codes */
7ff836697c120cb94bd30d5c2204eb9b74718e4cZhong Wang#define MS_GIEL 0x0101 /* Get Interconnect Element List */
7ff836697c120cb94bd30d5c2204eb9b74718e4cZhong Wang
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASSF 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASS1 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASS2 0x04
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASS3 0x08
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASS4 0x10
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASS5 0x20
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_CLASS6 0x40
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_UNKNOWN 0x00
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_N 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_NL 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_F_NL 0x03
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_NX 0x7F
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_F 0x81
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_FL 0x82
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_NS_PORT_E 0x84
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_IS_CMD_A_QUERY(cmd) ((cmd) >= NS_GA_NXT && (cmd) <= NS_GID_PT)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_IS_CMD_A_REG(cmd) ((cmd) >= NS_RPN_ID && (cmd) <= NS_DA_ID)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define NS_GAN_RESP_LEN (sizeof (ns_resp_gan_t))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * SCR registration function codes
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_SCR_FABRIC_REGISTRATION 0x01
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_SCR_NPORT_REGISTRATION 0x02
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_SCR_FULL_REGISTRATION 0x03
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#define FC_SCR_CLEAR_REGISTRATION 0xFF
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register port/node name request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte *
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * 'x' means either P (port) or N (node)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct rxn_id {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t rxn_port_id; /* Port Identfier */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t rxn_xname; /* Port/Node Name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_rxn_req_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register Class of service request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct rcos {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t rcos_port_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint32_t rcos_cos;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_rcos_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register FC-4 TYPEs request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct rfc_type {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t rfc_port_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t rfc_types[32]; /* bit map of ULP types */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_rfc_type_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register symbolic port name request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct spn {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t spn_port_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t spn_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte /*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * What follows here is the actual name
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * which is allocated on the fly during
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * packet allocation.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_spn_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register port type request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct rpt {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t rpt_port_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_porttype_t rpt_type;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_rpt_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register IP address request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct rip {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t rip_node_name;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t rip_ip_addr[16];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_rip_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register Initial Process Associator request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ipa {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t ipa_node_name;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t ipa_value[8];
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_ipa_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Register Symbolic Node Name request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct snn {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t snn_node_name;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t snn_len;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte /*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * What follows here is the actual name
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * which is allocated on the fly during
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * packet allocation.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_snn_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte/*
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte * Remove all request payload
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct remall {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t rem_port_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_remall_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef fc_ct_header_t fc_reg_resp_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef fc_ct_header_t fc_query_resp_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_req_gid_pt {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_porttype_t port_type;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_req_gid_pt_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_resp_gid_pt {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t gid_port_id;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_resp_gid_pt_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_req_gan {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t pid;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_req_gan_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_resp_gan {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_porttype_t gan_type_id; /* type and id next */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t gan_pwwn; /* Port Name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t gan_spnlen; /* Sym P Name Len */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char gan_spname[255]; /* Sym Port name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t gan_nwwn; /* Node Name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t gan_snnlen; /* Sym N name Len */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte char gan_snname[255]; /* Sym Node name */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t gan_ipa[8]; /* Initial Proc assoc */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uchar_t gan_ip[16]; /* IP Address */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint32_t gan_cos; /* Class of Service */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte uint32_t gan_fc4types[8]; /* FC-4 Types */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_resp_gan_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_req_gid_pn {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t pwwn;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_req_gid_pn_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_resp_gid_pn {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t pid;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_resp_gid_pn_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_req_gpn_id {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t pid;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_req_gpn_id_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_resp_gpn_id {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte la_wwn_t pwwn;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_resp_gpn_id_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_req_gpt_id {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_portid_t pid;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_req_gpt_id_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortetypedef struct ns_resp_gpt_id {
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte fc_porttype_t port_type;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte} ns_resp_gpt_id_t;
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#if !defined(__lint)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gpn_id))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", rxn_id))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gpn_id))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gid_pn))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gid_pn))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gan))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gan))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gid_pt))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gpt_id))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gpt_id))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", remall))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", snn))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", ipa))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", rip))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", rpt))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", spn))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", rfc_type))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte_NOTE(SCHEME_PROTECTS_DATA("unique per request", rcos))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* __lint */
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#ifdef __cplusplus
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte}
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#endif /* _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H */