From ad43b390127e741096d0203a57f848ca8ff03aba Mon Sep 17 00:00:00 2001
From: juvancic <juvancic@sintesio.org>
Date: Thu, 1 Jun 2023 09:45:29 +0200
Subject: [PATCH] added emergency config parameters/intefcaes

---
 ttcn/LibIot/LibIot_VxLTE_Functions.ttcn | 33 ++++++++++++++++++++++---
 ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn    |  6 ++++-
 ttcn/LibIot/LibIot_VxLTE_Templates.ttcn | 31 ++++++++++++++++++-----
 3 files changed, 60 insertions(+), 10 deletions(-)

diff --git a/ttcn/LibIot/LibIot_VxLTE_Functions.ttcn b/ttcn/LibIot/LibIot_VxLTE_Functions.ttcn
index 2de6b27..a785056 100644
--- a/ttcn/LibIot/LibIot_VxLTE_Functions.ttcn
+++ b/ttcn/LibIot/LibIot_VxLTE_Functions.ttcn
@@ -60,6 +60,9 @@ module LibIot_VxLTE_Functions     {
 			if (PX_SIP_MW_EB_MONITORENABLED == true){
 				vc_MonIntfList.mwEB := valueof(m_MonIntf_Sip_Mw_EB);
 			}
+			if (PX_SIP_ML_E_LRF_MONITORENABLED == true){
+				vc_MonIntfList.mlE_LRF := valueof(m_MonIntf_Sip_Ml_E_LRF);
+			}
 			if (PX_SIP_MW_S_PSAP_MONITORENABLED == true){
 			    vc_MonIntfList.mwS_PSAP := valueof(m_MonIntf_Sip_MwS_PSAP);
 		    }
@@ -136,6 +139,9 @@ module LibIot_VxLTE_Functions     {
 			if (isvalue(vc_MonIntfList.mwEB)){
 				vc_vxlte_monitor_components.mwEB := f_cf_create_monitor_sip ( vc_MonIntfList.mwEB);
 			}
+			if (isvalue(vc_MonIntfList.mlE_LRF)){
+				vc_vxlte_monitor_components.mlE_LRF := f_cf_create_monitor_sip ( vc_MonIntfList.mlE_LRF);
+			}
 			if (isvalue(vc_MonIntfList.mwS_PSAP)){
 				vc_vxlte_monitor_components.mwS_PSAP := f_cf_create_monitor_sip ( vc_MonIntfList.mwS_PSAP);
 			}
@@ -241,6 +247,15 @@ module LibIot_VxLTE_Functions     {
 														)
 													 )));
 			}
+			if (isvalue(vc_MonIntfList.mlE_LRF)){
+				f_cf_monitor_up_sip(vc_vxlte_monitor_components.mlE_LRF);
+				vc_vxlte_monitor_components.mlE_LRF.start(f_cf_setFilter(
+														valueof (m_SetFilterReq(
+																	e_sip,
+																	{vc_MonIntfList.mlE_LRF.interfaceInfo}
+														)
+													 )));
+			}
 			if (isvalue(vc_MonIntfList.mwS_PSAP)){
 			    f_cf_monitor_up_sip(vc_vxlte_monitor_components.mwS_PSAP);
 			    vc_vxlte_monitor_components.mwS_PSAP.start(f_cf_setFilter(
@@ -429,6 +444,9 @@ module LibIot_VxLTE_Functions     {
 			if (isvalue(vc_MonIntfList.mwEB)){
 				f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwEB);
 			}
+			if (isvalue(vc_MonIntfList.mlE_LRF)){
+				f_cf_monitor_down_sip(vc_vxlte_monitor_components.mlE_LRF);
+			}
 			if (isvalue(vc_MonIntfList.mwS_PSAP)){
 				f_cf_monitor_down_sip(vc_vxlte_monitor_components.mwS_PSAP);
 			}
@@ -521,11 +539,12 @@ module LibIot_VxLTE_Functions     {
 
 //            if (vc_vxlte_monitor_components.gmA.vc_interfacename) {return true;}
             if ((isvalue(vc_MonIntfList.gmA))  and (vc_MonIntfList.gmA.interfaceName==p_interfaceName)){ return true;}
-            //if ((isvalue(vc_MonIntfList.gmB))  and (vc_MonIntfList.gmB.interfaceName==p_interfaceName)){ return true;}
+            if ((isvalue(vc_MonIntfList.gmB))  and (vc_MonIntfList.gmB.interfaceName==p_interfaceName)){ return true;}
 
             if ((isvalue(vc_MonIntfList.mmB_PSAP)) and (vc_MonIntfList.mmB_PSAP.interfaceName==p_interfaceName)){ return true;}
 			if ((isvalue(vc_MonIntfList.mwEB)) and (vc_MonIntfList.mwEB.interfaceName==p_interfaceName)){ return true;}
-			if ((isvalue(vc_MonIntfList.mwS_PSAP)) and (vc_MonIntfList.mwS_PSAP.interfaceName==p_interfaceName)){ return true;}
+			if ((isvalue(vc_MonIntfList.mlE_LRF)) and (vc_MonIntfList.mlE_LRF.interfaceName==p_interfaceName)){ return true;}
+            if ((isvalue(vc_MonIntfList.mwS_PSAP)) and (vc_MonIntfList.mwS_PSAP.interfaceName==p_interfaceName)){ return true;}
             if ((isvalue(vc_MonIntfList.ic))   and (vc_MonIntfList.ic.interfaceName==p_interfaceName)){ return true;}
 
             if ((isvalue(vc_MonIntfList.mwPI)) and (vc_MonIntfList.mwPI.interfaceName==p_interfaceName)){ return true;}
@@ -568,7 +587,7 @@ module LibIot_VxLTE_Functions     {
         
         var InterfaceAvailableList v_VxLTE_MonIntf_Available;
         var InterfaceAvailable v_InterfaceAvailable;
-        var SipInterfaceMonitor v_gmA, v_gmB, v_mmBPSAP, v_mwEB, v_mwSPSAP, v_ic, v_mwPI, v_mwPS, v_mwPE, v_mwSI, v_mwPB, v_mwIB, v_mwIE, v_isc;
+        var SipInterfaceMonitor v_gmA, v_gmB, v_mmBPSAP, v_mwEB, v_mlE_LRF, v_mwSPSAP, v_ic, v_mwPI, v_mwPS, v_mwPE, v_mwSI, v_mwPB, v_mwIB, v_mwIE, v_isc;
         var DiameterInterfaceMonitor v_cxIH, v_cxSH, v_gx, v_rx, v_s6a, v_s9, v_sh;
         
         if (PX_SIP_GMA_MONITORENABLED == true){
@@ -601,6 +620,14 @@ module LibIot_VxLTE_Functions     {
 			v_mwEB := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_Mw_EB)/*PX_SIP_MW_PI_INTERFACENAME*/ );
 			f_cf_monitor_up_sip(v_mwEB);
 		}
+		if (PX_SIP_ML_E_LRF_MONITORENABLED == true){
+    
+			v_InterfaceAvailable.interfaceName := PX_SIP_ML_E_LRF_INTERFACENAME; 
+			v_InterfaceAvailable.available := PX_SIP_ML_E_LRF_MONITORENABLED;
+			v_VxLTE_MonIntf_Available := f_update_MonitorInterfaceList(v_VxLTE_MonIntf_Available,v_InterfaceAvailable);
+			v_mlE_LRF := f_cf_create_monitor_sip (  valueof(m_MonIntf_Sip_Ml_E_LRF)/*PX_SIP_MW_PI_INTERFACENAME*/ );
+			f_cf_monitor_up_sip(v_mlE_LRF);
+		}
 		if (PX_SIP_MW_S_PSAP_MONITORENABLED == true){
     
 		    v_InterfaceAvailable.interfaceName := PX_SIP_MW_S_PSAP_INTERFACENAME; 
diff --git a/ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn b/ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn
index 934c366..f240415 100644
--- a/ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn
+++ b/ttcn/LibIot/LibIot_VxLTE_PIXITS.ttcn
@@ -54,6 +54,7 @@ module LibIot_VxLTE_PIXITS     {
             group Mw{
                 modulepar charstring    PX_SIP_MM_B_PSAP_INTERFACENAME  := "Mm IBCF PSAP";              //Mm interface between IBCF and PSAP
 				modulepar charstring    PX_SIP_MW_EB_INTERFACENAME      := "Mw ECSCF IBCF";             //Mw interface between ECSCF and IBCF
+				modulepar charstring    PX_SIP_ML_E_LRF_INTERFACENAME   := "Ml ECSCF LRF";              //Ml interface between ECSCF and LRF
                 modulepar charstring    PX_SIP_MW_S_PSAP_INTERFACENAME  := "Mw SCSCF PSAP";             //Mw interface between S-CSCF and PSAP
                 modulepar charstring    PX_SIP_MW_PI_INTERFACENAME  := "Mw PI";                  //Mw interface between P-CSCF and I-CSCF
                 modulepar charstring    PX_SIP_MW_PS_INTERFACENAME  := "Mw PS";                  //Mw interface between P-CSCF and S-CSCF
@@ -72,10 +73,13 @@ module LibIot_VxLTE_PIXITS     {
                 modulepar integer       PX_SIP_MW_S_CSCF_PORT       := 5090;                     //Mw Port number of S-CSCF
                 modulepar charstring    PX_SIP_MW_E_CSCF_IPADDR     := "fe80::21a:a0ff:fe07:98"; //Mw IP address of E-CSCF
                 modulepar integer       PX_SIP_MW_E_CSCF_PORT       := 5095;                     //Mw Port number of E-CSCF
+				modulepar charstring    PX_SIP_ML_LRF_IPADDR        := "fe80::21a:a0ff:fe07:98"; //Mw IP address of E-CSCF
+				modulepar integer       PX_SIP_ML_LRF_PORT          := 5095;                     //Mw Port number of E-CSCF
                 modulepar charstring    PX_SIP_MW_IBCF_IPADDR       := "fe80::21a:a0ff:fe07:98"; //Mw IP address of IBCF
                 modulepar integer       PX_SIP_MW_IBCF_PORT         := 5050;                     //Mw Port number of IBCF
 				modulepar boolean       PX_SIP_MM_B_PSAP_MONITORENABLED := true; //true - Monitor enabled for PSAP connection only
-				modulepar boolean       PX_SIP_MW_EB_MONITORENABLED := true; //true - Monitor enabled for PE connection only
+				modulepar boolean       PX_SIP_MW_EB_MONITORENABLED := true; //true - Monitor enabled for EB connection only
+				modulepar boolean       PX_SIP_ML_E_LRF_MONITORENABLED := true; //true - Monitor enabled for E-LRF connection only
                 modulepar boolean       PX_SIP_MW_S_PSAP_MONITORENABLED := true; //true - Monitor enabled for PSAP connection only
                 modulepar boolean       PX_SIP_MW_PI_MONITORENABLED := true; //true - Monitor enabled for PI connection only
                 modulepar boolean       PX_SIP_MW_PS_MONITORENABLED := true; //true - Monitor enabled for PS connection only
diff --git a/ttcn/LibIot/LibIot_VxLTE_Templates.ttcn b/ttcn/LibIot/LibIot_VxLTE_Templates.ttcn
index 12cc045..357cc67 100644
--- a/ttcn/LibIot/LibIot_VxLTE_Templates.ttcn
+++ b/ttcn/LibIot/LibIot_VxLTE_Templates.ttcn
@@ -124,12 +124,12 @@ module LibIot_VxLTE_Templates     {
                     interfaceInfo   := {
                         IpInterfaceInfo := {
                             {
-                                domainName :=   "pcscf.ims.domain",
+                                domainName :=   "ibcf.ims.domain",
                                 IpAddress   := PX_SIP_MW_IBCF_IPADDR,
                                 portNumbers := {PX_SIP_MW_IBCF_PORT}
                             },
                             {
-                                domainName :=   "icscf.ims.domain",
+                                domainName :=   "psap.ims.domain",
                                 IpAddress   := PX_SIP_MW_PSAP_IPADDR,
                                 portNumbers := {PX_SIP_MW_PSAP_PORT}
                             }
@@ -143,18 +143,37 @@ module LibIot_VxLTE_Templates     {
 					interfaceInfo   := {
 						IpInterfaceInfo := {
 							{
-								domainName :=   "pcscf.ims.domain",
+								domainName :=   "ecscf.ims.domain",
 								IpAddress   := PX_SIP_MW_E_CSCF_IPADDR,
 								portNumbers := {PX_SIP_MW_E_CSCF_PORT}
 							},
 							{
-								domainName :=   "icscf.ims.domain",
+								domainName :=   "ibcf.ims.domain",
 								IpAddress   := PX_SIP_MW_IBCF_IPADDR,
 								portNumbers := {PX_SIP_MW_IBCF_PORT}
 							}
 						}
 					}
 				};
+                
+				template    MonitorInterfaceInfo    m_MonIntf_Sip_Ml_E_LRF:=
+				{
+					interfaceName   := PX_SIP_ML_E_LRF_INTERFACENAME,
+					interfaceInfo   := {
+						IpInterfaceInfo := {
+							{
+								domainName :=   "ecscf.ims.domain",
+								IpAddress   := PX_SIP_MW_E_CSCF_IPADDR,
+								portNumbers := {PX_SIP_MW_E_CSCF_PORT}
+							},
+							{
+								domainName :=   "lrf.ims.domain",
+								IpAddress   := PX_SIP_ML_LRF_IPADDR,
+								portNumbers := {PX_SIP_ML_LRF_PORT}
+							}
+						}
+					}
+				};
 				
 				template    MonitorInterfaceInfo    m_MonIntf_Sip_MwS_PSAP:= 
 				{
@@ -162,12 +181,12 @@ module LibIot_VxLTE_Templates     {
 					interfaceInfo   := {
 						IpInterfaceInfo := {
 							{
-								domainName :=   "pcscf.ims.domain",
+								domainName :=   "scscf.ims.domain",
 								IpAddress   := PX_SIP_MW_S_CSCF_IPADDR,
 								portNumbers := {PX_SIP_MW_S_CSCF_PORT}
 							},
 							{
-								domainName :=   "icscf.ims.domain",
+								domainName :=   "psap.ims.domain",
 								IpAddress   := PX_SIP_MW_PSAP_IPADDR,
 								portNumbers := {PX_SIP_MW_PSAP_PORT}
 							}
-- 
GitLab