aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-06-28ECU in UL path: make it optional per vty configMychaela N. Falconia5-3/+44
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-06-27osmo-bts-sysmo: mute PHY until OML is readyOliver Smith2-8/+26
Connecting to OML and PHY is done in parallel. The PHY connection will always be done first, mute PHY until OML is also ready. As Pau suggested, move dispatch of NM_EV_SW_ACT to a callback of trx_rf_lock to have the events serialized and therefore deterministic. Fixes: SYS#6496 Change-Id: Ia1769f952fa787202a442a33db5ed4a1f7cbe9c3
2023-06-26osmo-bts-sysmo/l1_if: move mute_rf_compl_cb upOliver Smith1-98/+98
Prepare to use it in a new function above activate_rf_compl_cb. Change-Id: I19dbfbd595d3b42c0634a4c38e39cdb314a54266
2023-06-26osmo-bts-sysmo: activate_rf: no dispatch on failOliver Smith1-4/+5
Do not dispatch NM_EV_SW_ACT to trx->mo.fi and trx->bb_transc.mo.fi when RF-ACT.conf was not successful. Running this code path anyway looks like a leftover from when bts_shutdown used to exit osmo-bts. Change-Id: I342187604f4c72303e393ce6925b94d610bfa8fa
2023-06-26l1sap: use gsm0502_fn2ccch_block() from libosmogsmVadim Yanitskiy2-27/+2
Keep the l1sap specific wrapper because we still want to assert(). Change-Id: I7097ba87f42689d2336014da9173cadbdaa9fdab Depends: libosmocore.git I8cbd31226754e95887358ed83a928e2f567f4cf3
2023-06-23osmo-bts-sysmo: trx_mute_on_init_cb: call bts_update_statusOliver Smith1-0/+2
Run bts_update_status in trx_mute_on_init_cb like in the default callback mute_rf_compl_cb. Related: SYS#6496 Change-Id: Ib73a33a82fbb86ead3569a6bb22fb001c55354d4
2023-06-23gitignore: add arm-poky-linux-gnueabi-libtoolOliver Smith1-0/+2
This file gets copied into the tree when building with the SDK. Change-Id: I0fe4f96175ee94eb0a131c425bbeb110f1d55402
2023-06-14l1sap: cosmetic: rename payload_len to rtp_pl_lenPhilipp Maier1-2/+2
The function signature of rtppayload_is_octet_aligned has a parameter rtp_pl for the payload and a parameter payload_len for the length of the payload, while other functions use rtp_pl and rtp_pl_len. Change-Id: I8a0e0357aab2a78e25811f66b1b870e8c6ebffe9
2023-06-07pcu_sock: move variable declaration of imsi[4] into related scopePhilipp Maier1-1/+1
The variable imsi[4] may be moved into the scope of case PCU_IF_SAPI_PCH Related: OS#5927 Change-Id: I62aed4f1c600ce2a80d2df928a60b6a2e0ae1889
2023-06-07paging: do not confirm PAGING COMMAND messagesPhilipp Maier3-5/+15
when osmo-bts receives a MAC block from osmo-pcu through the PCUIF it puts it in the review queue without further interpreting it. This also means that it will send confirmations to the PCU for IMMEDIATE ASSIGNMENT and PAGING COMMAND. This is not entirely correct because only IMMEDIATE ASSIGNMENT messages should be confirmed. osmo-pcu has no problem with this since it silently drops the confirmations for PAGING COMMAND messages. This peculiarity of the PCUIF implementation makes the confirmation logic hard to understand, so let's add some logic to osmo-bts that makes sure that only IMMEDIATE ASSIGNMENT messages are confirmed. Related: OS#5927 Change-Id: I8b8264d28b1b1deb08774cdba58dd4c6dafe115d
2023-06-07paging: parse PCUIF data indication outside of paging.cPhilipp Maier3-16/+23
The function paging_add_macblock takes a data and length parameter. The first three byte of that string are the last three digits of the IMSI from which the paging group is calculated. As the layout of this data buffer is a property of the PCUIF interface API, we should do this separation outside of paging.c. Also we should supply the IMSI as a valid null terminated string since PCUIF v.11 also uses this format. Change-Id: I9f3799916e8102bf1ce0f21891f2d24f43091f01 Related: OS#5927
2023-06-06osmo-bts-trx: remove redundant memset() on receipt of NOPE.indVadim Yanitskiy4-8/+3
In all Uplink lchan handlers we do memset() the Rx burst buffer on bid=0 and there is no need to do that again for NOPE.ind. Change-Id: Ia6803b8606d86bd2d011fe21f7a540d2115aa654
2023-06-03osmo-bts-trx: fix recent regression in Tx lchan handlersVadim Yanitskiy5-7/+42
In my recent patch a0770250, among with the new burst buffer allocation/release strategy, I introduced a regression: /* send burst, if we already got a frame */ - if (br->bid > 0) { - if (!*bursts_p) - return -ENODEV; + if (br->bid > 0) goto send_burst; - } We used to allocate the burst buffers in Rx/Tx lchan handlers, and release them in case of an error, e.g. when no block is available for transmission. In the case of Tx burst buffers, the state of Tx burst buffer was additionally used to check if we have a valid Tx block for transmission, as can be seen in the code snippet above. As a side effect of my patch, osmo-bts-trx now keeps transmitting 3 out of 4 bursts (br->bid > 0) of the last valid block, until the next valid Tx block is available for transmission. This problem was not affecting the CS domain, where it's expected to have a more or less constant pressure of Tx blocks. However it did show up in the PS domain, where in the absence of active TBFs the PCU may omit DL blocks. Add a new field 'dl_mask' to struct l1sched_chan_state, similar to the existing 'ul_mask', and use it to reconstruct the removed logic. Change-Id: I4538a8fe6b29f8d6eca33ad27d4a9852e3a3e86c Fixes: a0770250 "osmo-bts-trx: alloc/free burst buffers in trx_sched_set_lchan()"
2023-06-02osmo-bts-trx: tx_pdtch_fn(): use msgb_l2len()Vadim Yanitskiy1-3/+3
Change-Id: If3c2d9d93399411d4466779ce8e8987843b521b1
2023-05-31trx TCH DL: transmit invalid speech blocks instead of dummy FACCHMychaela N. Falconia2-2/+36
In speech TCH operation, there will always be times when a speech frame needs to be transmitted on the downlink, but there is no frame available to transmit (gap in the incoming RTP stream), or the logic of DTXd says that no frame shall be transmitted at this FN, but we are not doing physical DTXd. Previous osmo-bts-trx code sent dummy FACCH during such conditions, but this approach is bad for TCH/HS where we would like to transmit good speech frames or speech frame gaps one 20 ms frame at a time, rather than take out pairs of frames for dummy FACCH/H. Other BTS models (sysmoBTS PHY) send out invalid speech blocks with inverted CRC3 under the conditions in question - do the same in osmo-bts-trx. The present change modifies osmo-bts-trx TCH DL frame gap behavior only for TCH/FS, TCH/HS and TCH/EFS; for all other channel modes, including AMR speech, the previous behavior of sending dummy FACCH is left unchanged. Depends: Iade3310e16b906efb6892d28f474a0d15204e861 (libosmocore) Change-Id: I78106802a0aa4af39859c75d29fe0e77037899fe
2023-05-30osmo-bts-trx: tch_dl_dequeue(): do not drop CSD framesVadim Yanitskiy1-2/+2
Change-Id: I382b9994db01d58515c89c8de6250cd3239b8861 Related: OS#1572
2023-05-29HR1 codec: act on SID indication in RFC5993 RTP inputMychaela N. Falconia4-10/+24
Suppose we receive RTP from the uplink of another BTS, and the UL-handling BTS has channel-decoded an HR1 frame which it deems (per GSM 06.41 section 6.1.1) to be a valid SID, even though it is not a perfect, error-free SID. How will this SID frame be represented in RFC 5993 transport? My reading of the RFC tells me that the UL-handling BTS will need to apply an operation like our osmo_hr_sid_reset() to the payload before sending it out in RTP - but because the text of the RFC does not explicitly address this scenario, others may have interpreted it differently. If we receive an RFC 5993 RTP payload in which FT is set to 2, indicating good SID, but the actual HR payload is not a perfect SID (the SID field is not all 1s), the only reasonable interpretation of such occurrence is that the sender of this payload was another BTS whose implementors interpreted the RFC as not requiring them to rejuvenate the SID codeword prior to RTP output. Therefore, let's treat such payloads as valid SID for our DTXd logic, and rejuvenate the SID codeword ourselves. Change-Id: Ife00de6220a8ca7cc180a61734497f1acb7f5b83
2023-05-29HR1 codec: validate ToC header in RFC5993 RTP inputMychaela N. Falconia1-0/+14
osmo-bts-trx always accepted (and previously required) HR1 codec RTP input in RFC 5993 format; currently we accept this RTP format as input for all BTS models, but no longer require it. However, we have never applied any checks to this format's ToC header, even when we previously required it in osmo-bts-trx. Check this header and reject invalid payloads that just happen to have the same octet length as valid ones. Change-Id: If16d38641913bb46bcd7cc11685407ed17136bfe
2023-05-29FR/HR/EFR TCH DL: implement DTX rulesMychaela N. Falconia2-18/+284
GSM 06.31, 06.41 and 06.81 are the respective DTX specs for FR, HR and EFR. In each of these specs, section 5.1.2 specifies the expected shape of radio downlink in the presence of SIDs: one SID frame after each talkspurt (after speech frames), and one SID frame in every SACCH-aligned position every 480 ms (every 240 ms for HR), or if the actual SACCH-aligned position is taken up by FACCH, then just one SID frame as soon as possible after that FACCH - and no transmitted SID frames in other positions. This just-referenced spec section was written with the assumption that it will only be applied when DTXd is enabled - however, if the RTP stream for call leg B DL comes from call leg A UL (TrFO), then we are going to receive SID frames in the stream intended for our DL even when DTXd is disabled or not supported altogether. The easiest solution is to apply FR/HR/EFR DTXd logic whenever the incoming RTP stream contains SID frames, irrespective of physical DTXd enable/disable state. If we apply such "logical DTXd" when physical DTXd is disabled, the BTS model PHY will end up transmitting induced BFIs (dummy FACCH or inverted CRC3) in those frame positions where the "logical DTXd" function says "please transmit nothing". The point remains, however, that the prescribed SID shape on the radio downlink (expected positions of SID frames) won't happen on its own: in the case of TrFO, whichever SID frames are present will be in wrong positions for leg B DL, and even in the case of transcoded calls the responsibility for DL SID shaping cannot be placed on the RTP stream source because that source won't know where SACCH alignment will lie. Therefore, the necessary DL SID reshaping has to be done in the RTP stream receiver in OsmoBTS. Related: OS#5996 Change-Id: I924ab21952dcf8bb03ba7ccef790474bf66fc9e5
2023-05-27osmo-bts-trx: use direct pointer to chan_state->{ul,dl}_burstsVadim Yanitskiy4-56/+56
There is no more need to access the UL/DL buffers via pointer to pointer thanks to the previous patch [1] moving the memory management routines out of the logical channel specific Rx/Tx handlers. Change-Id: Ib1e8e86ac60a7ac9b0415ef66b609eaa33443c19 Related: [1] c45e03726af8a2b46b7166b3c47bc666ba933a69
2023-05-27osmo-bts-trx: alloc/free burst buffers in trx_sched_set_lchan()Vadim Yanitskiy5-129/+38
It's a lot cleaner if the Rx/Tx burst buffers are allocated and free()d in one place rather than in each lchan handler individually. Allocate the buffer(s) during the lchan activation, free() on deactivation. Regardless of lchan type, allocate the maximim size of 4 * (3 * 2 * 58) bytes, which is sufficient to store 4 8PSK modulated bursts. This way we reduce the load on the memory allocator at the cost of memory consumption, what should not be a big problem. Change-Id: I6a5f76023fc492786076a63016f81285b3576c33 Depends: libosmocore.git I1c38ccc2b64ba9046bb3b1221d99cc55ec493802 Related: OS#1572
2023-05-27all models, HR1 codec: select RTP output format via vty optionMychaela N. Falconia9-1/+65
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-05-27trx, HR1 codec: change UL PHY output format to TS 101 318Mychaela N. Falconia2-9/+7
As a preliminary step before making the RTP output format from OsmoBTS configurable with a vty option, we need to make the internal format consistent across all models. The "natural" output from a "pure" GSM 05.03 channel decoder is TS 101 318, which is also the output format of all currently supported proprietary PHYs - adopt it as our internal format. Related: OS#5688 Depends: I6e75ca95409b5c368e8e04d0e0aba41e0331d9e6 (libosmocore) Change-Id: I41bce6226964975cb85aea89e4c0f9e11e4929b8
2023-05-26trx: fix HR1 codec breakage from format changeMychaela N. Falconia1-1/+1
As of commit 1160cabefb23, the common layer of osmo-bts accepts both TS 101 318 and RFC 5993 formats for HR1 codec, and always passes the more basic TS 101 318 format to the BTS model. Unfortunately, osmo-bts-trx has model-specific code checking the payload length that was overlooked in that patch, causing breakage. Fix that bug. (The actual channel encoding function in libosmocoding already accepts 14-byte payloads.) Related: OS#5688 Fixes: I702e26c3ad5b9d8347e73c6cd23efa38a3a3407e Change-Id: I0e251faeffb76d2604a4100c848141d239d1d86f
2023-05-26all models, HR1 codec: accept both TS101318 and RFC5993 formatsMychaela N. Falconia2-1/+19
There exist two different RTP encoding formats for HR1 codec: one "simple" format defined in ETSI TS 101 318, and an extended format (adding a ToC octet) defined in IETF RFC 5993. Following the liberal-accept clause of Postel's law, we would like to accept both formats. Implement this feature by first converting all HR1 RTP inputs to the more basic TS 101 318 format at the point of input preening, and then consistently using this basic format internally. Related: OS#5688 Depends: I13eaad366f9f68615b9e9e4a5f87396a0e9dea0f (libosmocore) Change-Id: I702e26c3ad5b9d8347e73c6cd23efa38a3a3407e
2023-05-26refactor: replace rtppayload_is_valid() with preening before enqueueMychaela N. Falconia5-72/+170
Up until now, our approach to validating incoming RTP payloads and dropping invalid ones has been to apply the preening function inside l1sap_tch_rts_ind(), at the point of dequeueing from the DL input queue. However, there are some RTP formats where we need to strip one byte of header from the payload before passing the rest to our innards: there is RFC 5993 for HR codec, and there also exists a non-standard extension (rtp_traulike) that does a similar deal for FR and EFR. Because of alignment issues, it will be more efficient (avoids memmove) if we can do this header octet stripping before we copy the payload into msgb - but doing so requires that we move this preening logic to the point of RTP input before enqueueing. Make this change. Related: OS#5688 Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
2023-05-26systemd: depend on networking-online.targetOliver Smith8-0/+16
Related: SYS#6400 Change-Id: I9c0cc0779f9ddb7520a565668b7cde07c6ad55d8
2023-05-19trx: remove model-specific BFI packet formatsMychaela N. Falconia2-53/+10
As detailed in OS#6033, osmo-bts-trx was emitting its own invented packet formats to signal BFIs (bad frame indications), different from the vty-configured ("rtp continuous-streaming" or not) BFI signaling method implemented in l1sap and used by all other BTS models. In the case of EFR codec, the made-up BFI format previously used by osmo-bts-trx caused EFR operation to be broken: a spec-compliant EFR decoder on the receiving end of the RTP stream (a network transcoder or the MS on the other GSM call leg) would receive and decode garbage EFR frames of 244 zero bits instead of invoking the spec-defined bad frame handler, causing bad audio artifacts for the user. The same situation would also happen for FR1 codec, but the application of ECU masked this bug: with the ECU invoked in the UL output path, the BFI emitting code for FR1 never executed. In the case of AMR and HR1 codecs, the model-specific BFI packet format of osmo-bts-trx is currently harmless, but: * The extra code adds unnecessary complexity; * BFI packet formats are inconsistent between osmo-bts-trx and other OsmoBTS models; * BFI format is even inconsistent within osmo-bts-trx itself, as under certain conditions the common code in l1sap will override the UL payload from the BTS model and emit its own form of BFI instead. Fix all of the above by removing trx model-specific BFI formats for all codecs, and let l1sap handle all BFIs. Related: OS#6033 Change-Id: I8f9fb5b8c5b2cad4b92ac693c0040779f811981a
2023-05-19copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbHVadim Yanitskiy25-25/+25
Change-Id: Ib0bed7a4196305e2b413ca657f4fa8fb6f0d39f6
2023-05-16paging: cosmetic: rename all IMM.ASS references to MAC blockPhilipp Maier3-58/+60
The paging interface towards the PCU has a confusing API. In fact what the PCU does when it wants to page or do an immediate assignment is sending a ready formatted MAC block to the BTS. The BTS then puts this MAC block in the paging queue and then eventually it justs sends it without looking at the contents. For the code in paging.c it is not imortant if the MAC block is an immediate assignment, it only cares if the paging record contains a MAC block or paging parameters. Related: OS#5927 Change-Id: Ifab37fdedaba98b160718113767e4ef6ee7d16ad
2023-05-10PCU interface: Log version when starting listenerarehbein1-1/+1
Change-Id: Ieba46cc7eee7758033815014ee38bf4751a0f26f
2023-05-10all models, FR/EFR UL: change SID check to _is_any_sid()Mychaela N. Falconia4-8/+8
In all OsmoBTS models in FR and EFR speech modes, as the UL traffic frame stream is passed from the PHY to l1sap and ultimately to RTP output, all passed frames are checked for SID. The Boolean result of this SID check is used in two ways: * RFC 3551 instructs that the Marker bit in the RTP header SHOULD be set in the first packet of a talkspurt after a period of silence suppression. OsmoBTS implements this recommendation by setting the Marker bit in the first RTP-transmitted non-SID UL packet that was preceded by SID. * In osmo-bts-trx only, this same SID check serves a second purpose: handling of BFI conditions depends on whether or not the last received good traffic frame was a SID. If a BFI condition is received after a non-SID traffic frame, the ECU is invoked, and if this ECU fails or when libosmocodec does not provide an ECU for the codec in use, a special FR (EFR) BFI frame of 260 (244) zero bits is emitted. Both the ECU call and the peculiar form of BFI are skipped when the last received good traffic frame was a SID. For both of the above purposes, in all BTS models, change the SID check from osmo_{fr,efr}_check_sid() to osmo_{fr,efr}_is_any_sid(). The effect of this change is that "what counts as a SID" for the just-listed purposes changes from recognizing only perfectly uncorrupted SID frames without any bit errors to recognizing all frames which the rules of GSM 06.31 (FR) or 06.81 (EFR) classify as either valid or invalid SID. Change-Id: I5c24b379deda8ae551f9924d10770da50e6acbbd
2023-05-09lc15,oc2g: fix handling of SID in EFRMychaela N. Falconia2-14/+12
Commit 32682c63f672 fixed EFR SID handling in osmo-bts-sysmo, but that fix was never propagated into osmo-bts-{lc15,oc2g} versions, which are essentially copies of osmo-bts-sysmo. Fix that oversight. Change-Id: I509c1ea374e640d819952d58592b12fa884ad9d8
2023-05-08RTP input, FR & EFR: preen incoming payloads for SID errorsMychaela N. Falconia2-9/+41
Those network elements which receive a stream of codec frames that may come from the uplink of GSM call A and which are responsible for preparing the frame stream for the downlink of GSM call B (such as OsmoBTS receiving RTP and feeding DL to its PHY) must be prepared for the possibility that their incoming frame stream may contain corrupted SID frames, presumably from bit errors on radio link A. Per the rules of section 6.1.1 of GSM 06.31 for FR and GSM 06.81 for EFR, SID frames with just one errored bit are still to be accepted as valid, whereas frames with more corrupted bits which are still recognizable as SID are classified as invalid SID. In the case of a TrFO call, the entity switching from leg A UL to leg B DL is responsible for *not* transmitting invalid SID frames on the destination leg (they should be treated like BFIs), and any deemed-valid SID frames that are forwarded should be preened, correcting that one bit error they may exhibit. Implement this functionality in OsmoBTS. Change-Id: I89df2f12c49dd5378667cf149d19bde654f80134
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