aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-02-15 16:16:28 +0000
committerHarald Welte <laforge@gnumonks.org>2009-02-15 16:16:28 +0000
commitcd99387bd2ee02284ef62a819869ce7ed0763207 (patch)
tree0f2f020495aa320ff103cc07090b894103f74fb2
parent940093296ec87a8dc8503512043dd6b9c9242803 (diff)
* use more constants to name the various BTS/TRX/... attributes
* set BS power reduction up to 30dB reduction. we want to be quiet!
-rw-r--r--include/openbsc/abis_nm.h9
-rw-r--r--src/bsc_hack.c111
2 files changed, 89 insertions, 31 deletions
diff --git a/include/openbsc/abis_nm.h b/include/openbsc/abis_nm.h
index 2592d4362..736920714 100644
--- a/include/openbsc/abis_nm.h
+++ b/include/openbsc/abis_nm.h
@@ -306,6 +306,7 @@ enum abis_nm_attr {
NM_ATT_BS11_ESN_HW_CODE_NO = 0x4f,
NM_ATT_BS11_ESN_PCB_SERIAL = 0x55,
+ NM_ATT_BS11_EXCESSIVE_DISTANCE = 0x58,
NM_ATT_BS11_ALL_TEST_CATG = 0x60,
NM_ATT_BS11_BTSLS_HOPPING,
@@ -319,6 +320,9 @@ enum abis_nm_attr {
NM_ATT_BS11_ENA_PWR_CTRL_RLFW = 0x6b,
NM_ATT_BS11_ENA_RXLEV_HO = 0x6c,
NM_ATT_BS11_ENA_RXQUAL_HO = 0x6d,
+ NM_ATT_BS11_FACCH_QUAL = 0x6e,
+
+ NM_ATT_BS11_RF_RES_IND_PER = 0x8f,
NM_ATT_BS11_RX_LEV_MIN_CELL = 0x90,
NM_ATT_BS11_ABIS_EXT_TIME = 0x91,
@@ -326,6 +330,8 @@ enum abis_nm_attr {
NM_ATT_BS11_TIMER_NCELL = 0x93,
NM_ATT_BS11_TSYNC = 0x94,
NM_ATT_BS11_TTRAU = 0x95,
+ NM_ATT_BS11_EMRG_CFG_MEMBER = 0x9b,
+ NM_ATT_BS11_TRX_AREA = 0x9f,
NM_ATT_BS11_BCCH_RECONF = 0xd7,
NM_ATT_BS11_BIT_ERR_THESH = 0xa0,
@@ -344,12 +350,15 @@ enum abis_nm_attr {
NM_ATT_BS11_SW_LOAD_STORED = 0xbd,
NM_ATT_BS11_VENDOR_NAME = 0xc1,
+ NM_ATT_BS11_HOPPING_MODE = 0xc5,
NM_ATT_BS11_LMT_LOGON_SESSION = 0xc6,
NM_ATT_BS11_LMT_LOGIN_TIME = 0xc7,
NM_ATT_BS11_LMT_USER_ACC_LEV = 0xc8,
NM_ATT_BS11_LMT_USER_NAME = 0xc9,
NM_ATT_BS11_L1_CONTROL_TS = 0xd8,
+ NM_ATT_BS11_RADIO_MEAS_GRAN = 0xdc, /* in SACCH multiframes */
+ NM_ATT_BS11_RADIO_MEAS_REP = 0xdd,
NM_ATT_BS11_PLL = 0xf2,
NM_ATT_BS11_RX_OFFSET = 0xf3,
diff --git a/src/bsc_hack.c b/src/bsc_hack.c
index cafae4529..bbbce1b68 100644
--- a/src/bsc_hack.c
+++ b/src/bsc_hack.c
@@ -77,9 +77,12 @@ SET ATTRIBUTES
unsigned char msg_1[] =
{
- 0xD0, 0x00, 0xFF, 0xFF, 0xFF, 0x91, 0x07, 0xD7, 0x09, 0x08, 0x0E, 0x24,
- 0x0B, 0xCE, 0x02, 0x00, 0x1E, 0xE8, 0x01, 0x05, 0x42, 0x02, 0x00, 0x0A, 0x44,
- 0x02, 0x00, 0x00
+ 0xD0, 0x00, 0xFF, 0xFF, 0xFF,
+ NM_ATT_BS11_ABIS_EXT_TIME, 0x07, 0xD7, 0x09, 0x08, 0x0E, 0x24, 0x0B, 0xCE,
+ 0x02, 0x00, 0x1E,
+ 0xE8, 0x01, 0x05,
+ 0x42, 0x02, 0x00, 0x0A,
+ 0x44, 0x02, 0x00, 0x00
};
// BTS, SET BTS ATTRIBUTES
@@ -144,12 +147,12 @@ unsigned char msg_2[] =
0x41, 0x01, 0x00, 0xFF, 0xFF,
NM_ATT_BSIC, 0x3F,
NM_ATT_BTS_AIR_TIMER, 0x04,
- 0x61, 0x00,
+ NM_ATT_BS11_BTSLS_HOPPING, 0x00,
NM_ATT_CCCH_L_I_P, 0x01,
NM_ATT_CCCH_L_T, 0x00,
- 0x62, 0x00,
- 0x66, 0x00,
- 0x6E, 0x06,
+ NM_ATT_BS11_CELL_ALLOC_NR, 0x00,
+ NM_ATT_BS11_ENA_INTERF_CLASS, 0x00,
+ NM_ATT_BS11_FACCH_QUAL, 0x06,
NM_ATT_INTAVE_PARAM, 0x1F,
NM_ATT_INTERF_BOUND, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x7B,
NM_ATT_CCCH_L_T, 0x23,
@@ -157,15 +160,15 @@ unsigned char msg_2[] =
NM_ATT_ADM_STATE, 0x03,
NM_ATT_RACH_B_THRESH, 0x7F,
NM_ATT_LDAVG_SLOTS, 0x00, 0xFA,
- 0x8F, 0x7D,
+ NM_ATT_BS11_RF_RES_IND_PER, 0x7D,
NM_ATT_T200, 0x2C, 0x1F, 0x29, 0x5A, 0x5A, 0x5A, 0x87,
- 0x94, 0x23, 0x28,
- 0x95, 0x23, 0x28,
- 0x35, 0x01, 0x00,
- 0x46, 0x01, 0x00,
- 0x58, 0x01, 0x40,
- 0xC5, 0x01, 0x00,
- 0xF2, 0x01, 0x00,
+ NM_ATT_BS11_TSYNC, 0x23, 0x28,
+ NM_ATT_BS11_TTRAU, 0x23, 0x28,
+ NM_ATT_TEST_DUR, 0x01, 0x00,
+ NM_ATT_OUTST_ALARM, 0x01, 0x00,
+ NM_ATT_BS11_EXCESSIVE_DISTANCE, 0x01, 0x40,
+ NM_ATT_BS11_HOPPING_MODE, 0x01, 0x00,
+ NM_ATT_BS11_PLL, 0x01, 0x00,
NM_ATT_BCCH_ARFCN, 0x00, HARDCODED_ARFCN/*0x01*/,
};
@@ -206,14 +209,39 @@ SET ATTRIBUTES
unsigned char msg_3[] =
{
- 0xD0, 0xA1, 0x00, 0xFF, 0xFF, 0xD0, 0x00, 0x64, 0x00, 0x67, 0x00, 0x68,
- 0x00, 0x6A, 0x00, 0x6C, 0x00, 0x6D, 0x00, 0x6F, 0x08, 0x70, 0x08, 0x01,
- 0x71, 0x10, 0x10, 0x10, 0x72, 0x08, 0x02, 0x73, 0x0A, 0x74, 0x05, 0x75,
- 0x06, 0x76, 0x06, 0x78, 0x14, 0x79, 0x14, 0x7A, 0x14, 0x7D, 0x06, 0x92,
- 0x03, 0x20, 0x01, 0x00, 0x45, 0x01, 0x00, 0x48, 0x01, 0x00, 0x5A, 0x01,
- 0x00, 0x5B, 0x01, 0x05, 0x5E, 0x01, 0x1A, 0x5F, 0x01, 0x20, 0x9D, 0x01,
- 0x00, 0x47, 0x01, 0x00, 0x5C, 0x01, 0x64, 0x5D, 0x01, 0x1E, 0x97, 0x01,
- 0x20, 0xF7, 0x01, 0x3C,
+ 0xD0, 0xA1, 0x00, 0xFF, 0xFF,
+ 0xD0, 0x00,
+ 0x64, 0x00,
+ 0x67, 0x00,
+ 0x68, 0x00,
+ 0x6A, 0x00,
+ 0x6C, 0x00,
+ 0x6D, 0x00,
+ 0x6F, 0x08,
+ 0x70, 0x08, 0x01,
+ 0x71, 0x10, 0x10, 0x10,
+ 0x72, 0x08, 0x02,
+ 0x73, 0x0A,
+ 0x74, 0x05,
+ 0x75, 0x06,
+ 0x76, 0x06,
+ 0x78, 0x14,
+ 0x79, 0x14,
+ 0x7A, 0x14,
+ 0x7D, 0x06,
+ 0x92, 0x03, 0x20, 0x01, 0x00,
+ 0x45, 0x01, 0x00,
+ 0x48, 0x01, 0x00,
+ 0x5A, 0x01, 0x00,
+ 0x5B, 0x01, 0x05,
+ 0x5E, 0x01, 0x1A,
+ 0x5F, 0x01, 0x20,
+ 0x9D, 0x01, 0x00,
+ 0x47, 0x01, 0x00,
+ 0x5C, 0x01, 0x64,
+ 0x5D, 0x01, 0x1E,
+ 0x97, 0x01, 0x20,
+ 0xF7, 0x01, 0x3C,
};
// Power Control, SET ATTRIBUTES
@@ -251,10 +279,26 @@ SET ATTRIBUTES
unsigned char msg_4[] =
{
- 0xD0, 0xA2, 0x00, 0xFF, 0xFF, 0x69, 0x00, 0x6B, 0x00, 0x7E, 0x04, 0x01,
- 0x7F, 0x04, 0x02, 0x80, 0x0F, 0x81, 0x0A, 0x82, 0x05, 0x83, 0x05, 0x84,
- 0x0C, 0x85, 0x14, 0x86, 0x0F, 0x87, 0x04, 0x88, 0x04, 0x89, 0x02, 0x8A,
- 0x02, 0x8B, 0x02, 0x8C, 0x01, 0x8D, 0x40, 0x65, 0x01, 0x00 // set to 0x01 to enable BSPowerControl
+ 0xD0, 0xA2, 0x00, 0xFF, 0xFF,
+ NM_ATT_BS11_ENA_MS_PWR_CTRL, 0x00,
+ NM_ATT_BS11_ENA_PWR_CTRL_RLFW, 0x00,
+ 0x7E, 0x04, 0x01,
+ 0x7F, 0x04, 0x02,
+ 0x80, 0x0F,
+ 0x81, 0x0A,
+ 0x82, 0x05,
+ 0x83, 0x05,
+ 0x84, 0x0C,
+ 0x85, 0x14,
+ 0x86, 0x0F,
+ 0x87, 0x04,
+ 0x88, 0x04,
+ 0x89, 0x02,
+ 0x8A, 0x02,
+ 0x8B, 0x02,
+ 0x8C, 0x01,
+ 0x8D, 0x40,
+ 0x65, 0x01, 0x00 // set to 0x01 to enable BSPowerControl
};
@@ -267,7 +311,7 @@ unsigned char msg_4[] =
Instance 3: FF
SET TRX ATTRIBUTES
aRFCNList (HEX): 0001
- txPwrMaxReduction: 00h = 0dB
+ txPwrMaxReduction: 00h = 30dB
radioMeasGran: 254 SACCH multiframes
radioMeasRep: 01h = enabled
memberOfEmergencyConfig: 01h = TRUE
@@ -276,8 +320,13 @@ SET TRX ATTRIBUTES
unsigned char msg_6[] =
{
- 0x44, 0x02, 0x00, 0x00, 0xFF, 0x05, 0x01, 0x00, HARDCODED_ARFCN /*0x01*/, 0x2D,
- 0x00, 0xDC, 0x01, 0xFE, 0xDD, 0x01, 0x01, 0x9B, 0x01, 0x01, 0x9F, 0x01, 0x00,
+ 0x44, 0x02, 0x00, 0x00, 0xFF,
+ NM_ATT_ARFCN_LIST, 0x01, 0x00, HARDCODED_ARFCN /*0x01*/,
+ NM_ATT_RF_MAXPOWR_R, 0x0f,
+ NM_ATT_BS11_RADIO_MEAS_GRAN, 0x01, 0xFE,
+ NM_ATT_BS11_RADIO_MEAS_REP, 0x01, 0x01,
+ NM_ATT_BS11_EMRG_CFG_MEMBER, 0x01, 0x01,
+ NM_ATT_BS11_TRX_AREA, 0x01, 0x00,
};
static unsigned char nanobts_attr_bts[] = {
@@ -298,7 +347,7 @@ static unsigned char nanobts_attr_bts[] = {
};
static unsigned char nanobts_attr_radio[] = {
- NM_ATT_RF_MAXPOWR_R, 0x00,
+ NM_ATT_RF_MAXPOWR_R, 0x0f,
NM_ATT_ARFCN_LIST, 0x00, 0x02, HARDCODED_ARFCN >> 8, HARDCODED_ARFCN & 0xff,
};