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


Change subject: pcu: f_pcuif_tx_data_ind(): make waiting behavior configurable
......................................................................

pcu: f_pcuif_tx_data_ind(): make waiting behavior configurable

By default, f_pcuif_tx_data_ind() waits for TDMA_EV_PDTCH_BLOCK_SENT
making it impossible to send Uplink blocks with the same TDMA FN but
dufferent TDMA TN (multi-slot TBFs).  This change allows sending
several UL blocks without waiting for TDMA_EV_PDTCH_BLOCK_SENT.

Change-Id: I3200b8a2973f97f08714654e525c631da5d6e382
Related: OS#5696
---
M pcu/GPRS_Components.ttcn
1 file changed, 13 insertions(+), 7 deletions(-)



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

diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index eb29787..b1dd28d 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -639,13 +639,15 @@

 /* Enqueue DATA.ind (both TDMA frame and block numbers to be patched) */
 function f_ms_tx_data_ind(inout GprsMS ms, octetstring data, uint32_t fn := 0,
+                         boolean wait := true, /* wait for 
TDMA_EV_PDTCH_BLOCK_SENT? */
                          template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
 runs on MS_BTS_IFACE_CT {
-       f_pcuif_tx_data_ind(data, fn, ms.ta, ms.lqual_cb, nr := nr);
+       f_pcuif_tx_data_ind(data, fn, ms.ta, ms.lqual_cb, wait, nr := nr);
 }

 function f_ms_tx_ul_block(inout GprsMS ms, template (value) RlcmacUlBlock 
ul_data,
                          uint32_t fn := 0, template (omit) CodingScheme 
force_cs_mcs := omit,
+                         boolean wait := true, /* wait for 
TDMA_EV_PDTCH_BLOCK_SENT? */
                          template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
 runs on MS_BTS_IFACE_CT {
        var octetstring data;
@@ -665,7 +667,7 @@
                data := f_pad_oct(data, f_rlcmac_cs_mcs2block_len(CS_1), '2b'O);
        }
        /* Enqueue DATA.ind (both TDMA frame and block numbers to be patched) */
-       f_ms_tx_data_ind(ms, data, fn, nr := nr);
+       f_ms_tx_data_ind(ms, data, fn, wait, nr := nr);
 }

 function f_ms_tx_ul_data_block(inout GprsMS ms, octetstring payload,
@@ -1084,20 +1086,24 @@
        return f_pcuif_rx_imm_ass(PCU_IF_SAPI_AGCH, tr_IMM_TBF_ASS(false, ra, 
fn), nr);
 }

-/* Enqueue DATA.ind (both TDMA frame and block numbers to be patched) */
+/* Enqueue DATA.ind (both TDMA frame and block numbers to be patched).
+ * By default, wait for TDMA_EV_PDTCH_BLOCK_SENT from the RAW_PCU_BTS_CT. */
 function f_pcuif_tx_data_ind(octetstring data, uint32_t fn := 0,
                             TimingAdvance ta := 0, int16_t lqual_cb := 0,
+                            boolean wait := true, /* wait for 
TDMA_EV_PDTCH_BLOCK_SENT? */
                             template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
 runs on MS_BTS_IFACE_CT {
-       var template RAW_PCU_EventParam ev_param := {tdma_fn := ? };
        BTS.send(ts_PCUIF_DATA_IND(nr.bts_nr, nr.trx_nr, nr.ts_nr, nr.blk_nr,
                                   sapi := PCU_IF_SAPI_PDTCH, data := data,
                                   fn := fn, arfcn := 
f_trxnr2arfcn(valueof(nr.trx_nr)),
                                   ta_offs_qbits := ta * 4, lqual_cb := 
lqual_cb));
-       if (fn != 0) {
-               ev_param := {tdma_fn := fn };
+       if (wait) {
+               if (fn != 0) {
+                       BTS.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_SENT, { 
tdma_fn := fn }));
+               } else {
+                       BTS.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_SENT));
+               }
        }
-       BTS.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_SENT, ev_param));
 }

 /* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29628
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: I3200b8a2973f97f08714654e525c631da5d6e382
Gerrit-Change-Number: 29628
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to