aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-03-27bts-{sysmo,oc2g,lc15}: Make sure RTP clock ticks during FACCH stealinglaforge/os5974Harald Welte6-9/+33
Whenever we have FACCH stealing happening, the RTP clock didn't continue to tick as we didn't report anything to RTP in those situations. Change-Id: Iae832137b8ef8dc7c1e6d0746df69efd41aafcf0 Closes: OS#5974
2023-03-24osmo-bts-{sysmo,lc15,oc2g}: fix segfault in ph_tch_req()Vadim Yanitskiy4-8/+4
ph_tch_req() is a recursive function and conditionally calls itself at the very bottom. The recursive call happens iff all of the following conditions are met: * DTXd is enabled, * AMR codec is in use, * DTX DL AMR FSM state is recursive. The problem is that ph_tch_req() may pull sizeof(*lsap) from the given msgb twice: during the initial and the recursive calls. The second attempt to pull sizeof(*lsap) causes the process to abort, because the remaining room is less than it's attempting to pull. AFAICT, doing msgb_pull() is not really necessary, given that l1sap_tch_rts_ind() thankfully does set msg->l2h before pushing the lsap header in front of the actual frame. Update osmo-bts-sysmo and its copy-pasted siblings, which are likely affected too, except osmo-bts-octphy which does not do the recursion. Change-Id: Ib349b74a9e4bd48c902286f872d3b0e9a068256c Related: OS#5925
2023-03-23rsl: rsl_handle_chan_mod_ie(): add missing GSM48_CMODE_* valuesVadim Yanitskiy1-17/+41
Change-Id: Iec397f1ef4cb5ac1c48abf869f54e272ed0fbb55 Depends: libosmocore.git I6adda28698c0e479ef20f5d090c1f7f76a2ec97e Depends: libosmocore.git Ia6b428e5b6aaecf151cbfa980b89eff6d0fe6006 Related: OS#1572
2023-03-23bts-trx: Avoid pushing interf_meas for disabled TRXPau Espin Pedrol1-0/+5
It makes no sense to push interference meas results for those TRX since they are disabled, unused and hence won't be reported in RSL RF Res Ind. Related: SYS#6370 Change-Id: Ie3fd80970585cb30808b0644568dbc8936a57721
2023-03-22osmo-bts-trx: properly activate [CBCH/]BCCH/CCCHVadim Yanitskiy4-58/+101
The timeslot carrying BCCH/CCCH on C0 is a bit special in a way that it's being activated implicitly - there is no explicit RSL CHANnel ACTIVation for that. This is why we have TRX_CHAN_FLAG_AUTO_ACTIVE, which marks sub-channels of BCCH/CCCH in the trx_chan_desc[]. The upcoming patch changes the burst buffer allocation strategy, so that the memory is allocated on channel activation and then free()d on channel release. This patch facilitates that by making the activation/deactivation logic consistent for all sub-channels. Change-Id: Id0c70d6a2b777a5117c85149bfa1b3a997299d1d Related: OS#1572
2023-03-21contrib/osmo-bts.spec.in: do not depend on libosmogbVadim Yanitskiy2-2/+1
The header file <osmocom/gprs/protocol/gsm_04_60.h> was recently deprecated and moved to <osmocom/gsm/protocol/gsm_44_060.h>, so it's now part of libosmogsn and depending libosmogb is not needed. Change-Id: I823de7ebac2fe5dfddb88d533f1a9419f4a605db Related: libosmocore.git I70cc21bf25a7081070738abacb409ed19094c3b2 Related: OS#5312
2023-03-20osmo-bts-virtual: properly handle dynamic TS in vbts_set_ts()Vadim Yanitskiy1-1/+23
This change fixes a problem that prevents osmo-bts-virtual from starting when dynamic (ipa/osmo) timeslots are in use. Change-Id: I5db5b7dd6a8e84cf9a0d84f04a650c2ed8a4e368
2023-03-20scheduler: log pchan value in trx_sched_set_pchan()Vadim Yanitskiy1-2/+2
Change-Id: Ia31e53552208a9d57e2fc5473440840d38945d00
2023-03-17Avoid tx RF Resource Ind for disabled TRXPau Espin Pedrol2-4/+10
Related: SYS#6370 Change-Id: I887e0cb03b2a5654accccf7a55fac51319981bfb
2023-03-17cosmetic: bts_trx.h: Fix whitespacePau Espin Pedrol1-2/+2
Change-Id: Ibcc3578cce23767445e53149796d0bd79f81ead8
2023-03-17cosmetic: gsm_pchan2chan_nr(): Update spec documentationPau Espin Pedrol1-2/+2
Change-Id: If1de230f022c69f3dfce8a7c66d494a984e7f3f9
2023-03-17lchan: Improve error path logging in gsm_pchan2chan_nr()Pau Espin Pedrol1-4/+4
Change-Id: I8d9da8e8433feb1f022dc2f5199f9c15c01e9312
2023-03-15Rewrite pcu_sock_write()Pau Espin Pedrol1-25/+11
The code in that function is pretty rotten: * osmo_fd_write_disable() is called for each message in the queue, there's no need for that. Let's simply call it at the end if the queue is empty. * Asserting for obvious stuff like dequeue returning the first entry in the list. * Having error code path for empty message: That shouldn't happen, abort immediately. With all thse changes, the function is way simpler, easy to read and more efficient. Change-Id: I7ffff98cd8cdf2041bff486c3fde6f16365028d5
2023-03-14tests: use -no-install libtool flag to avoid ./lt-* scriptsVadim Yanitskiy11-0/+11
This option should be used for any executables which are used only for testing, or for generating other files and are consequently never installed. By specifying this option, we are telling Libtool that the executable it links will only ever be executed from where it is built in the build tree. Libtool is usually able to considerably speed up the link process for such executables. Change-Id: I06d3d5ab1dd21400a72f76eecc508886617ef4c6
2023-03-14rsl: reduce logging verbosity on some messagesVadim Yanitskiy1-2/+2
These two messages indicate that no ACK/NACK message is going to be sent to the BSC because activation/deactivation was requested by the PCU. This is absolutely normal and requires no attention from the user/operator, so better use LOGL_INFO. Change-Id: I6eaf3a6c07fb30b31c045729c935c8ad6735e5c8
2023-03-14rsl: remove redundant gsm_lchan_name() in rsl_tx_rf_rel_ack()Vadim Yanitskiy1-1/+1
Change-Id: I69dc11c66a774ddb7364d6ecd9bdb2e94e6cad66
2023-03-14pcu_sock.c: Call osmo_fd_unregister() before closing and changing bfd->fdPau Espin Pedrol1-1/+1
Change-Id: I692bbb5b7c06b5528a36c09a99a7580cbafa3cc0
2023-03-14rsl_rx_ipac_XXcx: parse csd_fmt_d/irOliver Smith1-1/+14
Parse the RTP CSD Format and reply with NACK if the mode is not RSL_IPAC_RTP_CSD_TRAU_BTS, which is the only one we plan to implement for now. Related: OS#4393 Change-Id: Ibfc7811387df5224682d7e6a313d38648d3d8c48
2023-03-14doc: rsl: add RSL_IE_IPAC_RTP_CSD_FORMATOliver Smith1-0/+36
Add documentation for rsl_ipac_rtp_csd_format_d/_ir from libosmocore.git, include/osmocom/gsm/protocol/gsm_08_58.h and wireshark.git, epan/dissectors/packet-rsl.c. Related: OS#4393 Change-Id: Ic8f40076698f2b341cc0096fd96ba2051a41f077
2023-03-11osmo-bts-virtual: indicate BTS_FEAT_[E]GPRS to the BSCVadim Yanitskiy1-0/+2
Forwarding of PDCH related data over multicast works for me. Without these features osmo-bsc would reject the OML connection if it's configured with [E]GPRS enabled. Change-Id: I5e13c153805c56904e51d222007228e1c2872c88 Related: OS#5500
2023-03-10gitignore: add vty pdfOliver Smith1-0/+1
Change-Id: I8653d5521680bb6ac2b32371b5428263082bc7f3
2023-03-09pcu_sock: Submit all DATA.ind regardless of link qualityPau Espin Pedrol1-6/+0
osmo-pcu requires to get DATA.ind for all FN/TS it manages in order to tick its internal FN clock and trigger timeouts. Without this, some events are ticked in a delay fashion when osmo-pcu detects FN jumps. Change-Id: I8f1856dd9061c1bfca8b15be30df7a51760231b0
2023-03-09bts-trx: Fix no NM Radio{Carrier,Channel} switching to Enabled if one TRX is ↵Pau Espin Pedrol1-17/+23
rf_locked Differentiate in each TRX between being provisioned (configuration available) and being provisioned *plus enabled*. TRX0 waits for all other TRX to be ready before sending POWERON, since all TRX need to have been minimally configured over TRXC before POWERON is called. This "ready" state though, doesn't necessarily mean the TRX!=0 are enabled (aka NM Enabled and rf_locked=0). With them being configured it es enough to start the whole PHY. With the old logic, given any TRX was rf_locked=1 at startup, the PHY would not become UP because it the TRX_PROV FSM was waiting for OPSTART to arrive on all TRX, which wouldn't happen on TRX that had rf_locked=1. So in summary, the desired requirements to start the PHY are (in any order): 1- Wait all TRX are configured 2- Wait for TRX0 OPSTART Related: SYS#6370 Change-Id: Ie4836f5721ce8227a63c267730aeb17228994214
2023-03-07pcu_sock: do not mess with the osmo fd flags directlyPhilipp Maier1-1/+1
When we disable the old socket connection, let's use osmo_fd_read_disable(). Change-Id: I6b6854e9881c79b5c4794bde4ba4f6841dd06386
2023-03-07GSMTAP: print 'gsmtap-local-host' if not NULLVadim Yanitskiy1-0/+4
Change-Id: If4f5a419b5af3f185219a879dcb2abb4eea45f1c Fixes: f19f5331 "GSMTAP: allow configuring local address"
2023-03-07osmo-bts-{trx,virtual}: set rc on error in bts_model_l1sap_down()Vadim Yanitskiy2-0/+4
Change-Id: If3016bae9d03a9972c04b748fc9efab56a412e0e Related: OS#1572
2023-03-07osmo-bts-{trx,virtual}: check lchan against NULL in bts_model_l1sap_down()Vadim Yanitskiy2-0/+14
Even though it's unlikely, get_lchan_by_chan_nr() *may* return NULL. Change-Id: I1a815c9675eebc16640b62308499dd784fc206bd Related: OS#1572
2023-03-07osmo-bts-{trx,virtual}: clean up bts_model_l1sap_down()Vadim Yanitskiy2-126/+113
Having a common body for PRIM_INFO_{ACTIVATE,DEACTIVATE,MODIFY}, but then branching using if-statements is a bit confusing. Change-Id: I915c8a541249249e3c0b1f2eda4535e7c52db79f Related: OS#1572
2023-03-06pcu_sock: cosmetic: remove unnecessary line breaksPhilipp Maier1-4/+2
Change-Id: I8cb2979c62ebb05d06af49b40b145b7dee826cb1
2023-03-06pcu_sock: cosmetic: remove whitespace after type castPhilipp Maier1-1/+1
Change-Id: I373b510efab4874f59f75385bd0e1229692299ec
2023-03-06pcu_sock: rename rc to fdPhilipp Maier1-5/+5
The variable rc holds the return code of accept(), which returns a file descriptor on success. So lets call the variable "fd" to make this clear. Change-Id: Ibc359d941786b1d1d52b356e239a76a090b52c1f
2023-03-04GSMTAP: allow configuring local addressMax4-5/+45
Change-Id: If047cbaf95b343ee115690bf7a724a8edc5df735
2023-03-04osmo-bts-trx: use bool for true/false flagsMax1-5/+5
Change-Id: Iaa97dc36e92797db5f348e0bb79d2191ca0a58b5
2023-03-04osmo-bts-trx: log TRXC/TRXD connection addressMax1-2/+3
Change-Id: Id53c1dd58b95c45f261fa9bfae16cc53b20edd18
2023-03-01paging_add_imm_ass(): remove meaningless from_pcu argumentVadim Yanitskiy3-6/+6
A request to send an Immediate Assignment over the PCH (not AGCH) is always coming from the PCU. It's used for DL TBF assignment. Change-Id: If4b0aa01532ab65b96201ff8829e724c67df6993
2023-02-25doc: Adapt to use of 'telnet_init_default'arehbein2-2/+2
Related: OS#5809 Change-Id: I1ae5a7169d864e5dbd052437addd167ffa2c510d
2023-02-19bts-virtual: fix segfaultMax2-11/+16
Premature activation of virtual scheduler in bts_model_phy_link_open() leads to segfault in vbts_sched_start(). Fix this by moving scheduler activation to bts_model_oml_estab() Change-Id: I116c2548dd4d05df90c16e81fa2e85ed6027a2e1
2023-02-10common: Fix memleak in get_smscb_block()arehbein1-6/+2
Fix condition `block_nr == 4`, which was never reached, by effectively replacing - `4` by `msg->num_segs`, so we truly check if the current block is the last of this message - the index `block_nr` (which starts at zero) by `block_nr + 1`, so it is comparable to `msg->num_segs` Related: OS#5354 Change-Id: I3dc116d6c16c80b31712b2a969f0b2a6998b03f0
2023-02-07Bump version: 1.5.0.64-7571-dirty → 1.6.01.6.0Pau Espin Pedrol5-26/+112
Change-Id: Iaa207d4996a00befd99194c65fc6e6cd9dbaa340
2023-02-01Add SI10 supportMax2-0/+2
Related: OS#5783 Change-Id: I268ba716ded330a024a8f3c0d1bd2f28622cecab
2023-01-31pcu_sock: use ARRAY_SIZE rather then magic numberPhilipp Maier1-1/+1
Lets use ARRAY_SIZE instead of magic number (8) to determine the number of timeslots to iterate. Change-Id: I0e016e6fff420851dfabebef5d8d43c735b968b2
2023-01-30vty: Fix typo in symbol namePau Espin Pedrol1-1/+1
Change-Id: Ib33ffba348d6e9414eb904bfb7a2bd7ba2f55344
2023-01-18contrib/jenkins: build libosmo-abis without dahdiOliver Smith6-6/+6
Looks like this is not needed, so make the jenkins build work without installing dahdi-source. Related: OS#5863 Change-Id: I61c483983a4793e0429bb37804dee0a128125daf
2023-01-03vty: Fix typo in write-config: osmux / local-portPau Espin Pedrol1-1/+1
The VTY command is "local-port", but write-config would write "port" instead, which would fail when re-reading the config file. Realted: SYS#6237 Change-Id: Id08530b626b0e69c3b3bb9d8bb9e16080a73e74d
2023-01-02osmo-bts: Transition to use of 'telnet_init_default'arehbein4-5/+4
Related: OS#5809 Change-Id: I2da7d7bf2b07b6736ab09a11ec37afc12f5ec075
2022-12-22ctrl: take both address and port from vty configMax3-7/+4
Change-Id: Ieca05004255c40287e6427560c2636b39529cf07
2022-12-21shutdown_fsm: Add power_ramp_force() to jump straight to the tgt powerDaniel Willmann6-10/+24
Both power_ramp_start() and power_ramp_force() are now small macros around _power_ramp_start() The new behavior is: * ramp down power when stopping bts through Ctrl-C * the other shutdown causes skip power ramping This will cause the bts to reconnect faster when the oml link is dropped and power ramping is enabled. Change-Id: Ida1d7bbf094958b9142af306dbf84206729a609e Related: SYS#6237
2022-12-21oc2gbts_mgr_calib: fix build against gpsd >= 3.20Oliver Smith1-0/+5
Fixes: OS#5832 Related: https://gitlab.com/gpsd/gpsd/-/blob/release-3.20/gps.h#L63 Change-Id: I6dc8ce303e5cb0fb412857a7f2c925e8cfe9b1e0
2022-12-19OML: NSVC[1] MO should have the same initial state as NVSC[0]Alexander Couzens1-1/+1
There is no reason why they should have different initial states. Keep it consistent with the other MOs. Change-Id: I9fd744ec79da9fc26d3ebe9857b2b0bbd5fcd1ff
2022-12-17Revert "shutdown_fsm: Only ramp down power when stopping bts through Ctrl-C"daniel4-9/+8
This reverts commit c96d34f8281a307f9e4cf6fd00adc6eba377012c. Reason for revert: This breaks ramping up power since the power ramp logic still assumes the output is full power. Change-Id: I47a16a4b3ba02d74473569c0f4350a41fc12a464