pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/28883 )


Change subject: WIP
......................................................................

WIP

Change-Id: Ifcdcddc7dccb5439126a5fa29bb540669ed25908
---
M cbc/CBC_Tests.ttcn
M cbc/MME_ConnectionHandler.ttcn
M library/sbcap/SBC_AP_Templates.ttcn
3 files changed, 105 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/83/28883/1

diff --git a/cbc/CBC_Tests.ttcn b/cbc/CBC_Tests.ttcn
index 76fc3be..f39b487 100644
--- a/cbc/CBC_Tests.ttcn
+++ b/cbc/CBC_Tests.ttcn
@@ -115,7 +115,9 @@
                cbc_host := cbc_host,
                cbc_sbcap_port := cbc_sbcap_port,
                start_fn := refers(f_MME_ConnHdlr_start_fn_void),
-               exp_cbs_msg := omit
+               exp_cbs_msg := omit,
+               write_replace_warning_ind_cause := omit,
+               bcast_cell_id_list := omit
        };
        return pars;
 }
@@ -298,6 +300,12 @@

 private function f_mme_create_and_delete() runs on MME_ConnHdlr {
        f_sbcap_handle_write_replace_warn_req(g_pars.exp_cbs_msg, 0);
+       if (ispresent(g_pars.write_replace_warning_ind_cause) and
+           ispresent(g_pars.bcast_cell_id_list)) {
+               f_sbcap_tx_write_replace_warn_ind(0, g_pars.exp_cbs_msg,
+                                                 
g_pars.write_replace_warning_ind_cause,
+                                                 g_pars.bcast_cell_id_list)
+       }
        f_sbcap_handle_stop_warn_req(0, g_pars.exp_cbs_msg);
 }

@@ -411,10 +419,32 @@
        f_shutdown_helper();
 }

+/* Create and delete message with MME available. MME reports
+ * Write-Replace-Warning-Indication and Stop-Warning-Indication to CBC
+ */
+testcase TC_ecbe_create_delete_mme_indication() runs on test_CT {
+       var template (value) CellId_Broadcast_List bcast_cell_id_li;
+       var template (value) CBS_Message msg := t_CBSmsg(48, 16752);
+
+       f_init(num_bsc := 0, num_mme := 1);
+
+       bcast_cell_id_li := {
+               
ts_SBCAP_CellId_Broadcast_List_Item(ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 
1234))
+       };
+       g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
+       g_pars_MME[0].exp_cbs_msg := valueof(msg);
+       g_pars_MME[0].write_replace_warning_ind_cause := 
SBC_AP_Cause_message_accepted;
+       g_pars_MME[0].bcast_cell_id_list := valueof(bcast_cell_id_li);
+       f_start();
+       f_create_and_delete(valueof(msg));
+       f_shutdown_helper();
+}
+
 /* Create and delete message with both BSC and MME available */
 testcase TC_ecbe_create_delete_bsc_and_mme() runs on test_CT {
        f_init(num_bsc := 1, num_mme := 1);
        var template (value) BSSMAP_FIELD_CellIdentificationList 
cell_list_success;
+       var template (value) CellId_Broadcast_List bcast_cell_id_li;
        var template (value) CBS_Message msg := t_CBSmsg(43, 16752);

        cell_list_success := ts_BSSMAP_CIL_CGI({
@@ -425,8 +455,14 @@
        g_pars_BSC[0].start_fn := refers(f_bsc_create_and_delete);
        g_pars_BSC[0].exp_cbs_msg := valueof(msg);
        g_pars_BSC[0].cell_list_success := valueof(cell_list_success);
+
+       bcast_cell_id_li := {
+               
ts_SBCAP_CellId_Broadcast_List_Item(ts_SBCAP_ECGI(f_enc_mcc_mnc('901'H, '70'H), 
1234))
+       };
        g_pars_MME[0].start_fn := refers(f_mme_create_and_delete);
        g_pars_MME[0].exp_cbs_msg := valueof(msg);
+       g_pars_MME[0].write_replace_warning_ind_cause := 
SBC_AP_Cause_message_accepted;
+       g_pars_MME[0].bcast_cell_id_list := valueof(bcast_cell_id_li);
        f_start();
        f_create_and_delete(valueof(msg));
        f_shutdown_helper();
@@ -440,6 +476,7 @@
        execute( TC_ecbe_create_delete_lac() );
        execute( TC_ecbe_create_delete_ci() );
        execute( TC_ecbe_create_delete_lai() );
+       execute( TC_ecbe_create_delete_mme_indication() );
        execute( TC_ecbe_create_delete_bsc_and_mme() );
 }

diff --git a/cbc/MME_ConnectionHandler.ttcn b/cbc/MME_ConnectionHandler.ttcn
index 055aaa3..fec358c 100644
--- a/cbc/MME_ConnectionHandler.ttcn
+++ b/cbc/MME_ConnectionHandler.ttcn
@@ -35,7 +35,9 @@
        charstring cbc_host,
        integer cbc_sbcap_port,
        void_fn start_fn,
-       CBS_Message exp_cbs_msg optional
+       CBS_Message exp_cbs_msg optional,
+       SBC_AP_Cause write_replace_warning_ind_cause optional,
+       CellId_Broadcast_List bcast_cell_id_list optional
 };

 function f_MME_ConnHdlr_main(charstring id, MME_ConnHdlrPars pars) runs on 
MME_ConnHdlr {
@@ -53,6 +55,17 @@
        f_SBC_AP_send(tx, idx);
 }

+function f_sbcap_tx_write_replace_warn_ind(integer idx := 0, CBS_Message msg,
+                                          SBC_AP_Cause cause,
+                                          template (value) 
CellId_Broadcast_List bcast_cell_id_li)
+runs on MME_ConnHdlr {
+       var template (value) SBC_AP_PDU tx;
+       tx := ts_SBCAP_WRITE_WARNING_IND(int2bit(msg.msg_id, 16),
+                                        int2bit(msg.ser_nr, 16),
+                                        cause, bcast_cell_id_li);
+       f_SBC_AP_send(tx, idx);
+}
+
 function f_sbcap_tx_stop_warn_resp(integer idx := 0, CBS_Message msg)
 runs on MME_ConnHdlr {
        var template (value) SBC_AP_PDU tx;
diff --git a/library/sbcap/SBC_AP_Templates.ttcn 
b/library/sbcap/SBC_AP_Templates.ttcn
index d5f2471..0a9519e 100644
--- a/library/sbcap/SBC_AP_Templates.ttcn
+++ b/library/sbcap/SBC_AP_Templates.ttcn
@@ -11,6 +11,28 @@

 import from SBC_AP_Types all;

+/* 3GPP TS 36.413 9.2.1.38 */
+template (value) EUTRAN_CGI ts_SBCAP_ECGI(PLMNidentity plmn_id := '09F107'O, 
integer cell_id := 1) := {
+       pLMNidentity := plmn_id,
+       cell_ID := int2bit(cell_id, 28),
+       iE_Extensions := omit
+}
+
+/* 3GPP TS 36.413 9.2.1.54 */
+template (value) CellId_Broadcast_List_Item 
ts_SBCAP_CellId_Broadcast_List_Item(
+       template (value) EUTRAN_CGI ecgi := ts_SBCAP_ECGI()) := {
+       eCGI := ecgi,
+       iE_Extensions := omit
+}
+template (value) Broadcast_Scheduled_Area_List 
ts_SBCAP_Broadcast_Scheduled_Area_List(
+               template (value) CellId_Broadcast_List cell_id_li := 
{ts_SBCAP_CellId_Broadcast_List_Item()})
+:= {
+       cellId_Broadcast_List := cell_id_li,
+       tAI_Broadcast_List := omit,
+       emergencyAreaID_Broadcast_List := omit,
+       iE_Extensions := omit
+}
+
 template (value) SBC_AP_PDU
 ts_SBCAP_PWS_RESTART(
                        template (value) Restarted_Cell_List restart_cl,
@@ -190,6 +212,37 @@
        }
 }

+/* 4.3.4.2.5 WRITE REPLACE WARNING INDICATION */
+template (value) SBC_AP_PDU
+ts_SBCAP_WRITE_WARNING_IND(template (value) BIT16 p_msg_id, template (value) 
BIT16 p_ser_nr,
+                      template (value) SBC_AP_Cause cause := 
SBC_AP_Cause_message_accepted,
+                      template (value) CellId_Broadcast_List bcast_cell_id_li 
:= {ts_SBCAP_CellId_Broadcast_List_Item()}) := {
+       initiatingMessage := {
+               procedureCode := id_Write_Replace_Warning_Indication,
+               criticality := ignore,
+               value_ := {
+                       write_Replace_Warning_Indication := {
+                               protocolIEs := {
+                                       {
+                                               id := 
SBC_AP_Constants.id_Message_Identifier,
+                                               criticality := reject,
+                                               value_ := { Message_Identifier 
:= p_msg_id }
+                                       }, {
+                                               id := 
SBC_AP_Constants.id_Serial_Number,
+                                               criticality := reject,
+                                               value_ := { Serial_Number := 
p_ser_nr }
+                                       }, {
+                                               id := 
SBC_AP_Constants.id_Broadcast_Scheduled_Area_List,
+                                               criticality := reject,
+                                               value_ := { 
broadcast_Scheduled_Area_List := 
ts_SBCAP_Broadcast_Scheduled_Area_List(bcast_cell_id_li) }
+                                       }
+                               },
+                               protocolExtensions := omit
+                       }
+               }
+       }
+}
+
 /* 4.3.4.2.3 STOP WARNING REQUEST */
 template (value) SBC_AP_PDU
 ts_SBCAP_WRITE_WARNING_RESP(template (value) BIT16 p_msg_id, template (value) 
BIT16 p_ser_nr,

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/28883
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ifcdcddc7dccb5439126a5fa29bb540669ed25908
Gerrit-Change-Number: 28883
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to