cbc: Send Write-Replace-Warn-Ind after ACKing the request

This way we can test how does osmo-cbc behave when receiving such
message.

Related: OS#4945
Change-Id: Ifcdcddc7dccb5439126a5fa29bb540669ed25908
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,