aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-pfcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-pfcp.c')
-rw-r--r--epan/dissectors/packet-pfcp.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/epan/dissectors/packet-pfcp.c b/epan/dissectors/packet-pfcp.c
index b8dd702e86..3fb1c8a4db 100644
--- a/epan/dissectors/packet-pfcp.c
+++ b/epan/dissectors/packet-pfcp.c
@@ -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 }
+ },
};