upf/PFCP: do not imply f_inet_addr()
PFCP_Templates.ttcn is not the place to do the conversion between string
and OCT4.
When I wanted to use an OCT4 address in some ts_PFCP_* template, it
dawned on me that it is stupid to convert the OCT4 to a string, just so
that the ts_PFCP_* template converts it back to OCT4.
Related: SYS#6192 SYS#5599
Change-Id: Ib068831787f4256f70a2189a5f36ca1ea1f40c9e
diff --git a/library/PFCP_Templates.ttcn b/library/PFCP_Templates.ttcn
index d0e8b67..3f14a1f 100644
--- a/library/PFCP_Templates.ttcn
+++ b/library/PFCP_Templates.ttcn
@@ -11,7 +11,6 @@
module PFCP_Templates {
import from General_Types all;
-import from Native_Functions all;
import from Osmocom_Types all;
import from PFCP_Types all;
@@ -209,14 +208,14 @@
return t;
};
-template (value) F_SEID ts_PFCP_F_SEID_ipv4(charstring addr_v4, OCT8 seid) := {
+template (value) F_SEID ts_PFCP_F_SEID_ipv4(OCT4 addr_v4, OCT8 seid) := {
elementIdentifier := 57,
lengthIndicator := 0,
v6 := '0'B,
v4 := '1'B,
spare := '000000'B,
seid := seid,
- ipv4_address := f_inet_addr(addr_v4),
+ ipv4_address := addr_v4,
ipv6_address := omit
}
@@ -235,18 +234,18 @@
spare := '0000'B
}
-template (value) UE_IP_Address ts_PFCP_UE_IP_Address_v4(charstring addr_v4, boolean is_destination := true) := {
+template (value) UE_IP_Address ts_PFCP_UE_IP_Address_v4(OCT4 addr_v4, boolean is_destination := true) := {
elementIdentifier := 93,
lengthIndicator := 0,
v6 := '0'B,
v4 := '1'B,
sd := bool2bit(is_destination),
spare := '00000'B,
- ipv4_address := f_inet_addr(addr_v4),
+ ipv4_address := addr_v4,
ipv6_address := omit
}
-template (value) F_TEID ts_PFCP_F_TEID_ipv4(OCT4 teid, charstring addr_v4) := {
+template (value) F_TEID ts_PFCP_F_TEID_ipv4(OCT4 teid, OCT4 addr_v4) := {
elementIdentifier := 21,
lengthIndicator := 0,
v4 := '1'B,
@@ -255,7 +254,7 @@
chid := '0'B,
spare := '0000'B,
teid := teid,
- ipv4_address := f_inet_addr(addr_v4),
+ ipv4_address := addr_v4,
ipv6_address := omit,
choose_id := omit
}
@@ -325,13 +324,13 @@
spare := '0000'B
}
-template (value) Outer_Header_Creation ts_PFCP_Outer_Header_Creation_GTP_ipv4(OCT4 remote_teid, charstring remote_addr_v4) := {
+template (value) Outer_Header_Creation ts_PFCP_Outer_Header_Creation_GTP_ipv4(OCT4 remote_teid, OCT4 remote_addr_v4) := {
elementIdentifier := 84,
lengthIndicator := 0,
ohc_description_oct5 := '00000001'B,
ohc_description_oct6 := '00000000'B,
teid := remote_teid,
- ipv4 := f_inet_addr(remote_addr_v4),
+ ipv4 := remote_addr_v4,
ipv6 := omit,
udp_port := omit
}
@@ -419,13 +418,16 @@
}
}
-function ts_PFCP_Session_Est_Req(charstring node_id, OCT8 cp_seid, Create_PDR_list create_pdr, Create_FAR_list create_far)
+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 := {
pfcp_session_establishment_request := {
- node_id := ts_PFCP_Node_ID_ipv4(f_inet_addr(node_id)),
- CP_F_SEID := ts_PFCP_F_SEID_ipv4(node_id, cp_seid),
+ node_id := node_id,
+ CP_F_SEID := cp_f_seid,
create_PDR_list := create_pdr,
create_FAR_list := create_far,
create_URR_list := omit,