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