match_strval() may return NULL so don't blindly pass its return value into col_add_*() or proto_add_*(); use val_to_str() (returning "Unknown (%d)" if no match is found) instead.
svn path=/trunk/; revision=24557
This commit is contained in:
parent
2da196a98b
commit
bb323055b2
|
@ -863,7 +863,7 @@ BACnetPropertyIdentifier [] = {
|
|||
{204,"time-synchronization-recipients"},
|
||||
{205,"trigger"},
|
||||
{206,"UTC-time-synchronization-recipients"},
|
||||
/* enumerations 207-211 are used in Addendum d to
|
||||
/* enumerations 207-211 are used in Addendum d to
|
||||
ANSI/ASHRAE 135-2004 */
|
||||
{207,"node-subtype"},
|
||||
{208,"node-type"},
|
||||
|
@ -1498,8 +1498,8 @@ fTagHeaderTree (tvbuff_t *tvb, proto_tree *tree, guint offset,
|
|||
{
|
||||
if (tag_is_closing(tag) || tag_is_opening(tag))
|
||||
ti = proto_tree_add_text(tree, tvb, offset, tag_len,
|
||||
"%s: %u", match_strval(
|
||||
tag & 0x07, BACnetTagNames),
|
||||
"%s: %u", val_to_str(
|
||||
tag & 0x07, BACnetTagNames, "Unknown (%d)"),
|
||||
*tag_no);
|
||||
else if (tag_is_context_specific(tag)) {
|
||||
ti = proto_tree_add_text(tree, tvb, offset, tag_len,
|
||||
|
@ -1953,7 +1953,7 @@ static guint fTimeStamp (tvbuff_t *tvb, proto_tree *tree,
|
|||
return offset;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
@ -3131,7 +3131,7 @@ fNotificationParameters (tvbuff_t *tvb, proto_tree *tree, guint offset)
|
|||
case 0: /* "command-value: " */
|
||||
/* from BACnet Table 13-3,
|
||||
Standard Object Property Values Returned in Notifications */
|
||||
propertyIdentifier = 85; /* PRESENT_VALUE */
|
||||
propertyIdentifier = 85; /* PRESENT_VALUE */
|
||||
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
|
||||
offset = fAbstractSyntaxNType (tvb, subtree, offset);
|
||||
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
|
||||
|
@ -3734,9 +3734,9 @@ fGetEnrollmentSummaryAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
|
|||
while ((tvb_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
|
||||
lastoffset = offset;
|
||||
offset = fApplicationTypes (tvb, tree, offset, "Object Identifier: ");
|
||||
offset = fApplicationTypesEnumeratedSplit (tvb, tree, offset,
|
||||
offset = fApplicationTypesEnumeratedSplit (tvb, tree, offset,
|
||||
"event Type: ", BACnetEventType, 64);
|
||||
offset = fApplicationTypesEnumerated (tvb, tree, offset,
|
||||
offset = fApplicationTypesEnumerated (tvb, tree, offset,
|
||||
"event State: ", BACnetEventState);
|
||||
offset = fApplicationTypes (tvb, tree, offset, "Priority: ");
|
||||
offset = fApplicationTypes (tvb, tree, offset, "Notification Class: ");
|
||||
|
@ -3764,7 +3764,7 @@ flistOfEventSummaries (tvbuff_t *tvb, proto_tree *tree, guint offset)
|
|||
guint32 lvt;
|
||||
proto_tree* subtree = tree;
|
||||
proto_item* ti = 0;
|
||||
|
||||
|
||||
while ((tvb_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
|
||||
lastoffset = offset;
|
||||
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
|
||||
|
@ -4425,7 +4425,7 @@ fSelectionCriteria (tvbuff_t *tvb, proto_tree *tree, guint offset)
|
|||
if (tag_is_closing(tag_info)) { /* stop when we hit outer closing tag */
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
switch (fTagNo(tvb,offset)) {
|
||||
case 0: /* propertyIdentifier */
|
||||
offset = fPropertyIdentifier (tvb, tree, offset);
|
||||
|
@ -4772,7 +4772,7 @@ static guint fAccessMethod(tvbuff_t *tvb, proto_tree *tree, guint offset)
|
|||
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ chdlctype(guint16 chdlctype, tvbuff_t *tvb, int offset_after_chdlctype,
|
|||
if (chdlctype == CHDLCTYPE_OSI &&
|
||||
!( padbyte == NLPID_ISO8473_CLNP || /* older Juniper SW does not send a padbyte */
|
||||
padbyte == NLPID_ISO9542_ESIS ||
|
||||
padbyte == NLPID_ISO10589_ISIS)) {
|
||||
padbyte == NLPID_ISO10589_ISIS)) {
|
||||
/* There is a Padding Byte for CLNS protocols over Cisco HDLC */
|
||||
proto_tree_add_text(fh_tree, tvb, offset_after_chdlctype, 1, "CLNS Padding: 0x%02x",
|
||||
padbyte);
|
||||
|
@ -298,10 +298,10 @@ dissect_slarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
case SLARP_REQUEST:
|
||||
case SLARP_REPLY:
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
address = tvb_get_ipv4(tvb, 4);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s, from %s, mask %s",
|
||||
match_strval(code, slarp_ptype_vals),
|
||||
get_hostname(address),
|
||||
address = tvb_get_ipv4(tvb, 4);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s, from %s, mask %s",
|
||||
val_to_str(code, slarp_ptype_vals, "Unknown (%d)"),
|
||||
get_hostname(address),
|
||||
ip_to_str(tvb_get_ptr(tvb, 8, 4)));
|
||||
}
|
||||
if (tree) {
|
||||
|
@ -316,10 +316,10 @@ dissect_slarp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
mysequence = tvb_get_ntohl(tvb, 4);
|
||||
yoursequence = tvb_get_ntohl(tvb, 8);
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s, outgoing sequence %u, returned sequence %u",
|
||||
match_strval(code, slarp_ptype_vals),
|
||||
mysequence, yoursequence);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s, outgoing sequence %u, returned sequence %u",
|
||||
val_to_str(code, slarp_ptype_vals, "Unknown (%d)"),
|
||||
mysequence, yoursequence);
|
||||
}
|
||||
if (tree) {
|
||||
proto_tree_add_uint(slarp_tree, hf_slarp_ptype, tvb, 0, 4, code);
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
static int proto_cimd = -1;
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_cimd = -1;
|
||||
static gint ett_cimd = -1;
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int hf_cimd_opcode_indicator = -1;
|
||||
|
@ -54,7 +54,7 @@ static int hf_cimd_dcs_indication_type = -1;
|
|||
|
||||
static const value_string vals_hdr_OC[] = {
|
||||
/* operation codes array */
|
||||
{CIMD_Login, "Login"},
|
||||
{CIMD_Login, "Login"},
|
||||
{CIMD_LoginResp, "Login Resp"},
|
||||
{CIMD_Logout, "Logout"},
|
||||
{CIMD_LogoutResp, "Logout Resp"},
|
||||
|
@ -276,14 +276,14 @@ static void dissect_cimd_ud(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint s
|
|||
{
|
||||
/* Set up structures needed to add the param subtree and manage it */
|
||||
proto_item *param_item = NULL;
|
||||
proto_tree *param_tree = NULL;
|
||||
proto_tree *param_tree = NULL;
|
||||
|
||||
gchar* payloadText;
|
||||
gchar* tmpBuffer = (gchar*)ep_alloc(1024);
|
||||
gchar* tmpBuffer1 = (gchar*)ep_alloc(1024);
|
||||
int loop,i,poz, bufPoz = 0, bufPoz1 = 0, size, size1, resch;
|
||||
gint g_offset, g_size;
|
||||
gchar token[4];
|
||||
gchar token[4];
|
||||
gchar ch;
|
||||
const char* mapping[128] = {
|
||||
"_Oa","_L-", "", "_Y-", "_e`", "_e'", "_u`", "_i`", "_o`","_C,", /*10*/
|
||||
|
@ -483,14 +483,14 @@ static void dissect_cimd_ud(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint s
|
|||
case 0x7A: resch = 0x007A; break;
|
||||
case 0x7B: resch = 0x00E4; break;
|
||||
case 0x7C: resch = 0x00F6; break;
|
||||
case 0x7D: resch = 0x00F1; break;
|
||||
case 0x7F: resch = 0x00E0; break;
|
||||
case 0x7D: resch = 0x00F1; break;
|
||||
case 0x7F: resch = 0x00E0; break;
|
||||
default:resch = ch;break;
|
||||
}
|
||||
tmpBuffer1[bufPoz1++] = (gchar)resch;
|
||||
}
|
||||
|
||||
tmpBuffer1[bufPoz1] = '\0';
|
||||
tmpBuffer1[bufPoz1] = '\0';
|
||||
proto_tree_add_string(param_tree, (*vals_hdr_PC[pindex].hf_p), tvb, g_offset, g_size, tmpBuffer1);
|
||||
}
|
||||
|
||||
|
@ -529,7 +529,7 @@ static void dissect_cimd_dcs(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint
|
|||
other_decode_bitfield_value(bigbuf, dcs, (dcs_cg <= 0x07 ? 0xC0 : 0xF0), 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_coding_group_indicator, tvb, offset, 1,
|
||||
dcs_cg, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_coding_group_indicator)->name,
|
||||
match_strval(dcs_cg, cimd_dcs_coding_groups), dcs_cg
|
||||
val_to_str(dcs_cg, cimd_dcs_coding_groups, "Unknown (%d)"), dcs_cg
|
||||
);
|
||||
|
||||
if (dcs_cg <= 0x07)
|
||||
|
@ -538,21 +538,21 @@ static void dissect_cimd_dcs(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint
|
|||
other_decode_bitfield_value(bigbuf, dcs, 0x20, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_compressed_indicator, tvb, offset, 1,
|
||||
dcs_cf, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_compressed_indicator)->name,
|
||||
match_strval(dcs_cf, cimd_dcs_compressed), dcs_cf
|
||||
val_to_str(dcs_cf, cimd_dcs_compressed, "Unknown (%d)"), dcs_cf
|
||||
);
|
||||
|
||||
dcs_mcm = (dcs & 0x10) >> 4;
|
||||
other_decode_bitfield_value(bigbuf, dcs, 0x10, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_message_class_meaning_indicator, tvb, offset, 1,
|
||||
dcs_mcm, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_message_class_meaning_indicator)->name,
|
||||
match_strval(dcs_mcm, cimd_dcs_message_class_meaning), dcs_mcm
|
||||
val_to_str(dcs_mcm, cimd_dcs_message_class_meaning, "Unknown (%d)"), dcs_mcm
|
||||
);
|
||||
|
||||
dcs_chs = (dcs & 0x0C) >> 2;
|
||||
other_decode_bitfield_value(bigbuf, dcs, 0x0C, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_character_set_indicator, tvb, offset, 1,
|
||||
dcs_chs, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_character_set_indicator)->name,
|
||||
match_strval(dcs_chs, cimd_dcs_character_set), dcs_chs
|
||||
val_to_str(dcs_chs, cimd_dcs_character_set, "Unknown (%d)"), dcs_chs
|
||||
);
|
||||
|
||||
if (dcs_mcm)
|
||||
|
@ -561,7 +561,7 @@ static void dissect_cimd_dcs(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint
|
|||
other_decode_bitfield_value(bigbuf, dcs, 0x03, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_message_class_indicator, tvb, offset, 1,
|
||||
dcs_mc, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_message_class_indicator)->name,
|
||||
match_strval(dcs_mc, cimd_dcs_message_class), dcs_mc
|
||||
val_to_str(dcs_mc, cimd_dcs_message_class, "Unknown (%d)"), dcs_mc
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -571,14 +571,14 @@ static void dissect_cimd_dcs(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint
|
|||
other_decode_bitfield_value(bigbuf, dcs, 0x04, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_indication_sense, tvb, offset, 1,
|
||||
dcs_is, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_indication_sense)->name,
|
||||
match_strval(dcs_is, cimd_dcs_indication_sense), dcs_is
|
||||
);
|
||||
val_to_str(dcs_is, cimd_dcs_indication_sense, "Unknown (%d)"), dcs_is
|
||||
);
|
||||
|
||||
dcs_it = (dcs & 0x03);
|
||||
other_decode_bitfield_value(bigbuf, dcs, 0x03, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_indication_type, tvb, offset, 1,
|
||||
dcs_it, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_indication_type)->name,
|
||||
match_strval(dcs_it, cimd_dcs_indication_type), dcs_it
|
||||
val_to_str(dcs_it, cimd_dcs_indication_type, "Unknown (%d)"), dcs_it
|
||||
);
|
||||
}
|
||||
else if (dcs_cg == 0x0F)
|
||||
|
@ -587,14 +587,14 @@ static void dissect_cimd_dcs(tvbuff_t *tvb, proto_tree *tree, gint pindex, gint
|
|||
other_decode_bitfield_value(bigbuf, dcs, 0x04, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_character_set_indicator, tvb, offset, 1,
|
||||
dcs_chs, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_character_set_indicator)->name,
|
||||
match_strval(dcs_chs, cimd_dcs_character_set), dcs_chs
|
||||
val_to_str(dcs_chs, cimd_dcs_character_set, "Unknown (%d)"), dcs_chs
|
||||
);
|
||||
|
||||
dcs_mc = (dcs & 0x03);
|
||||
other_decode_bitfield_value(bigbuf, dcs, 0x03, 8);
|
||||
proto_tree_add_uint_format(param_tree, hf_cimd_dcs_message_class_indicator, tvb, offset, 1,
|
||||
dcs_mc, "%s = %s: %s (%d)", bigbuf, proto_registrar_get_nth(hf_cimd_dcs_message_class_indicator)->name,
|
||||
match_strval(dcs_mc, cimd_dcs_message_class), dcs_mc
|
||||
val_to_str(dcs_mc, cimd_dcs_message_class, "Unknown (%d)"), dcs_mc
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -626,7 +626,7 @@ dissect_cimd_operation(tvbuff_t *tvb, proto_tree *tree, gint etxp, guint16 check
|
|||
break;
|
||||
|
||||
PC = decimal_int_value(tvb, offset + 1, CIMD_PC_LENGTH);
|
||||
match_strval_idx(PC, cimd_vals_PC, &index);
|
||||
match_strval_idx(PC, cimd_vals_PC, &index);
|
||||
if (index != -1 && tree)
|
||||
{
|
||||
(vals_hdr_PC[index].diss)(tvb, cimd_tree, index, offset, endOffset);
|
||||
|
@ -652,7 +652,7 @@ dissect_cimd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
gint offset = 0;
|
||||
/*gint endOffset = 0;*/
|
||||
gboolean checksumIsValid = TRUE;
|
||||
guint8 last1, last2, last3;
|
||||
guint8 last1, last2, last3;
|
||||
|
||||
etxp = tvb_find_guint8(tvb, CIMD_PN_OFFSET + CIMD_PN_LENGTH, -1, CIMD_ETX);
|
||||
if (etxp == -1) return;
|
||||
|
@ -665,7 +665,7 @@ dissect_cimd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
last3 = tvb_get_guint8(tvb, etxp - 3);
|
||||
|
||||
if (last1 == CIMD_DELIM) {
|
||||
/* valid packet, CC is missing */
|
||||
/* valid packet, CC is missing */
|
||||
} else if (last1 != CIMD_DELIM && last2 != CIMD_DELIM && last3 == CIMD_DELIM) {
|
||||
/* looks valid, it would be nice to check that last1 and last2 are HEXA */
|
||||
/* CC is present */
|
||||
|
@ -688,9 +688,9 @@ dissect_cimd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "");
|
||||
if (checksumIsValid)
|
||||
col_append_str(pinfo->cinfo, COL_INFO, match_strval(OC, vals_hdr_OC));
|
||||
col_append_str(pinfo->cinfo, COL_INFO, val_to_str(OC, vals_hdr_OC, "Unknown (%d)"));
|
||||
else
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "%s - %s", match_strval(OC, vals_hdr_OC), "invalid checksum");
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "%s - %s", val_to_str(OC, vals_hdr_OC, "Unknown (%d)"), "invalid checksum");
|
||||
}
|
||||
|
||||
dissect_cimd_operation(tvb, tree, etxp, checksum, last1, OC, PN);
|
||||
|
@ -729,7 +729,7 @@ dissect_cimd_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
return FALSE;
|
||||
|
||||
if (tvb_get_guint8(tvb, CIMD_OC_OFFSET + CIMD_OC_LENGTH) != CIMD_COLON)
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
|
||||
if (tvb_get_guint8(tvb, CIMD_PN_OFFSET + CIMD_PN_LENGTH) != CIMD_DELIM)
|
||||
return FALSE;
|
||||
|
@ -856,7 +856,7 @@ proto_register_cimd(void)
|
|||
};
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_cimd = proto_register_protocol("Computer Interface to Message Distribution", "CIMD", "cimd");
|
||||
proto_cimd = proto_register_protocol("Computer Interface to Message Distribution", "CIMD", "cimd");
|
||||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_cimd, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
|
|
@ -317,9 +317,9 @@ dissect_dlsw_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
"Explorer message: yes",
|
||||
"Explorer message: no"));
|
||||
proto_tree_add_text (dlsw_header_tree,tvb, 22,1,"Circuit priority = %s",
|
||||
match_strval((tvb_get_guint8(tvb,22)&7),dlsw_pri_vals)) ;
|
||||
val_to_str((tvb_get_guint8(tvb,22)&7),dlsw_pri_vals, "Unknown (%d)")) ;
|
||||
proto_tree_add_text (dlsw_header_tree,tvb, 23,1,"Old message type = %s (0x%02x)",
|
||||
val_to_str(tvb_get_guint8(tvb,23) , dlsw_type_vals, "Unknown Type"),
|
||||
val_to_str(tvb_get_guint8(tvb,23) , dlsw_type_vals, "Unknown Type"),
|
||||
tvb_get_guint8(tvb,23));
|
||||
proto_tree_add_text (dlsw_header_tree,tvb, 24,6,"Target MAC Address = %s",tvb_bytes_to_str(tvb,24,6)) ;
|
||||
proto_tree_add_text (dlsw_header_tree,tvb, 30,6,"Origin MAC Address = %s",tvb_bytes_to_str(tvb,30,6)) ;
|
||||
|
|
|
@ -734,7 +734,7 @@ dissect_dtpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
if (check_col(pinfo->cinfo, COL_PROTOCOL))
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "DTPT");
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
col_add_str(pinfo->cinfo, COL_INFO, match_strval(message_type, names_message_type));
|
||||
col_add_str(pinfo->cinfo, COL_INFO, val_to_str(message_type, names_message_type, "Unknown (%d)"));
|
||||
|
||||
if (message_type == LookupBeginRequest) {
|
||||
conversation_t *c;
|
||||
|
|
|
@ -644,7 +644,7 @@ dissect_epl_soa(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo, guint8
|
|||
if (svid != EPL_SOA_NOSERVICE && check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "tgt = %3d %s",
|
||||
target, match_strval(svid, soa_svid_vals));
|
||||
target, val_to_str(svid, soa_svid_vals, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
if (epl_tree)
|
||||
|
@ -677,7 +677,7 @@ dissect_epl_asnd(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo, guint8
|
|||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
|
||||
match_strval(svid, asnd_svid_vals));
|
||||
val_to_str(svid, asnd_svid_vals, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
switch (svid)
|
||||
|
@ -728,8 +728,8 @@ dissect_epl_asnd_nmtreq(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo,
|
|||
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_str(pinfo->cinfo, COL_INFO,
|
||||
match_strval(rcid, asnd_cid_vals));
|
||||
col_append_str(pinfo->cinfo, COL_INFO,
|
||||
val_to_str(rcid, asnd_cid_vals, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
return offset;
|
||||
|
@ -772,8 +772,8 @@ dissect_epl_asnd_nmtcmd(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo,
|
|||
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_str(pinfo->cinfo, COL_INFO,
|
||||
match_strval(epl_asnd_nmtcommand_cid, asnd_cid_vals));
|
||||
col_append_str(pinfo->cinfo, COL_INFO,
|
||||
val_to_str(epl_asnd_nmtcommand_cid, asnd_cid_vals, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
return offset;
|
||||
|
@ -853,10 +853,10 @@ dissect_epl_asnd_ires(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo, g
|
|||
|
||||
additional = tvb_get_letohs(tvb, offset+2);
|
||||
proto_tree_add_string_format(epl_tree, hf_epl_asnd_identresponse_dt, tvb, offset,
|
||||
4, "", "Device Type: Profil %d (%s), Additional Information: 0x%4.4X",
|
||||
4, "", "Device Type: Profil %d (%s), Additional Information: 0x%4.4X",
|
||||
profile, val_to_str(profile, epl_device_profiles, "Unkown Profile"), additional);
|
||||
|
||||
proto_tree_add_item(epl_tree, hf_epl_asnd_identresponse_profile, tvb, offset, 2, TRUE);
|
||||
|
||||
proto_tree_add_item(epl_tree, hf_epl_asnd_identresponse_profile, tvb, offset, 2, TRUE);
|
||||
offset += 4;
|
||||
|
||||
proto_tree_add_item(epl_tree, hf_epl_asnd_identresponse_vid, tvb, offset, 4, TRUE);
|
||||
|
@ -941,7 +941,7 @@ dissect_epl_asnd_sres(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo, g
|
|||
nmt_state = tvb_get_guint8(tvb, offset);
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", match_strval(nmt_state, epl_nmt_cs_vals));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(nmt_state, epl_nmt_cs_vals, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
if (epl_tree)
|
||||
|
@ -1214,7 +1214,7 @@ dissect_epl_sdo_command_write_by_index(proto_tree *epl_tree, tvbuff_t *tvb, pack
|
|||
else if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "Requ. %s",
|
||||
match_strval(segmented, epl_sdo_asnd_cmd_segmentation));
|
||||
val_to_str(segmented, epl_sdo_asnd_cmd_segmentation, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
if (epl_tree)
|
||||
|
@ -1290,7 +1290,7 @@ dissect_epl_sdo_command_read_by_index(proto_tree *epl_tree, tvbuff_t *tvb, packe
|
|||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "Resp. %s",
|
||||
match_strval(segmented, epl_sdo_asnd_cmd_segmentation));
|
||||
val_to_str(segmented, epl_sdo_asnd_cmd_segmentation, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
if (epl_tree)
|
||||
|
@ -1512,7 +1512,7 @@ static hf_register_info hf[] = {
|
|||
|
||||
prefs_register_bool_preference(epl_module, "show_soc_flags", "Show flags of SoC frame in Info column",
|
||||
"If you are capturing in networks with multiplexed or slow nodes, this can be useful", &show_soc_flags);
|
||||
|
||||
|
||||
/* tap-registration */
|
||||
/* epl_tap = register_tap("epl");*/
|
||||
}
|
||||
|
|
|
@ -7,17 +7,17 @@
|
|||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
@ -180,7 +180,7 @@ static const true_false_string pd_bit = {
|
|||
};
|
||||
static const true_false_string e_bit = {
|
||||
" encrypted frame",
|
||||
" non encrypted frame"
|
||||
" non encrypted frame"
|
||||
};
|
||||
static const true_false_string pm_bit = {
|
||||
"FCS covers the frame header and information fields",
|
||||
|
@ -257,37 +257,37 @@ static const value_string cr_formats_ipluss[] = {
|
|||
|
||||
/* CRC24 table - FCS */
|
||||
guint32 tbl_crc24[256] = {
|
||||
0x00000000, 0x00d6a776, 0x00f64557, 0x0020e221, 0x00b78115, 0x00612663, 0x0041c442, 0x00976334,
|
||||
0x00340991, 0x00e2aee7, 0x00c24cc6, 0x0014ebb0, 0x00838884, 0x00552ff2, 0x0075cdd3, 0x00a36aa5,
|
||||
0x00681322, 0x00beb454, 0x009e5675, 0x0048f103, 0x00df9237, 0x00093541, 0x0029d760, 0x00ff7016,
|
||||
0x005c1ab3, 0x008abdc5, 0x00aa5fe4, 0x007cf892, 0x00eb9ba6, 0x003d3cd0, 0x001ddef1, 0x00cb7987,
|
||||
0x00d02644, 0x00068132, 0x00266313, 0x00f0c465, 0x0067a751, 0x00b10027, 0x0091e206, 0x00474570,
|
||||
0x00e42fd5, 0x003288a3, 0x00126a82, 0x00c4cdf4, 0x0053aec0, 0x008509b6, 0x00a5eb97, 0x00734ce1,
|
||||
0x00b83566, 0x006e9210, 0x004e7031, 0x0098d747, 0x000fb473, 0x00d91305, 0x00f9f124, 0x002f5652,
|
||||
0x008c3cf7, 0x005a9b81, 0x007a79a0, 0x00acded6, 0x003bbde2, 0x00ed1a94, 0x00cdf8b5, 0x001b5fc3,
|
||||
0x00fb4733, 0x002de045, 0x000d0264, 0x00dba512, 0x004cc626, 0x009a6150, 0x00ba8371, 0x006c2407,
|
||||
0x00cf4ea2, 0x0019e9d4, 0x00390bf5, 0x00efac83, 0x0078cfb7, 0x00ae68c1, 0x008e8ae0, 0x00582d96,
|
||||
0x00935411, 0x0045f367, 0x00651146, 0x00b3b630, 0x0024d504, 0x00f27272, 0x00d29053, 0x00043725,
|
||||
0x00a75d80, 0x0071faf6, 0x005118d7, 0x0087bfa1, 0x0010dc95, 0x00c67be3, 0x00e699c2, 0x00303eb4,
|
||||
0x002b6177, 0x00fdc601, 0x00dd2420, 0x000b8356, 0x009ce062, 0x004a4714, 0x006aa535, 0x00bc0243,
|
||||
0x001f68e6, 0x00c9cf90, 0x00e92db1, 0x003f8ac7, 0x00a8e9f3, 0x007e4e85, 0x005eaca4, 0x00880bd2,
|
||||
0x00437255, 0x0095d523, 0x00b53702, 0x00639074, 0x00f4f340, 0x00225436, 0x0002b617, 0x00d41161,
|
||||
0x00777bc4, 0x00a1dcb2, 0x00813e93, 0x005799e5, 0x00c0fad1, 0x00165da7, 0x0036bf86, 0x00e018f0,
|
||||
0x00ad85dd, 0x007b22ab, 0x005bc08a, 0x008d67fc, 0x001a04c8, 0x00cca3be, 0x00ec419f, 0x003ae6e9,
|
||||
0x00998c4c, 0x004f2b3a, 0x006fc91b, 0x00b96e6d, 0x002e0d59, 0x00f8aa2f, 0x00d8480e, 0x000eef78,
|
||||
0x00c596ff, 0x00133189, 0x0033d3a8, 0x00e574de, 0x007217ea, 0x00a4b09c, 0x008452bd, 0x0052f5cb,
|
||||
0x00f19f6e, 0x00273818, 0x0007da39, 0x00d17d4f, 0x00461e7b, 0x0090b90d, 0x00b05b2c, 0x0066fc5a,
|
||||
0x007da399, 0x00ab04ef, 0x008be6ce, 0x005d41b8, 0x00ca228c, 0x001c85fa, 0x003c67db, 0x00eac0ad,
|
||||
0x0049aa08, 0x009f0d7e, 0x00bfef5f, 0x00694829, 0x00fe2b1d, 0x00288c6b, 0x00086e4a, 0x00dec93c,
|
||||
0x0015b0bb, 0x00c317cd, 0x00e3f5ec, 0x0035529a, 0x00a231ae, 0x007496d8, 0x005474f9, 0x0082d38f,
|
||||
0x0021b92a, 0x00f71e5c, 0x00d7fc7d, 0x00015b0b, 0x0096383f, 0x00409f49, 0x00607d68, 0x00b6da1e,
|
||||
0x0056c2ee, 0x00806598, 0x00a087b9, 0x007620cf, 0x00e143fb, 0x0037e48d, 0x001706ac, 0x00c1a1da,
|
||||
0x0062cb7f, 0x00b46c09, 0x00948e28, 0x0042295e, 0x00d54a6a, 0x0003ed1c, 0x00230f3d, 0x00f5a84b,
|
||||
0x003ed1cc, 0x00e876ba, 0x00c8949b, 0x001e33ed, 0x008950d9, 0x005ff7af, 0x007f158e, 0x00a9b2f8,
|
||||
0x000ad85d, 0x00dc7f2b, 0x00fc9d0a, 0x002a3a7c, 0x00bd5948, 0x006bfe3e, 0x004b1c1f, 0x009dbb69,
|
||||
0x0086e4aa, 0x005043dc, 0x0070a1fd, 0x00a6068b, 0x003165bf, 0x00e7c2c9, 0x00c720e8, 0x0011879e,
|
||||
0x00b2ed3b, 0x00644a4d, 0x0044a86c, 0x00920f1a, 0x00056c2e, 0x00d3cb58, 0x00f32979, 0x00258e0f,
|
||||
0x00eef788, 0x003850fe, 0x0018b2df, 0x00ce15a9, 0x0059769d, 0x008fd1eb, 0x00af33ca, 0x007994bc,
|
||||
0x00000000, 0x00d6a776, 0x00f64557, 0x0020e221, 0x00b78115, 0x00612663, 0x0041c442, 0x00976334,
|
||||
0x00340991, 0x00e2aee7, 0x00c24cc6, 0x0014ebb0, 0x00838884, 0x00552ff2, 0x0075cdd3, 0x00a36aa5,
|
||||
0x00681322, 0x00beb454, 0x009e5675, 0x0048f103, 0x00df9237, 0x00093541, 0x0029d760, 0x00ff7016,
|
||||
0x005c1ab3, 0x008abdc5, 0x00aa5fe4, 0x007cf892, 0x00eb9ba6, 0x003d3cd0, 0x001ddef1, 0x00cb7987,
|
||||
0x00d02644, 0x00068132, 0x00266313, 0x00f0c465, 0x0067a751, 0x00b10027, 0x0091e206, 0x00474570,
|
||||
0x00e42fd5, 0x003288a3, 0x00126a82, 0x00c4cdf4, 0x0053aec0, 0x008509b6, 0x00a5eb97, 0x00734ce1,
|
||||
0x00b83566, 0x006e9210, 0x004e7031, 0x0098d747, 0x000fb473, 0x00d91305, 0x00f9f124, 0x002f5652,
|
||||
0x008c3cf7, 0x005a9b81, 0x007a79a0, 0x00acded6, 0x003bbde2, 0x00ed1a94, 0x00cdf8b5, 0x001b5fc3,
|
||||
0x00fb4733, 0x002de045, 0x000d0264, 0x00dba512, 0x004cc626, 0x009a6150, 0x00ba8371, 0x006c2407,
|
||||
0x00cf4ea2, 0x0019e9d4, 0x00390bf5, 0x00efac83, 0x0078cfb7, 0x00ae68c1, 0x008e8ae0, 0x00582d96,
|
||||
0x00935411, 0x0045f367, 0x00651146, 0x00b3b630, 0x0024d504, 0x00f27272, 0x00d29053, 0x00043725,
|
||||
0x00a75d80, 0x0071faf6, 0x005118d7, 0x0087bfa1, 0x0010dc95, 0x00c67be3, 0x00e699c2, 0x00303eb4,
|
||||
0x002b6177, 0x00fdc601, 0x00dd2420, 0x000b8356, 0x009ce062, 0x004a4714, 0x006aa535, 0x00bc0243,
|
||||
0x001f68e6, 0x00c9cf90, 0x00e92db1, 0x003f8ac7, 0x00a8e9f3, 0x007e4e85, 0x005eaca4, 0x00880bd2,
|
||||
0x00437255, 0x0095d523, 0x00b53702, 0x00639074, 0x00f4f340, 0x00225436, 0x0002b617, 0x00d41161,
|
||||
0x00777bc4, 0x00a1dcb2, 0x00813e93, 0x005799e5, 0x00c0fad1, 0x00165da7, 0x0036bf86, 0x00e018f0,
|
||||
0x00ad85dd, 0x007b22ab, 0x005bc08a, 0x008d67fc, 0x001a04c8, 0x00cca3be, 0x00ec419f, 0x003ae6e9,
|
||||
0x00998c4c, 0x004f2b3a, 0x006fc91b, 0x00b96e6d, 0x002e0d59, 0x00f8aa2f, 0x00d8480e, 0x000eef78,
|
||||
0x00c596ff, 0x00133189, 0x0033d3a8, 0x00e574de, 0x007217ea, 0x00a4b09c, 0x008452bd, 0x0052f5cb,
|
||||
0x00f19f6e, 0x00273818, 0x0007da39, 0x00d17d4f, 0x00461e7b, 0x0090b90d, 0x00b05b2c, 0x0066fc5a,
|
||||
0x007da399, 0x00ab04ef, 0x008be6ce, 0x005d41b8, 0x00ca228c, 0x001c85fa, 0x003c67db, 0x00eac0ad,
|
||||
0x0049aa08, 0x009f0d7e, 0x00bfef5f, 0x00694829, 0x00fe2b1d, 0x00288c6b, 0x00086e4a, 0x00dec93c,
|
||||
0x0015b0bb, 0x00c317cd, 0x00e3f5ec, 0x0035529a, 0x00a231ae, 0x007496d8, 0x005474f9, 0x0082d38f,
|
||||
0x0021b92a, 0x00f71e5c, 0x00d7fc7d, 0x00015b0b, 0x0096383f, 0x00409f49, 0x00607d68, 0x00b6da1e,
|
||||
0x0056c2ee, 0x00806598, 0x00a087b9, 0x007620cf, 0x00e143fb, 0x0037e48d, 0x001706ac, 0x00c1a1da,
|
||||
0x0062cb7f, 0x00b46c09, 0x00948e28, 0x0042295e, 0x00d54a6a, 0x0003ed1c, 0x00230f3d, 0x00f5a84b,
|
||||
0x003ed1cc, 0x00e876ba, 0x00c8949b, 0x001e33ed, 0x008950d9, 0x005ff7af, 0x007f158e, 0x00a9b2f8,
|
||||
0x000ad85d, 0x00dc7f2b, 0x00fc9d0a, 0x002a3a7c, 0x00bd5948, 0x006bfe3e, 0x004b1c1f, 0x009dbb69,
|
||||
0x0086e4aa, 0x005043dc, 0x0070a1fd, 0x00a6068b, 0x003165bf, 0x00e7c2c9, 0x00c720e8, 0x0011879e,
|
||||
0x00b2ed3b, 0x00644a4d, 0x0044a86c, 0x00920f1a, 0x00056c2e, 0x00d3cb58, 0x00f32979, 0x00258e0f,
|
||||
0x00eef788, 0x003850fe, 0x0018b2df, 0x00ce15a9, 0x0059769d, 0x008fd1eb, 0x00af33ca, 0x007994bc,
|
||||
0x00dafe19, 0x000c596f, 0x002cbb4e, 0x00fa1c38, 0x006d7f0c, 0x00bbd87a, 0x009b3a5b, 0x004d9d2d
|
||||
};
|
||||
|
||||
|
@ -332,15 +332,15 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
proto_tree *uinfo_tree = NULL;
|
||||
/* END MLT CHANGES */
|
||||
|
||||
if (check_col(pinfo->cinfo, COL_PROTOCOL))
|
||||
if (check_col(pinfo->cinfo, COL_PROTOCOL))
|
||||
{
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "GPRS-LLC");
|
||||
}
|
||||
|
||||
|
||||
addr_fld = tvb_get_guint8(tvb,offset);
|
||||
offset++;
|
||||
|
||||
if (addr_fld > 128 )
|
||||
|
||||
if (addr_fld > 128 )
|
||||
{
|
||||
if (check_col(pinfo->cinfo,COL_INFO))
|
||||
{
|
||||
|
@ -348,15 +348,15 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
sapi = addr_fld & 0xF;
|
||||
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "SAPI: %s", match_strval(sapi,sapi_abrv));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "SAPI: %s", val_to_str(sapi,sapi_abrv, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
length = tvb_reported_length(tvb);
|
||||
if (tvb_length(tvb) >= length && length >= 3)
|
||||
{
|
||||
|
@ -380,7 +380,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
fcs_status = FCS_NOT_VALID;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We don't have enough data to compute the FCS. */
|
||||
|
@ -391,14 +391,16 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
fcs_calc = 0;
|
||||
crc_start = 0;
|
||||
}
|
||||
|
||||
|
||||
/* In the interest of speed, if "tree" is NULL, don't do any work not
|
||||
necessary to generate protocol tree items. */
|
||||
|
||||
if (tree)
|
||||
|
||||
if (tree)
|
||||
{
|
||||
|
||||
ti = proto_tree_add_protocol_format(tree, proto_llcgprs, tvb, 0, -1,"MS-SGSN LLC (Mobile Station - Serving GPRS Support Node Logical Link Control) SAPI: %s", match_strval(sapi,sapi_t));
|
||||
ti = proto_tree_add_protocol_format(tree, proto_llcgprs, tvb, 0, -1,
|
||||
"MS-SGSN LLC (Mobile Station - Serving GPRS Support Node Logical Link Control) SAPI: %s",
|
||||
val_to_str(sapi,sapi_t, "Unknown (%d)"));
|
||||
|
||||
llcgprs_tree = proto_item_add_subtree(ti, ett_llcgprs);
|
||||
|
||||
|
@ -406,7 +408,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
switch (fcs_status) {
|
||||
|
||||
case FCS_VALID:
|
||||
proto_tree_add_text (llcgprs_tree, tvb, crc_start, 3,
|
||||
proto_tree_add_text (llcgprs_tree, tvb, crc_start, 3,
|
||||
"FCS: 0x%06x (correct)", fcs_calc&0xffffff);
|
||||
break;
|
||||
|
||||
|
@ -420,25 +422,25 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
}
|
||||
|
||||
addres_field_item = proto_tree_add_uint_format(llcgprs_tree,hf_llcgprs_sapi,
|
||||
tvb, 0,1, sapi, "Address field SAPI: %s", match_strval(sapi,sapi_abrv));
|
||||
tvb, 0,1, sapi, "Address field SAPI: %s", val_to_str(sapi,sapi_abrv, "Unknown (%d)"));
|
||||
|
||||
ad_f_tree = proto_item_add_subtree(addres_field_item, ett_llcgprs_adf);
|
||||
proto_tree_add_boolean(ad_f_tree, hf_llcgprs_pd, tvb, 0, 1, addr_fld );
|
||||
proto_tree_add_boolean(ad_f_tree, hf_llcgprs_cr, tvb, 0, 1, addr_fld );
|
||||
proto_tree_add_uint(ad_f_tree, hf_llcgprs_sapib, tvb, 0, 1, addr_fld );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
ctrl_fld_fb = tvb_get_guint8(tvb,offset);
|
||||
if (ctrl_fld_fb < 0xC0)
|
||||
{
|
||||
frame_format = (ctrl_fld_fb < 0x80)? I_FORMAT : S_FORMAT;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
frame_format = (ctrl_fld_fb < 0xe0 )? UI_FORMAT : U_FORMAT;
|
||||
}
|
||||
}
|
||||
|
||||
switch (frame_format)
|
||||
{
|
||||
|
@ -461,7 +463,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_str(pinfo->cinfo, COL_INFO, match_strval(epm, cr_formats_ipluss));
|
||||
col_append_str(pinfo->cinfo, COL_INFO, val_to_str(epm, cr_formats_ipluss, "Unknown (%d)"));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", N(S) = %u", ns);
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", N(R) = %u", nr);
|
||||
}
|
||||
|
@ -470,9 +472,9 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
guint32 tmp;
|
||||
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, (offset-3),
|
||||
3,"Information format: %s: N(S) = %u, N(R) = %u",
|
||||
match_strval(epm, cr_formats_ipluss), ns, nr);
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, (offset-3),
|
||||
3,"Information format: %s: N(S) = %u, N(R) = %u",
|
||||
val_to_str(epm, cr_formats_ipluss, "Unknown (%d)"), ns, nr);
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_sframe);
|
||||
|
||||
/* retrieve the second octet */
|
||||
|
@ -488,7 +490,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_isack_nr, tvb, offset-3, 3, tmp);
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_isack_sfb, tvb, offset-3, 3, ctrl_fld_ui_s);
|
||||
}
|
||||
|
||||
|
||||
/* check to see if epm is SACK - meaning this is an ISACK frame */
|
||||
if (epm == 0x03)
|
||||
{
|
||||
|
@ -515,7 +517,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint8 r_byte = 0;
|
||||
guint16 location = offset;
|
||||
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, (offset-1),
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, (offset-1),
|
||||
(k+1), "SACK FRAME: k = %u", k);
|
||||
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_sframe);
|
||||
|
@ -534,10 +536,10 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/* step past the R Bitmap */
|
||||
offset += k;
|
||||
}
|
||||
|
||||
|
||||
if ((sapi == SAPI_TOM2) || (sapi == SAPI_TOM8))
|
||||
{
|
||||
/* if SAPI is TOM do other parsing */
|
||||
/* if SAPI is TOM do other parsing */
|
||||
if (tree)
|
||||
{
|
||||
guint8 tom_byte = 0;
|
||||
|
@ -549,9 +551,9 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
remaining_length = (tom_byte >> 4) & 0x0F;
|
||||
tom_pd = tom_byte & 0x0F;
|
||||
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
(crc_start-offset), "TOM Envelope - Protocol: %s",
|
||||
match_strval(tom_pd, tompd_formats));
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
(crc_start-offset), "TOM Envelope - Protocol: %s",
|
||||
val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
|
||||
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_sframe);
|
||||
|
||||
|
@ -569,7 +571,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
tom_byte = tvb_get_guint8(tvb, offset);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_header, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_header, tvb,
|
||||
offset, 1, tom_byte);
|
||||
|
||||
/* step to the next byte */
|
||||
|
@ -583,7 +585,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
tom_byte = tvb_get_guint8(tvb, offset);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_data, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_data, tvb,
|
||||
offset, 1, tom_byte);
|
||||
|
||||
/* step to the next byte */
|
||||
|
@ -603,7 +605,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
}
|
||||
}
|
||||
/* END MLT CHANGES */
|
||||
|
||||
|
||||
break;
|
||||
case S_FORMAT:
|
||||
case UI_FORMAT:
|
||||
|
@ -618,29 +620,29 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_str(pinfo->cinfo, COL_INFO, ", S, ");
|
||||
col_append_str(pinfo->cinfo, COL_INFO, match_strval(epm,cr_formats_ipluss));
|
||||
col_append_str(pinfo->cinfo, COL_INFO, val_to_str(epm,cr_formats_ipluss, "Unknown (%d)"));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", N(R) = %u", nu);
|
||||
}
|
||||
|
||||
|
||||
if (tree)
|
||||
{
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset-2, 2,
|
||||
"Supervisory format: %s: N(R) = %u",
|
||||
match_strval(epm,cr_formats_ipluss), nu);
|
||||
val_to_str(epm,cr_formats_ipluss, "Unknown (%d)"), nu);
|
||||
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_sframe);
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_S_fmt, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
proto_tree_add_boolean(ctrl_f_tree, hf_llcgprs_As, tvb, offset-2,
|
||||
proto_tree_add_boolean(ctrl_f_tree, hf_llcgprs_As, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
|
||||
/* MLT CHANGES - added spare bits */
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_sspare, tvb, offset-2,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_sspare, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
/* END MLT CHANGES */
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_NR, tvb, offset-2,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_NR, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_sjsd, tvb, offset-2,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_sjsd, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
}
|
||||
|
||||
|
@ -657,16 +659,16 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint8 r_byte = 0;
|
||||
guint16 location = offset;
|
||||
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
sack_length, "SACK FRAME: length = %u", sack_length);
|
||||
|
||||
|
||||
/* display the R Bitmap */
|
||||
for (loop_count = 0; loop_count < sack_length; loop_count++)
|
||||
{
|
||||
r_byte = tvb_get_guint8(tvb, location);
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_rbyte, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_rbyte, tvb,
|
||||
location, 1, r_byte);
|
||||
|
||||
|
||||
location++;
|
||||
}
|
||||
|
||||
|
@ -690,9 +692,9 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
remaining_length = (tom_byte >> 4) & 0x0F;
|
||||
tom_pd = tom_byte & 0x0F;
|
||||
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
(crc_start-offset), "TOM Envelope - Protocol: %s",
|
||||
match_strval(tom_pd, tompd_formats));
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
(crc_start-offset), "TOM Envelope - Protocol: %s",
|
||||
val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
|
||||
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_sframe);
|
||||
|
||||
|
@ -710,7 +712,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
tom_byte = tvb_get_guint8(tvb, offset);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_header, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_header, tvb,
|
||||
offset, 1, tom_byte);
|
||||
|
||||
/* step to the next byte */
|
||||
|
@ -725,7 +727,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
tom_byte = tvb_get_guint8(tvb, offset);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_data, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_data, tvb,
|
||||
offset, 1, tom_byte);
|
||||
|
||||
/* step to the next byte */
|
||||
|
@ -748,24 +750,24 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
else
|
||||
{
|
||||
/*UI format*/
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_str(pinfo->cinfo, COL_INFO, ", UI, ");
|
||||
col_append_str(pinfo->cinfo, COL_INFO, match_strval(epm, pme ));
|
||||
col_append_str(pinfo->cinfo, COL_INFO, val_to_str(epm, pme, "Unknown (%d)"));
|
||||
col_append_fstr(pinfo->cinfo,COL_INFO, ", N(U) = %u", nu);
|
||||
}
|
||||
|
||||
|
||||
if (tree)
|
||||
{
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset-2,
|
||||
{
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset-2,
|
||||
2, "Unnumbered Information format - UI, N(U) = %u", nu);
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_ctrlf);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_U_fmt, tvb, offset-2,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_U_fmt, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_sp_bits, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_NU, tvb, offset-2, 2,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_NU, tvb, offset-2, 2,
|
||||
ctrl_fld_ui_s);
|
||||
proto_tree_add_boolean(ctrl_f_tree, hf_llcgprs_E_bit, tvb, offset-2,
|
||||
2, ctrl_fld_ui_s);
|
||||
|
@ -781,7 +783,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/* Either we're ignoring the cipher bit
|
||||
* (because the bit is set but the
|
||||
* data is unciphered), and the data has
|
||||
* a valid FCS, or the cipher
|
||||
* a valid FCS, or the cipher
|
||||
* bit isn't set (indicating that the
|
||||
* data is unciphered). Try dissecting
|
||||
* it with a subdissector. */
|
||||
|
@ -800,9 +802,9 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
remaining_length = (tom_byte >> 4) & 0x0F;
|
||||
tom_pd = tom_byte & 0x0F;
|
||||
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
(crc_start-offset), "TOM Envelope - Protocol: %s",
|
||||
match_strval(tom_pd, tompd_formats));
|
||||
ctrl_field_item = proto_tree_add_text(llcgprs_tree, tvb, offset,
|
||||
(crc_start-offset), "TOM Envelope - Protocol: %s",
|
||||
val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
|
||||
|
||||
ctrl_f_tree = proto_item_add_subtree(ctrl_field_item, ett_llcgprs_sframe);
|
||||
|
||||
|
@ -820,7 +822,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
tom_byte = tvb_get_guint8(tvb, offset);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_header, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_header, tvb,
|
||||
offset, 1, tom_byte);
|
||||
|
||||
/* step to the next byte */
|
||||
|
@ -835,7 +837,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
tom_byte = tvb_get_guint8(tvb, offset);
|
||||
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_data, tvb,
|
||||
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_data, tvb,
|
||||
offset, 1, tom_byte);
|
||||
|
||||
/* step to the next byte */
|
||||
|
@ -867,16 +869,16 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
tmp = 0;
|
||||
tmp = ctrl_fld_fb & 0xf;
|
||||
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
if (check_col(pinfo->cinfo, COL_INFO))
|
||||
{
|
||||
col_append_str(pinfo->cinfo, COL_INFO, ", U, ");
|
||||
col_append_str(pinfo->cinfo, COL_INFO,
|
||||
col_append_str(pinfo->cinfo, COL_INFO,
|
||||
val_to_str(tmp, cr_formats_unnumb,"Unknown/invalid code:%X"));
|
||||
}
|
||||
|
||||
if(tree){
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, (offset-1), (crc_start-1),
|
||||
"Unnumbered frame: %s",
|
||||
"Unnumbered frame: %s",
|
||||
val_to_str(tmp,cr_formats_unnumb, "Unknown/invalid code:%X"));
|
||||
|
||||
ui_tree = proto_item_add_subtree(ui_ti, ett_ui);
|
||||
|
@ -899,7 +901,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/* These frames SHOULD NOT have an info field */
|
||||
if (tree)
|
||||
{
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
"No Information Field");
|
||||
ui_tree = proto_item_add_subtree(ui_ti, ett_ui);
|
||||
}
|
||||
|
@ -918,7 +920,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint8 ending = 0;
|
||||
int loop_counter = 0;
|
||||
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
"Information Field: Length = %u", info_len);
|
||||
ui_tree = proto_item_add_subtree(ui_ti, ett_ui);
|
||||
|
||||
|
@ -926,8 +928,8 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
/* parse the XID parameters */
|
||||
byte1 = tvb_get_guint8(tvb, location);
|
||||
|
||||
if (byte1 & 0x80)
|
||||
|
||||
if (byte1 & 0x80)
|
||||
{
|
||||
guint8 xid_param_len_high = 0;
|
||||
guint8 xid_param_len_low = 0;
|
||||
|
@ -958,23 +960,23 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
|
||||
tmp = byte1 & 0x7C;
|
||||
tmp = tmp >> 2;
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location,
|
||||
(ending - 1), "XID Parameter Type: %s",
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location,
|
||||
(ending - 1), "XID Parameter Type: %s",
|
||||
val_to_str(tmp, xid_param_type_str,"Reserved Type:%X"));
|
||||
|
||||
uinfo_tree = proto_item_add_subtree(uinfo_field, ett_ui);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_xl, tvb,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_xl, tvb,
|
||||
location, 1, byte1);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_type, tvb,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_type, tvb,
|
||||
location, 1, byte1);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len1, tvb,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len1, tvb,
|
||||
location, 1, byte1);
|
||||
|
||||
if (byte1 & 0x80) {
|
||||
/* length continued into byte 2 */
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len2, tvb,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len2, tvb,
|
||||
location, 1, byte2);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_spare, tvb,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_spare, tvb,
|
||||
location, 1, byte2);
|
||||
|
||||
/* be sure to account for the second byte of length */
|
||||
|
@ -986,7 +988,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
/* grab the information in the XID param */
|
||||
byte2 = tvb_get_guint8(tvb, location);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_byte, tvb,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_byte, tvb,
|
||||
location, 1, byte2);
|
||||
|
||||
location++;
|
||||
|
@ -995,7 +997,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
}
|
||||
else
|
||||
{
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
"No Information Field");
|
||||
ui_tree = proto_item_add_subtree(ui_ti, ett_ui);
|
||||
}
|
||||
|
@ -1014,7 +1016,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint8 ending = 0;
|
||||
int loop_counter = 0;
|
||||
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
"Information Field: Length = %u", info_len);
|
||||
ui_tree = proto_item_add_subtree(ui_ti, ett_ui);
|
||||
|
||||
|
@ -1022,8 +1024,8 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
/* parse the XID parameters */
|
||||
byte1 = tvb_get_guint8(tvb, location);
|
||||
|
||||
if (byte1 & 0x80)
|
||||
|
||||
if (byte1 & 0x80)
|
||||
{
|
||||
guint8 xid_param_len_high = 0;
|
||||
guint8 xid_param_len_low = 0;
|
||||
|
@ -1063,28 +1065,28 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
value <<= 8;
|
||||
value |= (unsigned long)tvb_get_guint8(tvb, location+i );
|
||||
}
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location, (ending - 1),
|
||||
"XID Parameter Type: %s - Value: %lu",
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location, (ending - 1),
|
||||
"XID Parameter Type: %s - Value: %lu",
|
||||
val_to_str(tmp, xid_param_type_str,"Reserved Type:%X"),value);
|
||||
}
|
||||
else
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location, (ending - 1),
|
||||
"XID Parameter Type: %s",
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location, (ending - 1),
|
||||
"XID Parameter Type: %s",
|
||||
val_to_str(tmp, xid_param_type_str,"Reserved Type:%X"));
|
||||
|
||||
uinfo_tree = proto_item_add_subtree(uinfo_field, ett_ui);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_xl, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_xl, tvb, location,
|
||||
1, byte1);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_type, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_type, tvb, location,
|
||||
1, byte1);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len1, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len1, tvb, location,
|
||||
1, byte1);
|
||||
|
||||
if (byte1 & 0x80) {
|
||||
/* length continued into byte 2 */
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len2, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_len2, tvb, location,
|
||||
1, byte2);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_spare, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_spare, tvb, location,
|
||||
1, byte2);
|
||||
|
||||
/* be sure to account for the second byte of length */
|
||||
|
@ -1096,7 +1098,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
/* grab the information in the XID param */
|
||||
byte2 = tvb_get_guint8(tvb, location);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_byte, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_xid_byte, tvb, location,
|
||||
1, byte2);
|
||||
|
||||
location++;
|
||||
|
@ -1113,11 +1115,11 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
int loop_counter = 0;
|
||||
int location = 0;
|
||||
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
ui_ti = proto_tree_add_text(llcgprs_tree, tvb, offset, (crc_start-2),
|
||||
"Information Field: Length = %u", info_len);
|
||||
ui_tree = proto_item_add_subtree(ui_ti, ett_ui);
|
||||
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, offset, 6,
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, offset, 6,
|
||||
"Rejected Frame Control Field");
|
||||
uinfo_tree = proto_item_add_subtree(uinfo_field, ett_ui);
|
||||
|
||||
|
@ -1126,32 +1128,32 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
{
|
||||
/* display the rejected frame control field */
|
||||
cf_byte = tvb_get_ntohs(tvb, location);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_cf, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_cf, tvb, location,
|
||||
2, cf_byte);
|
||||
|
||||
location += 2;
|
||||
}
|
||||
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location, 4,
|
||||
uinfo_field = proto_tree_add_text(ui_tree, tvb, location, 4,
|
||||
"Information Field Data");
|
||||
uinfo_tree = proto_item_add_subtree(uinfo_field, ett_ui);
|
||||
|
||||
fld_vars = tvb_get_ntohl(tvb, location);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_spare, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_spare, tvb, location,
|
||||
4, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_vs, tvb, location,
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_vs, tvb, location,
|
||||
2, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_vr, tvb, (location + 1),
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_vr, tvb, (location + 1),
|
||||
2, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_cr, tvb, (location + 2),
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_cr, tvb, (location + 2),
|
||||
1, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w4, tvb, (location + 3),
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w4, tvb, (location + 3),
|
||||
1, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w3, tvb, (location + 3),
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w3, tvb, (location + 3),
|
||||
1, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w2, tvb, (location + 3),
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w2, tvb, (location + 3),
|
||||
1, fld_vars);
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w1, tvb, (location + 3),
|
||||
proto_tree_add_uint(uinfo_tree, hf_llcgprs_frmr_w1, tvb, (location + 3),
|
||||
1, fld_vars);
|
||||
}
|
||||
break;
|
||||
|
@ -1160,7 +1162,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
}
|
||||
/* END MLT CHANGES */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1170,19 +1172,19 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
|
||||
void
|
||||
proto_register_llcgprs(void)
|
||||
{
|
||||
{
|
||||
/* Setup list of header fields See Section 1.6.1 for details*/
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_llcgprs_sapi,
|
||||
{ "SAPI", "llcgprs.sapi", FT_UINT8, BASE_DEC, VALS(sapi_abrv), 0x0,"Service Access Point Identifier", HFILL }},
|
||||
{ &hf_llcgprs_pd,
|
||||
{ &hf_llcgprs_pd,
|
||||
{ "Protocol Discriminator_bit", "llcgprs.pd", FT_BOOLEAN,8, TFS(&pd_bit), 0x80, " Protocol Discriminator bit (should be 0)", HFILL }},
|
||||
{&hf_llcgprs_sjsd,
|
||||
{ "Supervisory function bits","llcgprs.s1s2", FT_UINT16, BASE_HEX, VALS(cr_formats_ipluss),0x3, "Supervisory functions bits",HFILL }},
|
||||
{ &hf_llcgprs_cr,
|
||||
{ &hf_llcgprs_cr,
|
||||
{ "Command/Response bit", "llcgprs.cr", FT_BOOLEAN, 8, TFS(&cr_bit), 0x40, " Command/Response bit", HFILL}},
|
||||
{ &hf_llcgprs_sapib,
|
||||
{ "SAPI", "llcgprs.sapib", FT_UINT8, BASE_DEC , VALS(sapi_t), 0xf, "Service Access Point Identifier ",HFILL }},
|
||||
{ "SAPI", "llcgprs.sapib", FT_UINT8, BASE_DEC , VALS(sapi_t), 0xf, "Service Access Point Identifier ",HFILL }},
|
||||
{ &hf_llcgprs_U_fmt,
|
||||
{ "UI format", "llcgprs.ui", FT_UINT16, BASE_HEX, NULL, UI_MASK_FMT, "UI frame format",HFILL}},
|
||||
{ &hf_llcgprs_Un,
|
||||
|
@ -1200,7 +1202,7 @@ proto_register_llcgprs(void)
|
|||
{ &hf_llcgprs_PF,
|
||||
{ "P/F bit", "llcgprs.pf", FT_BOOLEAN, 8, NULL, 0x10,"Poll /Finall bit", HFILL}},
|
||||
{ &hf_llcgprs_ucom,
|
||||
{ "Command/Response","llcgprs.ucom", FT_UINT8, BASE_HEX, VALS(cr_formats_unnumb),0xf,"Commands and Responses",HFILL }},
|
||||
{ "Command/Response","llcgprs.ucom", FT_UINT8, BASE_HEX, VALS(cr_formats_unnumb),0xf,"Commands and Responses",HFILL }},
|
||||
{ &hf_llcgprs_NR,
|
||||
{ "Receive sequence number", "llcgprs.nr",FT_UINT16, BASE_DEC, NULL, UI_MASK_NU,"Receive sequence number N(R)",HFILL }},
|
||||
{&hf_llcgprs_S_fmt,
|
||||
|
@ -1241,43 +1243,43 @@ proto_register_llcgprs(void)
|
|||
{ "Parameter Byte","llcgprs.xidbyte", FT_UINT8, BASE_HEX, NULL, 0xFF, "Data", HFILL}},
|
||||
/* FRMR Parsing Information */
|
||||
{&hf_llcgprs_frmr_cf,
|
||||
{ "Control Field Octet","llcgprs.frmrrfcf", FT_UINT16, BASE_DEC, NULL,
|
||||
{ "Control Field Octet","llcgprs.frmrrfcf", FT_UINT16, BASE_DEC, NULL,
|
||||
0xFFFF, "Rejected Frame CF", HFILL}},
|
||||
{&hf_llcgprs_frmr_spare,
|
||||
{ "X","llcgprs.frmrspare", FT_UINT32, BASE_HEX, NULL, 0xF00400F0,
|
||||
{ "X","llcgprs.frmrspare", FT_UINT32, BASE_HEX, NULL, 0xF00400F0,
|
||||
"Filler", HFILL}},
|
||||
{&hf_llcgprs_frmr_vs,
|
||||
{ "V(S)","llcgprs.frmrvs", FT_UINT32, BASE_DEC, NULL, 0x0FF80000,
|
||||
{ "V(S)","llcgprs.frmrvs", FT_UINT32, BASE_DEC, NULL, 0x0FF80000,
|
||||
"Current send state variable", HFILL}},
|
||||
{&hf_llcgprs_frmr_vr,
|
||||
{ "V(R)","llcgprs.frmrvr", FT_UINT32, BASE_DEC, NULL, 0x0003FE00,
|
||||
{ "V(R)","llcgprs.frmrvr", FT_UINT32, BASE_DEC, NULL, 0x0003FE00,
|
||||
"Current receive state variable", HFILL}},
|
||||
{&hf_llcgprs_frmr_cr,
|
||||
{ "C/R","llcgprs.frmrcr", FT_UINT32, BASE_DEC, NULL, 0x00000100,
|
||||
{ "C/R","llcgprs.frmrcr", FT_UINT32, BASE_DEC, NULL, 0x00000100,
|
||||
"Rejected command response", HFILL}},
|
||||
{&hf_llcgprs_frmr_w4,
|
||||
{ "W4","llcgprs.frmrw4", FT_UINT32, BASE_DEC, NULL, 0x00000008,
|
||||
{ "W4","llcgprs.frmrw4", FT_UINT32, BASE_DEC, NULL, 0x00000008,
|
||||
"LLE was in ABM when rejecting", HFILL}},
|
||||
{&hf_llcgprs_frmr_w3,
|
||||
{ "W3","llcgprs.frmrw3", FT_UINT32, BASE_DEC, NULL, 0x00000004,
|
||||
{ "W3","llcgprs.frmrw3", FT_UINT32, BASE_DEC, NULL, 0x00000004,
|
||||
"Undefined control field", HFILL}},
|
||||
{&hf_llcgprs_frmr_w2,
|
||||
{ "W2","llcgprs.frmrw2", FT_UINT32, BASE_DEC, NULL, 0x00000002,
|
||||
{ "W2","llcgprs.frmrw2", FT_UINT32, BASE_DEC, NULL, 0x00000002,
|
||||
"Info exceeded N201", HFILL}},
|
||||
{&hf_llcgprs_frmr_w1,
|
||||
{ "W1","llcgprs.frmrw1", FT_UINT32, BASE_DEC, NULL, 0x00000001,
|
||||
{ "W1","llcgprs.frmrw1", FT_UINT32, BASE_DEC, NULL, 0x00000001,
|
||||
"Invalid - info not permitted", HFILL}},
|
||||
{&hf_llcgprs_tom_rl,
|
||||
{ "Remaining Length of TOM Protocol Header","llcgprs.romrl", FT_UINT8,
|
||||
BASE_DEC, NULL, 0xF0, "RL", HFILL}},
|
||||
{&hf_llcgprs_tom_pd,
|
||||
{ "TOM Protocol Discriminator","llcgprs.tompd", FT_UINT8, BASE_HEX,
|
||||
{ "TOM Protocol Discriminator","llcgprs.tompd", FT_UINT8, BASE_HEX,
|
||||
NULL, 0x0F, "TPD", HFILL}},
|
||||
{&hf_llcgprs_tom_header,
|
||||
{ "TOM Header Byte","llcgprs.tomhead", FT_UINT8, BASE_HEX, NULL, 0xFF,
|
||||
{ "TOM Header Byte","llcgprs.tomhead", FT_UINT8, BASE_HEX, NULL, 0xFF,
|
||||
"thb", HFILL}},
|
||||
{&hf_llcgprs_tom_data,
|
||||
{ "TOM Message Capsule Byte","llcgprs.tomdata", FT_UINT8, BASE_HEX, NULL,
|
||||
{ "TOM Message Capsule Byte","llcgprs.tomdata", FT_UINT8, BASE_HEX, NULL,
|
||||
0xFF, "tdb", HFILL}},
|
||||
/* END MLT CHANGES */
|
||||
};
|
||||
|
@ -1292,7 +1294,7 @@ proto_register_llcgprs(void)
|
|||
};
|
||||
|
||||
module_t *llcgprs_module;
|
||||
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_llcgprs = proto_register_protocol("Logical Link Control GPRS",
|
||||
"GPRS-LLC", "llcgprs");
|
||||
|
@ -1301,10 +1303,10 @@ proto_register_llcgprs(void)
|
|||
proto_register_field_array(proto_llcgprs, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
register_dissector("llcgprs", dissect_llcgprs, proto_llcgprs);
|
||||
|
||||
|
||||
llcgprs_module = prefs_register_protocol ( proto_llcgprs, NULL );
|
||||
prefs_register_bool_preference ( llcgprs_module, "autodetect_cipher_bit",
|
||||
"Autodetect cipher bit",
|
||||
"Autodetect cipher bit",
|
||||
"Whether to autodetect the cipher bit (because it might be set on unciphered data)",
|
||||
&ignore_cipher_bit );
|
||||
}
|
||||
|
|
|
@ -442,7 +442,7 @@ static int http_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_, epan_d
|
|||
|
||||
tick_stat_node(st, resp_str, st_node_responses, FALSE);
|
||||
|
||||
g_snprintf(str, sizeof(str),"%u %s",i,match_strval(i,vals_status_code));
|
||||
g_snprintf(str, sizeof(str),"%u %s",i,val_to_str(i,vals_status_code, "Unknown (%d)"));
|
||||
tick_stat_node(st, str, resp_grp, FALSE);
|
||||
} else if (v->request_method) {
|
||||
stats_tree_tick_pivot(st,st_node_requests,v->request_method);
|
||||
|
@ -1489,11 +1489,11 @@ http_payload_subdissector(tvbuff_t *tvb, proto_tree *tree,
|
|||
if(tree) {
|
||||
item = proto_tree_add_item(tree, proto_http, tvb, 0, -1, FALSE);
|
||||
proxy_tree = proto_item_add_subtree(item, ett_http);
|
||||
|
||||
|
||||
item = proto_tree_add_string(proxy_tree, hf_http_proxy_connect_host,
|
||||
tvb, 0, 0, strings[0]);
|
||||
PROTO_ITEM_SET_GENERATED(item);
|
||||
|
||||
|
||||
item = proto_tree_add_uint(proxy_tree, hf_http_proxy_connect_port,
|
||||
tvb, 0, 0, strtol(strings[1], NULL, 10) );
|
||||
PROTO_ITEM_SET_GENERATED(item);
|
||||
|
@ -1507,7 +1507,7 @@ http_payload_subdissector(tvbuff_t *tvb, proto_tree *tree,
|
|||
call_dissector(data_handle, tvb, pinfo, tree);
|
||||
} else {
|
||||
/* set pinfo->{src/dst port} and call the TCP sub-dissector lookup */
|
||||
if ( !ptr && value_is_in_range(http_tcp_range, pinfo->destport) )
|
||||
if ( !ptr && value_is_in_range(http_tcp_range, pinfo->destport) )
|
||||
ptr = &pinfo->destport;
|
||||
else
|
||||
ptr = &pinfo->srcport;
|
||||
|
@ -2047,7 +2047,7 @@ dissect_http(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
if (len == -1)
|
||||
break;
|
||||
offset += len;
|
||||
|
||||
|
||||
/*
|
||||
* OK, we've set the Protocol and Info columns for the
|
||||
* first HTTP message; make the columns non-writable,
|
||||
|
|
|
@ -224,9 +224,9 @@ process_flags(proto_tree *sss_tree, tvbuff_t *tvb, guint32 foffset)
|
|||
flags_str[0]='\0';
|
||||
sep="";
|
||||
flags = tvb_get_ntohl(tvb, foffset);
|
||||
for (i = 0 ; i < 256; i++)
|
||||
for (i = 0 ; i < 256; i++)
|
||||
{
|
||||
if (flags & bvalue)
|
||||
if (flags & bvalue)
|
||||
{
|
||||
g_strlcat(flags_str, sep, 1024);
|
||||
switch(bvalue)
|
||||
|
@ -234,102 +234,102 @@ process_flags(proto_tree *sss_tree, tvbuff_t *tvb, guint32 foffset)
|
|||
case 0x00000001:
|
||||
g_strlcat(flags_str, "Enhanced Protection", 1024);
|
||||
break;
|
||||
case 0x00000002:
|
||||
case 0x00000002:
|
||||
g_strlcat(flags_str, "Create ID", 1024);
|
||||
break;
|
||||
case 0x00000004:
|
||||
case 0x00000004:
|
||||
g_strlcat(flags_str, "Remove Lock", 1024);
|
||||
break;
|
||||
case 0x00000008:
|
||||
case 0x00000008:
|
||||
g_strlcat(flags_str, "Repair", 1024);
|
||||
break;
|
||||
case 0x00000010:
|
||||
case 0x00000010:
|
||||
g_strlcat(flags_str, "Unicode", 1024);
|
||||
break;
|
||||
case 0x00000020:
|
||||
case 0x00000020:
|
||||
g_strlcat(flags_str, "EP Master Password Used", 1024);
|
||||
break;
|
||||
case 0x00000040:
|
||||
case 0x00000040:
|
||||
g_strlcat(flags_str, "EP Password Used", 1024);
|
||||
break;
|
||||
case 0x00000080:
|
||||
case 0x00000080:
|
||||
g_strlcat(flags_str, "Set Tree Name", 1024);
|
||||
break;
|
||||
case 0x00000100:
|
||||
case 0x00000100:
|
||||
g_strlcat(flags_str, "Get Context", 1024);
|
||||
break;
|
||||
case 0x00000200:
|
||||
case 0x00000200:
|
||||
g_strlcat(flags_str, "Destroy Context", 1024);
|
||||
break;
|
||||
case 0x00000400:
|
||||
case 0x00000400:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x00000800:
|
||||
case 0x00000800:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x00001000:
|
||||
g_strlcat(flags_str, "EP Lock", 1024);
|
||||
break;
|
||||
case 0x00002000:
|
||||
case 0x00002000:
|
||||
g_strlcat(flags_str, "Not Initialized", 1024);
|
||||
break;
|
||||
case 0x00004000:
|
||||
case 0x00004000:
|
||||
g_strlcat(flags_str, "Enhanced Protection", 1024);
|
||||
break;
|
||||
case 0x00008000:
|
||||
case 0x00008000:
|
||||
g_strlcat(flags_str, "Store Not Synced", 1024);
|
||||
break;
|
||||
case 0x00010000:
|
||||
case 0x00010000:
|
||||
g_strlcat(flags_str, "Admin Last Modified", 1024);
|
||||
break;
|
||||
case 0x00020000:
|
||||
case 0x00020000:
|
||||
g_strlcat(flags_str, "EP Password Present", 1024);
|
||||
break;
|
||||
case 0x00040000:
|
||||
case 0x00040000:
|
||||
g_strlcat(flags_str, "EP Master Password Present", 1024);
|
||||
break;
|
||||
case 0x00080000:
|
||||
case 0x00080000:
|
||||
g_strlcat(flags_str, "MP Disabled", 1024);
|
||||
break;
|
||||
case 0x00100000:
|
||||
case 0x00100000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x00200000:
|
||||
case 0x00200000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x00400000:
|
||||
case 0x00400000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x00800000:
|
||||
case 0x00800000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x01000000:
|
||||
case 0x01000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x02000000:
|
||||
case 0x02000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x04000000:
|
||||
case 0x04000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x08000000:
|
||||
case 0x08000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x10000000:
|
||||
case 0x10000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x20000000:
|
||||
case 0x20000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x40000000:
|
||||
case 0x40000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
case 0x80000000:
|
||||
case 0x80000000:
|
||||
g_strlcat(flags_str, "Not Defined", 1024);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
sep = ", ";
|
||||
}
|
||||
bvalue = bvalue*2;
|
||||
|
@ -337,12 +337,12 @@ process_flags(proto_tree *sss_tree, tvbuff_t *tvb, guint32 foffset)
|
|||
|
||||
tinew = proto_tree_add_uint_format(sss_tree, hf_flags, tvb, foffset, 4, flags, "%s 0x%08x", "Flags:", flags);
|
||||
flags_tree = proto_item_add_subtree(tinew, ett_nds);
|
||||
|
||||
|
||||
bvalue = 0x00000001;
|
||||
|
||||
for (i = 0 ; i < 256; i++ )
|
||||
|
||||
for (i = 0 ; i < 256; i++ )
|
||||
{
|
||||
if (flags & bvalue)
|
||||
if (flags & bvalue)
|
||||
{
|
||||
switch(bvalue)
|
||||
{
|
||||
|
@ -458,10 +458,10 @@ find_delimiter(tvbuff_t *tvb, int foffset)
|
|||
int length = 0;
|
||||
guint16 c_char;
|
||||
|
||||
for (i=0; i < 256; i++)
|
||||
for (i=0; i < 256; i++)
|
||||
{
|
||||
c_char = tvb_get_guint8(tvb, foffset);
|
||||
if (c_char == 0x2a || tvb_length_remaining(tvb, foffset)==0)
|
||||
if (c_char == 0x2a || tvb_length_remaining(tvb, foffset)==0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
@ -480,8 +480,8 @@ sss_string(tvbuff_t* tvb, int hfinfo, proto_tree *sss_tree, int offset, gboolean
|
|||
guint32 i;
|
||||
guint16 c_char;
|
||||
guint32 length_remaining = 0;
|
||||
|
||||
if (length==0)
|
||||
|
||||
if (length==0)
|
||||
{
|
||||
if (little) {
|
||||
str_length = tvb_get_letohl(tvb, foffset);
|
||||
|
@ -516,7 +516,7 @@ sss_string(tvbuff_t* tvb, int hfinfo, proto_tree *sss_tree, int offset, gboolean
|
|||
if (c_char<0x20 || c_char>0x7e)
|
||||
{
|
||||
if (c_char != 0x00)
|
||||
{
|
||||
{
|
||||
c_char = 0x2e;
|
||||
buffer[i] = c_char & 0xff;
|
||||
}
|
||||
|
@ -532,16 +532,16 @@ sss_string(tvbuff_t* tvb, int hfinfo, proto_tree *sss_tree, int offset, gboolean
|
|||
}
|
||||
foffset++;
|
||||
length_remaining--;
|
||||
|
||||
|
||||
if(length_remaining==1)
|
||||
{
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
buffer[i] = '\0';
|
||||
|
||||
if (length==0)
|
||||
|
||||
if (length==0)
|
||||
{
|
||||
if (little) {
|
||||
str_length = tvb_get_letohl(tvb, offset);
|
||||
|
@ -569,8 +569,8 @@ dissect_sss_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, ncp
|
|||
guint32 foffset= 0;
|
||||
proto_tree *atree;
|
||||
proto_item *aitem;
|
||||
|
||||
|
||||
|
||||
|
||||
if (tvb_length_remaining(tvb, foffset)<4) {
|
||||
return;
|
||||
}
|
||||
|
@ -579,15 +579,15 @@ dissect_sss_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, ncp
|
|||
foffset += 1;
|
||||
subfunc = tvb_get_guint8(tvb, foffset);
|
||||
foffset += 1;
|
||||
|
||||
|
||||
/* Fill in the INFO column. */
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "NSSS");
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "C SecretStore - %s", match_strval(subfunc, sss_func_enum));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "C SecretStore - %s", val_to_str(subfunc, sss_func_enum, "Unknown (%d)"));
|
||||
}
|
||||
switch (subfunc) {
|
||||
case 1:
|
||||
aitem = proto_tree_add_text(ncp_tree, tvb, foffset, tvb_length_remaining(tvb, foffset), "Packet Type: %s", match_strval(subfunc, sss_func_enum));
|
||||
aitem = proto_tree_add_text(ncp_tree, tvb, foffset, tvb_length_remaining(tvb, foffset), "Packet Type: %s", val_to_str(subfunc, sss_func_enum, "Unknown (%d)"));
|
||||
atree = proto_item_add_subtree(aitem, ett_sss);
|
||||
proto_tree_add_item(atree, hf_ping_version, tvb, foffset, 4, TRUE);
|
||||
foffset += 4;
|
||||
|
@ -606,7 +606,7 @@ dissect_sss_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, ncp
|
|||
foffset += 12; /* Blank Context */
|
||||
subverb = tvb_get_letohl(tvb, foffset);
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", %s", match_strval(subverb, sss_verb_enum));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", %s", val_to_str(subverb, sss_verb_enum, "Unknown (%d)"));
|
||||
}
|
||||
aitem = proto_tree_add_item(ncp_tree, hf_verb, tvb, foffset, 4, TRUE);
|
||||
atree = proto_item_add_subtree(aitem, ett_sss);
|
||||
|
@ -692,7 +692,7 @@ dissect_sss_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, ncp
|
|||
if (request_value) {
|
||||
request_value->req_nds_flags=255;
|
||||
}
|
||||
if (tvb_length_remaining(tvb, foffset) > 8)
|
||||
if (tvb_length_remaining(tvb, foffset) > 8)
|
||||
{
|
||||
foffset += 4;
|
||||
proto_tree_add_item(ncp_tree, hf_enc_data, tvb, foffset, tvb_length_remaining(tvb, foffset), TRUE);
|
||||
|
@ -718,10 +718,10 @@ dissect_sss_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, guint
|
|||
guint32 number_of_items=0;
|
||||
gint32 length_of_string=0;
|
||||
guint32 i = 0;
|
||||
|
||||
|
||||
proto_tree *atree;
|
||||
proto_item *aitem;
|
||||
|
||||
|
||||
foffset = 8;
|
||||
if (request_value) {
|
||||
subverb = request_value->req_nds_flags;
|
||||
|
@ -733,7 +733,7 @@ dissect_sss_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, guint
|
|||
if (tvb_length_remaining(tvb, foffset)<4) {
|
||||
return;
|
||||
}
|
||||
aitem = proto_tree_add_text(ncp_tree, tvb, foffset, tvb_length_remaining(tvb, foffset), "Function: %s", match_strval(subfunc, sss_func_enum));
|
||||
aitem = proto_tree_add_text(ncp_tree, tvb, foffset, tvb_length_remaining(tvb, foffset), "Function: %s", val_to_str(subfunc, sss_func_enum, "val_to_str"));
|
||||
atree = proto_item_add_subtree(aitem, ett_sss);
|
||||
switch (subfunc) {
|
||||
case 1:
|
||||
|
@ -753,16 +753,16 @@ dissect_sss_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, guint
|
|||
proto_tree_add_item(atree, hf_frag_handle, tvb, foffset, 4, TRUE);
|
||||
foffset += 4;
|
||||
msg_length -= 4;
|
||||
if ((tvb_get_letohl(tvb, foffset-4)==0xffffffff) && (msg_length > 4))
|
||||
if ((tvb_get_letohl(tvb, foffset-4)==0xffffffff) && (msg_length > 4))
|
||||
{
|
||||
foffset += 4;
|
||||
return_code = tvb_get_letohl(tvb, foffset);
|
||||
if ( match_strval(return_code, sss_errors_enum) != NULL )
|
||||
if ( match_strval(return_code, sss_errors_enum) != NULL )
|
||||
{
|
||||
expert_item = proto_tree_add_item(atree, hf_return_code, tvb, foffset, 4, TRUE);
|
||||
expert_add_info_format(pinfo, expert_item, PI_RESPONSE_CODE, PI_ERROR, "SSS Error: %s", match_strval(return_code, sss_errors_enum));
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "R Error - %s", match_strval(return_code, sss_errors_enum));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "R Error - %s", val_to_str(return_code, sss_errors_enum, "Unknown (%d)"));
|
||||
}
|
||||
foffset+=4;
|
||||
}
|
||||
|
@ -771,20 +771,20 @@ dissect_sss_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, guint
|
|||
proto_tree_add_text(atree, tvb, foffset, 4, "Return Code: Success (0x00000000)");
|
||||
if (tvb_length_remaining(tvb, foffset) > 8) {
|
||||
foffset += 4;
|
||||
if (subverb == 6)
|
||||
if (subverb == 6)
|
||||
{
|
||||
foffset += 4;
|
||||
number_of_items = tvb_get_letohl(tvb, foffset);
|
||||
foffset += 8;
|
||||
for (i=0; i<number_of_items; i++)
|
||||
for (i=0; i<number_of_items; i++)
|
||||
{
|
||||
length_of_string = find_delimiter(tvb, foffset);
|
||||
if (length_of_string > tvb_length_remaining(tvb, foffset))
|
||||
if (length_of_string > tvb_length_remaining(tvb, foffset))
|
||||
{
|
||||
return;
|
||||
}
|
||||
foffset = sss_string(tvb, hf_secret, atree, foffset, TRUE, length_of_string);
|
||||
if (tvb_length_remaining(tvb, foffset) < 8)
|
||||
if (tvb_length_remaining(tvb, foffset) < 8)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -865,7 +865,7 @@ proto_register_sss(void)
|
|||
{ &hf_return_code,
|
||||
{ "Return Code", "sss.return_code", FT_UINT32, BASE_HEX, VALS(sss_errors_enum), 0x0,
|
||||
"Return Code", HFILL }},
|
||||
|
||||
|
||||
{ &hf_enc_cred,
|
||||
{ "Encrypted Credential", "sss.enc_cred",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
|
@ -875,7 +875,7 @@ proto_register_sss(void)
|
|||
{ "Encrypted Data", "sss.enc_data",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
"Encrypted Data", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit1,
|
||||
{ "Enhanced Protection", "ncp.sss_bit1", FT_BOOLEAN, 32, NULL, 0x00000001, "", HFILL }},
|
||||
|
||||
|
@ -923,62 +923,62 @@ proto_register_sss(void)
|
|||
|
||||
{ &hfbit16,
|
||||
{ "Not Defined", "ncp.sss_bit16", FT_BOOLEAN, 32, NULL, 0x00008000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit17,
|
||||
{ "EP Lock", "ncp.sss_bit17", FT_BOOLEAN, 32, NULL, 0x00010000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit18,
|
||||
{ "Not Initialized", "ncp.sss_bit18", FT_BOOLEAN, 32, NULL, 0x00020000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit19,
|
||||
{ "Enhanced Protection", "ncp.sss_bit19", FT_BOOLEAN, 32, NULL, 0x00040000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit20,
|
||||
{ "Store Not Synced", "ncp.sss_bit20", FT_BOOLEAN, 32, NULL, 0x00080000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit21,
|
||||
{ "Admin Last Modified", "ncp.sss_bit21", FT_BOOLEAN, 32, NULL, 0x00100000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit22,
|
||||
{ "EP Password Present", "ncp.sss_bit22", FT_BOOLEAN, 32, NULL, 0x00200000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit23,
|
||||
{ "EP Master Password Present", "ncp.sss_bit23", FT_BOOLEAN, 32, NULL, 0x00400000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit24,
|
||||
{ "MP Disabled", "ncp.sss_bit24", FT_BOOLEAN, 32, NULL, 0x00800000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit25,
|
||||
{ "Not Defined", "ncp.sss_bit25", FT_BOOLEAN, 32, NULL, 0x01000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit26,
|
||||
{ "Not Defined", "ncp.sss_bit26", FT_BOOLEAN, 32, NULL, 0x02000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit27,
|
||||
{ "Not Defined", "ncp.sss_bit27", FT_BOOLEAN, 32, NULL, 0x04000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit28,
|
||||
{ "Not Defined", "ncp.sss_bit28", FT_BOOLEAN, 32, NULL, 0x08000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit29,
|
||||
{ "Not Defined", "ncp.sss_bit29", FT_BOOLEAN, 32, NULL, 0x10000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit30,
|
||||
{ "Not Defined", "ncp.sss_bit30", FT_BOOLEAN, 32, NULL, 0x20000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit31,
|
||||
{ "Not Defined", "ncp.sss_bit31", FT_BOOLEAN, 32, NULL, 0x40000000, "", HFILL }},
|
||||
|
||||
|
||||
{ &hfbit32,
|
||||
{ "Not Defined", "ncp.sss_bit32", FT_BOOLEAN, 32, NULL, 0x80000000, "", HFILL }},
|
||||
|
||||
|
||||
};
|
||||
|
||||
static gint *ett[] = {
|
||||
&ett_sss,
|
||||
};
|
||||
/*module_t *sss_module;*/
|
||||
|
||||
|
||||
proto_sss = proto_register_protocol("Novell SecretStore Services", "SSS", "sss");
|
||||
proto_register_field_array(proto_sss, hf_sss, array_length(hf_sss));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
|
|
@ -449,7 +449,7 @@ dissect_avps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *avp_tree)
|
|||
proto_tree_add_text(single_avp_tree, tvb, offset, avp_data_length,
|
||||
"Value: %d (%s)",
|
||||
tvb_get_ntohl(tvb, offset),
|
||||
val_to_str(tvb_get_ntohs(tvb, offset), avp_code_names, "Unknown"));
|
||||
val_to_str(tvb_get_ntohs(tvb, offset), avp_code_names, "Unknown (%d)"));
|
||||
break;
|
||||
}
|
||||
case PANA_EAP: {
|
||||
|
@ -517,8 +517,8 @@ dissect_pana_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_clear(pinfo->cinfo, COL_INFO);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "Type %s-%s",
|
||||
val_to_str(msg_type, msg_type_names, "Unknown (%d)"),
|
||||
match_strval(flags & PANA_FLAG_R, msg_subtype_names));
|
||||
val_to_str(msg_type, msg_type_names, "Unknown (%d)"),
|
||||
val_to_str(flags & PANA_FLAG_R, msg_subtype_names, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
/* Make the protocol tree */
|
||||
|
@ -627,7 +627,8 @@ dissect_pana_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
proto_tree_add_uint_format_value(pana_tree, hf_pana_msg_type, tvb,
|
||||
offset, 2, msg_type, "%s-%s (%d)",
|
||||
val_to_str(msg_type, msg_type_names, "Unknown (%d)"),
|
||||
match_strval(flags & PANA_FLAG_R, msg_subtype_names), msg_type);
|
||||
val_to_str(flags & PANA_FLAG_R, msg_subtype_names, "Unknown (%d)"),
|
||||
msg_type);
|
||||
offset += 2;
|
||||
|
||||
/* Session ID */
|
||||
|
|
|
@ -216,7 +216,7 @@ static void dissect_roofnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/* Clear out stuff in the info column */
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "Message Type: %s",
|
||||
val_to_str(roofnet_msg_type, roofnet_pt_vals, "Unknown"));
|
||||
val_to_str(roofnet_msg_type, roofnet_pt_vals, "Unknown (%d)"));
|
||||
}
|
||||
|
||||
if (tree) {
|
||||
|
|
|
@ -2055,8 +2055,8 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
flavor = FLAVOR_AUTHGSSAPI_MSG;
|
||||
gss_proc = proc;
|
||||
procname = (char *)
|
||||
match_strval(gss_proc,
|
||||
rpc_authgssapi_proc);
|
||||
val_to_str(gss_proc,
|
||||
rpc_authgssapi_proc, "Unknown (%d)");
|
||||
} else {
|
||||
flavor = FLAVOR_AUTHGSSAPI;
|
||||
}
|
||||
|
@ -2627,7 +2627,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
col_clear(pinfo->cinfo, COL_INFO);
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s %s XID 0x%x",
|
||||
match_strval(gss_proc, rpc_authgssapi_proc),
|
||||
val_to_str(gss_proc, rpc_authgssapi_proc, "Unknown (%d)"),
|
||||
msg_type_name, xid);
|
||||
}
|
||||
|
||||
|
|
|
@ -2042,8 +2042,8 @@ dissect_scsi_cmddt (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
|
|||
proto_tree_add_item (cmdt_tree, hf_scsi_inq_devtype, tvb, offset,
|
||||
1, 0);
|
||||
proto_tree_add_text (cmdt_tree, tvb, offset+1, 1, "Support: %s",
|
||||
match_strval (tvb_get_guint8 (tvb, offset+1) & 0x7,
|
||||
scsi_cmdt_supp_val));
|
||||
val_to_str (tvb_get_guint8 (tvb, offset+1) & 0x7,
|
||||
scsi_cmdt_supp_val, "Unknown (%d)"));
|
||||
proto_tree_add_text (cmdt_tree, tvb, offset+2, 1, "Version: %s",
|
||||
val_to_str (tvb_get_guint8 (tvb, offset+2),
|
||||
scsi_verdesc_val,
|
||||
|
@ -2142,7 +2142,7 @@ dissect_spc_inq_bqueflags(tvbuff_t *tvb, int offset, proto_tree *parent_tree)
|
|||
guint8 flags;
|
||||
proto_item *item=NULL;
|
||||
proto_tree *tree=NULL;
|
||||
|
||||
|
||||
if(parent_tree){
|
||||
item=proto_tree_add_item(parent_tree, hf_scsi_inq_bqueflags, tvb, offset, 1, 0);
|
||||
tree = proto_item_add_subtree (item, ett_scsi_inq_bqueflags);
|
||||
|
@ -4279,7 +4279,7 @@ dissect_scsi_rsp (tvbuff_t *tvb, packet_info *pinfo,
|
|||
|
||||
|
||||
if(itl){
|
||||
ti=proto_tree_add_uint_format(scsi_tree, hf_scsi_inq_devtype, tvb, 0, 0, itl->cmdset&SCSI_CMDSET_MASK, "Command Set:%s (0x%02x) %s", val_to_str(itl->cmdset&SCSI_CMDSET_MASK, scsi_devtype_val, "Unknown"), itl->cmdset&SCSI_CMDSET_MASK,itl->cmdset&SCSI_CMDSET_DEFAULT?"(Using default commandset)":"");
|
||||
ti=proto_tree_add_uint_format(scsi_tree, hf_scsi_inq_devtype, tvb, 0, 0, itl->cmdset&SCSI_CMDSET_MASK, "Command Set:%s (0x%02x) %s", val_to_str(itl->cmdset&SCSI_CMDSET_MASK, scsi_devtype_val, "Unknown (%d)"), itl->cmdset&SCSI_CMDSET_MASK,itl->cmdset&SCSI_CMDSET_DEFAULT?"(Using default commandset)":"");
|
||||
PROTO_ITEM_SET_GENERATED(ti);
|
||||
|
||||
if(itlq->scsi_opcode!=0xffff){
|
||||
|
@ -4683,7 +4683,7 @@ dissect_scsi_cdb (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
PROTO_ITEM_SET_GENERATED(ti);
|
||||
|
||||
if(itl){
|
||||
ti=proto_tree_add_uint_format(scsi_tree, hf_scsi_inq_devtype, tvb, 0, 0, itl->cmdset&SCSI_CMDSET_MASK, "Command Set:%s (0x%02x) %s", val_to_str(itl->cmdset&SCSI_CMDSET_MASK, scsi_devtype_val, "Unknown"), itl->cmdset&SCSI_CMDSET_MASK,itl->cmdset&SCSI_CMDSET_DEFAULT?"(Using default commandset)":"");
|
||||
ti=proto_tree_add_uint_format(scsi_tree, hf_scsi_inq_devtype, tvb, 0, 0, itl->cmdset&SCSI_CMDSET_MASK, "Command Set:%s (0x%02x) %s", val_to_str(itl->cmdset&SCSI_CMDSET_MASK, scsi_devtype_val, "Unknown (%d)"), itl->cmdset&SCSI_CMDSET_MASK,itl->cmdset&SCSI_CMDSET_DEFAULT?"(Using default commandset)":"");
|
||||
PROTO_ITEM_SET_GENERATED(ti);
|
||||
}
|
||||
|
||||
|
@ -4785,7 +4785,7 @@ dissect_scsi_payload (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
PROTO_ITEM_SET_GENERATED(ti);
|
||||
|
||||
if(itl){
|
||||
ti=proto_tree_add_uint_format(scsi_tree, hf_scsi_inq_devtype, tvb, 0, 0, itl->cmdset&SCSI_CMDSET_MASK, "Command Set:%s (0x%02x) %s", val_to_str(itl->cmdset&SCSI_CMDSET_MASK, scsi_devtype_val, "Unknown"), itl->cmdset&SCSI_CMDSET_MASK,itl->cmdset&SCSI_CMDSET_DEFAULT?"(Using default commandset)":"");
|
||||
ti=proto_tree_add_uint_format(scsi_tree, hf_scsi_inq_devtype, tvb, 0, 0, itl->cmdset&SCSI_CMDSET_MASK, "Command Set:%s (0x%02x) %s", val_to_str(itl->cmdset&SCSI_CMDSET_MASK, scsi_devtype_val, "Unknown (%d)"), itl->cmdset&SCSI_CMDSET_MASK,itl->cmdset&SCSI_CMDSET_DEFAULT?"(Using default commandset)":"");
|
||||
PROTO_ITEM_SET_GENERATED(ti);
|
||||
|
||||
if(itlq && itlq->scsi_opcode!=0xffff){
|
||||
|
|
|
@ -1713,7 +1713,7 @@ dissect_ucp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
col_clear(pinfo->cinfo, COL_INFO);
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, "%s (%s)",
|
||||
val_to_str(OT, vals_hdr_OT, "unknown operation"),
|
||||
match_strval(O_R, vals_hdr_O_R));
|
||||
val_to_str(O_R, vals_hdr_O_R, "Unknown (%d)"));
|
||||
if (result == UCP_SHORTENED)
|
||||
col_append_str(pinfo->cinfo, COL_INFO, " [short packet]");
|
||||
else if (result == UCP_INV_CHK)
|
||||
|
|
Loading…
Reference in New Issue