aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/bts.h
AgeCommit message (Collapse)AuthorFilesLines
2024-03-18common: Add RTP related rate countersHarald Welte1-0/+9
Let's add some rate counters to add visibility to the BTS on what is happening in terms of received and/or transmitted RTP packets. This should help during debugging any RTP related issues. Change-Id: Ide674bde10b0e4b501d6a48947b983090342dfec
2023-12-21gsmtap-rlp: Add support for skipping generating NULL framesHarald Welte1-0/+1
If there's nothing to transmit over a CSD NT channel, both ends generate NULL frames. Let's add an option to suppress GSMTAP output for those, creating pcap files with less noise. Change-Id: I85a2159cfaa01bfb4205c1462e3a9dbda68e4bad Depends: libosmocore.git I2d9bd8eb4f0cd0f72c436996767b199429596917
2023-12-21Add GSMTAP encapsulation of RLP frames in CSD NT modeHarald Welte1-0/+1
In CSD (Circuit Switched Data) NT (Non-Transparent) mode, there are RLP (Radio Link Protocol) frames inside the modified V.110. wireshark alrady has a dissector for this, and we've introduced a GSMTAP type for RLP some time ago. So with this patch, we now generate such GSMTAP RLP frames. Change-Id: I6a258458822bcb3fe7290a9b9b3d104beecda219
2023-12-11Use polling based LAPDm with frame numbersAndreas Eversberg1-1/+1
Osmo-bts uses the new polling based LAPDm implementation. The OML message NM_ATT_T200 is ignored, because T200 timeouts are set to the minimal response time. Longer timeouts would cause lower throughput in case of lost frames. Shorter timeouts would cause LAPDm to fail. Related: OS#4074 Depends: libosmocore.git I6ebe83f829d7751ea9de1d90eb478c7a628db64c Change-Id: Ic6d7902b13cf491daaa8752db78f9875387aeffd
2023-09-21oml: implement handling of NM_ATT_IPACC_SUPP_FEATURESVadim Yanitskiy1-0/+4
Change-Id: I88c6c6af18be054bd152832e60c8afbbd16098a3 Depends: libosmocore.git Ia4208e10d61843dd6ae77398f6624c918dc81ea4 Depends: libosmocore.git I85316af9b57e8113077305798cb2d82a24e48e00
2023-08-31pcu_sock: use PCU_IF_SAPI_AGCH_2 instead PCU_IF_SAPI_AGCHPhilipp Maier1-0/+7
In PCUIF v.11 we use PCU_IF_SAPI_AGCH_2 exclusively. We use this SAPI to transfer IMMEDIATE ASSIGNMENT messages for uplink and downlink. In both cases we send a confirmation back to the PCU. For details see coresponding patch in osmo-pcu.git (see Depends) CAUTION: This patch breaks compatibility to current master osmo-pcu (See also "Depends") Related: OS#5927 Depends: osmo-pcu.git I9effdcec1da91a6e2e7a7c41f95d3300ad1bb292 Depends: osmo-ttcn3-hacks.git Iec00d8144dfb2cd8bcee9093c96a3cc98aea6458 Change-Id: I29858fa20ad8bd0aefe81a5c40ad77a2559a8c10
2023-08-22bts: make bts_agch_dequeue staticPhilipp Maier1-1/+0
The function bts_agch_dequeue() is not used outside of bts.c, so it can be a static function. Change-Id: If86293ebbd99d6550022aeb8721d40bca5fc04fc Related: OS#5927
2023-07-21ASCI: Add Notification CHannel (NCH) supportAndreas Eversberg1-2/+11
The location of the NCH is defined by the rest octet of System Information 1. If NCH is defined, the given CCCH blocks are used for NCH instead of AGCH/PCH. The current list of VGCS/VBS call notifications is transmitted on the NCH. If there is no notification, an empty notification is transmitted on the NCH. The Notification List Number (NLN) is used to indicated new notificaitons. Only the last notification (or empty notification) indicates NLN. This way the MS can determine after two equal NLN that the complete list has been recevied. Change-Id: I82fdaba3faaced76267a99ae14a5458a1b41fdaa Related: OS#5781
2023-07-21ASCI: Retrieve NCH position from System Information 1Andreas Eversberg1-0/+1
When BCCH INFO is received via RSL message, the rest octet of the System Information 1 message is parsed to get the position of the NCH. The position is stored in the gsm_bts structure. If the position is not present int the rest octet, the stored value is set to negative. Change-Id: I799a27179d478d4ff577d8bc47ae524834851e85 Related: OS#5781
2023-07-21ASCI: VGCS/VBS RACH -> RSL TALKER/LISTENER DETECTHarald Welte1-0/+3
Random access is allowed on VGCS / VBS channels to access the uplink or to detect listeners. Uplink Access from a listener is only reported once after activating the channel. Uplink Access from a talker is reported each time the uplink becomes occupied. RSL TALKER/LISTENER DETECT messages are sent to the bsc. The VGCS UPLINK GRANT message is sent by the BTS itself. Timer T3115 is used to repeat the message up to NY2 times until one valid frame is received from the MS (CM service request). The UPLINK BUSY / UPLINK FREE message must be sent by the BSC. The uplink is released by UPLINK RELEASE message from the MS or from the BSC. Afterwards the UPLINK FREE message causes the MS to leave the uplink without any acknowlege. An RSL REL-REQ must be used to terminate the link locally. (Without layer 2 DISC procedure.) Change-Id: I1bd07ab6802341b09a06e89df356665ffaf6d2bf Related: OS#4851
2023-07-12common: Make socket queue max. length configurablearehbein1-0/+1
Title refers to the maximum length of the osmo_wqueue used for the PCU socket connection. Related: OS#5774 Change-Id: Id6ba6e4eadce9ce82ef2407f4e28346e7fe4abfa
2023-07-10Change return value of bts_supports_cm() from int to boolAndreas Eversberg1-2/+2
Change-Id: I72e30fe852ab69a162b117a534071ebddd4b16ba
2023-07-10ASCI: NCH / NOTIFICATION supportHarald Welte1-0/+5
This adds very minimalistic support for notification of VBS/VGCS calls. Minimalistic in that we * only notify via PCH (not via NCH or FACCH) * only include notification in otherwise empty PAGING TYPE 1 This means that notification will cease to work once the PCH becomes too loaded and we never would send otherwise empty PAGING TYPE 1 anymore. Change-Id: I6f6f72d9a0123cb519b341d72a124aaa2117370e Requires: libosmocore.git I9586b5cb8514010d9358fcfc97c3d34741294522 Related: OS#5781
2023-07-04Increase PCUIF wqueue sizePau Espin Pedrol1-1/+1
The default of 10 messages introduced recently is too small, specially when using osmo-bts-trx, where clock drifting and CPU scheduling can cause skewing and hence generation of 2-3 FNs (* up to 8 TS) at once, hence filling the PCUIF queue with more than 10 messages in a given moment. Fixes: c938a95e255262f38aae9d4242cc86a87c46d172 Change-Id: I7ababfc6cdf20196889fb542a8040128b3c118b5
2023-07-02common: Have PCU socket connection use osmo_wqueuearehbein1-0/+2
Fixes memleak in case of connected PCU process being suspended without proper close on socket Related: OS#5774 Change-Id: Ia6e61dda4b3cd4bba76e6acb7771d70335062fe1
2023-06-28ECU in UL path: make it optional per vty configMychaela N. Falconia1-0/+1
Current osmo-bts-trx includes a provision for invoking ECUs from libosmocodec in the UL path from the channel decoder to the RTP output. This pre-existing implementation is counter to the spirit of 3GPP specs (a BTS should merely mark BFI conditions in its UL output, as opposed to actively modifying the frame stream with an ECU), inconsistent between different osmo-bts models (only in -trx and no others), and inconsistent even within osmo-bts-trx itself, where the link quality check in l1sap will sometimes suppress the output of the ECU - a quirk which the designers of the current mechanism most certainly did not intend. The solution decided upon in OsmoDevCall on 2023-06-21 is to make this ECU optional per vty config, and move it from the trx model to the common layer to resolve the inconsistencies. Implement the first part: make the ECU application optional per vty config. For backward compatibility with existing deployments, the new "rtp internal-uplink-ecu" setting is enabled by default on osmo-bts-trx but not on any other models. Related: OS#6040 Change-Id: I0acca9c6d7da966a623287563e0789db9e0fae8e
2023-05-27all models, HR1 codec: select RTP output format via vty optionMychaela N. Falconia1-0/+1
The new vty option "rtp hr-format (rfc5993|ts101318)" selects the RTP output format to be used for HR1 codec, consistently across all models. The default is set to match legacy behavior: ts101318 on osmo-bts-{lc15,oc2g,sysmo} and rfc5993 on osmo-bts-trx. On models where no legacy behavior is applicable, the default is set to rfc5993 as a forward-looking measure - see OS#6036. Closes: OS#5688 Change-Id: I168191874a062429a57904511a1e89e3f588732e
2023-04-21flags: group BTS_INTERNAL_FLAG_* into an enumVadim Yanitskiy1-14/+18
Change-Id: I4c7d9f6dce61f7690b86c3973b13ddb63cdace04
2023-04-11Move GPRS NSE under BTS SiteMgrPau Espin Pedrol1-27/+0
As per ipaccess expectancies and following TS 12.21. Change-Id: If44d8f256cab7b2660900cedfb0ed9fe67eb3420
2023-04-11Merge gsm_network into gsm_bts_sm and place gsm_bts under itPau Espin Pedrol1-13/+4
This way the data model in TS 12.21 (Figure 1) is followed, where there's a BTS Site Manager containing one or more BTS. In our case we only support 1 BTS (cell) so far. Change-Id: Ideb0d458ec631008223f861cf8b46d09524a1a21 Related: OS#5994
2023-04-06Move NSVC structs to be part of NSEPau Espin Pedrol1-3/+4
The NSVCs exist inside an NSE. Rearrange data model to have proper relations. Change-Id: I1cfe9366594836c622673d461ab8b2edd1a2b58a
2023-04-06Rearrange declaration of struct gsm_bts_gprs_nsvcPau Espin Pedrol1-12/+12
Move it together with the other similar objects like gprs_nse and gprs_cell. Move the "mo" field to the start of the struct, similar to the other types. Change-Id: I5dc020a6bab8c94ab831b6ca506bc5cb681d07a3
2023-04-06Introduce NM FSM for GPRS Cell objectPau Espin Pedrol1-6/+14
Change-Id: I5fd1d17da09a5f0eee3d69fcb4788c106a240e21 Related: OS#5994
2023-04-06Introduce NM FSM for GPRS NSE objectPau Espin Pedrol1-5/+13
Related: OS#5994 Change-Id: I01eadc63214a2eb5e1bce455c7e5b62bd41905ea
2023-04-04Clarify configuration of TSC on each timeslotPau Espin Pedrol1-0/+1
Related: OS#5856 Change-Id: Ief21daf63ba76725de9117cbe14ada8b75f147df
2023-03-29common: implement rtp continuous-streaming modeMychaela N. Falconia1-0/+2
In some environments it is highly desirable for the RTP stream coming from each GSM call UL on a BTS to be fully continuous, without any gaps, with _some_ RTP packet emitted every 20 ms, even if there is no speech or SID frame to be sent in that frame time window. The present change adds an rtp continuous-streaming vty option which, when enabled, causes the BTS to emit RTP packets with a zero-length payload, instead of producing gaps in the RTP stream, when it has nothing else to send. Related: OS#5975 Change-Id: Ic0e2edf2ed90ba0ac6bee5e7d9629bf0255e256d
2023-03-04GSMTAP: allow configuring local addressMax1-0/+1
Change-Id: If047cbaf95b343ee115690bf7a724a8edc5df735
2022-12-21shutdown_fsm: Add power_ramp_force() to jump straight to the tgt powerDaniel Willmann1-1/+2
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-17Revert "shutdown_fsm: Only ramp down power when stopping bts through Ctrl-C"daniel1-1/+1
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
2022-12-15shutdown_fsm: Only ramp down power when stopping bts through Ctrl-CDaniel Willmann1-1/+1
For the other shutdown causes power ramping doesn't make sense. Instead shutdown quickly so we can reconnect faster Change-Id: I71c46478b8f3b236dba3e959fc75e58c0409517f Related: SYS#6237
2022-09-13Introduce Osmux supportPau Espin Pedrol1-0/+3
Related: SYS#5987 Requires: libosmo-netif.git Change-Id I632654221826340423e1e97b0f8ed9a2baf6c6c3 Change-Id: Ib80be434c06d07b3611bd18ae25dff8b14a7aad9
2021-10-14Move lchan related code to lchan.{c,h}Pau Espin Pedrol1-2/+0
Change-Id: I17ebe6af69e31d1b4dbad7656bbf043f4c9243c1
2021-10-08l1sap: check if BTS model supports interference reportingVadim Yanitskiy1-0/+2
Currently, only osmo-bts-trx is capable of reporting the interference levels to L1SAP. Thus it does not make sense to trigger the averaging logic and send empty reports over the A-bis/RSL and the PCUIF. Change-Id: Ic17eb46bdca3c33ac4d6e560a093b635b75424a5 Related: SYS#5313
2021-09-23Avoid sending Load Indications when BTS is not RSL-connectedPau Espin Pedrol1-0/+2
Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412
2021-09-23bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting processPau Espin Pedrol1-0/+2
This feature is not yet used by any bts_shutdown_fsm caller, but will be used in the future when Abis link goes down. Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae
2021-09-20abis: Drop internal OML msg queuePau Espin Pedrol1-1/+0
There's no real use for this queue. If the link is gone, it makes no sense to keep old messages. Instead, BTS should generate new messages sharing current state when link becomes established (it actually does so already). Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987
2021-07-19allow to configure multiple oml remote-ip addressesPhilipp Maier1-1/+8
At the moment we can only configure a single BSC in the BTS configuration. This also means that if this single BSC fails for some reason the BTS has no alternate BSC to connect to. Lets extend the remote-ip parameter so that it can be used multiple times so that an operater can configure any number of BSCs that are tried one after another during BTS startup. Change-Id: I205f68a3a7f35fee4c38a7cfba2b014237df2727 Related: SYS#4971
2021-07-06paging: prioritize CS related paging over PS related pagings.Philipp Maier1-0/+2
When the paging queue is filled up to a critical level, pagings from the PCU should be dropped as each immediate assignment paging from the PCU is worth 4 normal CS pagings. Also the PCU may still issue pagings if the paginging queue is already full and CS pagings are dropped. In a congestion situation it is more important to get the CS rather than PS pagings through. Change-Id: I30f97672d7a0c369c4a656e878ab8cbbd83e31ea Related: SYS#5306
2021-07-01osmo-bts-trx: implement BCCH carrier power reduction modeVadim Yanitskiy1-0/+5
The BCCH carrier (sometimes called C0) of a BTS shall maintain discontinuous Downlink transmission at full power in order to stay 'visible' to the mobile stations. Because of that, early versions of 3GPP TS 45.008 prohibited BS power reduction on C0. However, in the recent 3GPP TS 45.008 there is a feature called 'BCCH carrier power reduction operation'. This is a special mode of operation, where the variation of RF level for some timeslots is relaxed for the purpose of energy saving. In BCCH carrier power reduction operation, for timeslots on the C0 carrier, except timeslots carrying BCCH/CCCH, the output power may be lower than the output power used for timeslots carrying BCCH/CCCH. In this case the maximum allowed difference in output power actually transmitted by the BTS is 6 dB. The power reduction operation can be controlled by the BSC by sending BS POWER CONTROL on the A-bis/RSL with the Channel Number IE set to 0x80 (RSL_CHAN_BCCH). This makes osmo-bts reduce the transmission power on inactive timeslots of the BCCH carrier. This is a non-standard, Osmocom specific extension, so indicate support of this feature to the BSC in the feature vector. Also add a VTY command to allow enabling/disabling the power reduction locally. Add some signalling notes to the A-bis/RSL manual. For more details, see 3GPP TS 45.008, section 7.1. Change-Id: I3dcee6e910ccc61c5c63c728db9ea04327e2fc98 Depends: I69283b3f35988fc7a1a1dcf1a1ad3b67f08ec716 Related: SYS#4919
2021-06-30Support forwarding proto IPAC_PROTO_EXT_PCU BSC<->PCUPau Espin Pedrol1-0/+2
This new extension protocol is used to forward Osmocom PCUIF messages BSC<->BTS<->PCU. It will be sent re-using the IPA multiplex of the OML link between BSC and BTS. BTS is responsible for forwarding the message over the unix socket to the PCU. PCUIF existing RX path needs to be reworked in order to accept variable-size messages, in order to be able to transparently forward messages without knowing about them (the new container message is variable-length). Related: SYS#5303 Change-Id: I73fdb17107494ade9263a62d1f729e67303fce87
2021-06-01[VAMOS] rsl: call bts_supports_cm() from rsl_handle_chan_mod_ie()Vadim Yanitskiy1-2/+2
Ensure that we check the PHY capabilities in both cases: * RSL CHANnel ACTIVation, and * RSL CHANnel MODE MODIFY, by calling bts_supports_cm() from rsl_handle_chan_mod_ie(). Modify bts_supports_cm() to accept a 'struct rsl_ie_chan_mode', so we can handle VAMOS enabled channel modes and CSD later on. Change-Id: I31a444592436705ec9d6ddade3cbfa7f8cb4bb91 Related: SYS#5315, OS#4940
2021-05-17sysmo,oc2g,lc15: Make RadioChannel MO depend on RadioCarrier MOPau Espin Pedrol1-0/+3
lower layer specific APIs require first to enable the TRX object (GsmL1_PrimId_MphInitReq, which requires ARFCN received during Set Radio Carrier Attributes) before enabling the per-TS structure. Hence, OPSTART must happen in RCARRIER MO before OPSTART can be sent to the Radio Channel MOs, otherwise the initialization of the TS objet will fail and OPSTART for the RadioChannel MO will send back a NACK. In order to avoid this, we need to keep the RadioChannel MO announced as "Disabled Dependency" until RCARRIER is OPSTARTed. Related: OS#5157 Change-Id: I8c6e5ff98c32a3cd5006f5e5ed6875bcabb1d85f
2021-04-30Introduce ability to set socket priority of RTP socketsHarald Welte1-0/+1
This significantly simplifies setups in which not only the IP DSCP but also the IEEE 802.1Q PCP is to be set for RTP packets. Depends: libosmo-abis.git I52c08f4b2a46981d002ef0c21e6549445d845a6e Change-Id: Ia3a91e6788285be3e2e73defee63e6bd79c6258e Related: SYS#5427
2021-02-16GSMTAP: make remote host for Um logging configurable via VTYNeels Hofmeyr1-0/+1
So far, the only way to configure GSMTAP Um logging is to use the cmdline argument '-i'. Let's deprecate it, and add a VTY command to allow setting the remote host from configuration file. The legacy '-i' option, if provided, overrides the configuration file option, and will also appear in 'write file'. Change-Id: I17676a21c4e0c9cbc88f2c5c53a39c6c6c473ca1 Tweaked by: Vadim Yanitskiy <vyanitskiy@sysmocom.de>
2021-02-13GSMTAP: move 'struct gsmtap_inst' and masks to 'struct gsm_bts'Vadim Yanitskiy1-0/+7
Change-Id: I1c5cb8561dfdcbfd1b23ab28cf95aea7a18c7481
2021-01-08power_control: migrate MS/BS control loops to the new paramsVadim Yanitskiy1-4/+0
In change [1] the new power control structures and default params were introduced. In change [2], the existing VTY commands for MS power control in the BTS were deprecated and changed to use the new structures as storage. Finally, in change [3], handling of the power control parameters on the A-bis/RSL was implemented. This change is the final logical step in the mentioned chain: it makes both MS/BS power control loops use the new parameters, and removes the old structures. The actual implementation of both power control loops remains the same, however the expected output of some unit tests for the Downlink loop needs to be changed: - TC_fixed_mode: disabling dynamic power control becomes a separate step of the test script since the field 'fixed' is removed; - TC_rxlev_target: RxLev thresholds are printed 'as-is'. Not all of the new parameters are used by the power control loops yet. Further improvements to be done in the follow up commits. [1] I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 [2] Icbd9a7d31ce6723294130a31a179a002fccb4612 [3] I5a901eca5a78a0335a6954064e602e65cda85390 Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Related: SYS#4918
2021-01-04power_control: check-in new parameters and default valuesVadim Yanitskiy1-1/+5
For the sake of simplicity, the old structures that are still used by MS/BS power control loops are kept in place. Migration to the new structures requires additional changes to the existing power control logic, so it will be done in the follow-up changes. The new parameters are integrated as follows: + struct gsm_bts - a BTS instance: | Hard-coded default (fall-back) parameters for all transceivers. | +-+-> struct gsm_bts_trx - a TRX instance (transceiver): | Default parameters for all logical channels inherited from | 'struct gsm_bts' at start-up. May be overwritten by the | BSC using ip.access specific 'Measurement Pre-processing | Defaults' message on the A-bis/RSL interface. | +---> struct gsm_lchan - a logical channel (e.g. TCH or SDCCH): Connection specific parameters inherited from 'struct gsm_bts_trx'. May be overwritten by parameters sent by the BSC in CHANnel ACTIVation and other messages. Change-Id: I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 Related: SYS#4918
2021-01-03sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IEHarald Welte1-0/+1
In Change-Id I1fd513ea03297918d15d4b28ed454f9b6dd6ebfa we introduced patching of SI4 to indicate GPRS presence in terms of PCU connection status. Unfortauntely this didn't account for optional IEs being present in SI4, and hence overwrote any CBCH related information elements, if present. This in turn meant that since the above-mentioned commit, you could have either a GPRS-capable, network, or a Cell Broadcast capable one. Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Related: OS#3075
2020-12-09power_control: make raise/lower step limitation configurableVadim Yanitskiy1-0/+4
Change-Id: Ic37742f46f533865043b3dbcf16ea702e1746f98 Related: SYS#4918
2020-12-06power_control: clarify units in 'struct bts_power_ctrl_params'Vadim Yanitskiy1-2/+2
Change-Id: Icb059ca1f555397be116a424800e4536883b9106 Related: SYS#4918