aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nas_eps.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2015-04-03 16:57:42 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2015-04-03 16:16:15 +0000
commit8c31988c5f9e6007d79441311f49e9e28816cd8d (patch)
treeb639b9abed9285ed9ba466f3666e13e70c2fe09a /epan/dissectors/packet-nas_eps.c
parentb9cf389e436fcf42f9f59653f18cdd4f2af0f05e (diff)
NAS EPS: upgrade dissector to v12.8.0
Change-Id: I8b7f7380c32c38fa5483a2966b56a6c2ee687c1c Reviewed-on: https://code.wireshark.org/review/7892 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-nas_eps.c')
-rw-r--r--epan/dissectors/packet-nas_eps.c55
1 files changed, 47 insertions, 8 deletions
diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c
index 218fa771ab..1c6c70e4ee 100644
--- a/epan/dissectors/packet-nas_eps.c
+++ b/epan/dissectors/packet-nas_eps.c
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * References: 3GPP TS 24.301 V12.7.0 (2014-12)
+ * References: 3GPP TS 24.301 V12.8.0 (2015-03)
*/
#include "config.h"
@@ -191,7 +191,7 @@ static int hf_nas_eps_esm_notif_ind = -1;
static int hf_nas_eps_esm_pdn_type = -1;
static int hf_nas_eps_esm_pdn_ipv4 = -1;
static int hf_nas_eps_esm_pdn_ipv6_if_id = -1;
-
+static int hf_nas_eps_esm_ratc = -1;
static int hf_nas_eps_esm_linked_bearer_id = -1;
static int hf_nas_eps_active_flg = -1;
@@ -2737,6 +2737,31 @@ static const value_string nas_eps_esm_pdn_type_values[] = {
* See subclause 10.5.7.2 in 3GPP TS 24.008
*/
/*
+ * 9.9.4.13a Re-attempt indicator
+ */
+const true_false_string nas_eps_esm_ratc_value = {
+ "UE is not allowed to repeat the request after inter-system change from S1 mode to A/Gb mode or Iu mode",
+ "UE is allowed to repeat the request after inter-system change from S1 mode to A/Gb mode or Iu mode"
+};
+
+static guint16
+de_esm_re_attempt_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
+ guint len, gchar *add_string _U_, int string_len _U_)
+{
+ guint32 curr_offset;
+
+ curr_offset = offset;
+
+ proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, offset << 3, 7, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_nas_eps_esm_ratc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ curr_offset++;
+
+ EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_eps_extraneous_data);
+
+ return len;
+}
+
+/*
* 9.9.4.14 Request type
* See subclause 10.5.6.17 in 3GPP TS 24.008
*/
@@ -2847,6 +2872,7 @@ typedef enum
DE_ESM_PROT_CONF_OPT, /* 9.9.4.11 Protocol configuration options */
DE_ESM_QOS, /* 9.9.4.12 Quality of service */
DE_ESM_RA_PRI, /* 9.9.4.13 Radio priority */
+ DE_ESM_RE_ATTEMPT_IND, /* 9.9.4.13a Re-attempt indicator */
DE_ESM_REQ_TYPE, /* 9.9.4.14 Request type */
DE_ESM_TRAF_FLOW_AGR_DESC, /* 9.9.4.15 Traffic flow aggregate description */
DE_ESM_TRAF_FLOW_TEMPL, /* 9.9.4.16 Traffic flow template */
@@ -2872,6 +2898,7 @@ static const value_string nas_esm_elem_strings[] = {
{ DE_ESM_PROT_CONF_OPT, "Protocol configuration options" }, /* 9.9.4.11 Protocol configuration options */
{ DE_ESM_QOS, "Quality of service" }, /* 9.9.4.12 Quality of service */
{ DE_ESM_RA_PRI, "Radio priority" }, /* 9.9.4.13 Radio priority */
+ { DE_ESM_RE_ATTEMPT_IND, "Re-attempt indicator" }, /* 9.9.4.13a Re-attempt indicator */
{ DE_ESM_REQ_TYPE, "Request type" }, /* 9.9.4.14 Request type */
{ DE_ESM_TRAF_FLOW_AGR_DESC, "Traffic flow aggregate description" },/* 9.9.4.15 Traffic flow aggregate description */
{ DE_ESM_TRAF_FLOW_TEMPL, "Traffic flow template" }, /* 9.9.4.16 Traffic flow template */
@@ -2900,6 +2927,7 @@ guint16 (*esm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
NULL, /* 9.9.4.11 Protocol configuration options */
NULL, /* 9.9.4.12 Quality of service */
NULL, /* 9.9.4.13 Radio priority */
+ de_esm_re_attempt_ind, /* 9.9.4.13a Re-attempt indicator */
NULL, /* 9.9.4.14 Request type */
NULL, /* 9.9.4.15 Traffic flow aggregate description */
NULL, /* 9.9.4.16 Traffic flow template */
@@ -4130,8 +4158,10 @@ nas_esm_bearer_res_all_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
ELEM_MAND_V(NAS_PDU_TYPE_ESM, DE_ESM_CAUSE, NULL);
/* 27 Protocol configuration options Protocol configuration options 9.9.4.11 O TLV 3-253 */
ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL );
- /* 37 T3396 value GPRS timer 3 9.9.3.16B O TLV 3 */
- ELEM_OPT_TLV(0x37, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3396 value");
+ /* 37 Back-off timer value GPRS timer 3 9.9.3.16B O TLV 3 */
+ ELEM_OPT_TLV(0x37, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - Back-off timer value");
+ /* 6B Re-attempt indicator Re-attempt indicator 9.9.4.13A O TLV 3 */
+ ELEM_OPT_TLV(0x6B, NAS_PDU_TYPE_ESM, DE_ESM_RE_ATTEMPT_IND, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data);
}
@@ -4194,8 +4224,10 @@ nas_esm_bearer_res_mod_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
ELEM_MAND_V(NAS_PDU_TYPE_ESM, DE_ESM_CAUSE, NULL);
/* 27 Protocol configuration options Protocol configuration options 9.9.4.11 O TLV 3-253 */
ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL );
- /* 37 T3396 value GPRS timer 3 9.9.3.16B O TLV 3 */
- ELEM_OPT_TLV(0x37, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3396 value");
+ /* 37 Back-off timer value GPRS timer 3 9.9.3.16B O TLV 3 */
+ ELEM_OPT_TLV(0x37, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - Back-off timer value");
+ /* 6B Re-attempt indicator Re-attempt indicator 9.9.4.13A O TLV 3 */
+ ELEM_OPT_TLV(0x6B, NAS_PDU_TYPE_ESM, DE_ESM_RE_ATTEMPT_IND, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data);
}
@@ -4475,8 +4507,10 @@ nas_esm_pdn_con_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
ELEM_MAND_V(NAS_PDU_TYPE_ESM, DE_ESM_CAUSE, NULL);
/* 27 Protocol configuration options Protocol configuration options 9.9.4.11 O TLV 3-253 */
ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL );
- /* 37 T3396 value GPRS timer 3 9.9.3.16B O TLV 3 */
- ELEM_OPT_TLV(0x37, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3396 value");
+ /* 37 Back-off timer value GPRS timer 3 9.9.3.16B O TLV 3 */
+ ELEM_OPT_TLV(0x37, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - Back-off timer value");
+ /* 6B Re-attempt indicator Re-attempt indicator 9.9.4.13A O TLV 3 */
+ ELEM_OPT_TLV(0x6B, NAS_PDU_TYPE_ESM, DE_ESM_RE_ATTEMPT_IND, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data);
}
@@ -5744,6 +5778,11 @@ proto_register_nas_eps(void)
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
+ { &hf_nas_eps_esm_ratc,
+ { "RATC", "nas_eps.esm.ratc",
+ FT_BOOLEAN, 8, TFS(&nas_eps_emm_active_flg_value), 0x01,
+ NULL, HFILL }
+ },
{ &hf_nas_eps_esm_linked_bearer_id,
{ "Linked EPS bearer identity","nas_eps.esm.linked_bearer_id",
FT_UINT8,BASE_DEC, VALS(nas_eps_esm_linked_bearer_id_vals), 0x0,