aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-06-03 13:01:47 +0200
committerHarald Welte <laforge@gnumonks.org>2012-06-03 16:58:18 +0200
commit67161f27d1a6a46553ebe42e8c0459d75533a1d4 (patch)
treea60c1383abaac625f7051800ce0313705431b328
parent66d360661a992104beda2c9578ff40cd60aa4e70 (diff)
Allow VTY-based configuration of T3105
This timer will only be forwarded to BS11 and Ericsson Abis so far, not to Nokia and ip.access BTS yet.
-rw-r--r--openbsc/include/openbsc/gsm_data.h1
-rw-r--r--openbsc/src/libbsc/abis_om2000.c6
-rw-r--r--openbsc/src/libbsc/bsc_vty.c2
-rw-r--r--openbsc/src/libbsc/bts_nokia_site.c4
-rw-r--r--openbsc/src/libbsc/bts_siemens_bs11.c3
-rw-r--r--openbsc/src/libcommon/gsm_data.c1
6 files changed, 11 insertions, 6 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index c547cd7c8..9e808fc1d 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -215,6 +215,7 @@ enum gsm_auth_policy {
};
#define GSM_T3101_DEFAULT 10
+#define GSM_T3105_DEFAULT 40
#define GSM_T3113_DEFAULT 60
struct gsm_network {
diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c
index 2ea367829..139cc04b2 100644
--- a/openbsc/src/libbsc/abis_om2000.c
+++ b/openbsc/src/libbsc/abis_om2000.c
@@ -1186,7 +1186,7 @@ int abis_om2k_tx_ts_conf_req(struct gsm_bts_trx_ts *ts)
msgb_tv_put(msg, OM2K_DEI_CCCH_OPTIONS, 0x01);
break;
case GSM_PCHAN_CCCH_SDCCH4:
- msgb_tv_put(msg, OM2K_DEI_T3105, 0x04);
+ msgb_tv_put(msg, OM2K_DEI_T3105, ts->trx->bts->network->T3105 / 10);
msgb_tv_put(msg, OM2K_DEI_NY1, 35);
msgb_tv_put(msg, OM2K_DEI_BA_PA_MFRMS, 0x06);
msgb_tv_put(msg, OM2K_DEI_CBCH_INDICATOR, 0);
@@ -1200,7 +1200,7 @@ int abis_om2k_tx_ts_conf_req(struct gsm_bts_trx_ts *ts)
sizeof(icm_bound_params), icm_bound_params);
break;
case GSM_PCHAN_SDCCH8_SACCH8C:
- msgb_tv_put(msg, OM2K_DEI_T3105, 0x04);
+ msgb_tv_put(msg, OM2K_DEI_T3105, ts->trx->bts->network->T3105 / 10);
msgb_tv_put(msg, OM2K_DEI_NY1, 35);
msgb_tv_put(msg, OM2K_DEI_CBCH_INDICATOR, 0);
msgb_tv_put(msg, OM2K_DEI_TSC, ts->trx->bts->tsc);
@@ -1210,7 +1210,7 @@ int abis_om2k_tx_ts_conf_req(struct gsm_bts_trx_ts *ts)
sizeof(icm_bound_params), icm_bound_params);
break;
default:
- msgb_tv_put(msg, OM2K_DEI_T3105, 0x04);
+ msgb_tv_put(msg, OM2K_DEI_T3105, ts->trx->bts->network->T3105 / 10);
msgb_tv_put(msg, OM2K_DEI_NY1, 35);
msgb_tv_put(msg, OM2K_DEI_TSC, ts->trx->bts->tsc);
/* Disable RF RESOURCE INDICATION on idle channels */
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index e6d232794..cacc6b048 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -1355,7 +1355,7 @@ DEFUN(cfg_net_pag_any_tch,
DECLARE_TIMER(3101, "Set the timeout value for IMMEDIATE ASSIGNMENT.\n")
DECLARE_TIMER(3103, "Set the timeout value for HANDOVER.\n")
-DECLARE_TIMER(3105, "Currently not used.\n")
+DECLARE_TIMER(3105, "Set the timer for repetition of PHYSICAL INFORMATION.\n")
DECLARE_TIMER(3107, "Currently not used.\n")
DECLARE_TIMER(3109, "Currently not used.\n")
DECLARE_TIMER(3111, "Set the RSL timeout to wait before releasing the RF Channel.\n")
diff --git a/openbsc/src/libbsc/bts_nokia_site.c b/openbsc/src/libbsc/bts_nokia_site.c
index cb1a9d541..b2749b595 100644
--- a/openbsc/src/libbsc/bts_nokia_site.c
+++ b/openbsc/src/libbsc/bts_nokia_site.c
@@ -541,13 +541,13 @@ static uint8_t fu_config_template[] = {
/* ID = 0x02 (T3105_F) */
/* length = 2 */
/* [16] */
- 0x00, 0x28,
+ 0x00, 0x28, /* FIXME: use net->T3105 */
0x50, 0x02,
/* ID = 0x10 (T3105_D) */
/* length = 2 */
/* [20] */
- 0x00, 0x28,
+ 0x00, 0x28, /* FIXME: use net->T3105 */
0x43, 0x05,
/* ID = 0x03 (Interference band limits) */
diff --git a/openbsc/src/libbsc/bts_siemens_bs11.c b/openbsc/src/libbsc/bts_siemens_bs11.c
index 2514d9977..101e996dd 100644
--- a/openbsc/src/libbsc/bts_siemens_bs11.c
+++ b/openbsc/src/libbsc/bts_siemens_bs11.c
@@ -357,6 +357,9 @@ static void patch_nm_tables(struct gsm_bts *bts)
uint8_t arfcn_low = bts->c0->arfcn & 0xff;
uint8_t arfcn_high = (bts->c0->arfcn >> 8) & 0x0f;
+ /* T3105 attribute in units of 10ms */
+ bs11_attr_bts[2] = bts->network->T3105 / 10;
+
/* patch ARFCN into BTS Attributes */
bs11_attr_bts[69] &= 0xf0;
bs11_attr_bts[69] |= arfcn_high;
diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c
index 6eb39b067..a235c9d42 100644
--- a/openbsc/src/libcommon/gsm_data.c
+++ b/openbsc/src/libcommon/gsm_data.c
@@ -94,6 +94,7 @@ struct gsm_network *gsm_network_init(uint16_t country_code, uint16_t network_cod
net->num_bts = 0;
net->reject_cause = GSM48_REJECT_ROAMING_NOT_ALLOWED;
net->T3101 = GSM_T3101_DEFAULT;
+ net->T3105 = GSM_T3105_DEFAULT;
net->T3113 = GSM_T3113_DEFAULT;
/* FIXME: initialize all other timers! */