aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/rsl.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-04-27 15:12:46 +0200
committerHarald Welte <laforge@gnumonks.org>2012-04-27 15:12:46 +0200
commit36179bbcdf9407bcc4c06f7608f28e0dfcc29861 (patch)
treea27f19f49df8068fd03cb3f7536c3016c9e6612a /src/common/rsl.c
parent227c57728a93f7b71b1ffc99d92b76fd013e4a66 (diff)
RSL / SI: Make sure to have correct LAPDm header in SI5/SI6 on SACCH
SI5/SI6 and other messages on SACCH need the C/R and the EA bit set in the LAPDm header. Most devices accept a broken header, but especially the Wavecom Q2686 responds with tons of RR STATUS messages if there is any invalid bit.
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r--src/common/rsl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index d7d728a8..370e2f76 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -429,8 +429,8 @@ static int rsl_rx_sacch_fill(struct gsm_bts_trx *trx, struct msgb *msg)
if (len > sizeof(sysinfo_buf_t)-2)
len = sizeof(sysinfo_buf_t)-2;
bts->si_valid |= (1 << osmo_si);
- bts->si_buf[osmo_si][0] = 0x00;
- bts->si_buf[osmo_si][1] = 0x03;
+ bts->si_buf[osmo_si][0] = 0x03; /* C/R + EA */
+ bts->si_buf[osmo_si][1] = 0x03; /* UI frame */
memcpy(bts->si_buf[osmo_si]+2,
TLVP_VAL(&tp, RSL_IE_L3_INFO), len);
LOGP(DRSL, LOGL_INFO, " Rx RSL SACCH FILLING (SI%s)\n",