[PFCP] Added dissect function for User Plane Inactivity Timer IE

in accordance with 3GPP 29.244 v15.0.0

Change-Id: I27d65d591976edfef13a713cf3a0768915e29256
Reviewed-on: https://code.wireshark.org/review/25803
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Matej Tkac 2018-02-15 16:04:34 +01:00 committed by Anders Broman
parent 72b57ac4ef
commit c881ee37d9
1 changed files with 34 additions and 0 deletions

View File

@ -320,6 +320,7 @@ static int hf_pfcp_upiri_teid_range = -1;
static int hf_pfcp_upiri_ipv4 = -1;
static int hf_pfcp_upiri_ipv6 = -1;
static int hf_pfcp_upiri_network_instance = -1;
static int hf_pfcp_user_plane_inactivity_timer = -1;
static int ett_pfcp = -1;
static int ett_pfcp_flags = -1;
@ -3252,6 +3253,33 @@ dissect_pfcp_user_plane_ip_resource_infomation(tvbuff_t *tvb, packet_info *pinfo
}
/*
* 8.2.83 User Plane Inactivity Timer
*/
static void
dissect_pfcp_user_plane_inactivity_timer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_)
{
int offset = 0;
guint32 value;
/*
* The User Plane Inactivity Timer field shall be encoded as an Unsigned32 binary integer value.
* The timer value "0" shall be interpreted as an indication that
* user plane inactivity detection and reporting is stopped.
*/
/* 5 to 8 Inactivity Timer */
proto_tree_add_item_ret_uint(tree, hf_pfcp_user_plane_inactivity_timer, tvb, offset, 4, ENC_BIG_ENDIAN, &value);
offset += 4;
if(value == 0)
proto_item_append_text(item, " (Stopped)");
if (offset < length) {
proto_tree_add_expert(tree, pinfo, &ei_pfcp_ie_data_not_decoded, tvb, offset, -1);
}
}
/* Array of functions to dissect IEs
* (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item, guint16 length, guint8 message_type)
*/
@ -3377,6 +3405,7 @@ static const pfcp_ie_t pfcp_ies[] = {
/* 114 */ { dissect_pfcp_failed_rule_id }, /* Failed Rule ID Extendable / Subclause 8.2.80 */
/* 115 */ { dissect_pfcp_time_qouta_mechanism }, /* Time Quota Mechanism Extendable / Subclause 8.2.81 */
/* 116 */ { dissect_pfcp_user_plane_ip_resource_infomation }, /* User Plane IP Resource Information Extendable / Subclause 8.2.82 */
/* 117 */ { dissect_pfcp_user_plane_inactivity_timer }, /* User Plane Inactivity Timer Extendable / Subclause 8.2.83 */
{ NULL }, /* End of List */
};
@ -5201,6 +5230,11 @@ proto_register_pfcp(void)
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
{ &hf_pfcp_user_plane_inactivity_timer,
{ "User Plane Inactivity Timer", "pfcp.user_plane_inactivity_time",
FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
NULL, HFILL }
},
};