aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-05-12omldummy: Claim to support VBS + VGCS towards BSClaforge/asciHarald Welte1-0/+2
This tells our TTCN3 BSC tests to perform VBS/VGCS related procedures on RSL. Change-Id: I9ed1b20985d2ce3be31942d3e9df5cad513a0bfd Related: OS#5778, OS#5779
2023-05-11ASCI: Prevent transmission of uplink RTP in VBS and listener VGCSHarald Welte1-0/+17
Change-Id: Ia1a2eb6a3be7bb92786c4822707032f3e5269fe8 Related: OS#4851
2023-05-11sysmo: Enable VGSCS + VBS feature flagsHarald Welte1-0/+2
This tells the BSC that osmo-bts-sysmo supports VBS/VGCS Change-Id: I1625d2a0f4905437fad0b5220a551f81eba9a00e
2023-05-11WIP: VGCS/VBS RACH -> RSL TALKER/LISTENER DETECTHarald Welte13-16/+296
* activate the uplink RACH detection on DCCH * dispatch RSL TALKER/LISTENER DETECT to BSC if such RACH are received * dispatch VGCS UPLINK GRANT to MS in case of TALKER DETECT * start T3115 timer up to NY2 times for VGCS UPLINK GRANT retransmission Change-Id: I1bd07ab6802341b09a06e89df356665ffaf6d2bf Related: OS#4851
2023-05-11Store "Channel rate and type" from RSL Channel Mode IE in BTSHarald Welte2-0/+7
The RSL "Channel rate and type" field from the RSL Channel Mode IE in RSL_CHAN_ACTIV and RSL_MODE_MODIFY_REQ messages is the only place where the BSC differentiates between a normal TCH and the special TCH modes used in VGCS or VBS. Let's copy this field from the RSL message into the lchan state, so that BTS models can actually (in subsequent patches) reflect it when activating the L1. Change-Id: I6d531bf528bcb81f44d91336471a46ef790d7646 Related: OS#4851
2023-05-11validate RSL "channel rate and type" against VGCS/VBS flagsHarald Welte1-0/+14
We already have specfied (but not yet implemented BTS_FEAT_{VBS,VGCS}). Let's add code to validate "channel rate and type" compatibility in bts_supports_cm() once a BTS model would actually exhibit those feature flags. Change-Id: I5e7f65b44cef6e2f7ad4f152f80a1686a4f511e3 Related: OS#4851
2023-05-11WIP: NCH / NOTIFICATION supportHarald Welte9-10/+266
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
2023-05-11Add ASCI (advanced speech call items) log sub-systemHarald Welte2-0/+8
As we subsequently add ASCI related features to the code, it makes sense to have a specific log sub-system for it. Change-Id: I8ea3e61df35175bd74110b2f41994c99da3e2858 Related: OS#4851
2023-05-08paging: Add support for generating NLN/NLN-Status in P1 Rest OctetsHarald Welte1-1/+13
The NLN + NLN-Status are optional parts of P1 rest octets; they can be used to support the "Reduced NCH monitoring mechanism" as described in Section 3.3.3.3 of TS 48.018. The patch just adds encoder capability but doesn't yet make use of it. Change-Id: I961842c3fec151e149f72a4f36279ce4b979795e Related: OS#5781
2023-05-05bbtransc/rcarrier: Fix statechg done twice upon NM_EV_RX_OPSTARTPau Espin Pedrol2-4/+4
When the NM_EV_RX_OPSTART event is received, it will call bts model specific function bts_model_opstart(), which is responisble for answering back with NM_EV_OPSTART_ACK or NM_EV_OPSTART_NACK. Since that answer could be done sequentially in same callback code path, we could end up twice at the end of the st_op_disabled_offline() function checking for statechg (due to reentring that function). As a result, one can see the following message appear during OML bring up: nm_bb_transc_fsm.c:185 NM_BBTRANSC_OP(bts0-trx0){ENABLED}: transition to state ENABLED not permitted! Fix the issue by avoiding ending up at the end of the function in code paths which should not be triggering any change. The case of bbtransc is a bit different than that of rcarrier for NM_EV_RX_SETATTR, since the former really doesn't receive any such message from the BSC yet, so if we checked for that one before continuing, it would never go on. Change-Id: I5184a33dd8da9244e8aacf3ab8bb8930f732a136
2023-05-05pcu_sock: don not continue when running out of TRX spacePhilipp Maier1-1/+1
The info indication on pcu_sock cann only support a limited but sufficient number of TRXs, when we detect that we overflow the maxiumum number of TRXs, then break and do not continue. (this is more or less a cosmetic problem) Change-Id: If4d7eecaded22f86750283f7aa13072064724537
2023-05-04l1sap: fix wording in commentPhilipp Maier1-1/+1
The function rtppayload_is_valid() is called from the receiving RTP code path. Lets use the word "forwarding" instead of "sending" to avoid the impression something is sent (like sending RTP packets to the outside world) Change-Id: Ie7fcc53dea462b0d575b0c9ca73ba7507289eefe
2023-05-04octphy: Fix clearly wrong noop assignmentPau Espin Pedrol1-4/+2
This code has been there since first octphy support was added. New gcc 13.1.1 is catching this and reporting compilation errors: """ /osmo-bts/src/osmo-bts-octphy/l1_oml.c: In function ‘ts_connect_as’: /osmo-bts/src/osmo-bts-octphy/l1_oml.c:1518:60: error: ‘oc’ is used uninitialized [-Werror=uninitialized] 1518 | tOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_CMD *oc = | ^~ /osmo-bts/src/osmo-bts-octphy/l1_oml.c:1518:60: note: ‘oc’ was declared here 1518 | tOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_CMD *oc = | ^~ /osmo-bts/src/osmo-bts-octphy/l1_oml.c: In function ‘bts_model_ts_disconnect’: /osmo-bts/src/osmo-bts-octphy/l1_oml.c:1803:62: error: ‘oc’ is used uninitialized [-Werror=uninitialized] 1803 | tOCTVC1_GSM_MSG_TRX_DEACTIVATE_PHYSICAL_CHANNEL_CMD *oc = | ^~ /osmo-bts/src/osmo-bts-octphy/l1_oml.c:1803:62: note: ‘oc’ was declared here 1803 | tOCTVC1_GSM_MSG_TRX_DEACTIVATE_PHYSICAL_CHANNEL_CMD *oc = | ^~ """ Change-Id: I0da7d3a94e9eba15b8d3d3d995bba532170d9df7
2023-05-04sched_lchan_tchx: use GSM_HR_BYTES_RTP_RFC5993 constantPhilipp Maier2-2/+2
osmo-bts-trx uses the RFC5993 RTP payload format, so when handling the RTP payload use GSM_HR_BYTES_RTP_RFC5993, instead of GSM_HR_BYTES + 1 Depends: libosmocore.git I125ef9cdab98c073971841c175b1a7dcd927f9c2 Related: OS#5688 Change-Id: I54dd3adab88e2262913f7b1e89340a0246c88a8a
2023-05-02oml: reset BCCH carrier power reduction mode (if enabled)Vadim Yanitskiy1-0/+2
We should not maintain BCCH carrier power reduction mode if we loose connection to the BSC. When entering NM_BTS_ST_OP_DISABLED_OFFLINE, reset the related state fields if it was enabled. Change-Id: I34468e3fccc490f48e30b159b63308a395b65fa9 Related: SYS#6435
2023-05-01oml: gsm_objclass2{mo,obj}(): set cause for unknown obj_classVadim Yanitskiy1-4/+10
This patch makes BTS_Tests_OML.TC_wrong_obj_class pass. Change-Id: I30e109a7c86e651fb7055a80ef0656d8563475c8 Fixes: OS#5966
2023-05-01oml: gsm_objclass2{mo,obj}(): cosmetic: return immediatelyVadim Yanitskiy1-36/+18
Change-Id: Ie2fb927ac7f71103a1e0e693718771dd36139223 Related: OS#5966
2023-04-29gsm_objclass2obj(): Change signature/set NACK causearehbein3-19/+30
- Add out-parameter to enable returning a NACK cause (ignored if NULL) - Return appropriate NACK cause if TRX number is unknown (fixes OS#5967 together with change I37e6b23ed95260a8188910cf9754faffcba519c5) Change-Id: If734ea2c8cae4c1f99b02520dffa4e3862a67745 Related: OS#5961, OS#5967
2023-04-29gsm_objclass2mo(): Change signature/set NACK causearehbein2-27/+40
- Add out-parameter to enable returning a NACK cause (ignored if NULL) - Return appropriate NACK cause if TRX number is unknown (part of fix for OS#5967) Change-Id: I37e6b23ed95260a8188910cf9754faffcba519c5 Related: OS#5961, OS#5967
2023-04-29fixup: common: Remove unused function gsm_objclass2nmstate()Vadim Yanitskiy1-2/+0
Change-Id: I31b948f2aeb18ac8069fc019285be7991cffe064
2023-04-28common: Remove unused function gsm_objclass2nmstate()arehbein1-14/+0
Change-Id: Ia538e3f3d416408f69f9d8e6c8c746eddd9f005a
2023-04-25debian: set compat level to 10Oliver Smith2-2/+2
Related: OS#5958 Change-Id: Id0f168a7d3c2ae6869121397e65ca1d0cfea30d3
2023-04-23license: fix typosMax2-10/+10
Change-Id: I450919973bbd31bce44c0b6606f457581e2f71df
2023-04-21flags: ensure completeness of bts_impl_flag_desc[]Vadim Yanitskiy1-0/+3
Change-Id: I049df344c8c0b0d6cd122e2f2d705e0f7ee5990c
2023-04-21flags: group BTS_INTERNAL_FLAG_* into an enumVadim Yanitskiy2-17/+21
Change-Id: I4c7d9f6dce61f7690b86c3973b13ddb63cdace04
2023-04-21flags: add missing entries to bts_impl_flag_desc[]Vadim Yanitskiy1-0/+2
The following output can be seen when doing 'show bts' in the VTY: BTS model specific (internal) flags: 001 Measurement and Payload data combined 003 unknown 0x8 Fix this by adding the missing values to the value-string array. Change-Id: I83e5065f9f80b4f81e9767f184c8dc027883025a Fixes: 0277cddab "sysmo,oc2g,lc15: Make RadioChannel MO depend on RadioCarrier MO" Fixes: ee5eb6169 "l1sap: check if BTS model supports interference reporting"
2023-04-20common: Remove redundant checksarehbein1-18/+6
Remove checks that are performed in gsm_bts_trx_num() already. Related: OS#5961 Related: OS#5967 Change-Id: I9f21f1a0a9dab897d4fd89ab6b7341ca4aec8b22
2023-04-18vty.c: Use already available tpp pointerPau Espin Pedrol1-1/+1
Change-Id: I54b4b995c3296d8a38ee72604dedbde77c5d0722
2023-04-13osmo-bts-virtual: properly activate [CBCH/]BCCH/CCCHVadim Yanitskiy2-8/+22
In change 8e04613e I overlooked that osmo-bts-virtual is re-using the scheduler of osmo-bts-trx and forgot to update its OML logic. As a result, osmo-bts-virtual is broken and does not transmit anything on the broadcast channels. Change-Id: I2276f7e5e4042e56ddf1fd1642c917dba0005ac4 Fixes: 8e04613e "osmo-bts-trx: properly activate [CBCH/]BCCH/CCCH" Related: OS#6001, OS#1572
2023-04-11bts-sysmo: Delay marking phy_link as connected until L1 reset + got infoPau Espin Pedrol1-2/+2
Better wait until the DSP is reset and all the information is retrieved before telling upper layers that the phy is ready. Keep it in CONNECTING state meanwhile. Change-Id: Ifdc791336fb8efd42f4428893f687093085af129
2023-04-11bts-sysmo: Fix pinst->version filled too earlyPau Espin Pedrol1-8/+6
The fields used to fill in pinst->version are set when info_compl_cb() is called, which happens asynchronously and hence later than when in bts_model_phy_link_open(). Hence, copying the values when in bts_model_phy_link_open() (l1if_open()) makes no sense at all. Fill in pinst->version in info_compl_cb(), just when the layer receives the required information. Related: OS#5978 Change-Id: Ica53a5d852214b24de7f75b08ad7e595ce5236ee
2023-04-11oml: Fix potential null ptr access on trx objectPau Espin Pedrol1-15/+24
If the TRX_NR had no matching TRX it would access a NULL pointer trx after failing to resolve it. This commit refactors the code path to only require the trx pointer at the very end, and NACKs the message if TRX fails to be resolved. Change-Id: If27639ae1727fc5232e1a964a1b29f50c8805d80
2023-04-11pcu_sock: Drop bts_sm pointerPau Espin Pedrol1-3/+1
It is not really needed since the object is global. Change-Id: I17f7c42dc9f38485dbcc8595a3a3dbf5a80a7961
2023-04-11pcu_sock: Allocate pcu_sock_state using g_bts_sm talloc contextPau Espin Pedrol1-1/+1
Change-Id: I29eae7bcc66dc5e646b8a4703871682202259bed
2023-04-11Move pcu_sock_state to gprs section of bts_smPau Espin Pedrol2-7/+7
Change-Id: I7d739287fd11f81ce657bac362e55fa822fb0ef5
2023-04-11Update g_bts_sm->num_bts when bts is added/removed from bts listPau Espin Pedrol1-1/+2
Change-Id: Ifa162d01d908eba8cadd8f01dd4d698491176fe8
2023-04-11Properly report all states through NM FSM upon OML link upPau Espin Pedrol12-45/+66
Change-Id: Ic3358629d17baab46f467a1ab82eea1837ad7390
2023-04-11nm: Document current state of SW_ACT in TRX related objectsPau Espin Pedrol2-2/+14
Change-Id: Ie24503b25b9c8042edae696d5b002933c73d00fb
2023-04-11Drop NM_EV_BBTRANSC_INSTALLED in favour of generic NM_EV_SW_ACTPau Espin Pedrol4-10/+3
All the other objects already use that one; there's no need to have a specific one for the NM Channel FSM. Change-Id: Ic5fd37367b500c75a0a53b1d868ba2aed3edef1b
2023-04-11Move GPRS NSE under BTS SiteMgrPau Espin Pedrol11-65/+77
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 Pedrol25-161/+258
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-11nm: Dispatch NM_EV_SW_ACT in cascade to BTS SiteMgr childrenPau Espin Pedrol2-2/+1
Change-Id: I97445812bb1b6de450411aceaeece2427027ae67 Related: OS#5994
2023-04-11Introduce NM FSM for GPRS NSVC objectPau Espin Pedrol13-54/+303
Change-Id: I684482064136a461d01cace3cd37afc8b68458cc Related: OS#5994
2023-04-09cosmetic: Change LOGPLCFN argument orderHarald Welte12-80/+71
As it has come up during code review of Change-ID I214af0448652a9f321ccbab77977b67663ba28f9 introducing LOGPLCNF, my approach to the strict preserval of argument order (lchan first from LOGPLCHAN and fn *after* loglevel from LOGPFN) was considered sub-optimal. I used the following spatch rule to clean this up: @@ expression lc, ss, logl, fn; expression list trailer; @@ -LOGPLCFN(lc, ss, logl, fn, trailer); +LOGPLCFN(lc, fn, ss, logl, trailer); Change-Id: Iba4a8416545673d03cb057e4855f8b1ecae3e1ec
2023-04-06bts: Simplify lifecycle of BTS inside bts_listPau Espin Pedrol1-12/+8
Add the BTS object to the BTS list as the first thing after it is created, this way it's always attached and hence simply always detach it during object free. Change-Id: Ica4fe2a4be0c85b10702011e978be03bf970b0c8
2023-04-06Move NSVC structs to be part of NSEPau Espin Pedrol5-31/+35
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 Pedrol14-32/+320
Change-Id: I5fd1d17da09a5f0eee3d69fcb4788c106a240e21 Related: OS#5994
2023-04-06Fix octet 2 of NM GPRS CellPau Espin Pedrol1-1/+1
Octet 2 should contain the address of the GPRS cell in the GPRS NSE object. Since there's 1 GPRS Cell per BTS and we have only 1 BTS in osmo-bts, then this address should be 0. Otherwise, osmo-bts answers sometimes using (0x00, 0xff,0xff) instead of requested (0x00, 0x00, 0xff), for instance when ACKing an Admin Unlock. This is kinda still fine since value 0xff has the meaning of "all" addresses, and that means the only one available. Still, it's not the proper way to identify the object, so this patch fixes it. Change-Id: I2ea05778f5b5ac335c75f3958324664553da7f0d
2023-04-06Introduce NM FSM for GPRS NSE objectPau Espin Pedrol14-56/+368
Related: OS#5994 Change-Id: I01eadc63214a2eb5e1bce455c7e5b62bd41905ea