aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2014-01-16sysmobts-mgr: Make it possible to not write to the EEPROMHolger Hans Peter Freyther3-18/+53
For testing/trial it is better to not write to the EEPROM but it is still good to see how the logic is working.
2014-01-03sysmobts: Specify the parameters that can be read from the EEPROMHolger Hans Peter Freyther1-0/+8
When using the utility it is not clear which parameters can be read or written. Make that more obvious.
2013-12-29sysmobts: Specify the constant as a float and not a doubleHolger Hans Peter Freyther1-1/+1
2013-12-28tch: Do not log every single RTP packet and air frameHolger Hans Peter Freyther1-9/+0
The sysmoBTS takes quite a bit of CPU time for the vfprintf that is used by osmo_hexdump. Do not dump every single frame to improve the performance a bit.
2013-12-28misc: Avoid using double numbers on our ARMHolger Hans Peter Freyther2-6/+6
In the perf the ARM EABI ddiv operation showed up in the most of expensive symbols. It doesn't really make much sense as the calls should only be done on configuration.
2013-12-28measurement: Speculative performance changeHolger Hans Peter Freyther1-1/+14
Most timeslots do not have eight lchan. Use the subslots_per_lchan map to reduce the number of iterations. Looking at the ARM assembly showed that no loop-unrolling was done so this could be a speed up.
2013-12-12sysmobts: Fix compiler warning by including utils.hHolger Hans Peter Freyther1-0/+1
calib_file.c: In function 'next_calib_file_idx': calib_file.c:126:3: warning: implicit declaration of function 'band_femto2osmo' [-Wimplicit-function-declaration]
2013-12-12sysmobts: Change the ARRAY_SIZE to a constant numberHolger Hans Peter Freyther1-1/+1
The parameter "uint8_t mute_state[8]" is actually a "uint8_t *mute_state" so the ARRAY_SIZE is not what we think it is. Fixes: Coverity CID 1125885
2013-12-12sysmobts: Fix resource leak in the error conditionHolger Hans Peter Freyther1-0/+1
Fixes: Coverity CID 1047336
2013-12-12sysmobts: Remove stray semicolon from the PCU band filtering code.Holger Hans Peter Freyther1-1/+1
The information from band_mask has never been used as the return was executed unconditionally. Fixes: Coverity CID 1113473
2013-11-27bts: Fix crash of receiving data during the release processHolger Hans Peter Freyther1-2/+13
Release/Free the lapdm resources _after_ the channel has been fully released. Do not forward data unless the lchan is in the active state. Reading this code again, there is probably a memory leak for everytime the PCU will re-connect to the BTS. (gdb) p lchan->state $4 = LCHAN_S_REL_REQ (gdb) bt #0 lapd_dl_flush_hist (dl=0x40454894) at lapd_core.c:164 #1 0x44873b54 in lapd_rx_u (lctx=0xbe9bd5a8, msg=0x92f90) at lapd_core.c:1040 #2 lapd_ph_data_ind (msg=0x92f90, lctx=0xbe9bd5a8) at lapd_core.c:1644 #3 0x44876d50 in l2_ph_data_ind (link_id=<optimized out>, chan_nr=<optimized out>, le=<optimized out>, msg=0x92f90) at lapdm.c:637 #4 lapdm_phsap_up (oph=<optimized out>, le=<optimized out>) at lapdm.c:707 #5 0x0000c504 in handle_ph_data_ind (l1p_msg=0x97358, data_ind=0x97420, fl1=<optimized out>) at l1_if.c:774 #6 l1if_handle_ind (fl1=<optimized out>, msg=0x97358) at l1_if.c:892
2013-11-27sysmobts: Activate the BCCH silently have have state set to activeHolger Hans Peter Freyther2-7/+8
Use the lchan->rel_act_kind field for the BCCH activatiob by OML. The lchan's should be marked as active but no event should be sent to the BSC. This is mostly like the PCU. We can now remove the secnd argument from lchan_activate.
2013-11-27sysmobts: Make the eeprom/nominal power reading backward compatibleHolger Hans Peter Freyther1-3/+3
There are existing deployments where the EEPROM either contains a wrong value and/or the kernel can not be updated to support the different EEPROM of revD. Revert to the old behavior that if no nominal can be derived from the model_nr we assume that it is 23.
2013-11-27sysmobts: Print the model number that is not supported.Holger Hans Peter Freyther1-0/+5
When using an old kernel on revD hardware we will read garabge from the EEPROM and it is nice for debugging to see which model number has been picked.
2013-11-27bts: Fix typos in the log messagesHolger Hans Peter Freyther1-1/+1
2013-11-27bts: Fix a typo in the log messageHolger Hans Peter Freyther1-1/+1
2013-11-14rsl: Rename abis_rsl_sendmsg to avoid symbol clash with libosmo-abisHolger Hans Peter Freyther2-20/+20
Nicolas ended up with linker issues due abis_rsl_sendmsg being defined twice. Rename our version of the function and update the code. Patched with: @i@ expression E; @@ - abis_rsl_sendmsg(E) + abis_bts_rsl_sendmsg(E)
2013-11-05sysmobts: Notify the BSC about all muted lchansJacob Erlbeck1-0/+30
Currently it takes some time (around 30s) until it is detected that the radio link is down after mute. Not till then the BSC is informed and the call terminated. This patch modifies this behaviour by sending a RSL_MT_CONN_FAIL message with cause RSL_ERR_RADIO_LINK_FAIL for each muted and active lchan immediately after the corresponding Change Administrative State Request has been acknowledged. Ticket: OW#976 Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Only set RC state to LOCK if all channels are mutedJacob Erlbeck1-2/+8
Currently only mute_state[0] (refers to ts[0]) is inspected to determine, whether the Radio Carrier's state is set to LOCK. This patch changes this by looking at all channels and using LOCK if (and only if) all channels have been muted successfully. Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Use status flags instead of direct LED accessJacob Erlbeck2-3/+28
Currently the LEDs are being accessed directly from within the l1_if.c file. So the handling of rf mute and activate/deactivate both access LED_RF_ACTIVE directly. This may lead to an inconsistent LED status. This patch replaces these calls to sysmobts_led_set() by an abstract equivalent bts_update_status(), that uses a set of independant status ids. The associated values can than be combined into a visible LED status. Currently LED_RF_ACTIVE is on iff BTS_STATUS_RF_ACTIVE is set and BTS_STATUS_RF_MUTE is not set. Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Do a RF mute when Radio Carrier is lockedJacob Erlbeck2-4/+71
Currently a Change Administrative State Request is just applied unconditionally to the object's state object and then acknowledged. This patch implements the special handling of setting the Radio Carriers state to LOCK or UNLOCK. This is done by passing the appropriate mute command to the L1 layer. Always all radio channels are affected, it is not possible to lock single radio channels. On success, an ACK is sent back to the bsc with the new state (based on the state passed in the callback by the L1 layer). If something went wrong or the firmware doesn't support RF mute, a NACK (REQ_NOT_GRANTED) is sent instead. Note that a NACK for such a request hasn't been sent by the BTS to the BSC yet, so (albeit it's spec conformant to do so) the BSC must be prepared to handle this correctly. Ticket: OW#976 Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Add L1 support for the new RF mute requestJacob Erlbeck3-0/+59
This adds a new function l1if_mute_rf(femtol1_hdl, ch_mute[8]) to set the mute state for each radio channel. On completion and iff l1if_mute_rf() returned 0 the callback oml_mo_rf_lock_chg(mo, ch_mute_state[8], success) is invoked when the response from the superfemto DSP is received. Ticket: OW#976 Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Add mappings for MuteRfReq/MuteRfCnfJacob Erlbeck1-0/+11
This add the mappings for SuperFemto_PrimId_MuteRfReq and SuperFemto_PrimId_MuteRfCnf to the arrays femtobts_sysprim_type, femtobts_sysprim_names, and femtobts_sysprim_req2conf. Sponsored-by: On-Waves ehf
2013-11-05sysmobts: Add L1P_T_INVALID to l1prim_typeJacob Erlbeck2-0/+11
Currently uninitialized elements of the femtobts_sysprim_type array are mistaken as L1P_T_REQ (which is accidently the first element and thus 0). This patch adds a new element to the enum that has the value 0 to detect uninitialized elements of the femtobts_sysprim_type array. Those will then show up in the log as 'SYS Prim XXX is not a Request!'. This patch also adds missing definitions of the CalibTbl messages in the femtobts_sysprim_type mapping so that the requests can still be identified as such. Sponsored-by: On-Waves ehf
2013-10-28sysmobts calibration: Load further tables even if one failsHarald Welte1-1/+11
Even if one calibration table cannot be loaded, continue to try to load the other tables, instead of aborting very early.
2013-10-28sysmobts calibration: skip bands not supported by L1Harald Welte3-5/+43
If L1 tells us that a certain band is not supported, then there is no point in even trying to read+load calibration tables from EEPROM or files.
2013-10-28sysmbts calibration: print error if we fail to read from EEPROMHarald Welte1-2/+10
2013-10-25rsl/pcu: Do not send a CHAN ACT to the BSC on PCU usageHolger Hans Peter Freyther2-0/+21
The PCU is forcing the activation of a PDCH. Currently the BSC will receive a channel act ack for a channel that was not activated at all. Use the "release_reason" flag of the lchan to see if we have requested a normal activation or a silent one. It feels a bit odd to do it in the TX function but it is the most easy solution right now. I have added logging so it will not be totally silent.
2013-10-25lchan: Print the name of the channel already in release requestHolger Hans Peter Freyther1-1/+5
2013-10-10sysmobts: Attempt to fix the compilation for the v1 hardwareHolger Hans Peter Freyther1-0/+4
2013-10-10misc: Fix resource leak when the ioctl is failingHolger Hans Peter Freyther1-2/+2
Fixes: Coverity CID 1040759
2013-10-09sysmobts: Permit local override of transmit power above 23 dBmHarald Welte1-1/+1
This is used in the sysmoBTS 2050, where the maximum power is 40 dBm We might want to add a safeguard of some kind to prevent people from overdriving their transmitters.
2013-10-09sysmobts: don't call sysmobts_get_nominal_power() twiceHarald Welte1-1/+1
... no need for that
2013-10-09sysmobts: make L1 power configurableHarald Welte1-0/+18
The TRX nominal output power (as seen by OML) is the aggregate power of any gain internal to the sysmoBTS (and managed by L1) and any external PA. This is what is used in trx->nominal_power; fl1h->l1_power is the transmit power to which we configure the sysmoBTS L1. This is 23 dBm (200mW) by default in the sysmoBTS 1002, and 40 dBm (5W) in the sysmoBTS 2050. However, if sysmoBTS 2050 is used in single-TRX configuration, it may be used with higher power, which we can now configure in the config file / vty. TODO: A separate, additional field that keeps track of any gain added by an external PA, e.g. if the sysmoBTS 1002 is used with a sysmoAMP.
2013-10-09sysmobts: Don't use the clock calibration value on external clocksHarald Welte1-3/+21
If the clock is provided by an external (like GPS) clock, we should not use the calibration value. The latter is only used in context of the OCXO or VCTCXO.
2013-10-09sysmobts: Set nominal transmit power depending on sysmoBTS modelHarald Welte3-1/+32
This enables the use of up to 5W for each TRX in a sysmoBTS 2050.
2013-10-09Do not attempt to initialize L1 with a band unsupported by hardwareHarald Welte3-11/+21
If the EEPROM tells us that a given unit doesn't support a given band, we shouldn't try to use it, even if the BSC tells us to use an ARFCN in such an unsupported band. The reason is simple: The given BTS unit might have band specific filter / duplexer / PA.
2013-10-09sysmobts: Read supported bands from EEPROMHarald Welte1-2/+21
...rather than assuming that any v2 hardware supports all bands.
2013-10-06abis: delay l1if_reset() until OML link is establishedHarald Welte2-3/+10
2013-10-06abis: Use OML remote (BSC) address if RSL CONNECT contains no IPHarald Welte3-7/+23
This introduces a new get_signlink_remote_ip() function whcih we also use in the RSL code to determine the RTP remote address if the CRCX/MDCX contains no remote IP address IE.
2013-10-06Call e1inp_vty_init() to make abis interface accessible from VTYHarald Welte1-0/+1
It might not be particularly useful, but then there's no disadvantage either...
2013-10-06migrate away from our own abis.c code to libosmoabisHarald Welte6-477/+174
libosmoabis has a BTS-side implementation of the IPA protocol for years, and osmo-bts should have used that all the time. Unfortunately it had its own local hack, this patch is migrating to the libosmocore implementation.
2013-10-04Use GPS as default clock source on sysmoBTS 2050Harald Welte3-3/+41
2013-10-04add sysmobts-util command-line utility to read/write EEPROM parametersHarald Welte2-1/+132
2013-10-04sysmobts_par: add value_string definitions for parametersHarald Welte2-1/+18
2013-10-04sysmobts_par: Implement new EEPROM parameters (trx_nr, model_nr, model_flags)Harald Welte2-0/+21
2013-10-04sysmobts_par: support for negative parametersHarald Welte3-23/+23
by splitting the rerutn code/status from the actual value, we support negative values to be stored in the EEPROM
2013-10-04EEPROM: add model_nr, model_flags and trx_nr to EEPROMHarald Welte1-1/+9
2013-09-03Remove obsolete osmo-bts-bb codeAndreas Eversberg4-528/+1
2013-07-16sysmobts: Set the clock calibration to the value read from the eepromNicolas J. Bouliane4-1/+50
By default read the clock calibration from the EEPROM. It is still possible to set it using the cli. Signed-off-by: Nicolas J. Bouliane <nicolas.bouliane@nutaq.com>