[PATCH] osmo-ttcn3-hacks[master]: RSL_Emulation: Introduce notion of 'bts_role'

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Feb 21 11:21:54 UTC 2018


Review at  https://gerrit.osmocom.org/6627

RSL_Emulation: Introduce notion of 'bts_role'

So far we assumed we emulate the BTS side and talk to a BSC.

Let's make this configurable and disable the BTS-side spcific code
paths by means of a 'bts_role' boolean type.

Change-Id: I0d0460cbb633b470f6117d07643f68aefb1530eb
---
M library/RSL_Emulation.ttcn
1 file changed, 20 insertions(+), 8 deletions(-)


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

diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index dab1785..5c7dc9c 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -52,6 +52,11 @@
 	inout RSLDC_ChanRqd, RSL_Message;
 } with { extension "internal" };
 
+type port RSL_CCHAN_PT message {
+	inout ASP_RSL_Unitdata;
+} with { extension "internal" };
+
+
 signature RSLEM_register(uint8_t trx_nr, RslChannelNr chan_nr, RSL_DchanHdlr hdlr);
 signature RSLEM_unregister(uint8_t trx_nr, RslChannelNr chan_nr, RSL_DchanHdlr hdlr);
 signature RSLEM_suspend(boolean suspend);
@@ -242,6 +247,9 @@
 	port RSL_DCHAN_PT CLIENT_PT;
 	port RSLEM_PROC_PT RSL_PROC;
 
+	/* port for Common Channel / TRX Management */
+	port RSL_CCHAN_PT CCHAN_PT;
+
 	/* state of all concurrent connections / dedicated channels */
 	var ConnectionData ConnectionTable[64];
 }
@@ -268,7 +276,7 @@
 }
 
 
-function main() runs on RSL_Emulation_CT {
+function main(boolean bts_role := true) runs on RSL_Emulation_CT {
 	var ASP_RSL_Unitdata rx_rsl;
 	var RSL_Message rx_rsl_msg;
 	var RSLDC_ChanRqd chan_rqd;
@@ -286,10 +294,10 @@
 		alt {
 		[] IPA_PT.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) {
 			}
-		[] IPA_PT.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_ID_ACK}) {
+		[bts_role] IPA_PT.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_ID_ACK}) {
 			IPA_PT.send(ts_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,ts_RSL_PAGING_LOAD_IND(23)));
 			}
-		[] IPA_PT.receive(tr_RSL(tr_RSL_IMM_ASSIGN)) -> value rx_rsl {
+		[bts_role] IPA_PT.receive(tr_RSL(tr_RSL_IMM_ASSIGN)) -> value rx_rsl {
 			var GsmRrMessage rr;
 			var OCT1 ra;
 			var GsmFrameNumber fn;
@@ -327,7 +335,7 @@
 			}
 		}
 
-		[] IPA_PT.receive(tr_RSL(tr_RSL_PAGING_CMD(?, ?))) -> value rx_rsl {
+		[bts_role] IPA_PT.receive(tr_RSL(tr_RSL_PAGING_CMD(?, ?))) -> value rx_rsl {
 			log("PAGING IDENTITY ", rx_rsl.rsl.ies[2].body.other);
 			/* broadcast to all clients? */
 			for (i := 0; i < sizeof(ConnectionTable); i := i + 1) {
@@ -337,16 +345,20 @@
 			}
 		}
 
+		/* Forward common channel management to the special port for it */
 		[] IPA_PT.receive(tr_RSL(tr_RSL_MsgTypeT(?))) -> value rx_rsl {
-			log("Ingnoring TRX Mgmt ", rx_rsl.rsl);
+			log("Forwarding TRX Mgmt ", rx_rsl.rsl);
+			CCHAN_PT.send(rx_rsl);
 		}
 
+		/* Forward common channel management to the special port for it */
 		[] IPA_PT.receive(tr_RSL(tr_RSL_MsgTypeC(?))) -> value rx_rsl {
-			log("Ignoring Common Channel Mgmt ", rx_rsl.rsl);
+			log("Forwarding Common Channel Mgmt ", rx_rsl.rsl);
+			CCHAN_PT.send(rx_rsl);
 		}
 
 		/* blindly acknowledge all channel activations */
-		[] IPA_PT.receive(tr_RSL(tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV))) -> value rx_rsl {
+		[bts_role] IPA_PT.receive(tr_RSL(tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV))) -> value rx_rsl {
 			chan_nr := rx_rsl.rsl.ies[0].body.chan_nr;
 			IPA_PT.send(ts_ASP_RSL_UD(rx_rsl.streamId, ts_RSL_CHAN_ACT_ACK(chan_nr, 23)));
 		}
@@ -367,7 +379,7 @@
 			self.stop;
 		}
 
-		[] CLIENT_PT.receive(RSLDC_ChanRqd:?) -> value chan_rqd sender vc_conn {
+		[bts_role] CLIENT_PT.receive(RSLDC_ChanRqd:?) -> value chan_rqd sender vc_conn {
 			/* Store the knowledge that this sender has requested a certain RQ+time */
 			f_cid_create(chan_rqd.ra, chan_rqd.fn, vc_conn);
 			IPA_PT.send(ts_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,

-- 
To view, visit https://gerrit.osmocom.org/6627
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0d0460cbb633b470f6117d07643f68aefb1530eb
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>


More information about the gerrit-log mailing list