aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/oml.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-01-25 20:44:15 +0100
committerHarald Welte <laforge@gnumonks.org>2016-01-25 20:46:56 +0100
commit3ca59512d2f4eb1f87699e8fada67f33674918b4 (patch)
treea76e0ef78bdd7a33009bca44f4167a3b8e57a96f /src/common/oml.c
parent111a02f21440ff5a413466ec25c576d768225baa (diff)
OML: Ignore T200 settings by BSC for now
It seems that once we start to respect the T200 values as specified by the BSC, we run into all kinds of issues with LAPDm re-transmissions, REJ frames, unexpected supervisory frames and the like. The libosmogsm LAPDm T200 defaults of 1s/2s are proven to "work" (i.e. not expose the above behavior), so let's revert to them until the root cause of this problem is determined.
Diffstat (limited to 'src/common/oml.c')
-rw-r--r--src/common/oml.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/common/oml.c b/src/common/oml.c
index 020b09e5..3a8fc999 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -536,10 +536,25 @@ static int oml_rx_set_bts_attr(struct gsm_bts *bts, struct msgb *msg)
/* 9.4.53 T200 */
if (TLVP_PRESENT(&tp, NM_ATT_T200)) {
payload = TLVP_VAL(&tp, NM_ATT_T200);
- for (i = 0; i < ARRAY_SIZE(btsb->t200_ms); i++)
- btsb->t200_ms[i] = payload[i] * abis_nm_t200_mult[i];
+ for (i = 0; i < ARRAY_SIZE(btsb->t200_ms); i++) {
+ uint32_t t200_ms = payload[i] * abis_nm_t200_mult[i];
+#if 0
+ btsb->t200_ms[i] = t200_ms;
+ DEBUGP(DOML, "T200[%u]: OML=%u, mult=%u => %u ms\n",
+ i, payload[i], abis_nm_t200_mult[i],
+ btsb->t200_ms[i]);
+#else
+ /* we'd rather use the 1s/2s (long) defaults by
+ * libosmocore, as we appear to have some bug(s)
+ * related to handling T200 expiration in
+ * libosmogsm lapd(m) code? */
+ LOGP(DOML, LOGL_NOTICE, "Ignoring T200[%u] (%u ms) "
+ "as sent by BSC due to suspected LAPDm bug!\n",
+ i, t200_ms);
+#endif
+ }
}
-
+
/* 9.4.31 Maximum Timing Advance */
if (TLVP_PRESENT(&tp, NM_ATT_MAX_TA))
btsb->max_ta = *TLVP_VAL(&tp, NM_ATT_MAX_TA);