Fix for bug 1633:

Adding BLS ABTS handling.

svn path=/trunk/; revision=22087
This commit is contained in:
Jaap Keuter 2007-06-13 06:52:23 +00:00
parent bcfc3b9468
commit d87fb06466
2 changed files with 11 additions and 4 deletions

View File

@ -192,6 +192,7 @@ fc_exchange_init_protocol(void)
const value_string fc_fc4_val[] = {
{FC_TYPE_BLS, "Basic Link Svc"},
{FC_TYPE_ELS, "Ext Link Svc"},
{FC_TYPE_LLCSNAP, "LLC_SNAP"},
{FC_TYPE_IP, "IP/FC"},
@ -969,11 +970,10 @@ dissect_fc_helper (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean
*/
is_lastframe_inseq = TRUE;
} else {
/* XXX is this right? offset 20, shouldnt it be offset 9? */
is_exchg_resp = ((tvb_get_guint8 (tvb, offset+20) & 0x80) == 0x80);
is_exchg_resp = (f_ctl & FC_FCTL_EXCHANGE_RESPONDER) != 0;
}
if (tvb_reported_length (tvb) <= FC_HEADER_SIZE)
if (tvb_reported_length (tvb) < FC_HEADER_SIZE)
THROW(ReportedBoundsError);
frag_size = tvb_reported_length (tvb)-FC_HEADER_SIZE;
@ -1124,9 +1124,15 @@ dissect_fc_helper (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean
dissect_fc_ba_acc (next_tvb, pinfo, tree);
} else if ((fchdr.r_ctl & 0x0F) == FC_BLS_BARJT) {
dissect_fc_ba_rjt (next_tvb, pinfo, tree);
} else if ((fchdr.r_ctl & 0x0F) == FC_BLS_ABTS) {
if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
col_set_str(pinfo->cinfo, COL_PROTOCOL, "BLS");
}
if (check_col(pinfo->cinfo, COL_INFO)) {
col_set_str(pinfo->cinfo, COL_INFO, "ABTS");
}
}
}
tap_queue_packet(fc_tap, pinfo, &fchdr);
}

View File

@ -39,6 +39,7 @@
#define FC_TYPE_CMNSVC 0x0 /* Used in PRLI Svc Param Page */
/* TYPE definitions for Basic or Extended Link_Data */
#define FC_TYPE_BLS 0x0
#define FC_TYPE_ELS 0x1
/* TYPE definitions for FC-4 */