pespin has uploaded this change for review.

View Change

ausf,udm,udr,smf: Add func helpers to connect+send HTTP2_Msg

This way we decrease lines and complexity of function calls which are
repeated for almost every procedure.
This way we also enclose multiple mp_* variables further in one place.

Change-Id: I5db2254c3b67af5bfca7e744f3c07e58410befc5
---
M ausf/ConnHdlr.ttcn
M smf/SMF_Session_CT_5G.ttcn
M smf/SMF_Tests.ttcn
M udm/ConnHdlr.ttcn
M udr/ConnHdlr.ttcn
5 files changed, 60 insertions(+), 32 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/65/43965/1
diff --git a/ausf/ConnHdlr.ttcn b/ausf/ConnHdlr.ttcn
index 386c544..dacfa1d 100644
--- a/ausf/ConnHdlr.ttcn
+++ b/ausf/ConnHdlr.ttcn
@@ -90,6 +90,17 @@
f_http2_server_emu_unregister(f_http2_server_path_match(), idx := HTTP2_CONN_SCP);
}

+function f_http2_adapter_connect_ausf(integer idx := 0)
+runs on ConnHdlr {
+ f_http2_adapter_connect(mp_ausf_hostname, mp_ausf_sbi_port, mp_amf_local_ip, idx := idx);
+}
+
+function f_http2_adapter_connect_send_ausf(template (value) HTTP2_Msg http2_msg, integer idx := 0)
+runs on ConnHdlr {
+ f_http2_adapter_connect_ausf(idx := idx);
+ f_http2_adapter_send(http2_msg);
+}
+
/********************************************
* SCP
/*******************************************/
@@ -146,8 +157,7 @@
servingNetworkName := g_pars.serving_network);

http2_tx := f_n12_prepare_post_ue_authentications(valueof(auth_info));
- f_http2_adapter_connect(mp_ausf_hostname, mp_ausf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_ausf(http2_tx, idx := http2_tx.conn_id);

as_Nudm_UEAU_post_generate_auth_data();

@@ -213,8 +223,7 @@
conf_data := ts_ConfirmationData(resStar := ts_ResStar(""));

http2_tx := f_n12_prepare_put_5g_aka_confirmation(valueof(conf_data));
- f_http2_adapter_connect(mp_ausf_hostname, mp_ausf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_ausf(http2_tx, idx := http2_tx.conn_id);

as_Nudm_UEAU_post_auth_events();

diff --git a/smf/SMF_Session_CT_5G.ttcn b/smf/SMF_Session_CT_5G.ttcn
index 03d172c..ff77dad 100644
--- a/smf/SMF_Session_CT_5G.ttcn
+++ b/smf/SMF_Session_CT_5G.ttcn
@@ -69,6 +69,17 @@
f_http2_server_emu_unregister(f_http2_server_path_match(), idx := HTTP2_CONN_SCP);
}

+function f_http2_adapter_connect_smf(integer idx := 0)
+runs on SMF_Session_CT {
+ f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := idx);
+}
+
+function f_http2_adapter_connect_send_smf(template (value) HTTP2_Msg http2_msg, integer idx := 0)
+runs on SMF_Session_CT {
+ f_http2_adapter_connect_smf(idx := idx);
+ f_http2_adapter_send(http2_msg);
+}
+
/********************************************
* SCP
/*******************************************/
@@ -220,7 +231,7 @@

http2_tx := f_n11_prepare_create_sm_context_pdu_sess_establishment();

- f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
+ f_http2_adapter_connect_smf(idx := http2_tx.conn_id);

/////////// START MUTUAL EXCLUSION ZONE ////////////
/* This code block cannot be executed by more than one component at a time because
@@ -344,9 +355,7 @@
var octetstring ngap_enc := f_ngap_pdu_gen_PDUSessionResourceSetupResponseTransfer();

http2_tx := f_n11_prepare_update_sm_context(valueof(sm_ctx_update), ngap_enc);
-
- f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_smf(http2_tx, idx := http2_tx.conn_id);

/* SMF updates RAN GTPU IP addr+TEID info on UPF: */
as_pfcp_sess_mod_req();
@@ -376,9 +385,7 @@
var octetstring ngap_enc := enc_NGAP_PDUSessionResourceReleaseResponseTransfer(valueof(m_pDUSessionResourceReleaseResponseTransfer()));

http2_tx := f_n11_prepare_update_sm_context(valueof(sm_ctx_update), ngap_enc, omit);
-
- f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_smf(http2_tx, idx := http2_tx.conn_id);

/* Successful answer with no content: */
as_http2_adapter_receive(http2_rx, tr_HTTP2_Msg_204_No_Content(), idx := http2_tx.conn_id);
@@ -399,9 +406,7 @@
var octetstring ngnas_enc := f_ng_nas_gen_session_release_complete();

http2_tx := f_n11_prepare_update_sm_context(valueof(sm_ctx_update), omit, ngnas_enc);
-
- f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_smf(http2_tx, idx := http2_tx.conn_id);

/* Successful answer with no content: */
as_http2_adapter_receive(http2_rx, tr_HTTP2_Msg_204_No_Content(), idx := http2_tx.conn_id);
@@ -468,8 +473,7 @@
var octetstring ngap_enc := f_ngap_pdu_gen_PDUSessionResourceSetupResponseTransfer();

http2_tx := f_n11_prepare_release_sm_context(valueof(sm_ctx_rel), ngap_enc);
- f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_smf(http2_tx, idx := http2_tx.conn_id);

/* SMF deletes PDU Session on UPF: */
as_pfcp_sess_del_req();
diff --git a/smf/SMF_Tests.ttcn b/smf/SMF_Tests.ttcn
index c9945c9..14003d2 100644
--- a/smf/SMF_Tests.ttcn
+++ b/smf/SMF_Tests.ttcn
@@ -835,8 +835,7 @@
f_PFCPEM_subscribe_seid(c_SEID0);

http2_tx := f_n11_prepare_create_sm_context_pdu_sess_establishment();
- f_http2_adapter_connect(mp_smf_hostname, mp_smf_sbi_port, mp_amf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_smf(http2_tx, idx := http2_tx.conn_id);

/* PCF: register to rx generic path. We take advantage of the fact that
* we are inside a mutual exclusion zone, so only one session can be here at a time. */
diff --git a/udm/ConnHdlr.ttcn b/udm/ConnHdlr.ttcn
index 89bc0d9..ea0df46 100644
--- a/udm/ConnHdlr.ttcn
+++ b/udm/ConnHdlr.ttcn
@@ -89,6 +89,17 @@
f_http2_server_emu_unregister(f_http2_server_path_match(), idx := HTTP2_CONN_SCP);
}

+function f_http2_adapter_connect_udm(integer idx := 0)
+runs on ConnHdlr {
+ f_http2_adapter_connect(mp_udm_hostname, mp_udm_sbi_port, mp_ausf_local_ip, idx := idx);
+}
+
+function f_http2_adapter_connect_send_udm(template (value) HTTP2_Msg http2_msg, integer idx := 0)
+runs on ConnHdlr {
+ f_http2_adapter_connect_udm(idx := idx);
+ f_http2_adapter_send(http2_msg);
+}
+
/********************************************
* SCP
/*******************************************/
@@ -145,8 +156,7 @@
ausfInstanceId := g_pars.ausf_instance_id);

http2_tx := f_n13_prepare_generate_auth_data(valueof(auth_info_req));
- f_http2_adapter_connect(mp_udm_hostname, mp_udm_sbi_port, mp_ausf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udm(http2_tx, idx := http2_tx.conn_id);

as_Nudr_DR_get_authentication_subscription();

@@ -211,8 +221,7 @@
servingNetworkName := g_pars.serving_network);

http2_tx := f_n13_prepare_auth_events(valueof(auth_event));
- f_http2_adapter_connect(mp_udm_hostname, mp_udm_sbi_port, mp_ausf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udm(http2_tx, idx := http2_tx.conn_id);

as_Nudr_DR_put_authentication_status();

@@ -283,8 +292,7 @@
servingNetworkName := g_pars.serving_network);

http2_tx := f_n13_prepare_individual_auth_event(auth_event);
- f_http2_adapter_connect(mp_udm_hostname, mp_udm_sbi_port, mp_ausf_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udm(http2_tx, idx := http2_tx.conn_id);

/* FIXME: This is probably incorrect, it should send a DELETE, but it's what open5gs-udmd is sending right now...
* See https://github.com/open5gs/open5gs/issues/4896 */
diff --git a/udr/ConnHdlr.ttcn b/udr/ConnHdlr.ttcn
index 9ca68dc..d3eb4cc 100644
--- a/udr/ConnHdlr.ttcn
+++ b/udr/ConnHdlr.ttcn
@@ -90,6 +90,18 @@
f_http2_server_emu_unregister(f_http2_server_path_match(), idx := HTTP2_CONN_SCP);
}

+
+function f_http2_adapter_connect_udr(integer idx := 0)
+runs on ConnHdlr {
+ f_http2_adapter_connect(mp_udr_hostname, mp_udr_sbi_port, mp_udm_local_ip, idx := idx);
+}
+
+function f_http2_adapter_connect_send_udr(template (value) HTTP2_Msg http2_msg, integer idx := 0)
+runs on ConnHdlr {
+ f_http2_adapter_connect_udr(idx := idx);
+ f_http2_adapter_send(http2_msg);
+}
+
/********************************************
* SCP
/*******************************************/
@@ -157,8 +169,7 @@
var template (present) HTTP2_Msg http2_exp_rx;

http2_tx := f_n35_prepare_get_authentication_subscription();
- f_http2_adapter_connect(mp_udr_hostname, mp_udr_sbi_port, mp_udm_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udr(http2_tx, idx := http2_tx.conn_id);

/* 3GPP TS 29.505 Table 5.2.2.3.1-3 */
http2_exp_rx :=
@@ -222,8 +233,7 @@
var template (present) HTTP2_Msg http2_exp_rx;

http2_tx := f_n35_prepare_patch_authentication_subscription(patch_item_li);
- f_http2_adapter_connect(mp_udr_hostname, mp_udr_sbi_port, mp_udm_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udr(http2_tx, idx := http2_tx.conn_id);

/* 3GPP TS 29.505 Table 5.2.2.3.2-3 */
http2_exp_rx :=
@@ -283,8 +293,7 @@
ratType := ts_RatType(NR));

http2_tx := f_n35_prepare_put_amf_3gpp_access(acc_reg);
- f_http2_adapter_connect(mp_udr_hostname, mp_udr_sbi_port, mp_udm_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udr(http2_tx, idx := http2_tx.conn_id);

/* 3GPP TS 29.505 Table 5.2.6.3.1-3 */
http2_exp_rx :=
@@ -336,8 +345,7 @@
var template (present) HTTP2_Msg http2_exp_rx;

http2_tx := f_n35_prepare_patch_amf_3gpp_access(patch_item_li);
- f_http2_adapter_connect(mp_udr_hostname, mp_udr_sbi_port, mp_udm_local_ip, idx := http2_tx.conn_id);
- f_http2_adapter_send(http2_tx);
+ f_http2_adapter_connect_send_udr(http2_tx, idx := http2_tx.conn_id);

/* 3GPP TS 29.505 Table 5.2.6.3.2-3 */
http2_exp_rx :=

To view, visit change 43965. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I5db2254c3b67af5bfca7e744f3c07e58410befc5
Gerrit-Change-Number: 43965
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>