xref: /titanic_41/usr/src/uts/common/sys/fibre-channel/impl/fcgs2.h (revision 7ff836697c120cb94bd30d5c2204eb9b74718e4c)
1fcf3ce44SJohn Forte /*
2fcf3ce44SJohn Forte  * CDDL HEADER START
3fcf3ce44SJohn Forte  *
4fcf3ce44SJohn Forte  * The contents of this file are subject to the terms of the
5fcf3ce44SJohn Forte  * Common Development and Distribution License (the "License").
6fcf3ce44SJohn Forte  * You may not use this file except in compliance with the License.
7fcf3ce44SJohn Forte  *
8fcf3ce44SJohn Forte  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9fcf3ce44SJohn Forte  * or http://www.opensolaris.org/os/licensing.
10fcf3ce44SJohn Forte  * See the License for the specific language governing permissions
11fcf3ce44SJohn Forte  * and limitations under the License.
12fcf3ce44SJohn Forte  *
13fcf3ce44SJohn Forte  * When distributing Covered Code, include this CDDL HEADER in each
14fcf3ce44SJohn Forte  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15fcf3ce44SJohn Forte  * If applicable, add the following below this CDDL HEADER, with the
16fcf3ce44SJohn Forte  * fields enclosed by brackets "[]" replaced with your own identifying
17fcf3ce44SJohn Forte  * information: Portions Copyright [yyyy] [name of copyright owner]
18fcf3ce44SJohn Forte  *
19fcf3ce44SJohn Forte  * CDDL HEADER END
20fcf3ce44SJohn Forte  */
21fcf3ce44SJohn Forte /*
22*7ff83669SZhong Wang  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23fcf3ce44SJohn Forte  * Use is subject to license terms.
24fcf3ce44SJohn Forte  */
25fcf3ce44SJohn Forte 
26fcf3ce44SJohn Forte #ifndef	_SYS_FIBRE_CHANNEL_IMPL_FCGS2_H
27fcf3ce44SJohn Forte #define	_SYS_FIBRE_CHANNEL_IMPL_FCGS2_H
28fcf3ce44SJohn Forte 
29fcf3ce44SJohn Forte 
30fcf3ce44SJohn Forte #include <sys/note.h>
31fcf3ce44SJohn Forte 
32fcf3ce44SJohn Forte #ifdef	__cplusplus
33fcf3ce44SJohn Forte extern "C" {
34fcf3ce44SJohn Forte #endif
35fcf3ce44SJohn Forte 
36fcf3ce44SJohn Forte /*
37fcf3ce44SJohn Forte  * A device handle describes the characterics of a device
38fcf3ce44SJohn Forte  * Node. Each device handle also contains information
39fcf3ce44SJohn Forte  * on the serveral different ports it is discovered on.
40fcf3ce44SJohn Forte  *
41fcf3ce44SJohn Forte  * Classification of Name Server Objects
42fcf3ce44SJohn Forte  *
43fcf3ce44SJohn Forte  * +-----------------------------------+---------------------------+
44fcf3ce44SJohn Forte  * |  Device (node) Specific           |  Port Specific            |
45fcf3ce44SJohn Forte  * +-----------------------------------+---------------------------+
46fcf3ce44SJohn Forte  * |  Node Name (NN)                   | Port type (PT)            |
47fcf3ce44SJohn Forte  * |  Symbolic Node Name Length        | Port Id (ID)              |
48fcf3ce44SJohn Forte  * |  Symbloic Node Name(SNN)          | Symbolic Port Name length |
49fcf3ce44SJohn Forte  * |  Initial Process associator(IPA)  | Symbolic Port Name (SPN)  |
50fcf3ce44SJohn Forte  * |                                   | Class of Service (CS)     |
51fcf3ce44SJohn Forte  * |                                   | fc4 types (FT)            |
52fcf3ce44SJohn Forte  * |                                   | IP Address (IP)           |
53fcf3ce44SJohn Forte  * +-----------------------------------+---------------------------+
54fcf3ce44SJohn Forte  *
55fcf3ce44SJohn Forte  * The above classification causes some inconvenience in not having
56fcf3ce44SJohn Forte  * the ability to directly copy all the nameserver objects into a
57fcf3ce44SJohn Forte  * contiguous piece of memory. But we'll live with it.
58fcf3ce44SJohn Forte  */
59fcf3ce44SJohn Forte 
60fcf3ce44SJohn Forte #define	CT_REV			0x01	/* Common Transport revision */
61fcf3ce44SJohn Forte 
62fcf3ce44SJohn Forte /* FCS types */
63fcf3ce44SJohn Forte #define	FCSTYPE_KEYSERVICE	0xF7
64fcf3ce44SJohn Forte #define	FCSTYPE_ALIAS		0xF8
65fcf3ce44SJohn Forte #define	FCSTYPE_MGMTSERVICE	0xFA
66fcf3ce44SJohn Forte #define	FCSTYPE_TIMESERVICE	0xFB
67fcf3ce44SJohn Forte #define	FCSTYPE_DIRECTORY	0xFC
68fcf3ce44SJohn Forte #define	FCSTYEP_FABRIC		0xFD
69fcf3ce44SJohn Forte 
70fcf3ce44SJohn Forte /*
71fcf3ce44SJohn Forte  * FCS subtypes for Directory Service
72fcf3ce44SJohn Forte  */
73fcf3ce44SJohn Forte #define	FCSSUB_DS_NAME_SERVER		0x02	/* Zoned Name Server */
74fcf3ce44SJohn Forte #define	FCSSUB_DS_IPADDR_SERVER		0x03	/* IP Address Server */
75fcf3ce44SJohn Forte 
76fcf3ce44SJohn Forte /*
77fcf3ce44SJohn Forte  * FCS subtypes for Management Service
78fcf3ce44SJohn Forte  */
79fcf3ce44SJohn Forte #define	FCSSUB_MS_CONFIG_SERVER		0x01	/* Fabric Config Server */
80fcf3ce44SJohn Forte #define	FCSSUB_MS_UNZONED_NAME_SERVER	0x02	/* Unzoned Name Server */
81fcf3ce44SJohn Forte #define	FCSSUB_MS_ZONE_SERVER		0x03	/* Fabric Zone Server */
82fcf3ce44SJohn Forte 
83fcf3ce44SJohn Forte /*
84fcf3ce44SJohn Forte  * FCS subtypes for Time Service
85fcf3ce44SJohn Forte  */
86fcf3ce44SJohn Forte #define	FCSSUB_TS_TIME_SERVER		0x01	/* Time Server */
87fcf3ce44SJohn Forte 
88fcf3ce44SJohn Forte /*
89fcf3ce44SJohn Forte  * FCS subtypes for Alias Service
90fcf3ce44SJohn Forte  */
91fcf3ce44SJohn Forte #define	FCSSUB_AS_ALIAS_SERVER		0x01	/* Alias Server */
92fcf3ce44SJohn Forte 
93fcf3ce44SJohn Forte /*
94fcf3ce44SJohn Forte  * FCS subtypes for Key Service
95fcf3ce44SJohn Forte  */
96fcf3ce44SJohn Forte #define	FCSSUB_KS_KEY_SERVER		0x00	/* Key Distribution Server */
97fcf3ce44SJohn Forte 
98fcf3ce44SJohn Forte /* FC-CT response codes */
99fcf3ce44SJohn Forte #define	FS_RJT_IU		0x8001
100fcf3ce44SJohn Forte #define	FS_ACC_IU		0x8002
101fcf3ce44SJohn Forte 
102fcf3ce44SJohn Forte /* FS_RJT Reason Codes */
103fcf3ce44SJohn Forte #define	FSRJT_BADCMD		0x01	/* Invalid command code */
104fcf3ce44SJohn Forte #define	FSRJT_BADVER		0x02	/* Invalid version level */
105fcf3ce44SJohn Forte #define	FSRJT_LOGICALERR	0x03	/* Logical error */
106fcf3ce44SJohn Forte #define	FSRJT_BADSIZE		0x04	/* Invalid IU size */
107fcf3ce44SJohn Forte #define	FSRJT_BUSY		0x05	/* Logical busy */
108fcf3ce44SJohn Forte #define	FSRJT_PROTOCOLERR	0x07	/* Protocol error */
109fcf3ce44SJohn Forte #define	FSRJT_CMDFAILED		0x08	/* Unable to perform command */
110fcf3ce44SJohn Forte #define	FSRJT_UNSUPP		0x0b	/* Command not supported */
111fcf3ce44SJohn Forte #define	FSRJT_VENDOR		0xff	/* vendor unique error */
112fcf3ce44SJohn Forte 
113fcf3ce44SJohn Forte /* Name Service Command Codes */
114fcf3ce44SJohn Forte #define	NS_GA_NXT		0x0100	/* Get All next */
115fcf3ce44SJohn Forte #define	NS_GPN_ID		0x0112	/* Get Port Name */
116fcf3ce44SJohn Forte #define	NS_GNN_ID		0x0113	/* Get Node Name */
117fcf3ce44SJohn Forte #define	NS_GCS_ID		0x0114	/* Get Class Of service */
118fcf3ce44SJohn Forte #define	NS_GFT_ID		0x0117	/* Get FC-4 Types */
119fcf3ce44SJohn Forte #define	NS_GSPN_ID		0x0118	/* Get Sym Port name */
120fcf3ce44SJohn Forte #define	NS_GPT_ID		0x011A	/* Get Port Type */
121fcf3ce44SJohn Forte #define	NS_GID_PN		0x0121	/* Get port id for PN */
122fcf3ce44SJohn Forte #define	NS_GID_NN		0x0131	/* Get port id for NN */
123fcf3ce44SJohn Forte #define	NS_GIP_NN		0x0135	/* Get IP address */
124fcf3ce44SJohn Forte #define	NS_GIPA_NN		0x0136	/* Get I.P.A */
125fcf3ce44SJohn Forte #define	NS_GSNN_NN		0x0139	/* Get Sym Node name */
126fcf3ce44SJohn Forte #define	NS_GNN_IP		0x0153	/* Get Node name for IP */
127fcf3ce44SJohn Forte #define	NS_GIPA_IP		0x0156	/* Get I.P.A for IP */
128fcf3ce44SJohn Forte #define	NS_GID_FT		0x0171	/* Get port Id for FC-4 type */
129fcf3ce44SJohn Forte #define	NS_GID_PT		0x01A1	/* Get port Id for type */
130fcf3ce44SJohn Forte #define	NS_RPN_ID		0x0212	/* Reg port name */
131fcf3ce44SJohn Forte #define	NS_RNN_ID		0x0213	/* Reg node name */
132fcf3ce44SJohn Forte #define	NS_RCS_ID		0x0214	/* Reg C.O.S */
133fcf3ce44SJohn Forte #define	NS_RFT_ID		0x0217	/* Reg FC-4 Types */
134fcf3ce44SJohn Forte #define	NS_RSPN_ID		0x0218	/* Reg Sym Port name */
135fcf3ce44SJohn Forte #define	NS_RPT_ID		0x021A	/* Reg Port Type */
136fcf3ce44SJohn Forte #define	NS_RIP_NN		0x0235	/* Reg I.P address */
137fcf3ce44SJohn Forte #define	NS_RIPA_NN		0x0236	/* Reg I.P.A */
138fcf3ce44SJohn Forte #define	NS_RSNN_NN		0x0239	/* Reg Sym Node name */
139fcf3ce44SJohn Forte #define	NS_DA_ID		0x0300	/* De-Register all */
140fcf3ce44SJohn Forte 
141fcf3ce44SJohn Forte /* Name service reject explanation codes */
142fcf3ce44SJohn Forte #define	NSRJTX_NONE		0x00	/* No additional explanation */
143fcf3ce44SJohn Forte #define	NSRJTX_PORTNOTREG	0x01	/* Port ID not registered */
144fcf3ce44SJohn Forte #define	NSRJTX_PWWNNOTREG	0x02	/* Port Name not registered */
145fcf3ce44SJohn Forte #define	NSRJTX_NWWNNOTREG	0x03	/* Node Name not registered */
146fcf3ce44SJohn Forte #define	NSRJTX_CoSNOTREG	0x04	/* Class of Service no registered */
147fcf3ce44SJohn Forte #define	NSRJTX_IPNOTREG		0x05	/* IP Address not registered */
148fcf3ce44SJohn Forte #define	NSRJTX_IPANOTREG	0x06	/* Initial Proc. Assoc not reg. */
149fcf3ce44SJohn Forte #define	NSRJTX_FC4NOTREG	0x07	/* FC$ types not registered */
150fcf3ce44SJohn Forte #define	NSRJTX_SPNNOTREG	0x08	/* Symbolic port name not registered */
151fcf3ce44SJohn Forte #define	NSRJTX_SNNNOTREG	0x09	/* Symbolic node name not registered */
152fcf3ce44SJohn Forte #define	NSRJTX_TYPENOTREG	0x0a	/* Port type not registered */
153fcf3ce44SJohn Forte #define	NSRJTX_NOPERM		0x10	/* Access denied */
154fcf3ce44SJohn Forte #define	NSRJTX_BADPORTID	0x11	/* Unacceptable port ID */
155fcf3ce44SJohn Forte #define	NSRJTX_DBEMPTY		0x12	/* Data base empty */
156fcf3ce44SJohn Forte 
157*7ff83669SZhong Wang /* Management Service Command Codes */
158*7ff83669SZhong Wang #define	MS_GIEL		0x0101	/* Get Interconnect Element List */
159*7ff83669SZhong Wang 
160fcf3ce44SJohn Forte #define	FC_NS_CLASSF		0x01
161fcf3ce44SJohn Forte #define	FC_NS_CLASS1		0x02
162fcf3ce44SJohn Forte #define	FC_NS_CLASS2		0x04
163fcf3ce44SJohn Forte #define	FC_NS_CLASS3		0x08
164fcf3ce44SJohn Forte #define	FC_NS_CLASS4		0x10
165fcf3ce44SJohn Forte #define	FC_NS_CLASS5		0x20
166fcf3ce44SJohn Forte #define	FC_NS_CLASS6		0x40
167fcf3ce44SJohn Forte 
168fcf3ce44SJohn Forte #define	FC_NS_PORT_UNKNOWN	0x00
169fcf3ce44SJohn Forte #define	FC_NS_PORT_N		0x01
170fcf3ce44SJohn Forte #define	FC_NS_PORT_NL		0x02
171fcf3ce44SJohn Forte #define	FC_NS_PORT_F_NL		0x03
172fcf3ce44SJohn Forte #define	FC_NS_PORT_NX		0x7F
173fcf3ce44SJohn Forte #define	FC_NS_PORT_F		0x81
174fcf3ce44SJohn Forte #define	FC_NS_PORT_FL		0x82
175fcf3ce44SJohn Forte #define	FC_NS_PORT_E		0x84
176fcf3ce44SJohn Forte 
177fcf3ce44SJohn Forte #define	FC_IS_CMD_A_QUERY(cmd)	((cmd) >= NS_GA_NXT && (cmd) <= NS_GID_PT)
178fcf3ce44SJohn Forte #define	FC_IS_CMD_A_REG(cmd)	((cmd) >= NS_RPN_ID && (cmd) <= NS_DA_ID)
179fcf3ce44SJohn Forte #define	NS_GAN_RESP_LEN		(sizeof (ns_resp_gan_t))
180fcf3ce44SJohn Forte 
181fcf3ce44SJohn Forte /*
182fcf3ce44SJohn Forte  * SCR registration function codes
183fcf3ce44SJohn Forte  */
184fcf3ce44SJohn Forte #define	FC_SCR_FABRIC_REGISTRATION	0x01
185fcf3ce44SJohn Forte #define	FC_SCR_NPORT_REGISTRATION	0x02
186fcf3ce44SJohn Forte #define	FC_SCR_FULL_REGISTRATION	0x03
187fcf3ce44SJohn Forte #define	FC_SCR_CLEAR_REGISTRATION	0xFF
188fcf3ce44SJohn Forte 
189fcf3ce44SJohn Forte /*
190fcf3ce44SJohn Forte  * Register port/node name request payload
191fcf3ce44SJohn Forte  *
192fcf3ce44SJohn Forte  * 'x' means either P (port) or N (node)
193fcf3ce44SJohn Forte  */
194fcf3ce44SJohn Forte typedef struct rxn_id {
195fcf3ce44SJohn Forte 	fc_portid_t	rxn_port_id;	/* Port Identfier */
196fcf3ce44SJohn Forte 	la_wwn_t	rxn_xname;		/* Port/Node Name */
197fcf3ce44SJohn Forte } ns_rxn_req_t;
198fcf3ce44SJohn Forte 
199fcf3ce44SJohn Forte /*
200fcf3ce44SJohn Forte  * Register Class of service request payload
201fcf3ce44SJohn Forte  */
202fcf3ce44SJohn Forte typedef struct rcos {
203fcf3ce44SJohn Forte 	fc_portid_t	rcos_port_id;
204fcf3ce44SJohn Forte 	uint32_t	rcos_cos;
205fcf3ce44SJohn Forte } ns_rcos_t;
206fcf3ce44SJohn Forte 
207fcf3ce44SJohn Forte /*
208fcf3ce44SJohn Forte  * Register FC-4 TYPEs request payload
209fcf3ce44SJohn Forte  */
210fcf3ce44SJohn Forte typedef struct rfc_type {
211fcf3ce44SJohn Forte 	fc_portid_t	rfc_port_id;
212fcf3ce44SJohn Forte 	uchar_t		rfc_types[32];	/* bit map of ULP types */
213fcf3ce44SJohn Forte } ns_rfc_type_t;
214fcf3ce44SJohn Forte 
215fcf3ce44SJohn Forte /*
216fcf3ce44SJohn Forte  * Register symbolic port name request payload
217fcf3ce44SJohn Forte  */
218fcf3ce44SJohn Forte typedef struct spn {
219fcf3ce44SJohn Forte 	fc_portid_t	spn_port_id;
220fcf3ce44SJohn Forte 	uchar_t		spn_len;
221fcf3ce44SJohn Forte 	/*
222fcf3ce44SJohn Forte 	 * What follows here is the actual name
223fcf3ce44SJohn Forte 	 * which is allocated on the fly during
224fcf3ce44SJohn Forte 	 * packet allocation.
225fcf3ce44SJohn Forte 	 */
226fcf3ce44SJohn Forte } ns_spn_t;
227fcf3ce44SJohn Forte 
228fcf3ce44SJohn Forte /*
229fcf3ce44SJohn Forte  * Register port type request payload
230fcf3ce44SJohn Forte  */
231fcf3ce44SJohn Forte typedef struct rpt {
232fcf3ce44SJohn Forte 	fc_portid_t	rpt_port_id;
233fcf3ce44SJohn Forte 	fc_porttype_t	rpt_type;
234fcf3ce44SJohn Forte } ns_rpt_t;
235fcf3ce44SJohn Forte 
236fcf3ce44SJohn Forte /*
237fcf3ce44SJohn Forte  * Register IP address request payload
238fcf3ce44SJohn Forte  */
239fcf3ce44SJohn Forte typedef struct rip {
240fcf3ce44SJohn Forte 	la_wwn_t	rip_node_name;
241fcf3ce44SJohn Forte 	uchar_t		rip_ip_addr[16];
242fcf3ce44SJohn Forte } ns_rip_t;
243fcf3ce44SJohn Forte 
244fcf3ce44SJohn Forte /*
245fcf3ce44SJohn Forte  * Register Initial Process Associator request payload
246fcf3ce44SJohn Forte  */
247fcf3ce44SJohn Forte typedef struct ipa {
248fcf3ce44SJohn Forte 	la_wwn_t	ipa_node_name;
249fcf3ce44SJohn Forte 	uchar_t		ipa_value[8];
250fcf3ce44SJohn Forte } ns_ipa_t;
251fcf3ce44SJohn Forte 
252fcf3ce44SJohn Forte /*
253fcf3ce44SJohn Forte  * Register Symbolic Node Name request payload
254fcf3ce44SJohn Forte  */
255fcf3ce44SJohn Forte typedef struct snn {
256fcf3ce44SJohn Forte 	la_wwn_t	snn_node_name;
257fcf3ce44SJohn Forte 	uchar_t		snn_len;
258fcf3ce44SJohn Forte 	/*
259fcf3ce44SJohn Forte 	 * What follows here is the actual name
260fcf3ce44SJohn Forte 	 * which is allocated on the fly during
261fcf3ce44SJohn Forte 	 * packet allocation.
262fcf3ce44SJohn Forte 	 */
263fcf3ce44SJohn Forte } ns_snn_t;
264fcf3ce44SJohn Forte 
265fcf3ce44SJohn Forte /*
266fcf3ce44SJohn Forte  * Remove all request payload
267fcf3ce44SJohn Forte  */
268fcf3ce44SJohn Forte typedef struct remall {
269fcf3ce44SJohn Forte 	fc_portid_t	rem_port_id;
270fcf3ce44SJohn Forte } ns_remall_t;
271fcf3ce44SJohn Forte 
272fcf3ce44SJohn Forte typedef fc_ct_header_t fc_reg_resp_t;
273fcf3ce44SJohn Forte typedef fc_ct_header_t fc_query_resp_t;
274fcf3ce44SJohn Forte 
275fcf3ce44SJohn Forte typedef struct ns_req_gid_pt {
276fcf3ce44SJohn Forte 	fc_porttype_t	port_type;
277fcf3ce44SJohn Forte } ns_req_gid_pt_t;
278fcf3ce44SJohn Forte 
279fcf3ce44SJohn Forte typedef struct ns_resp_gid_pt {
280fcf3ce44SJohn Forte 	fc_portid_t	gid_port_id;
281fcf3ce44SJohn Forte } ns_resp_gid_pt_t;
282fcf3ce44SJohn Forte 
283fcf3ce44SJohn Forte typedef struct ns_req_gan {
284fcf3ce44SJohn Forte 	fc_portid_t	pid;
285fcf3ce44SJohn Forte } ns_req_gan_t;
286fcf3ce44SJohn Forte 
287fcf3ce44SJohn Forte typedef struct ns_resp_gan {
288fcf3ce44SJohn Forte 	fc_porttype_t	gan_type_id;		/* type and id next */
289fcf3ce44SJohn Forte 	la_wwn_t	gan_pwwn;		/* Port Name */
290fcf3ce44SJohn Forte 	uchar_t		gan_spnlen;		/* Sym P Name Len */
291fcf3ce44SJohn Forte 	char		gan_spname[255];	/* Sym Port name */
292fcf3ce44SJohn Forte 
293fcf3ce44SJohn Forte 	la_wwn_t	gan_nwwn;		/* Node Name */
294fcf3ce44SJohn Forte 	uchar_t		gan_snnlen;		/* Sym N name Len */
295fcf3ce44SJohn Forte 	char		gan_snname[255];	/* Sym Node name */
296fcf3ce44SJohn Forte 
297fcf3ce44SJohn Forte 	uchar_t		gan_ipa[8];		/* Initial Proc assoc */
298fcf3ce44SJohn Forte 	uchar_t		gan_ip[16];		/* IP Address */
299fcf3ce44SJohn Forte 	uint32_t	gan_cos;		/* Class of Service */
300fcf3ce44SJohn Forte 
301fcf3ce44SJohn Forte 	uint32_t	gan_fc4types[8];	/* FC-4 Types */
302fcf3ce44SJohn Forte } ns_resp_gan_t;
303fcf3ce44SJohn Forte 
304fcf3ce44SJohn Forte typedef struct ns_req_gid_pn {
305fcf3ce44SJohn Forte 	la_wwn_t	pwwn;
306fcf3ce44SJohn Forte } ns_req_gid_pn_t;
307fcf3ce44SJohn Forte 
308fcf3ce44SJohn Forte typedef struct ns_resp_gid_pn {
309fcf3ce44SJohn Forte 	fc_portid_t	pid;
310fcf3ce44SJohn Forte } ns_resp_gid_pn_t;
311fcf3ce44SJohn Forte 
312fcf3ce44SJohn Forte typedef struct ns_req_gpn_id {
313fcf3ce44SJohn Forte 	fc_portid_t	pid;
314fcf3ce44SJohn Forte } ns_req_gpn_id_t;
315fcf3ce44SJohn Forte 
316fcf3ce44SJohn Forte typedef struct ns_resp_gpn_id {
317fcf3ce44SJohn Forte 	la_wwn_t	pwwn;
318fcf3ce44SJohn Forte } ns_resp_gpn_id_t;
319fcf3ce44SJohn Forte 
320fcf3ce44SJohn Forte typedef struct ns_req_gpt_id {
321fcf3ce44SJohn Forte 	fc_portid_t	pid;
322fcf3ce44SJohn Forte } ns_req_gpt_id_t;
323fcf3ce44SJohn Forte 
324fcf3ce44SJohn Forte typedef struct ns_resp_gpt_id {
325fcf3ce44SJohn Forte 	fc_porttype_t	port_type;
326fcf3ce44SJohn Forte } ns_resp_gpt_id_t;
327fcf3ce44SJohn Forte 
328fcf3ce44SJohn Forte #if	!defined(__lint)
329fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gpn_id))
330fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", rxn_id))
331fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gpn_id))
332fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gid_pn))
333fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gid_pn))
334fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gan))
335fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gan))
336fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gid_pt))
337fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_req_gpt_id))
338fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ns_resp_gpt_id))
339fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", remall))
340fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", snn))
341fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", ipa))
342fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", rip))
343fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", rpt))
344fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", spn))
345fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", rfc_type))
346fcf3ce44SJohn Forte _NOTE(SCHEME_PROTECTS_DATA("unique per request", rcos))
347fcf3ce44SJohn Forte #endif /* __lint */
348fcf3ce44SJohn Forte 
349fcf3ce44SJohn Forte #ifdef	__cplusplus
350fcf3ce44SJohn Forte }
351fcf3ce44SJohn Forte #endif
352fcf3ce44SJohn Forte 
353fcf3ce44SJohn Forte #endif	/* _SYS_FIBRE_CHANNEL_IMPL_FCGS2_H */
354