forked from osmocom/wireshark
Add editor modelines; Adjust whitespace as needed.
Change-Id: I391cdf80a6e4ae5b0f4068e0500a90d013588f8a Reviewed-on: https://code.wireshark.org/review/4442 Reviewed-by: Bill Meier <wmeier@newsguy.com>
This commit is contained in:
parent
451de17929
commit
bb5daa6ae9
|
@ -45,23 +45,23 @@ void proto_reg_handoff_aim_generic(void);
|
|||
#define FAMILY_GENERIC_MOTD_MOTDTYPE_NEWS 0x0006
|
||||
|
||||
static const value_string aim_snac_generic_motd_motdtypes[] = {
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_MDT_UPGRADE, "Mandatory Upgrade Needed Notice" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_ADV_UPGRADE, "Advisable Upgrade Notice" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_SYS_BULLETIN, "AIM/ICQ Service System Announcements" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_NORMAL, "Standard Notice" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_NEWS, "News from AOL service" },
|
||||
{ 0, NULL }
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_MDT_UPGRADE, "Mandatory Upgrade Needed Notice" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_ADV_UPGRADE, "Advisable Upgrade Notice" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_SYS_BULLETIN, "AIM/ICQ Service System Announcements" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_NORMAL, "Standard Notice" },
|
||||
{ FAMILY_GENERIC_MOTD_MOTDTYPE_NEWS, "News from AOL service" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
#define RATEINFO_STATE_LIMITED 0x01
|
||||
#define RATEINFO_STATE_ALERT 0x02
|
||||
#define RATEINFO_STATE_CLEAR 0x03
|
||||
#define RATEINFO_STATE_LIMITED 0x01
|
||||
#define RATEINFO_STATE_ALERT 0x02
|
||||
#define RATEINFO_STATE_CLEAR 0x03
|
||||
|
||||
static const value_string rateinfo_states[] = {
|
||||
{ RATEINFO_STATE_LIMITED, "Limited" },
|
||||
{ RATEINFO_STATE_ALERT, "Alert" },
|
||||
{ RATEINFO_STATE_CLEAR, "Clear" },
|
||||
{ 0, NULL }
|
||||
{ RATEINFO_STATE_LIMITED, "Limited" },
|
||||
{ RATEINFO_STATE_ALERT, "Alert" },
|
||||
{ RATEINFO_STATE_CLEAR, "Clear" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
#define RATECHANGE_MSG_LIMIT_PARAMS_CHANGED 0x0001
|
||||
|
@ -70,32 +70,32 @@ static const value_string rateinfo_states[] = {
|
|||
#define RATECHANGE_MSG_LIMIT_CLEAR 0x0004
|
||||
|
||||
static const value_string ratechange_msgs[] = {
|
||||
{ RATECHANGE_MSG_LIMIT_PARAMS_CHANGED, "Rate limits parameters changed" },
|
||||
{ RATECHANGE_MSG_LIMIT_WARN, "Rate limits warning (current level < alert level)" },
|
||||
{ RATECHANGE_MSG_LIMIT_HIT, "Rate limit hit (current level < limit level)" },
|
||||
{ RATECHANGE_MSG_LIMIT_CLEAR, "Rate limit clear (current level now > clear level)" },
|
||||
{ 0, NULL },
|
||||
{ RATECHANGE_MSG_LIMIT_PARAMS_CHANGED, "Rate limits parameters changed" },
|
||||
{ RATECHANGE_MSG_LIMIT_WARN, "Rate limits warning (current level < alert level)" },
|
||||
{ RATECHANGE_MSG_LIMIT_HIT, "Rate limit hit (current level < limit level)" },
|
||||
{ RATECHANGE_MSG_LIMIT_CLEAR, "Rate limit clear (current level now > clear level)" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
#define EXT_STATUS_TYPE_BUDDY_ICON_0 0
|
||||
#define EXT_STATUS_TYPE_BUDDY_ICON_1 1
|
||||
#define EXT_STATUS_TYPE_AVAIL_MSG 2
|
||||
#define EXT_STATUS_TYPE_UNKNOWN 6
|
||||
#define EXT_STATUS_TYPE_UNKNOWN 6
|
||||
|
||||
static const value_string ext_status_types[] = {
|
||||
{ EXT_STATUS_TYPE_BUDDY_ICON_0, "Request to send buddy icon" },
|
||||
{ EXT_STATUS_TYPE_BUDDY_ICON_1, "Request to send buddy icon" },
|
||||
{ EXT_STATUS_TYPE_AVAIL_MSG, "Extended Status Update" },
|
||||
{ 0, NULL },
|
||||
{ EXT_STATUS_TYPE_BUDDY_ICON_0, "Request to send buddy icon" },
|
||||
{ EXT_STATUS_TYPE_BUDDY_ICON_1, "Request to send buddy icon" },
|
||||
{ EXT_STATUS_TYPE_AVAIL_MSG, "Extended Status Update" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
#define EXT_STATUS_FLAG_INITIAL_SEND 0x41
|
||||
#define EXT_STATUS_FLAG_RESEND 0x81
|
||||
#define EXT_STATUS_FLAG_INITIAL_SEND 0x41
|
||||
#define EXT_STATUS_FLAG_RESEND 0x81
|
||||
|
||||
static const value_string ext_status_flags[] = {
|
||||
{ EXT_STATUS_FLAG_INITIAL_SEND, "First Send Request" },
|
||||
{ EXT_STATUS_FLAG_RESEND, "Request To Re-Send" },
|
||||
{ 0, NULL },
|
||||
{ EXT_STATUS_FLAG_INITIAL_SEND, "First Send Request" },
|
||||
{ EXT_STATUS_FLAG_RESEND, "Request To Re-Send" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
|
@ -148,316 +148,316 @@ static gint ett_generic_rateinfo_group = -1;
|
|||
|
||||
static int dissect_rate_class(tvbuff_t *tvb, packet_info *pinfo _U_, int offset, proto_tree *class_tree)
|
||||
{
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_classid, tvb, offset, 2, ENC_BIG_ENDIAN);offset+=2;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_windowsize, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_clearlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_alertlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_limitlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_disconnectlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_currentlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_maxlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_lasttime, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_curstate, tvb, offset, 1, ENC_NA);offset+=1;
|
||||
return offset;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_classid, tvb, offset, 2, ENC_BIG_ENDIAN);offset+=2;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_windowsize, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_clearlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_alertlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_limitlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_disconnectlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_currentlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_maxlevel, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_lasttime, tvb, offset, 4, ENC_BIG_ENDIAN);offset+=4;
|
||||
proto_tree_add_item(class_tree, hf_generic_rateinfo_curstate, tvb, offset, 1, ENC_NA);offset+=1;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_generic_rateinfo(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
|
||||
{
|
||||
int offset = 0;
|
||||
guint16 i;
|
||||
guint16 numclasses = tvb_get_ntohs(tvb, 0);
|
||||
proto_tree *classes_tree = NULL, *groups_tree, *group_tree;
|
||||
proto_tree_add_uint(tree, hf_generic_rateinfo_numclasses, tvb, 0, 2, numclasses );
|
||||
offset+=2;
|
||||
int offset = 0;
|
||||
guint16 i;
|
||||
guint16 numclasses = tvb_get_ntohs(tvb, 0);
|
||||
proto_tree *classes_tree = NULL, *groups_tree, *group_tree;
|
||||
proto_tree_add_uint(tree, hf_generic_rateinfo_numclasses, tvb, 0, 2, numclasses );
|
||||
offset+=2;
|
||||
|
||||
if(tree) {
|
||||
/* sizeof(rate_class_struct) = 35 ! */
|
||||
classes_tree = proto_tree_add_subtree(tree, tvb, offset, 35 * numclasses,
|
||||
ett_generic_rateinfo_classes, NULL, "Available Rate Classes");
|
||||
}
|
||||
if(tree) {
|
||||
/* sizeof(rate_class_struct) = 35 ! */
|
||||
classes_tree = proto_tree_add_subtree(tree, tvb, offset, 35 * numclasses,
|
||||
ett_generic_rateinfo_classes, NULL, "Available Rate Classes");
|
||||
}
|
||||
|
||||
for(i = 0; i < numclasses; i++) {
|
||||
guint16 myid = tvb_get_ntohs(tvb, offset);
|
||||
proto_tree *class_tree = proto_tree_add_subtree_format(classes_tree, tvb, offset, 35,
|
||||
ett_generic_rateinfo_class, NULL, "Rate Class 0x%02x", myid);
|
||||
offset = dissect_rate_class(tvb, pinfo, offset, class_tree);
|
||||
}
|
||||
for(i = 0; i < numclasses; i++) {
|
||||
guint16 myid = tvb_get_ntohs(tvb, offset);
|
||||
proto_tree *class_tree = proto_tree_add_subtree_format(classes_tree, tvb, offset, 35,
|
||||
ett_generic_rateinfo_class, NULL, "Rate Class 0x%02x", myid);
|
||||
offset = dissect_rate_class(tvb, pinfo, offset, class_tree);
|
||||
}
|
||||
|
||||
groups_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_generic_rateinfo_groups, NULL, "Rate Groups");
|
||||
groups_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_generic_rateinfo_groups, NULL, "Rate Groups");
|
||||
|
||||
for(i = 0; i < numclasses; i++) {
|
||||
guint16 j;
|
||||
guint16 myid = tvb_get_ntohs(tvb, offset);
|
||||
guint16 numpairs = tvb_get_ntohs(tvb, offset + 2);
|
||||
/*
|
||||
* sizeof(rate_group) = sizeof(class_id) + sizeof(numpairs) + numpairs * 2 * sizeof(uint16_t)
|
||||
* = 2 + 2 + numpairs * 4
|
||||
*/
|
||||
group_tree = proto_tree_add_subtree_format(groups_tree, tvb, offset, 4 + 4 * numpairs,
|
||||
ett_generic_rateinfo_group, NULL, "Rate Group 0x%02x", myid);
|
||||
proto_tree_add_uint(group_tree, hf_generic_rateinfo_classid, tvb, offset, 2, myid);offset+=2;
|
||||
proto_tree_add_uint(group_tree, hf_generic_rateinfo_numpairs, tvb, offset, 2, numpairs); offset+=2;
|
||||
for(j = 0; j < numpairs; j++) {
|
||||
guint16 family_id;
|
||||
guint16 subtype_id;
|
||||
const aim_family *family;
|
||||
const aim_subtype *subtype;
|
||||
family_id = tvb_get_ntohs(tvb, offset);
|
||||
subtype_id = tvb_get_ntohs(tvb, offset+2);
|
||||
for(i = 0; i < numclasses; i++) {
|
||||
guint16 j;
|
||||
guint16 myid = tvb_get_ntohs(tvb, offset);
|
||||
guint16 numpairs = tvb_get_ntohs(tvb, offset + 2);
|
||||
/*
|
||||
* sizeof(rate_group) = sizeof(class_id) + sizeof(numpairs) + numpairs * 2 * sizeof(uint16_t)
|
||||
* = 2 + 2 + numpairs * 4
|
||||
*/
|
||||
group_tree = proto_tree_add_subtree_format(groups_tree, tvb, offset, 4 + 4 * numpairs,
|
||||
ett_generic_rateinfo_group, NULL, "Rate Group 0x%02x", myid);
|
||||
proto_tree_add_uint(group_tree, hf_generic_rateinfo_classid, tvb, offset, 2, myid);offset+=2;
|
||||
proto_tree_add_uint(group_tree, hf_generic_rateinfo_numpairs, tvb, offset, 2, numpairs); offset+=2;
|
||||
for(j = 0; j < numpairs; j++) {
|
||||
guint16 family_id;
|
||||
guint16 subtype_id;
|
||||
const aim_family *family;
|
||||
const aim_subtype *subtype;
|
||||
family_id = tvb_get_ntohs(tvb, offset);
|
||||
subtype_id = tvb_get_ntohs(tvb, offset+2);
|
||||
|
||||
family = aim_get_family(family_id);
|
||||
subtype = aim_get_subtype(family_id, subtype_id);
|
||||
family = aim_get_family(family_id);
|
||||
subtype = aim_get_subtype(family_id, subtype_id);
|
||||
|
||||
proto_tree_add_uint_format_value(group_tree, hf_generic_family, tvb, offset, 4, family_id,
|
||||
"%s (0x%04x), Subtype: %s (0x%04x)", family?family->name:"Unknown", family_id, subtype?subtype->name:"Unknown", subtype_id);
|
||||
offset+=4;
|
||||
}
|
||||
}
|
||||
proto_tree_add_uint_format_value(group_tree, hf_generic_family, tvb, offset, 4, family_id,
|
||||
"%s (0x%04x), Subtype: %s (0x%04x)", family?family->name:"Unknown", family_id, subtype?subtype->name:"Unknown", subtype_id);
|
||||
offset+=4;
|
||||
}
|
||||
}
|
||||
|
||||
return offset;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_clientready(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, 0, -1, ett_generic_clientready, NULL, "Supported services");
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, 0, -1, ett_generic_clientready, NULL, "Supported services");
|
||||
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_item *ti;
|
||||
proto_tree *subtree;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_item *ti;
|
||||
proto_tree *subtree;
|
||||
|
||||
ti = proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
subtree = proto_item_add_subtree(ti, ett_generic_clientready_item);
|
||||
offset+=2;
|
||||
ti = proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
subtree = proto_item_add_subtree(ti, ett_generic_clientready_item);
|
||||
offset+=2;
|
||||
|
||||
proto_tree_add_item(subtree, hf_generic_version, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
proto_tree_add_item(subtree, hf_generic_dll_version, tvb, offset, 3, ENC_BIG_ENDIAN);
|
||||
/* Padding byte? */
|
||||
offset += 4;
|
||||
proto_item_set_len(ti, 8);
|
||||
}
|
||||
return offset;
|
||||
proto_tree_add_item(subtree, hf_generic_version, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
proto_tree_add_item(subtree, hf_generic_dll_version, tvb, offset, 3, ENC_BIG_ENDIAN);
|
||||
/* Padding byte? */
|
||||
offset += 4;
|
||||
proto_item_set_len(ti, 8);
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static int dissect_aim_generic_serverready(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, offset, -1, ett_generic_clientready, NULL, "Supported services");
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, offset, -1, ett_generic_clientready, NULL, "Supported services");
|
||||
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static int dissect_aim_generic_service_req(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
const aim_family *family = aim_get_family( tvb_get_ntohs(tvb, offset) );
|
||||
int offset = 0;
|
||||
const aim_family *family = aim_get_family( tvb_get_ntohs(tvb, offset) );
|
||||
|
||||
proto_tree_add_uint_format(gen_tree, hf_generic_servicereq_service, tvb, offset, 2, tvb_get_ntohs(tvb, offset), "%s (0x%04x)", family?family->name:"Unknown", tvb_get_ntohs(tvb, offset) );
|
||||
offset+=2;
|
||||
return offset;
|
||||
proto_tree_add_uint_format(gen_tree, hf_generic_servicereq_service, tvb, offset, 2, tvb_get_ntohs(tvb, offset), "%s (0x%04x)", family?family->name:"Unknown", tvb_get_ntohs(tvb, offset) );
|
||||
offset+=2;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_redirect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, 0, gen_tree, aim_client_tlvs);
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, 0, gen_tree, aim_client_tlvs);
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, offset, -1, ett_generic_clientready, NULL, "Requested services");
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, offset, -1, ett_generic_clientready, NULL, "Requested services");
|
||||
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
proto_tree_add_item(entry, hf_generic_version, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
proto_tree_add_item(entry, hf_generic_version, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_capack(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, offset, -1, ett_generic_clientready, NULL, "Accepted requested services");
|
||||
int offset = 0;
|
||||
proto_tree *entry = proto_tree_add_subtree(gen_tree, tvb, offset, -1, ett_generic_clientready, NULL, "Accepted requested services");
|
||||
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
proto_tree_add_item(entry, hf_generic_version, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
proto_tree_add_item(entry, hf_generic_version, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_motd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_motd_motdtype, tvb, offset,
|
||||
2, tvb_get_ntohs(tvb, offset));
|
||||
offset+=2;
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, offset, gen_tree, aim_motd_tlvs);
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_motd_motdtype, tvb, offset,
|
||||
2, tvb_get_ntohs(tvb, offset));
|
||||
offset+=2;
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, offset, gen_tree, aim_motd_tlvs);
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_rateinfoack(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_uint(gen_tree, hf_generic_rateinfoack_group, tvb, offset, 2, tvb_get_ntohs(tvb, offset));
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
int offset = 0;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_uint(gen_tree, hf_generic_rateinfoack_group, tvb, offset, 2, tvb_get_ntohs(tvb, offset));
|
||||
offset+=2;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_ratechange(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree_add_uint(gen_tree, hf_generic_ratechange_msg, tvb, offset, 2, tvb_get_ntohs(tvb, offset));
|
||||
offset+=2;
|
||||
offset = dissect_rate_class(tvb, pinfo, offset, gen_tree);
|
||||
return offset;
|
||||
int offset = 0;
|
||||
proto_tree_add_uint(gen_tree, hf_generic_ratechange_msg, tvb, offset, 2, tvb_get_ntohs(tvb, offset));
|
||||
offset+=2;
|
||||
offset = dissect_rate_class(tvb, pinfo, offset, gen_tree);
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static int dissect_aim_generic_clientpauseack(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(gen_tree, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
}
|
||||
return offset;
|
||||
int offset = 0;
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_item(gen_tree, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_migration_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
guint32 n, i;
|
||||
proto_tree *entry;
|
||||
int offset = 0;
|
||||
guint32 n, i;
|
||||
proto_tree *entry;
|
||||
|
||||
n = tvb_get_ntohs(tvb, offset);offset+=2;
|
||||
proto_tree_add_uint(gen_tree, hf_generic_migration_numfams, tvb, offset, 2, n);
|
||||
entry = proto_tree_add_subtree(gen_tree, tvb, offset, 2 * n,
|
||||
ett_generic_migratefamilies, NULL, "Families to migrate");
|
||||
for(i = 0; i < n; i++) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
}
|
||||
n = tvb_get_ntohs(tvb, offset);offset+=2;
|
||||
proto_tree_add_uint(gen_tree, hf_generic_migration_numfams, tvb, offset, 2, n);
|
||||
entry = proto_tree_add_subtree(gen_tree, tvb, offset, 2 * n,
|
||||
ett_generic_migratefamilies, NULL, "Families to migrate");
|
||||
for(i = 0; i < n; i++) {
|
||||
proto_tree_add_item(entry, hf_generic_family, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
}
|
||||
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, offset, gen_tree, aim_client_tlvs);
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, offset, gen_tree, aim_client_tlvs);
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_setprivflags(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
guint32 flags = tvb_get_ntoh24(tvb, offset);
|
||||
proto_item *ti = proto_tree_add_uint(gen_tree, hf_generic_priv_flags, tvb, offset, 4, flags);
|
||||
proto_tree *entry = proto_item_add_subtree(ti, ett_generic_priv_flags);
|
||||
proto_tree_add_boolean(entry, hf_generic_allow_idle_see, tvb, offset, 4, flags);
|
||||
proto_tree_add_boolean(entry, hf_generic_allow_member_see, tvb, offset, 4, flags);
|
||||
offset+=4;
|
||||
return offset;
|
||||
int offset = 0;
|
||||
guint32 flags = tvb_get_ntoh24(tvb, offset);
|
||||
proto_item *ti = proto_tree_add_uint(gen_tree, hf_generic_priv_flags, tvb, offset, 4, flags);
|
||||
proto_tree *entry = proto_item_add_subtree(ti, ett_generic_priv_flags);
|
||||
proto_tree_add_boolean(entry, hf_generic_allow_idle_see, tvb, offset, 4, flags);
|
||||
proto_tree_add_boolean(entry, hf_generic_allow_member_see, tvb, offset, 4, flags);
|
||||
offset+=4;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_selfinfo_repl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = dissect_aim_buddyname(tvb, pinfo, 0, gen_tree);
|
||||
proto_tree_add_item(gen_tree, hf_generic_selfinfo_warninglevel, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
return dissect_aim_tlv_list(tvb, pinfo, offset, gen_tree, aim_onlinebuddy_tlvs);
|
||||
int offset = dissect_aim_buddyname(tvb, pinfo, 0, gen_tree);
|
||||
proto_tree_add_item(gen_tree, hf_generic_selfinfo_warninglevel, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
return dissect_aim_tlv_list(tvb, pinfo, offset, gen_tree, aim_onlinebuddy_tlvs);
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_evil(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_evil_new_warn_level, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
offset = dissect_aim_userinfo(tvb, pinfo, offset, gen_tree);
|
||||
}
|
||||
return offset;
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_evil_new_warn_level, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
while(tvb_length_remaining(tvb, offset) > 0) {
|
||||
offset = dissect_aim_userinfo(tvb, pinfo, offset, gen_tree);
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_setidle(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
proto_tree_add_item(gen_tree, hf_generic_idle_time, tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
return 2;
|
||||
proto_tree_add_item(gen_tree, hf_generic_idle_time, tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
return 2;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_ext_status_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gen_tree)
|
||||
{
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, 0, gen_tree, aim_onlinebuddy_tlvs);
|
||||
return dissect_aim_tlv_sequence(tvb, pinfo, 0, gen_tree, aim_onlinebuddy_tlvs);
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_clientver_req(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_client_ver_req_offset, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset+=4;
|
||||
proto_tree_add_item(gen_tree, hf_generic_client_ver_req_length, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
return offset+4;
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_client_ver_req_offset, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset+=4;
|
||||
proto_tree_add_item(gen_tree, hf_generic_client_ver_req_length, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
return offset+4;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_clientver_repl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
proto_tree_add_item(gen_tree, hf_generic_client_ver_req_hash, tvb, 0, 16, ENC_NA);
|
||||
return 16;
|
||||
proto_tree_add_item(gen_tree, hf_generic_client_ver_req_hash, tvb, 0, 16, ENC_NA);
|
||||
return 16;
|
||||
}
|
||||
|
||||
static int dissect_aim_generic_ext_status_repl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *gen_tree)
|
||||
{
|
||||
guint8 length;
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_type, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_flags, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_length, tvb, offset, 1, ENC_BIG_ENDIAN); length = tvb_get_guint8(tvb, offset); offset += 1;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_data, tvb, offset, length, ENC_NA); offset += 1;
|
||||
return offset;
|
||||
guint8 length;
|
||||
int offset = 0;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_type, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_flags, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_length, tvb, offset, 1, ENC_BIG_ENDIAN); length = tvb_get_guint8(tvb, offset); offset += 1;
|
||||
proto_tree_add_item(gen_tree, hf_generic_ext_status_data, tvb, offset, length, ENC_NA); offset += 1;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static void
|
||||
aim_generic_family( gchar *result, guint32 famnum )
|
||||
{
|
||||
const aim_family *family = aim_get_family(famnum);
|
||||
const aim_family *family = aim_get_family(famnum);
|
||||
|
||||
g_snprintf( result, ITEM_LABEL_LENGTH, "%s (0x%x)", family?family->name:"Unknown", famnum);
|
||||
g_snprintf( result, ITEM_LABEL_LENGTH, "%s (0x%x)", family?family->name:"Unknown", famnum);
|
||||
}
|
||||
|
||||
static const aim_subtype aim_fnac_family_generic[] = {
|
||||
{ 0x0001, "Error", dissect_aim_snac_error },
|
||||
{ 0x0002, "Client Ready", dissect_aim_generic_clientready },
|
||||
{ 0x0003, "Server Ready", dissect_aim_generic_serverready },
|
||||
{ 0x0004, "Service Request", dissect_aim_generic_service_req },
|
||||
{ 0x0005, "Redirect", dissect_aim_generic_redirect },
|
||||
{ 0x0006, "Rate Info Request", NULL},
|
||||
{ 0x0007, "Rate Info", dissect_generic_rateinfo },
|
||||
{ 0x0008, "Rate Info Ack", dissect_aim_generic_rateinfoack },
|
||||
{ 0x000a, "Rate Change", dissect_aim_generic_ratechange },
|
||||
{ 0x000b, "Server Pause", NULL },
|
||||
{ 0x000c, "Client Pause Ack", dissect_aim_generic_clientpauseack },
|
||||
{ 0x000d, "Server Resume", NULL },
|
||||
{ 0x000e, "Self Info Request", NULL },
|
||||
{ 0x000f, "Self Info Reply", dissect_aim_generic_selfinfo_repl },
|
||||
{ 0x0010, "Evil", dissect_aim_generic_evil },
|
||||
{ 0x0011, "Set Idle", dissect_aim_generic_setidle },
|
||||
{ 0x0012, "Migration Request", dissect_aim_generic_migration_req },
|
||||
{ 0x0013, "Message Of The Day", dissect_aim_generic_motd },
|
||||
{ 0x0014, "Set Privilege Flags", dissect_aim_generic_setprivflags },
|
||||
{ 0x0015, "Well Known URL", NULL }, /* FIXME */
|
||||
{ 0x0016, "noop", NULL },
|
||||
{ 0x0017, "Capabilities", dissect_aim_generic_capabilities },
|
||||
{ 0x0018, "Capabilities Ack", dissect_aim_generic_capack },
|
||||
{ 0x001e, "Set Extended Status Request", dissect_aim_generic_ext_status_req },
|
||||
{ 0x001f, "Client Verification Request", dissect_aim_generic_clientver_req },
|
||||
{ 0x0020, "Client Verification Reply", dissect_aim_generic_clientver_repl },
|
||||
{ 0x0021, "Set Extended Status Reply", dissect_aim_generic_ext_status_repl },
|
||||
{ 0, NULL, NULL }
|
||||
{ 0x0001, "Error", dissect_aim_snac_error },
|
||||
{ 0x0002, "Client Ready", dissect_aim_generic_clientready },
|
||||
{ 0x0003, "Server Ready", dissect_aim_generic_serverready },
|
||||
{ 0x0004, "Service Request", dissect_aim_generic_service_req },
|
||||
{ 0x0005, "Redirect", dissect_aim_generic_redirect },
|
||||
{ 0x0006, "Rate Info Request", NULL},
|
||||
{ 0x0007, "Rate Info", dissect_generic_rateinfo },
|
||||
{ 0x0008, "Rate Info Ack", dissect_aim_generic_rateinfoack },
|
||||
{ 0x000a, "Rate Change", dissect_aim_generic_ratechange },
|
||||
{ 0x000b, "Server Pause", NULL },
|
||||
{ 0x000c, "Client Pause Ack", dissect_aim_generic_clientpauseack },
|
||||
{ 0x000d, "Server Resume", NULL },
|
||||
{ 0x000e, "Self Info Request", NULL },
|
||||
{ 0x000f, "Self Info Reply", dissect_aim_generic_selfinfo_repl },
|
||||
{ 0x0010, "Evil", dissect_aim_generic_evil },
|
||||
{ 0x0011, "Set Idle", dissect_aim_generic_setidle },
|
||||
{ 0x0012, "Migration Request", dissect_aim_generic_migration_req },
|
||||
{ 0x0013, "Message Of The Day", dissect_aim_generic_motd },
|
||||
{ 0x0014, "Set Privilege Flags", dissect_aim_generic_setprivflags },
|
||||
{ 0x0015, "Well Known URL", NULL }, /* FIXME */
|
||||
{ 0x0016, "noop", NULL },
|
||||
{ 0x0017, "Capabilities", dissect_aim_generic_capabilities },
|
||||
{ 0x0018, "Capabilities Ack", dissect_aim_generic_capack },
|
||||
{ 0x001e, "Set Extended Status Request", dissect_aim_generic_ext_status_req },
|
||||
{ 0x001f, "Client Verification Request", dissect_aim_generic_clientver_req },
|
||||
{ 0x0020, "Client Verification Reply", dissect_aim_generic_clientver_repl },
|
||||
{ 0x0021, "Set Extended Status Reply", dissect_aim_generic_ext_status_repl },
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
|
@ -466,136 +466,149 @@ void
|
|||
proto_register_aim_generic(void)
|
||||
{
|
||||
|
||||
/* Setup list of header fields */
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_generic_servicereq_service,
|
||||
{ "Requested Service", "aim_generic.servicereq.service", FT_UINT16,
|
||||
BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_motd_motdtype,
|
||||
{ "MOTD Type", "aim_generic.motd.motdtype", FT_UINT16,
|
||||
BASE_HEX, VALS(aim_snac_generic_motd_motdtypes), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_family,
|
||||
{ "Family", "aim_generic.family", FT_UINT16, BASE_CUSTOM, aim_generic_family, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_version,
|
||||
{ "Version", "aim_generic.version", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_dll_version,
|
||||
{ "DLL Version", "aim_generic.dll_version", FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_numclasses,
|
||||
{ "Number of Rateinfo Classes", "aim_generic.rateinfo.numclasses", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_windowsize,
|
||||
{ "Window Size", "aim_generic.rateinfo.class.window_size", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_clearlevel,
|
||||
{ "Clear Level", "aim_generic.rateinfo.class.clearlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_alertlevel,
|
||||
{ "Alert Level", "aim_generic.rateinfo.class.alertlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_limitlevel,
|
||||
{ "Limit Level", "aim_generic.rateinfo.class.limitlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_disconnectlevel,
|
||||
{ "Disconnect Level", "aim_generic.rateinfo.class.disconnectlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_currentlevel,
|
||||
{ "Current Level", "aim_generic.rateinfo.class.currentlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_maxlevel,
|
||||
{ "Max Level", "aim_generic.rateinfo.class.maxlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_lasttime,
|
||||
{ "Last Time", "aim_generic.rateinfo.class.lasttime", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_curstate,
|
||||
{ "Current State", "aim_generic.rateinfo.class.curstate", FT_UINT8, BASE_HEX, VALS(rateinfo_states), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_classid,
|
||||
{ "Class ID", "aim_generic.rateinfo.class.id", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_numpairs,
|
||||
{ "Number of Family/Subtype pairs", "aim_generic.rateinfo.class.numpairs", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfoack_group,
|
||||
{ "Acknowledged Rate Class", "aim_generic.rateinfoack.class", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ratechange_msg,
|
||||
{ "Rate Change Message", "aim_generic.ratechange.msg", FT_UINT16, BASE_HEX, VALS(ratechange_msgs), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_migration_numfams,
|
||||
{ "Number of families to migrate", "aim_generic.migrate.numfams", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_priv_flags,
|
||||
{ "Privilege flags", "aim_generic.privilege_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_allow_idle_see,
|
||||
{ "Allow other users to see idle time", "aim_generic.privilege_flags.allow_idle", FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x0001, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_allow_member_see,
|
||||
{ "Allow other users to see how long account has been a member", "aim_generic.privilege_flags.allow_member", FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x0002, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_selfinfo_warninglevel,
|
||||
{ "Warning level", "aim_generic.selfinfo.warn_level", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_evil_new_warn_level,
|
||||
{ "New warning level", "aim_generic.evil.new_warn_level", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_idle_time,
|
||||
{ "Idle time (seconds)", "aim_generic.idle_time", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_client_ver_req_offset,
|
||||
{ "Client Verification Request Offset", "aim_generic.client_verification.offset", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_client_ver_req_length,
|
||||
{ "Client Verification Request Length", "aim_generic.client_verification.length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_client_ver_req_hash,
|
||||
{ "Client Verification MD5 Hash", "aim_generic.client_verification.hash", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_type,
|
||||
{ "Extended Status Type", "aim_generic.ext_status.type", FT_UINT16, BASE_DEC, VALS(ext_status_types), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_flags,
|
||||
{ "Extended Status Flags", "aim_generic.ext_status.flags", FT_UINT8, BASE_HEX, VALS(ext_status_flags), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_length,
|
||||
{ "Extended Status Length", "aim_generic.ext_status.length", FT_UINT8, BASE_HEX, NULL, 0x0, NULL , HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_data,
|
||||
{ "Extended Status Data", "aim_generic.ext_status.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL , HFILL },
|
||||
},
|
||||
/* Setup list of header fields */
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_generic_servicereq_service,
|
||||
{ "Requested Service", "aim_generic.servicereq.service", FT_UINT16,
|
||||
BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_motd_motdtype,
|
||||
{ "MOTD Type", "aim_generic.motd.motdtype", FT_UINT16,
|
||||
BASE_HEX, VALS(aim_snac_generic_motd_motdtypes), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_family,
|
||||
{ "Family", "aim_generic.family", FT_UINT16, BASE_CUSTOM, aim_generic_family, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_version,
|
||||
{ "Version", "aim_generic.version", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_dll_version,
|
||||
{ "DLL Version", "aim_generic.dll_version", FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_numclasses,
|
||||
{ "Number of Rateinfo Classes", "aim_generic.rateinfo.numclasses", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_windowsize,
|
||||
{ "Window Size", "aim_generic.rateinfo.class.window_size", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_clearlevel,
|
||||
{ "Clear Level", "aim_generic.rateinfo.class.clearlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_alertlevel,
|
||||
{ "Alert Level", "aim_generic.rateinfo.class.alertlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_limitlevel,
|
||||
{ "Limit Level", "aim_generic.rateinfo.class.limitlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_disconnectlevel,
|
||||
{ "Disconnect Level", "aim_generic.rateinfo.class.disconnectlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_currentlevel,
|
||||
{ "Current Level", "aim_generic.rateinfo.class.currentlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_maxlevel,
|
||||
{ "Max Level", "aim_generic.rateinfo.class.maxlevel", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_lasttime,
|
||||
{ "Last Time", "aim_generic.rateinfo.class.lasttime", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_curstate,
|
||||
{ "Current State", "aim_generic.rateinfo.class.curstate", FT_UINT8, BASE_HEX, VALS(rateinfo_states), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_classid,
|
||||
{ "Class ID", "aim_generic.rateinfo.class.id", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfo_numpairs,
|
||||
{ "Number of Family/Subtype pairs", "aim_generic.rateinfo.class.numpairs", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_rateinfoack_group,
|
||||
{ "Acknowledged Rate Class", "aim_generic.rateinfoack.class", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ratechange_msg,
|
||||
{ "Rate Change Message", "aim_generic.ratechange.msg", FT_UINT16, BASE_HEX, VALS(ratechange_msgs), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_migration_numfams,
|
||||
{ "Number of families to migrate", "aim_generic.migrate.numfams", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_priv_flags,
|
||||
{ "Privilege flags", "aim_generic.privilege_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_allow_idle_see,
|
||||
{ "Allow other users to see idle time", "aim_generic.privilege_flags.allow_idle", FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x0001, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_allow_member_see,
|
||||
{ "Allow other users to see how long account has been a member", "aim_generic.privilege_flags.allow_member", FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x0002, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_selfinfo_warninglevel,
|
||||
{ "Warning level", "aim_generic.selfinfo.warn_level", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_evil_new_warn_level,
|
||||
{ "New warning level", "aim_generic.evil.new_warn_level", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_idle_time,
|
||||
{ "Idle time (seconds)", "aim_generic.idle_time", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_client_ver_req_offset,
|
||||
{ "Client Verification Request Offset", "aim_generic.client_verification.offset", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_client_ver_req_length,
|
||||
{ "Client Verification Request Length", "aim_generic.client_verification.length", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_client_ver_req_hash,
|
||||
{ "Client Verification MD5 Hash", "aim_generic.client_verification.hash", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_type,
|
||||
{ "Extended Status Type", "aim_generic.ext_status.type", FT_UINT16, BASE_DEC, VALS(ext_status_types), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_flags,
|
||||
{ "Extended Status Flags", "aim_generic.ext_status.flags", FT_UINT8, BASE_HEX, VALS(ext_status_flags), 0x0, NULL, HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_length,
|
||||
{ "Extended Status Length", "aim_generic.ext_status.length", FT_UINT8, BASE_HEX, NULL, 0x0, NULL , HFILL },
|
||||
},
|
||||
{ &hf_generic_ext_status_data,
|
||||
{ "Extended Status Data", "aim_generic.ext_status.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL , HFILL },
|
||||
},
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
/* Setup protocol subtree array */
|
||||
static gint *ett[] = {
|
||||
&ett_generic,
|
||||
&ett_generic_migratefamilies,
|
||||
&ett_generic_rateinfo_class,
|
||||
&ett_generic_rateinfo_group,
|
||||
&ett_generic_rateinfo_groups,
|
||||
&ett_generic_rateinfo_classes,
|
||||
&ett_generic_clientready,
|
||||
&ett_generic_clientready_item,
|
||||
&ett_generic_serverready,
|
||||
&ett_generic_priv_flags,
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_generic,
|
||||
&ett_generic_migratefamilies,
|
||||
&ett_generic_rateinfo_class,
|
||||
&ett_generic_rateinfo_group,
|
||||
&ett_generic_rateinfo_groups,
|
||||
&ett_generic_rateinfo_classes,
|
||||
&ett_generic_clientready,
|
||||
&ett_generic_clientready_item,
|
||||
&ett_generic_serverready,
|
||||
&ett_generic_priv_flags,
|
||||
};
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_aim_generic = proto_register_protocol("AIM Generic Service", "AIM Generic", "aim_generic");
|
||||
proto_aim_generic = proto_register_protocol("AIM Generic Service", "AIM Generic", "aim_generic");
|
||||
|
||||
/* Required function calls to register the header fields and subtrees used */
|
||||
proto_register_field_array(proto_aim_generic, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
proto_register_field_array(proto_aim_generic, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
}
|
||||
|
||||
void
|
||||
proto_reg_handoff_aim_generic(void)
|
||||
{
|
||||
aim_init_family(proto_aim_generic, ett_generic, FAMILY_GENERIC, aim_fnac_family_generic);
|
||||
aim_init_family(proto_aim_generic, ett_generic, FAMILY_GENERIC, aim_fnac_family_generic);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
||||
* :indentSize=4:tabSize=8:noTabs=true:
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -299,7 +299,7 @@ dissect_applemidi_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
|
|||
|
||||
rtp_dyn_payload = rtp_dyn_payload_new();
|
||||
rtp_dyn_payload_insert(rtp_dyn_payload, 97, "rtp-midi", 10000);
|
||||
rtp_add_address( pinfo, &pinfo->src, pinfo->srcport, 0, APPLEMIDI_DISSECTOR_SHORTNAME,
|
||||
rtp_add_address( pinfo, &pinfo->src, pinfo->srcport, 0, APPLEMIDI_DISSECTOR_SHORTNAME,
|
||||
pinfo->fd->num, FALSE, rtp_dyn_payload);
|
||||
|
||||
/* call dissect_applemidi() from now on for UDP packets on this "connection"
|
||||
|
@ -532,3 +532,16 @@ proto_reg_handoff_applemidi( void ) {
|
|||
heur_dissector_add( "udp", dissect_applemidi_heur, proto_applemidi );
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -648,3 +648,16 @@ proto_reg_handoff_bacnet(void)
|
|||
bacapp_handle = find_dissector("bacapp");
|
||||
data_handle = find_dissector("data");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -59,15 +59,15 @@ struct gw_packet {
|
|||
};
|
||||
#define GW_PACKET_SIZE 1
|
||||
|
||||
#define TUNNEL_DATA 0x01
|
||||
#define TUNNEL_IP_REQUEST 0x02
|
||||
#define TUNNEL_IP_INVALID 0x03
|
||||
#define TUNNEL_DATA 0x01
|
||||
#define TUNNEL_IP_REQUEST 0x02
|
||||
#define TUNNEL_IP_INVALID 0x03
|
||||
#define TUNNEL_KEEPALIVE_REQUEST 0x04
|
||||
#define TUNNEL_KEEPALIVE_REPLY 0x05
|
||||
#define TUNNEL_KEEPALIVE_REPLY 0x05
|
||||
|
||||
#define DATA_TYPE_NEIGH 1
|
||||
#define DATA_TYPE_NEIGH 1
|
||||
#define DATA_TYPE_SEC_IF 2
|
||||
#define DATA_TYPE_HNA 3
|
||||
#define DATA_TYPE_HNA 3
|
||||
|
||||
struct vis_packet_v22 {
|
||||
address sender_ip;
|
||||
|
@ -144,18 +144,18 @@ static int hf_bat_batman_flags_unidirectional = -1;
|
|||
static int hf_bat_batman_flags_directlink = -1;
|
||||
|
||||
static const value_string gw_packettypenames[] = {
|
||||
{ TUNNEL_DATA, "DATA" },
|
||||
{ TUNNEL_IP_REQUEST, "IP_REQUEST" },
|
||||
{ TUNNEL_IP_INVALID, "IP_INVALID" },
|
||||
{ TUNNEL_DATA, "DATA" },
|
||||
{ TUNNEL_IP_REQUEST, "IP_REQUEST" },
|
||||
{ TUNNEL_IP_INVALID, "IP_INVALID" },
|
||||
{ TUNNEL_KEEPALIVE_REQUEST, "KEEPALIVE_REQUEST" },
|
||||
{ TUNNEL_KEEPALIVE_REPLY, "KEEPALIVE_REPLY" },
|
||||
{ TUNNEL_KEEPALIVE_REPLY, "KEEPALIVE_REPLY" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string vis_packettypenames[] = {
|
||||
{ DATA_TYPE_NEIGH, "NEIGH" },
|
||||
{ DATA_TYPE_NEIGH, "NEIGH" },
|
||||
{ DATA_TYPE_SEC_IF, "SEC_IF" },
|
||||
{ DATA_TYPE_HNA, "HNA" },
|
||||
{ DATA_TYPE_HNA, "HNA" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -185,8 +185,8 @@ static int bat_follow_tap = -1;
|
|||
|
||||
/* values changed by preferences */
|
||||
static guint global_bat_batman_udp_port = BAT_BATMAN_PORT;
|
||||
static guint global_bat_gw_udp_port = BAT_GW_PORT;
|
||||
static guint global_bat_vis_udp_port = BAT_VIS_PORT;
|
||||
static guint global_bat_gw_udp_port = BAT_GW_PORT;
|
||||
static guint global_bat_vis_udp_port = BAT_VIS_PORT;
|
||||
|
||||
|
||||
|
||||
|
@ -219,7 +219,7 @@ static void dissect_bat_gwflags(tvbuff_t *tvb, guint8 gwflags, int offset, proto
|
|||
guint8 s = (gwflags & 0x80) >> 7;
|
||||
guint8 downbits = (gwflags & 0x78) >> 3;
|
||||
guint8 upbits = (gwflags & 0x07);
|
||||
guint down, up;
|
||||
guint down, up;
|
||||
|
||||
down = 32 * (s + 2) * (1 << downbits);
|
||||
up = ((upbits + 1) * down) / 8;
|
||||
|
@ -942,3 +942,16 @@ void proto_reg_handoff_bat(void)
|
|||
dissector_add_uint("udp.port", gw_udp_port, gw_handle);
|
||||
dissector_add_uint("udp.port", vis_udp_port, vis_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -724,3 +724,16 @@ void proto_reg_handoff_bfcp(void)
|
|||
heur_dissector_set_enabled("udp", dissect_bfcp_heur, proto_bfcp,
|
||||
bfcp_enable_heuristic_dissection);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -142,68 +142,68 @@ static expert_field ei_dcc_len = EI_INIT;
|
|||
|
||||
/* Lookup string tables */
|
||||
static const value_string dcc_op_vals[] = {
|
||||
{DCC_OP_INVALID, "Invalid Op"},
|
||||
{DCC_OP_NOP, "No-Op"},
|
||||
{DCC_OP_REPORT, "Report and Query"},
|
||||
{DCC_OP_QUERY, "Query"},
|
||||
{DCC_OP_INVALID, "Invalid Op"},
|
||||
{DCC_OP_NOP, "No-Op"},
|
||||
{DCC_OP_REPORT, "Report and Query"},
|
||||
{DCC_OP_QUERY, "Query"},
|
||||
{DCC_OP_QUERY_RESP, "Server Response"},
|
||||
{DCC_OP_ADMN, "Admin"},
|
||||
{DCC_OP_OK, "Ok"},
|
||||
{DCC_OP_ERROR, "Server Failing"},
|
||||
{DCC_OP_DELETE, "Delete Checksum(s)"},
|
||||
{DCC_OP_ADMN, "Admin"},
|
||||
{DCC_OP_OK, "Ok"},
|
||||
{DCC_OP_ERROR, "Server Failing"},
|
||||
{DCC_OP_DELETE, "Delete Checksum(s)"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
static const value_string dcc_cktype_vals[] = {
|
||||
{DCC_CK_INVALID, "Invalid/Deleted from DB when seen"},
|
||||
{DCC_CK_IP, "MD5 of binary source IPv6 address"},
|
||||
{DCC_CK_ENV_FROM, "MD5 of envelope Mail From value"},
|
||||
{DCC_CK_FROM, "MD5 of header From: line"},
|
||||
{DCC_CK_SUB, "MD5 of substitute header line"},
|
||||
{DCC_CK_INVALID, "Invalid/Deleted from DB when seen"},
|
||||
{DCC_CK_IP, "MD5 of binary source IPv6 address"},
|
||||
{DCC_CK_ENV_FROM, "MD5 of envelope Mail From value"},
|
||||
{DCC_CK_FROM, "MD5 of header From: line"},
|
||||
{DCC_CK_SUB, "MD5 of substitute header line"},
|
||||
{DCC_CK_MESSAGE_ID, "MD5 of header Message-ID: line"},
|
||||
{DCC_CK_RECEIVED, "MD5 of last header Received: line"},
|
||||
{DCC_CK_BODY, "MD5 of body"},
|
||||
{DCC_CK_FUZ1, "MD5 of filtered body - FUZ1"},
|
||||
{DCC_CK_FUZ2, "MD5 of filtered body - FUZ2"},
|
||||
{DCC_CK_FUZ3, "MD5 of filtered body - FUZ3"},
|
||||
{DCC_CK_FUZ4, "MD5 of filtered body - FUZ4"},
|
||||
{DCC_CK_SRVR_ID, "hostname for server-ID check "},
|
||||
{DCC_CK_ENV_TO, "MD5 of envelope Rcpt To value"},
|
||||
{DCC_CK_RECEIVED, "MD5 of last header Received: line"},
|
||||
{DCC_CK_BODY, "MD5 of body"},
|
||||
{DCC_CK_FUZ1, "MD5 of filtered body - FUZ1"},
|
||||
{DCC_CK_FUZ2, "MD5 of filtered body - FUZ2"},
|
||||
{DCC_CK_FUZ3, "MD5 of filtered body - FUZ3"},
|
||||
{DCC_CK_FUZ4, "MD5 of filtered body - FUZ4"},
|
||||
{DCC_CK_SRVR_ID, "hostname for server-ID check "},
|
||||
{DCC_CK_ENV_TO, "MD5 of envelope Rcpt To value"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
static const value_string dcc_adminop_vals[] = {
|
||||
{DCC_AOP_OK, "Never sent"},
|
||||
{DCC_AOP_STOP, "Stop Gracefully"},
|
||||
{DCC_AOP_NEW_IDS, "Load keys and client IDs"},
|
||||
{DCC_AOP_FLOD, "Flood control"},
|
||||
{DCC_AOP_DB_UNLOCK, "Start Switch to new database"},
|
||||
{DCC_AOP_DB_NEW, "Finish Switch to new database"},
|
||||
{DCC_AOP_STATS, "Return counters"},
|
||||
{DCC_AOP_OK, "Never sent"},
|
||||
{DCC_AOP_STOP, "Stop Gracefully"},
|
||||
{DCC_AOP_NEW_IDS, "Load keys and client IDs"},
|
||||
{DCC_AOP_FLOD, "Flood control"},
|
||||
{DCC_AOP_DB_UNLOCK, "Start Switch to new database"},
|
||||
{DCC_AOP_DB_NEW, "Finish Switch to new database"},
|
||||
{DCC_AOP_STATS, "Return counters"},
|
||||
{DCC_AOP_STATS_CLEAR, "Return and zero counters"},
|
||||
{DCC_AOP_TRACE_ON, "Enable tracing"},
|
||||
{DCC_AOP_TRACE_OFF, "Disable tracing"},
|
||||
{DCC_AOP_TRACE_ON, "Enable tracing"},
|
||||
{DCC_AOP_TRACE_OFF, "Disable tracing"},
|
||||
{DCC_AOP_CUR_CLIENTS, "List clients"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
static const value_string dcc_target_vals[] = {
|
||||
{DCC_TGTS_TOO_MANY, "Targets (>= 16777200)"},
|
||||
{DCC_TGTS_OK, "Certified not spam"},
|
||||
{DCC_TGTS_OK2, "Half certified not spam"},
|
||||
{DCC_TGTS_DEL, "Deleted checksum"},
|
||||
{DCC_TGTS_INVALID, "Invalid"},
|
||||
{DCC_TGTS_OK, "Certified not spam"},
|
||||
{DCC_TGTS_OK2, "Half certified not spam"},
|
||||
{DCC_TGTS_DEL, "Deleted checksum"},
|
||||
{DCC_TGTS_INVALID, "Invalid"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
static const value_string dcc_floodop_vals[] = {
|
||||
{DCC_AOP_FLOD_CHECK, "Check"},
|
||||
{DCC_AOP_FLOD_SHUTDOWN, "Shutdown"},
|
||||
{DCC_AOP_FLOD_HALT, "Halt"},
|
||||
{DCC_AOP_FLOD_RESUME, "Resume"},
|
||||
{DCC_AOP_FLOD_REWIND, "Rewind"},
|
||||
{DCC_AOP_FLOD_LIST, "List"},
|
||||
{DCC_AOP_FLOD_STATS, "Stats"},
|
||||
{DCC_AOP_FLOD_CHECK, "Check"},
|
||||
{DCC_AOP_FLOD_SHUTDOWN, "Shutdown"},
|
||||
{DCC_AOP_FLOD_HALT, "Halt"},
|
||||
{DCC_AOP_FLOD_RESUME, "Resume"},
|
||||
{DCC_AOP_FLOD_REWIND, "Rewind"},
|
||||
{DCC_AOP_FLOD_LIST, "List"},
|
||||
{DCC_AOP_FLOD_STATS, "Stats"},
|
||||
{DCC_AOP_FLOD_STATS_CLEAR, "Clear Stats"},
|
||||
{0,NULL},
|
||||
};
|
||||
|
@ -588,3 +588,16 @@ proto_reg_handoff_dcc(void)
|
|||
{
|
||||
heur_dissector_add("udp", dissect_dcc, proto_dcc);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -54,11 +54,11 @@ static gint ett_dcerpc_browser = -1;
|
|||
|
||||
static int
|
||||
dissect_browser_long_pointer(tvbuff_t *tvb, int offset,
|
||||
packet_info *pinfo, proto_tree *tree,
|
||||
dcerpc_info *di, guint8 *drep)
|
||||
packet_info *pinfo, proto_tree *tree,
|
||||
dcerpc_info *di, guint8 *drep)
|
||||
{
|
||||
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep,
|
||||
di->hf_index, NULL);
|
||||
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep,
|
||||
di->hf_index, NULL);
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
@ -73,8 +73,8 @@ dissect_browser_long_pointer(tvbuff_t *tvb, int offset,
|
|||
*/
|
||||
|
||||
static e_uuid_t uuid_dcerpc_browser = {
|
||||
0x6bffd098, 0xa112, 0x3610,
|
||||
{ 0x98, 0x33, 0x01, 0x28, 0x92, 0x02, 0x01, 0x62 }
|
||||
0x6bffd098, 0xa112, 0x3610,
|
||||
{ 0x98, 0x33, 0x01, 0x28, 0x92, 0x02, 0x01, 0x62 }
|
||||
};
|
||||
|
||||
static guint16 ver_dcerpc_browser = 0;
|
||||
|
@ -257,7 +257,7 @@ dissect_browser_browserr_server_enum_rqst(tvbuff_t *tvb, int offset,
|
|||
|
||||
offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, di, drep,
|
||||
NDR_POINTER_UNIQUE, "unknown string",
|
||||
hf_browser_unknown_string, 0);
|
||||
hf_browser_unknown_string, 0);
|
||||
|
||||
offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, di, drep,
|
||||
NDR_POINTER_UNIQUE, "unknown string",
|
||||
|
@ -723,7 +723,7 @@ dissect_browser_TYPE_10(tvbuff_t *tvb, int offset,
|
|||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_browser_unknown_long, NULL);
|
||||
|
||||
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, di, drep,
|
||||
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, di, drep,
|
||||
dissect_browser_TYPE_11_array, NDR_POINTER_UNIQUE,
|
||||
"unknown TYPE_11_ARRAY", -1);
|
||||
|
||||
|
@ -896,7 +896,7 @@ dissect_browser_browserr_set_netlogon_state_rqst(tvbuff_t *tvb, int offset,
|
|||
|
||||
offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, di, drep,
|
||||
NDR_POINTER_REF, "unknown string",
|
||||
hf_browser_unknown_string, 0);
|
||||
hf_browser_unknown_string, 0);
|
||||
|
||||
offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, di, drep,
|
||||
NDR_POINTER_UNIQUE, "unknown string",
|
||||
|
@ -1182,3 +1182,16 @@ proto_reg_handoff_dcerpc_browser(void)
|
|||
&uuid_dcerpc_browser, ver_dcerpc_browser,
|
||||
dcerpc_browser_dissectors, hf_browser_opnum);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -83,8 +83,8 @@ static gint ett_dcerpc_svcctl = -1;
|
|||
static gint ett_dcerpc_svcctl_service_type_bits = -1;
|
||||
|
||||
static e_uuid_t uuid_dcerpc_svcctl = {
|
||||
0x367abb81, 0x9844, 0x35f1,
|
||||
{ 0xad, 0x32, 0x98, 0xf0, 0x38, 0x00, 0x10, 0x03 }
|
||||
0x367abb81, 0x9844, 0x35f1,
|
||||
{ 0xad, 0x32, 0x98, 0xf0, 0x38, 0x00, 0x10, 0x03 }
|
||||
};
|
||||
|
||||
static guint16 ver_dcerpc_svcctl = 2;
|
||||
|
@ -121,7 +121,7 @@ svcctl_dissect_dwServiceType_flags(tvbuff_t *tvb, int offset,
|
|||
packet_info *pinfo, proto_tree *parent_tree,
|
||||
guint8 *drep, int opnum)
|
||||
{
|
||||
guint32 value, len=4;
|
||||
guint32 value, len = 4;
|
||||
proto_item *item = NULL;
|
||||
proto_tree *tree = NULL;
|
||||
|
||||
|
@ -208,11 +208,11 @@ static const value_string svcctl_service_error_control_vals[] = {
|
|||
|
||||
static int
|
||||
svcctl_dissect_pointer_long(tvbuff_t *tvb, int offset,
|
||||
packet_info *pinfo, proto_tree *tree,
|
||||
dcerpc_info *di, guint8 *drep)
|
||||
packet_info *pinfo, proto_tree *tree,
|
||||
dcerpc_info *di, guint8 *drep)
|
||||
{
|
||||
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep,
|
||||
di->hf_index, NULL);
|
||||
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep,
|
||||
di->hf_index, NULL);
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
@ -639,16 +639,16 @@ svcctl_dissect_QUERY_SERVICE_LOCK_STATUS(tvbuff_t *tvb, int offset,
|
|||
packet_info *pinfo, proto_tree *tree,
|
||||
dcerpc_info *di, guint8 *drep)
|
||||
{
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_is_locked, NULL);
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_is_locked, NULL);
|
||||
|
||||
offset = dissect_ndr_pointer(
|
||||
tvb, offset, pinfo, tree, di, drep,
|
||||
dissect_ndr_char_cvstring, NDR_POINTER_UNIQUE,
|
||||
"Owner", hf_svcctl_lock_owner);
|
||||
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_lock_duration, NULL);
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_lock_duration, NULL);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -671,8 +671,8 @@ svcctl_dissect_QueryServiceLockStatus_rqst(tvbuff_t *tvb, int offset,
|
|||
tvb, offset, pinfo, tree, di, drep, hf_svcctl_hnd, NULL,
|
||||
NULL, FALSE, TRUE);
|
||||
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_size, NULL);
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_size, NULL);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -685,8 +685,8 @@ svcctl_dissect_QueryServiceLockStatus_reply(tvbuff_t *tvb, int offset,
|
|||
svcctl_dissect_QUERY_SERVICE_LOCK_STATUS, NDR_POINTER_REF,
|
||||
"LOCK_STATUS", -1);
|
||||
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_required_size, NULL);
|
||||
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
|
||||
hf_svcctl_required_size, NULL);
|
||||
|
||||
offset = dissect_doserror(
|
||||
tvb, offset, pinfo, tree, di, drep, hf_svcctl_rc, NULL);
|
||||
|
@ -873,152 +873,165 @@ static dcerpc_sub_dissector dcerpc_svcctl_dissectors[] = {
|
|||
void
|
||||
proto_register_dcerpc_svcctl(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_svcctl_opnum,
|
||||
{ "Operation", "svcctl.opnum", FT_UINT16, BASE_DEC,
|
||||
NULL, 0x0, NULL, HFILL }},
|
||||
{ &hf_svcctl_machinename,
|
||||
{ "MachineName", "svcctl.machinename", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "Name of the host we want to open the database on", HFILL }},
|
||||
{ &hf_svcctl_database,
|
||||
{ "Database", "svcctl.database", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "Name of the database to open", HFILL }},
|
||||
{ &hf_svcctl_access_mask,
|
||||
{ "Access Mask", "svcctl.access_mask", FT_UINT32, BASE_HEX,
|
||||
NULL, 0x0, "SVCCTL Access Mask", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_connect,
|
||||
{ "Connect", "svcctl.scm_rights_connect", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000001, "SVCCTL Rights to connect to SCM", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_create_service,
|
||||
{ "Create Service", "svcctl.scm_rights_create_service", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000002, "SVCCTL Rights to create services", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_enumerate_service,
|
||||
{ "Enumerate Service", "svcctl.scm_rights_enumerate_service", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000004, "SVCCTL Rights to enumerate services", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_lock,
|
||||
{ "Lock", "svcctl.scm_rights_lock", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000008, "SVCCTL Rights to lock database", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_query_lock_status,
|
||||
{ "Query Lock Status", "svcctl.scm_rights_query_lock_status", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000010, "SVCCTL Rights to query database lock status", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_modify_boot_config,
|
||||
{ "Modify Boot Config", "svcctl.scm_rights_modify_boot_config", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000020, "SVCCTL Rights to modify boot config", HFILL }},
|
||||
{ &hf_svcctl_hnd,
|
||||
{ "Context Handle", "svcctl.hnd", FT_BYTES, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL Context handle", HFILL }},
|
||||
{ &hf_svcctl_lock,
|
||||
{ "Lock", "svcctl.lock", FT_BYTES, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL Database Lock", HFILL }},
|
||||
{ &hf_svcctl_rc,
|
||||
{ "Return code", "svcctl.rc", FT_UINT32, BASE_HEX | BASE_EXT_STRING,
|
||||
&DOS_errors_ext, 0x0, "SVCCTL return code", HFILL }},
|
||||
{ &hf_svcctl_size,
|
||||
{ "Size", "svcctl.size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL size of buffer", HFILL }},
|
||||
{ &hf_svcctl_required_size,
|
||||
{ "Required Size", "svcctl.required_size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL required size of buffer for data to fit", HFILL }},
|
||||
{ &hf_svcctl_is_locked,
|
||||
{ "IsLocked", "svcctl.is_locked", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL whether the database is locked or not", HFILL }},
|
||||
{ &hf_svcctl_lock_duration,
|
||||
{ "Duration", "svcctl.lock_duration", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL number of seconds the database has been locked", HFILL }},
|
||||
{ &hf_svcctl_lock_owner,
|
||||
{ "Owner", "svcctl.lock_owner", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL the user that holds the database lock", HFILL }},
|
||||
{ &hf_svcctl_service_type,
|
||||
{ "Service Type", "svcctl.service_type", FT_UINT32, BASE_HEX,
|
||||
NULL, 0x0, "SVCCTL type of service", HFILL }},
|
||||
{ &hf_svcctl_service_type_kernel_driver,
|
||||
{ "Kernel Driver Service", "svcctl.service_type.kernel", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_kernel_driver), SVCCTL_SERVICE_TYPE_KERNEL_DRIVER, "Request includes kernel driver services?", HFILL }},
|
||||
{ &hf_svcctl_service_type_fs_driver,
|
||||
{ "File System Driver Service", "svcctl.service_type.fs", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_fs_driver), SVCCTL_SERVICE_TYPE_FILE_SYSTEM_DRIVER, "Request includes file system driver services?", HFILL }},
|
||||
{ &hf_svcctl_service_type_win32_own_process,
|
||||
{ "Self Process Service", "svcctl.service_type.win32_own", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_win32_own_process), SVCCTL_SERVICE_TYPE_WIN32_OWN_PROCESS, "Request includes services that run their own process?", HFILL }},
|
||||
{ &hf_svcctl_service_type_win32_share_process,
|
||||
{ "Shared Process Service", "svcctl.service_type.win32_shared", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_win32_share_process), SVCCTL_SERVICE_TYPE_WIN32_SHARE_PROCESS, "Request includes services that share their process?", HFILL }},
|
||||
{ &hf_svcctl_service_type_interactive_process,
|
||||
{ "Interactive Process Service", "svcctl.service_type.interactive", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_interactive_process), SVCCTL_SERVICE_TYPE_INTERACTIVE_PROCESS, "Request includes services that can interact with the desktop?", HFILL }},
|
||||
{ &hf_svcctl_service_state,
|
||||
{ "Service State", "svcctl.service_state", FT_UINT32, BASE_DEC,
|
||||
VALS(svcctl_service_status_vals), 0x0, "SVCCTL service state", HFILL }},
|
||||
{ &hf_svcctl_buffer,
|
||||
{ "Buffer", "svcctl.buffer", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL buffer", HFILL }},
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_svcctl_opnum,
|
||||
{ "Operation", "svcctl.opnum", FT_UINT16, BASE_DEC,
|
||||
NULL, 0x0, NULL, HFILL }},
|
||||
{ &hf_svcctl_machinename,
|
||||
{ "MachineName", "svcctl.machinename", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "Name of the host we want to open the database on", HFILL }},
|
||||
{ &hf_svcctl_database,
|
||||
{ "Database", "svcctl.database", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "Name of the database to open", HFILL }},
|
||||
{ &hf_svcctl_access_mask,
|
||||
{ "Access Mask", "svcctl.access_mask", FT_UINT32, BASE_HEX,
|
||||
NULL, 0x0, "SVCCTL Access Mask", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_connect,
|
||||
{ "Connect", "svcctl.scm_rights_connect", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000001, "SVCCTL Rights to connect to SCM", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_create_service,
|
||||
{ "Create Service", "svcctl.scm_rights_create_service", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000002, "SVCCTL Rights to create services", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_enumerate_service,
|
||||
{ "Enumerate Service", "svcctl.scm_rights_enumerate_service", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000004, "SVCCTL Rights to enumerate services", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_lock,
|
||||
{ "Lock", "svcctl.scm_rights_lock", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000008, "SVCCTL Rights to lock database", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_query_lock_status,
|
||||
{ "Query Lock Status", "svcctl.scm_rights_query_lock_status", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000010, "SVCCTL Rights to query database lock status", HFILL }},
|
||||
{ &hf_svcctl_scm_rights_modify_boot_config,
|
||||
{ "Modify Boot Config", "svcctl.scm_rights_modify_boot_config", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_set_notset), 0x00000020, "SVCCTL Rights to modify boot config", HFILL }},
|
||||
{ &hf_svcctl_hnd,
|
||||
{ "Context Handle", "svcctl.hnd", FT_BYTES, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL Context handle", HFILL }},
|
||||
{ &hf_svcctl_lock,
|
||||
{ "Lock", "svcctl.lock", FT_BYTES, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL Database Lock", HFILL }},
|
||||
{ &hf_svcctl_rc,
|
||||
{ "Return code", "svcctl.rc", FT_UINT32, BASE_HEX | BASE_EXT_STRING,
|
||||
&DOS_errors_ext, 0x0, "SVCCTL return code", HFILL }},
|
||||
{ &hf_svcctl_size,
|
||||
{ "Size", "svcctl.size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL size of buffer", HFILL }},
|
||||
{ &hf_svcctl_required_size,
|
||||
{ "Required Size", "svcctl.required_size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL required size of buffer for data to fit", HFILL }},
|
||||
{ &hf_svcctl_is_locked,
|
||||
{ "IsLocked", "svcctl.is_locked", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL whether the database is locked or not", HFILL }},
|
||||
{ &hf_svcctl_lock_duration,
|
||||
{ "Duration", "svcctl.lock_duration", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL number of seconds the database has been locked", HFILL }},
|
||||
{ &hf_svcctl_lock_owner,
|
||||
{ "Owner", "svcctl.lock_owner", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL the user that holds the database lock", HFILL }},
|
||||
{ &hf_svcctl_service_type,
|
||||
{ "Service Type", "svcctl.service_type", FT_UINT32, BASE_HEX,
|
||||
NULL, 0x0, "SVCCTL type of service", HFILL }},
|
||||
{ &hf_svcctl_service_type_kernel_driver,
|
||||
{ "Kernel Driver Service", "svcctl.service_type.kernel", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_kernel_driver), SVCCTL_SERVICE_TYPE_KERNEL_DRIVER, "Request includes kernel driver services?", HFILL }},
|
||||
{ &hf_svcctl_service_type_fs_driver,
|
||||
{ "File System Driver Service", "svcctl.service_type.fs", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_fs_driver), SVCCTL_SERVICE_TYPE_FILE_SYSTEM_DRIVER, "Request includes file system driver services?", HFILL }},
|
||||
{ &hf_svcctl_service_type_win32_own_process,
|
||||
{ "Self Process Service", "svcctl.service_type.win32_own", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_win32_own_process), SVCCTL_SERVICE_TYPE_WIN32_OWN_PROCESS, "Request includes services that run their own process?", HFILL }},
|
||||
{ &hf_svcctl_service_type_win32_share_process,
|
||||
{ "Shared Process Service", "svcctl.service_type.win32_shared", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_win32_share_process), SVCCTL_SERVICE_TYPE_WIN32_SHARE_PROCESS, "Request includes services that share their process?", HFILL }},
|
||||
{ &hf_svcctl_service_type_interactive_process,
|
||||
{ "Interactive Process Service", "svcctl.service_type.interactive", FT_BOOLEAN, 32,
|
||||
TFS(&tfs_svcctl_service_type_interactive_process), SVCCTL_SERVICE_TYPE_INTERACTIVE_PROCESS, "Request includes services that can interact with the desktop?", HFILL }},
|
||||
{ &hf_svcctl_service_state,
|
||||
{ "Service State", "svcctl.service_state", FT_UINT32, BASE_DEC,
|
||||
VALS(svcctl_service_status_vals), 0x0, "SVCCTL service state", HFILL }},
|
||||
{ &hf_svcctl_buffer,
|
||||
{ "Buffer", "svcctl.buffer", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL buffer", HFILL }},
|
||||
#if 0
|
||||
{ &hf_svcctl_bytes_needed,
|
||||
{ "Bytes Needed", "svcctl.bytes_needed", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL bytes needed", HFILL }},
|
||||
{ &hf_svcctl_services_returned,
|
||||
{ "Services Returned", "svcctl.services_returned", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL services returned", HFILL }},
|
||||
{ &hf_svcctl_bytes_needed,
|
||||
{ "Bytes Needed", "svcctl.bytes_needed", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL bytes needed", HFILL }},
|
||||
{ &hf_svcctl_services_returned,
|
||||
{ "Services Returned", "svcctl.services_returned", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL services returned", HFILL }},
|
||||
#endif
|
||||
{ &hf_svcctl_service_name,
|
||||
{ "Service Name", "svcctl.servicename", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL name of service", HFILL }},
|
||||
{ &hf_svcctl_display_name,
|
||||
{ "Display Name", "svcctl.displayname", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL display name", HFILL }},
|
||||
{ &hf_svcctl_service_start_type,
|
||||
{ "Service Start Type", "svcctl.service_start_type", FT_UINT32, BASE_DEC,
|
||||
VALS(svcctl_service_start_type_vals), 0x0, "SVCCTL service start type", HFILL }},
|
||||
{ &hf_svcctl_service_error_control,
|
||||
{ "Service Error Control", "svcctl.service_error_control", FT_UINT32, BASE_DEC,
|
||||
VALS(svcctl_service_error_control_vals), 0x0, "SVCCTL service error control", HFILL }},
|
||||
{ &hf_svcctl_binarypathname,
|
||||
{ "Binary Path Name", "svcctl.binarypathname", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL binary path name", HFILL }},
|
||||
{ &hf_svcctl_loadordergroup,
|
||||
{ "Load Order Group", "svcctl.loadordergroup", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL load order group", HFILL }},
|
||||
{ &hf_svcctl_tagid,
|
||||
{ "Tag Id", "svcctl.tagid", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL tag id", HFILL }},
|
||||
{ &hf_svcctl_dependencies,
|
||||
{ "Dependencies", "svcctl.dependencies", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL dependencies", HFILL }},
|
||||
{ &hf_svcctl_depend_size,
|
||||
{ "Depend Size", "svcctl.depend_size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL depend size", HFILL }},
|
||||
{ &hf_svcctl_service_start_name,
|
||||
{ "Service Start Name", "svcctl.service_start_name", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL service start name", HFILL }},
|
||||
{ &hf_svcctl_password,
|
||||
{ "Password", "svcctl.password", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL password", HFILL }},
|
||||
{ &hf_svcctl_password_size,
|
||||
{ "Password Size", "svcctl.password_size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL password size", HFILL }},
|
||||
{ &hf_svcctl_resume,
|
||||
{ "Resume Handle", "svcctl.resume", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL resume handle", HFILL }},
|
||||
{ &hf_svcctl_service_name,
|
||||
{ "Service Name", "svcctl.servicename", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL name of service", HFILL }},
|
||||
{ &hf_svcctl_display_name,
|
||||
{ "Display Name", "svcctl.displayname", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL display name", HFILL }},
|
||||
{ &hf_svcctl_service_start_type,
|
||||
{ "Service Start Type", "svcctl.service_start_type", FT_UINT32, BASE_DEC,
|
||||
VALS(svcctl_service_start_type_vals), 0x0, "SVCCTL service start type", HFILL }},
|
||||
{ &hf_svcctl_service_error_control,
|
||||
{ "Service Error Control", "svcctl.service_error_control", FT_UINT32, BASE_DEC,
|
||||
VALS(svcctl_service_error_control_vals), 0x0, "SVCCTL service error control", HFILL }},
|
||||
{ &hf_svcctl_binarypathname,
|
||||
{ "Binary Path Name", "svcctl.binarypathname", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL binary path name", HFILL }},
|
||||
{ &hf_svcctl_loadordergroup,
|
||||
{ "Load Order Group", "svcctl.loadordergroup", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL load order group", HFILL }},
|
||||
{ &hf_svcctl_tagid,
|
||||
{ "Tag Id", "svcctl.tagid", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL tag id", HFILL }},
|
||||
{ &hf_svcctl_dependencies,
|
||||
{ "Dependencies", "svcctl.dependencies", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL dependencies", HFILL }},
|
||||
{ &hf_svcctl_depend_size,
|
||||
{ "Depend Size", "svcctl.depend_size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL depend size", HFILL }},
|
||||
{ &hf_svcctl_service_start_name,
|
||||
{ "Service Start Name", "svcctl.service_start_name", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL service start name", HFILL }},
|
||||
{ &hf_svcctl_password,
|
||||
{ "Password", "svcctl.password", FT_STRING, BASE_NONE,
|
||||
NULL, 0x0, "SVCCTL password", HFILL }},
|
||||
{ &hf_svcctl_password_size,
|
||||
{ "Password Size", "svcctl.password_size", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL password size", HFILL }},
|
||||
{ &hf_svcctl_resume,
|
||||
{ "Resume Handle", "svcctl.resume", FT_UINT32, BASE_DEC,
|
||||
NULL, 0x0, "SVCCTL resume handle", HFILL }},
|
||||
};
|
||||
|
||||
static gint *ett[] = {
|
||||
&ett_dcerpc_svcctl,
|
||||
&ett_dcerpc_svcctl_service_type_bits,
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_dcerpc_svcctl,
|
||||
&ett_dcerpc_svcctl_service_type_bits,
|
||||
};
|
||||
|
||||
proto_dcerpc_svcctl = proto_register_protocol(
|
||||
"Microsoft Service Control", "SVCCTL", "svcctl");
|
||||
proto_dcerpc_svcctl = proto_register_protocol(
|
||||
"Microsoft Service Control", "SVCCTL", "svcctl");
|
||||
|
||||
proto_register_field_array(proto_dcerpc_svcctl, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
}
|
||||
|
||||
void
|
||||
proto_reg_handoff_dcerpc_svcctl(void)
|
||||
{
|
||||
/* Register protocol as dcerpc */
|
||||
/* Register protocol as dcerpc */
|
||||
|
||||
dcerpc_init_uuid(proto_dcerpc_svcctl, ett_dcerpc_svcctl,
|
||||
&uuid_dcerpc_svcctl, ver_dcerpc_svcctl,
|
||||
dcerpc_svcctl_dissectors, hf_svcctl_opnum);
|
||||
dcerpc_init_uuid(proto_dcerpc_svcctl, ett_dcerpc_svcctl,
|
||||
&uuid_dcerpc_svcctl, ver_dcerpc_svcctl,
|
||||
dcerpc_svcctl_dissectors, hf_svcctl_opnum);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -701,7 +701,7 @@ dissect_dvmrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int of
|
|||
if ((tvb_length_remaining(tvb, offset)>=8)
|
||||
&& (((tvb_get_guint8(tvb, 6)==0xff)
|
||||
&& (tvb_get_guint8(tvb, 7)==0x03))
|
||||
|| !strict_v3)) {
|
||||
|| !strict_v3)) {
|
||||
offset = dissect_dvmrp_v3(tvb, pinfo, tree, offset);
|
||||
} else {
|
||||
offset = dissect_dvmrp_v1(tvb, pinfo, tree, offset);
|
||||
|
@ -903,3 +903,16 @@ proto_register_dvmrp(void)
|
|||
"Allow only packets with Major=0x03//Minor=0xFF as DVMRP V3 packets",
|
||||
&strict_v3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -37,53 +37,53 @@
|
|||
void proto_register_e164(void);
|
||||
|
||||
const value_string E164_country_code_value[] = {
|
||||
{ 0x00, "Reserved"},
|
||||
{ 0x01, "Americas"},
|
||||
{ 0x07, "Russian Federation, Kazakstan (Republic of)"},
|
||||
{ 0x020, "Egypt (Arab Republic of)"},
|
||||
{ 0x027, "South Africa (Republic of)"},
|
||||
{ 0x030, "Greece"},
|
||||
{ 0x031, "Netherlands (Kingdom of the)"},
|
||||
{ 0x032, "Belgium"},
|
||||
{ 0x033, "France"},
|
||||
{ 0x034, "Spain"},
|
||||
{ 0x036, "Hungary (Republic of)"},
|
||||
{ 0x039, "Italy"},
|
||||
{ 0x040, "Romania"},
|
||||
{ 0x041, "Switzerland (Confederation of)"},
|
||||
{ 0x043, "Austria"},
|
||||
{ 0x044, "United Kingdom of Great Britain and Northern Ireland"},
|
||||
{ 0x045, "Denmark"},
|
||||
{ 0x046, "Sweden"},
|
||||
{ 0x047, "Norway"},
|
||||
{ 0x048, "Poland (Republic of)"},
|
||||
{ 0x049, "Germany (Federal Republic of)"},
|
||||
{ 0x051, "Peru"},
|
||||
{ 0x052, "Mexico"},
|
||||
{ 0x053, "Cuba"},
|
||||
{ 0x054, "Argentine Republic"},
|
||||
{ 0x055, "Brazil (Federative Republic of)"},
|
||||
{ 0x056, "Chile"},
|
||||
{ 0x057, "Colombia (Republic of)"},
|
||||
{ 0x058, "Venezuela(Bolivarian Republic of)"},
|
||||
{ 0x060, "Malaysia"},
|
||||
{ 0x061, "Australia"},
|
||||
{ 0x062, "Indonesia (Republic of)"},
|
||||
{ 0x063, "Philippines (Republic of the)"},
|
||||
{ 0x064, "New Zealand"},
|
||||
{ 0x065, "Singapore (Republic of)"},
|
||||
{ 0x066, "Thailand"},
|
||||
{ 0x081, "Japan"},
|
||||
{ 0x082, "Korea (Republic of)"},
|
||||
{ 0x084, "Viet Nam (Socialist Republic of)"},
|
||||
{ 0x086, "China (People's Republic of)"},
|
||||
{ 0x090, "Turkey"},
|
||||
{ 0x091, "India (Republic of)"},
|
||||
{ 0x092, "Pakistan (Islamic Republic of)"},
|
||||
{ 0x093, "Afghanistan"},
|
||||
{ 0x094, "Sri Lanka (Democratic Socialist Republic of)"},
|
||||
{ 0x095, "Myanmar (the Republic of the Union of)"},
|
||||
{ 0x098, "Iran (Islamic Republic of)"},
|
||||
{ 0x0000, "Reserved"},
|
||||
{ 0x0001, "Americas"},
|
||||
{ 0x0007, "Russian Federation, Kazakstan (Republic of)"},
|
||||
{ 0x0020, "Egypt (Arab Republic of)"},
|
||||
{ 0x0027, "South Africa (Republic of)"},
|
||||
{ 0x0030, "Greece"},
|
||||
{ 0x0031, "Netherlands (Kingdom of the)"},
|
||||
{ 0x0032, "Belgium"},
|
||||
{ 0x0033, "France"},
|
||||
{ 0x0034, "Spain"},
|
||||
{ 0x0036, "Hungary (Republic of)"},
|
||||
{ 0x0039, "Italy"},
|
||||
{ 0x0040, "Romania"},
|
||||
{ 0x0041, "Switzerland (Confederation of)"},
|
||||
{ 0x0043, "Austria"},
|
||||
{ 0x0044, "United Kingdom of Great Britain and Northern Ireland"},
|
||||
{ 0x0045, "Denmark"},
|
||||
{ 0x0046, "Sweden"},
|
||||
{ 0x0047, "Norway"},
|
||||
{ 0x0048, "Poland (Republic of)"},
|
||||
{ 0x0049, "Germany (Federal Republic of)"},
|
||||
{ 0x0051, "Peru"},
|
||||
{ 0x0052, "Mexico"},
|
||||
{ 0x0053, "Cuba"},
|
||||
{ 0x0054, "Argentine Republic"},
|
||||
{ 0x0055, "Brazil (Federative Republic of)"},
|
||||
{ 0x0056, "Chile"},
|
||||
{ 0x0057, "Colombia (Republic of)"},
|
||||
{ 0x0058, "Venezuela(Bolivarian Republic of)"},
|
||||
{ 0x0060, "Malaysia"},
|
||||
{ 0x0061, "Australia"},
|
||||
{ 0x0062, "Indonesia (Republic of)"},
|
||||
{ 0x0063, "Philippines (Republic of the)"},
|
||||
{ 0x0064, "New Zealand"},
|
||||
{ 0x0065, "Singapore (Republic of)"},
|
||||
{ 0x0066, "Thailand"},
|
||||
{ 0x0081, "Japan"},
|
||||
{ 0x0082, "Korea (Republic of)"},
|
||||
{ 0x0084, "Viet Nam (Socialist Republic of)"},
|
||||
{ 0x0086, "China (People's Republic of)"},
|
||||
{ 0x0090, "Turkey"},
|
||||
{ 0x0091, "India (Republic of)"},
|
||||
{ 0x0092, "Pakistan (Islamic Republic of)"},
|
||||
{ 0x0093, "Afghanistan"},
|
||||
{ 0x0094, "Sri Lanka (Democratic Socialist Republic of)"},
|
||||
{ 0x0095, "Myanmar (the Republic of the Union of)"},
|
||||
{ 0x0098, "Iran (Islamic Republic of)"},
|
||||
{ 0x0210, "Spare code"},
|
||||
{ 0x0211, "South Sudan (Republic of)"},
|
||||
{ 0x0212, "Morocco (Kingdom of)"},
|
||||
|
@ -390,12 +390,12 @@ const value_string E164_International_Networks_882_vals[] = {
|
|||
static value_string_ext E164_International_Networks_882_vals_ext = VALUE_STRING_EXT_INIT(E164_International_Networks_882_vals);
|
||||
|
||||
const value_string E164_International_Networks_883_vals[] = {
|
||||
{ 0x100, "MediaLincc Ltd"},
|
||||
{ 0x110, "Aicent Inc"},
|
||||
{ 0x120, "Telenor Connexion AB"},
|
||||
{ 0x130, "France Telecom Orange"},
|
||||
{ 0x140, "Multiregional TransitTelecom (MTT)"},
|
||||
{ 0x150, "BodyTrace Netherlands B.V"},
|
||||
{ 0x0100, "MediaLincc Ltd"},
|
||||
{ 0x0110, "Aicent Inc"},
|
||||
{ 0x0120, "Telenor Connexion AB"},
|
||||
{ 0x0130, "France Telecom Orange"},
|
||||
{ 0x0140, "Multiregional TransitTelecom (MTT)"},
|
||||
{ 0x0150, "BodyTrace Netherlands B.V"},
|
||||
{ 0x5100, "Voxbone SA"},
|
||||
{ 0x5110, "Bandwith.com Inc"},
|
||||
{ 0x5120, "MTX Connect Ltd"},
|
||||
|
@ -417,27 +417,27 @@ static int ett_e164_msisdn = -1;
|
|||
void
|
||||
dissect_e164_number(tvbuff_t *tvb, proto_tree *tree, int offset, int length, e164_info_t e164_info)
|
||||
{
|
||||
proto_item *pi;
|
||||
proto_item *pi;
|
||||
|
||||
switch (e164_info.e164_number_type) {
|
||||
case CALLING_PARTY_NUMBER:
|
||||
proto_tree_add_string(tree, hf_E164_calling_party_number, tvb, offset,
|
||||
length, e164_info.E164_number_str);
|
||||
length, e164_info.E164_number_str);
|
||||
break;
|
||||
|
||||
case CALLED_PARTY_NUMBER:
|
||||
proto_tree_add_string(tree, hf_E164_called_party_number, tvb, offset,
|
||||
length, e164_info.E164_number_str);
|
||||
length, e164_info.E164_number_str);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(e164_info.nature_of_address == E164_NA_INTERNATIONAL_NUMBER){
|
||||
pi = proto_tree_add_string(tree, hf_E164_number, tvb, offset, length, e164_info.E164_number_str);
|
||||
PROTO_ITEM_SET_HIDDEN(pi);
|
||||
}
|
||||
if (e164_info.nature_of_address == E164_NA_INTERNATIONAL_NUMBER) {
|
||||
pi = proto_tree_add_string(tree, hf_E164_number, tvb, offset, length, e164_info.E164_number_str);
|
||||
PROTO_ITEM_SET_HIDDEN(pi);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -455,7 +455,7 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
|
||||
/* Get the first 3 digits of the MSISDN */
|
||||
switch (encoding) {
|
||||
case E164_ENC_BINARY:
|
||||
case E164_ENC_BINARY:
|
||||
/* Dissect country code after removing non significant zeros */
|
||||
while (address_digit_pair == 0) {
|
||||
cc_offset = cc_offset + 1;
|
||||
|
@ -466,7 +466,7 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
cc = cc >> 4;
|
||||
}
|
||||
break;
|
||||
case E164_ENC_BCD:
|
||||
case E164_ENC_BCD:
|
||||
cc = address_digit_pair &0x0f;
|
||||
cc = cc << 4;
|
||||
cc = cc | (address_digit_pair &0xf0)>>4;
|
||||
|
@ -476,7 +476,7 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
cc = cc | (address_digit_pair &0x0f);
|
||||
}
|
||||
break;
|
||||
case E164_ENC_UTF8:
|
||||
case E164_ENC_UTF8:
|
||||
/* XXX - do we need to worry about leading 0s? */
|
||||
cc = (tvb_get_guint8(tvb, cc_offset) - '0') << 8;
|
||||
cc |= (tvb_get_guint8(tvb, cc_offset+1) - '0') << 4;
|
||||
|
@ -618,13 +618,13 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
case 0x881:
|
||||
/* Get the 1-digit ID code */
|
||||
switch (encoding) {
|
||||
case E164_ENC_BINARY:
|
||||
case E164_ENC_BINARY:
|
||||
id_code = tvb_get_guint8(tvb, cc_offset + 1) & 0x0f;
|
||||
break;
|
||||
case E164_ENC_BCD:
|
||||
case E164_ENC_BCD:
|
||||
id_code = (tvb_get_guint8(tvb, cc_offset + 1) & 0xf0) >> 4;
|
||||
break;
|
||||
case E164_ENC_UTF8:
|
||||
case E164_ENC_UTF8:
|
||||
id_code = tvb_get_guint8(tvb, cc_offset + cc_length) - '0';
|
||||
break;
|
||||
}
|
||||
|
@ -634,15 +634,15 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
case 0x882:
|
||||
/* Get the 2-digit ID code */
|
||||
switch (encoding) {
|
||||
case E164_ENC_BINARY:
|
||||
case E164_ENC_BINARY:
|
||||
id_code = tvb_get_ntohs(tvb, cc_offset + 1);
|
||||
id_code = (id_code & 0x0ff0) >> 4;
|
||||
break;
|
||||
case E164_ENC_BCD:
|
||||
case E164_ENC_BCD:
|
||||
id_code = tvb_get_guint8(tvb, cc_offset + 1) & 0xf0;
|
||||
id_code |= tvb_get_guint8(tvb, cc_offset + 2) & 0x0f;
|
||||
break;
|
||||
case E164_ENC_UTF8:
|
||||
case E164_ENC_UTF8:
|
||||
id_code = (tvb_get_guint8(tvb, cc_offset+cc_length) - '0') << 4;
|
||||
id_code |= (tvb_get_guint8(tvb, cc_offset+cc_length+1) - '0');
|
||||
break;
|
||||
|
@ -653,16 +653,16 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
case 0x883:
|
||||
/* Get the 3-digit ID code */
|
||||
switch (encoding) {
|
||||
case E164_ENC_BINARY:
|
||||
case E164_ENC_BINARY:
|
||||
id_code = tvb_get_ntohs(tvb, cc_offset + 1);
|
||||
id_code = id_code & 0x0fff;
|
||||
break;
|
||||
case E164_ENC_BCD:
|
||||
case E164_ENC_BCD:
|
||||
id_code = (tvb_get_guint8(tvb, cc_offset + 1) & 0xf0) << 4;
|
||||
id_code |= (tvb_get_guint8(tvb, cc_offset + 2) & 0x0f) << 4;
|
||||
id_code |= (tvb_get_guint8(tvb, cc_offset + 2) & 0xf0) >> 4;
|
||||
break;
|
||||
case E164_ENC_UTF8:
|
||||
case E164_ENC_UTF8:
|
||||
id_code = (tvb_get_guint8(tvb, cc_offset+cc_length) - '0') << 8;
|
||||
id_code |= (tvb_get_guint8(tvb, cc_offset+cc_length+1) - '0') << 4;
|
||||
id_code |= (tvb_get_guint8(tvb, cc_offset+cc_length+2) - '0');
|
||||
|
@ -671,13 +671,13 @@ dissect_e164_cc(tvbuff_t *tvb, proto_tree *tree, int offset, e164_encoding_t enc
|
|||
if ((id_code & 0x0ff0) == 0x510) {
|
||||
/* Get the 4th digit of the ID code */
|
||||
switch (encoding) {
|
||||
case E164_ENC_BINARY:
|
||||
case E164_ENC_BINARY:
|
||||
id_code = (id_code << 4) | ((tvb_get_guint8(tvb, cc_offset + 3) & 0xf0) >> 4);
|
||||
break;
|
||||
case E164_ENC_BCD:
|
||||
case E164_ENC_BCD:
|
||||
id_code = (id_code << 4) | (tvb_get_guint8(tvb, cc_offset + 3) & 0x0f);
|
||||
break;
|
||||
case E164_ENC_UTF8:
|
||||
case E164_ENC_UTF8:
|
||||
id_code = (id_code << 4) | (tvb_get_guint8(tvb, cc_offset + cc_length + 3) - '0');
|
||||
break;
|
||||
}
|
||||
|
@ -702,14 +702,14 @@ dissect_e164_msisdn(tvbuff_t *tvb, proto_tree *tree, int offset, int length, e16
|
|||
const gchar *msisdn_str;
|
||||
|
||||
switch (encoding) {
|
||||
case E164_ENC_UTF8:
|
||||
case E164_ENC_UTF8:
|
||||
msisdn_str = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, length, ENC_UTF_8);
|
||||
break;
|
||||
case E164_ENC_BCD:
|
||||
case E164_ENC_BCD:
|
||||
msisdn_str = tvb_bcd_dig_to_wmem_packet_str(tvb, offset, length, NULL, FALSE);
|
||||
break;
|
||||
case E164_ENC_BINARY:
|
||||
default:
|
||||
case E164_ENC_BINARY:
|
||||
default:
|
||||
DISSECTOR_ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
||||
|
@ -724,9 +724,6 @@ dissect_e164_msisdn(tvbuff_t *tvb, proto_tree *tree, int offset, int length, e16
|
|||
|
||||
/*
|
||||
* Register the protocol with Wireshark.
|
||||
*
|
||||
* This format is required because a script is used to build the C function
|
||||
* that calls all the protocol registration.
|
||||
*/
|
||||
|
||||
void
|
||||
|
@ -770,3 +767,16 @@ proto_register_e164(void)
|
|||
proto_register_field_array(proto_e164, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett_e164_array, array_length(ett_e164_array));
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -555,3 +555,16 @@ proto_reg_handoff_enttec(void) {
|
|||
dissector_add_uint("udp.port",global_udp_port_enttec,enttec_handle);
|
||||
dissector_add_uint("tcp.port",global_tcp_port_enttec,enttec_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -653,3 +653,16 @@ proto_reg_handoff_epl_v1(void)
|
|||
epl_v1_handle = new_create_dissector_handle(dissect_epl_v1, proto_epl_v1);
|
||||
dissector_add_uint("ethertype", ETHERTYPE_EPL_V1, epl_v1_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -866,3 +866,16 @@ proto_reg_handoff_gluster_gd_mgmt(void)
|
|||
rpc_init_proc_table(GD_FRIEND_PROGRAM, 2,glusterd_friend_proc,
|
||||
hf_glusterd_friend_proc);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -151,7 +151,7 @@ static const value_string rach_precorr_vals[] = {
|
|||
|
||||
static void
|
||||
dissect_gmr1_rach_kls1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
|
||||
int *is_moc)
|
||||
int *is_moc)
|
||||
{
|
||||
proto_item *ec_item = NULL;
|
||||
proto_tree *ec_tree = NULL;
|
||||
|
@ -407,7 +407,7 @@ _parse_dialed_number(gchar *s, int slen, tvbuff_t *tvb, int offset)
|
|||
|
||||
static void
|
||||
dissect_gmr1_rach_kls2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
|
||||
int is_moc)
|
||||
int is_moc)
|
||||
{
|
||||
proto_item *dialed_num_item = NULL;
|
||||
proto_tree *dialed_num_tree = NULL, *gps_pos_tree = NULL;
|
||||
|
@ -713,3 +713,16 @@ proto_reg_handoff_gmr1_rach(void)
|
|||
{
|
||||
data_handle = find_dissector("data");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -748,3 +748,16 @@ void proto_reg_handoff_gnutella(void) {
|
|||
proto_gnutella);
|
||||
dissector_add_uint("tcp.port", GNUTELLA_TCP_PORT, gnutella_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -58,15 +58,15 @@ static const value_string gsm_bssmap_le_msg_strings[] = {
|
|||
{ 2, "Reserved" },
|
||||
{ 3, "Reserved" },
|
||||
{ 4, "Reserved" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_REQUEST, "Perform Location Request" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_RESPONSE, "Perform Location Response" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_ABORT, "Perform Location Abort" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_INFORMATION, "Perform Location Information" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_REQUEST, "Perform Location Request" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_RESPONSE, "Perform Location Response" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_ABORT, "Perform Location Abort" },
|
||||
{ BSSMAP_LE_PERFORM_LOCATION_INFORMATION, "Perform Location Information" },
|
||||
{ BSSMAP_LE_CONNECTION_ORIENTED_INFORMATION, "Connection Oriented Information" },
|
||||
{ BSSMAP_LE_CONNECTIONLESS_INFORMATION, "Connectionless Information" },
|
||||
{ BSSMAP_LE_RESET, "Reset" },
|
||||
{ BSSMAP_LE_RESET_ACKNOWLEDGE, "Reset Acknowledge" },
|
||||
{ 0, NULL } /*Null terminated list. Make sure we add this to our value/string structures. */
|
||||
{ BSSMAP_LE_CONNECTIONLESS_INFORMATION, "Connectionless Information" },
|
||||
{ BSSMAP_LE_RESET, "Reset" },
|
||||
{ BSSMAP_LE_RESET_ACKNOWLEDGE, "Reset Acknowledge" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* Information Element definitions */
|
||||
|
@ -102,36 +102,36 @@ static const value_string gsm_bssmap_le_msg_strings[] = {
|
|||
#define BSSMAP_LE_IMEI 128
|
||||
|
||||
static const value_string gsm_bssmap_le_elem_strings[] = {
|
||||
{ DE_BMAPLE_LCSQOS, "LCS QoS" },
|
||||
{ DE_BMAPLE_LCS_PRIO, "LCS Priority" },
|
||||
{ DE_BMAPLE_LOC_TYPE, "Location Type" },
|
||||
{ DE_BMAPLE_GANSS_LOC_TYPE, "GANSS Location Type" },
|
||||
{ DE_BMAPLE_GEO_LOC, "Geographic Location" },
|
||||
{ DE_BMAPLE_POS_DATA, "Positioning Data" },
|
||||
{ DE_BMAPLE_GANSS_POS_DATA, "GANSS Positioning Data" },
|
||||
{ DE_BMAPLE_VELOC_DATA, "Velocity Data" },
|
||||
{ DE_BMAPLE_LCS_CAUSE, "LCS Cause" },
|
||||
{ DE_BMAPLE_LCS_CLIENT_TYPE, "LCS Client Type" },
|
||||
{ DE_BMAPLE_APDU, "APDU" },
|
||||
{ DE_BMAPLE_NETWORK_ELEM_ID, "Network Element Identity" },
|
||||
{ DE_BMAPLE_REQ_GPS_ASSIST_D, "Requested GPS Assistance Data" },
|
||||
{ DE_BMAPLE_REQ_GNSS_ASSIST_D, "Requested GANSS Assistance Data" },
|
||||
{ DE_BMAPLE_DECIPH_KEYS, "Deciphering Keys" },
|
||||
{ DE_BMAPLE_RETURN_ERROR_REQ, "Return Error Request" },
|
||||
{ DE_BMAPLE_LCSQOS, "LCS QoS" },
|
||||
{ DE_BMAPLE_LCS_PRIO, "LCS Priority" },
|
||||
{ DE_BMAPLE_LOC_TYPE, "Location Type" },
|
||||
{ DE_BMAPLE_GANSS_LOC_TYPE, "GANSS Location Type" },
|
||||
{ DE_BMAPLE_GEO_LOC, "Geographic Location" },
|
||||
{ DE_BMAPLE_POS_DATA, "Positioning Data" },
|
||||
{ DE_BMAPLE_GANSS_POS_DATA, "GANSS Positioning Data" },
|
||||
{ DE_BMAPLE_VELOC_DATA, "Velocity Data" },
|
||||
{ DE_BMAPLE_LCS_CAUSE, "LCS Cause" },
|
||||
{ DE_BMAPLE_LCS_CLIENT_TYPE, "LCS Client Type" },
|
||||
{ DE_BMAPLE_APDU, "APDU" },
|
||||
{ DE_BMAPLE_NETWORK_ELEM_ID, "Network Element Identity" },
|
||||
{ DE_BMAPLE_REQ_GPS_ASSIST_D, "Requested GPS Assistance Data" },
|
||||
{ DE_BMAPLE_REQ_GNSS_ASSIST_D, "Requested GANSS Assistance Data" },
|
||||
{ DE_BMAPLE_DECIPH_KEYS, "Deciphering Keys" },
|
||||
{ DE_BMAPLE_RETURN_ERROR_REQ, "Return Error Request" },
|
||||
{ DE_BMAPLE_RETURN_ERROR_CAUSE, "Return Error Cause" },
|
||||
{ DE_BMAPLE_SEGMENTATION, "Segmentation" },
|
||||
{ DE_BMAPLE_CLASSMARK_TYPE_3, "Classmark Information Type 3" },
|
||||
{ DE_BMAPLE_CAUSE, "Cause" },
|
||||
{ DE_BMAPLE_CELL_IDENTIFIER, "Cell Identifier" },
|
||||
{ DE_BMAPLE_CHOSEN_CHANNEL, "Chosen Channel" },
|
||||
{ DE_BMAPLE_IMSI, "IMSI" },
|
||||
{ DE_BMAPLE_RES1, "Reserved" },
|
||||
{ DE_BMAPLE_RES2, "Reserved" },
|
||||
{ DE_BMAPLE_RES3, "Reserved" },
|
||||
{ DE_BMAPLE_LCS_CAPABILITY, "LCS Capability" },
|
||||
{ DE_BMAPLE_PACKET_MEAS_REP, "Packet Measurement Report" },
|
||||
{ DE_BMAPLE_MEAS_CELL_ID, "Cell Identity List" },
|
||||
{ DE_BMAPLE_IMEI, "IMEI" },
|
||||
{ DE_BMAPLE_SEGMENTATION, "Segmentation" },
|
||||
{ DE_BMAPLE_CLASSMARK_TYPE_3, "Classmark Information Type 3" },
|
||||
{ DE_BMAPLE_CAUSE, "Cause" },
|
||||
{ DE_BMAPLE_CELL_IDENTIFIER, "Cell Identifier" },
|
||||
{ DE_BMAPLE_CHOSEN_CHANNEL, "Chosen Channel" },
|
||||
{ DE_BMAPLE_IMSI, "IMSI" },
|
||||
{ DE_BMAPLE_RES1, "Reserved" },
|
||||
{ DE_BMAPLE_RES2, "Reserved" },
|
||||
{ DE_BMAPLE_RES3, "Reserved" },
|
||||
{ DE_BMAPLE_LCS_CAPABILITY, "LCS Capability" },
|
||||
{ DE_BMAPLE_PACKET_MEAS_REP, "Packet Measurement Report" },
|
||||
{ DE_BMAPLE_MEAS_CELL_ID, "Cell Identity List" },
|
||||
{ DE_BMAPLE_IMEI, "IMEI" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext gsm_bssmap_le_elem_strings_ext = VALUE_STRING_EXT_INIT(gsm_bssmap_le_elem_strings);
|
||||
|
@ -235,8 +235,8 @@ gint ett_gsm_bssmap_le_elem[NUM_GSM_BSSMAP_LE_ELEM];
|
|||
static guint16
|
||||
de_bmaple_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint8 apdu_protocol_id;
|
||||
guint32 curr_offset;
|
||||
guint8 apdu_protocol_id;
|
||||
tvbuff_t *APDU_tvb;
|
||||
|
||||
curr_offset = offset;
|
||||
|
@ -468,7 +468,7 @@ static guint16
|
|||
de_bmaple_client(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
guint8 bitCount;
|
||||
guint8 bitCount;
|
||||
|
||||
bitCount = offset<<3;
|
||||
curr_offset = offset;
|
||||
|
@ -561,7 +561,7 @@ static guint16
|
|||
de_bmaple_pos_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
tvbuff_t *data_tvb;
|
||||
guint32 curr_offset;
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
|
@ -903,8 +903,8 @@ void
|
|||
dissect_bssmap_le(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
static gsm_a_tap_rec_t tap_rec[4];
|
||||
static gsm_a_tap_rec_t *tap_p;
|
||||
static guint tap_current=0;
|
||||
static gsm_a_tap_rec_t *tap_p;
|
||||
static guint tap_current=0;
|
||||
guint8 oct;
|
||||
guint32 offset, saved_offset;
|
||||
guint32 len;
|
||||
|
@ -912,7 +912,7 @@ dissect_bssmap_le(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
proto_item *bssmap_le_item = NULL;
|
||||
proto_tree *bssmap_le_tree = NULL;
|
||||
const gchar *str;
|
||||
sccp_msg_info_t* sccp_msg_p;
|
||||
sccp_msg_info_t *sccp_msg_p;
|
||||
|
||||
sccp_msg_p = pinfo->sccp_info;
|
||||
|
||||
|
@ -1011,8 +1011,8 @@ dissect_bssmap_le(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
void
|
||||
proto_register_gsm_bssmap_le(void)
|
||||
{
|
||||
guint i;
|
||||
guint last_offset;
|
||||
guint i;
|
||||
guint last_offset;
|
||||
|
||||
/* Setup list of header fields */
|
||||
static hf_register_info hf[] = {
|
||||
|
@ -1052,59 +1052,59 @@ proto_register_gsm_bssmap_le(void)
|
|||
NULL, HFILL}
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_acq_ass,
|
||||
{ "Acquisition Assistance", "gsm_bssmap_le.acq_ass",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80,
|
||||
NULL, HFILL }
|
||||
{ "Acquisition Assistance", "gsm_bssmap_le.acq_ass",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_ref_time,
|
||||
{ "Reference Time", "gsm_bssmap_le.ref_time",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x40,
|
||||
NULL, HFILL }
|
||||
{ "Reference Time", "gsm_bssmap_le.ref_time",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x40,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_ref_loc,
|
||||
{ "Reference Location", "gsm_bssmap_le.ref_loc",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x20,
|
||||
NULL, HFILL }
|
||||
{ "Reference Location", "gsm_bssmap_le.ref_loc",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x20,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_dgps_corr,
|
||||
{ "DGPS Corrections", "gsm_bssmap_le.gps_corr",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x08,
|
||||
NULL, HFILL }
|
||||
{ "DGPS Corrections", "gsm_bssmap_le.gps_corr",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x08,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_nav_mod,
|
||||
{ "Navigation Model", "gsm_bssmap_le.nav_mod",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x10,
|
||||
NULL, HFILL }
|
||||
{ "Navigation Model", "gsm_bssmap_le.nav_mod",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x10,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_iono_mod,
|
||||
{ "Ionospheric Model", "gsm_bssmap_le.iono_mod",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x04,
|
||||
NULL, HFILL }
|
||||
{ "Ionospheric Model", "gsm_bssmap_le.iono_mod",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x04,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_utc_mod,
|
||||
{ "UTC Model", "gsm_bssmap_le.utc_mod",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x02,
|
||||
NULL, HFILL }
|
||||
{ "UTC Model", "gsm_bssmap_le.utc_mod",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x02,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_almanac,
|
||||
{ "Almanac", "gsm_bssmap_le.almanac",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01,
|
||||
NULL, HFILL }
|
||||
{ "Almanac", "gsm_bssmap_le.almanac",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_ephemeris_ext_chk,
|
||||
{ "Ephemeris Extension Check", "gsm_bssmap_le.ephemeris_ext_chk",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x04,
|
||||
NULL, HFILL }
|
||||
{ "Ephemeris Extension Check", "gsm_bssmap_le.ephemeris_ext_chk",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x04,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_ephemeris_ext,
|
||||
{ "Ephemeris Extension", "gsm_bssmap_le.ephemeris_ext",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x02,
|
||||
NULL, HFILL }
|
||||
{ "Ephemeris Extension", "gsm_bssmap_le.ephemeris_ext",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x02,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_real_time_int,
|
||||
{ "Real-Time Integrity", "gsm_bssmap_le.real_time_int",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01,
|
||||
NULL, HFILL }
|
||||
{ "Real-Time Integrity", "gsm_bssmap_le.real_time_int",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_bssmap_le_lcs_cause_value,
|
||||
{ "Cause Value", "gsm_bssmap_le.lcsCauseValue",
|
||||
|
@ -1207,3 +1207,16 @@ proto_reg_handoff_gsm_bssmap_le(void)
|
|||
|
||||
gsm_bsslap_handle = find_dissector("gsm_bsslap");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -69,7 +69,7 @@ static gboolean gssapi_reassembly = TRUE;
|
|||
typedef struct _gssapi_conv_info_t {
|
||||
gssapi_oid_value *oid;
|
||||
|
||||
wmem_tree_t *frags;
|
||||
wmem_tree_t *frags;
|
||||
|
||||
gboolean do_reassembly; /* this field is used on first sequential scan of packets to help indicate when the next blob is a fragment continuing a previous one */
|
||||
int first_frame;
|
||||
|
@ -381,9 +381,9 @@ dissect_gssapi_work(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
}
|
||||
if (!oidvalue)
|
||||
{
|
||||
proto_tree_add_text(subtree, gss_tvb, start_offset, 0,
|
||||
"Unknown header (class=%d, pc=%d, tag=%d)",
|
||||
appclass, pc, tag);
|
||||
proto_tree_add_text(subtree, gss_tvb, start_offset, 0,
|
||||
"Unknown header (class=%d, pc=%d, tag=%d)",
|
||||
appclass, pc, tag);
|
||||
return_offset = tvb_length(gss_tvb);
|
||||
goto done;
|
||||
} else {
|
||||
|
@ -692,3 +692,16 @@ proto_reg_handoff_gssapi(void)
|
|||
gssapi_handle = find_dissector("gssapi");
|
||||
dissector_add_string("dns.tsig.mac", "gss.microsoft.com", gssapi_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -47,35 +47,35 @@ static int hf_h248_pkg_BCP_BNCChar = -1;
|
|||
static gint ett_h248_pkg_BCP = -1;
|
||||
|
||||
static const value_string h248_pkg_BCP_parameters[] _U_ = {
|
||||
{ 0x0001, "BNCChar (BNC Characteristics)" },
|
||||
{0, NULL}
|
||||
{ 0x0001, "BNCChar (BNC Characteristics)" },
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_BCP_props_vals[] = {
|
||||
{0, "Bearer Characteristics Q.1950 Annex A (bcp)" },
|
||||
{1, "BNC Characteristics (BNCChar)"},
|
||||
{0,NULL}
|
||||
{0, "Bearer Characteristics Q.1950 Annex A (bcp)" },
|
||||
{1, "BNC Characteristics (BNCChar)"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
/* Properties */
|
||||
h248_pkg_param_t h248_pkg_BCP_props[] = {
|
||||
{ 0x0001, &hf_h248_pkg_BCP_BNCChar, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_BCP_BNCChar, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
/* Packet defenitions */
|
||||
static h248_package_t h248_pkg_BCP = {
|
||||
0x001e,
|
||||
&hf_h248_pkg_BCP,
|
||||
&ett_h248_pkg_BCP,
|
||||
h248_pkg_BCP_props_vals,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
h248_pkg_BCP_props, /* Properties */
|
||||
NULL, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
0x001e,
|
||||
&hf_h248_pkg_BCP,
|
||||
&ett_h248_pkg_BCP,
|
||||
h248_pkg_BCP_props_vals,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
h248_pkg_BCP_props, /* Properties */
|
||||
NULL, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
};
|
||||
|
||||
/* A.4 Bearer Network connection cut-through package */
|
||||
|
@ -86,41 +86,41 @@ static int hf_h248_pkg_BNCCT_prop = -1;
|
|||
static gint ett_h248_pkg_BNCCT = -1;
|
||||
|
||||
static const value_string h248_pkg_BNCCT_parameters[] _U_ = {
|
||||
{ 0x0001, "BNC Cut Through Capability" },
|
||||
{ 0, NULL }
|
||||
{ 0x0001, "BNC Cut Through Capability" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_BNCCT_props_vals[] = {
|
||||
{0,"Bearer Network Connection Cut Q.1950 Annex A" },
|
||||
{1,"BNCCT"},
|
||||
{0,NULL}
|
||||
{0,"Bearer Network Connection Cut Q.1950 Annex A" },
|
||||
{1,"BNCCT"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_BNCCT_prop_vals[] = {
|
||||
{1,"Early"},
|
||||
{2,"Late"},
|
||||
{0,NULL}
|
||||
{1,"Early"},
|
||||
{2,"Late"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
/* Properties */
|
||||
static const h248_pkg_param_t h248_pkg_BNCCT_props[] = {
|
||||
{ 0x0001, &hf_h248_pkg_BNCCT_prop, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_BNCCT_prop, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
/* Packet defenitions */
|
||||
static h248_package_t h248_pkg_BNCCT = {
|
||||
0x001f,
|
||||
&hf_h248_pkg_BNCCT,
|
||||
&ett_h248_pkg_BNCCT,
|
||||
h248_pkg_BNCCT_props_vals,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
h248_pkg_BNCCT_props, /* Properties */
|
||||
NULL, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
0x001f,
|
||||
&hf_h248_pkg_BNCCT,
|
||||
&ett_h248_pkg_BNCCT,
|
||||
h248_pkg_BNCCT_props_vals,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
h248_pkg_BNCCT_props, /* Properties */
|
||||
NULL, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
};
|
||||
|
||||
/* A.5 Bearer Reuse Idle Package */
|
||||
|
@ -131,44 +131,44 @@ static int hf_h248_pkg_RII= -1;
|
|||
static gint ett_h248_pkg_RI= -1;
|
||||
|
||||
static const value_string h248_pkg_RI_parameters[] = {
|
||||
{ 0x0000, "Reuse Idle Q.1950 Annex A" },
|
||||
{ 0x0001, "Reuse Idle Indication" },
|
||||
{ 0, NULL }
|
||||
{ 0x0000, "Reuse Idle Q.1950 Annex A" },
|
||||
{ 0x0001, "Reuse Idle Indication" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_RII_vals[] = {
|
||||
{0,"Not_Reuse_Idle"},
|
||||
{1,"ReUse_Idle"},
|
||||
{0,NULL}
|
||||
{0,"Not_Reuse_Idle"},
|
||||
{1,"ReUse_Idle"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
/* Properties */
|
||||
h248_pkg_param_t h248_pkg_RI_props[] = {
|
||||
{ 0x0001, &hf_h248_pkg_RII, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_RII, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
/* Packet defenitions */
|
||||
static h248_package_t h248_pkg_RI = {
|
||||
0x0020,
|
||||
&hf_h248_pkg_RI,
|
||||
&ett_h248_pkg_RI,
|
||||
h248_pkg_RI_parameters,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
h248_pkg_RI_props, /* Properties */
|
||||
NULL, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
0x0020,
|
||||
&hf_h248_pkg_RI,
|
||||
&ett_h248_pkg_RI,
|
||||
h248_pkg_RI_parameters,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
h248_pkg_RI_props, /* Properties */
|
||||
NULL, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
};
|
||||
|
||||
|
||||
/* A.5 Bearer Reuse Idle Package */
|
||||
|
||||
/* A.6 Generic bearer connection package
|
||||
Package Name: GB
|
||||
Package ID: 0x0021
|
||||
Package Name: GB
|
||||
Package ID: 0x0021
|
||||
*/
|
||||
|
||||
static int hf_h248_pkg_GB= -1;
|
||||
|
@ -188,89 +188,89 @@ static gint ett_h248_pkg_GB_RelBNC= -1;
|
|||
static gint ett_h248_pkg_GB_BNCChange= -1;
|
||||
|
||||
static const value_string h248_pkg_GB_events_vals[] = {
|
||||
{ 0x0001, "BNCChange" },
|
||||
{ 0, NULL }
|
||||
{ 0x0001, "BNCChange" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
||||
static const value_string h248_pkg_GB_BNCChange_type_vals[] = {
|
||||
{0x01, "Bearer Established"},
|
||||
{0x02,"Bearer Modified"},
|
||||
{0x03,"Bearer Cut through"},
|
||||
{0x04,"Bearer Modification Failure"},
|
||||
{0,NULL}
|
||||
{0x01, "Bearer Established"},
|
||||
{0x02,"Bearer Modified"},
|
||||
{0x03,"Bearer Cut through"},
|
||||
{0x04,"Bearer Modification Failure"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_GB_BNCChange_params_vals[] = {
|
||||
{0x01, "Type"},
|
||||
{0,NULL}
|
||||
{0x01, "Type"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_param_t h248_pkg_GB_BNCChange_pars[] = {
|
||||
{ 0x0001, &hf_h248_pkg_GB_BNCChange_type, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_GB_BNCChange_type, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_evt_t h248_pkg_GB_events[] = {
|
||||
{ 0x0001, &hf_h248_pkg_GB_BNCChange, &ett_h248_pkg_GB_BNCChange, h248_pkg_GB_BNCChange_pars, h248_pkg_GB_BNCChange_params_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_GB_BNCChange, &ett_h248_pkg_GB_BNCChange, h248_pkg_GB_BNCChange_pars, h248_pkg_GB_BNCChange_params_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_GB_signals_vals[] = {
|
||||
{0x01, "Establish BNC"},
|
||||
{0x02,"Modify BNC"},
|
||||
{0,NULL}
|
||||
{0x01, "Establish BNC"},
|
||||
{0x02, "Modify BNC"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_GB_RelBNC_vals[] = {
|
||||
{0x01, "Generalcause"},
|
||||
{0x02,"Failurecause"},
|
||||
{0x03,"Reset"},
|
||||
{0,NULL}
|
||||
{0x01, "Generalcause"},
|
||||
{0x02, "Failurecause"},
|
||||
{0x03, "Reset"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_GB_RelBNC_Generalcause_vals[] = {
|
||||
{0x01, "Normal Release"},
|
||||
{0x02,"Unavailable Resources"},
|
||||
{0x03,"Failure, Temporary"},
|
||||
{0x04,"Failure, Permanent"},
|
||||
{0x05,"Interworking Error"},
|
||||
{0x06,"Unsupported"},
|
||||
{0,NULL}
|
||||
{0x01, "Normal Release"},
|
||||
{0x02, "Unavailable Resources"},
|
||||
{0x03, "Failure, Temporary"},
|
||||
{0x04, "Failure, Permanent"},
|
||||
{0x05, "Interworking Error"},
|
||||
{0x06, "Unsupported"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_param_t h248_pkg_GB_RelBNC_pars[] = {
|
||||
{ 0x0001, &hf_h248_pkg_GB_RelBNC_Generalcause, h248_param_ber_integer, &implicit },
|
||||
{ 0x0002, &hf_h248_pkg_GB_RelBNC_Failurecause, h248_param_ber_octetstring, &implicit },
|
||||
{ 0x0003, &hf_h248_pkg_GB_RelBNC_Reset, h248_param_ber_boolean, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_GB_RelBNC_Generalcause, h248_param_ber_integer, &implicit },
|
||||
{ 0x0002, &hf_h248_pkg_GB_RelBNC_Failurecause, h248_param_ber_octetstring, &implicit },
|
||||
{ 0x0003, &hf_h248_pkg_GB_RelBNC_Reset, h248_param_ber_boolean, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
|
||||
static const h248_pkg_sig_t h248_pkg_GB_signals[] = {
|
||||
{ 0x0001,&hf_h248_pkg_GB_EstBNC,&ett_h248_pkg_GB_EstBNC, NULL, NULL},
|
||||
{ 0x0002,&hf_h248_pkg_GB_ModBNC,&ett_h248_pkg_GB_ModBNC, NULL, NULL},
|
||||
{ 0x0003,&hf_h248_pkg_GB_RelBNC,&ett_h248_pkg_GB_RelBNC, h248_pkg_GB_RelBNC_pars, h248_pkg_GB_RelBNC_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
{ 0x0001,&hf_h248_pkg_GB_EstBNC,&ett_h248_pkg_GB_EstBNC, NULL, NULL},
|
||||
{ 0x0002,&hf_h248_pkg_GB_ModBNC,&ett_h248_pkg_GB_ModBNC, NULL, NULL},
|
||||
{ 0x0003,&hf_h248_pkg_GB_RelBNC,&ett_h248_pkg_GB_RelBNC, h248_pkg_GB_RelBNC_pars, h248_pkg_GB_RelBNC_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_GB_props_vals[] = {
|
||||
{ 0x0000, "Generic Bearer Connection Q.1950 Annex A (gb)" },
|
||||
{ 0, NULL }
|
||||
{ 0x0000, "Generic Bearer Connection Q.1950 Annex A (gb)" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static h248_package_t h248_pkg_GB = {
|
||||
0x0021,
|
||||
&hf_h248_pkg_GB,
|
||||
&ett_h248_pkg_GB,
|
||||
h248_pkg_GB_props_vals,
|
||||
h248_pkg_GB_signals_vals,
|
||||
h248_pkg_GB_events_vals,
|
||||
NULL,
|
||||
NULL, /* Properties */
|
||||
h248_pkg_GB_signals, /* signals */
|
||||
h248_pkg_GB_events, /* events */
|
||||
NULL /* statistics */
|
||||
0x0021,
|
||||
&hf_h248_pkg_GB,
|
||||
&ett_h248_pkg_GB,
|
||||
h248_pkg_GB_props_vals,
|
||||
h248_pkg_GB_signals_vals,
|
||||
h248_pkg_GB_events_vals,
|
||||
NULL,
|
||||
NULL, /* Properties */
|
||||
h248_pkg_GB_signals, /* signals */
|
||||
h248_pkg_GB_events, /* events */
|
||||
NULL /* statistics */
|
||||
};
|
||||
|
||||
|
||||
|
@ -287,93 +287,93 @@ static gint ett_h248_pkg_bt_tind = -1;
|
|||
static gint ett_h248_pkg_bt_bit= -1;
|
||||
|
||||
static void dissect_bt_tunneled_proto(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* i _U_, void* d _U_) {
|
||||
tvbuff_t* bctp_tvb = NULL;
|
||||
gint8 appclass;
|
||||
gboolean pc;
|
||||
gint32 tag;
|
||||
asn1_ctx_t asn1_ctx;
|
||||
tvbuff_t* bctp_tvb = NULL;
|
||||
gint8 appclass;
|
||||
gboolean pc;
|
||||
gint32 tag;
|
||||
asn1_ctx_t asn1_ctx;
|
||||
|
||||
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
|
||||
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
|
||||
|
||||
get_ber_identifier(tvb, 0, &appclass, &pc, &tag);
|
||||
get_ber_identifier(tvb, 0, &appclass, &pc, &tag);
|
||||
|
||||
/* XXX: is this enough to guess it? */
|
||||
if (tag==BER_UNI_TAG_OCTETSTRING) {
|
||||
dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, 0, hfid, &bctp_tvb);
|
||||
/* XXX: is this enough to guess it? */
|
||||
if (tag == BER_UNI_TAG_OCTETSTRING) {
|
||||
dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, 0, hfid, &bctp_tvb);
|
||||
|
||||
if (bctp_tvb) {
|
||||
call_dissector(bctp_dissector,bctp_tvb,pinfo,tree);
|
||||
}
|
||||
} else {
|
||||
proto_tree_add_item(tree,hfid,tvb,0,-1,ENC_NA);
|
||||
}
|
||||
if (bctp_tvb) {
|
||||
call_dissector(bctp_dissector,bctp_tvb,pinfo,tree);
|
||||
}
|
||||
} else {
|
||||
proto_tree_add_item(tree,hfid,tvb,0,-1,ENC_NA);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Properties */
|
||||
static const value_string h248_pkg_bt_props_vals[] = {
|
||||
{ 0, "Bearer Control Tunnelling Q.1950 Annex A" },
|
||||
{ 1, "Tunnelling Options"},
|
||||
{ 0, NULL}
|
||||
{ 0, "Bearer Control Tunnelling Q.1950 Annex A" },
|
||||
{ 1, "Tunnelling Options"},
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_bt_tunopt_vals[] = {
|
||||
{ 1, "1 (In the same message as the command response to the command which generated the bearer control tunnel)"},
|
||||
{ 2, "2 (Tunnel message at any time)"},
|
||||
{ 3, "NO"},
|
||||
{ 0, NULL}
|
||||
{ 1, "1 (In the same message as the command response to the command which generated the bearer control tunnel)"},
|
||||
{ 2, "2 (Tunnel message at any time)"},
|
||||
{ 3, "NO"},
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_param_t h248_pkg_bt_props[] = {
|
||||
{ 0x0001, &hf_h248_pkg_bt_tunopt, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_bt_tunopt, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
/* Events */
|
||||
static const value_string h248_pkg_bt_evt_vals[] = {
|
||||
{1,"Tunnel indication"},
|
||||
{0,NULL}
|
||||
{1,"Tunnel indication"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_bt_tind_vals[] = {
|
||||
{1,"Tunnel Indication"},
|
||||
{0,NULL}
|
||||
{1,"Tunnel Indication"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_param_t h248_pkg_bt_bit_params[] = {
|
||||
{ 0x0001, &hf_h248_pkg_bt_bit, dissect_bt_tunneled_proto, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_bt_bit, dissect_bt_tunneled_proto, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_bt_sigs_vals[] = {
|
||||
{1,"Bearer Information Tunnel"},
|
||||
{0,NULL}
|
||||
{1,"Bearer Information Tunnel"},
|
||||
{0,NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_evt_t h248_pkg_bt_events[] = {
|
||||
{ 0x0001, &hf_h248_pkg_bt_tind, &ett_h248_pkg_bt_tind, h248_pkg_bt_bit_params, h248_pkg_bt_tind_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_bt_tind, &ett_h248_pkg_bt_tind, h248_pkg_bt_bit_params, h248_pkg_bt_tind_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
static const h248_pkg_sig_t h248_pkg_bt_signals[] = {
|
||||
{ 0x0001,&hf_h248_pkg_bt_bit,&ett_h248_pkg_bt_bit, h248_pkg_bt_bit_params, h248_pkg_bt_tind_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
{ 0x0001,&hf_h248_pkg_bt_bit,&ett_h248_pkg_bt_bit, h248_pkg_bt_bit_params, h248_pkg_bt_tind_vals},
|
||||
{ 0, NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
/* Packet defenitions */
|
||||
static h248_package_t h248_pkg_bct = {
|
||||
0x0022,
|
||||
&hf_h248_pkg_bt,
|
||||
&ett_h248_pkg_bt,
|
||||
h248_pkg_bt_props_vals,
|
||||
h248_pkg_bt_sigs_vals,
|
||||
h248_pkg_bt_evt_vals,
|
||||
NULL,
|
||||
h248_pkg_bt_props, /* Properties */
|
||||
h248_pkg_bt_signals, /* signals */
|
||||
h248_pkg_bt_events, /* events */
|
||||
NULL /* statistics */
|
||||
0x0022,
|
||||
&hf_h248_pkg_bt,
|
||||
&ett_h248_pkg_bt,
|
||||
h248_pkg_bt_props_vals,
|
||||
h248_pkg_bt_sigs_vals,
|
||||
h248_pkg_bt_evt_vals,
|
||||
NULL,
|
||||
h248_pkg_bt_props, /* Properties */
|
||||
h248_pkg_bt_signals, /* signals */
|
||||
h248_pkg_bt_events, /* events */
|
||||
NULL /* statistics */
|
||||
};
|
||||
|
||||
/* A.8 Basic call progress tones generator with directionality */
|
||||
|
@ -394,239 +394,252 @@ static gint ett_h248_pkg_bcg = -1;
|
|||
static gint ett_h248_pkg_bcg_sig_bdt = -1;
|
||||
|
||||
static const value_string h248_pkg_bcg_sig_bdt_par_btd_vals[] = {
|
||||
{ 0x0001, "ext (External)" },
|
||||
{ 0x0002, "int (Internal)" },
|
||||
{ 0x0003, "both (Both)" },
|
||||
{0, NULL},
|
||||
{ 0x0001, "ext (External)" },
|
||||
{ 0x0002, "int (Internal)" },
|
||||
{ 0x0003, "both (Both)" },
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
static h248_pkg_param_t h248_pkg_h248_pkg_bcg_sig_bdt_params[] = {
|
||||
{ 0x0001, &hf_h248_pkg_bcg_sig_bdt_par_btd, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
{ 0x0001, &hf_h248_pkg_bcg_sig_bdt_par_btd, h248_param_ber_integer, &implicit },
|
||||
{ 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_bcg_signals_vals[] = {
|
||||
{ 0x0041, "Dial Tone (bdt)" },
|
||||
{ 0x0042, "Ringing Tone (brt)" },
|
||||
{ 0x0043, "Busy Tone (bbt)" },
|
||||
{ 0x0044, "Congestion Tone (bct)" },
|
||||
{ 0x0045, "Warning Tone (bwt)" },
|
||||
{ 0x0046, "Payphone Recognition Tone (bpt)" },
|
||||
{ 0x0047, "Call Waiting Tone (bcw)" },
|
||||
{ 0x0048, "Caller Waiting Tone (bcr)" },
|
||||
{ 0x0049, "Pay Tone (bpy)" },
|
||||
{ 0, NULL }
|
||||
{ 0x0041, "Dial Tone (bdt)" },
|
||||
{ 0x0042, "Ringing Tone (brt)" },
|
||||
{ 0x0043, "Busy Tone (bbt)" },
|
||||
{ 0x0044, "Congestion Tone (bct)" },
|
||||
{ 0x0045, "Warning Tone (bwt)" },
|
||||
{ 0x0046, "Payphone Recognition Tone (bpt)" },
|
||||
{ 0x0047, "Call Waiting Tone (bcw)" },
|
||||
{ 0x0048, "Caller Waiting Tone (bcr)" },
|
||||
{ 0x0049, "Pay Tone (bpy)" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static h248_pkg_sig_t h248_pkg_bcg_signals[] = {
|
||||
/* All the tones have the same parameters */
|
||||
{ 0x0040, &hf_h248_pkg_bcg_sig_bdt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0041, &hf_h248_pkg_bcg_sig_brt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0042, &hf_h248_pkg_bcg_sig_bbt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0043, &hf_h248_pkg_bcg_sig_bct, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0044, &hf_h248_pkg_bcg_sig_bsit, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0045, &hf_h248_pkg_bcg_sig_bwt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL},
|
||||
{ 0x0046, &hf_h248_pkg_bcg_sig_bpt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0047, &hf_h248_pkg_bcg_sig_bcw, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0048, &hf_h248_pkg_bcg_sig_bcr, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0049, &hf_h248_pkg_bcg_sig_bpy, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0, NULL, NULL, NULL,NULL}
|
||||
/* All the tones have the same parameters */
|
||||
{ 0x0040, &hf_h248_pkg_bcg_sig_bdt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0041, &hf_h248_pkg_bcg_sig_brt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0042, &hf_h248_pkg_bcg_sig_bbt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0043, &hf_h248_pkg_bcg_sig_bct, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0044, &hf_h248_pkg_bcg_sig_bsit, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0045, &hf_h248_pkg_bcg_sig_bwt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL},
|
||||
{ 0x0046, &hf_h248_pkg_bcg_sig_bpt, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0047, &hf_h248_pkg_bcg_sig_bcw, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0048, &hf_h248_pkg_bcg_sig_bcr, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0x0049, &hf_h248_pkg_bcg_sig_bpy, &ett_h248_pkg_bcg_sig_bdt, h248_pkg_h248_pkg_bcg_sig_bdt_params, NULL },
|
||||
{ 0, NULL, NULL, NULL,NULL}
|
||||
};
|
||||
|
||||
static const value_string h248_pkg_bcg_props_vals[] = {
|
||||
{ 0, "Basic Call Progress Tones Q.1950 Annex A" },
|
||||
{ 0, NULL }
|
||||
{ 0, "Basic Call Progress Tones Q.1950 Annex A" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* Packet defenitions */
|
||||
static h248_package_t h248_pkg_bcg = {
|
||||
0x0023,
|
||||
&hf_h248_pkg_bcg,
|
||||
&ett_h248_pkg_bcg,
|
||||
h248_pkg_bcg_props_vals,
|
||||
h248_pkg_bcg_signals_vals,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL, /* Properties */
|
||||
h248_pkg_bcg_signals, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
0x0023,
|
||||
&hf_h248_pkg_bcg,
|
||||
&ett_h248_pkg_bcg,
|
||||
h248_pkg_bcg_props_vals,
|
||||
h248_pkg_bcg_signals_vals,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL, /* Properties */
|
||||
h248_pkg_bcg_signals, /* signals */
|
||||
NULL, /* events */
|
||||
NULL /* statistics */
|
||||
};
|
||||
|
||||
|
||||
void proto_reg_handoff_q1950(void) {
|
||||
bctp_dissector = find_dissector("bctp");
|
||||
bctp_dissector = find_dissector("bctp");
|
||||
|
||||
}
|
||||
|
||||
/* Register dissector */
|
||||
void proto_register_q1950(void) {
|
||||
static hf_register_info hf[] = {
|
||||
/* A.3 Bearer characteristics package */
|
||||
{ &hf_h248_pkg_BCP,
|
||||
{ "BCP (Bearer characteristics package)", "h248.BCP",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_BCP_BNCChar,
|
||||
{ "BNCChar (BNC Characteristics)", "h248.bcp.bncchar",
|
||||
FT_UINT32, BASE_HEX|BASE_EXT_STRING, &bearer_network_connection_characteristics_vals_ext, 0, "BNC Characteristics", HFILL }
|
||||
},
|
||||
static hf_register_info hf[] = {
|
||||
/* A.3 Bearer characteristics package */
|
||||
{ &hf_h248_pkg_BCP,
|
||||
{ "BCP (Bearer characteristics package)", "h248.BCP",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_BCP_BNCChar,
|
||||
{ "BNCChar (BNC Characteristics)", "h248.bcp.bncchar",
|
||||
FT_UINT32, BASE_HEX|BASE_EXT_STRING, &bearer_network_connection_characteristics_vals_ext, 0, "BNC Characteristics", HFILL }
|
||||
},
|
||||
|
||||
/* A.4 Bearer Network connection cut-through package */
|
||||
{ &hf_h248_pkg_BNCCT,
|
||||
{ "BNCCT (Bearer network connection cut-through package)", "h248.BNCCT",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_BNCCT_prop,
|
||||
{ "Bearer network connection cut-through capability", "h248.bcp.bncct",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_BNCCT_prop_vals), 0, "This property allows the MGC to ask the MG when the cut through of a bearer will occur, early or late.", HFILL }
|
||||
},
|
||||
/* A.4 Bearer Network connection cut-through package */
|
||||
{ &hf_h248_pkg_BNCCT,
|
||||
{ "BNCCT (Bearer network connection cut-through package)", "h248.BNCCT",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_BNCCT_prop,
|
||||
{ "Bearer network connection cut-through capability", "h248.bcp.bncct",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_BNCCT_prop_vals), 0, "This property allows the MGC to ask the MG when the cut through of a bearer will occur, early or late.", HFILL }
|
||||
},
|
||||
|
||||
{ &hf_h248_pkg_GB,
|
||||
{ "GB (Generic bearer connection)", "h248.GB",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_BNCChange,
|
||||
{ "BNCChange", "h248.GB.BNCChang",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This event occurs whenever a change to a Bearer Network connection occurs", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_BNCChange_type,
|
||||
{ "Type", "h248.GB.BNCChang.Type",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_GB_BNCChange_type_vals), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_EstBNC,
|
||||
{ "Type", "h248.GB.BNCChang.EstBNC",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This signal triggers the bearer control function to send bearer establishment signalling", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_ModBNC,
|
||||
{ "Type", "h248.GB.BNCChang.Type",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This signal triggers the bearer control function to send bearer modification", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC,
|
||||
{ "RelBNC", "h248.GB.BNCChang.RelBNC",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This signal triggers the bearer control function to send bearer release", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC_Generalcause,
|
||||
{ "Generalcause", "h248.GB.BNCChang.RelBNC.Generalcause",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_GB_RelBNC_Generalcause_vals), 0, "This indicates the general reason for the Release", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC_Failurecause,
|
||||
{ "Failurecause", "h248.GB.BNCChang.RelBNC.Failurecause",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "The Release Cause is the value generated by the Released equipment", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC_Reset,
|
||||
{ "RelBNC", "h248.GB.BNCChang.RelBNC",
|
||||
FT_BOOLEAN, BASE_NONE, NULL, 0x0, "This signal triggers the bearer control function to send bearer release", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB,
|
||||
{ "GB (Generic bearer connection)", "h248.GB",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_BNCChange,
|
||||
{ "BNCChange", "h248.GB.BNCChang",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This event occurs whenever a change to a Bearer Network connection occurs", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_BNCChange_type,
|
||||
{ "Type", "h248.GB.BNCChang.Type",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_GB_BNCChange_type_vals), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_EstBNC,
|
||||
{ "Type", "h248.GB.BNCChang.EstBNC",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This signal triggers the bearer control function to send bearer establishment signalling", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_ModBNC,
|
||||
{ "Type", "h248.GB.BNCChang.Type",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This signal triggers the bearer control function to send bearer modification", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC,
|
||||
{ "RelBNC", "h248.GB.BNCChang.RelBNC",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "This signal triggers the bearer control function to send bearer release", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC_Generalcause,
|
||||
{ "Generalcause", "h248.GB.BNCChang.RelBNC.Generalcause",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_GB_RelBNC_Generalcause_vals), 0, "This indicates the general reason for the Release", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC_Failurecause,
|
||||
{ "Failurecause", "h248.GB.BNCChang.RelBNC.Failurecause",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, "The Release Cause is the value generated by the Released equipment", HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_GB_RelBNC_Reset,
|
||||
{ "RelBNC", "h248.GB.BNCChang.RelBNC",
|
||||
FT_BOOLEAN, BASE_NONE, NULL, 0x0, "This signal triggers the bearer control function to send bearer release", HFILL }
|
||||
},
|
||||
|
||||
/* A.5 Bearer Network connection cut-through package */
|
||||
{ &hf_h248_pkg_RI,
|
||||
{ "RI (Reuse idle package)", "h248.RI",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_RII,
|
||||
{ "Reuse Idle Indication", "h248.bcp.rii",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_RII_vals), 0, "This property indicates that the provided bearer network connection relates to an Idle Bearer.", HFILL }
|
||||
},
|
||||
/* A.5 Bearer Network connection cut-through package */
|
||||
{ &hf_h248_pkg_RI,
|
||||
{ "RI (Reuse idle package)", "h248.RI",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_RII,
|
||||
{ "Reuse Idle Indication", "h248.bcp.rii",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_RII_vals), 0, "This property indicates that the provided bearer network connection relates to an Idle Bearer.", HFILL }
|
||||
},
|
||||
|
||||
/* A.7 Bearer control tunnelling package */
|
||||
{ &hf_h248_pkg_bt,
|
||||
{ "BT (Bearer control Tunneling)", "h248.BT",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bt_tunopt,
|
||||
{ "Tunnelling Options", "h248.BT.TunOpt",
|
||||
FT_UINT32, BASE_DEC, VALS(h248_pkg_bt_tunopt_vals), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bt_tind,
|
||||
{ "tind (Tunnel INDication)", "h248.BT.TIND",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bt_bit,
|
||||
{ "Bearer Information Transport", "h248.BT.BIT",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
/* A.7 Bearer control tunnelling package */
|
||||
{ &hf_h248_pkg_bt,
|
||||
{ "BT (Bearer control Tunneling)", "h248.BT",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bt_tunopt,
|
||||
{ "Tunnelling Options", "h248.BT.TunOpt",
|
||||
FT_UINT32, BASE_DEC, VALS(h248_pkg_bt_tunopt_vals), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bt_tind,
|
||||
{ "tind (Tunnel INDication)", "h248.BT.TIND",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bt_bit,
|
||||
{ "Bearer Information Transport", "h248.BT.BIT",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
|
||||
|
||||
/* A.8 Basic call progress tones generator with directionality */
|
||||
{ &hf_h248_pkg_bcg,
|
||||
{ "bcg (Basic call progress tones generator with directionality)", "h248.bcg",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bdt_par_btd,
|
||||
{ "btd (Tone Direction)", "h248.bcp.btd",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_bcg_sig_bdt_par_btd_vals), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bdt,
|
||||
{ "bdt (Dial Tone)", "h248.bcg.bdt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_brt,
|
||||
{ "brt (Ringing tone)", "h248.bcg.brt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bbt,
|
||||
{ "bbt (Busy tone)", "h248.bcg.bbt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bct,
|
||||
{ "bct (Congestion tone)", "h248.bcg.bct",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bsit,
|
||||
{ "bsit (Special information tone)", "h248.bcg.bsit",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bwt,
|
||||
{ "bwt (Warning tone)", "h248.bcg.bwt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bpt,
|
||||
{ "bpt (Payphone recognition tone)", "h248.bcg.bpt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bcw,
|
||||
{ "bcw (Call waiting tone)", "h248.bcg.bcw",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bcr,
|
||||
{ "bcr (Call ringing tone)", "h248.bcg.bcr",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bpy,
|
||||
{ "bpy (Pay tone)", "h248.bcg.bpy",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
};
|
||||
/* A.8 Basic call progress tones generator with directionality */
|
||||
{ &hf_h248_pkg_bcg,
|
||||
{ "bcg (Basic call progress tones generator with directionality)", "h248.bcg",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bdt_par_btd,
|
||||
{ "btd (Tone Direction)", "h248.bcp.btd",
|
||||
FT_UINT32, BASE_HEX, VALS(h248_pkg_bcg_sig_bdt_par_btd_vals), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bdt,
|
||||
{ "bdt (Dial Tone)", "h248.bcg.bdt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_brt,
|
||||
{ "brt (Ringing tone)", "h248.bcg.brt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bbt,
|
||||
{ "bbt (Busy tone)", "h248.bcg.bbt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bct,
|
||||
{ "bct (Congestion tone)", "h248.bcg.bct",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bsit,
|
||||
{ "bsit (Special information tone)", "h248.bcg.bsit",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bwt,
|
||||
{ "bwt (Warning tone)", "h248.bcg.bwt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bpt,
|
||||
{ "bpt (Payphone recognition tone)", "h248.bcg.bpt",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bcw,
|
||||
{ "bcw (Call waiting tone)", "h248.bcg.bcw",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bcr,
|
||||
{ "bcr (Call ringing tone)", "h248.bcg.bcr",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_h248_pkg_bcg_sig_bpy,
|
||||
{ "bpy (Pay tone)", "h248.bcg.bpy",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
};
|
||||
|
||||
static gint *ett[] = {
|
||||
&ett_h248_pkg_BCP,
|
||||
&ett_h248_pkg_bt,
|
||||
&ett_h248_pkg_bt_tind,
|
||||
&ett_h248_pkg_bt_bit,
|
||||
&ett_h248_pkg_bcg,
|
||||
&ett_h248_pkg_bcg_sig_bdt,
|
||||
&ett_h248_pkg_BNCCT,
|
||||
&ett_h248_pkg_RI,
|
||||
&ett_h248_pkg_GB,
|
||||
&ett_h248_pkg_GB_EstBNC,
|
||||
&ett_h248_pkg_GB_ModBNC,
|
||||
&ett_h248_pkg_GB_RelBNC,
|
||||
&ett_h248_pkg_GB_BNCChange
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_h248_pkg_BCP,
|
||||
&ett_h248_pkg_bt,
|
||||
&ett_h248_pkg_bt_tind,
|
||||
&ett_h248_pkg_bt_bit,
|
||||
&ett_h248_pkg_bcg,
|
||||
&ett_h248_pkg_bcg_sig_bdt,
|
||||
&ett_h248_pkg_BNCCT,
|
||||
&ett_h248_pkg_RI,
|
||||
&ett_h248_pkg_GB,
|
||||
&ett_h248_pkg_GB_EstBNC,
|
||||
&ett_h248_pkg_GB_ModBNC,
|
||||
&ett_h248_pkg_GB_RelBNC,
|
||||
&ett_h248_pkg_GB_BNCChange
|
||||
};
|
||||
|
||||
proto_q1950 = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
proto_q1950 = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
|
||||
proto_register_field_array(proto_q1950, hf, array_length(hf));
|
||||
proto_register_field_array(proto_q1950, hf, array_length(hf));
|
||||
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
/* Register the packages */
|
||||
h248_register_package(&h248_pkg_BCP,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_BNCCT,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_RI,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_GB,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_bcg,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_bct,REPLACE_PKG);
|
||||
/* Register the packages */
|
||||
h248_register_package(&h248_pkg_BCP,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_BNCCT,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_RI,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_GB,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_bcg,REPLACE_PKG);
|
||||
h248_register_package(&h248_pkg_bct,REPLACE_PKG);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
||||
* :indentSize=4:tabSize=8:noTabs=true:
|
||||
*/
|
||||
|
|
|
@ -644,64 +644,64 @@ dissect_hclnfsd_get_printq_reply(tvbuff_t *tvb, int offset, packet_info *pinfo _
|
|||
/* NULL as function pointer means: take the generic one. */
|
||||
|
||||
static const vsff hclnfsd1_proc[] = {
|
||||
{ HCLNFSDPROC_NULL, "NULL",
|
||||
NULL, NULL },
|
||||
{ HCLNFSDPROC_SPOOL_INQUIRE, "SPOOL_INQUIRE",
|
||||
dissect_hclnfsd_spool_inquire_call, NULL },
|
||||
{ HCLNFSDPROC_SPOOL_FILE, "SPOOL_FILE",
|
||||
dissect_hclnfsd_spool_file_call, NULL },
|
||||
{ HCLNFSDPROC_AUTHORIZE, "AUTHORIZE",
|
||||
dissect_hclnfsd_authorize_call, dissect_hclnfsd_authorize_reply },
|
||||
{ HCLNFSDPROC_GRP_NAME_TO_NUMB, "GRP_NAME_TO_NUMB",
|
||||
dissect_hclnfsd_grp_name_to_numb_call, dissect_hclnfsd_grp_name_to_numb_reply },
|
||||
{ HCLNFSDPROC_GRP_TO_NUMBER, "GRP_TO_NUMBER",
|
||||
dissect_hclnfsd_grp_to_number_call, dissect_hclnfsd_grp_to_number_reply },
|
||||
{ HCLNFSDPROC_RETURN_HOST, "RETURN_HOST",
|
||||
dissect_hclnfsd_return_host_call, dissect_hclnfsd_return_host_reply },
|
||||
{ HCLNFSDPROC_UID_TO_NAME, "UID_TO_NAME",
|
||||
dissect_hclnfsd_uid_to_name_call, dissect_hclnfsd_uid_to_name_reply },
|
||||
{ HCLNFSDPROC_NAME_TO_UID, "NAME_TO_UID",
|
||||
dissect_hclnfsd_name_to_uid_call, dissect_hclnfsd_name_to_uid_reply },
|
||||
{ HCLNFSDPROC_SHARE, "SHARE",
|
||||
dissect_hclnfsd_share_call, dissect_hclnfsd_share_reply },
|
||||
{ HCLNFSDPROC_UNSHARE, "UNSHARE",
|
||||
dissect_hclnfsd_unshare_call, dissect_hclnfsd_unshare_reply },
|
||||
{ HCLNFSDPROC_LOCK, "LOCK",
|
||||
dissect_hclnfsd_lock_call, dissect_hclnfsd_lock_reply },
|
||||
{ HCLNFSDPROC_REMOVE, "REMOVE",
|
||||
dissect_hclnfsd_remove_call, NULL },
|
||||
{ HCLNFSDPROC_UNLOCK, "UNLOCK",
|
||||
dissect_hclnfsd_unlock_call, dissect_hclnfsd_unlock_reply },
|
||||
{ HCLNFSDPROC_GET_PRINTERS, "GET_PRINTERS",
|
||||
NULL, dissect_hclnfsd_get_printers_reply },
|
||||
{ HCLNFSDPROC_GET_PRINTQ, "GET_PRINTQ",
|
||||
dissect_hclnfsd_get_printq_call, dissect_hclnfsd_get_printq_reply },
|
||||
{ HCLNFSDPROC_CANCEL_PRJOB, "CANCEL_PRJOB",
|
||||
NULL, NULL },
|
||||
{ HCLNFSDPROC_ZAP_LOCKS, "ZAP_LOCKS",
|
||||
NULL, NULL },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
{ HCLNFSDPROC_NULL, "NULL",
|
||||
NULL, NULL },
|
||||
{ HCLNFSDPROC_SPOOL_INQUIRE, "SPOOL_INQUIRE",
|
||||
dissect_hclnfsd_spool_inquire_call, NULL },
|
||||
{ HCLNFSDPROC_SPOOL_FILE, "SPOOL_FILE",
|
||||
dissect_hclnfsd_spool_file_call, NULL },
|
||||
{ HCLNFSDPROC_AUTHORIZE, "AUTHORIZE",
|
||||
dissect_hclnfsd_authorize_call, dissect_hclnfsd_authorize_reply },
|
||||
{ HCLNFSDPROC_GRP_NAME_TO_NUMB, "GRP_NAME_TO_NUMB",
|
||||
dissect_hclnfsd_grp_name_to_numb_call, dissect_hclnfsd_grp_name_to_numb_reply },
|
||||
{ HCLNFSDPROC_GRP_TO_NUMBER, "GRP_TO_NUMBER",
|
||||
dissect_hclnfsd_grp_to_number_call, dissect_hclnfsd_grp_to_number_reply },
|
||||
{ HCLNFSDPROC_RETURN_HOST, "RETURN_HOST",
|
||||
dissect_hclnfsd_return_host_call, dissect_hclnfsd_return_host_reply },
|
||||
{ HCLNFSDPROC_UID_TO_NAME, "UID_TO_NAME",
|
||||
dissect_hclnfsd_uid_to_name_call, dissect_hclnfsd_uid_to_name_reply },
|
||||
{ HCLNFSDPROC_NAME_TO_UID, "NAME_TO_UID",
|
||||
dissect_hclnfsd_name_to_uid_call, dissect_hclnfsd_name_to_uid_reply },
|
||||
{ HCLNFSDPROC_SHARE, "SHARE",
|
||||
dissect_hclnfsd_share_call, dissect_hclnfsd_share_reply },
|
||||
{ HCLNFSDPROC_UNSHARE, "UNSHARE",
|
||||
dissect_hclnfsd_unshare_call, dissect_hclnfsd_unshare_reply },
|
||||
{ HCLNFSDPROC_LOCK, "LOCK",
|
||||
dissect_hclnfsd_lock_call, dissect_hclnfsd_lock_reply },
|
||||
{ HCLNFSDPROC_REMOVE, "REMOVE",
|
||||
dissect_hclnfsd_remove_call, NULL },
|
||||
{ HCLNFSDPROC_UNLOCK, "UNLOCK",
|
||||
dissect_hclnfsd_unlock_call, dissect_hclnfsd_unlock_reply },
|
||||
{ HCLNFSDPROC_GET_PRINTERS, "GET_PRINTERS",
|
||||
NULL, dissect_hclnfsd_get_printers_reply },
|
||||
{ HCLNFSDPROC_GET_PRINTQ, "GET_PRINTQ",
|
||||
dissect_hclnfsd_get_printq_call, dissect_hclnfsd_get_printq_reply },
|
||||
{ HCLNFSDPROC_CANCEL_PRJOB, "CANCEL_PRJOB",
|
||||
NULL, NULL },
|
||||
{ HCLNFSDPROC_ZAP_LOCKS, "ZAP_LOCKS",
|
||||
NULL, NULL },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
};
|
||||
static const value_string hclnfsd1_proc_vals[] = {
|
||||
{ HCLNFSDPROC_NULL, "NULL" },
|
||||
{ HCLNFSDPROC_SPOOL_INQUIRE, "SPOOL_INQUIRE" },
|
||||
{ HCLNFSDPROC_SPOOL_FILE, "SPOOL_FILE" },
|
||||
{ HCLNFSDPROC_AUTHORIZE, "AUTHORIZE" },
|
||||
{ HCLNFSDPROC_GRP_NAME_TO_NUMB, "GRP_NAME_TO_NUMB" },
|
||||
{ HCLNFSDPROC_GRP_TO_NUMBER, "GRP_TO_NUMBER" },
|
||||
{ HCLNFSDPROC_RETURN_HOST, "RETURN_HOST" },
|
||||
{ HCLNFSDPROC_UID_TO_NAME, "UID_TO_NAME" },
|
||||
{ HCLNFSDPROC_NAME_TO_UID, "NAME_TO_UID" },
|
||||
{ HCLNFSDPROC_SHARE, "SHARE" },
|
||||
{ HCLNFSDPROC_UNSHARE, "UNSHARE" },
|
||||
{ HCLNFSDPROC_LOCK, "LOCK" },
|
||||
{ HCLNFSDPROC_REMOVE, "REMOVE" },
|
||||
{ HCLNFSDPROC_UNLOCK, "UNLOCK" },
|
||||
{ HCLNFSDPROC_GET_PRINTERS, "GET_PRINTERS" },
|
||||
{ HCLNFSDPROC_GET_PRINTQ, "GET_PRINTQ" },
|
||||
{ HCLNFSDPROC_CANCEL_PRJOB, "CANCEL_PRJOB" },
|
||||
{ HCLNFSDPROC_ZAP_LOCKS, "ZAP_LOCKS" },
|
||||
{ 0, NULL }
|
||||
{ HCLNFSDPROC_NULL, "NULL" },
|
||||
{ HCLNFSDPROC_SPOOL_INQUIRE, "SPOOL_INQUIRE" },
|
||||
{ HCLNFSDPROC_SPOOL_FILE, "SPOOL_FILE" },
|
||||
{ HCLNFSDPROC_AUTHORIZE, "AUTHORIZE" },
|
||||
{ HCLNFSDPROC_GRP_NAME_TO_NUMB, "GRP_NAME_TO_NUMB" },
|
||||
{ HCLNFSDPROC_GRP_TO_NUMBER, "GRP_TO_NUMBER" },
|
||||
{ HCLNFSDPROC_RETURN_HOST, "RETURN_HOST" },
|
||||
{ HCLNFSDPROC_UID_TO_NAME, "UID_TO_NAME" },
|
||||
{ HCLNFSDPROC_NAME_TO_UID, "NAME_TO_UID" },
|
||||
{ HCLNFSDPROC_SHARE, "SHARE" },
|
||||
{ HCLNFSDPROC_UNSHARE, "UNSHARE" },
|
||||
{ HCLNFSDPROC_LOCK, "LOCK" },
|
||||
{ HCLNFSDPROC_REMOVE, "REMOVE" },
|
||||
{ HCLNFSDPROC_UNLOCK, "UNLOCK" },
|
||||
{ HCLNFSDPROC_GET_PRINTERS, "GET_PRINTERS" },
|
||||
{ HCLNFSDPROC_GET_PRINTQ, "GET_PRINTQ" },
|
||||
{ HCLNFSDPROC_CANCEL_PRJOB, "CANCEL_PRJOB" },
|
||||
{ HCLNFSDPROC_ZAP_LOCKS, "ZAP_LOCKS" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* end of hclnfsd version 1 */
|
||||
|
||||
|
@ -889,3 +889,16 @@ proto_reg_handoff_hclnfsd(void)
|
|||
/* Register the procedure tables */
|
||||
rpc_init_proc_table(HCLNFSD_PROGRAM, 1, hclnfsd1_proc, hf_hclnfsd_procedure_v1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -190,21 +190,21 @@ static gint ett_iwarp_rdma_term_ctrl = -1;
|
|||
static gint ett_iwarp_rdma_term_hdrct = -1;
|
||||
|
||||
static const value_string rdmap_messages[] = {
|
||||
{ RDMA_WRITE, "Write" },
|
||||
{ RDMA_READ_REQUEST, "Read Request" },
|
||||
{ RDMA_READ_RESPONSE, "Read Response" },
|
||||
{ RDMA_SEND, "Send" },
|
||||
{ RDMA_SEND_INVALIDATE, "Send with Invalidate" },
|
||||
{ RDMA_SEND_SE, "Send with SE" },
|
||||
{ RDMA_WRITE, "Write" },
|
||||
{ RDMA_READ_REQUEST, "Read Request" },
|
||||
{ RDMA_READ_RESPONSE, "Read Response" },
|
||||
{ RDMA_SEND, "Send" },
|
||||
{ RDMA_SEND_INVALIDATE, "Send with Invalidate" },
|
||||
{ RDMA_SEND_SE, "Send with SE" },
|
||||
{ RDMA_SEND_SE_INVALIDATE, "Send with SE and Invalidate" },
|
||||
{ RDMA_TERMINATE, "Terminate" },
|
||||
{ RDMA_TERMINATE, "Terminate" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string layer_names[] = {
|
||||
{ IWARP_LAYER_RDMA, "RDMA" },
|
||||
{ IWARP_LAYER_DDP, "DDP" },
|
||||
{ IWARP_LAYER_LLP, "LLP" },
|
||||
{ IWARP_LAYER_DDP, "DDP" },
|
||||
{ IWARP_LAYER_LLP, "LLP" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -904,3 +904,16 @@ proto_reg_handoff_iwarp_ddp_rdmap(void)
|
|||
{
|
||||
data_handle = find_dissector("data");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -984,3 +984,16 @@ proto_reg_handoff_mpa(void)
|
|||
heur_dissector_add("tcp", dissect_iwarp_mpa, proto_iwarp_mpa);
|
||||
ddp_rdmap_handle = find_dissector("iwarp_ddp_rdmap");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -590,110 +590,110 @@ proto_reg_handoff_lapd(void);
|
|||
void
|
||||
proto_register_lapd(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
static hf_register_info hf[] = {
|
||||
|
||||
{ &hf_lapd_direction,
|
||||
{ "Direction", "lapd.direction", FT_UINT8, BASE_DEC, VALS(lapd_direction_vals), 0x0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_lapd_direction,
|
||||
{ "Direction", "lapd.direction", FT_UINT8, BASE_DEC, VALS(lapd_direction_vals), 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_address,
|
||||
{ "Address Field", "lapd.address", FT_UINT16, BASE_HEX, NULL, 0x0,
|
||||
"Address", HFILL }},
|
||||
{ &hf_lapd_address,
|
||||
{ "Address Field", "lapd.address", FT_UINT16, BASE_HEX, NULL, 0x0,
|
||||
"Address", HFILL }},
|
||||
|
||||
{ &hf_lapd_sapi,
|
||||
{ "SAPI", "lapd.sapi", FT_UINT16, BASE_DEC, VALS(lapd_sapi_vals), LAPD_SAPI,
|
||||
"Service Access Point Identifier", HFILL }},
|
||||
{ &hf_lapd_sapi,
|
||||
{ "SAPI", "lapd.sapi", FT_UINT16, BASE_DEC, VALS(lapd_sapi_vals), LAPD_SAPI,
|
||||
"Service Access Point Identifier", HFILL }},
|
||||
|
||||
{ &hf_lapd_gsm_sapi,
|
||||
{ "SAPI", "lapd.sapi", FT_UINT16, BASE_DEC, VALS(lapd_gsm_sapi_vals), LAPD_SAPI,
|
||||
"Service Access Point Identifier", HFILL }},
|
||||
{ &hf_lapd_gsm_sapi,
|
||||
{ "SAPI", "lapd.sapi", FT_UINT16, BASE_DEC, VALS(lapd_gsm_sapi_vals), LAPD_SAPI,
|
||||
"Service Access Point Identifier", HFILL }},
|
||||
|
||||
{ &hf_lapd_cr,
|
||||
{ "C/R", "lapd.cr", FT_UINT16, BASE_DEC, NULL, LAPD_CR,
|
||||
"Command/Response bit", HFILL }},
|
||||
{ &hf_lapd_cr,
|
||||
{ "C/R", "lapd.cr", FT_UINT16, BASE_DEC, NULL, LAPD_CR,
|
||||
"Command/Response bit", HFILL }},
|
||||
|
||||
{ &hf_lapd_ea1,
|
||||
{ "EA1", "lapd.ea1", FT_UINT16, BASE_DEC, NULL, LAPD_EA1,
|
||||
"First Address Extension bit", HFILL }},
|
||||
{ &hf_lapd_ea1,
|
||||
{ "EA1", "lapd.ea1", FT_UINT16, BASE_DEC, NULL, LAPD_EA1,
|
||||
"First Address Extension bit", HFILL }},
|
||||
|
||||
{ &hf_lapd_tei,
|
||||
{ "TEI", "lapd.tei", FT_UINT16, BASE_DEC, NULL, LAPD_TEI,
|
||||
"Terminal Endpoint Identifier", HFILL }},
|
||||
{ &hf_lapd_tei,
|
||||
{ "TEI", "lapd.tei", FT_UINT16, BASE_DEC, NULL, LAPD_TEI,
|
||||
"Terminal Endpoint Identifier", HFILL }},
|
||||
|
||||
{ &hf_lapd_ea2,
|
||||
{ "EA2", "lapd.ea2", FT_UINT16, BASE_DEC, NULL, LAPD_EA2,
|
||||
"Second Address Extension bit", HFILL }},
|
||||
{ &hf_lapd_ea2,
|
||||
{ "EA2", "lapd.ea2", FT_UINT16, BASE_DEC, NULL, LAPD_EA2,
|
||||
"Second Address Extension bit", HFILL }},
|
||||
|
||||
{ &hf_lapd_control,
|
||||
{ "Control Field", "lapd.control", FT_UINT16, BASE_HEX, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_lapd_control,
|
||||
{ "Control Field", "lapd.control", FT_UINT16, BASE_HEX, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_n_r,
|
||||
{ "N(R)", "lapd.control.n_r", FT_UINT16, BASE_DEC,
|
||||
NULL, XDLC_N_R_EXT_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_n_r,
|
||||
{ "N(R)", "lapd.control.n_r", FT_UINT16, BASE_DEC,
|
||||
NULL, XDLC_N_R_EXT_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_n_s,
|
||||
{ "N(S)", "lapd.control.n_s", FT_UINT16, BASE_DEC,
|
||||
NULL, XDLC_N_S_EXT_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_n_s,
|
||||
{ "N(S)", "lapd.control.n_s", FT_UINT16, BASE_DEC,
|
||||
NULL, XDLC_N_S_EXT_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_p,
|
||||
{ "Poll", "lapd.control.p", FT_BOOLEAN, 8,
|
||||
TFS(&tfs_set_notset), XDLC_P_F, NULL, HFILL }},
|
||||
{ &hf_lapd_p,
|
||||
{ "Poll", "lapd.control.p", FT_BOOLEAN, 8,
|
||||
TFS(&tfs_set_notset), XDLC_P_F, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_p_ext,
|
||||
{ "Poll", "lapd.control.p", FT_BOOLEAN, 16,
|
||||
TFS(&tfs_set_notset), XDLC_P_F_EXT, NULL, HFILL }},
|
||||
{ &hf_lapd_p_ext,
|
||||
{ "Poll", "lapd.control.p", FT_BOOLEAN, 16,
|
||||
TFS(&tfs_set_notset), XDLC_P_F_EXT, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_f,
|
||||
{ "Final", "lapd.control.f", FT_BOOLEAN, 8,
|
||||
TFS(&tfs_set_notset), XDLC_P_F, NULL, HFILL }},
|
||||
{ &hf_lapd_f,
|
||||
{ "Final", "lapd.control.f", FT_BOOLEAN, 8,
|
||||
TFS(&tfs_set_notset), XDLC_P_F, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_f_ext,
|
||||
{ "Final", "lapd.control.f", FT_BOOLEAN, 16,
|
||||
TFS(&tfs_set_notset), XDLC_P_F_EXT, NULL, HFILL }},
|
||||
{ &hf_lapd_f_ext,
|
||||
{ "Final", "lapd.control.f", FT_BOOLEAN, 16,
|
||||
TFS(&tfs_set_notset), XDLC_P_F_EXT, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_s_ftype,
|
||||
{ "Supervisory frame type", "lapd.control.s_ftype", FT_UINT16, BASE_HEX,
|
||||
VALS(stype_vals), XDLC_S_FTYPE_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_s_ftype,
|
||||
{ "Supervisory frame type", "lapd.control.s_ftype", FT_UINT16, BASE_HEX,
|
||||
VALS(stype_vals), XDLC_S_FTYPE_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_u_modifier_cmd,
|
||||
{ "Command", "lapd.control.u_modifier_cmd", FT_UINT8, BASE_HEX,
|
||||
VALS(modifier_vals_cmd), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_u_modifier_cmd,
|
||||
{ "Command", "lapd.control.u_modifier_cmd", FT_UINT8, BASE_HEX,
|
||||
VALS(modifier_vals_cmd), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_u_modifier_resp,
|
||||
{ "Response", "lapd.control.u_modifier_resp", FT_UINT8, BASE_HEX,
|
||||
VALS(modifier_vals_resp), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_u_modifier_resp,
|
||||
{ "Response", "lapd.control.u_modifier_resp", FT_UINT8, BASE_HEX,
|
||||
VALS(modifier_vals_resp), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_ftype_i,
|
||||
{ "Frame type", "lapd.control.ftype", FT_UINT16, BASE_HEX,
|
||||
VALS(ftype_vals), XDLC_I_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_ftype_i,
|
||||
{ "Frame type", "lapd.control.ftype", FT_UINT16, BASE_HEX,
|
||||
VALS(ftype_vals), XDLC_I_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_ftype_s_u,
|
||||
{ "Frame type", "lapd.control.ftype", FT_UINT8, BASE_HEX,
|
||||
VALS(ftype_vals), XDLC_S_U_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_ftype_s_u,
|
||||
{ "Frame type", "lapd.control.ftype", FT_UINT8, BASE_HEX,
|
||||
VALS(ftype_vals), XDLC_S_U_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_ftype_s_u_ext,
|
||||
{ "Frame type", "lapd.control.ftype", FT_UINT16, BASE_HEX,
|
||||
VALS(ftype_vals), XDLC_S_U_MASK, NULL, HFILL }},
|
||||
{ &hf_lapd_ftype_s_u_ext,
|
||||
{ "Frame type", "lapd.control.ftype", FT_UINT16, BASE_HEX,
|
||||
VALS(ftype_vals), XDLC_S_U_MASK, NULL, HFILL }},
|
||||
|
||||
{ &hf_lapd_checksum,
|
||||
{ "Checksum", "lapd.checksum", FT_UINT16, BASE_HEX,
|
||||
NULL, 0x0, "Details at: http://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html", HFILL }},
|
||||
{ &hf_lapd_checksum,
|
||||
{ "Checksum", "lapd.checksum", FT_UINT16, BASE_HEX,
|
||||
NULL, 0x0, "Details at: http://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html", HFILL }},
|
||||
|
||||
{ &hf_lapd_checksum_good,
|
||||
{ "Good Checksum", "lapd.checksum_good", FT_BOOLEAN, BASE_NONE,
|
||||
NULL, 0x0, "True: checksum matches packet content; False: doesn't match content or not checked", HFILL }},
|
||||
{ &hf_lapd_checksum_good,
|
||||
{ "Good Checksum", "lapd.checksum_good", FT_BOOLEAN, BASE_NONE,
|
||||
NULL, 0x0, "True: checksum matches packet content; False: doesn't match content or not checked", HFILL }},
|
||||
|
||||
{ &hf_lapd_checksum_bad,
|
||||
{ "Bad Checksum", "lapd.checksum_bad", FT_BOOLEAN, BASE_NONE,
|
||||
NULL, 0x0, "True: checksum doesn't match packet content; False: matches content or not checked", HFILL }},
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_lapd,
|
||||
&ett_lapd_address,
|
||||
&ett_lapd_control,
|
||||
&ett_lapd_checksum
|
||||
};
|
||||
{ &hf_lapd_checksum_bad,
|
||||
{ "Bad Checksum", "lapd.checksum_bad", FT_BOOLEAN, BASE_NONE,
|
||||
NULL, 0x0, "True: checksum doesn't match packet content; False: matches content or not checked", HFILL }},
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_lapd,
|
||||
&ett_lapd_address,
|
||||
&ett_lapd_control,
|
||||
&ett_lapd_checksum
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_lapd_abort, { "lapd.abort.expert", PI_PROTOCOL, PI_ERROR, "Formatted message", EXPFILL }},
|
||||
|
@ -704,7 +704,7 @@ proto_register_lapd(void)
|
|||
expert_module_t* expert_lapd;
|
||||
|
||||
proto_lapd = proto_register_protocol("Link Access Procedure, Channel D (LAPD)",
|
||||
"LAPD", "lapd");
|
||||
"LAPD", "lapd");
|
||||
proto_register_field_array (proto_lapd, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_lapd = expert_register_protocol(proto_lapd);
|
||||
|
@ -721,14 +721,14 @@ proto_register_lapd(void)
|
|||
lapd_module = prefs_register_protocol(proto_lapd, proto_reg_handoff_lapd);
|
||||
|
||||
prefs_register_bool_preference(lapd_module, "use_gsm_sapi_values",
|
||||
"Use GSM SAPI values",
|
||||
"Use SAPI values as specified in TS 48 056",
|
||||
&global_lapd_gsm_sapis);
|
||||
"Use GSM SAPI values",
|
||||
"Use SAPI values as specified in TS 48 056",
|
||||
&global_lapd_gsm_sapis);
|
||||
prefs_register_uint_preference(lapd_module, "rtp_payload_type",
|
||||
"RTP payload type for embedded LAPD",
|
||||
"RTP payload type for embedded LAPD. It must be one of the dynamic types "
|
||||
"from 96 to 127. Set it to 0 to disable.",
|
||||
10, &pref_lapd_rtp_payload_type);
|
||||
"RTP payload type for embedded LAPD",
|
||||
"RTP payload type for embedded LAPD. It must be one of the dynamic types "
|
||||
"from 96 to 127. Set it to 0 to disable.",
|
||||
10, &pref_lapd_rtp_payload_type);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -760,3 +760,16 @@ proto_reg_handoff_lapd(void)
|
|||
if ((lapd_rtp_payload_type > 95) && (lapd_rtp_payload_type < 128))
|
||||
dissector_add_uint("rtp.pt", lapd_rtp_payload_type, lapd_bitstream_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -771,3 +771,16 @@ proto_reg_handoff_lapsat(void)
|
|||
{
|
||||
data_handle = find_dissector("data");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -768,3 +768,16 @@ proto_reg_handoff_lon(void)
|
|||
|
||||
dissector_add_uint("cnip.protocol", 0, lon_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -182,26 +182,26 @@ static gint ett_ltp_fragment = -1;
|
|||
static gint ett_ltp_fragments = -1;
|
||||
|
||||
static const fragment_items ltp_frag_items = {
|
||||
/*Fragment subtrees*/
|
||||
&ett_ltp_fragment,
|
||||
&ett_ltp_fragments,
|
||||
/*Fragment Fields*/
|
||||
&hf_ltp_fragments,
|
||||
&hf_ltp_fragment,
|
||||
&hf_ltp_fragment_overlap,
|
||||
&hf_ltp_fragment_overlap_conflicts,
|
||||
&hf_ltp_fragment_multiple_tails,
|
||||
&hf_ltp_fragment_too_long_fragment,
|
||||
&hf_ltp_fragment_error,
|
||||
&hf_ltp_fragment_count,
|
||||
/*Reassembled in field*/
|
||||
&hf_ltp_reassembled_in,
|
||||
/*Reassembled length field*/
|
||||
&hf_ltp_reassembled_length,
|
||||
/* Reassembled data field */
|
||||
NULL,
|
||||
/*Tag*/
|
||||
"LTP fragments"
|
||||
/*Fragment subtrees*/
|
||||
&ett_ltp_fragment,
|
||||
&ett_ltp_fragments,
|
||||
/*Fragment Fields*/
|
||||
&hf_ltp_fragments,
|
||||
&hf_ltp_fragment,
|
||||
&hf_ltp_fragment_overlap,
|
||||
&hf_ltp_fragment_overlap_conflicts,
|
||||
&hf_ltp_fragment_multiple_tails,
|
||||
&hf_ltp_fragment_too_long_fragment,
|
||||
&hf_ltp_fragment_error,
|
||||
&hf_ltp_fragment_count,
|
||||
/*Reassembled in field*/
|
||||
&hf_ltp_reassembled_in,
|
||||
/*Reassembled length field*/
|
||||
&hf_ltp_reassembled_length,
|
||||
/* Reassembled data field */
|
||||
NULL,
|
||||
/*Tag*/
|
||||
"LTP fragments"
|
||||
};
|
||||
|
||||
static int
|
||||
|
@ -438,10 +438,10 @@ dissect_report_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ltp_tree,
|
|||
"Negative reception claim count: %d", rcpt_clm_cnt);
|
||||
return 0;
|
||||
}
|
||||
/* Each reception claim is at least 2 bytes, so if the count is larger than the
|
||||
* max number of claims we can possibly squeeze into the remaining tvbuff, then
|
||||
* the packet is malformed.
|
||||
*/
|
||||
/* Each reception claim is at least 2 bytes, so if the count is larger than the
|
||||
* max number of claims we can possibly squeeze into the remaining tvbuff, then
|
||||
* the packet is malformed.
|
||||
*/
|
||||
if (rcpt_clm_cnt > tvb_length_remaining(tvb, frame_offset + segment_offset) / 2) {
|
||||
proto_item_set_end(ltp_rpt_item, tvb, frame_offset + segment_offset);
|
||||
expert_add_info_format(pinfo, ltp_tree, &ei_ltp_mal_reception_claim,
|
||||
|
@ -988,7 +988,7 @@ proto_reg_handoff_ltp(void)
|
|||
|
||||
if (!initialized) {
|
||||
ltp_handle = new_create_dissector_handle(dissect_ltp, proto_ltp);
|
||||
bundle_handle = find_dissector("bundle");
|
||||
bundle_handle = find_dissector("bundle");
|
||||
initialized = TRUE;
|
||||
} else {
|
||||
dissector_delete_uint("udp.port", currentPort, ltp_handle);
|
||||
|
@ -1000,3 +1000,16 @@ proto_reg_handoff_ltp(void)
|
|||
dissector_add_uint("udp.port", currentPort, ltp_handle);
|
||||
dissector_add_uint("dccp.port", currentPort, ltp_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -170,8 +170,8 @@ dissect_mount_dirpath_call(tvbuff_t *tvb, int offset, packet_info *pinfo,
|
|||
|
||||
host=ip_to_str((const guint8 *)pinfo->dst.data);
|
||||
len=tvb_get_ntohl(tvb, offset);
|
||||
if (len >= ITEM_LABEL_LENGTH)
|
||||
THROW(ReportedBoundsError);
|
||||
if (len >= ITEM_LABEL_LENGTH)
|
||||
THROW(ReportedBoundsError);
|
||||
|
||||
name=(unsigned char *)g_malloc(strlen(host)+1+len+1+200);
|
||||
ptr=name;
|
||||
|
@ -356,53 +356,53 @@ dissect_mount_export_reply(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
|
|||
#define PC_ERROR_VDISABLE 0x0200
|
||||
|
||||
static const true_false_string tos_error_all = {
|
||||
"All info invalid",
|
||||
"Some or all info valid"
|
||||
"All info invalid",
|
||||
"Some or all info valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_link_max = {
|
||||
"LINK_MAX invalid",
|
||||
"LINK_MAX valid"
|
||||
"LINK_MAX invalid",
|
||||
"LINK_MAX valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_max_canon = {
|
||||
"MAX_CANON invalid",
|
||||
"MAX_CANON valid"
|
||||
"MAX_CANON invalid",
|
||||
"MAX_CANON valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_max_input = {
|
||||
"MAX_INPUT invalid",
|
||||
"MAX_INPUT valid"
|
||||
"MAX_INPUT invalid",
|
||||
"MAX_INPUT valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_name_max = {
|
||||
"NAME_MAX invalid",
|
||||
"NAME_MAX valid"
|
||||
"NAME_MAX invalid",
|
||||
"NAME_MAX valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_path_max = {
|
||||
"PATH_MAX invalid",
|
||||
"PATH_MAX valid"
|
||||
"PATH_MAX invalid",
|
||||
"PATH_MAX valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_pipe_buf = {
|
||||
"PIPE_BUF invalid",
|
||||
"PIPE_BUF valid"
|
||||
"PIPE_BUF invalid",
|
||||
"PIPE_BUF valid"
|
||||
};
|
||||
|
||||
static const true_false_string tos_chown_restricted = {
|
||||
"Only a privileged user can change the ownership of a file",
|
||||
"Users may give away their own files"
|
||||
"Only a privileged user can change the ownership of a file",
|
||||
"Users may give away their own files"
|
||||
};
|
||||
|
||||
static const true_false_string tos_no_trunc = {
|
||||
"File names that are too long will get an error",
|
||||
"File names that are too long will be truncated"
|
||||
"File names that are too long will get an error",
|
||||
"File names that are too long will be truncated"
|
||||
};
|
||||
|
||||
static const true_false_string tos_error_vdisable = {
|
||||
"VDISABLE invalid",
|
||||
"VDISABLE valid"
|
||||
"VDISABLE invalid",
|
||||
"VDISABLE valid"
|
||||
};
|
||||
|
||||
|
||||
|
@ -747,30 +747,30 @@ dissect_mount_statvfs_reply(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, p
|
|||
|
||||
/* Mount protocol version 1, RFC 1094 */
|
||||
static const vsff mount1_proc[] = {
|
||||
{ 0, "NULL", NULL, NULL },
|
||||
{ MOUNTPROC_MNT, "MNT",
|
||||
dissect_mount_dirpath_call, dissect_mount1_mnt_reply },
|
||||
{ MOUNTPROC_DUMP, "DUMP",
|
||||
NULL, dissect_mount_dump_reply },
|
||||
{ MOUNTPROC_UMNT, "UMNT",
|
||||
dissect_mount_dirpath_call, NULL },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL",
|
||||
NULL, NULL },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
{ 0, "NULL", NULL, NULL },
|
||||
{ MOUNTPROC_MNT, "MNT",
|
||||
dissect_mount_dirpath_call, dissect_mount1_mnt_reply },
|
||||
{ MOUNTPROC_DUMP, "DUMP",
|
||||
NULL, dissect_mount_dump_reply },
|
||||
{ MOUNTPROC_UMNT, "UMNT",
|
||||
dissect_mount_dirpath_call, NULL },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL",
|
||||
NULL, NULL },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
};
|
||||
static const value_string mount1_proc_vals[] = {
|
||||
{ 0, "NULL" },
|
||||
{ MOUNTPROC_MNT, "MNT" },
|
||||
{ MOUNTPROC_DUMP, "DUMP" },
|
||||
{ MOUNTPROC_UMNT, "UMNT" },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL" },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT" },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL" },
|
||||
{ 0, NULL }
|
||||
{ 0, "NULL" },
|
||||
{ MOUNTPROC_MNT, "MNT" },
|
||||
{ MOUNTPROC_DUMP, "DUMP" },
|
||||
{ MOUNTPROC_UMNT, "UMNT" },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL" },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT" },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* end of mount version 1 */
|
||||
|
||||
|
@ -779,33 +779,33 @@ static const value_string mount1_proc_vals[] = {
|
|||
mount V2 is V1 plus MOUNTPROC_PATHCONF to fetch information for the
|
||||
POSIX "pathconf()" call. */
|
||||
static const vsff mount2_proc[] = {
|
||||
{ 0, "NULL", NULL, NULL },
|
||||
{ MOUNTPROC_MNT, "MNT",
|
||||
dissect_mount_dirpath_call, dissect_mount1_mnt_reply },
|
||||
{ MOUNTPROC_DUMP, "DUMP",
|
||||
NULL, dissect_mount_dump_reply },
|
||||
{ MOUNTPROC_UMNT, "UMNT",
|
||||
dissect_mount_dirpath_call, NULL },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL",
|
||||
NULL, NULL },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_PATHCONF, "PATHCONF",
|
||||
dissect_mount_dirpath_call, dissect_mount_pathconf_reply },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
{ 0, "NULL", NULL, NULL },
|
||||
{ MOUNTPROC_MNT, "MNT",
|
||||
dissect_mount_dirpath_call, dissect_mount1_mnt_reply },
|
||||
{ MOUNTPROC_DUMP, "DUMP",
|
||||
NULL, dissect_mount_dump_reply },
|
||||
{ MOUNTPROC_UMNT, "UMNT",
|
||||
dissect_mount_dirpath_call, NULL },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL",
|
||||
NULL, NULL },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_PATHCONF, "PATHCONF",
|
||||
dissect_mount_dirpath_call, dissect_mount_pathconf_reply },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
};
|
||||
static const value_string mount2_proc_vals[] = {
|
||||
{ 0, "NULL" },
|
||||
{ MOUNTPROC_MNT, "MNT" },
|
||||
{ MOUNTPROC_DUMP, "DUMP" },
|
||||
{ MOUNTPROC_UMNT, "UMNT" },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL" },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT" },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL" },
|
||||
{ MOUNTPROC_PATHCONF, "PATHCONF" },
|
||||
{ 0, NULL }
|
||||
{ 0, "NULL" },
|
||||
{ MOUNTPROC_MNT, "MNT" },
|
||||
{ MOUNTPROC_DUMP, "DUMP" },
|
||||
{ MOUNTPROC_UMNT, "UMNT" },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL" },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT" },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL" },
|
||||
{ MOUNTPROC_PATHCONF, "PATHCONF" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* end of mount version 2 */
|
||||
|
||||
|
@ -840,36 +840,36 @@ static const value_string mount3_proc_vals[] = {
|
|||
MOUNTPROC_EXPORTLIST and MOUNTPROC_STATVFS */
|
||||
|
||||
static const vsff sgi_mount1_proc[] = {
|
||||
{ 0, "NULL", NULL, NULL },
|
||||
{ MOUNTPROC_MNT, "MNT",
|
||||
dissect_mount_dirpath_call, dissect_mount1_mnt_reply },
|
||||
{ MOUNTPROC_DUMP, "DUMP",
|
||||
NULL, dissect_mount_dump_reply },
|
||||
{ MOUNTPROC_UMNT, "UMNT",
|
||||
dissect_mount_dirpath_call, NULL },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL",
|
||||
NULL, NULL },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTLIST,"EXPORTLIST",
|
||||
NULL, dissect_mount_exportlist_reply },
|
||||
{ MOUNTPROC_STATVFS, "STATVFS",
|
||||
dissect_mount_dirpath_call, dissect_mount_statvfs_reply },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
{ 0, "NULL", NULL, NULL },
|
||||
{ MOUNTPROC_MNT, "MNT",
|
||||
dissect_mount_dirpath_call, dissect_mount1_mnt_reply },
|
||||
{ MOUNTPROC_DUMP, "DUMP",
|
||||
NULL, dissect_mount_dump_reply },
|
||||
{ MOUNTPROC_UMNT, "UMNT",
|
||||
dissect_mount_dirpath_call, NULL },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL",
|
||||
NULL, NULL },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL",
|
||||
NULL, dissect_mount_export_reply },
|
||||
{ MOUNTPROC_EXPORTLIST,"EXPORTLIST",
|
||||
NULL, dissect_mount_exportlist_reply },
|
||||
{ MOUNTPROC_STATVFS, "STATVFS",
|
||||
dissect_mount_dirpath_call, dissect_mount_statvfs_reply },
|
||||
{ 0, NULL, NULL, NULL }
|
||||
};
|
||||
static const value_string sgi_mount1_proc_vals[] = {
|
||||
{ 0, "NULL" },
|
||||
{ MOUNTPROC_MNT, "MNT" },
|
||||
{ MOUNTPROC_DUMP, "DUMP" },
|
||||
{ MOUNTPROC_UMNT, "UMNT" },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL" },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT" },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL" },
|
||||
{ MOUNTPROC_EXPORTLIST, "EXPORTLIST" },
|
||||
{ MOUNTPROC_STATVFS, "STATVFS" },
|
||||
{ 0, NULL }
|
||||
{ 0, "NULL" },
|
||||
{ MOUNTPROC_MNT, "MNT" },
|
||||
{ MOUNTPROC_DUMP, "DUMP" },
|
||||
{ MOUNTPROC_UMNT, "UMNT" },
|
||||
{ MOUNTPROC_UMNTALL, "UMNTALL" },
|
||||
{ MOUNTPROC_EXPORT, "EXPORT" },
|
||||
{ MOUNTPROC_EXPORTALL, "EXPORTALL" },
|
||||
{ MOUNTPROC_EXPORTLIST, "EXPORTLIST" },
|
||||
{ MOUNTPROC_STATVFS, "STATVFS" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
/* end of SGI mount protocol version 1 */
|
||||
|
||||
|
@ -1106,3 +1106,16 @@ proto_reg_handoff_mount(void)
|
|||
rpc_init_proc_table(MOUNT_PROGRAM, 3, mount3_proc, hf_mount_procedure_v3);
|
||||
rpc_init_proc_table(SGI_MOUNT_PROGRAM, 1, sgi_mount1_proc, hf_sgi_mount_procedure_v1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -857,3 +857,16 @@ proto_reg_handoff_nmpi(void)
|
|||
dissector_add_uint("ipx.socket", IPX_SOCKET_NWLINK_SMB_MAILSLOT,
|
||||
nmpi_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -986,3 +986,16 @@ proto_reg_handoff_netlink_route(void)
|
|||
{
|
||||
dissector_add_uint("netlink.protocol", WS_NETLINK_ROUTE, netlink_route_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -647,3 +647,16 @@ proto_reg_handoff_portmap(void)
|
|||
rpc_init_proc_table(PORTMAP_PROGRAM, 4, portmap4_proc, hf_portmap_procedure_v4);
|
||||
rpc_handle = find_dissector("rpc");
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -475,3 +475,16 @@ void proto_reg_handoff_pw_satop(void)
|
|||
dissector_add_for_decode_as("mpls.label", find_dissector("pw_satop_mpls"));
|
||||
dissector_add_for_decode_as("udp.port", find_dissector("pw_satop_udp"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -69,11 +69,11 @@ static int hf_data = -1;
|
|||
|
||||
static const value_string control_message_vals[] =
|
||||
{
|
||||
{ 0x02, "Clear buffer" },
|
||||
{ 0x10, "Raw mode" },
|
||||
{ 0x20, "Cooked mode" },
|
||||
{ 0x80, "Window size request" },
|
||||
{ 0, NULL }
|
||||
{ 0x02, "Clear buffer" },
|
||||
{ 0x10, "Raw mode" },
|
||||
{ 0x20, "Cooked mode" },
|
||||
{ 0x80, "Window size request" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
||||
|
@ -179,10 +179,10 @@ rlogin_state_machine(rlogin_hash_entry_t *hash_info, tvbuff_t *tvb, packet_info
|
|||
|
||||
/* Dissect details of packet */
|
||||
static void rlogin_display(rlogin_hash_entry_t *hash_info,
|
||||
tvbuff_t *tvb,
|
||||
packet_info *pinfo,
|
||||
proto_tree *tree,
|
||||
struct tcpinfo *tcpinfo)
|
||||
tvbuff_t *tvb,
|
||||
packet_info *pinfo,
|
||||
proto_tree *tree,
|
||||
struct tcpinfo *tcpinfo)
|
||||
{
|
||||
/* Display the proto tree */
|
||||
int offset = 0;
|
||||
|
@ -586,3 +586,16 @@ void proto_reg_handoff_rlogin(void)
|
|||
dissector_handle_t rlogin_handle = new_create_dissector_handle(dissect_rlogin,proto_rlogin);
|
||||
dissector_add_uint("tcp.port", RLOGIN_PORT, rlogin_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -567,3 +567,16 @@ proto_reg_handoff_teklink(void)
|
|||
/* Register the procedure tables */
|
||||
rpc_init_proc_table(PROGRAM_TEKLINK, 1, teklink_proc, hf_teklink_procedure);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -81,40 +81,40 @@ static gint ett_usb_hub_port_status = -1;
|
|||
static gint ett_usb_hub_port_change = -1;
|
||||
|
||||
/* Table 11-16. Hub Class Request Codes */
|
||||
#define USB_HUB_REQUEST_GET_STATUS 0
|
||||
#define USB_HUB_REQUEST_CLEAR_FEATURE 1
|
||||
#define USB_HUB_REQUEST_SET_FEATURE 3
|
||||
#define USB_HUB_REQUEST_GET_DESCRIPTOR 6
|
||||
#define USB_HUB_REQUEST_SET_DESCRIPTOR 7
|
||||
#define USB_HUB_REQUEST_CLEAR_TT_BUFFER 8
|
||||
#define USB_HUB_REQUEST_RESET_TT 9
|
||||
#define USB_HUB_REQUEST_GET_STATUS 0
|
||||
#define USB_HUB_REQUEST_CLEAR_FEATURE 1
|
||||
#define USB_HUB_REQUEST_SET_FEATURE 3
|
||||
#define USB_HUB_REQUEST_GET_DESCRIPTOR 6
|
||||
#define USB_HUB_REQUEST_SET_DESCRIPTOR 7
|
||||
#define USB_HUB_REQUEST_CLEAR_TT_BUFFER 8
|
||||
#define USB_HUB_REQUEST_RESET_TT 9
|
||||
#define USB_HUB_REQUEST_GET_TT_STATE 10
|
||||
#define USB_HUB_REQUEST_STOP_TT 11
|
||||
|
||||
static const value_string setup_request_names_vals[] = {
|
||||
{ USB_HUB_REQUEST_GET_STATUS, "GET_STATUS" },
|
||||
{ USB_HUB_REQUEST_CLEAR_FEATURE, "CLEAR_FEATURE" },
|
||||
{ USB_HUB_REQUEST_SET_FEATURE, "SET_FEATURE" },
|
||||
{ USB_HUB_REQUEST_GET_DESCRIPTOR, "GET_DESCRIPTOR" },
|
||||
{ USB_HUB_REQUEST_SET_DESCRIPTOR, "SET_DESCRIPTOR" },
|
||||
{ USB_HUB_REQUEST_GET_STATUS, "GET_STATUS" },
|
||||
{ USB_HUB_REQUEST_CLEAR_FEATURE, "CLEAR_FEATURE" },
|
||||
{ USB_HUB_REQUEST_SET_FEATURE, "SET_FEATURE" },
|
||||
{ USB_HUB_REQUEST_GET_DESCRIPTOR, "GET_DESCRIPTOR" },
|
||||
{ USB_HUB_REQUEST_SET_DESCRIPTOR, "SET_DESCRIPTOR" },
|
||||
{ USB_HUB_REQUEST_CLEAR_TT_BUFFER, "CLEAR_TT_BUFFER" },
|
||||
{ USB_HUB_REQUEST_GET_TT_STATE, "GET_TT_STATE" },
|
||||
{ USB_HUB_REQUEST_STOP_TT, "STOP_TT" },
|
||||
{ USB_HUB_REQUEST_GET_TT_STATE, "GET_TT_STATE" },
|
||||
{ USB_HUB_REQUEST_STOP_TT, "STOP_TT" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
||||
/* Table 11-17 Hub Class Feature Selectors */
|
||||
#define USB_HUB_FEATURE_C_HUB_LOCAL_POWER 0
|
||||
#define USB_HUB_FEATURE_C_HUB_OVER_CURRENT 1
|
||||
#define USB_HUB_FEATURE_C_HUB_LOCAL_POWER 0
|
||||
#define USB_HUB_FEATURE_C_HUB_OVER_CURRENT 1
|
||||
|
||||
#define USB_HUB_FEATURE_PORT_CONNECTION 0
|
||||
#define USB_HUB_FEATURE_PORT_ENABLE 1
|
||||
#define USB_HUB_FEATURE_PORT_SUSPEND 2
|
||||
#define USB_HUB_FEATURE_PORT_OVER_CURRENT 3
|
||||
#define USB_HUB_FEATURE_PORT_RESET 4
|
||||
#define USB_HUB_FEATURE_PORT_POWER 8
|
||||
#define USB_HUB_FEATURE_PORT_LOW_SPEED 9
|
||||
#define USB_HUB_FEATURE_PORT_CONNECTION 0
|
||||
#define USB_HUB_FEATURE_PORT_ENABLE 1
|
||||
#define USB_HUB_FEATURE_PORT_SUSPEND 2
|
||||
#define USB_HUB_FEATURE_PORT_OVER_CURRENT 3
|
||||
#define USB_HUB_FEATURE_PORT_RESET 4
|
||||
#define USB_HUB_FEATURE_PORT_POWER 8
|
||||
#define USB_HUB_FEATURE_PORT_LOW_SPEED 9
|
||||
#define USB_HUB_FEATURE_C_PORT_CONNECTION 16
|
||||
#define USB_HUB_FEATURE_C_PORT_ENABLE 17
|
||||
#define USB_HUB_FEATURE_C_PORT_SUSPEND 18
|
||||
|
@ -124,26 +124,26 @@ static const value_string setup_request_names_vals[] = {
|
|||
#define USB_HUB_FEATURE_PORT_INDICATOR 22
|
||||
|
||||
static const value_string hub_class_feature_selectors_recipient_hub_vals[] = {
|
||||
{ USB_HUB_FEATURE_C_HUB_LOCAL_POWER, "C_HUB_LOCAL_POWER" },
|
||||
{ USB_HUB_FEATURE_C_HUB_LOCAL_POWER, "C_HUB_LOCAL_POWER" },
|
||||
{ USB_HUB_FEATURE_C_HUB_OVER_CURRENT, "C_HUB_OVER_CURRENT" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string hub_class_feature_selectors_recipient_port_vals[] = {
|
||||
{ USB_HUB_FEATURE_PORT_CONNECTION, "PORT_CONNECTION" },
|
||||
{ USB_HUB_FEATURE_PORT_ENABLE, "PORT_ENABLE" },
|
||||
{ USB_HUB_FEATURE_PORT_SUSPEND, "PORT_SUSPEND" },
|
||||
{ USB_HUB_FEATURE_PORT_OVER_CURRENT, "PORT_OVER_CURRENT" },
|
||||
{ USB_HUB_FEATURE_PORT_RESET, "PORT_RESET" },
|
||||
{ USB_HUB_FEATURE_PORT_POWER, "PORT_POWER" },
|
||||
{ USB_HUB_FEATURE_PORT_LOW_SPEED, "PORT_LOW_SPEED" },
|
||||
{ USB_HUB_FEATURE_C_PORT_CONNECTION, "C_PORT_CONNECTION" },
|
||||
{ USB_HUB_FEATURE_C_PORT_ENABLE, "C_PORT_ENABLE" },
|
||||
{ USB_HUB_FEATURE_C_PORT_SUSPEND, "C_PORT_SUSPEND" },
|
||||
{ USB_HUB_FEATURE_PORT_CONNECTION, "PORT_CONNECTION" },
|
||||
{ USB_HUB_FEATURE_PORT_ENABLE, "PORT_ENABLE" },
|
||||
{ USB_HUB_FEATURE_PORT_SUSPEND, "PORT_SUSPEND" },
|
||||
{ USB_HUB_FEATURE_PORT_OVER_CURRENT, "PORT_OVER_CURRENT" },
|
||||
{ USB_HUB_FEATURE_PORT_RESET, "PORT_RESET" },
|
||||
{ USB_HUB_FEATURE_PORT_POWER, "PORT_POWER" },
|
||||
{ USB_HUB_FEATURE_PORT_LOW_SPEED, "PORT_LOW_SPEED" },
|
||||
{ USB_HUB_FEATURE_C_PORT_CONNECTION, "C_PORT_CONNECTION" },
|
||||
{ USB_HUB_FEATURE_C_PORT_ENABLE, "C_PORT_ENABLE" },
|
||||
{ USB_HUB_FEATURE_C_PORT_SUSPEND, "C_PORT_SUSPEND" },
|
||||
{ USB_HUB_FEATURE_C_PORT_OVER_CURRENT, "C_PORT_OVER_CURRENT" },
|
||||
{ USB_HUB_FEATURE_C_PORT_RESET, "C_PORT_RESET" },
|
||||
{ USB_HUB_FEATURE_PORT_TEST, "PORT_TEST" },
|
||||
{ USB_HUB_FEATURE_PORT_INDICATOR, "PORT_INDICATOR" },
|
||||
{ USB_HUB_FEATURE_C_PORT_RESET, "C_PORT_RESET" },
|
||||
{ USB_HUB_FEATURE_PORT_TEST, "PORT_TEST" },
|
||||
{ USB_HUB_FEATURE_PORT_INDICATOR, "PORT_INDICATOR" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -827,3 +827,16 @@ proto_reg_handoff_usb_hub(void)
|
|||
dissector_add_uint("usb.control", IF_CLASS_HUB, usb_hub_control_handle);
|
||||
dissector_add_uint("usb.control", IF_CLASS_UNKNOWN, usb_hub_control_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -87,7 +87,7 @@ static int
|
|||
dissect_vlan_info(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree);
|
||||
static void
|
||||
dissect_vlan_info_tlv(tvbuff_t *tvb, packet_info *pinfo, int offset, int length,
|
||||
proto_tree *tree, proto_item *ti, guint8 type);
|
||||
proto_tree *tree, proto_item *ti, guint8 type);
|
||||
|
||||
#define SUMMARY_ADVERT 0x01
|
||||
#define SUBSET_ADVERT 0x02
|
||||
|
@ -105,37 +105,37 @@ static const value_string type_vals[] = {
|
|||
static void
|
||||
set_vtp_info_col(tvbuff_t *tvb, packet_info *pinfo)
|
||||
{
|
||||
switch (tvb_get_guint8(tvb, 1)) {
|
||||
switch (tvb_get_guint8(tvb, 1)) {
|
||||
|
||||
case SUMMARY_ADVERT:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"Summary Advertisement, Revision: %u", tvb_get_ntohl(tvb, 36));
|
||||
case SUMMARY_ADVERT:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"Summary Advertisement, Revision: %u", tvb_get_ntohl(tvb, 36));
|
||||
|
||||
if (tvb_get_guint8(tvb, 2) > 0) {
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO,
|
||||
", Followers: %u", tvb_get_guint8(tvb, 2));
|
||||
}
|
||||
if (tvb_get_guint8(tvb, 2) > 0) {
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO,
|
||||
", Followers: %u", tvb_get_guint8(tvb, 2));
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case SUBSET_ADVERT:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"Subset Advertisement, Revision: %u, Seq: %u",
|
||||
tvb_get_ntohl(tvb, 36), tvb_get_guint8(tvb, 2));
|
||||
break;
|
||||
case SUBSET_ADVERT:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"Subset Advertisement, Revision: %u, Seq: %u",
|
||||
tvb_get_ntohl(tvb, 36), tvb_get_guint8(tvb, 2));
|
||||
break;
|
||||
|
||||
case ADVERT_REQUEST:
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Advertisement Request");
|
||||
break;
|
||||
case ADVERT_REQUEST:
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Advertisement Request");
|
||||
break;
|
||||
|
||||
case JOIN_MSG:
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Join");
|
||||
break;
|
||||
case JOIN_MSG:
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Join");
|
||||
break;
|
||||
|
||||
default:
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Unrecognized VTP message");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Unrecognized VTP message");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -330,8 +330,8 @@ dissect_vlan_info(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tre
|
|||
|
||||
status = tvb_get_guint8(tvb, offset);
|
||||
ti = proto_tree_add_uint(vlan_info_tree, hf_vtp_vlan_status, tvb, offset, 1, status);
|
||||
if (status & VLAN_SUSPENDED)
|
||||
proto_item_append_text(ti, " (VLAN suspended)");
|
||||
if (status & VLAN_SUSPENDED)
|
||||
proto_item_append_text(ti, " (VLAN suspended)");
|
||||
status_tree = proto_item_add_subtree(ti, ett_vtp_vlan_status);
|
||||
proto_tree_add_boolean(status_tree, hf_vtp_vlan_status_vlan_susp, tvb, offset, 1,
|
||||
status);
|
||||
|
@ -415,7 +415,7 @@ static const value_string backup_crf_mode_vals[] = {
|
|||
|
||||
static void
|
||||
dissect_vlan_info_tlv(tvbuff_t *tvb, packet_info *pinfo, int offset, int length,
|
||||
proto_tree *tree, proto_item *ti, guint8 type)
|
||||
proto_tree *tree, proto_item *ti, guint8 type)
|
||||
{
|
||||
switch (type) {
|
||||
|
||||
|
@ -652,7 +652,7 @@ proto_register_vtp(void)
|
|||
{ &hf_vtp_vlan_data,
|
||||
{ "Data", "vtp.vlan_info.data", FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
};
|
||||
};
|
||||
|
||||
static gint *ett[] = {
|
||||
&ett_vtp,
|
||||
|
@ -683,3 +683,16 @@ proto_reg_handoff_vtp(void)
|
|||
vtp_handle = create_dissector_handle(dissect_vtp, proto_vtp);
|
||||
dissector_add_uint("llc.cisco_pid", 0x2003, vtp_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -202,10 +202,10 @@ static dissector_handle_t fr_uncompressed_handle;
|
|||
|
||||
static const value_string cmd_string[] = {
|
||||
{0, "Compressed Data"},
|
||||
{1, "Uncompressed Data"},
|
||||
{15, "Extended"},
|
||||
{1, "Uncompressed Data"},
|
||||
{15, "Extended"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
};
|
||||
|
||||
static const value_string ext_cmd_string[] = {
|
||||
{0, "Per Packet Compression"},
|
||||
|
@ -215,7 +215,7 @@ static const value_string ext_cmd_string[] = {
|
|||
{0x0a, "Init Ack"},
|
||||
|
||||
{ 0, NULL }
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
@ -609,124 +609,137 @@ static tvbuff_t *wcp_uncompress( tvbuff_t *src_tvb, int offset, packet_info *pin
|
|||
void
|
||||
proto_register_wcp(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_wcp_cmd,
|
||||
{ "Command", "wcp.cmd", FT_UINT8, BASE_HEX, VALS(cmd_string), WCP_CMD,
|
||||
"Compression Command", HFILL }},
|
||||
{ &hf_wcp_ext_cmd,
|
||||
{ "Extended Command", "wcp.ext_cmd", FT_UINT8, BASE_HEX, VALS(ext_cmd_string), WCP_EXT_CMD,
|
||||
"Extended Compression Command", HFILL }},
|
||||
{ &hf_wcp_seq,
|
||||
{ "SEQ", "wcp.seq", FT_UINT16, BASE_HEX, NULL, WCP_SEQ,
|
||||
"Sequence Number", HFILL }},
|
||||
{ &hf_wcp_chksum,
|
||||
{ "Checksum", "wcp.checksum", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Packet Checksum", HFILL }},
|
||||
{ &hf_wcp_tid,
|
||||
{ "TID", "wcp.tid", FT_UINT16, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_rev,
|
||||
{ "Revision", "wcp.rev", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_init,
|
||||
{ "Initiator", "wcp.init", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_seq_size,
|
||||
{ "Seq Size", "wcp.seq_size", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Sequence Size", HFILL }},
|
||||
{ &hf_wcp_alg_cnt,
|
||||
{ "Alg Count", "wcp.alg_cnt", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm Count", HFILL }},
|
||||
{ &hf_wcp_alg_a,
|
||||
{ "Alg 1", "wcp.alg1", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #1", HFILL }},
|
||||
{ &hf_wcp_alg_b,
|
||||
{ "Alg 2", "wcp.alg2", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #2", HFILL }},
|
||||
{ &hf_wcp_alg_c,
|
||||
{ "Alg 3", "wcp.alg3", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #3", HFILL }},
|
||||
{ &hf_wcp_alg_d,
|
||||
{ "Alg 4", "wcp.alg4", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #4", HFILL }},
|
||||
{ &hf_wcp_alg,
|
||||
{ "Alg", "wcp.alg", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm", HFILL }},
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_wcp_cmd,
|
||||
{ "Command", "wcp.cmd", FT_UINT8, BASE_HEX, VALS(cmd_string), WCP_CMD,
|
||||
"Compression Command", HFILL }},
|
||||
{ &hf_wcp_ext_cmd,
|
||||
{ "Extended Command", "wcp.ext_cmd", FT_UINT8, BASE_HEX, VALS(ext_cmd_string), WCP_EXT_CMD,
|
||||
"Extended Compression Command", HFILL }},
|
||||
{ &hf_wcp_seq,
|
||||
{ "SEQ", "wcp.seq", FT_UINT16, BASE_HEX, NULL, WCP_SEQ,
|
||||
"Sequence Number", HFILL }},
|
||||
{ &hf_wcp_chksum,
|
||||
{ "Checksum", "wcp.checksum", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Packet Checksum", HFILL }},
|
||||
{ &hf_wcp_tid,
|
||||
{ "TID", "wcp.tid", FT_UINT16, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_rev,
|
||||
{ "Revision", "wcp.rev", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_init,
|
||||
{ "Initiator", "wcp.init", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_seq_size,
|
||||
{ "Seq Size", "wcp.seq_size", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Sequence Size", HFILL }},
|
||||
{ &hf_wcp_alg_cnt,
|
||||
{ "Alg Count", "wcp.alg_cnt", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm Count", HFILL }},
|
||||
{ &hf_wcp_alg_a,
|
||||
{ "Alg 1", "wcp.alg1", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #1", HFILL }},
|
||||
{ &hf_wcp_alg_b,
|
||||
{ "Alg 2", "wcp.alg2", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #2", HFILL }},
|
||||
{ &hf_wcp_alg_c,
|
||||
{ "Alg 3", "wcp.alg3", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #3", HFILL }},
|
||||
{ &hf_wcp_alg_d,
|
||||
{ "Alg 4", "wcp.alg4", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm #4", HFILL }},
|
||||
{ &hf_wcp_alg,
|
||||
{ "Alg", "wcp.alg", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Algorithm", HFILL }},
|
||||
#if 0
|
||||
{ &hf_wcp_rexmit,
|
||||
{ "Rexmit", "wcp.rexmit", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Retransmit", HFILL }},
|
||||
{ &hf_wcp_rexmit,
|
||||
{ "Rexmit", "wcp.rexmit", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Retransmit", HFILL }},
|
||||
#endif
|
||||
{ &hf_wcp_hist_size,
|
||||
{ "History", "wcp.hist", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"History Size", HFILL }},
|
||||
{ &hf_wcp_ppc,
|
||||
{ "PerPackComp", "wcp.ppc", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Per Packet Compression", HFILL }},
|
||||
{ &hf_wcp_pib,
|
||||
{ "PIB", "wcp.pib", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_compressed_data,
|
||||
{ "Compressed Data", "wcp.compressed_data", FT_NONE, BASE_NONE, NULL, 0,
|
||||
"Raw compressed data", HFILL }},
|
||||
{ &hf_wcp_comp_bits,
|
||||
{ "Compress Flag", "wcp.flag", FT_UINT8, BASE_HEX, NULL, 0,
|
||||
"Compressed byte flag", HFILL }},
|
||||
{ &hf_wcp_hist_size,
|
||||
{ "History", "wcp.hist", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"History Size", HFILL }},
|
||||
{ &hf_wcp_ppc,
|
||||
{ "PerPackComp", "wcp.ppc", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Per Packet Compression", HFILL }},
|
||||
{ &hf_wcp_pib,
|
||||
{ "PIB", "wcp.pib", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_wcp_compressed_data,
|
||||
{ "Compressed Data", "wcp.compressed_data", FT_NONE, BASE_NONE, NULL, 0,
|
||||
"Raw compressed data", HFILL }},
|
||||
{ &hf_wcp_comp_bits,
|
||||
{ "Compress Flag", "wcp.flag", FT_UINT8, BASE_HEX, NULL, 0,
|
||||
"Compressed byte flag", HFILL }},
|
||||
#if 0
|
||||
{ &hf_wcp_comp_marker,
|
||||
{ "Compress Marker", "wcp.mark", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Compressed marker", HFILL }},
|
||||
{ &hf_wcp_comp_marker,
|
||||
{ "Compress Marker", "wcp.mark", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Compressed marker", HFILL }},
|
||||
#endif
|
||||
{ &hf_wcp_offset,
|
||||
{ "Source offset", "wcp.off", FT_UINT16, BASE_HEX, NULL, WCP_OFFSET_MASK,
|
||||
"Data source offset", HFILL }},
|
||||
{ &hf_wcp_short_len,
|
||||
{ "Compress Length", "wcp.short_len", FT_UINT8, BASE_HEX, NULL, 0xf0,
|
||||
"Compressed length", HFILL }},
|
||||
{ &hf_wcp_long_len,
|
||||
{ "Compress Length", "wcp.long_len", FT_UINT8, BASE_HEX, NULL, 0,
|
||||
"Compressed length", HFILL }},
|
||||
{ &hf_wcp_long_run,
|
||||
{ "Long Compression", "wcp.long_comp", FT_BYTES, BASE_NONE, NULL, 0,
|
||||
"Long Compression type", HFILL }},
|
||||
{ &hf_wcp_short_run,
|
||||
{ "Short Compression", "wcp.short_comp", FT_BYTES, BASE_NONE, NULL, 0,
|
||||
"Short Compression type", HFILL }},
|
||||
{ &hf_wcp_offset,
|
||||
{ "Source offset", "wcp.off", FT_UINT16, BASE_HEX, NULL, WCP_OFFSET_MASK,
|
||||
"Data source offset", HFILL }},
|
||||
{ &hf_wcp_short_len,
|
||||
{ "Compress Length", "wcp.short_len", FT_UINT8, BASE_HEX, NULL, 0xf0,
|
||||
"Compressed length", HFILL }},
|
||||
{ &hf_wcp_long_len,
|
||||
{ "Compress Length", "wcp.long_len", FT_UINT8, BASE_HEX, NULL, 0,
|
||||
"Compressed length", HFILL }},
|
||||
{ &hf_wcp_long_run,
|
||||
{ "Long Compression", "wcp.long_comp", FT_BYTES, BASE_NONE, NULL, 0,
|
||||
"Long Compression type", HFILL }},
|
||||
{ &hf_wcp_short_run,
|
||||
{ "Short Compression", "wcp.short_comp", FT_BYTES, BASE_NONE, NULL, 0,
|
||||
"Short Compression type", HFILL }},
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
static gint *ett[] = {
|
||||
&ett_wcp,
|
||||
&ett_wcp_comp_data,
|
||||
&ett_wcp_field,
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_wcp,
|
||||
&ett_wcp_comp_data,
|
||||
&ett_wcp_field,
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_wcp_compressed_data_exceeds, { "wcp.compressed_data.exceeds", PI_MALFORMED, PI_ERROR, "Compressed data exceeds maximum buffer length", EXPFILL }},
|
||||
{ &ei_wcp_uncompressed_data_exceeds, { "wcp.uncompressed_data.exceeds", PI_MALFORMED, PI_ERROR, "Uncompressed data exceeds maximum buffer length", EXPFILL }},
|
||||
};
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_wcp_compressed_data_exceeds, { "wcp.compressed_data.exceeds", PI_MALFORMED, PI_ERROR, "Compressed data exceeds maximum buffer length", EXPFILL }},
|
||||
{ &ei_wcp_uncompressed_data_exceeds, { "wcp.uncompressed_data.exceeds", PI_MALFORMED, PI_ERROR, "Uncompressed data exceeds maximum buffer length", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_wcp;
|
||||
expert_module_t* expert_wcp;
|
||||
|
||||
proto_wcp = proto_register_protocol ("Wellfleet Compression", "WCP", "wcp");
|
||||
proto_register_field_array (proto_wcp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_wcp = expert_register_protocol(proto_wcp);
|
||||
expert_register_field_array(expert_wcp, ei, array_length(ei));
|
||||
proto_wcp = proto_register_protocol ("Wellfleet Compression", "WCP", "wcp");
|
||||
proto_register_field_array (proto_wcp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_wcp = expert_register_protocol(proto_wcp);
|
||||
expert_register_field_array(expert_wcp, ei, array_length(ei));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
proto_reg_handoff_wcp(void) {
|
||||
dissector_handle_t wcp_handle;
|
||||
dissector_handle_t wcp_handle;
|
||||
|
||||
/*
|
||||
* Get handle for the Frame Relay (uncompressed) dissector.
|
||||
*/
|
||||
fr_uncompressed_handle = find_dissector("fr_uncompressed");
|
||||
/*
|
||||
* Get handle for the Frame Relay (uncompressed) dissector.
|
||||
*/
|
||||
fr_uncompressed_handle = find_dissector("fr_uncompressed");
|
||||
|
||||
wcp_handle = create_dissector_handle(dissect_wcp, proto_wcp);
|
||||
dissector_add_uint("fr.nlpid", NLPID_COMPRESSED, wcp_handle);
|
||||
dissector_add_uint("ethertype", ETHERTYPE_WCP, wcp_handle);
|
||||
wcp_handle = create_dissector_handle(dissect_wcp, proto_wcp);
|
||||
dissector_add_uint("fr.nlpid", NLPID_COMPRESSED, wcp_handle);
|
||||
dissector_add_uint("ethertype", ETHERTYPE_WCP, wcp_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -683,10 +683,10 @@ dissect_winsrepl_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
|
|||
static guint
|
||||
get_winsrepl_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset)
|
||||
{
|
||||
guint pdu_len;
|
||||
guint pdu_len;
|
||||
|
||||
pdu_len=tvb_get_ntohl(tvb, offset);
|
||||
return pdu_len+4;
|
||||
pdu_len=tvb_get_ntohl(tvb, offset);
|
||||
return pdu_len+4;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -885,3 +885,16 @@ proto_reg_handoff_winsrepl(void)
|
|||
winsrepl_handle = new_create_dissector_handle(dissect_winsrepl, proto_winsrepl);
|
||||
dissector_add_uint("tcp.port", glb_winsrepl_tcp_port, winsrepl_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -641,3 +641,16 @@ proto_reg_handoff_wow(void)
|
|||
dissector_add_uint("tcp.port", WOW_PORT, wow_handle);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
|
@ -174,23 +174,23 @@ enum yahoo_service { /* these are easier to see in hex */
|
|||
|
||||
/* Message flags */
|
||||
enum yahoo_status {
|
||||
YAHOO_STATUS_AVAILABLE = 0,
|
||||
YAHOO_STATUS_BRB,
|
||||
YAHOO_STATUS_BUSY,
|
||||
YAHOO_STATUS_NOTATHOME,
|
||||
YAHOO_STATUS_NOTATDESK,
|
||||
YAHOO_STATUS_NOTINOFFICE,
|
||||
YAHOO_STATUS_ONPHONE,
|
||||
YAHOO_STATUS_ONVACATION,
|
||||
YAHOO_STATUS_OUTTOLUNCH,
|
||||
YAHOO_STATUS_STEPPEDOUT,
|
||||
YAHOO_STATUS_INVISIBLE = 12,
|
||||
YAHOO_STATUS_CUSTOM = 99,
|
||||
YAHOO_STATUS_IDLE = 999,
|
||||
YAHOO_STATUS_WEBLOGIN = 0x5a55aa55,
|
||||
YAHOO_STATUS_OFFLINE = 0x5a55aa56, /* don't ask */
|
||||
YAHOO_STATUS_TYPING = 0x16,
|
||||
YAHOO_STATUS_DISCONNECTED = -1 /* in ymsg 15. doesn't mean the normal sense of 'disconnected' */
|
||||
YAHOO_STATUS_AVAILABLE = 0,
|
||||
YAHOO_STATUS_BRB,
|
||||
YAHOO_STATUS_BUSY,
|
||||
YAHOO_STATUS_NOTATHOME,
|
||||
YAHOO_STATUS_NOTATDESK,
|
||||
YAHOO_STATUS_NOTINOFFICE,
|
||||
YAHOO_STATUS_ONPHONE,
|
||||
YAHOO_STATUS_ONVACATION,
|
||||
YAHOO_STATUS_OUTTOLUNCH,
|
||||
YAHOO_STATUS_STEPPEDOUT,
|
||||
YAHOO_STATUS_INVISIBLE = 12,
|
||||
YAHOO_STATUS_CUSTOM = 99,
|
||||
YAHOO_STATUS_IDLE = 999,
|
||||
YAHOO_STATUS_WEBLOGIN = 0x5a55aa55,
|
||||
YAHOO_STATUS_OFFLINE = 0x5a55aa56, /* don't ask */
|
||||
YAHOO_STATUS_TYPING = 0x16,
|
||||
YAHOO_STATUS_DISCONNECTED = -1 /* in ymsg 15. doesn't mean the normal sense of 'disconnected' */
|
||||
};
|
||||
|
||||
enum ypacket_status {
|
||||
|
@ -524,7 +524,7 @@ proto_register_ymsg(void)
|
|||
{ &hf_ymsg_content_line_value, {
|
||||
"Value", "ymsg.content-line.value", FT_STRING, BASE_NONE,
|
||||
NULL, 0, "Content line value", HFILL }}
|
||||
};
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_ymsg,
|
||||
&ett_ymsg_content,
|
||||
|
@ -563,3 +563,16 @@ proto_reg_handoff_ymsg(void)
|
|||
*/
|
||||
heur_dissector_add("tcp", dissect_ymsg, proto_ymsg);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - http://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue