aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2014-01-22handover: Use common function to reset handover statezecke/handover-fooAndreas Eversberg3-4/+9
Conflicts: src/common/rsl.c
2014-01-22handover: Use enums to indicate the state instead of magic numbersHolger Hans Peter Freyther3-4/+11
Conflicts: src/common/l1sap.c src/common/rsl.c src/osmo-bts-trx/l1_if.c
2014-01-22Reject BTS attributes, if T3105 is set to 0msAndreas Eversberg1-3/+9
2014-01-22Include the lchan name and state in log messages, just stop the timerHolger Hans Peter Freyther1-13/+21
* Add gsm_lchan_name to the log messages to know which channel is used for those. * Fix typos * The RACH detection is not disabled after the first access burst. This means that the following: if (lchan->ho.phys_info_count >= btsb->ny1) { /* HO Abort */ might never be triggered and the channel activation/handover is just guarded by timers in the bsc. Conflicts: src/common/rsl.c
2014-01-22wipHolger Hans Peter Freyther2-3/+2
2014-01-22Handover support to common part of BTS codeAndreas Eversberg9-2/+181
Conflicts: include/osmo-bts/logging.h src/common/Makefile.am src/common/bts.c src/common/l1sap.c src/common/logging.c src/common/rsl.c
2014-01-22Merge part of incomplete handover code from HaraldDaniel Willmann1-0/+15
TODO
2014-01-22Merge part of incomplete handover code from HaraldDaniel Willmann3-1/+13
* Check if channel activation is handover and save ho ref in lchan * Acticate RACH for RX uplink if the channel activation is for handover Holger: * Merge parts of "Handover support to commong part of BTS code" from Andreas.
2014-01-21sysmobts: Specify TRX nominal maximum tx power as fMaxTxPowerHarald Welte1-0/+6
In the MPH ACTIVATE-RF.req, we need to specify the nominal maximum transmit power, i.e. >= what we later request during MPH-INIT.req. This field was first introduced in API version 2.2, but we never used it so far. It may help fixing a bug related to excessive power consumption of the sysmoBTS 2050.
2014-01-21sysmobts: Honor the LDFLAGS when building the sysmobts-calib utilityHolger Hans Peter Freyther1-1/+1
Address warning during system builds. Addresses: WARNING: QA Issue: No GNU_HASH in the elf binary...
2014-01-21sysmobts: Launch the sysmobts-mgr in the screen and add service fileHolger Hans Peter Freyther2-0/+13
Launch the sysmobts-mgr as well. It will monitor the temperature but it will not update the eeprom or act on any of the data. On top of that it will respond to ipaccess-find messages making it more easy to find the device.
2014-01-17sysmobts-mgr: Check the return value of the sendtoHolger Hans Peter Freyther1-1/+5
Fixes: Coverity CID 1157379
2014-01-17sysmobts-mgr: Respond to ipaccess-find broadcast messagesHolger Hans Peter Freyther5-14/+292
Bind to port 3006 and listen to incoming IPA requests. Currently we unconditionally respond with the MAC and IP Address of the unit. To determine the IP Address the kernel is asked for thesource address of the route for the destination. In contrast to a nanoBTS we will reply to the port the initial request came from.
2014-01-17sysmobts-mgr: Parse the daemonize optionHolger Hans Peter Freyther1-1/+5
Parse the daemonize option and daemonize after the full set-up of the code.
2014-01-17sysmobts-mgr: Parse logging related commands, re-order init functionHolger Hans Peter Freyther1-13/+17
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-15misc: Allow to cross-execute the testsuite using qemuHolger Hans Peter Freyther1-2/+2
When cross-compiling osmo-bts/osmo-pcu one can not easily execute the testsuite. By adding the OSMO_QEMU variable in front of the normal execution we can execute the tests. This should work for native and cross builds. $ OSMO_QEMU="qemu-arm -L /opt/poky/1.1.2/sysroots/armv5te-poky-linux-gnueabi/" make check
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-20contrib: Remove the stray "FIVE" print it doesn't make any senseHolger Hans Peter Freyther1-1/+0
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 Freyther3-7/+9
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 Freyther3-3/+3
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 Freyther3-21/+21
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 Erlbeck3-3/+36
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 Erlbeck3-4/+72
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 Erlbeck4-0/+63
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-31pcu: Exit the PCU in case of loss of the sysmobts connectionHolger Hans Peter Freyther1-1/+1
The PCU is not capable of cleaning up properly. For now simply exit the PCU in case the sysmobts has exited. This requires osmo-pcu a30f47613abb7c22a26d534d66e478265a8c2c09 or later.
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 Freyther3-0/+30
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: Fix the unit test after the internal band changesHolger Hans Peter Freyther1-4/+15
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