xref: /netbsd-src/lib/libisns/isns_defs.h (revision dc2ecebec96795469eed09503b4155a9974a9910)
1*dc2ecebeSagc /*	$NetBSD: isns_defs.h,v 1.1.1.1 2011/01/16 01:22:50 agc Exp $	*/
2*dc2ecebeSagc 
3*dc2ecebeSagc /*-
4*dc2ecebeSagc  * Copyright (c) 2004,2009 The NetBSD Foundation, Inc.
5*dc2ecebeSagc  * All rights reserved.
6*dc2ecebeSagc  *
7*dc2ecebeSagc  * This code is derived from software contributed to The NetBSD Foundation
8*dc2ecebeSagc  * by Wasabi Systems, Inc.
9*dc2ecebeSagc  *
10*dc2ecebeSagc  * Redistribution and use in source and binary forms, with or without
11*dc2ecebeSagc  * modification, are permitted provided that the following conditions
12*dc2ecebeSagc  * are met:
13*dc2ecebeSagc  * 1. Redistributions of source code must retain the above copyright
14*dc2ecebeSagc  *    notice, this list of conditions and the following disclaimer.
15*dc2ecebeSagc  * 2. Redistributions in binary form must reproduce the above copyright
16*dc2ecebeSagc  *    notice, this list of conditions and the following disclaimer in the
17*dc2ecebeSagc  *    documentation and/or other materials provided with the distribution.
18*dc2ecebeSagc  *
19*dc2ecebeSagc  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20*dc2ecebeSagc  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21*dc2ecebeSagc  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22*dc2ecebeSagc  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23*dc2ecebeSagc  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24*dc2ecebeSagc  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25*dc2ecebeSagc  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26*dc2ecebeSagc  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27*dc2ecebeSagc  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28*dc2ecebeSagc  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29*dc2ecebeSagc  * POSSIBILITY OF SUCH DAMAGE.
30*dc2ecebeSagc  */
31*dc2ecebeSagc 
32*dc2ecebeSagc #ifndef _ISNS_DEFS_H_
33*dc2ecebeSagc #define	_ISNS_DEFS_H_
34*dc2ecebeSagc 
35*dc2ecebeSagc /*
36*dc2ecebeSagc  * enum of iSNS Registration, query, and response types
37*dc2ecebeSagc  */
38*dc2ecebeSagc 
39*dc2ecebeSagc typedef enum {
40*dc2ecebeSagc 	isnsp_DevAttrReg = 1,
41*dc2ecebeSagc 	isnsp_DevAttrQry,
42*dc2ecebeSagc 	isnsp_DevGetNext,
43*dc2ecebeSagc 	isnsp_DevDereg,
44*dc2ecebeSagc 	isnsp_SCNReg,
45*dc2ecebeSagc 	isnsp_SCNDereg,
46*dc2ecebeSagc 	isnsp_SCNEvent,
47*dc2ecebeSagc 	isnsp_SCN,
48*dc2ecebeSagc 	isnsp_DDReg,
49*dc2ecebeSagc 	isnsp_DDDereg,
50*dc2ecebeSagc 	isnsp_DDSReg,
51*dc2ecebeSagc 	isnsp_DDSDereg,
52*dc2ecebeSagc 	isnsp_ESI,
53*dc2ecebeSagc 	isnsp_Heartbeat,	/* 0x000e */
54*dc2ecebeSagc 
55*dc2ecebeSagc 	/* Next few are iFCP only */
56*dc2ecebeSagc 	isnsp_RqstDomId = 0x0011,
57*dc2ecebeSagc 	isnsp_RlseDomId,
58*dc2ecebeSagc 	isnsp_GetDomId,
59*dc2ecebeSagc 
60*dc2ecebeSagc 	isnsp_DevAttrRegRsp = 0x8001,
61*dc2ecebeSagc 	isnsp_DevAttrQryRsp,
62*dc2ecebeSagc 	isnsp_DevGetNextRsp,
63*dc2ecebeSagc 	isnsp_DevDeregRsp,
64*dc2ecebeSagc 	isnsp_SCNregRsp,
65*dc2ecebeSagc 	isnsp_SCNDeregRsp,
66*dc2ecebeSagc 	isnsp_SCNeventRsp,
67*dc2ecebeSagc 	isnsp_SCNRsp,
68*dc2ecebeSagc 	isnsp_DDRegRsp,
69*dc2ecebeSagc 	isnsp_DDDeregRsp,
70*dc2ecebeSagc 	isnsp_DDSRegRsp,
71*dc2ecebeSagc 	isnsp_DDSDeregRsp,
72*dc2ecebeSagc 	isnsp_ESIRsp,		/* 0x800d */
73*dc2ecebeSagc 
74*dc2ecebeSagc 	/* Next few are iFCP only */
75*dc2ecebeSagc 	isnsp_RqstDomIdRsp = 0x8011,
76*dc2ecebeSagc 	isnsp_RlseDomIdRsp,
77*dc2ecebeSagc 	isnsp_GetDomIdRsp
78*dc2ecebeSagc } isnsp_func_id_t;
79*dc2ecebeSagc 
80*dc2ecebeSagc /*
81*dc2ecebeSagc  * enum of iSNS tag types
82*dc2ecebeSagc  */
83*dc2ecebeSagc 
84*dc2ecebeSagc typedef enum {			/*  Len      Reg Key	Query Key	 Val */
85*dc2ecebeSagc 	isnst_Delimiter = 0,	/*   0		N/A	N/A		   0 */
86*dc2ecebeSagc 	isnst_EID,		/* 4-256	 1	1|2|16&17|32|64	   1 */
87*dc2ecebeSagc 	isnst_EntProtocol,	/*   4		 1	1|2|16&17|32|64	   2 */
88*dc2ecebeSagc 	isnst_MgtIPAddr,	/*  16		 1	1|2|16&17|32|64	   3 */
89*dc2ecebeSagc 	isnst_Timestamp,	/*   8		--	1|2|16&17|32|64	   4 */
90*dc2ecebeSagc 	isnst_ProtVersRange,	/*   4		 1	1|2|16&17|32|64	   5 */
91*dc2ecebeSagc 	isnst_RegPeriod,	/*   4		 1	1|2|16&17|32|64	   6 */
92*dc2ecebeSagc 	isnst_EntityIndex,	/*   4		 1	1|2|16&17|32|64	   7 */
93*dc2ecebeSagc 	isnst_EntityNextIndex,	/*   8		 1	1|2|16&17|32|64	   8 */
94*dc2ecebeSagc 				/*					     */
95*dc2ecebeSagc 	isnst_EntISAKMP_P1= 11,	/*  var		 1	1|2|16&17|32|64	  11 */
96*dc2ecebeSagc 	isnst_Certificate,	/*  var		 1	1|2|16&17|32|64	  12 */
97*dc2ecebeSagc 				/*					     */
98*dc2ecebeSagc 	isnst_PortalIPAddr= 16,	/*  16		 1	1|2|16&17|32|64	  16 */
99*dc2ecebeSagc 	isnst_PortalPort,	/*   4		 1	1|2|16&17|32|64	  17 */
100*dc2ecebeSagc 	isnst_SymbName, 	/* 4-256       16&17	1|16&17|32|64	  18 */
101*dc2ecebeSagc 	isnst_ESIIntval,	/*   4	       16&17	1|16&17|32|64	  19 */
102*dc2ecebeSagc 	isnst_ESIPort,		/*   4	       16&17	1|16&17|32|64	  20 */
103*dc2ecebeSagc 				/*					     */
104*dc2ecebeSagc 	isnst_PortalIndex=22,	/*   4	       16&17	1|16&17|32|64	  22 */
105*dc2ecebeSagc 	isnst_SCNPort,		/*   4	       16&17	1|16&17|32|64	  23 */
106*dc2ecebeSagc 	isnst_PortalNextIndex,	/*   4		--	1|16&17|32|64	  24 */
107*dc2ecebeSagc 				/*					     */
108*dc2ecebeSagc 	isnst_PortalSecBmap=27,	/*   4	       16&17	1|16&17|32|64	  27 */
109*dc2ecebeSagc 	isnst_PortalISAKMP_P1,	/*  var	       16&17	1|16&17|32|64	  28 */
110*dc2ecebeSagc 	isnst_PortalISAKMP_P2,	/*  var	       16&17	1|16&17|32|64	  29 */
111*dc2ecebeSagc 				/*					     */
112*dc2ecebeSagc 	isnst_PortalCert = 31,	/*  var	       16&17	1|16&17|32|64	  31 */
113*dc2ecebeSagc 	isnst_iSCSIName,	/* 4-224	 1	1|16&17|32|33	  32 */
114*dc2ecebeSagc 	isnst_iSCSINodeType,	/*   4		32	1|16&17|32	  33 */
115*dc2ecebeSagc 	isnst_iSCSIAlias,	/* 4-256	32	1|16&17|32	  34 */
116*dc2ecebeSagc 	isnst_iSCSISCNBmap,	/*   4		32	1|16&17|32	  35 */
117*dc2ecebeSagc 	isnst_iSCSINodeIndex,	/*   4		32	1|16&17|32	  36 */
118*dc2ecebeSagc 	isnst_WWNNToken,	/*   8		32	1|16&17|32	  37 */
119*dc2ecebeSagc 	isnst_iSCSINodeNextIdx, /*   4		--	1|16&17|32	  38 */
120*dc2ecebeSagc 				/*					     */
121*dc2ecebeSagc 	isnst_iSCSIAuthMethod=42,/* var		32	1|16&17|32	  42 */
122*dc2ecebeSagc 	isnst_iSCSINodeCert,	/*  var		32	1|16&17|32	  43 */
123*dc2ecebeSagc 				/*					     */
124*dc2ecebeSagc 	isnst_PGiSCSIName=48,	/* 4-224     32|16&17	1|16&17|32|52	  48 */
125*dc2ecebeSagc 	isnst_PGPortIPAddr,	/*  16	     32|16&17	1|16&17|32|52	  49 */
126*dc2ecebeSagc 	isnst_PGPortIPPort,	/*   4	     32|16&17	1|16&17|32|52	  50 */
127*dc2ecebeSagc 	isnst_PGTag,		/*   4	     32|16&17	1|16&17|32|52	  51 */
128*dc2ecebeSagc 	isnst_PGIndex,		/*   4	     32|16&17	1|16&17|32|52	  52 */
129*dc2ecebeSagc 	isnst_PGNextIndex,	/*   4		--	1|16&17|32|52	  53 */
130*dc2ecebeSagc 				/*					     */
131*dc2ecebeSagc 	isnst_FCPortNameWWPN=64,/*   8		 1	1|16&17|64|66|96|128
132*dc2ecebeSagc 									  64 */
133*dc2ecebeSagc 	isnst_FCPortID, 	/*   4		64	1|16&17|64	  65 */
134*dc2ecebeSagc 	isnst_FCPortType,	/*   4		64	1|16&17|64	  66 */
135*dc2ecebeSagc 	isnst_FCSymbPortName,	/* 4-256	64	1|16&17|64	  67 */
136*dc2ecebeSagc 	isnst_FCFabricPortName, /*   8		64	1|16&17|64	  68 */
137*dc2ecebeSagc 	isnst_FCHardAddr,	/*   4		64	1|16&17|64	  69 */
138*dc2ecebeSagc 	isnst_FCPortIPAddr,	/*  16		64	1|16&17|64	  70 */
139*dc2ecebeSagc 	isnst_FCClassOService,	/*   4		64	1|16&17|64	  71 */
140*dc2ecebeSagc 	isnst_FC4Types, 	/*  32		64	1|16&17|64	  72 */
141*dc2ecebeSagc 	isnst_FC4Descr, 	/* 4-256	64	1|16&17|64	  73 */
142*dc2ecebeSagc 	isnst_FC4Features,	/*  128		64	1|16&17|64	  74 */
143*dc2ecebeSagc 	isnst_iFCPSCNBmap,	/*   4		64	1|16&17|64	  75 */
144*dc2ecebeSagc 	isnst_iFCPPortRole,	/*   4		64	1|16&17|64	  76 */
145*dc2ecebeSagc 	isnst_PermPortName,	/*   8		--	1|16&17|64	  77 */
146*dc2ecebeSagc 				/*					     */
147*dc2ecebeSagc 	isnst_PortCert = 83, 	/*  var		64	1|16&17|64	  83 */
148*dc2ecebeSagc 				/*					     */
149*dc2ecebeSagc 	isnst_FC4TypeCode = 95,	/*   4		--	1|16&17|64	  95 */
150*dc2ecebeSagc 	isnst_FCNodeNameWWNN,	/*   8		64	1|16&17|64|96	  96 */
151*dc2ecebeSagc 	isnst_SymbNodeName,	/* 4-256	96	64|96		  97 */
152*dc2ecebeSagc 	isnst_NodeIPAddr,	/*  16		96	64|96		  98 */
153*dc2ecebeSagc 	isnst_NodeIPA,		/*   8		96	64|96		  99 */
154*dc2ecebeSagc 	isnst_NodeCert, 	/*  var 	96	64|96		 100 */
155*dc2ecebeSagc 	isnst_ProxyiSCSIName,	/* 4-256	96	64|96		 101 */
156*dc2ecebeSagc 				/* Note: above really should be 4-224
157*dc2ecebeSagc 				 * in the iSNS spec, but isn't		     */
158*dc2ecebeSagc 				/*					     */
159*dc2ecebeSagc 	isnst_SwitchName = 128, /*   8	       128	128		 128 */
160*dc2ecebeSagc 	isnst_PrefID,		/*   4	       128	128		 129 */
161*dc2ecebeSagc 	isnst_AssignedID,	/*   4	       128	128		 130 */
162*dc2ecebeSagc 	isnst_VirtFabricID,	/* 4-256       128	128		 131 */
163*dc2ecebeSagc 				/*					     */
164*dc2ecebeSagc 	isnst_iSNSSrvrVndOUI=256,/*  4		--	SOURCE Attr	 256 */
165*dc2ecebeSagc 				/*					     */
166*dc2ecebeSagc 	isnst_DDS_ID=2049,	/*   4	      2049	1|32|64|2049|2065
167*dc2ecebeSagc 									2049 */
168*dc2ecebeSagc 	isnst_DDS_SymName,	/* 4-256      2049	2049		2050 */
169*dc2ecebeSagc 	isnst_DDS_Status,	/*   4	      2049	2049		2051 */
170*dc2ecebeSagc 	isnst_DDS_Next_ID,	/*   4		--	2049		2052 */
171*dc2ecebeSagc 				/*					     */
172*dc2ecebeSagc 	isnst_DD_ID = 2065,	/*   4	      2049	1|32|64|2049|2065
173*dc2ecebeSagc 									2065 */
174*dc2ecebeSagc 	isnst_DD_SymName,	/* 4-256      2065	2065		2066 */
175*dc2ecebeSagc 	isnst_DD_iSCSIIndex,	/*   4	      2065	2065		2067 */
176*dc2ecebeSagc 	isnst_DD_iSCSIName,	/* 4-224      2065	2065		2068 */
177*dc2ecebeSagc 	isnst_DD_iFCPNode,	/*   8	      2065	2065		2069 */
178*dc2ecebeSagc 	isnst_DD_PortIndex,	/*   4	      2065	2065		2070 */
179*dc2ecebeSagc 	isnst_DD_PortIPAddr,	/*  16	      2065	2065		2071 */
180*dc2ecebeSagc 	isnst_DD_PortPort,	/*   4	      2065	2065		2072 */
181*dc2ecebeSagc 	isnst_DD_Features=2078, /*   4	      2065	2065		2078 */
182*dc2ecebeSagc 	isnst_DD_Next_ID	/*   4		--	2065		2079 */
183*dc2ecebeSagc } isnst_tag_type_t;
184*dc2ecebeSagc 
185*dc2ecebeSagc /*
186*dc2ecebeSagc  * iSNS PDU header flags
187*dc2ecebeSagc  */
188*dc2ecebeSagc 
189*dc2ecebeSagc #define ISNS_FLAG_FIRST_PDU    (0x0400)
190*dc2ecebeSagc #define ISNS_FLAG_LAST_PDU     (0x0800)
191*dc2ecebeSagc #define ISNS_FLAG_REPLACE_REG  (0x1000)
192*dc2ecebeSagc #define ISNS_FLAG_AUTH         (0x2000)
193*dc2ecebeSagc #define ISNS_FLAG_SND_SERVER   (0x4000)
194*dc2ecebeSagc #define ISNS_FLAG_SND_CLIENT   (0x8000)
195*dc2ecebeSagc 
196*dc2ecebeSagc 
197*dc2ecebeSagc #endif /* _ISNS_DEFS_H_ */
198