forked from osmocom/wireshark
From Neil Piercy:
1 new split file (GMM & SM in one file) and diff patches for the others. The RR, RP and BSSMAP patches are really a tidy-up: now they are split it becomes clear what was redundant code. svn path=/trunk/; revision=26064
This commit is contained in:
parent
924894e617
commit
2226bccd44
|
@ -426,6 +426,7 @@ CLEAN_DISSECTOR_SRC = \
|
|||
packet-gsm_a_bssmap.c \
|
||||
packet-gsm_a_common.c \
|
||||
packet-gsm_a_dtap.c \
|
||||
packet-gsm_a_gm.c \
|
||||
packet-gsm_a_rp.c \
|
||||
packet-gsm_a_rr.c \
|
||||
packet-gsm_bsslap.c \
|
||||
|
|
|
@ -277,11 +277,6 @@ static dissector_handle_t dtap_handle;
|
|||
static packet_info *g_pinfo;
|
||||
static proto_tree *g_tree;
|
||||
|
||||
/*
|
||||
* this should be set on a per message basis, if possible
|
||||
*/
|
||||
static gint is_uplink;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BE_CIC, /* Circuit Identity Code */
|
||||
|
@ -2084,8 +2079,6 @@ bssmap_ass_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CHAN_TYPE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CHAN_TYPE, "");
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_L3_HEADER_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_HEADER_INFO, "");
|
||||
|
@ -2122,8 +2115,6 @@ bssmap_ass_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_RR_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_RR_CAUSE, "");
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
@ -2156,8 +2147,6 @@ bssmap_ass_failure(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_RR_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_RR_CAUSE, "");
|
||||
|
@ -2182,8 +2171,6 @@ bssmap_block(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
@ -2206,8 +2193,6 @@ bssmap_block_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2226,8 +2211,6 @@ bssmap_unblock(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
ELEM_OPT_T(gsm_bssmap_elem_strings[BE_CONN_REL_REQ].value, BSSAP_PDU_TYPE_BSSMAP, BE_CONN_REL_REQ, "");
|
||||
|
@ -2248,8 +2231,6 @@ bssmap_unblock_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2268,8 +2249,6 @@ bssmap_ho_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CHAN_TYPE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CHAN_TYPE, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_ENC_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_ENC_INFO, "");
|
||||
|
@ -2328,8 +2307,6 @@ bssmap_ho_reqd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_OPT_T(gsm_bssmap_elem_strings[BE_RESP_REQ].value, BSSAP_PDU_TYPE_BSSMAP, BE_RESP_REQ, "");
|
||||
|
@ -2362,8 +2339,6 @@ bssmap_ho_req_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_L3_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_INFO, "");
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_CHOSEN_CHAN].value, BSSAP_PDU_TYPE_BSSMAP, BE_CHOSEN_CHAN, "");
|
||||
|
@ -2394,8 +2369,6 @@ bssmap_ho_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_L3_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_INFO, "");
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
|
@ -2416,8 +2389,6 @@ bssmap_ho_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_RR_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_RR_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2436,8 +2407,6 @@ bssmap_ho_cand_enq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_NUM_MS].value, BSSAP_PDU_TYPE_BSSMAP, BE_NUM_MS, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID_LIST].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID_LIST, "");
|
||||
|
@ -2460,8 +2429,6 @@ bssmap_ho_cand_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_NUM_MS].value, BSSAP_PDU_TYPE_BSSMAP, BE_NUM_MS, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
|
@ -2482,8 +2449,6 @@ bssmap_ho_failure(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_RR_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_RR_CAUSE, "");
|
||||
|
@ -2508,8 +2473,6 @@ bssmap_paging(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_IMSI].value, BSSAP_PDU_TYPE_BSSMAP, BE_IMSI, "");
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_TMSI].value, BSSAP_PDU_TYPE_BSSMAP, BE_TMSI, "");
|
||||
|
@ -2536,8 +2499,6 @@ bssmap_clear_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2556,8 +2517,6 @@ bssmap_clear_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_L3_HEADER_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_HEADER_INFO, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
@ -2578,8 +2537,6 @@ bssmap_reset(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_UNKNOWN;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2598,8 +2555,6 @@ bssmap_ho_performed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
|
@ -2628,8 +2583,6 @@ bssmap_overload(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
|
@ -2650,8 +2603,6 @@ bssmap_cm_upd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CM_INFO_2].value, BSSAP_PDU_TYPE_BSSMAP, BE_CM_INFO_2, "");
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_CM_INFO_3].value, BSSAP_PDU_TYPE_BSSMAP, BE_CM_INFO_3, "");
|
||||
|
@ -2672,8 +2623,6 @@ bssmap_ciph_mode_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_L3_HEADER_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_HEADER_INFO, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_ENC_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_ENC_INFO, "");
|
||||
|
@ -2696,8 +2645,6 @@ bssmap_ciph_mode_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_L3_MSG].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_MSG, "");
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_CHOSEN_ENC_ALG].value, BSSAP_PDU_TYPE_BSSMAP, BE_CHOSEN_ENC_ALG, "");
|
||||
|
@ -2718,8 +2665,6 @@ bssmap_cl3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_L3_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_L3_INFO, "");
|
||||
|
@ -2746,8 +2691,6 @@ bssmap_sapi_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_DLCI].value, BSSAP_PDU_TYPE_BSSMAP, BE_DLCI, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
@ -2768,8 +2711,6 @@ bssmap_ho_reqd_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2788,8 +2729,6 @@ bssmap_reset_cct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
@ -2810,8 +2749,6 @@ bssmap_reset_cct_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2830,8 +2767,6 @@ bssmap_cct_group_block(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
@ -2854,8 +2789,6 @@ bssmap_cct_group_block_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC_LIST].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC_LIST, "");
|
||||
|
@ -2876,8 +2809,6 @@ bssmap_cct_group_unblock(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC_LIST].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC_LIST, "");
|
||||
|
@ -2898,8 +2829,6 @@ bssmap_cct_group_unblock_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC_LIST].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC_LIST, "");
|
||||
|
@ -2920,8 +2849,6 @@ bssmap_confusion(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_DIAG].value, BSSAP_PDU_TYPE_BSSMAP, BE_DIAG, "");
|
||||
|
@ -2942,8 +2869,6 @@ bssmap_unequipped_cct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
ELEM_OPT_TV(gsm_bssmap_elem_strings[BE_CIC_LIST].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC_LIST, "");
|
||||
|
@ -2964,8 +2889,6 @@ bssmap_ciph_mode_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -2984,8 +2907,6 @@ bssmap_load_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_TIME_IND].value, BSSAP_PDU_TYPE_BSSMAP, BE_TIME_IND, "");
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CELL_ID].value, BSSAP_PDU_TYPE_BSSMAP, BE_CELL_ID, "");
|
||||
|
@ -3012,8 +2933,6 @@ bssmap_change_cct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_CAUSE].value, BSSAP_PDU_TYPE_BSSMAP, BE_CAUSE, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -3032,8 +2951,6 @@ bssmap_change_cct_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_TV(gsm_bssmap_elem_strings[BE_CIC].value, BSSAP_PDU_TYPE_BSSMAP, BE_CIC, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -3052,8 +2969,6 @@ bssmap_common_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_IMSI].value, BSSAP_PDU_TYPE_BSSMAP, BE_IMSI, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -3072,8 +2987,6 @@ bssmap_lsa_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_LSA_INFO].value, BSSAP_PDU_TYPE_BSSMAP, BE_LSA_INFO, "");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -3092,8 +3005,6 @@ bssmap_conn_oriented(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
|
||||
ELEM_MAND_TLV(gsm_bssmap_elem_strings[BE_APDU].value, BSSAP_PDU_TYPE_BSSMAP, BE_APDU, "");
|
||||
|
||||
ELEM_OPT_TLV(gsm_bssmap_elem_strings[BE_SEG].value, BSSAP_PDU_TYPE_BSSMAP, BE_SEG, "");
|
||||
|
|
|
@ -269,6 +269,9 @@ const char* get_gsm_a_msg_string(int pdu_type, int idx)
|
|||
case GSM_A_PDU_TYPE_COMMON:
|
||||
msg_string = gsm_common_elem_strings[idx].strptr;
|
||||
break;
|
||||
case GSM_A_PDU_TYPE_GM:
|
||||
msg_string = gsm_gm_elem_strings[idx].strptr;
|
||||
break;
|
||||
default:
|
||||
DISSECTOR_ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
@ -296,6 +299,9 @@ static int get_hf_elem_id(int pdu_type)
|
|||
case GSM_A_PDU_TYPE_COMMON:
|
||||
hf_elem_id = hf_gsm_a_common_elem_id;
|
||||
break;
|
||||
case GSM_A_PDU_TYPE_GM:
|
||||
hf_elem_id = hf_gsm_a_gm_elem_id;
|
||||
break;
|
||||
default:
|
||||
DISSECTOR_ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
|
|
@ -82,11 +82,19 @@ extern gint ett_gsm_common_elem[];
|
|||
extern elem_fcn common_elem_fcn[];
|
||||
extern int hf_gsm_a_common_elem_id;
|
||||
|
||||
extern const value_string gsm_gm_elem_strings[];
|
||||
extern gint ett_gsm_gm_elem[];
|
||||
extern elem_fcn gm_elem_fcn[];
|
||||
extern int hf_gsm_a_gm_elem_id;
|
||||
extern void get_gmm_msg_params(guint8 oct, const gchar **msg_str, int *ett_tree, int *hf_idx, msg_fcn *msg_fcn);
|
||||
extern void get_sm_msg_params(guint8 oct, const gchar **msg_str, int *ett_tree, int *hf_idx, msg_fcn *msg_fcn);
|
||||
|
||||
extern sccp_msg_info_t* sccp_msg;
|
||||
extern sccp_assoc_info_t* sccp_assoc;
|
||||
|
||||
extern int gsm_a_tap;
|
||||
extern gboolean lower_nibble;
|
||||
extern packet_info *gsm_a_dtap_pinfo;
|
||||
|
||||
/* common field values */
|
||||
extern int hf_gsm_a_length;
|
||||
|
@ -106,6 +114,7 @@ extern int hf_gsm_a_rr_chnl_needed_ch1;
|
|||
#define GSM_A_PDU_TYPE_RP 2
|
||||
#define GSM_A_PDU_TYPE_RR 3
|
||||
#define GSM_A_PDU_TYPE_COMMON 4
|
||||
#define GSM_A_PDU_TYPE_GM 5
|
||||
|
||||
extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
|
||||
|
||||
|
@ -185,6 +194,11 @@ extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
|
|||
SEV_elem_ett = ett_gsm_common_elem; \
|
||||
SEV_elem_funcs = common_elem_fcn; \
|
||||
break; \
|
||||
case GSM_A_PDU_TYPE_GM: \
|
||||
SEV_elem_names = gsm_gm_elem_strings; \
|
||||
SEV_elem_ett = ett_gsm_gm_elem; \
|
||||
SEV_elem_funcs = gm_elem_fcn; \
|
||||
break; \
|
||||
default: \
|
||||
proto_tree_add_text(tree, \
|
||||
tvb, curr_offset, -1, \
|
||||
|
@ -500,7 +514,6 @@ typedef enum
|
|||
DE_AUTH_FAIL_PARAM, /* Authentication Failure Parameter (UMTS authentication challenge only) */
|
||||
DE_CM_SRVC_TYPE, /* CM Service Type */
|
||||
DE_ID_TYPE, /* Identity Type */
|
||||
/* Pos 50 */
|
||||
DE_LOC_UPD_TYPE, /* Location Updating Type */
|
||||
DE_NETWORK_NAME, /* Network Name */
|
||||
DE_REJ_CAUSE, /* Reject Cause */
|
||||
|
@ -512,7 +525,6 @@ typedef enum
|
|||
DE_DAY_SAVING_TIME, /* Daylight Saving Time */
|
||||
DE_EMERGENCY_NUM_LIST, /* Emergency Number List */
|
||||
/* Call Control Information Elements 10.5.4 */
|
||||
/* Pos 60 */
|
||||
DE_AUX_STATES, /* Auxiliary States */
|
||||
DE_BEARER_CAP, /* Bearer Capability */
|
||||
DE_CC_CAP, /* Call Control Capabilities */
|
||||
|
@ -551,6 +563,27 @@ typedef enum
|
|||
DE_IMM_MOD_IND, /* Immediate Modification Indicator */
|
||||
DE_SUP_CODEC_LIST, /* Supported Codec List */
|
||||
DE_SRVC_CAT, /* Service Category */
|
||||
/* Short Message Service Information Elements [5] 8.1.4 */
|
||||
DE_CP_USER_DATA, /* CP-User Data */
|
||||
DE_CP_CAUSE, /* CP-Cause */
|
||||
/* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
|
||||
DE_TP_SUB_CHANNEL, /* Close TCH Loop Cmd Sub-channel */
|
||||
DE_TP_ACK, /* Open Loop Cmd Ack */
|
||||
DE_TP_LOOP_TYPE, /* Close Multi-slot Loop Cmd Loop type*/
|
||||
DE_TP_LOOP_ACK, /* Close Multi-slot Loop Ack Result */
|
||||
DE_TP_TESTED_DEVICE, /* Test Interface Tested device */
|
||||
DE_TP_PDU_DESCRIPTION, /* GPRS Test Mode Cmd PDU description */
|
||||
DE_TP_MODE_FLAG, /* GPRS Test Mode Cmd Mode flag */
|
||||
DE_TP_EGPRS_MODE_FLAG, /* EGPRS Start Radio Block Loopback Cmd Mode flag */
|
||||
DE_TP_UE_TEST_LOOP_MODE, /* Close UE Test Loop Mode */
|
||||
DE_TP_UE_POSITIONING_TECHNOLOGY, /* UE Positioning Technology */
|
||||
DE_TP_RLC_SDU_COUNTER_VALUE, /* RLC SDU Counter Value */
|
||||
DE_NONE /* NONE */
|
||||
}
|
||||
dtap_elem_idx_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
/* GPRS Mobility Management Information Elements 10.5.5 */
|
||||
DE_ATTACH_RES, /* [7] 10.5.1 Attach Result*/
|
||||
DE_ATTACH_TYPE, /* [7] 10.5.2 Attach Type */
|
||||
|
@ -579,10 +612,6 @@ typedef enum
|
|||
DE_NET_FEAT_SUP, /* [7] 10.5.23 Network Feature Support */
|
||||
DE_RAT_INFO_CONTAINER, /* [7] 10.5.24 Inter RAT information container */
|
||||
/* [7] 10.5.25 Requested MS information */
|
||||
|
||||
/* Short Message Service Information Elements [5] 8.1.4 */
|
||||
DE_CP_USER_DATA, /* CP-User Data */
|
||||
DE_CP_CAUSE, /* CP-Cause */
|
||||
/* Session Management Information Elements 10.5.6 */
|
||||
DE_ACC_POINT_NAME, /* Access Point Name */
|
||||
DE_NET_SAPI, /* Network Service Access Point Identifier */
|
||||
|
@ -602,20 +631,8 @@ typedef enum
|
|||
DE_GPRS_TIMER_2, /* [8] 10.5.7.4 GPRS Timer 2 */
|
||||
DE_RAD_PRIO_2, /* [8] 10.5.7.5 Radio Priority 2 */
|
||||
DE_MBMS_CTX_STATUS, /* [8] 10.5.7.6 MBMS context status */
|
||||
/* Tests procedures information elements 3GPP TS 44.014 6.4.0 and 3GPP TS 34.109 6.4.0 */
|
||||
DE_TP_SUB_CHANNEL, /* Close TCH Loop Cmd Sub-channel */
|
||||
DE_TP_ACK, /* Open Loop Cmd Ack */
|
||||
DE_TP_LOOP_TYPE, /* Close Multi-slot Loop Cmd Loop type*/
|
||||
DE_TP_LOOP_ACK, /* Close Multi-slot Loop Ack Result */
|
||||
DE_TP_TESTED_DEVICE, /* Test Interface Tested device */
|
||||
DE_TP_PDU_DESCRIPTION, /* GPRS Test Mode Cmd PDU description */
|
||||
DE_TP_MODE_FLAG, /* GPRS Test Mode Cmd Mode flag */
|
||||
DE_TP_EGPRS_MODE_FLAG, /* EGPRS Start Radio Block Loopback Cmd Mode flag */
|
||||
DE_TP_UE_TEST_LOOP_MODE, /* Close UE Test Loop Mode */
|
||||
DE_TP_UE_POSITIONING_TECHNOLOGY, /* UE Positioning Technology */
|
||||
DE_TP_RLC_SDU_COUNTER_VALUE, /* RLC SDU Counter Value */
|
||||
DE_NONE /* NONE */
|
||||
DE_GM_NONE /* NONE */
|
||||
}
|
||||
dtap_elem_idx_t;
|
||||
gm_elem_idx_t;
|
||||
|
||||
#endif /* __PACKET_GSM_A_COMMON_H__ */
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -89,11 +89,6 @@ static dissector_table_t sms_dissector_table; /* SMS TPDU */
|
|||
static packet_info *g_pinfo;
|
||||
static proto_tree *g_tree;
|
||||
|
||||
/*
|
||||
* this should be set on a per message basis, if possible
|
||||
*/
|
||||
static gint is_uplink;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
/* Short Message Service Information Elements [5] 8.2 */
|
||||
|
@ -286,7 +281,6 @@ rp_data_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
g_pinfo->p2p_dir = P2P_DIR_SENT;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
@ -313,7 +307,6 @@ rp_data_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
g_pinfo->p2p_dir = P2P_DIR_RECV;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
@ -340,8 +333,6 @@ rp_smma(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -360,7 +351,6 @@ rp_ack_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
g_pinfo->p2p_dir = P2P_DIR_SENT;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
@ -383,7 +373,6 @@ rp_ack_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
g_pinfo->p2p_dir = P2P_DIR_RECV;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
@ -406,7 +395,6 @@ rp_error_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_FALSE;
|
||||
g_pinfo->p2p_dir = P2P_DIR_SENT;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
@ -431,7 +419,6 @@ rp_error_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
g_pinfo->p2p_dir = P2P_DIR_RECV;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF);
|
||||
|
|
|
@ -459,15 +459,6 @@ static char a_bigbuf[1024];
|
|||
|
||||
static dissector_handle_t data_handle;
|
||||
|
||||
static packet_info *g_pinfo;
|
||||
static proto_tree *g_tree;
|
||||
|
||||
/*
|
||||
* this should be set on a per message basis, if possible
|
||||
*/
|
||||
static gint is_uplink;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
/* Radio Resource Management Information Elements 10.5.2, most are from 10.5.1 */
|
||||
|
@ -3488,7 +3479,7 @@ dtap_rr_gprs_sus_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI);
|
||||
|
||||
/* Routeing Area Identification 10.5.5.15 M V 6 */
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_DTAP, DE_RAI);
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_RAI);
|
||||
/* Suspension cause 10.5.2.47 M V 1 */
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SUS_CAU);
|
||||
|
||||
|
@ -3852,8 +3843,6 @@ dtap_rr_paging_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
/*
|
||||
* special dissection for Cipher Key Sequence Number
|
||||
*/
|
||||
|
@ -3923,8 +3912,6 @@ dtap_rr_rr_status(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
|
|||
curr_offset = offset;
|
||||
curr_len = len;
|
||||
|
||||
is_uplink = IS_UPLINK_TRUE;
|
||||
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE);
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
@ -4186,7 +4173,7 @@ void get_rr_msg_params(guint8 oct, const gchar **msg_str, int *ett_tree, int *hf
|
|||
{
|
||||
gint idx;
|
||||
|
||||
*msg_str = match_strval_idx((guint32) (oct & DTAP_RR_IEI_MASK), gsm_a_dtap_msg_rr_strings, &idx);
|
||||
*msg_str = match_strval_idx((guint32) (oct & DTAP_RR_IEI_MASK), gsm_a_dtap_msg_rr_strings, &idx);
|
||||
*ett_tree = ett_gsm_dtap_msg_rr[idx];
|
||||
*hf_idx = hf_gsm_a_dtap_msg_rr_type;
|
||||
*msg_fcn = dtap_msg_rr_fcn[idx];
|
||||
|
@ -4212,8 +4199,8 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
guint32 offset, saved_offset;
|
||||
guint32 len;
|
||||
guint32 oct_1, oct_2;
|
||||
proto_item *dtap_item = NULL;
|
||||
proto_tree *dtap_tree = NULL;
|
||||
proto_item *ccch_item = NULL;
|
||||
proto_tree *ccch_tree = NULL;
|
||||
proto_item *oct_1_item = NULL;
|
||||
proto_tree *pd_tree = NULL;
|
||||
proto_tree *saved_tree = NULL;
|
||||
|
@ -4256,9 +4243,6 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
offset = 0;
|
||||
oct_2 = 0;
|
||||
|
||||
g_pinfo = pinfo;
|
||||
g_tree = tree;
|
||||
|
||||
/* Skip pseeudo hdr here */
|
||||
offset = 1;
|
||||
|
||||
|
@ -4306,16 +4290,16 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
* create the protocol tree
|
||||
*/
|
||||
if (msg_str == NULL){
|
||||
dtap_item = proto_tree_add_protocol_format(tree, proto_a_ccch, tvb, 0, len,
|
||||
ccch_item = proto_tree_add_protocol_format(tree, proto_a_ccch, tvb, 0, len,
|
||||
"GSM CCCH - Message Type (0x%02x)",
|
||||
oct);
|
||||
|
||||
dtap_tree = proto_item_add_subtree(dtap_item, ett_ccch_msg);
|
||||
ccch_tree = proto_item_add_subtree(ccch_item, ett_ccch_msg);
|
||||
}else{
|
||||
dtap_item = proto_tree_add_protocol_format(tree, proto_a_ccch, tvb, 0, -1,
|
||||
ccch_item = proto_tree_add_protocol_format(tree, proto_a_ccch, tvb, 0, -1,
|
||||
"GSM CCCH - %s", msg_str);
|
||||
|
||||
dtap_tree = proto_item_add_subtree(dtap_item, ett_tree);
|
||||
ccch_tree = proto_item_add_subtree(ccch_item, ett_tree);
|
||||
}
|
||||
|
||||
if (check_col(pinfo->cinfo, COL_INFO)){
|
||||
|
@ -4334,13 +4318,13 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
pseudo_len = tvb_get_guint8(tvb,offset)>>2;
|
||||
|
||||
saved_tree = tree;
|
||||
tree = dtap_tree;
|
||||
tree = ccch_tree;
|
||||
ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_L2_PSEUDO_LEN);
|
||||
tree = saved_tree;
|
||||
offset = saved_offset;
|
||||
|
||||
oct_1_item =
|
||||
proto_tree_add_text(dtap_tree,
|
||||
proto_tree_add_text(ccch_tree,
|
||||
tvb, 1, 1,
|
||||
"Protocol Discriminator: %s",
|
||||
val_to_str(pd, protocol_discriminator_vals, "Unknown (%u)"));
|
||||
|
@ -4390,7 +4374,7 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/*
|
||||
* add DTAP message name
|
||||
*/
|
||||
proto_tree_add_uint_format(dtap_tree, hf_idx, tvb, offset, 1, oct,
|
||||
proto_tree_add_uint_format(ccch_tree, hf_idx, tvb, offset, 1, oct,
|
||||
"Message Type: %s",msg_str ? msg_str : "(Unknown)");
|
||||
|
||||
offset++;
|
||||
|
@ -4411,10 +4395,10 @@ dissect_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
* decode elements
|
||||
*/
|
||||
if (msg_fcn == NULL){
|
||||
proto_tree_add_text(dtap_tree, tvb, offset, len - offset,
|
||||
proto_tree_add_text(ccch_tree, tvb, offset, len - offset,
|
||||
"Message Elements");
|
||||
}else{
|
||||
(*msg_fcn)(tvb, dtap_tree, offset, len - offset);
|
||||
(*msg_fcn)(tvb, ccch_tree, offset, len - offset);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4435,7 +4419,7 @@ proto_register_gsm_a_rr(void)
|
|||
"", HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_rr_elem_id,
|
||||
{ "Element ID", "gsm_a_dtap.elem_id",
|
||||
{ "Element ID", "gsm_a_rr.elem_id",
|
||||
FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"", HFILL }
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue