laforge has submitted this change. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37942?usp=email )
Change subject: PFCP: rework templates, get rid of functions
......................................................................
PFCP: rework templates, get rid of functions
This patch fixes dozens of compilation warnings, turning functions
returning templates into templates inheriting from {tr,ts}_PDU_PFCP_.
Change-Id: I04735adf88c81b949e1dca6e9ab9a3b37ba78bd6
Related: SYS#6772
---
M library/PFCP_Templates.ttcn
M upf/UPF_Tests.ttcn
2 files changed, 173 insertions(+), 126 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
diff --git a/library/PFCP_Templates.ttcn b/library/PFCP_Templates.ttcn
index 3acc287..329ea88 100644
--- a/library/PFCP_Templates.ttcn
+++ b/library/PFCP_Templates.ttcn
@@ -124,7 +124,10 @@
seid := seid
};
-template (value) PDU_PFCP ts_PFCP_Assoc_Setup_Req(template (value) Node_ID node_id,
LIN4_BO_LAST recovery_timestamp)
+/* 7.4.4.1 PFCP Association Setup Request */
+template (value) PDU_PFCP
+ts_PFCP_Assoc_Setup_Req(template (value) Node_ID node_id,
+ LIN4_BO_LAST recovery_timestamp)
modifies ts_PDU_PFCP_ := {
message_body := {
pfcp_association_setup_request := {
@@ -136,10 +139,10 @@
}
}
};
-
-function tr_PFCP_Assoc_Setup_Req(template (present) Node_ID node_id := ?) return template
(present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP();
- t.message_body := {
+template (present) PDU_PFCP
+tr_PFCP_Assoc_Setup_Req(template (present) Node_ID node_id := ?)
+modifies tr_PDU_PFCP_ := {
+ message_body := {
pfcp_association_setup_request := {
node_id := node_id,
time_stamp := ?,
@@ -147,14 +150,15 @@
cp_function_features := *,
UP_IP_resource_list := *
}
- };
- return t;
+ }
};
-template (value) PDU_PFCP ts_PFCP_Assoc_Setup_Resp(LIN3_BO_LAST sequence_number,
- template (value) Node_ID node_id,
- template (value) Cause cause,
- LIN4_BO_LAST recovery_timestamp)
+/* 7.4.4.2 PFCP Association Setup Response */
+template (value) PDU_PFCP
+ts_PFCP_Assoc_Setup_Resp(LIN3_BO_LAST sequence_number,
+ template (value) Node_ID node_id,
+ template (value) Cause cause,
+ LIN4_BO_LAST recovery_timestamp)
modifies ts_PDU_PFCP_ := {
sequence_number := sequence_number,
message_body := {
@@ -168,11 +172,11 @@
}
}
};
-
-function tr_PFCP_Assoc_Setup_Resp(template (present) Node_ID node_id := ?,
- template (present) Cause cause := ?) return template (present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP();
- t.message_body := {
+template (present) PDU_PFCP
+tr_PFCP_Assoc_Setup_Resp(template (present) Node_ID node_id := ?,
+ template (present) Cause cause := ?)
+modifies tr_PDU_PFCP_ := {
+ message_body := {
pfcp_association_setup_response := {
node_id := node_id,
cause := cause,
@@ -181,31 +185,53 @@
cp_function_features := *,
UP_IP_resource_list := *
}
- };
- return t;
+ }
};
-function ts_PFCP_Assoc_Release_Req(template (value) Node_ID node_id) return template
(value) PDU_PFCP {
- var template (value) PDU_PFCP t := ts_PDU_PFCP();
-
- t.message_body := {
+/* 7.4.4.5 PFCP Association Release Request */
+template (value) PDU_PFCP
+ts_PFCP_Assoc_Release_Req(template (value) Node_ID node_id)
+modifies ts_PDU_PFCP_ := {
+ message_body := {
pfcp_association_release_request := {
node_id := node_id
}
- };
- return t;
+ }
+};
+template (present) PDU_PFCP
+tr_PFCP_Assoc_Release_Req(template (present) Node_ID node_id := ?)
+modifies tr_PDU_PFCP_ := {
+ message_body := {
+ pfcp_association_release_request := {
+ node_id := node_id
+ }
+ }
};
-function tr_PFCP_Assoc_Release_Resp(template (present) Node_ID node_id := ?, template
(present) Cause cause := ?)
- return template (present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP();
- t.message_body := {
+/* 7.4.4.6 PFCP Association Release Response */
+template (value) PDU_PFCP
+ts_PFCP_Assoc_Release_Resp(LIN3_BO_LAST sequence_number,
+ template (value) Node_ID node_id,
+ template (value) Cause cause)
+modifies ts_PDU_PFCP_ := {
+ sequence_number := sequence_number,
+ message_body := {
pfcp_association_release_response := {
node_id := node_id,
cause := cause
}
- };
- return t;
+ }
+};
+template (present) PDU_PFCP
+tr_PFCP_Assoc_Release_Resp(template (present) Node_ID node_id := ?,
+ template (present) Cause cause := ?)
+modifies tr_PDU_PFCP_ := {
+ message_body := {
+ pfcp_association_release_response := {
+ node_id := node_id,
+ cause := cause
+ }
+ }
};
template (value) F_SEID ts_PFCP_F_SEID_ipv4(OCT4 addr_v4, OCT8 seid) := {
@@ -281,15 +307,12 @@
return qname;
}
-function ts_PFCP_Network_Instance(charstring netinst_name) return Network_Instance
-{
- var Network_Instance netinst := {
- elementIdentifier := 22,
- lengthIndicator := 0,
- pdn_instance := f_netinst_str_to_qname(netinst_name)
- }
- return netinst;
-}
+template (value) Network_Instance
+ts_PFCP_Network_Instance(charstring netinst_name) := {
+ elementIdentifier := 22,
+ lengthIndicator := 0,
+ pdn_instance := f_netinst_str_to_qname(netinst_name)
+};
template (value) PDI_IE ts_PFCP_PDI(e_PFCP_Src_Iface src_iface,
template (omit) F_TEID local_F_TEID := omit,
@@ -321,9 +344,7 @@
spare := '000'B
}
-function ts_PFCP_Apply_Action_FORW() return template (value) Apply_Action {
- return ts_PFCP_Apply_Action(forw := '1'B);
-}
+template (value) Apply_Action ts_PFCP_Apply_Action_FORW := ts_PFCP_Apply_Action(forw :=
'1'B);
template (value) Apply_Action ts_PFCP_Apply_Action_DROP := ts_PFCP_Apply_Action(drop :=
'1'B);
template (value) Apply_Action ts_PFCP_Apply_Action_BUFF := ts_PFCP_Apply_Action(buff :=
'1'B);
@@ -471,13 +492,15 @@
}
}
-function ts_PFCP_Session_Est_Req(template (value) Node_ID node_id,
- template (value) F_SEID cp_f_seid,
- Create_PDR_list create_pdr,
- Create_FAR_list create_far)
- return template (value) PDU_PFCP {
- var template (value) PDU_PFCP t := ts_PDU_PFCP();
- t.message_body := {
+/* 7.5.2 PFCP Session Establishment Request */
+template (value) PDU_PFCP
+ts_PFCP_Session_Est_Req(template (value) Node_ID node_id,
+ template (value) F_SEID cp_f_seid,
+ Create_PDR_list create_pdr,
+ Create_FAR_list create_far)
+modifies ts_PDU_PFCP_ := {
+ seid := omit, /* FIXME: shall be set to 0 as per 7.2.2.4.2 */
+ message_body := {
pfcp_session_establishment_request := {
node_id := node_id,
CP_F_SEID := cp_f_seid,
@@ -491,18 +514,27 @@
node_list := omit,
up_inactivity_timer := omit
}
- };
- return t;
+ }
}
-
-function tr_PFCP_Session_Est_Req() return template (present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP(?);
- t.message_body := {
+template (present) PDU_PFCP
+tr_PFCP_Session_Est_Req(template (present) Node_ID node_id := ?)
+modifies tr_PDU_PFCP_ := {
+ seid := ?,
+ message_body := {
pfcp_session_establishment_request := {
- node_id := ?
+ node_id := node_id,
+ CP_F_SEID := ?,
+ create_PDR_list := ?,
+ create_FAR_list := ?,
+ create_URR_list := *,
+ create_QER_list := *,
+ create_BAR := *,
+ create_traffic_endpoint_list := *,
+ pdn_type := *,
+ node_list := *,
+ up_inactivity_timer := *
}
- };
- return t;
+ }
}
template (value) Created_PDR ts_PFCP_Created_PDR(PDR_ID pdr_id, template (value) F_TEID
local_F_TEID) := {
@@ -514,22 +546,27 @@
}
}
-function ts_PFCP_Session_Est_Resp(LIN3_BO_LAST seq_nr, template (value) Node_ID node_id,
OCT8 seid)
- return template (value) PDU_PFCP {
- var template (value) PDU_PFCP t := ts_PDU_PFCP(seq_nr, seid);
- t.sequence_number := seq_nr;
- t.message_body := {
+/* 7.5.3 PFCP Session Establishment Response */
+template (value) PDU_PFCP
+ts_PFCP_Session_Est_Resp(template (value) LIN3_BO_LAST seq_nr,
+ template (value) Node_ID node_id,
+ template (value) OCT8 seid)
+modifies ts_PDU_PFCP_ := {
+ seid := seid,
+ sequence_number := seq_nr,
+ message_body := {
pfcp_session_establishment_response := {
node_id := node_id,
cause := ts_PFCP_Cause(REQUEST_ACCEPTED)
}
- };
- return t;
+ }
}
-
-function tr_PFCP_Session_Est_Resp(template (present) OCT8 hdr_seid := ?) return template
(present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP(hdr_seid);
- t.message_body := {
+template (present) PDU_PFCP
+tr_PFCP_Session_Est_Resp(template (present) OCT8 seid := ?)
+modifies tr_PDU_PFCP_ := {
+ seid := seid,
+ sequence_number := ?,
+ message_body := {
pfcp_session_establishment_response := {
node_id := ?,
cause := tr_PFCP_Cause(REQUEST_ACCEPTED),
@@ -542,14 +579,16 @@
failed_rule_id := *,
created_traffic_endpoint_list := *
}
- };
- 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 := {
+/* 7.5.4 PFCP Session Modification Request */
+template (value) PDU_PFCP
+ts_PFCP_Session_Mod_Req(template (value) OCT8 seid,
+ Update_FAR update_far)
+modifies ts_PDU_PFCP_ := {
+ seid := seid,
+ message_body := {
pfcp_session_modification_request := {
f_seid := omit,
remove_PDR_list := omit,
@@ -576,21 +615,25 @@
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 := {
+template (present) PDU_PFCP
+tr_PFCP_Session_Mod_Req(template (present) OCT8 seid := ?)
+modifies tr_PDU_PFCP_ := {
+ seid := seid,
+ message_body := {
pfcp_session_modification_request := ?
- };
- return t;
+ }
}
-function ts_PFCP_Session_Mod_Resp(LIN3_BO_LAST seq_nr, OCT8 seid) return template (value)
PDU_PFCP {
- var template (value) PDU_PFCP t := ts_PDU_PFCP(seq_nr, seid);
- t.message_body := {
+/* 7.5.5 PFCP Session Modification Response */
+template (value) PDU_PFCP
+ts_PFCP_Session_Mod_Resp(template (value) LIN3_BO_LAST seq_nr,
+ template (value) OCT8 seid)
+modifies ts_PDU_PFCP_ := {
+ seid := seid,
+ sequence_number := seq_nr,
+ message_body := {
pfcp_session_modification_response := {
cause := ts_PFCP_Cause(REQUEST_ACCEPTED),
offending_IE := omit,
@@ -602,54 +645,59 @@
additional_usage_reports_information := omit,
created_updated_traffic_endpoint := omit
}
- };
- 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 := {
+template (present) PDU_PFCP
+tr_PFCP_Session_Mod_Resp(template (present) OCT8 seid := ?)
+modifies tr_PDU_PFCP_ := {
+ seid := seid,
+ 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 := {
+/* 7.5.6 PFCP Session Deletion Request */
+template (value) PDU_PFCP
+ts_PFCP_Session_Del_Req(template (value) OCT8 seid)
+modifies ts_PDU_PFCP_ := {
+ seid := seid,
+ message_body := {
pfcp_session_deletion_request := { }
- };
- return t;
+ }
}
-
-function tr_PFCP_Session_Del_Req(template (present) OCT8 seid := ?) return template
(present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP(seid);
- t.message_body := {
+template (present) PDU_PFCP
+tr_PFCP_Session_Del_Req(template (present) OCT8 seid := ?)
+modifies tr_PDU_PFCP_ := {
+ seid := seid,
+ message_body := {
pfcp_session_deletion_request := ?
- };
- return t;
+ }
}
-function ts_PFCP_Session_Del_Resp(LIN3_BO_LAST seq_nr, OCT8 seid, e_PFCP_Cause cause :=
REQUEST_ACCEPTED)
- return template (value) PDU_PFCP {
- var template (value) PDU_PFCP t := ts_PDU_PFCP(seq_nr, seid);
- t.message_body := {
+/* 7.5.7 PFCP Session Deletion Response */
+template (value) PDU_PFCP
+ts_PFCP_Session_Del_Resp(template (value) LIN3_BO_LAST seq_nr,
+ template (value) OCT8 seid,
+ template (value) Cause cause := ts_PFCP_Cause(REQUEST_ACCEPTED))
+modifies ts_PDU_PFCP_ := {
+ seid := seid,
+ sequence_number := seq_nr,
+ message_body := {
pfcp_session_deletion_response := {
- cause := ts_PFCP_Cause(cause),
+ cause := cause,
offending_IE := omit,
load_control_information := omit,
overload_control_information := omit,
usage_report := omit
}
- };
- return t;
+ }
}
-
-function tr_PFCP_Session_Del_Resp(template (present) OCT8 seid := ?,
- template (present) Cause cause := tr_PFCP_Cause(REQUEST_ACCEPTED))
- return template (present) PDU_PFCP {
- var template PDU_PFCP t := tr_PDU_PFCP(seid);
- t.message_body := {
+template (present) PDU_PFCP
+tr_PFCP_Session_Del_Resp(template (present) OCT8 seid,
+ template (present) Cause cause := tr_PFCP_Cause(REQUEST_ACCEPTED))
+modifies tr_PDU_PFCP_ := {
+ seid := seid,
+ message_body := {
pfcp_session_deletion_response := {
cause := cause,
offending_IE := *,
@@ -657,8 +705,7 @@
overload_control_information := *,
usage_report := *
}
- };
- return t;
+ }
}
}
diff --git a/upf/UPF_Tests.ttcn b/upf/UPF_Tests.ttcn
index cb8c489..37af9b3 100644
--- a/upf/UPF_Tests.ttcn
+++ b/upf/UPF_Tests.ttcn
@@ -615,7 +615,7 @@
valueof(
ts_PFCP_Create_FAR(
far_id,
- ts_PFCP_Apply_Action_FORW(),
+ ts_PFCP_Apply_Action_FORW,
valueof(ts_PFCP_Forwarding_Parameters(CORE))
)
)
@@ -645,7 +645,7 @@
valueof(
ts_PFCP_Create_FAR(
far_id,
- ts_PFCP_Apply_Action_FORW(),
+ ts_PFCP_Apply_Action_FORW,
valueof(ts_PFCP_Forwarding_Parameters(
ACCESS,
ts_PFCP_Outer_Header_Creation_GTP_ipv4(
@@ -682,7 +682,7 @@
valueof(
ts_PFCP_Create_FAR(
far_id,
- ts_PFCP_Apply_Action_FORW(),
+ ts_PFCP_Apply_Action_FORW,
valueof(ts_PFCP_Forwarding_Parameters(dest_iface,
ts_PFCP_Outer_Header_Creation_GTP_ipv4(dest_remote_f_teid.teid,
dest_remote_f_teid.ipv4_address)))
@@ -727,7 +727,7 @@
return valueof(
ts_PFCP_Update_FAR(
gtp.core.tunmap.far_id,
- ts_PFCP_Apply_Action_FORW(),
+ ts_PFCP_Apply_Action_FORW,
valueof(ts_PFCP_Update_Forwarding_Parameters(
CORE,
ts_PFCP_Outer_Header_Creation_GTP_ipv4(gtp.core.tunmap.teid_r,
@@ -763,7 +763,7 @@
valueof(
ts_PFCP_Create_FAR(
far_id,
- ts_PFCP_Apply_Action_FORW(),
+ ts_PFCP_Apply_Action_FORW,
valueof(ts_PFCP_Forwarding_Parameters(ACCESS))
)
)
@@ -788,7 +788,7 @@
valueof(
ts_PFCP_Create_FAR(
far_id,
- ts_PFCP_Apply_Action_FORW(),
+ ts_PFCP_Apply_Action_FORW,
valueof(ts_PFCP_Forwarding_Parameters(ACCESS))
)
)
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37942?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I04735adf88c81b949e1dca6e9ab9a3b37ba78bd6
Gerrit-Change-Number: 37942
Gerrit-PatchSet: 4
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>