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); | 
