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