5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 #ifndef __PACKET_FCFCS_H_
25 #define __PACKET_FCFCS_H_
27 #define FCFCS_GTIN 0x100
28 #define FCFCS_GIEL 0x101
29 #define FCFCS_GIET 0x111
30 #define FCFCS_GDID 0x112
31 #define FCFCS_GMID 0x113
32 #define FCFCS_GFN 0x114
33 #define FCFCS_GIELN 0x115
34 #define FCFCS_GMAL 0x116
35 #define FCFCS_GIEIL 0x117
36 #define FCFCS_GPL 0x118
37 #define FCFCS_GPT 0x121
38 #define FCFCS_GPPN 0x122
39 #define FCFCS_GAPNL 0x124
40 #define FCFCS_GPS 0x126
41 #define FCFCS_GATIN 0x128
42 #define FCFCS_GPLNL 0x191
43 #define FCFCS_GPLT 0x192
44 #define FCFCS_GPLML 0x193
45 #define FCFCS_GNPL 0x1A1
46 #define FCFCS_GPNL 0x1A2
47 #define FCFCS_GNID 0x1B1
48 #define FCFCS_RIELN 0x215
49 #define FCFCS_RPL 0x280
50 #define FCFCS_RPLN 0x291
51 #define FCFCS_RPLT 0x292
52 #define FCFCS_RPLM 0x293
53 #define FCFCS_DPL 0x380
54 #define FCFCS_DPLN 0x391
55 #define FCFCS_DPLML 0x393
56 #define FCFCS_GCAP 0xe020
58 /* Used in protocol detail window */
59 static const value_string fc_fcs_opcode_val
[] = {
60 {FCCT_MSG_ACC
, "MSG_ACC"},
61 {FCCT_MSG_RJT
, "MSG_RJT"},
62 {FCFCS_GTIN
, "Get Topology Info"},
63 {FCFCS_GIEL
, "Get Interconnect Element List"},
64 {FCFCS_GIET
, "Get Interconnect Element Type"},
65 {FCFCS_GDID
, "Get Interconnect Element Domain ID"},
66 {FCFCS_GMID
, "Get Interconnect Element Mgmt ID"},
67 {FCFCS_GFN
, "Get Interconnect Element Fabric Name"},
68 {FCFCS_GIELN
, "Get Interconnect Element Logical Name"},
69 {FCFCS_GMAL
, "Get Interconnect Element Mgmt Addr List"},
70 {FCFCS_GIEIL
, "Get Interconnect Element Info List"},
71 {FCFCS_GPL
, "Get Port List"},
72 {FCFCS_GPT
, "Get Port Type"},
73 {FCFCS_GPPN
, "Get Physical Port Number"},
74 {FCFCS_GAPNL
, "Get Physical Port Name List"},
75 {FCFCS_GPS
, "Get Port State"},
76 {FCFCS_GATIN
, "Get Attached Topology Info"},
77 {FCFCS_GPLNL
, "Get Platform Node Name List"},
78 {FCFCS_GPLT
, "Get Platform Type"},
79 {FCFCS_GPLML
, "Get Platform Mgmt Addr List"},
80 {FCFCS_GNPL
, "Get Platform Node Name List"},
81 {FCFCS_GPNL
, "Get Platform Name List"},
82 {FCFCS_GNID
, "Get Node Identification Data"},
83 {FCFCS_RIELN
, "Register Interconnect Element Logical Name"},
84 {FCFCS_RPL
, "Register Platform"},
85 {FCFCS_RPLN
, "Register Platform Node Name"},
86 {FCFCS_RPLT
, "Register Platform Type"},
87 {FCFCS_RPLM
, "Register Platform Mgmt. Address"},
88 {FCFCS_DPL
, "Deregister Platform"},
89 {FCFCS_DPLN
, "Deregister Platform Node Name"},
90 {FCFCS_DPLML
, "Deregister Platform Mgmt. Address List"},
91 {FCFCS_GCAP
, "Get Capabilities"},
95 /* Used in protocol summary window */
96 static const value_string fc_fcs_opcode_abbrev_val
[] = {
97 {FCCT_MSG_ACC
, "MSG_ACC"},
98 {FCCT_MSG_RJT
, "MSG_RJT"},
100 {FCFCS_GIEL
, "GIEL"},
101 {FCFCS_GIET
, "GIET"},
102 {FCFCS_GDID
, "GDID"},
103 {FCFCS_GMID
, "GMID"},
105 {FCFCS_GIELN
, "GIELN"},
106 {FCFCS_GMAL
, "GMAL"},
107 {FCFCS_GIEIL
, "GIEIL"},
110 {FCFCS_GPPN
, "GPPN"},
111 {FCFCS_GAPNL
, "GAPNL"},
113 {FCFCS_GATIN
, "GATIN"},
114 {FCFCS_GPLNL
, "GPLNL"},
115 {FCFCS_GPLT
, "GPLT"},
116 {FCFCS_GPLML
, "GPLML"},
117 {FCFCS_GNPL
, "GNPL"},
118 {FCFCS_GPNL
, "GPNL"},
119 {FCFCS_GNID
, "GNID"},
120 {FCFCS_RIELN
, "RIELN"},
122 {FCFCS_RPLN
, "RPLN"},
123 {FCFCS_RPLT
, "RPLT"},
124 {FCFCS_RPLM
, "RPLM"},
126 {FCFCS_DPLN
, "DPLN"},
127 {FCFCS_DPLML
, "DPLML"},
128 {FCFCS_GCAP
, "GCAP"},
132 static const value_string fc_fcs_ietype_val
[] = {
140 /* Port type definitions, same as in dNS (fcdns.h) */
141 #define FCFCS_PTYPE_UNDEF 0x00
142 #define FCFCS_PTYPE_NPORT 0x01
143 #define FCFCS_PTYPE_NLPORT 0x02
144 #define FCFCS_PTYPE_FNLPORT 0x03
145 #define FCFCS_PTYPE_NXPORT 0x7F
146 #define FCFCS_PTYPE_FPORT 0x81
147 #define FCFCS_PTYPE_FLPORT 0x82
148 #define FCFCS_PTYPE_EPORT 0x84
149 #define FCFCS_PTYPE_BPORT 0x85
151 static const value_string fc_fcs_port_type_val
[] = {
152 {FCFCS_PTYPE_UNDEF
, "Undefined Port Type"},
153 {FCFCS_PTYPE_NPORT
, "N_Port"},
154 {FCFCS_PTYPE_NLPORT
, "NL_Port"},
155 {FCFCS_PTYPE_FNLPORT
, "F/NL_Port"},
156 {FCFCS_PTYPE_NXPORT
, "Nx_Port"},
157 {FCFCS_PTYPE_FPORT
, "F_Port"},
158 {FCFCS_PTYPE_FLPORT
, "FL_Port"},
159 {FCFCS_PTYPE_EPORT
, "E_Port"},
160 {FCFCS_PTYPE_BPORT
, "B_Port"},
164 static const value_string fc_fcs_port_txtype_val
[] = {
166 {2, "Long Wave Laser"},
167 {3, "Short Wave Laser"},
168 {4, "Long Wave Laser Cost Reduced"},
173 static const value_string fc_fcs_port_modtype_val
[] = {
179 {6, "GBIC with Serial ID"},
180 {7, "GBIC without Serial ID"},
181 {8, "SFP with Serial ID"},
182 {9, "SFP without Serial ID"},
186 static const value_string fc_fcs_port_state_val
[] = {
195 static const value_string fc_fcs_plat_type_val
[] = {
201 {8, "Software Proxy Agent"},
202 {9, "Storage Device"},
203 {10, "Host Computer"},
204 {11, "Storage Subsystem"},
206 {13, "Software Driver"},
207 {14, "Storage Access Device"},
211 static const value_string fc_fcs_rjt_code_val
[] = {
212 {0x00, "No Additional Explanation"},
213 {0x01, "Invalid Name_Identifier for Interconnect Element or Port"},
214 {0x10, "Interconnect Element List Not Available"},
215 {0x11, "Interconnect Element Type Not Available"},
216 {0x12, "Domain ID Not Available"},
217 {0x13, "Mgmt. ID Not Available"},
218 {0x14, "Fabric Name Not Available"},
219 {0x15, "Interconnect Element Logical Name Not Available"},
220 {0x16, "Mgmt. Address Not Available"},
221 {0x17, "Interconnect Element Information List Not Available"},
222 {0x30, "Port List Not Available"},
223 {0x31, "Port Type Not Available"},
224 {0x32, "Physical Port Number Not Available"},
225 {0x34, "Attached Port Name List Not Available"},
226 {0x36, "Port State Not Available"},
227 {0x50, "Unable to Register Interconnect Element Logical Name"},
228 {0x60, "Platform Name Does Not Exist"},
229 {0x61, "Platform Name Already Exists"},
230 {0x62, "Platform Node Name Does Not Exist"},
231 {0x63, "Platform Node Name Already Exists"},
235 static const true_false_string fc_fcs_portflags_tfs
= {
236 "RTIN ELS Supported",
237 "RTIN ELS Not Supported",
240 static const value_string fc_fcs_fcsmask_val
[] = {
241 {1, "Basic Configuration Service"},
242 {2, "Platform Configuration Service"},
243 {3, "Basic+Platform Configuration Service"},
244 {4, "Topology Discovery Configuration Service"},
245 {5, "Basic+Topology Discovery Configuration Service"},
246 {6, "Platform+Topology Discovery Configuration Service"},
247 {7, "Basic+Platform+Topology Discovery Configuration Service"},
251 static const value_string fc_fcs_unsmask_val
[] = {
252 {1, "Basic Unzoned Name Service"},