aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_rr.c
diff options
context:
space:
mode:
authorIvan Nardi <nardi.ivan@gmail.com>2017-06-14 20:14:30 +0200
committerMichael Mann <mmann78@netscape.net>2017-06-15 11:48:11 +0000
commit1d657acf2d86173087c28cce9f33e11299815fd5 (patch)
tree637066077a8dbbc882adef3813d7472c3519ad8b /epan/dissectors/packet-gsm_a_rr.c
parentb62346b3040fe4ee6cebb7e5a3f1894d9ab767cc (diff)
gsm-a, nas-eps: enhance handling of missing mandatory i.e.
When a mandatory information element is missing, try to report an expert info, instead of throwing a fatal malformed exception (or of reporting nothing at all). According to TS 24.007 11.2.3, a mandatory i.e. may be part of the imperative part of the message, so that expert info should be at PI_ERROR level Change-Id: Id399c236f2923db36540bbda0d29d666548f7cbd Reviewed-on: https://code.wireshark.org/review/22134 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-gsm_a_rr.c')
-rw-r--r--epan/dissectors/packet-gsm_a_rr.c260
1 files changed, 131 insertions, 129 deletions
diff --git a/epan/dissectors/packet-gsm_a_rr.c b/epan/dissectors/packet-gsm_a_rr.c
index 867fff1e41..bc8efe5e55 100644
--- a/epan/dissectors/packet-gsm_a_rr.c
+++ b/epan/dissectors/packet-gsm_a_rr.c
@@ -1238,6 +1238,7 @@ static expert_field ei_gsm_a_rr_ie_underrun = EI_INIT;
static expert_field ei_gsm_a_rr_data_not_dissected = EI_INIT;
static expert_field ei_gsm_a_rr_unknown_version = EI_INIT;
static expert_field ei_gsm_a_rr_extraneous_data = EI_INIT;
+static expert_field ei_gsm_a_rr_missing_mandatory_element = EI_INIT;
static dissector_handle_t rrlp_dissector;
@@ -9275,7 +9276,7 @@ dtap_rr_add_ass(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* Channel Description 10.5.2.5 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Mobile Allocation 10.5.2.21 C TLV 3-10 */
ELEM_OPT_TLV(0x72, GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL);
@@ -9300,10 +9301,10 @@ dtap_rr_ass_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* Channel Description 2 10.5.2.5a M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, " - Description of the First Channel, after time");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, " - Description of the First Channel, after time", ei_gsm_a_rr_missing_mandatory_element);
/* Power Command 10.5.2.28 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_POW_CMD, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_POW_CMD, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 05 Frequency List 10.5.2.13 C TLV 4-132 */
ELEM_OPT_TLV(0x05, GSM_A_PDU_TYPE_RR, DE_RR_FREQ_LIST, " - Frequency List, after time");
@@ -9394,7 +9395,7 @@ dtap_rr_ass_comp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
curr_len = len;
/* RR Cause RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
@@ -9414,7 +9415,7 @@ dtap_rr_ass_fail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
curr_len = len;
/* RR Cause RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
@@ -9434,10 +9435,10 @@ dtap_rr_ch_mode_mod(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_len = len;
/* Channel Description 2 10.5.2.5a M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Channel Mode 10.5.2.6 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_MODE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_MODE, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 01 VGCS target mode Indication VGCS target mode Indication 10.5.2.42a O TLV 3 */
ELEM_OPT_TLV(0x01,GSM_A_PDU_TYPE_RR, DE_RR_VGCS_TAR_MODE_IND, NULL);
@@ -9463,10 +9464,10 @@ dtap_rr_ch_mode_mod_ack(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_len = len;
/* Channel Description 2 10.5.2.5a M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Channel Mode 10.5.2.6 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_MODE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_MODE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
@@ -9486,7 +9487,7 @@ dtap_rr_ch_rel(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* RR Cause RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 73 BA Range BA Range 10.5.2.1a O TLV 6-7 */
ELEM_OPT_TLV(0x73, GSM_A_PDU_TYPE_RR, DE_RR_BA_RANGE, NULL);
@@ -9536,7 +9537,7 @@ dtap_rr_cip_mode_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
/* Ciphering Mode Setting 10.5.2.9 M V 0.5 */
/* Cipher Response 10.5.2.10 M V 0.5 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_CIP_MODE_SET,
- GSM_A_PDU_TYPE_RR, DE_RR_CIP_MODE_RESP);
+ GSM_A_PDU_TYPE_RR, DE_RR_CIP_MODE_RESP, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
@@ -9575,7 +9576,7 @@ dtap_rr_mm_cm_change(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
curr_len = len;
/* Mobile Station Classmark 2 10.5.1.6 M LV 4 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MS_CM_2, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MS_CM_2, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 20 Mobile Station Classmark 3 10.5.1.7 C TLV 3-34 */
ELEM_OPT_TLV(0x20, GSM_A_PDU_TYPE_COMMON, DE_MS_CM_3, NULL);
@@ -9597,7 +9598,7 @@ dtap_rr_utran_classmark_change(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
curr_len = len;
/* UTRAN Classmark 10.5.2.7a M LV 2-? */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_UTRAN_CM, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_UTRAN_CM, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -9636,7 +9637,7 @@ dtap_rr_conf_change_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_len = len;
/* Multislot Allocation 10.5.2.21b M LV 2-11 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MULT_ALL, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MULT_ALL, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Channel Mode 10.5.2.6 O TV 2 */
ELEM_OPT_TV(0x63,GSM_A_PDU_TYPE_RR, DE_RR_CH_MODE, " - Mode of Channel Set 1");
@@ -9684,7 +9685,7 @@ dtap_rr_conf_change_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_len = len;
/* RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -9703,13 +9704,13 @@ dtap_rr_dtm_ass_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_len = len;
/* CS Power Command 10.5.2.28 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_POW_CMD, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_POW_CMD, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Description of the CS Channel 10.5.2.5 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* GPRS broadcast information 10.5.2.14d M LV 7 - n */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_GPRS_BROADCAST_INFORMATION, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_GPRS_BROADCAST_INFORMATION, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 10 Cell Channel Description 10.5.2.1b O TV 17 */
ELEM_OPT_TV(0x10, GSM_A_PDU_TYPE_RR, DE_RR_CELL_CH_DSC, NULL);
@@ -9762,7 +9763,7 @@ dtap_rr_dtm_ass_fail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
curr_len = len;
/* RR Cause RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -9781,10 +9782,10 @@ dtap_rr_dtm_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
curr_len = len;
/* Routeing Area Identification 10.5.5.15 M V 6 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_RAI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_RAI, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* DTM Information Details 10.5.2.11a M LV 4-n */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_DTM_INFO_DETAILS, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_DTM_INFO_DETAILS, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -9803,7 +9804,7 @@ dtap_rr_dtm_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* Wait indication 10.5.2.43 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - DTM Wait Indication");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - DTM Wait Indication", ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -9822,10 +9823,10 @@ dtap_rr_dtm_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* TLLI 10.5.2.41a M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Channel Request Description 2 M LV 5-n */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_CHNL_REQ_DESC2, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_CHNL_REQ_DESC2, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -9844,13 +9845,13 @@ dtap_rr_freq_redef(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_len = len;
/* Channel Description 10.5.2.5 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Mobile Allocation 10.5.2.21 M LV 1-9 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Starting Time 10.5.2.38 M V 2 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_STARTING_TIME, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_STARTING_TIME, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Cell Channel Description 10.5.2.1b O TV 17 */
ELEM_OPT_TV(0x62,GSM_A_PDU_TYPE_RR, DE_RR_CELL_CH_DSC, NULL);
@@ -9881,12 +9882,12 @@ dtap_rr_gprs_sus_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
curr_len = len;
/* TLLI 10.5.2.41a M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TLLI, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Routeing Area Identification 10.5.5.15 M V 6 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_RAI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_RAI, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Suspension cause 10.5.2.47 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SUS_CAU, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SUS_CAU, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 01 Service Support 10.5.2.57 O TV 2 */
ELEM_OPT_TV_SHORT(0x01,GSM_A_PDU_TYPE_RR, DE_RR_SERV_SUP,NULL);
@@ -9916,18 +9917,18 @@ dtap_rr_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
/* Mandatory Elements
* Cell description 10.5.2.2
*/
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Description of the first channel,after time
* Channel Description 2 10.5.2.5a
*/
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, " - Description of the first channel, after time");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC2, " - Description of the first channel, after time", ei_gsm_a_rr_missing_mandatory_element);
/* Handover Reference 10.5.2.15 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_HO_REF, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_HO_REF, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Power Command and Access type 10.5.2.28a */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_POW_CMD_AND_ACC_TYPE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_POW_CMD_AND_ACC_TYPE, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* optional elements */
@@ -10045,7 +10046,7 @@ dtap_rr_inter_syst_to_utran_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info
curr_len = len;
/* UTRAN Classmark 10.5.2.51 M LV 2-? */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_HO_TO_UTRAN_CMD, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_HO_TO_UTRAN_CMD, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -10064,7 +10065,7 @@ dtap_rr_ho_cpte(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* RR Cause RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 77 Mobile Observed Time Difference Mobile Time Difference 10.5.2.21a */
ELEM_OPT_TLV(0x77,GSM_A_PDU_TYPE_RR, DE_RR_MOB_TIME_DIFF, " - Mobile Observed Time Difference");
@@ -10087,7 +10088,7 @@ dtap_rr_ho_fail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* RR Cause RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
@@ -10121,11 +10122,11 @@ dtap_rr_imm_ass(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
/* Page Mode 10.5.2.26 M V 1/2 */
/* Dedicated mode or TBF 10.5.2.25b M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_RR, DE_RR_DED_MOD_OR_TBF);
+ GSM_A_PDU_TYPE_RR, DE_RR_DED_MOD_OR_TBF, ei_gsm_a_rr_missing_mandatory_element);
if((oct&0x10) == 0){
/* Channel Description 10.5.2.5 C V 3m */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
}else{
/* Packet Channel Description 10.5.2.25a C V 3
* If the Dedicated mode or TBF IE indicates that the message assigns a Temporary Block Flow (TBF),
@@ -10135,21 +10136,21 @@ dtap_rr_imm_ass(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
* of this information element and regard it as an unnecessary IE.
*/
if((oct&0x04) == 0){
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_PACKET_CH_DESC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_PACKET_CH_DESC, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
}
/* Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Timing Advance 10.5.2.40 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Mobile Allocation 10.5.2.21 M LV 1-9 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 7C Starting Time 10.5.2.38 O TV 3 */
ELEM_OPT_TV(0x7C,GSM_A_PDU_TYPE_RR, DE_RR_STARTING_TIME, NULL);
/* IA Rest Octets 10.5.2.16 M V 0-11 */
if(tvb_reported_length_remaining(tvb,curr_offset) > 0)
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_IA_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_IA_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -10169,26 +10170,26 @@ dtap_rr_imm_ass_ext(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
/* Page Mode 10.5.2.26 M V 1/2 */
/* Feature Indicator 10.5.2.76 M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_COMMON, DE_RR_FEATURE_INDICATOR);
+ GSM_A_PDU_TYPE_COMMON, DE_RR_FEATURE_INDICATOR, ei_gsm_a_rr_missing_mandatory_element);
/* Channel Description 1 Channel Description 10.5.2.5 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, " - Channel Description 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, " - Channel Description 1", ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 1 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 1", ei_gsm_a_rr_missing_mandatory_element);
/* Timing Advance 1 Timing Advance 10.5.2.40 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, " - Timing Advance 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, " - Timing Advance 1", ei_gsm_a_rr_missing_mandatory_element);
/* Channel Description 2 Channel Description 10.5.2.5 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, " - Channel Description 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, " - Channel Description 2", ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 2 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 2", ei_gsm_a_rr_missing_mandatory_element);
/* Timing Advance 2 Timing Advance 10.5.2.40 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, " - Timing Advance 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, " - Timing Advance 2", ei_gsm_a_rr_missing_mandatory_element);
/* Mobile Allocation 10.5.2.21 M LV 1-9 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 7C Starting Time 10.5.2.38 O TV 3 */
ELEM_OPT_TV(0x7C,GSM_A_PDU_TYPE_RR, DE_RR_STARTING_TIME, NULL);
/* IAX Rest Octets 10.5.2.18 M V 0-4 */
if(tvb_reported_length_remaining(tvb,curr_offset) > 0)
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_IAX_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_IAX_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -10208,26 +10209,26 @@ dtap_rr_imm_ass_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
/* Page Mode 10.5.2.26 M V 1/2 */
/* Spare Half Octet 10.5.1.8 M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_COMMON, DE_SPARE_NIBBLE);
+ GSM_A_PDU_TYPE_COMMON, DE_SPARE_NIBBLE, ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 1 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 1", ei_gsm_a_rr_missing_mandatory_element);
/* Wait Indication 1 Wait Indication 10.5.2.43 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 1", ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 2 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 2", ei_gsm_a_rr_missing_mandatory_element);
/* Wait Indication 2 Wait Indication 10.5.2.43 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 2", ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 3 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 3");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 3", ei_gsm_a_rr_missing_mandatory_element);
/* Wait Indication 3 Wait Indication 10.5.2.43 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 3");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 3", ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 4 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 4");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, " - Request Reference 4", ei_gsm_a_rr_missing_mandatory_element);
/* Wait Indication 4 Wait Indication 10.5.2.43 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 4");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_WAIT_IND, " - Wait Indication 4", ei_gsm_a_rr_missing_mandatory_element);
/* IAR Rest Octets 10.5.2.19 M V 3 */
if(tvb_reported_length_remaining(tvb,curr_offset) > 0)
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_IAR_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_IAR_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -10245,7 +10246,7 @@ dtap_rr_meas_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
curr_len = len;
/* Measurement Results 10.5.2.20 M V 16 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_MEAS_RES, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_MEAS_RES, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10262,7 +10263,7 @@ dtap_rr_pkt_assign(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_len = len;
/* GPRS broadcast information 10.5.2.14d M LV 7-n */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_GPRS_BROADCAST_INFORMATION, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_GPRS_BROADCAST_INFORMATION, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* 0x22 RR Packet Uplink Assignment 10.5.2.25c O TLV 3-n */
ELEM_OPT_TLV(0x22, GSM_A_PDU_TYPE_RR, DE_RR_PKT_UL_ASS, NULL);
@@ -10323,16 +10324,16 @@ dtap_rr_paging_req_type_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
/* RR Page Mode 10.5.2.26 M V 1/2 */
/* RR Channel Needed 10.5.2.8 M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_RR, DE_RR_CHNL_NEEDED);
+ GSM_A_PDU_TYPE_RR, DE_RR_CHNL_NEEDED, ei_gsm_a_rr_missing_mandatory_element);
/* RR Mobile Identity 10.5.1.4 M LV 2-9 */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID, " - Mobile Identity 1");
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID, " - Mobile Identity 1", ei_gsm_a_rr_missing_mandatory_element);
/* RR Mobile Identity 10.5.1.4 O TLV 3-10 */
ELEM_OPT_TLV(0x17, GSM_A_PDU_TYPE_COMMON, DE_MID, " - Mobile Identity 2");
/* RR P1 Rest Octets 10.5.2.23 M V 0-17 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_P1_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_P1_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -10352,19 +10353,19 @@ dtap_rr_paging_req_type_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
/* RR Page Mode 10.5.2.26 M V 1/2 */
/* RR Channel Needed 10.5.2.8 M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_RR, DE_RR_CHNL_NEEDED);
+ GSM_A_PDU_TYPE_RR, DE_RR_CHNL_NEEDED, ei_gsm_a_rr_missing_mandatory_element);
/* RR TMSI/P-TMSI 10.5.2.42 M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 1", ei_gsm_a_rr_missing_mandatory_element);
/* RR TMSI/P-TMSI 10.5.2.42 M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 2", ei_gsm_a_rr_missing_mandatory_element);
/* RR Mobile Identity 10.5.1.4 O TLV 3-10 */
ELEM_OPT_TLV(0x17, GSM_A_PDU_TYPE_COMMON, DE_MID, " - Mobile Identity 3");
/* RR P2 Rest Octets 10.5.2.24 M V 1-11 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_P2_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_P2_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -10384,22 +10385,22 @@ dtap_rr_paging_req_type_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
/* RR Page Mode 10.5.2.26 M V 1/2 */
/* RR Channel Needed 10.5.2.8 M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_RR, DE_RR_CHNL_NEEDED);
+ GSM_A_PDU_TYPE_RR, DE_RR_CHNL_NEEDED, ei_gsm_a_rr_missing_mandatory_element);
/* RR TMSI/P-TMSI 10.5.2.42 M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 1");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 1", ei_gsm_a_rr_missing_mandatory_element);
/* RR TMSI/P-TMSI 10.5.2.42 M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 2");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 2", ei_gsm_a_rr_missing_mandatory_element);
/* RR TMSI/P-TMSI 10.5.2.42 M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 3");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 3", ei_gsm_a_rr_missing_mandatory_element);
/* RR TMSI/P-TMSI 10.5.2.42 M V 4 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 4");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TMSI_PTMSI, " - Mobile Identity 4", ei_gsm_a_rr_missing_mandatory_element);
/* RR P3 Rest Octets 10.5.2.25 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_P3_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_P3_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -10446,9 +10447,9 @@ dtap_rr_paging_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_offset++;
curr_len--;
- ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MS_CM_2, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MS_CM_2, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID, NULL, ei_gsm_a_rr_missing_mandatory_element);
ELEM_OPT_TV_SHORT(0xC0, GSM_A_PDU_TYPE_DTAP, DE_ADD_UPD_PARAMS, NULL);
@@ -10469,7 +10470,7 @@ dtap_rr_partial_rel(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_len = len;
/* Channel Description 10.5.2.5 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -10492,7 +10493,7 @@ dtap_rr_phy_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -10510,7 +10511,7 @@ dtap_rr_rr_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_rr_extraneous_data);
}
@@ -10528,11 +10529,11 @@ dtap_rr_sys_info_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_CH_DSC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_CH_DSC, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI1_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI1_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10548,11 +10549,11 @@ dtap_rr_sys_info_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - BCCH Frequency List");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - BCCH Frequency List", ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NCC_PERM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NCC_PERM, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10568,9 +10569,9 @@ dtap_rr_sys_info_2bis(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - Extended BCCH Frequency List");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - Extended BCCH Frequency List", ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10586,9 +10587,9 @@ dtap_rr_sys_info_2ter(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC2, " - Extended BCCH Frequency List");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC2, " - Extended BCCH Frequency List", ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI2TER_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI2TER_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10604,7 +10605,7 @@ dtap_rr_sys_info_2quater(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI2QUATER_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI2QUATER_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10620,19 +10621,19 @@ dtap_rr_sys_info_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CELL_ID, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CELL_ID, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_LAI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_LAI, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CTRL_CH_DESC, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CTRL_CH_DESC, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_OPT_BCCH, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_OPT_BCCH, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_SEL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_SEL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI3_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI3_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10648,17 +10649,17 @@ dtap_rr_sys_info_4(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_LAI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_LAI, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_SEL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_SEL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_RACH_CTRL_PARAM, NULL, ei_gsm_a_rr_missing_mandatory_element);
ELEM_OPT_TV(0x64, GSM_A_PDU_TYPE_RR, DE_RR_CH_DSC, " - CBCH");
ELEM_OPT_TLV(0x72, GSM_A_PDU_TYPE_RR, DE_RR_MOB_ALL, " - CBCH");
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI4_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI4_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10674,7 +10675,7 @@ dtap_rr_sys_info_5(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - BCCH Frequency List");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - BCCH Frequency List", ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10690,7 +10691,7 @@ dtap_rr_sys_info_5bis(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - Extended BCCH Frequency List");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC, " - Extended BCCH Frequency List", ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10706,7 +10707,7 @@ dtap_rr_sys_info_5ter(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC2, " - Extended BCCH Frequency List");
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NEIGH_CELL_DESC2, " - Extended BCCH Frequency List", ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10722,15 +10723,15 @@ dtap_rr_sys_info_6(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CELL_ID, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CELL_ID, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_LAI, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_LAI, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_OPT_SACCH, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CELL_OPT_SACCH, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NCC_PERM, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_NCC_PERM, NULL, ei_gsm_a_rr_missing_mandatory_element);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI6_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI6_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10746,7 +10747,7 @@ dtap_rr_sys_info_13(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI13_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI13_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10762,7 +10763,7 @@ dtap_rr_sys_info_21(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI21_REST_OCT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_SI21_REST_OCT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10779,10 +10780,10 @@ dtap_rr_talker_indication(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
curr_len = len;
/* Mobile Station Classmark 2 10.5.1.6 M LV */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MS_CM_2, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MS_CM_2, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Mobile identity 10.5.1.4 M LV */
- ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID, NULL);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Ciphering Key Sequence Number 10.5.1.2 O TV 1 */
ELEM_OPT_TV_SHORT(0xD0,GSM_A_PDU_TYPE_COMMON, DE_CIPH_KEY_SEQ_NUM,NULL);
@@ -10802,7 +10803,7 @@ dtap_rr_upl_rel(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_len = len;
/* RR Cause 10.5.2.31 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_CAUSE, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10819,10 +10820,10 @@ dtap_rr_vgcs_upl_grant(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_len = len;
/* Request reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Timing advance 10.5.2.40 M V 1 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_TIMING_ADV, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10839,7 +10840,7 @@ dtap_rr_ext_meas_order(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_len = len;
/* Extended Measurement Frequency List 10.5.2.46 M V 16 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EXT_MEAS_FREQ_LIST, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EXT_MEAS_FREQ_LIST, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10856,7 +10857,7 @@ dtap_rr_ext_meas_report(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_len = len;
/* Extended Measurement Result 10.5.2.45 M V 16 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EXT_MEAS_RESULT, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EXT_MEAS_RESULT, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -10872,9 +10873,9 @@ dtap_rr_app_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset = offset;
curr_len = len;
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_APDU_ID, NULL);
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_APDU_FLAGS, NULL);
- ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_APDU_DATA, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_APDU_ID, NULL, ei_gsm_a_rr_missing_mandatory_element);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_APDU_FLAGS, NULL, ei_gsm_a_rr_missing_mandatory_element);
+ ELEM_MAND_LV(GSM_A_PDU_TYPE_RR, DE_RR_APDU_DATA, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
/*
@@ -11369,14 +11370,14 @@ dtap_rr_ec_imm_ass_type_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
/* Page Mode 10.5.2.26 M V 1/2 */
/* Feature indicator 10.5.2.76 M V 1/2 */
ELEM_MAND_VV_SHORT(GSM_A_PDU_TYPE_RR, DE_RR_PAGE_MODE,
- GSM_A_PDU_TYPE_RR, DE_RR_FEATURE_INDICATOR);
+ GSM_A_PDU_TYPE_RR, DE_RR_FEATURE_INDICATOR, ei_gsm_a_rr_missing_mandatory_element);
/* Request Reference 1 Request Reference 10.5.2.30 M V 3 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_REQ_REF, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* EC Channel Description EC Channel Description 10.5.2.84 M V 2 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EC_PKT_CH_DSC1, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EC_PKT_CH_DSC1, NULL, ei_gsm_a_rr_missing_mandatory_element);
/* Timing Advance 1 Timing Advance 10.5.2.86 M V 3-14 */
- ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EC_FUA, NULL);
+ ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_EC_FUA, NULL, ei_gsm_a_rr_missing_mandatory_element);
}
@@ -14653,6 +14654,7 @@ proto_register_gsm_a_rr(void)
{ &ei_gsm_a_rr_data_not_dissected, { "gsm_a.rr.data_not_dissected", PI_UNDECODED, PI_WARN, "Not dissected yet", EXPFILL }},
{ &ei_gsm_a_rr_unknown_version, { "gsm_a.rr.unknown_version", PI_PROTOCOL, PI_WARN, "Unknown version", EXPFILL }},
{ &ei_gsm_a_rr_extraneous_data, { "gsm_a.rr.extraneous_data", PI_PROTOCOL, PI_NOTE, "Extraneous Data, dissector bug or later version spec(report to wireshark.org)", EXPFILL }},
+ { &ei_gsm_a_rr_missing_mandatory_element, { "gsm_a.rr.missing_mandatory_element", PI_PROTOCOL, PI_ERROR, "Missing Mandatory element, rest of dissection is suspect", EXPFILL }},
};
expert_module_t* expert_a_rr;