diff options
Diffstat (limited to 'drivers/scsi/bfa/bfa_fcbuild.c')
-rw-r--r-- | drivers/scsi/bfa/bfa_fcbuild.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfa_fcbuild.c b/drivers/scsi/bfa/bfa_fcbuild.c index 17b59b8b5644..273cee90b3b4 100644 --- a/drivers/scsi/bfa/bfa_fcbuild.c +++ b/drivers/scsi/bfa/bfa_fcbuild.c | |||
@@ -1252,6 +1252,27 @@ fc_rspnid_build(struct fchs_s *fchs, void *pyld, u32 s_id, u16 ox_id, | |||
1252 | } | 1252 | } |
1253 | 1253 | ||
1254 | u16 | 1254 | u16 |
1255 | fc_rsnn_nn_build(struct fchs_s *fchs, void *pyld, u32 s_id, | ||
1256 | wwn_t node_name, u8 *name) | ||
1257 | { | ||
1258 | struct ct_hdr_s *cthdr = (struct ct_hdr_s *) pyld; | ||
1259 | struct fcgs_rsnn_nn_req_s *rsnn_nn = | ||
1260 | (struct fcgs_rsnn_nn_req_s *) (cthdr + 1); | ||
1261 | u32 d_id = bfa_hton3b(FC_NAME_SERVER); | ||
1262 | |||
1263 | fc_gs_fchdr_build(fchs, d_id, s_id, 0); | ||
1264 | fc_gs_cthdr_build(cthdr, s_id, GS_RSNN_NN); | ||
1265 | |||
1266 | memset(rsnn_nn, 0, sizeof(struct fcgs_rsnn_nn_req_s)); | ||
1267 | |||
1268 | rsnn_nn->node_name = node_name; | ||
1269 | rsnn_nn->snn_len = (u8) strlen((char *)name); | ||
1270 | strncpy((char *)rsnn_nn->snn, (char *)name, rsnn_nn->snn_len); | ||
1271 | |||
1272 | return sizeof(struct fcgs_rsnn_nn_req_s) + sizeof(struct ct_hdr_s); | ||
1273 | } | ||
1274 | |||
1275 | u16 | ||
1255 | fc_gid_ft_build(struct fchs_s *fchs, void *pyld, u32 s_id, u8 fc4_type) | 1276 | fc_gid_ft_build(struct fchs_s *fchs, void *pyld, u32 s_id, u8 fc4_type) |
1256 | { | 1277 | { |
1257 | 1278 | ||