AgeCommit message (Collapse)AuthorFilesLines
2015-01-06sysmobts: Create a calibration loop that will be runzecke/sysmobts-calibrationHolger Hans Peter Freyther2-21/+64
Continously run the calibration process. Everytime we call the reset function classify the outcome. In case of a failure schedule the next command soon and otherwise wait several hours. Remember if the process was started through the VTY or the run loop. In case it can't be started immediately reset and schedule a new run.
2015-01-06sysmobts: Start the calibration the first time the link is upHolger Hans Peter Freyther2-0/+13
After a reboot the system might have been off for a long time and the currently used value might be wrong. Remember that we never ran the calibration and execute it on start.
2015-01-06sysmobts: Initial version to use libgps to determine FIX stateHolger Hans Peter Freyther4-4/+116
We should only calibrate the clock if there is a GPS fix. Start gpsd to determine if there is a fix or not. Work around trimble decoding issues (sent an email upstream). We need to gain some more experience to see if there memory leaks. We also need to re-schedule the calibration depending on the outcome.
2015-01-06sysmobts: The correction for GPS is in the reverse directionHolger Hans Peter Freyther1-3/+18
Change the sign before passing it as correction value. The error is the difference between the TCXO and GPS. We need to correct by the reverse of the error. This seems to be different depending on the clock source we have. This is a last minute untested change.
2015-01-06sysmobts: Use the ctrl interface for calibrationHolger Hans Peter Freyther4-5/+261
This runs the entire procedure for calibration with reasonable error and success checking. It can be triggered from the VTY of the sysmobts-mgr right now. What is missing is to hook up with GPSD to check if the system has a fix and provide a mode that will continously run the calibration command.
2015-01-06sysmobts: Copy more of l1if_rf_clock_info_reset into the CTRL codeHolger Hans Peter Freyther1-0/+17
The CTRL code should have used/extended the l1_if calibration code. The sysmobts-mgr code first needs to determine if the clock adjustment is necessary at all. This is done by first resetting the counters, then waiting, then asking for the diff and then applying the correction value. But the reference clock is only set by the application comand. Copy more code of l1if_rf_clock_info_reset to set the reference clock as value. This is leaving some todos inside the code that will be resolved as part of SYS#835. Related: SYS#835
2015-01-06sysmobts: Begin with calib control from the sysmobts managerHolger Hans Peter Freyther5-2/+155
In the long run we will connect to GPSD and wait for a fix and then run the calibration. The first step is to open (and re-open) the control connection to the BTS. As the connection is on localhost there should not be a computation overhead to always have the connection open. When connecting assume that the ASYNC connect worked directly as otherwise we get no notification of the failure. This looks like a "bug" of libosmo-abis that should check if the socket has been connected or not.
2015-01-06msg: Generalize the message structure testHolger Hans Peter Freyther1-8/+10
This was taken out of LaF0rge's OML router branch and is now used by the extended calibration feature.
2014-12-30SMS-CB: Clean up + centralize generation of NULL blockHarald Welte1-11/+22
2014-12-30SMS-CB: Use GSM412_SEQ_NULL_MSG rather than 0xfHarald Welte1-1/+1
2014-12-30SMS-CB: use gsm412_block_type from libosmocoreHarald Welte1-9/+1
.. and not our own local re-definition of the structure.
2014-12-30SMS-CB: Use GSM412_ #defines from libosmocore rather than our ownHarald Welte1-10/+8
2014-12-30CBCH: Implement CBCH block segmentation and RSL_MT_SMS_BC_CMDHarald Welte9-7/+254
* CBCH load indications are not yet sent * The queue length is not yet limited!
2014-12-30Initial CBCH supportHarald Welte9-5/+60
This should handle OML channel combinations with CBCH and activate the CBCH SAPI towards the DSP correspondingly. What is still missing is sending any actual information over the CBCH in respons to the PH-RTS.ind coming up from L1.
2014-12-26sysmobts: Include the serial number in the find responseHolger Hans Peter Freyther1-1/+10
Read the serial number once and format it as a string. In case no serial number is present -1 will be returned. Manually tested with a slightly modified version. serial_nr was the expected one.
2014-12-16sysmobts: Add slave on/off action for the sysmoBTS2050Holger Hans Peter Freyther5-10/+97
Add new power actions for the sysmoBTS2050. This allows to switch off the secondary/slave when the system temperature is too high and back on when the normal level is reached. Do not allow to switch off the master (so remove the enum value), do not check if the slave is switching itself off.
2014-12-16sysmobts: Comment out the varpoware options that are not implementedHolger Hans Peter Freyther1-0/+4
2014-12-16sysmobts: Add "normal" actions to executeHolger Hans Peter Freyther3-10/+113
Instead of keeping state to remember what was done and needs to be undone this patch introduces actions that will be executed when the system is back to normal. By design the system is considered to be in the normal state and these actions will be only executed after the system is coming back to the normal state. One advantage of this scheme is that an operator can decide that an overheated systems hould be off duty and requires manual interaction to be allowed back in service. The change has only been smoke tested Fixes: SYS#833
2014-12-16sysmobts: Remove unused global variablesHolger Hans Peter Freyther2-4/+0
We do not need to have these variables anymore. Just remove them.
2014-12-16sysmobts: Read the clock calibration from another placeHolger Hans Peter Freyther4-11/+42
Read the clock calibration from the place that will be read by the BTS process. Use the standard eeprom code for doing that. The code assumes that this and the other eeprom code don't write/invlidate the others reason. If that assumption would not be true calls to eeprom_free_resources should be added.
2014-12-16sysmobts: Don't list non integer parameters in the helpHolger Hans Peter Freyther3-2/+23
The command can only read integer parameters. Don't offer buffers as this will lead to error 22.
2014-12-16eeprom: Fix brown paper bag introduced a long while agoHolger Hans Peter Freyther1-1/+1
91d204e2db8f53a6ae4827ecc4b0ccb0137375d0 while adding checks to resolve coverity issues. We simply had no one writing to the eeprom so this was unnoticed for a long time.
2014-12-12sysmobts: Add an option to stop the systemd sysmobts.serviceHolger Hans Peter Freyther3-0/+34
For systems without direct access to the PA the best option is to simply switch off the bts service. This will stop the transmission which will take load from the DSP/FPGA/RF circuit and indirectly from the PA as well. We should introduce "pa-on and bts-on" that can be executed as "normal" action.
2014-12-12sysmobts: Actions can be executed in all levelsHolger Hans Peter Freyther1-20/+25
Somebody could decide to switch off the PA in the warning level already. Support this mode of operation. This means we could have a config that: * Enables the PA in the normal level * Disables it in the critical level With kdbus or better IPC we could even have the PA and other parts be represented as service that talk to a bts manager and then simply execute start/stop requests. This would make the entire TODO entry irrelevant as state would be managed by systemd and one can see the time the service was executed.
2014-11-10bts: Move BTS and children into the enabled state after opstartHolger Hans Peter Freyther1-0/+6
With "show bts 0" all objects were still listed as dependency. Once the BTS has been started.. move all the other objects into the enabled state. Our OpenBSC OML code doesn't care but people using the VTY to inspect state will be more happy. One day... we will create proper statemachines inside the BTS and the BSC instead of changing the state in the BTS impl. Fixes: ONW#1330
2014-11-10bts: Start with the site manager being enabled and availableHolger Hans Peter Freyther1-0/+3
We would never transition the sitemanager to anything. Our SW does not support SW activation's so we are always ready. Related: ONW#1330
2014-11-10bts: Mark NSVC1 as offline. We do not expose a second NSVCHolger Hans Peter Freyther1-1/+1
OsmoBSC> show bts 0 ... GPRS NSVC1: Oper 'Disabled', Admin 'unknown 0x0', Avail 'Off line'
2014-11-10bts: Fix typo in OML commentHolger Hans Peter Freyther1-1/+1
2014-11-10bts: In case the line isn't created do not exit with code 1Holger Hans Peter Freyther1-1/+1
The service file will prevent a re-launch of the sysmobts.service in case the main process exits with '1'. In case the ethernet is not available yet the routine would fail and the sysmobts process will not be restarted. unable to connect/bind socket: Network is unreachable <000f> input/ipaccess.c:885 cannot open OML BTS link: Network is unreachable unable to connect to BSC root@sysmobts-v2:~# echo $? 2 Fixes: SYS#736
2014-11-10ctrl: Fix compiler warningHolger Hans Peter Freyther1-0/+1
bts_ctrl_lookup.c: In function 'bts_controlif_setup': bts_ctrl_lookup.c:97:2: warning: implicit declaration of function 'bts_ctrl_cmds_install' [-Wimplicit-function-declaration] rc = bts_ctrl_cmds_install(bts); ^
2014-11-10abis: Fix compiler warning and remove const from syntaxHolger Hans Peter Freyther2-4/+4
libosmo-abis doesn't make it easy to have these parameters as const.. just declare it non-const in the api. We pass a static string but we know it will not be modified.
2014-11-10tch: Avoid compiler warnings when using the direct RTP modeHolger Hans Peter Freyther1-1/+4
tch.c: In function 'l1_to_rtppayload_amr': tch.c:247:29: warning: unused variable 'amr_mrc' [-Wunused-variable] struct amr_multirate_conf *amr_mrc = &lchan->tch.amr_mr; ^ tch.c: In function 'rtppayload_to_l1_amr': tch.c:335:10: warning: unused variable 'amr_if2_core_len' [-Wunused-variable] uint8_t amr_if2_core_len = payload_len - 2;
2014-11-10sysmobts: Call the routine send and receive instead of getHolger Hans Peter Freyther1-4/+4
2014-08-27Correctly fill system information messages from BSCAndreas Eversberg1-2/+7
SI 5*/6 require L2 header of 0x03,0x03. All SI might be less than 23 octets, so they need to be filled with 0x2b.
2014-08-25tx_power: Check actual TRX output power against intended valueHarald Welte3-0/+23
We use the completion call-back from L1 to compare the instructed TRX board output power with the actual value as reported back from L1. Right now we only print an error message in case the values disagree. In the future we might want to either use that value as part of our calculation or send an OML alarm report to the BSC.
2014-08-25Revert "add nominal transmit power for upcoming sysmoBTS 1020 and 1100"Harald Welte1-6/+0
This reverts commit d0866fe4773918381c80c7362ef2d043845ebf54, as it was a bit premature. We need to address this more properly.
2014-08-25tx: Generate a working configuration file on "write"Holger Hans Peter Freyther1-2/+2
We do not have the vty test script to do roundtrip testing. There is no max-initinal-pout, then there was a typo inside 'initial' and for the relative step size the unit is dB/mdB. Fix both of that.
2014-08-25tx: Fix another typo i found today morningHolger Hans Peter Freyther1-1/+1
2014-08-25sysmobts: Remove left-over from non-generic power controlHolger Hans Peter Freyther1-5/+0
2014-08-25ctrl: Use msgb_free to free messageHolger Hans Peter Freyther1-8/+8
2014-08-25tx_power.c: fix potential array out-of-bounds accessHarald Welte1-1/+1
2014-08-25make use of libosmocore 'gsm_meas_rep_unidir'Harald Welte1-8/+10
Back in March 2013, some structures and defines related to decoded measurement reports have been moved from openbsc to libosmocore (libosmocore e128f4663104ed64e33e362cff2566f36d65e658) so that they can be used also from osmo-bts. This finally follows up on that. You need openbsc 7ff4f0e0fc692bfab829da50edb104e58b271e7e or later.
2014-08-25add nominal transmit power for upcoming sysmoBTS 1020 and 1100Harald Welte1-0/+6
2014-08-25tx_power.c: Fix typos in commentsHarald Welte1-2/+2
2014-08-25add information on unit (milli-dB) to control interface docHarald Welte1-3/+7
2014-08-24disable clock control interface on HW_SYSMOBTS_V1Harald Welte1-0/+4
2014-08-24add control_if.h to Makefile.amHarald Welte1-1/+1
2014-08-24add a small document describing the use of the control interfaceHarald Welte1-0/+57
2014-08-24ctrl: Add sysmobts control interfaceHarald Welte3-1/+255
This sysmobts specific control interface allows for clock calibration from an external program by means of the "trx.0.clock-info" and "trx.0.clock-correction" values.
2014-08-24l1_if: pass private 'void *data' from call to callbackHarald Welte4-44/+62
When enqueueing a command towards the L1, we can now pass along a private data pointer, which then gets passed to the call-back upon completion.