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

L1CTL/bts: Fix tons of compiler warnings by splitting rx+tx templates

Change-Id: I9c8be0856516a6a168795c792f76d14c08c3dabb
---
M bts/BTS_Tests.ttcn
M library/GSM_RR_Types.ttcn
M library/L1CTL_PortType.ttcn
M library/L1CTL_Types.ttcn
M library/LAPDm_RAW_PT.ttcn
5 files changed, 128 insertions(+), 75 deletions(-)


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

diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 32269e2..f3b7a28 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -149,8 +149,8 @@
 }
 
 /* Default SYSTEM INFORMATION 3 */
-template SystemInformation ts_SI3_default := {
-       header := t_RrHeader(SYSTEM_INFORMATION_TYPE_3, 18),
+template (value) SystemInformation ts_SI3_default := {
+       header := ts_RrHeader(SYSTEM_INFORMATION_TYPE_3, 18),
        payload := {
                si3 := {
                        cell_id := 23,
@@ -179,8 +179,8 @@
        }
 }
 
-template SystemInformation ts_SI2_default := {
-       header := t_RrHeader(SYSTEM_INFORMATION_TYPE_2, 22),
+template (value) SystemInformation ts_SI2_default := {
+       header := ts_RrHeader(SYSTEM_INFORMATION_TYPE_2, 22),
        payload := {
                si2 := {
                        bcch_freq_list := '00000000000000000000000000000000'O,
@@ -190,8 +190,8 @@
        }
 }
 
-template SystemInformation ts_SI4_default := {
-       header := t_RrHeader(SYSTEM_INFORMATION_TYPE_4, 12), /* no CBCH / 
restoct */
+template (value) SystemInformation ts_SI4_default := {
+       header := ts_RrHeader(SYSTEM_INFORMATION_TYPE_4, 12), /* no CBCH / 
restoct */
        payload := {
                si4 := {
                        lai := ts_LAI_default,
@@ -324,11 +324,13 @@
 }
 
 private function f_trxc_fake_rssi(uint8_t rssi) runs on ConnHdlr {
-       f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, 
valueof(ts_TRXC_FAKE_RSSI(rssi)));
+       var TrxcMessage ret;
+       ret := f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, 
valueof(ts_TRXC_FAKE_RSSI(rssi)));
 }
 
 private function f_trx_fake_toffs256(int16_t toffs256) runs on ConnHdlr {
-       f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, 
valueof(ts_TRXC_FAKE_TIMING(toffs256)));
+       var TrxcMessage ret;
+       ret := f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, 
valueof(ts_TRXC_FAKE_TIMING(toffs256)));
 }
 
 /* first function started in ConnHdlr component */
@@ -632,8 +634,9 @@
 }
 
 private function f_rach_toffs(int16_t toffs256, boolean expect_pass) runs on 
test_CT {
+       var TrxcMessage ret;
        /* tell fake_trx to use a given timing offset for all bursts */
-       f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, 
valueof(ts_TRXC_FAKE_TIMING(toffs256)));
+       ret := f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, 
valueof(ts_TRXC_FAKE_TIMING(toffs256)));
        f_sleep(0.5);
 
        /* Transmit RACH request + wait for confirmation */
@@ -708,23 +711,23 @@
 /* handle incoming downlink SACCH and respond with uplink SACCH (meas res) */
 altstep as_l1_sacch() runs on ConnHdlr {
        var L1ctlDlMessage l1_dl;
-       [] L1CTL.receive(t_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) -> 
value l1_dl {
+       [] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) 
-> value l1_dl {
                log("SACCH received: ", l1_dl.payload.data_ind.payload);
                var GsmRrL3Message meas_rep := valueof(ts_MEAS_REP(true, 23, 
23, 0, 0, omit));
                var LapdmFrameB lb := valueof(ts_LAPDm_B(0, false, false, 
enc_GsmRrL3Message(meas_rep)));
                log("LAPDm: ", lb);
                var octetstring pl := '0000'O & enc_LapdmFrameB(lb);
-               L1CTL.send(t_L1CTL_DATA_REQ(g_chan_nr, ts_RslLinkID_SACCH(0), 
pl));
+               L1CTL.send(ts_L1CTL_DATA_REQ(g_chan_nr, ts_RslLinkID_SACCH(0), 
pl));
                repeat;
                }
 }
 
 altstep as_l1_dcch() runs on ConnHdlr {
        var L1ctlDlMessage l1_dl;
-       [] L1CTL.receive(t_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_DCCH(?))) -> 
value l1_dl {
+       [] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_DCCH(?))) -> 
value l1_dl {
                log("DCCH received: ", l1_dl.payload.data_ind.payload);
                var octetstring pl := '010301'O;
-               L1CTL.send(t_L1CTL_DATA_REQ(g_chan_nr, ts_RslLinkID_DCCH(0), 
pl));
+               L1CTL.send(ts_L1CTL_DATA_REQ(g_chan_nr, ts_RslLinkID_DCCH(0), 
pl));
                repeat;
                }
 }
@@ -950,7 +953,7 @@
 
        f_est_dchan();
        f_sleep(2.0);
-       L1CTL.send(t_L1CTL_DM_REL_REQ(g_chan_nr));
+       L1CTL.send(ts_L1CTL_DM_REL_REQ(g_chan_nr));
 
        timer T := 40.0;
        T.start;
@@ -990,10 +993,10 @@
 altstep as_l1_count_paging(inout integer num_paging_rcv_msgs, inout integer 
num_paging_rcv_ids)
 runs on test_CT {
        var L1ctlDlMessage dl;
-       [] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, 
c_DummyUI)) {
+       [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, 
c_DummyUI)) {
                repeat;
        }
-       [] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl 
{
+       [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value 
dl {
                var octetstring without_plen :=
                        substr(dl.payload.data_ind.payload, 1, 
lengthof(dl.payload.data_ind.payload)-1);
                var PDU_ML3_NW_MS rr := dec_PDU_ML3_NW_MS(without_plen);
@@ -1582,7 +1585,7 @@
 
        T.start;
        alt {
-       [] pt.receive(t_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl {
+       [] pt.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl 
{
                /* somehow dec_SystemInformation will try to decode even non-RR 
as SI */
                if (not (l1_dl.payload.data_ind.payload[1] ==  '06'O)) {
                        log("Ignoring non-RR SI ", l1_dl);
@@ -2079,7 +2082,7 @@
 
        T.start;
        alt {
-       [] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, 
c_PCU_DATA)) {
+       [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, 
c_PCU_DATA)) {
                setverdict(pass);
                }
        [] L1CTL.receive { repeat; }
@@ -2102,7 +2105,7 @@
        timer T := 0.5;
        T.start;
        alt {
-       [] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, imm_ass)) 
{
+       [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, 
imm_ass)) {
                /* TODO: verify paging group */
                setverdict(pass);
                }
diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn
index b1e6809..2ceb1f8 100644
--- a/library/GSM_RR_Types.ttcn
+++ b/library/GSM_RR_Types.ttcn
@@ -114,7 +114,12 @@
                BIT2            zero_one
        } with { variant "" };
 
-       template L2PseudoLength t_L2Pseudolength(template uint6_t len) := {
+       template L2PseudoLength tr_L2Pseudolength(template uint6_t len) := {
+               l2_plen := len,
+               zero_one := '01'B
+       };
+
+       template (value) L2PseudoLength ts_L2Pseudolength(uint6_t len) := {
                l2_plen := len,
                zero_one := '01'B
        };
@@ -127,12 +132,20 @@
        } with { variant "" };
 
        template RrHeader t_RrHeader(RrMessageType msg_type, template uint6_t 
len) := {
-               l2_plen := t_L2Pseudolength(len),
+               l2_plen := tr_L2Pseudolength(len),
                skip_indicator := 0,
                rr_protocol_discriminator := 6,
                message_type := msg_type
        };
 
+       template (value) RrHeader ts_RrHeader(RrMessageType msg_type, uint6_t 
len) := {
+               l2_plen := ts_L2Pseudolength(len),
+               skip_indicator := 0,
+               rr_protocol_discriminator := 6,
+               message_type := msg_type
+       };
+
+
        type record RrL3Header {
                uint4_t         skip_indicator,
                uint4_t         rr_protocol_discriminator,
diff --git a/library/L1CTL_PortType.ttcn b/library/L1CTL_PortType.ttcn
index eadc74a..40a4c75 100644
--- a/library/L1CTL_PortType.ttcn
+++ b/library/L1CTL_PortType.ttcn
@@ -36,14 +36,18 @@
        function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode 
:= CCCH_MODE_COMBINED) {
                timer T := 5.0;
                for (var integer i := 0; i < 10; i := i+1) {
-                       pt.send(t_L1CTL_FBSB_REQ(arfcn, t_L1CTL_FBSB_F_ALL, 0, 
ccch_mode, 63));
+                       pt.send(ts_L1CTL_FBSB_REQ(arfcn, 
valueof(t_L1CTL_FBSB_F_ALL), 0, ccch_mode, 57));
                        T.start
                        alt {
-                       [] pt.receive(t_L1CTL_FBSB_CONF(0)) { return; };
-                       [] pt.receive(t_L1CTL_FBSB_CONF(?)) { }
-                       [i == 9] pt.receive(t_L1CTL_FBSB_CONF(?)) {
+                       [] pt.receive(tr_L1CTL_FBSB_CONF(0)) { return; };
+                       [i >= 9] pt.receive(tr_L1CTL_FBSB_CONF(?)) {
                                setverdict(fail, "FBSB Failed with non-zero 
return code");
+                               self.stop;
                                };
+                       [] pt.receive(tr_L1CTL_FBSB_CONF(?)) {
+                               pt.send(t_L1ctlResetReq(L1CTL_RES_T_FULL));
+                               pt.receive;
+                               }
                        [] pt.receive { repeat; };
                        [] T.timeout { setverdict(fail, "Timeout in FBSB") };
                        }
@@ -55,9 +59,9 @@
                var GsmFrameNumber fn;
                timer T := 2.0;
                T.start
-               pt.send(t_L1CTL_RACH_REQ(ra, combined, offset))
+               pt.send(ts_L1CTL_RACH_REQ(ra, combined, offset))
                alt {
-                       [] pt.receive(t_L1CTL_RACH_CONF) -> value rc { fn := 
rc.dl_info.frame_nr };
+                       [] pt.receive(tr_L1CTL_RACH_CONF) -> value rc { fn := 
rc.dl_info.frame_nr };
                        [] pt.receive { repeat; };
                        [] T.timeout { setverdict(fail, "Timeout in RACH") };
                }
@@ -65,7 +69,7 @@
        }
 
        function f_L1CTL_PARAM(L1CTL_PT pt, uint8_t ta, uint8_t tx_power) {
-               pt.send(t_L1CTL_PAR_REQ(ta, tx_power));
+               pt.send(ts_L1CTL_PAR_REQ(ta, tx_power));
        }
 
        function f_L1CTL_WAIT_IMM_ASS(L1CTL_PT pt, uint8_t ra, GsmFrameNumber 
rach_fn) return ImmediateAssignment {
@@ -74,7 +78,7 @@
                timer T := 10.0;
                T.start;
                alt {
-                       [] 
pt.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
+                       [] 
pt.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
                                rr := 
dec_GsmRrMessage(dl.payload.data_ind.payload);
                                log("PCH/AGCN DL RR: ", rr);
                                if (match(rr, t_RR_IMM_ASS(ra, rach_fn))) {
@@ -96,7 +100,7 @@
                timer T := 10.0;
                T.start;
                alt {
-                       [] 
pt.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
+                       [] 
pt.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
                                rr := 
dec_GsmRrMessage(dl.payload.data_ind.payload);
                                log("PCH/AGCN DL RR: ", rr);
                                if (match(rr, t_RR_IMM_ASS_TBF_DL(tlli))) {
@@ -115,9 +119,9 @@
        function f_L1CTL_TBF_CFG(L1CTL_PT pt, boolean is_uplink, TfiUsfArr 
tfi_usf) {
                timer T := 2.0;
                T.start;
-               pt.send(t_L1CTL_TBF_CFG_REQ(is_uplink, tfi_usf));
+               pt.send(ts_L1CTL_TBF_CFG_REQ(is_uplink, tfi_usf));
                alt {
-                       [] pt.receive(t_L1CTL_TBF_CFG_CONF(is_uplink)) {}
+                       [] pt.receive(tr_L1CTL_TBF_CFG_CONF(is_uplink)) {}
                        [] pt.receive { repeat };
                        [] T.timeout { setverdict(fail, "Timeout waiting for 
TBF-CFG.conf") };
                }
@@ -126,7 +130,7 @@
 
        /* Send DM_EST_REQ from parameters derived from IMM ASS */
        function f_L1CTL_DM_EST_REQ_IA(L1CTL_PT pt, ImmediateAssignment 
imm_ass) {
-               pt.send(t_L1CTL_DM_EST_REQ({ false, imm_ass.chan_desc.arfcn }, 
imm_ass.chan_desc.chan_nr, imm_ass.chan_desc.tsc));
+               pt.send(ts_L1CTL_DM_EST_REQ({ false, imm_ass.chan_desc.arfcn }, 
imm_ass.chan_desc.chan_nr, imm_ass.chan_desc.tsc));
        }
 
        function f_connect_reset(L1CTL_PT pt, charstring l1ctl_sock_path := 
m_l1ctl_sock_path) {
diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn
index 9e659bf..34650d0 100644
--- a/library/L1CTL_Types.ttcn
+++ b/library/L1CTL_Types.ttcn
@@ -96,7 +96,13 @@
                OCT2            padding
        } with { variant "" };
 
-       template L1ctlHeader t_L1ctlHeader(template L1ctlMsgType msg_type) := {
+       template L1ctlHeader tr_L1ctlHeader(template L1ctlMsgType msg_type) := {
+               msg_type := msg_type,
+               flags := ?,
+               padding := ?
+       };
+
+       template (value) L1ctlHeader ts_L1ctlHeader(L1ctlMsgType msg_type) := {
                msg_type := msg_type,
                flags := { padding := '0000000'B, f_done := false },
                padding := '0000'O
@@ -135,7 +141,7 @@
                boolean         rx_traffic_ind
        } with { variant "" };
 
-       template L1ctlAudioMode t_L1CTL_AudioModeNone := { '0000'B, false, 
false, false, false };
+       template (value) L1ctlAudioMode t_L1CTL_AudioModeNone := { '0000'B, 
false, false, false, false };
 
        type record L1ctlTchModeConf {
                L1ctlTchMode    tch_mode,
@@ -214,7 +220,7 @@
                boolean         fb0
        } with { variant "FIELDORDER(msb)" };
 
-       template L1ctlFbsbFlags t_L1CTL_FBSB_F_ALL := {
+       template (value) L1ctlFbsbFlags t_L1CTL_FBSB_F_ALL := {
                padding := '00000'B,
                sb := true,
                fb1 := true,
@@ -234,9 +240,8 @@
        } with { variant "" };
 
        type record L1ctlCcchModeReq {
-               L1ctlTchMode    tch_mode,
-               L1ctlAudioMode  audio_mode,
-               OCT2            padding
+               L1ctlCcchMode   ccch_mode,
+               OCT3            padding
        } with { variant "" };
 
        type record L1ctlTchModeReq {
@@ -369,8 +374,8 @@
 
 
        /* for generating RESET_REQ */
-       template L1ctlUlMessage t_L1ctlResetReq(template L1ctlResetType 
rst_type) := {
-               header := t_L1ctlHeader(L1CTL_RESET_REQ),
+       template (value) L1ctlUlMessage t_L1ctlResetReq(L1ctlResetType 
rst_type) := {
+               header := ts_L1ctlHeader(L1CTL_RESET_REQ),
                ul_info := omit,
                ul_info_tbf := omit,
                ul_info_abs := omit,
@@ -383,8 +388,11 @@
        };
 
        /* for generating FBSB_REQ */
-       template L1ctlUlMessage t_L1CTL_FBSB_REQ(template Arfcn arfcn, template 
L1ctlFbsbFlags flags, uint8_t sync_info_idx, L1ctlCcchMode ccch_mode, GsmRxLev 
rxlev_exp) := {
-               header := t_L1ctlHeader(L1CTL_FBSB_REQ),
+       template (value) L1ctlUlMessage ts_L1CTL_FBSB_REQ(Arfcn arfcn, 
L1ctlFbsbFlags flags,
+                                                         uint8_t sync_info_idx,
+                                                         L1ctlCcchMode 
ccch_mode,
+                                                         GsmRxLev rxlev_exp) 
:= {
+               header := ts_L1ctlHeader(L1CTL_FBSB_REQ),
                ul_info := omit,
                ul_info_tbf := omit,
                ul_info_abs := omit,
@@ -404,8 +412,8 @@
        };
 
        /* for matching against incoming FBSB_CONF */
-       template L1ctlDlMessage t_L1CTL_FBSB_CONF(template uint8_t result) := {
-               header := t_L1ctlHeader(L1CTL_FBSB_CONF),
+       template L1ctlDlMessage tr_L1CTL_FBSB_CONF(template uint8_t result) := {
+               header := tr_L1ctlHeader(L1CTL_FBSB_CONF),
                dl_info := ?,
                payload := {
                        fbsb_conf := {
@@ -416,8 +424,29 @@
                }
        };
 
-       template L1ctlUlMessage t_L1CTL_RACH_REQ(uint8_t ra, uint8_t combined, 
uint16_t offset) := {
-               header := t_L1ctlHeader(L1CTL_RACH_REQ),
+       template (value) L1ctlUlMessage ts_L1CTL_CCCH_MODE_REQ(L1ctlCcchMode 
ccch_mode) := {
+               header := ts_L1ctlHeader(L1CTL_CCCH_MODE_REQ),
+               ul_info := omit,
+               ul_info_tbf := omit,
+               ul_info_abs := omit,
+               payload := {
+                       ccch_mode_req := {
+                               ccch_mode := ccch_mode,
+                               padding := '000000'O
+                       }
+               }
+       };
+
+       template L1ctlUlMessage ts_L1CTL_CCCH_MODE_CONF := {
+               header := ts_L1ctlHeader(L1CTL_CCCH_MODE_CONF),
+               ul_info := omit,
+               ul_info_tbf := omit,
+               ul_info_abs := omit,
+               payload := ?
+       };
+
+       template L1ctlUlMessage ts_L1CTL_RACH_REQ(uint8_t ra, uint8_t combined, 
uint16_t offset) := {
+               header := ts_L1ctlHeader(L1CTL_RACH_REQ),
                ul_info := {
                        chan_nr := t_RslChanNr_RACH(0),
                        link_id := ts_RslLinkID_DCCH(0),
@@ -434,8 +463,8 @@
                }
        }
 
-       template (value) L1ctlUlMessage t_L1CTL_PAR_REQ(uint8_t ta, uint8_t 
tx_power) := {
-               header := t_L1ctlHeader(L1CTL_PARAM_REQ),
+       template L1ctlUlMessage ts_L1CTL_PAR_REQ(uint8_t ta, uint8_t tx_power) 
:= {
+               header := ts_L1ctlHeader(L1CTL_PARAM_REQ),
                ul_info := {
                        chan_nr := t_RslChanNr_RACH(0),
                        link_id := ts_RslLinkID_DCCH(0),
@@ -452,8 +481,8 @@
                }
        }
 
-       template L1ctlUlMessage t_L1CTL_DM_EST_REQ(Arfcn arfcn, RslChannelNr 
chan_nr, GsmTsc tsc) := {
-               header := t_L1ctlHeader(L1CTL_DM_EST_REQ),
+       template L1ctlUlMessage ts_L1CTL_DM_EST_REQ(Arfcn arfcn, RslChannelNr 
chan_nr, GsmTsc tsc) := {
+               header := ts_L1ctlHeader(L1CTL_DM_EST_REQ),
                ul_info := {
                        chan_nr := chan_nr,
                        link_id := ts_RslLinkID_DCCH(0),
@@ -473,8 +502,8 @@
                }
        }
 
-       template L1ctlUlMessage t_L1CTL_DM_REL_REQ(RslChannelNr chan_nr) := {
-               header := t_L1ctlHeader(L1CTL_DM_REL_REQ),
+       template L1ctlUlMessage ts_L1CTL_DM_REL_REQ(RslChannelNr chan_nr) := {
+               header := ts_L1ctlHeader(L1CTL_DM_REL_REQ),
                ul_info := {
                        chan_nr := chan_nr,
                        link_id := ts_RslLinkID_DCCH(0),
@@ -487,8 +516,10 @@
                }
        }
 
-       template L1ctlUlMessage t_L1CTL_DATA_REQ(template RslChannelNr chan_nr, 
template RslLinkId link_id, octetstring l2_data) := {
-               header := t_L1ctlHeader(L1CTL_DATA_REQ),
+       template (value) L1ctlUlMessage ts_L1CTL_DATA_REQ(template (value) 
RslChannelNr chan_nr,
+                                                        template (value) 
RslLinkId link_id,
+                                                        octetstring l2_data) 
:= {
+               header := ts_L1ctlHeader(L1CTL_DATA_REQ),
                ul_info := {
                        chan_nr := chan_nr,
                        link_id := link_id,
@@ -501,8 +532,8 @@
                }
        }
 
-       template L1ctlUlMessage t_L1CTL_TBF_CFG_REQ(boolean is_uplink, 
TfiUsfArr tfi_usf) := {
-               header := t_L1ctlHeader(L1CTL_TBF_CFG_REQ),
+       template (value) L1ctlUlMessage ts_L1CTL_TBF_CFG_REQ(boolean is_uplink, 
TfiUsfArr tfi_usf) := {
+               header := ts_L1ctlHeader(L1CTL_TBF_CFG_REQ),
                ul_info := omit,
                ul_info_tbf := omit,
                ul_info_abs := omit,
@@ -516,8 +547,8 @@
                }
        };
 
-       template L1ctlDlMessage t_L1CTL_TBF_CFG_CONF(template boolean 
is_uplink) := {
-               header := t_L1ctlHeader(L1CTL_TBF_CFG_CONF),
+       template L1ctlDlMessage tr_L1CTL_TBF_CFG_CONF(template boolean 
is_uplink) := {
+               header := tr_L1ctlHeader(L1CTL_TBF_CFG_CONF),
                dl_info := omit,
                payload := {
                        tbf_cfg_conf := {
@@ -529,8 +560,10 @@
                }
        };
 
-       template L1ctlUlMessage t_L1CTL_DATA_TBF_REQ(octetstring l2_data, 
L1ctlGprsCs cs := L1CTL_CS1, uint8_t tbf_nr := 0) := {
-               header := t_L1ctlHeader(L1CTL_DATA_TBF_REQ),
+       template (value) L1ctlUlMessage ts_L1CTL_DATA_TBF_REQ(octetstring 
l2_data,
+                                                            L1ctlGprsCs cs := 
L1CTL_CS1,
+                                                            uint8_t tbf_nr := 
0) := {
+               header := ts_L1ctlHeader(L1CTL_DATA_TBF_REQ),
                ul_info := omit,
                ul_info_tbf := {
                        tbf_nr := tbf_nr,
@@ -543,11 +576,11 @@
                }
        }
 
-       template L1ctlUlMessage t_L1CTL_DATA_ABS_REQ(octetstring l2_data, Arfcn 
arfcn,
+       template (value) L1ctlUlMessage ts_L1CTL_DATA_ABS_REQ(octetstring 
l2_data, Arfcn arfcn,
                                                     uint8_t ts, GsmFrameNumber 
fn,
                                                     L1ctlGprsCs cs := 
L1CTL_CS1,
                                                     uint8_t tbf_nr := 0) := {
-               header := t_L1ctlHeader(L1CTL_DATA_ABS_REQ),
+               header := ts_L1ctlHeader(L1CTL_DATA_ABS_REQ),
                ul_info := omit,
                ul_info_tbf := omit,
                ul_info_abs := {
@@ -566,17 +599,17 @@
 
 
        /* for matching against incoming RACH_CONF */
-       template L1ctlDlMessage t_L1CTL_RACH_CONF := {
-               header := t_L1ctlHeader(L1CTL_RACH_CONF),
+       template L1ctlDlMessage tr_L1CTL_RACH_CONF := {
+               header := tr_L1ctlHeader(L1CTL_RACH_CONF),
                dl_info := ?,
                payload := ?
        };
 
        /* for matching against incoming DATA_IND */
-       template L1ctlDlMessage t_L1CTL_DATA_IND(template RslChannelNr chan_nr,
+       template L1ctlDlMessage tr_L1CTL_DATA_IND(template RslChannelNr chan_nr,
                                                 template RslLinkId link_id := 
?,
                                                 template octetstring l2_data 
:= ?) := {
-               header := t_L1ctlHeader(L1CTL_DATA_IND),
+               header := tr_L1ctlHeader(L1CTL_DATA_IND),
                dl_info := {
                        chan_nr := chan_nr,
                        link_id := link_id,
diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn
index f5d1926..d6d3be4 100644
--- a/library/LAPDm_RAW_PT.ttcn
+++ b/library/LAPDm_RAW_PT.ttcn
@@ -165,7 +165,7 @@
 
        /* release the dedicated radio channel */
        private function f_release_dcch() runs on lapdm_CT {
-               L1CTL.send(t_L1CTL_DM_REL_REQ(chan_desc.chan_nr));
+               L1CTL.send(ts_L1CTL_DM_REL_REQ(chan_desc.chan_nr));
                set_ph_state(PH_STATE_BCH);
        }
 
@@ -386,7 +386,7 @@
                        }
 
                        /* forward CCCH SAPI from L1CTL to User */
-                       [] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_BCCH(0))) 
-> value dl {
+                       [] 
L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0))) -> value dl {
                                lpd.sacch := false;
                                lpd.sapi := 0;
                                lpd.lapdm.bbis := 
dec_LapdmFrameBbis(dl.payload.data_ind.payload);
@@ -394,7 +394,7 @@
                        }
 
                        /* forward BCCH SAPI from L1CTL to User */
-                       [] 
L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
+                       [] 
L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
                                lpd.sacch := false;
                                lpd.sapi := 0;
                                lpd.lapdm.bbis := 
dec_LapdmFrameBbis(dl.payload.data_ind.payload);
@@ -425,7 +425,7 @@
                        alt {
 
                        /* decode any received DATA frames for the dedicated 
channel and pass them up */
-                       [] L1CTL.receive(t_L1CTL_DATA_IND(chan_desc.chan_nr)) 
-> value dl {
+                       [] L1CTL.receive(tr_L1CTL_DATA_IND(chan_desc.chan_nr)) 
-> value dl {
                                if (dl.dl_info.link_id.c == SACCH) {
                                        lpd.sacch := true;
                                        /* FIXME: how to deal with UI frames in 
B4 format (lo length!) */
@@ -447,7 +447,7 @@
                                        link_id := 
valueof(ts_RslLinkID_DCCH(lpd.sapi));
                                }
                                buf := enc_LapdmFrame(lpd.lapdm);
-                               L1CTL.send(t_L1CTL_DATA_REQ(chan_desc.chan_nr, 
link_id, buf));
+                               L1CTL.send(ts_L1CTL_DATA_REQ(chan_desc.chan_nr, 
link_id, buf));
                        }
 
                        /* Release dedicated channel */
@@ -465,7 +465,7 @@
                        alt {
 
                        /* decode + forward any blocks from L1 to L23*/
-                       [] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PDCH(?))) 
-> value dl {
+                       [] 
L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PDCH(?))) -> value dl {
                                rpdi.block := 
dec_RlcmacDlBlock(dl.payload.data_ind.payload);
                                /* FIXME: Filter based on g_tbf_dl */
                                rpdi.fn := dl.dl_info.frame_nr;
@@ -482,10 +482,10 @@
                                var octetstring buf;
                                if (ischosen(rpdr.dyn)) {
                                        buf := 
enc_RlcmacUlBlock(rpdr.dyn.block);
-                                       L1CTL.send(t_L1CTL_DATA_TBF_REQ(buf, 
L1CTL_CS1, rpdr.dyn.tbf_id));
+                                       L1CTL.send(ts_L1CTL_DATA_TBF_REQ(buf, 
L1CTL_CS1, rpdr.dyn.tbf_id));
                                } else {
                                        buf := 
enc_RlcmacUlBlock(rpdr.abs.block);
-                                       L1CTL.send(t_L1CTL_DATA_ABS_REQ(buf, 
rpdr.abs.arfcn,
+                                       L1CTL.send(ts_L1CTL_DATA_ABS_REQ(buf, 
rpdr.abs.arfcn,
                                                                        
rpdr.abs.ts_nr, rpdr.abs.fn,
                                                                        
L1CTL_CS1, rpdr.abs.tbf_id));
                                }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c8be0856516a6a168795c792f76d14c08c3dabb
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>

Reply via email to