pespin submitted this change.
2 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.
smf: Clean up code building SBI URIs
There's in general no need to use functions, constants and templates
can be used most of the time.
Also clean up namings, order of definitions, make them look more or less
similar in all interfaces, etc.
Change-Id: I1bdc87adecc47a96221e4566f4a575d64dfab7d3
---
M smf/SMF_Session_CT_5G.ttcn
M smf/SMF_Tests.ttcn
2 files changed, 60 insertions(+), 40 deletions(-)
diff --git a/smf/SMF_Session_CT_5G.ttcn b/smf/SMF_Session_CT_5G.ttcn
index b9d060a..70c029a 100644
--- a/smf/SMF_Session_CT_5G.ttcn
+++ b/smf/SMF_Session_CT_5G.ttcn
@@ -46,9 +46,26 @@
}
/********************************************
- * N11 Nsmf (SBI): Requests towards IUT SMF
+ * SCP
+/*******************************************/
+const charstring SCP_uri_hostport := mp_scp_local_ip & ":" & int2str(mp_scp_local_port);
+const charstring SCP_uri_prefix := "http://" & SCP_uri_hostport;
+
+/********************************************
+ * N11 Nsmf (SBI): Requests towards IUT SMFs
********************************************/
+const charstring Nsmf_uri_hostport := mp_smf_hostname & ":" & int2str(mp_smf_sbi_port);
+const charstring Nsmf_uri_prefix := "http://" & Nsmf_uri_hostport;
+const charstring Nsmf_PDUSession_path_api_prefix := "/nsmf-pdusession/v1"
+const charstring Nsmf_PDUSession_path_sm_contexts := Nsmf_PDUSession_path_api_prefix & "/sm-contexts";
+
+template (value) charstring ts_Nsmf_PDUSession_path_sm_contexts(template (value) charstring pdu_sess_id) :=
+ Nsmf_PDUSession_path_sm_contexts & "/" & valueof(pdu_sess_id);
+
+template (present) charstring tr_Nsmf_PDUSession_uri_sm_contexts(template charstring pdu_sess_id := pattern "\d+") :=
+ pattern Nsmf_uri_prefix & Nsmf_PDUSession_path_sm_contexts & "/" & pdu_sess_id;
+
function f_n11_init() runs on SMF_Session_CT {
f_http2_adapter_init();
f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, -1);
@@ -110,7 +127,7 @@
ratType := ts_RatType(NR),
ueLocation := ts_UserLocation(nrLocation := ts_NrLocation(tai := ts_Tai(plmn_id, "000001"),
ncgi := ts_Ncgi(plmn_id, "000000000"))),
- smContextStatusUri := f_amf_callback_uri(g_pars.imsi_str, "sm-context-status", pdu_sess_id));
+ smContextStatusUri := ts_Namf_Callback_uri_imsi_sm_context_status_id(g_pars.imsi_str, int2str(pdu_sess_id)));
sm_contexts_enc := f_enc_SmContextCreateData(valueof(sm_contexts));
var charstring boundary := "=-0EVVjxcWWFYNd1JXh1OQEg=="
@@ -125,8 +142,8 @@
pseudo_hdr := ts_HTTP2_pseudo_headers_Req(method := "POST",
scheme := "http",
- authority := mp_smf_hostname & ":" & int2str(mp_smf_sbi_port),
- path := "/nsmf-pdusession/v1/sm-contexts");
+ authority := Nsmf_uri_hostport,
+ path := Nsmf_PDUSession_path_sm_contexts);
hdr_li := {
ts_HTTP2_Hdr_content_type("multipart/related; boundary=\"" & boundary & "\""),
ts_HTTP2_Hdr_accept("application/json,application/vnd.3gpp.ngap,application/problem+json"),
@@ -192,12 +209,22 @@
* N11 Namf (SBI): Emulated AMF
**************************************/
-const charstring Namf_Communication_API_PREFIX := "/namf-comm/v1"
+const charstring Namf_uri_prefix := SCP_uri_prefix;
-function f_namf_comm_uri_imsi_prefix(charstring imsi)
-return charstring {
- return Namf_Communication_API_PREFIX & "/ue-contexts" & "/imsi-" & imsi
-}
+const charstring Namf_Callback_path_api_prefix := "/namf-callback/v1";
+
+template (value) charstring ts_Namf_Callback_uri_imsi_sm_context_status_id(template (value) charstring imsi, template (value) charstring id) :=
+ Namf_uri_prefix & Namf_Communication_path_ue_contexts & "/imsi-" & valueof(imsi) & "/sm-context-status/" & valueof(id);
+
+
+const charstring Namf_Communication_path_api_prefix := "/namf-comm/v1";
+const charstring Namf_Communication_path_ue_contexts := Namf_Communication_path_api_prefix & "/ue-contexts";
+
+template (value) charstring ts_Namf_Communication_path_ue_contexts(template (value) charstring imsi) :=
+ Namf_Communication_path_ue_contexts & "/imsi-" & valueof(imsi);
+
+template (value) charstring ts_Namf_Communication_path_ue_contexts_n1_n2_messages(template (value) charstring imsi) :=
+ Namf_Communication_path_ue_contexts & "/imsi-" & valueof(imsi) & "/n1-n2-messages";
/* 3GPP TS 29.518:
* 6.1.3.5 Resource: N1N2 Messages Collection */
@@ -209,7 +236,7 @@
var template HTTP2_header_list headers := *;
pseudo_headers := tr_HTTP2_pseudo_headers_Req(method := "POST",
- path := f_namf_comm_uri_imsi_prefix(g_pars.imsi_str) & "/n1-n2-messages");
+ path := ts_Namf_Communication_path_ue_contexts_n1_n2_messages(g_pars.imsi_str));
hb := tr_HTTP2_header_block(pseudo_headers, headers);
http2_msg := tr_HTTP2_Msg(?, ?,
hb := hb,
@@ -270,17 +297,23 @@
* N10 Nudm (SBI): Emulated UDM
*************************************/
-const charstring Nudm_SDM_API_PREFIX := "/nudm-sdm/v2"
+const charstring Nudm_uri_prefix := SCP_uri_prefix;
+const charstring Nudm_SDM_path_api_prefix := "/nudm-sdm/v2"
-function f_nudm_sdm_uri_imsi_prefix(charstring imsi)
-return charstring {
- return Nudm_SDM_API_PREFIX & "/imsi-" & imsi
-}
-function f_nudm_sdm_uri_imsi_subscr_prefix(charstring imsi, charstring opcode, integer pduSessionId)
-return charstring {
- return f_nudm_sdm_uri_imsi_prefix(imsi) & "/" & opcode & "/" & int2str(pduSessionId);
-}
+template (value) charstring ts_Nudm_SDM_path_sdm_imsi(template (value) charstring imsi) :=
+ Nudm_SDM_path_api_prefix & "/imsi-" & valueof(imsi);
+
+template (value) charstring ts_Nudm_SDM_path_sdm_imsi_sdm_subscriptions(template (value) charstring imsi) :=
+ Nudm_SDM_path_api_prefix & "/imsi-" & valueof(imsi) & "/sdm-subscriptions";
+
+template (value) charstring ts_Nudm_SDM_path_sdm_imsi_sdm_subscriptions_id(template (value) charstring imsi, template (value) charstring subscr_id) :=
+ Nudm_SDM_path_api_prefix & "/imsi-" & valueof(imsi) & "/sdm-subscriptions/" & valueof(subscr_id);
+
+template (value) charstring ts_Nudm_SDM_uri_sdm_imsi_sdm_subscriptions_id(template (value) charstring imsi, template (value) charstring subscr_id) :=
+ Nudm_uri_prefix & Nudm_SDM_path_api_prefix & "/imsi-" & valueof(imsi) & "/sdm-subscriptions/" & valueof(subscr_id);
+
+
/* 3GPP TS 29.503:
* 5.2.2.2.5 Session Management Subscription Data Retrieval
@@ -293,7 +326,7 @@
var template HTTP2_header_list headers := *;
pseudo_headers := tr_HTTP2_pseudo_headers_Req(method := "GET",
- path := pattern Nudm_SDM_API_PREFIX & "/imsi-" & g_pars.imsi_str & "/sm-data*");
+ path := pattern Nudm_SDM_path_api_prefix & "/imsi-" & g_pars.imsi_str & "/sm-data*");
hb := tr_HTTP2_header_block(pseudo_headers, headers);
http2_msg := tr_HTTP2_Msg(?, ?, hb := hb, body := omit);
return http2_msg;
@@ -354,7 +387,7 @@
var template HTTP2_header_list headers := *;
pseudo_headers := tr_HTTP2_pseudo_headers_Req(method := "POST",
- path := f_nudm_sdm_uri_imsi_prefix(g_pars.imsi_str) & "/sdm-subscriptions");
+ path := ts_Nudm_SDM_path_sdm_imsi_sdm_subscriptions(g_pars.imsi_str));
hb := tr_HTTP2_header_block(pseudo_headers, headers);
http2_msg := tr_HTTP2_Msg(?, ?,
hb := hb,
@@ -381,7 +414,7 @@
http2_rx.stream_id,
headers := {
ts_HTTP2_Hdr_content_type("application/json; charset=utf-8"),
- ts_HTTP2_Hdr_location(f_scp_uri_prefix() & f_nudm_sdm_uri_imsi_subscr_prefix(g_pars.imsi_str, "sdm-subscriptions", 1))
+ ts_HTTP2_Hdr_location(ts_Nudm_SDM_uri_sdm_imsi_sdm_subscriptions_id(g_pars.imsi_str, int2str(1)))
},
body := ts_HTTP2_Data_frame(http2_rx.stream_id,
end_stream_flag := true,
@@ -395,12 +428,9 @@
* N8 NPcf (SBI): Emulated PCF
*************************************/
-const charstring Npcf_SMPolicyControl_API_PREFIX := "/npcf-smpolicycontrol/v1"
-
-function f_npcf_smpolicycontrol_uri_imsi_prefix(charstring imsi)
-return charstring {
- return Npcf_SMPolicyControl_API_PREFIX & "/imsi-" & imsi
-}
+const charstring Npcf_uri_prefix := SCP_uri_prefix;
+const charstring Npcf_SMPolicyControl_path_api_prefix := "/npcf-smpolicycontrol/v1"
+const charstring Npcf_SMPolicyControl_path__sm_policies := Npcf_SMPolicyControl_path_api_prefix & "/sm-policies";
/* 3GPP TS 29.512:
* 5.3.2 Resource: SM Policies */
@@ -412,7 +442,7 @@
var template HTTP2_header_list headers := *;
pseudo_headers := tr_HTTP2_pseudo_headers_Req(method := "POST",
- path := Npcf_SMPolicyControl_API_PREFIX & "/sm-policies");
+ path := Npcf_SMPolicyControl_path__sm_policies);
hb := tr_HTTP2_header_block(pseudo_headers, headers);
http2_msg := tr_HTTP2_Msg(?, ?,
hb := hb,
@@ -440,7 +470,7 @@
http2_rx.stream_id,
headers := {
ts_HTTP2_Hdr_content_type("application/json; charset=utf-8"),
- ts_HTTP2_Hdr_location(f_scp_uri_prefix() & Npcf_SMPolicyControl_API_PREFIX & "/sm-policies/imsi-" & g_pars.imsi_str & "-" & int2str(sessRuleId))
+ ts_HTTP2_Hdr_location(Npcf_uri_prefix & Npcf_SMPolicyControl_path_api_prefix & "/sm-policies/imsi-" & g_pars.imsi_str & "-" & int2str(sessRuleId))
},
body := ts_HTTP2_Data_frame(http2_rx.stream_id,
end_stream_flag := true,
diff --git a/smf/SMF_Tests.ttcn b/smf/SMF_Tests.ttcn
index 2becc57..97afed9 100644
--- a/smf/SMF_Tests.ttcn
+++ b/smf/SMF_Tests.ttcn
@@ -315,16 +315,6 @@
return vc_conn;
}
-function f_scp_uri_prefix() return charstring
-{
- return "http://" & mp_scp_local_ip & ":" & int2str(mp_scp_local_port);
-}
-function f_amf_callback_uri(charstring imsi, charstring opcode, integer pduSessionId) return charstring
-{
- return f_scp_uri_prefix() &
- "/namf-callback/v1/imsi-" & imsi & "/" & opcode & "/" & int2str(pduSessionId);
-}
-
/* send echo request; expect response */
testcase TC_tx_echo() runs on SMF_Test_CT {
timer T := 5.0;
To view, visit change 43671. To unsubscribe, or for help writing mail filters, visit settings.