PFCP_Templates: add Session Modification templates

Related: SYS#6192 SYS#5599
Change-Id: Id9ca1eff44a4759d25b31f34ededfcc6074517d5
diff --git a/library/PFCP_Templates.ttcn b/library/PFCP_Templates.ttcn
index 3f14a1f..4e58f32 100644
--- a/library/PFCP_Templates.ttcn
+++ b/library/PFCP_Templates.ttcn
@@ -371,13 +371,33 @@
 	}
 }
 
+template (value) Update_Forwarding_Parameters ts_PFCP_Update_Forwarding_Parameters(
+		e_PFCP_Dest_Iface dest_iface,
+		template (omit) Outer_Header_Creation outer_header_creation := omit
+		) := {
+        elementIdentifier := 11,
+        lengthIndicator := 0,
+        grouped_ie := {
+		destination_interface := ts_PFCP_Destination_Interface(dest_iface),
+		pdn_Instance := omit,
+		redirect_information := omit,
+		outer_header_creation := outer_header_creation,
+		transport_level_marking := omit,
+		forwarding_policy := omit,
+		header_enrichment := omit,
+		pfcpSMReq_flags := omit,
+		traffic_endpoint_id := omit
+	}
+}
+
 template (value) FAR_ID ts_PFCP_FAR_ID(LIN4_BO_LAST far_id) := {
         elementIdentifier := 108,
         lengthIndicator := 0,
         id_value := far_id
 }
 
-template (value) Create_FAR ts_PFCP_Create_FAR(LIN4_BO_LAST far_id, template (value) Apply_Action aa, Forwarding_Parameters fp) := {
+template (value) Create_FAR ts_PFCP_Create_FAR(LIN4_BO_LAST far_id, template (value) Apply_Action aa,
+					       template (omit) Forwarding_Parameters fp) := {
         elementIdentifier := 3,
         lengthIndicator := 0,
 	grouped_ie := {
@@ -389,6 +409,19 @@
         }
 }
 
+template (value) Update_FAR ts_PFCP_Update_FAR(LIN4_BO_LAST far_id, template (value) Apply_Action aa,
+					       template (omit) Update_Forwarding_Parameters fp) := {
+        elementIdentifier := 10,
+        lengthIndicator := 0,
+	grouped_ie := {
+		far_id := ts_PFCP_FAR_ID(far_id),
+		apply_action := aa,
+		forwarding_parameters := fp,
+		duplicating_parameters := omit,
+		bar_id := omit
+        }
+}
+
 template (value) PDR_ID ts_PFCP_PDR_ID(OCT2 pdr_id) := {
         elementIdentifier := 56,
         lengthIndicator := 0,
@@ -493,6 +526,40 @@
 	return t;
 }
 
+function ts_PFCP_Session_Mod_Req(OCT8 up_seid, Update_FAR update_far)
+ return template (value) PDU_PFCP {
+	var template (value) PDU_PFCP t := ts_PDU_PFCP(seid := up_seid);
+	t.message_body := {
+		pfcp_session_modification_request := {
+			f_seid := omit,
+			remove_PDR_list := omit,
+			remove_FAR_list := omit,
+			remove_URR_list := omit,
+			remove_QER_list := omit,
+			remove_BAR := omit,
+			remove_traffic_endpoint := omit,
+			create_PDR_list := omit,
+			create_FAR_list := omit,
+			create_URR_list := omit,
+			create_QER_list := omit,
+			create_BAR  := omit,
+			create_traffic_endpoint := omit,
+			update_PDR_list := omit,
+			update_FAR_list := { update_far },
+			update_URR_list := omit,
+			update_QER_list := omit,
+			update_BAR := omit,
+			update_traffic_endpoint := omit,
+			pfcpSMReq_flags := omit,
+			query_URR_list := omit,
+			node_list := omit,
+			up_inactivity_timer := omit,
+			querry_urr_reference := omit
+		}
+	};
+	return t;
+}
+
 function tr_PFCP_Session_Mod_Req(template (present) OCT8 seid := ?) return template (present) PDU_PFCP {
 	var template PDU_PFCP t := tr_PDU_PFCP(seid);
 	t.message_body := {
@@ -519,6 +586,14 @@
 	return t;
 }
 
+function tr_PFCP_Session_Mod_Resp(template (present) OCT8 seid := ?) return template (present) PDU_PFCP {
+	var template PDU_PFCP t := tr_PDU_PFCP(seid);
+	t.message_body := {
+		pfcp_session_modification_response := ?
+	};
+	return t;
+}
+
 function ts_PFCP_Session_Del_Req(OCT8 seid) return template (value) PDU_PFCP {
 	var template (value) PDU_PFCP t := ts_PDU_PFCP(seid := seid);
 	t.message_body := {