2 * Fibre Channel Extended Link Services Definitions (ddutt@cisco.com)
3 * Copyright 2001, Dinesh G Dutt <ddutt@cisco.com>
5 * $Id: packet-fcels.h,v 1.1 2002/12/08 02:32:17 gerald Exp $
7 * Ethereal - Network traffic analyzer
8 * By Gerald Combs <gerald@ethereal.com>
9 * Copyright 1998 Gerald Combs
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License
13 * as published by the Free Software Foundation; either version 2
14 * of the License, or (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 #ifndef __PACKET_FCELS_H_
27 #define __PACKET_FCELS_H_
29 #define FC_ELS_LSRJT 0x01
30 #define FC_ELS_ACC 0x02
31 #define FC_ELS_PLOGI 0x03
32 #define FC_ELS_FLOGI 0x04
33 #define FC_ELS_LOGOUT 0x05
34 #define FC_ELS_ABTX 0x06
35 #define FC_ELS_RSI 0x0A
36 #define FC_ELS_TEST 0x11
37 #define FC_ELS_RRQ 0x12
38 #define FC_ELS_PRLI 0x20
39 #define FC_ELS_PRLO 0x21
40 #define FC_ELS_TPRLO 0x24
41 #define FC_ELS_PDISC 0x50
42 #define FC_ELS_FDISC 0x51
43 #define FC_ELS_ADISC 0x52
44 #define FC_ELS_FARP_REQ 0x54
45 #define FC_ELS_FARP_RPLY 0x55
46 #define FC_ELS_RPS 0x56
47 #define FC_ELS_RPL 0x57
48 #define FC_ELS_FAN 0x60
49 #define FC_ELS_RSCN 0x61
50 #define FC_ELS_SCR 0x62
51 #define FC_ELS_RNFT 0x63
52 #define FC_ELS_LINIT 0x70
53 #define FC_ELS_LSTS 0x72
54 #define FC_ELS_RNID 0x78
55 #define FC_ELS_RLIR 0x79
56 #define FC_ELS_LIRR 0x7A
57 #define FC_ELS_SRL 0x7B
58 #define FC_ELS_RPSC 0x7D
60 static const value_string fc_els_proto_val[] = {
61 {FC_ELS_LSRJT , "LS_RJT"},
63 {FC_ELS_PLOGI , "PLOGI"},
64 {FC_ELS_FLOGI , "FLOGI"},
65 {FC_ELS_LOGOUT , "LOGO"},
66 {FC_ELS_ABTX , "ABTX"},
68 {FC_ELS_TEST , "TEST"},
70 {FC_ELS_PRLI , "PRLI"},
71 {FC_ELS_PRLO , "PRLO"},
72 {FC_ELS_TPRLO , "TPRLO"},
73 {FC_ELS_PDISC , "PDISC"},
74 {FC_ELS_FDISC , "FDISC"},
75 {FC_ELS_ADISC , "ADISC"},
76 {FC_ELS_FARP_REQ , "FARP-REQ"},
77 {FC_ELS_FARP_RPLY , "FARP-REPLY"},
81 {FC_ELS_RSCN , "RSCN"},
83 {FC_ELS_RNFT , "RNFT"},
84 {FC_ELS_LINIT , "LINIT"},
85 {FC_ELS_LSTS , "LSTS"},
86 {FC_ELS_RNID , "RNID"},
87 {FC_ELS_RLIR , "RLIR"},
88 {FC_ELS_LIRR , "LIRR"},
90 {FC_ELS_RPSC , "RPSC"},
94 /* Reject Reason Codes */
95 #define FC_ELS_RJT_INVCMDCODE 0x01
96 #define FC_ELS_RJT_LOGERR 0x03
97 #define FC_ELS_RJT_LOGBSY 0x05
98 #define FC_ELS_RJT_PROTERR 0x07
99 #define FC_ELS_RJT_GENFAIL 0x09
100 #define FC_ELS_RJT_CMDNOTSUPP 0x0B
101 #define FC_ELS_RJT_GENFAIL2 0x0D
102 #define FC_ELS_RJT_CMDINPROG 0x0E
103 #define FC_ELS_RJT_VENDOR 0xFF
105 static const value_string fc_els_rjt_val[] = {
106 {FC_ELS_RJT_INVCMDCODE, "Invalid Cmd Code"},
107 {FC_ELS_RJT_LOGERR , "Logical Error"},
108 {FC_ELS_RJT_LOGBSY , "Logical Busy"},
109 {FC_ELS_RJT_PROTERR , "Protocol Error"},
110 {FC_ELS_RJT_GENFAIL , "Unable to Perform Cmd"},
111 {FC_ELS_RJT_CMDNOTSUPP, "Command Not Supported"},
112 {FC_ELS_RJT_GENFAIL2 , "Unable to Perform Cmd"},
113 {FC_ELS_RJT_CMDINPROG , "Command in Progress Already"},
114 {FC_ELS_RJT_VENDOR , "Vendor Unique Error"},
118 #define FC_ELS_RJT_DET_NODET 0x00
119 #define FC_ELS_RJT_DET_SVCPARM_OPT 0x01
120 #define FC_ELS_RJT_DET_SVCPARM_INITCTL 0x03
121 #define FC_ELS_RJT_DET_SVCPARM_RCPTCTL 0x05
122 #define FC_ELS_RJT_DET_SVCPARM_RCVSZE 0x07
123 #define FC_ELS_RJT_DET_SVCPARM_CSEQ 0x09
124 #define FC_ELS_RJT_DET_SVCPARM_CREDIT 0x0B
125 #define FC_ELS_RJT_DET_INV_PFNAME 0x0D
126 #define FC_ELS_RJT_DET_INV_NFNAME 0x0E
127 #define FC_ELS_RJT_DET_INV_CMNSVCPARM 0x0F
128 #define FC_ELS_RJT_DET_INV_ASSOCHDR 0x11
129 #define FC_ELS_RJT_DET_ASSOCHDR_REQD 0x13
130 #define FC_ELS_RJT_DET_INV_OSID 0x15
131 #define FC_ELS_RJT_DET_EXCHG_COMBO 0x17
132 #define FC_ELS_RJT_DET_CMDINPROG 0x19
133 #define FC_ELS_RJT_DET_PLOGI_REQ 0x1E
134 #define FC_ELS_RJT_DET_INV_NPID 0x1F
135 #define FC_ELS_RJT_DET_INV_SEQID 0x21
136 #define FC_ELS_RJT_DET_INV_EXCHG 0x23
137 #define FC_ELS_RJT_DET_INACTIVE_EXCHG 0x25
138 #define FC_ELS_RJT_DET_RQUAL_REQD 0x27
139 #define FC_ELS_RJT_DET_OORSRC 0x29
140 #define FC_ELS_RJT_DET_SUPPLYFAIL 0x2A
141 #define FC_ELS_RJT_DET_REQNOTSUPP 0x2C
142 #define FC_ELS_RJT_DET_INV_PLEN 0x2D
143 #define FC_ELS_RJT_DET_INV_ALIASID 0x30
144 #define FC_ELS_RJT_DET_OORSRC_ALIASID 0x31
145 #define FC_ELS_RJT_DET_INACTIVE_ALIASID 0x32
146 #define FC_ELS_RJT_DET_DEACT_ALIAS_FAIL1 0x33
147 #define FC_ELS_RJT_DET_DEACT_ALIAS_FAIL2 0x34
148 #define FC_ELS_RJT_DET_SVCPARM_CONFLICT 0x35
149 #define FC_ELS_RJT_DET_INV_ALIASTOK 0x36
150 #define FC_ELS_RJT_DET_UNSUPP_ALIASTOK 0x37
151 #define FC_ELS_RJT_DET_GRPFORM_FAIL 0x38
152 #define FC_ELS_RJT_DET_QOSPARM_ERR 0x40
153 #define FC_ELS_RJT_DET_INV_VCID 0x41
154 #define FC_ELS_RJT_DET_OORSRC_C4 0x42
155 #define FC_ELS_RJT_DET_INV_PNNAME 0x44
157 static const value_string fc_els_rjt_det_val[] = {
158 {FC_ELS_RJT_DET_NODET , "No further details"},
159 {FC_ELS_RJT_DET_SVCPARM_OPT , "Svc Param - Options Error"},
160 {FC_ELS_RJT_DET_SVCPARM_INITCTL , "Svc Param - Initiator Ctl Error"},
161 {FC_ELS_RJT_DET_SVCPARM_RCPTCTL , "Svc Param - Recipient Ctl Error"},
162 {FC_ELS_RJT_DET_SVCPARM_RCVSZE , "Svc Param - Recv Size Error"},
163 {FC_ELS_RJT_DET_SVCPARM_CSEQ , "Svc Param - Concurrent Seq Error"},
164 {FC_ELS_RJT_DET_SVCPARM_CREDIT , "Svc Param - Credit Error"},
165 {FC_ELS_RJT_DET_INV_PFNAME , "Invalid N_/F_Port Name"},
166 {FC_ELS_RJT_DET_INV_NFNAME , "Invalid Node/Fabric Name"},
167 {FC_ELS_RJT_DET_INV_CMNSVCPARM , "Invalid Common Svc Param"},
168 {FC_ELS_RJT_DET_INV_ASSOCHDR , "Invalid Association Header"},
169 {FC_ELS_RJT_DET_ASSOCHDR_REQD , "Association Header Reqd"},
170 {FC_ELS_RJT_DET_INV_OSID , "Invalid Orig S_ID"},
171 {FC_ELS_RJT_DET_EXCHG_COMBO , "Invalid OXID-RXID Combo"},
172 {FC_ELS_RJT_DET_CMDINPROG , "Cmd Already in Progress"},
173 {FC_ELS_RJT_DET_PLOGI_REQ , "N_Port Login Required"},
174 {FC_ELS_RJT_DET_INV_NPID , "Invalid N_Port Id"},
175 {FC_ELS_RJT_DET_INV_SEQID , "Invalid SeqID"},
176 {FC_ELS_RJT_DET_INV_EXCHG , "Attempt to Abort Invalid Exchg"},
177 {FC_ELS_RJT_DET_INACTIVE_EXCHG , "Attempt to Abort Inactive Exchg"},
178 {FC_ELS_RJT_DET_RQUAL_REQD , "Resource Qualifier Required"},
179 {FC_ELS_RJT_DET_OORSRC , "Insufficient Resources for Login"},
180 {FC_ELS_RJT_DET_SUPPLYFAIL , "Unable to Supply Req Data"},
181 {FC_ELS_RJT_DET_REQNOTSUPP , "Command Not Supported"},
182 {FC_ELS_RJT_DET_INV_PLEN , "Invalid Payload Length"},
183 {FC_ELS_RJT_DET_INV_ALIASID , "No Alias IDs available"},
184 {FC_ELS_RJT_DET_OORSRC_ALIASID , "Alias_ID Cannot be Activated (Out of Rsrc)"},
185 {FC_ELS_RJT_DET_INACTIVE_ALIASID , "Alias_ID Cannot be Activated (Inv AID)"},
186 {FC_ELS_RJT_DET_DEACT_ALIAS_FAIL1, "Alias_ID Cannot be Deactivated"},
187 {FC_ELS_RJT_DET_DEACT_ALIAS_FAIL2, "Alias_ID Cannot be Deactivated"},
188 {FC_ELS_RJT_DET_SVCPARM_CONFLICT , "Svc Parameter Conflict"},
189 {FC_ELS_RJT_DET_INV_ALIASTOK , "Invalid Alias Token"},
190 {FC_ELS_RJT_DET_UNSUPP_ALIASTOK , "Unsupported Alias Token"},
191 {FC_ELS_RJT_DET_GRPFORM_FAIL , "Alias Grp Cannot be Formed"},
192 {FC_ELS_RJT_DET_QOSPARM_ERR , "QoS Param Error"},
193 {FC_ELS_RJT_DET_INV_VCID , "VC_ID Not Found"},
194 {FC_ELS_RJT_DET_OORSRC_C4 , "No Resources to Support Class 4 Conn"},
195 {FC_ELS_RJT_DET_INV_PNNAME , "Invalid Port/Node Name"},
198 static const value_string fc_els_flacompliance_val[] = {
199 {1, "FC-FLA Level 1"},
200 {2, "FC-FLA Level 2"},
204 static const value_string fc_els_loopstate_val[] = {
207 {3, "Initialization Failure"},
212 static const value_string fc_els_scr_reg_val[] = {
213 {1, "Fabric Detected Regn"},
214 {2, "N_Port Detected Regn"},
216 {255, "Clear All Regn"},
220 static const value_string fc_els_farp_respaction_val[] = {
222 {1, "Login Using Requesting Port ID"},
223 {2, "Respond with FARP-REPLY"},
224 {3, "Login & send FARP-REPLY"},
228 static const value_string fc_els_portstatus_val[] = {
229 {0x20, "Point-to-Point Connection | No Fabric"},
230 {0x10, "AL Connection | No Fabric"},
231 {0x28, "Point-to-Point Connection | Fabric Detected"},
232 {0x2C, "Point-to-Point Connection | Fabric Detected | Loss of Signal"},
233 {0x24, "Point-to-Point Connection | Loss of Signal"},
234 {0x18, "AL Connection | Fabric Detected"},
235 {0x14, "AL Connection | Loss of Signal"},
236 {0x1C, "AL Connection | Fabric Detected | Loss of Signal"},
237 {0x04, "Loss of Signal"},
238 {0x02, "Loss of Synchronization"},
239 {0x01, "Link Reset Protocol in Progress"},
243 static const value_string fc_els_portspeed_val[] = {
249 {0x0001, "Speed Not Estd."},
253 static const value_string fc_els_lirr_regfunc_val[] = {
254 {0x1, "Set Reg: Conditionally Receive"},
255 {0x2, "Set Reg: Always Receive"},
260 static const value_string fc_els_rscn_evqual_val[] = {
261 {0x00, "Event is not specified"},
262 {0x01, "Changed Name Server Object"},
263 {0x02, "Changed Port Attribute"},
264 {0x03, "Changed Service Object"},
265 {0x04, "Changed Switch Config"},
269 static const value_string fc_els_rscn_addrfmt_val[] = {
270 {0, "Port Addr (single N/L Port or service)"},
271 {1, "Area Addr Group (area of E/L/N Port addresses)"},
272 {2, "Domain Addr Group"},
273 {3, "Fabric Addr Group"},
277 static const value_string fc_els_nodeid_val[] = {
278 {0x00, "Common Identification Data Only"},
279 {0x05, "IP Specific Data"},
280 {0x08, "FCP-Specific Data"},
281 {0x20, "FC_CT Specific Data"},
282 {0x22, "SW_ILS Specific Data"},
283 {0x23, "AL Specific Data"},
284 {0x24, "SNMP Specific Data"},
285 {0xDF, "Common ID Data + General Topology Discovery Format"},
289 static const value_string fc_els_rnid_asstype_val[] = {
298 {0x9, "Storage Device"},
300 {0xB, "Storage Subsystem"},
301 {0xE, "Storage Access Device"},
302 {0x11, "NAS Device"},
306 static const value_string fc_els_rnid_mgmt_val[] = {
308 {1, "IP/TCP/Telnet"},
314 static const value_string fc_els_rnid_ipvers_val[] = {