0001
0002
0003
0004
0005
0006
0007
0008 #ifndef _FC_NS_H_
0009 #define _FC_NS_H_
0010
0011 #include <linux/types.h>
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #define FC_NS_SUBTYPE 2
0022
0023
0024
0025
0026
0027 enum fc_ns_req {
0028 FC_NS_GA_NXT = 0x0100,
0029 FC_NS_GI_A = 0x0101,
0030 FC_NS_GPN_ID = 0x0112,
0031 FC_NS_GNN_ID = 0x0113,
0032 FC_NS_GSPN_ID = 0x0118,
0033 FC_NS_GID_PN = 0x0121,
0034 FC_NS_GID_NN = 0x0131,
0035 FC_NS_GID_FT = 0x0171,
0036 FC_NS_GPN_FT = 0x0172,
0037 FC_NS_GID_PT = 0x01a1,
0038 FC_NS_RPN_ID = 0x0212,
0039 FC_NS_RNN_ID = 0x0213,
0040 FC_NS_RFT_ID = 0x0217,
0041 FC_NS_RSPN_ID = 0x0218,
0042 FC_NS_RFF_ID = 0x021f,
0043 FC_NS_RSNN_NN = 0x0239,
0044 };
0045
0046
0047
0048
0049 enum fc_ns_pt {
0050 FC_NS_UNID_PORT = 0x00,
0051 FC_NS_N_PORT = 0x01,
0052 FC_NS_NL_PORT = 0x02,
0053 FC_NS_FNL_PORT = 0x03,
0054 FC_NS_NX_PORT = 0x7f,
0055 FC_NS_F_PORT = 0x81,
0056 FC_NS_FL_PORT = 0x82,
0057 FC_NS_E_PORT = 0x84,
0058 FC_NS_B_PORT = 0x85,
0059 };
0060
0061
0062
0063
0064 struct fc_ns_pt_obj {
0065 __u8 pt_type;
0066 };
0067
0068
0069
0070
0071 struct fc_ns_fid {
0072 __u8 fp_flags;
0073 __u8 fp_fid[3];
0074 };
0075
0076
0077
0078
0079 #define FC_NS_FID_LAST 0x80
0080
0081
0082
0083
0084 #define FC_NS_TYPES 256
0085 #define FC_NS_BPW 32
0086
0087 struct fc_ns_fts {
0088 __be32 ff_type_map[FC_NS_TYPES / FC_NS_BPW];
0089 };
0090
0091
0092
0093
0094 struct fc_ns_ff {
0095 __be32 fd_feat[FC_NS_TYPES * 4 / FC_NS_BPW];
0096 };
0097
0098
0099
0100
0101 struct fc_ns_gid_pt {
0102 __u8 fn_pt_type;
0103 __u8 fn_domain_id_scope;
0104 __u8 fn_area_id_scope;
0105 __u8 fn_resvd;
0106 };
0107
0108
0109
0110
0111 struct fc_ns_gid_ft {
0112 __u8 fn_resvd;
0113 __u8 fn_domain_id_scope;
0114 __u8 fn_area_id_scope;
0115 __u8 fn_fc4_type;
0116 };
0117
0118
0119
0120
0121 struct fc_gpn_ft_resp {
0122 __u8 fp_flags;
0123 __u8 fp_fid[3];
0124 __be32 fp_resvd;
0125 __be64 fp_wwpn;
0126 };
0127
0128
0129
0130
0131 struct fc_ns_gid_pn {
0132 __be64 fn_wwpn;
0133 };
0134
0135
0136
0137
0138 struct fc_gid_pn_resp {
0139 __u8 fp_resvd;
0140 __u8 fp_fid[3];
0141 };
0142
0143
0144
0145
0146 struct fc_gspn_resp {
0147 __u8 fp_name_len;
0148 char fp_name[];
0149 };
0150
0151
0152
0153
0154 struct fc_ns_rft_id {
0155 struct fc_ns_fid fr_fid;
0156 struct fc_ns_fts fr_fts;
0157 };
0158
0159
0160
0161
0162
0163 struct fc_ns_rn_id {
0164 struct fc_ns_fid fr_fid;
0165 __be64 fr_wwn;
0166 } __attribute__((__packed__));
0167
0168
0169
0170
0171 struct fc_ns_rsnn {
0172 __be64 fr_wwn;
0173 __u8 fr_name_len;
0174 char fr_name[];
0175 } __attribute__((__packed__));
0176
0177
0178
0179
0180 struct fc_ns_rspn {
0181 struct fc_ns_fid fr_fid;
0182 __u8 fr_name_len;
0183 char fr_name[];
0184 } __attribute__((__packed__));
0185
0186
0187
0188
0189 struct fc_ns_rff_id {
0190 struct fc_ns_fid fr_fid;
0191 __u8 fr_resvd[2];
0192 __u8 fr_feat;
0193 __u8 fr_type;
0194 } __attribute__((__packed__));
0195
0196 #endif