aboutsummaryrefslogtreecommitdiffstats
path: root/include
AgeCommit message (Collapse)AuthorFilesLines
2016-02-22Fix ocmo-bts-octphy interaction with OsmoPCUMax2-2/+2
Previously osmo-bts-octphy have not provided in-band presence information which cause off-by-one errors and misinterpretation of ph_data_ind by PCU. This fixed now by adding support for explicitly passing PH-DATA presence info. Corresponding check and in-band passing of presence information are removed. Note: this requires libosmocore version with osmo_ph_pres_info_type support integrated. [hfreyther/max: Remove + 1 from the decoded length]
2016-02-15make PCU socket and telnet port configurableHarald Welte2-1/+7
In some cases we'd like to run multiple instances of osmo-bts on a single machine. This is the case where we a multi-TRX PHY is to be used for several BTSs, or in case osmo-bts-trx has multple SDRs attached. This wa currently prevented by having a hard-coded PCU socket path and telnet port, which are now configurable via VTY / config file itself.
2016-02-15declare pcu_direct in pcu_if.hHarald Welte1-0/+2
2016-02-15move auto-band configuration commands to common/vty.cHarald Welte1-0/+3
It remains up to the individual BTS hardware models to decide whether or not to register those commands (depending on whether they support the feature) via cfg_bts_auto_band_cmd / cfg_bts_no_auto_band_cmd
2016-02-15LC15/sysmobts: Don't try to refer to fl1h from PHY configHarald Welte2-0/+12
At the time the phy link / phy instance level VTY configuration commands are parsed, we did not yet call l1if_open() and thus pinst->u.{lc15,sysmobts}.hdl == NULL. PHY or PHY instance specific configuration must thus be stored inside the phy_link or phy_instance itself, and not inside the (not yet existing) handle. We solve this by moving around some parameters: * clk_use_eeprom/clk_cal/clk_src/calib_path get replicated in phy_instance * min_qual_{rach,norm} are moved into the generic part (which means that osmo-bts-octphy and osmo-bts-trx should also implement them)
2016-02-15sysmobts/LC15: Fix startup-time DSP trace flage configurationHarald Welte1-0/+2
Due to the changes introduced by the phy_link API, it's not easy to set the default DSP trace flags via a command line argument anymore. We now rather introduce a persitent VTY configuration command, by which the default DSP tracing configuration can be set (for each PHY). The persistent trace flags are stored in the phy_instance, while the current operational run-time flags are in fl1h->phy_instance.
2016-02-15introduce + use new generic vty_get_phy_instance()Harald Welte1-0/+2
this function is intended to be used by VTY commands that need to resolve a given PHY interface.
2016-02-15LC15: port litecell 1.5 support to recent osmo-bts masterHarald Welte1-0/+3
This includes changes required for * shared main() function accross all BTS models * use of the new phy_link / phy_instance infrastructure as the basis for true multi-TRX operation
2016-02-15port sysmobts to phy_link/phy_instance abstractionHarald Welte1-0/+1
2016-02-15Introduce new phy_link and phy_instance abstractionHarald Welte7-19/+134
This way we can model a flexible mapping between any number of PHYs, each having multiple instances, and then map BTSs with TRXx on top of those PHYs.
2016-02-15TRX: Move scheduler to src/commonHarald Welte3-1/+258
This is the final step to make the L1 scheduler generally available to other BTS models than OsmoTRX.
2016-02-03abis: Add a queue of OML messagesHarald Welte1-0/+1
When the oml_link is down or not yet established, we currently lost any OML messages that were scheduled for transmission to the BSC. Let's prevent that by keeping a queue of OML messages, which is drained at the time the OML link comes up again.
2016-01-22merge bts-specific main function into common/main.c:bts_main()Harald Welte2-0/+5
This removes a lot of copy+paste duplication between different BTS models.
2016-01-22Add new bts_model_ctrl_cmds_install()Harald Welte1-0/+2
This is one step in making the main() functions of different BTS models more similar, so we can share one code rather than multiple copies of it.
2016-01-17Fix T200 default valuesHarald Welte1-1/+1
t200_ms is an unsigned int [7] array, while the oml_default_t200_ms was an uint8_t[7] array, which we memcpy() to the former as default initializer. Fix this by turning oml_default_t200_ms into unsigned int, too.
2016-01-16TRX: replace some more 2715648 magic numbers with GSM_HYPERFRAMEHarald Welte1-0/+3
2016-01-16move 'GSM_FR_BYTES' and related definitiions to common partHarald Welte1-0/+7
2016-01-16LAPDm: Use T200 settings from OML rather than libosmocore defaultsHarald Welte1-0/+4
2016-01-04fix large amount of compiler warnings in common and sysmobts codeHarald Welte2-1/+2
2015-09-22Allow TRX 0..254 at VTY, even if less TRX are availableAndreas Eversberg1-1/+1
Instead of limiting the number of TRX at VTY to the actual number of supported TRX, VTY allows to configure any possible number of TRX. If a TRX is configured, which is not supported by BTS model, an error message is returned, which states that the given TRX is not supported.
2015-09-22Allow one or more TRX to configure via VTYAndreas Eversberg1-1/+1
2015-09-22TRX: Implementation of MS power and timing advance loopsAndreas Eversberg1-0/+1
2015-09-22ABIS: Introduce bts_model_abis_close to indicate ABIS link failure.Andreas Eversberg1-0/+2
sysmocom-bts model shuts down on link loss, but other models may not want this, so shutdown is moved tor bts_model_abis_close of osmo-bts-sysmo.
2015-09-22TRX: Introduce osmobts-trx, a layer 1 implementation for OpenBTS tranceiversAndreas Eversberg3-0/+10
The code is quite complete, TCH and PDCH channels are not yet tested.
2015-09-22move MS power control handling from sysmobts to common partHarald Welte3-1/+11
MS uplink power control is required in pretty much any BTS, and we cannot assume that they PHY / L1 will always take care of it by itself. So the correspondign code is moved to common/power_control.c and called from the generic part of L1SAP. The corresponding VTY paramter has been moved from the sysmobts-specific trx VTY node to the common BTS VTY node.
2015-09-22Move gsmtap VTY commands from osmo-bts-sysmo to common partAndreas Eversberg1-1/+1
2015-09-22sysmobts: Clean up transitions for lchan cipher stateAndreas Eversberg1-2/+3
There are three transitions: 1. LCHAN_CIPH_NONE -> LCHAN_CIPH_RX_REQ -> LCHAN_CIPH_RX_CONF It is used to enable ciphering in RX (uplink) direction only. 2. LCHAN_CIPH_RX_CONF -> LCHAN_CIPH_RX_CONF_TX_REQ -> LCHAN_CIPH_RXTX_CONF It is used to additionally enable ciphering in TX (downlink) direction. 3. LCHAN_CIPH_NONE -> LCHAN_CIPH_RXTX_REQ -> LCHAN_CIPH_RX_CONF_TX_REQ -> LCHAN_CIPH_RXTX_CONF It is used to enable ciphering in both TX and RX directions. This is used when the channel is activated with encryption already enabled. (assignment or handover) In order to follow the order of these transitions, the RX direction must always be set before the TX direction. If no cipher key is set (A5/0), ciphering is set to ALG 0, but lchan cipher state remains at LCHAN_CIPH_NONE.
2015-09-22l1sap: Port code to new ciphering handlingHarald Welte1-0/+2
... introduced in 2cc37035d73191b71b9ba9c0d559a0da6a5f35e5
2015-09-22Add TCH messages to PH-/MPH-/TCH-SAP interfaceAndreas Eversberg1-3/+0
This part moves TCH handling from osmo-bts-sysmo to common part. The RTP handling is done at the common part, so they can be used by other BTS models.
2015-09-22Move chan act/rel/modify from bts_model to PH-/MPH-/TCH-SAP interfaceAndreas Eversberg2-7/+1
This part replaces channel activation/deactivation/modification routines by MPH_INFO messages.
2015-09-22Relace bts_model_get_time() by get_time() at common partAndreas Eversberg3-3/+2
2015-09-22Add TIME (MPH_INFO) IND messages to PH-/MPH-/TCH-SAP interfaceAndreas Eversberg1-0/+1
This part moves GSM time handling from osmo-bts-sysmo part to common part.
2015-09-22Add BCCH message to PH-/MPH-/TCH-SAP interfaceAndreas Eversberg1-0/+2
This first part moves BCCH message primitives from osmo-bts-sysmo to common part. A new file "common/l1sap.c" is introduced to implement handling of layer 1 messages from/to BTS model.
2015-03-25Add header file of PH-/MPH-/TCH-SAP interface to common part of osmo-btsAndreas Eversberg2-1/+72
Instead of handling primitives directly at layer 1 specific code, osmo-bts handles primitives at common code. When all primitive are moved, the l1sap interface will: - receive PH-DATA indications and forward them to layer 2. - check for RF link loss and notify BSC. - receive TCH indications and forward them via RTP. - receive PH-RTS indications and send PH-DATA requests with content according to its logical channel. - receive TCH-RTS indications and send TCH requests with content received via RTP or loopback from TCH indications. - send MPH-INFO requests to activate, deactivate and modify logical channels and handle their confirms. - receive MPH-INFO indications with measurements from tranceiver. - forward received and transmitted PH-DATA to GSMTAP.
2015-02-05power/sysmobts: Add a manual ms power level controlHolger Hans Peter Freyther2-0/+4
Currently the DSP is instructed to achieve a given uplink power target but there are circumstances (e.g. EMV testing) where we need more control over it. The "manual/software/osmo" power control can only be implemented per TRX and not per lchan. Add a very very basic control that checks the MS Power used by the phone, the actual receive level and then adjust the power. The code doesn't take the history into account, if the phone can not reach the requested power level the code will be stuck (e.g. no timeout based on multiframes). It has a mode for a fixed power control but no way to set it yet. The change of the mode requires a restart of the software.
2014-12-30CBCH: Implement CBCH block segmentation and RSL_MT_SMS_BC_CMDHarald Welte4-2/+23
* CBCH load indications are not yet sent * The queue length is not yet limited!
2014-12-30Initial CBCH supportHarald Welte1-0/+1
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-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 Freyther1-2/+2
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-08-25tx_power: Check actual TRX output power against intended valueHarald Welte1-0/+2
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-24add control_if.h to Makefile.amHarald Welte1-1/+1
2014-08-24ctrl_if: Move control interface to port 4238Harald Welte1-1/+1
... which is now defined in libosmocore
2014-08-24add control interface to common BTS (for thermal attenuation)Harald Welte1-0/+3
Using this control interface, an external program can request attentuation of the transmitter for thermal management reasons. The external application doesn't have to know anthing about the actual transmit power, but it can just configure a certian value of milli-dB (1/10000 bel) and update (increase/decrease) that value depending on the thermal environment.
2014-08-24New generic transmit power handlingHarald Welte4-1/+78
In order to support transmit power reduction by thermal management as well as the variety of new internal / external PA configurations of BTSs, we need a slightly more complex system. Also, as at high power a single dB can be quite a big difference, we are now doing all computations in milli-dB(m), i.e. 1/10000 bel. Ramping is now used both for up and down ramping, as that is useful in cases where you want to gracefully shut down a cell by shrinking its radius, gradually handing over subscribers to neighboring cells. Furthermore, this code is becoming part of the 'common' codebase, as it is not really specific to how sysmobts is working. The user can specify a single aggregate value for external system gain/attenuation. Let's say you have 1dB loss of antenna cable, so you can put that as 'user-gain -1' into the config, which means that a 'transmit power of 20dBm' will be compensatet for that and the TRX is instructed to output 21dBm to compensate the cable loss. Similarly, external PAs can be described by a positive user-gain. One of the next steps will be to communicate those values and the nominal power capability of the specific BTS to the BSC, so the BSC will automatically show correct signal levels in the VTY and log files. The code includes provisions for future extensions regarding * an external and an internal PA with calibration tables * a thermal attenuation setting to be controlled by the site manager
2014-08-18replace oml_{osmo,ipa}_magic[] with abis_nm_{osmo,ipa}_magicHarald Welte1-3/+0
the latter is now in libosmogsm.
2014-07-31sysmobts: Verify the structure of IPA and OML messagesHolger Hans Peter Freyther3-1/+25
Extend the router to verify that the message received is properly encoded. The code can deal with the basic structure of ETSI OML and vendor specific messages for ip.access and the osmocom project.
2014-07-31oml: Make it possible to include the file directlyHolger Hans Peter Freyther1-0/+4
Fixes: ../../include/osmo-bts/oml.h:8:42: warning: ‘struct gsm_bts’ declared inside parameter list [enabled by default] int down_oml(struct gsm_bts *bts, struct msgb *msg); ^ ../../include/osmo-bts/oml.h:8:42: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] ../../include/osmo-bts/oml.h:12:52: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_send_msg(struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type); ^ ../../include/osmo-bts/oml.h:13:31: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_opstart_ack(struct gsm_abis_mo *mo); ^ ../../include/osmo-bts/oml.h:14:32: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_opstart_nack(struct gsm_abis_mo *mo, uint8_t nack_cause); ^ ../../include/osmo-bts/oml.h:15:32: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_statechg_ack(struct gsm_abis_mo *mo); ^ ../../include/osmo-bts/oml.h:16:33: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_statechg_nack(struct gsm_abis_mo *mo, uint8_t nack_cause); ^ ../../include/osmo-bts/oml.h:19:29: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state); ^ ../../include/osmo-bts/oml.h:22:31: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] void oml_mo_state_init(struct gsm_abis_mo *mo, int op_state, int avail_state); ^ ../../include/osmo-bts/oml.h:26:10: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int success); ^ ../../include/osmo-bts/oml.h:29:33: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_tx_state_changed(struct gsm_abis_mo *mo); ^ ../../include/osmo-bts/oml.h:31:33: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] int oml_mo_tx_sw_act_rep(struct gsm_abis_mo *mo); ^ ../../include/osmo-bts/oml.h:36:4: warning: ‘struct gsm_abis_mo’ declared inside parameter list [enabled by default] uint8_t cause);
2014-07-25amr: Avoid toggling the CMR from none and a set oneHolger Hans Peter Freyther1-0/+3
For LCR and other systems without out-of-band information we need to indicate the CMR. Not every air message will include the mode and we sent a stream that had the CMR set and not-set. This lead to the AudioCodes MGW only playing every second frame. Remember the last used mode and initialize it to _NONE when we receive the multirate config. In case of a real error we will still use AMR_CMR_NONE. The initial patch is from Harald. I have added the initialization and moving of the defines to amr.h. Manually verified by enabling AMR5.9 and looking at two RTP packages in sequence. In both cases the CMR was 2. I have looked at "amr.nb.cmr != 2" in wireshark and only found the MGCP dummy packet.
2014-05-22common: Remove unused gsm_time parameter from lchan_sacch_getHolger Hans Peter Freyther1-1/+1
2014-05-15abis: Separate initialization from connect for AbisHolger Hans Peter Freyther1-0/+1
Initialize the libosmo-abis VTY nodes more early so we can parse the config file that was created by "write". Introduce abis_init to initialize the libosmo-abis and modify abis_open to re-use an existing line. Update the comments. This has only been tried with the sysmobts-remote on x86. A TCP connection is opened toward the configured BSC. Fixes: SYS#285