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_FCDNS_H_
25 #define __PACKET_FCDNS_H_
27 /* Opcode definitions */
28 #define FCDNS_GA_NXT 0x0100
29 #define FCDNS_GID_A 0x0101
30 #define FCDNS_GPN_ID 0x0112
31 #define FCDNS_GNN_ID 0x0113
32 #define FCDNS_GCS_ID 0x0114
33 #define FCDNS_GFT_ID 0x0117
34 #define FCDNS_GSPN_ID 0x0118
35 #define FCDNS_GPT_ID 0x011A
36 #define FCDNS_GIPP_ID 0x011B
37 #define FCDNS_GFPN_ID 0x011C
38 #define FCDNS_GHA_ID 0x011D
39 #define FCDNS_GFD_ID 0x011E
40 #define FCDNS_GFF_ID 0x011F
41 #define FCDNS_GID_PN 0x0121
42 #define FCDNS_GIPP_PN 0x012B
43 #define FCDNS_GID_NN 0x0131
44 #define FCDNS_GPN_NN 0x0132
45 #define FCDNS_GIP_NN 0x0135
46 #define FCDNS_GIPA_NN 0x0136
47 #define FCDNS_GSNN_NN 0x0139
48 #define FCDNS_GNN_IP 0x0153
49 #define FCDNS_GIPA_IP 0x0156
50 #define FCDNS_GID_FT 0x0171
51 #define FCDNS_GPN_FT 0x0172
52 #define FCDNS_GNN_FT 0x0173
53 #define FCDNS_GID_PT 0x01A1
54 #define FCDNS_GID_IPP 0x01B1
55 #define FCDNS_GPN_IPP 0x01B2
56 #define FCDNS_GID_FF 0x01F1
57 #define FCDNS_RPN_ID 0x0212
58 #define FCDNS_RNN_ID 0x0213
59 #define FCDNS_RCS_ID 0x0214
60 #define FCDNS_RFT_ID 0x0217
61 #define FCDNS_RSPN_ID 0x0218
62 #define FCDNS_RPT_ID 0x021A
63 #define FCDNS_RIPP_ID 0x021B
64 #define FCDNS_RHA_ID 0x021D
65 #define FCDNS_RFD_ID 0x021E
66 #define FCDNS_RFF_ID 0x021F
67 #define FCDNS_RIP_NN 0x0235
68 #define FCDNS_RSNN_NN 0x0239
69 #define FCDNS_DA_ID 0x0300
70 /* dNS messages defined by FC-SW2 */
72 #define FCDNS_GE_ID 0x0410
73 #define FCDNS_GE_PN 0x0420
74 #define FCDNS_GE_NN 0x0430
75 #define FCDNS_GE_IP 0x0450
76 #define FCDNS_GE_FT 0x0470
77 #define FCDNS_GE_PT 0x04A0
78 #define FCDNS_GE_ZM 0x04B0
79 #define FCDNS_GE_ZN 0x04C0
80 #define FCDNS_GE_IPP 0x04D0
81 #define FCDNS_GE_FF 0x04E0
83 static const value_string fc_dns_opcode_val
[] = {
84 {FCDNS_GA_NXT
, "GA_NXT" },
85 {FCDNS_GID_A
, "GID_A" },
86 {FCDNS_GPN_ID
, "GPN_ID" },
87 {FCDNS_GNN_ID
, "GNN_ID" },
88 {FCDNS_GCS_ID
, "GCS_ID" },
89 {FCDNS_GFT_ID
, "GFT_ID" },
90 {FCDNS_GSPN_ID
, "GSPN_ID" },
91 {FCDNS_GPT_ID
, "GPT_ID" },
92 {FCDNS_GIPP_ID
, "GIPP_ID" },
93 {FCDNS_GFPN_ID
, "GFPN_ID" },
94 {FCDNS_GHA_ID
, "GHA_ID" },
95 {FCDNS_GFD_ID
, "GFD_ID" },
96 {FCDNS_GFF_ID
, "GFF_ID" },
97 {FCDNS_GID_PN
, "GID_PN" },
98 {FCDNS_GIPP_PN
, "GIPP_PN" },
99 {FCDNS_GID_NN
, "GID_NN" },
100 {FCDNS_GPN_NN
, "GPN_NN" },
101 {FCDNS_GIP_NN
, "GIP_NN" },
102 {FCDNS_GIPA_NN
, "GIPA_NN" },
103 {FCDNS_GSNN_NN
, "GSNN_NN" },
104 {FCDNS_GNN_IP
, "GNN_IP" },
105 {FCDNS_GIPA_IP
, "GIPA_IP" },
106 {FCDNS_GID_FT
, "GID_FT" },
107 {FCDNS_GPN_FT
, "GPN_FT" },
108 {FCDNS_GNN_FT
, "GNN_FT" },
109 {FCDNS_GID_PT
, "GID_PT" },
110 {FCDNS_GID_IPP
, "GID_IPP" },
111 {FCDNS_GPN_IPP
, "GPN_IPP" },
112 {FCDNS_GID_FF
, "GID_FF" },
113 {FCDNS_RPN_ID
, "RPN_ID" },
114 {FCDNS_RNN_ID
, "RNN_ID" },
115 {FCDNS_RCS_ID
, "RCS_ID" },
116 {FCDNS_RFT_ID
, "RFT_ID" },
117 {FCDNS_RSPN_ID
, "RSPN_ID" },
118 {FCDNS_RPT_ID
, "RPT_ID" },
119 {FCDNS_RIPP_ID
, "RIPP_ID" },
120 {FCDNS_RHA_ID
, "RHA_ID" },
121 {FCDNS_RFD_ID
, "RFD_ID" },
122 {FCDNS_RFF_ID
, "RFF_ID" },
123 {FCDNS_RIP_NN
, "RIP_NN" },
124 {FCDNS_RSNN_NN
, "RSNN_NN"},
125 {FCDNS_DA_ID
, "DA_ID"},
126 {FCDNS_GE_ID
, "GE_ID"},
127 {FCDNS_GE_PN
, "GE_PN"},
128 {FCDNS_GE_NN
, "GE_NN"},
129 {FCDNS_GE_IP
, "GE_IP"},
130 {FCDNS_GE_FT
, "GE_FT"},
131 {FCDNS_GE_PT
, "GE_PT"},
132 {FCDNS_GE_ZM
, "GE_ZM"},
133 {FCDNS_GE_ZN
, "GE_ZN"},
134 {FCDNS_GE_IPP
, "GE_IPP"},
135 {FCDNS_GE_FF
, "GE_FF"},
136 {FCCT_MSG_ACC
, "MSG_ACC"},
137 {FCCT_MSG_RJT
, "MSG_RJT"},
141 /* Port type definitions */
142 #define FCDNS_PTYPE_UNDEF 0x00
143 #define FCDNS_PTYPE_NPORT 0x01
144 #define FCDNS_PTYPE_NLPORT 0x02
145 #define FCDNS_PTYPE_FNLPORT 0x03
146 #define FCDNS_PTYPE_NXPORT 0x7F
147 #define FCDNS_PTYPE_FPORT 0x81
148 #define FCDNS_PTYPE_FLPORT 0x82
149 #define FCDNS_PTYPE_EPORT 0x84
150 #define FCDNS_PTYPE_BPORT 0x85
152 static const value_string fc_dns_port_type_val
[] = {
153 {FCDNS_PTYPE_UNDEF
, "Undefined Port Type"},
154 {FCDNS_PTYPE_NPORT
, "N_Port"},
155 {FCDNS_PTYPE_NLPORT
, "NL_Port"},
156 {FCDNS_PTYPE_FNLPORT
, "F/NL_Port"},
157 {FCDNS_PTYPE_NXPORT
, "Nx_Port"},
158 {FCDNS_PTYPE_FPORT
, "F_Port"},
159 {FCDNS_PTYPE_FLPORT
, "FL_Port"},
160 {FCDNS_PTYPE_EPORT
, "E_Port"},
161 {FCDNS_PTYPE_BPORT
, "B_Port"},
165 /* Reject Detailed Reason code definitions for dNS */
166 #define FCDNS_RJT_NOREASON 0x00
167 #define FCDNS_RJT_PIDNOTREG 0x01
168 #define FCDNS_RJT_PNAMENOTREG 0x02
169 #define FCDNS_RJT_NNAMENOTREG 0x03
170 #define FCDNS_RJT_CLASSNOTREG 0x04
171 #define FCDNS_RJT_IPNNOTREG 0x05
172 #define FCDNS_RJT_IPANOTREG 0x06
173 #define FCDNS_RJT_FC4NOTREG 0x07
174 #define FCDNS_RJT_SPNAMENOTREG 0x08
175 #define FCDNS_RJT_SNNAMENOTREG 0x09
176 #define FCDNS_RJT_PTYPENOTREG 0x0A
177 #define FCDNS_RJT_IPPNOTREG 0x0B
178 #define FCDNS_RJT_FPNAMENOTREG 0x0C
179 #define FCDNS_RJT_HRDADDNOTREG 0x0D
180 #define FCDNS_RJT_FC4DESNOTREG 0x0E
181 #define FCDNS_RJT_FC4FEANOTREG 0x0F
182 #define FCDNS_RJT_ACCRJT 0x10
183 #define FCDNS_RJT_PTYPEFMT 0x11
184 #define FCDNS_RJT_DBEMPTY 0x12
185 #define FCDNS_RJT_NOOBJSCOPE 0x13
186 #define FCDNS_RJT_AUTHRZN_EXCEPTION 0xF0
187 #define FCDNS_RJT_AUTH_EXCEPTION 0xF1
188 #define FCDNS_RJT_DB_FULL 0xF2
189 #define FCDNS_RJT_DB_EMPTY 0xF3
191 static const value_string fc_dns_rjt_det_code_val
[] = {
192 {FCDNS_RJT_NOREASON
, "No Additional Info"},
193 {FCDNS_RJT_PIDNOTREG
, "PortID Not Regd."},
194 {FCDNS_RJT_PNAMENOTREG
, "PortName Not Regd."},
195 {FCDNS_RJT_NNAMENOTREG
, "NodeName Not Regd."},
196 {FCDNS_RJT_CLASSNOTREG
, "Class Not Regd."},
197 {FCDNS_RJT_IPNNOTREG
, "IP Addr (Node) Not Regd."},
198 {FCDNS_RJT_IPANOTREG
, "IPA Not Regd."},
199 {FCDNS_RJT_FC4NOTREG
, "FC4 TYPEs Not Regd."},
200 {FCDNS_RJT_SPNAMENOTREG
, "Symbolic PortName Not Regd."},
201 {FCDNS_RJT_SNNAMENOTREG
, "Symbolic NodeName Not Regd."},
202 {FCDNS_RJT_PTYPENOTREG
, "PortType Not Regd."},
203 {FCDNS_RJT_IPPNOTREG
, "IP Addr (Port) Not Regd."},
204 {FCDNS_RJT_FPNAMENOTREG
, "Fabric Port Name Not Regd."},
205 {FCDNS_RJT_HRDADDNOTREG
, "Hard Addr Not Regd."},
206 {FCDNS_RJT_FC4DESNOTREG
, "FC4 Descriptors Not Regd."},
207 {FCDNS_RJT_FC4FEANOTREG
, "FC4 Features Not Regd."},
208 {FCDNS_RJT_ACCRJT
, "Access Denied"},
209 {FCDNS_RJT_PTYPEFMT
, "Unacceptable PortId"},
210 {FCDNS_RJT_DBEMPTY
, "Database Empty"},
211 {FCDNS_RJT_NOOBJSCOPE
, "No Objects Regd. in Scope"},
212 {FCDNS_RJT_AUTHRZN_EXCEPTION
, "Authorization Exception"},
213 {FCDNS_RJT_AUTH_EXCEPTION
, "Authentication Exception"},
214 {FCDNS_RJT_DB_FULL
, "Database Full"},
215 {FCDNS_RJT_DB_EMPTY
, "Database Empty"},
219 /* Actual servers serving the directory service type identified by subtype */
220 #define FCDNS_GSSUBTYPE_DNS 0x02
221 #define FCDNS_GSSUBTYPE_IP 0x03
223 static const value_string fc_dns_subtype_val
[] = {
224 {FCDNS_GSSUBTYPE_DNS
, "dNS"},
225 {FCDNS_GSSUBTYPE_IP
, "IP"},