From Sylvain Munaut:

packet-gmr1_rr: Add dissector for GMR-1 RR elements and CCCH messages (Step 2).

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6921

svn path=/trunk/; revision=41448
This commit is contained in:
Anders Broman 2012-03-09 12:15:08 +00:00
parent abbdb721dd
commit 017351556b
6 changed files with 2409 additions and 1 deletions

View File

@ -608,6 +608,7 @@ set(DISSECTOR_SRC
dissectors/packet-gmrp.c
dissectors/packet-gmr1_bcch.c
dissectors/packet-gmr1_common.c
dissectors/packet-gmr1_rr.c
dissectors/packet-gnutella.c
dissectors/packet-gopher.c
dissectors/packet-gpef.c

View File

@ -527,6 +527,7 @@ DISSECTOR_SRC = \
packet-gmrp.c \
packet-gmr1_bcch.c \
packet-gmr1_common.c \
packet-gmr1_rr.c \
packet-gnutella.c \
packet-gopher.c \
packet-gpef.c \

View File

@ -242,11 +242,19 @@ elem_fcn gmr1_ie_common_func[NUM_GMR1_IE_COMMON] = {
/* Messages and IEs parsing */
/* ------------------------------------------------------------------------ */
extern void
gmr1_get_msg_rr_params(guint8 oct, int dcch, const gchar **msg_str,
int *ett_tree, int *hf_idx, gmr1_msg_func_t *msg_func_p);
void
gmr1_get_msg_params(gmr1_pd_e pd, guint8 oct _U_, const gchar **msg_str,
gmr1_get_msg_params(gmr1_pd_e pd, guint8 oct, const gchar **msg_str,
int *ett_tree, int *hf_idx, gmr1_msg_func_t *msg_func_p)
{
switch (pd) {
case GMR1_PD_RR:
gmr1_get_msg_rr_params(oct, 1, msg_str, ett_tree, hf_idx, msg_func_p);
break;
default:
*msg_str = NULL;
*ett_tree = -1;

File diff suppressed because it is too large Load Diff

View File

@ -1087,6 +1087,9 @@ const char* get_gsm_a_msg_string(int pdu_type, int idx)
case GMR1_IE_COMMON:
msg_string = gmr1_ie_common_strings[idx].strptr;
break;
case GMR1_IE_RR:
msg_string = gmr1_ie_rr_strings[idx].strptr;
break;
default:
DISSECTOR_ASSERT_NOT_REACHED();
}
@ -1139,6 +1142,7 @@ static int get_hf_elem_id(int pdu_type)
hf_elem_id = hf_bssgp_elem_id;
break;
case GMR1_IE_COMMON:
case GMR1_IE_RR:
hf_elem_id = hf_gmr1_elem_id;
break;
default:

View File

@ -156,6 +156,10 @@ extern elem_fcn gmr1_ie_common_func[];
extern gint ett_gmr1_ie_common[];
extern int hf_gmr1_elem_id;
extern const value_string gmr1_ie_rr_strings[];
extern elem_fcn gmr1_ie_rr_func[];
extern gint ett_gmr1_ie_rr[];
extern sccp_msg_info_t* sccp_msg;
extern sccp_assoc_info_t* sccp_assoc;
@ -198,6 +202,7 @@ extern int hf_gsm_a_lac;
#define SGSAP_PDU_TYPE 12
#define BSSGP_PDU_TYPE 13
#define GMR1_IE_COMMON 14
#define GMR1_IE_RR 15
extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
@ -332,6 +337,11 @@ extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
SEV_elem_ett = ett_gmr1_ie_common; \
SEV_elem_funcs = gmr1_ie_common_func; \
break; \
case GMR1_IE_RR: \
SEV_elem_names = gmr1_ie_rr_strings; \
SEV_elem_ett = ett_gmr1_ie_rr; \
SEV_elem_funcs = gmr1_ie_rr_func; \
break; \
default: \
proto_tree_add_text(tree, \
tvb, curr_offset, -1, \