diff options
author | Stefan Sperling <ssperling@sysmocom.de> | 2018-07-31 18:53:55 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-08-22 19:50:33 +0000 |
commit | 0ab50934d5afc6fa6d187845ae46d1d98b0e872a (patch) | |
tree | b6333237a48ba5e68f1565ee86a72d183974070e /src | |
parent | 4553890d702a235aca35b7d3004ac530e1d6da59 (diff) |
fix conditions for sending fill frames during RTS IND
Rewrite an if-statement to better match the description given
in GSM 05.08, and quote the relevant paragraph in a comment.
Since this entire block of code only runs for SDCCH and TCH,
this new condition should provide the same result expect that
in accordance with the standard we now stop sending fill-frames
on a signalling TCH if DTX is in use.
Also note that this code should already cover parts of the
patch proposed at https://gerrit.osmocom.org/c/osmo-bts/+/5753
The changes to osmo-bts-litecell15/l1_if.c proposed there
should be equivalent to the fill-frame logic in this
existing common BTS code which is handling RTS IND.
Change-Id: Ibaf3ecbd0bde4f37e799d5e2f5d00dc695e0139a
Related: OS#1950
Diffstat (limited to 'src')
-rw-r--r-- | src/common/l1sap.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 00ead8d5..b8cec0e7 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -754,9 +754,16 @@ static int l1sap_ph_rts_ind(struct gsm_bts_trx *trx, memcpy(p + 2, si, GSM_MACBLOCK_LEN - 2); } else memcpy(p + 2, fill_frame, GSM_MACBLOCK_LEN - 2); - } else if ((!L1SAP_IS_CHAN_TCHF(chan_nr) && !L1SAP_IS_CHAN_TCHH(chan_nr)) - || lchan->rsl_cmode == RSL_CMOD_SPD_SIGN) { - /* send fill frame only, if not TCH/x != Signalling, otherwise send empty frame */ + } else if (L1SAP_IS_CHAN_SDCCH4(chan_nr) || L1SAP_IS_CHAN_SDCCH8(chan_nr) || + (lchan->rsl_cmode == RSL_CMOD_SPD_SIGN && !lchan->ts->trx->bts->dtxd)) { + /* + * SDCCH or TCH in signalling mode without DTX. + * + * Send fill frame according to GSM 05.08, section 8.3: "On the SDCCH and on the + * half rate speech traffic channel in signalling only mode DTX is not allowed. + * In these cases and during signalling on the TCH when DTX is not used, the same + * L2 fill frame shall be transmitted in case there is nothing else to transmit." + */ p = msgb_put(msg, GSM_MACBLOCK_LEN); memcpy(p, fill_frame, GSM_MACBLOCK_LEN); } /* else the message remains empty, so TCH frames are sent */ |