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, };