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