From f1bdf781aca6ee05d9475d260f9f1a5a81a25a03 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 8 May 2018 22:03:20 +0200 Subject: 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 --- src/gsm/lapdm.c | 8 +++++--- 1 file 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); -- cgit v1.2.3