diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-05-08 22:03:20 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-05-08 23:33:32 +0200 |
commit | f1bdf781aca6ee05d9475d260f9f1a5a81a25a03 (patch) | |
tree | 961fbeb8d6720b6377dbda2f126b084a02aa2155 /src | |
parent | d977f5fe08e23bbb5878b52fee09d97bcd996046 (diff) |
lapdm: send_rslms_rll_l3_ui(): Don't include B4/SACCH IE unless needed
The RSL_IE_MS_POWER / RSL_IE_TIMING_ADVANCE is how we communicate
the SACCH L1 header values on the MS side between LAPDm and L3 (which
is a non-standard use of RSL).
However, those IEs only maek sense on the SACCH, where we have B4 frame
format and where we actually have a L1 header containing related
information. Let's make sure to skip those IEs on regular RLL UNIT DATA
INDICATION happening on other channel types.
Change-Id: I6f13e02192531479287f71de674d17ca2ceabdc6
Closes: OS#3249
Diffstat (limited to 'src')
-rw-r--r-- | src/gsm/lapdm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c index 49c2a4bb..b9e7304e 100644 --- a/src/gsm/lapdm.c +++ b/src/gsm/lapdm.c @@ -389,9 +389,11 @@ static int send_rslms_rll_l3_ui(struct lapdm_msg_ctx *mctx, struct msgb *msg) /* Add the RSL + RLL header */ msgb_tv16_push(msg, RSL_IE_L3_INFO, l3_len); - /* Add two IEs carrying MS power and TA values */ - msgb_tv_push(msg, RSL_IE_MS_POWER, mctx->tx_power_ind); - msgb_tv_push(msg, RSL_IE_TIMING_ADVANCE, mctx->ta_ind); + /* Add two non-standard IEs carrying MS power and TA values for B4 (SACCH) */ + if (mctx->lapdm_fmt == LAPDm_FMT_B4) { + msgb_tv_push(msg, RSL_IE_MS_POWER, mctx->tx_power_ind); + msgb_tv_push(msg, RSL_IE_TIMING_ADVANCE, mctx->ta_ind); + } rsl_rll_push_hdr(msg, RSL_MT_UNIT_DATA_IND, mctx->chan_nr, mctx->link_id, 1); |