aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-04-06VTY: fix config indentation for pcu-socket paramsrhizomatica/productionKeith Whyte1-1/+1
osmo-bsc would not start with a config written from the vty due to incorrect identation on the pcu-socket parameters. Change-Id: I36a66794e654989b4b8bf54bb3727ccbfc2131fa
2024-04-06use X6 timer for REL ACK, not T3111Neels Hofmeyr1-1/+1
The lchan FSM timers were originally implemented to model earlier code as closely as possible. Now it has come up that T3111 is used in the wrong place: 3GPP TS 44.018 says: T3111: This timer is used to delay the channel deactivation after disconnection of the main signalling link. Its purpose is to let some time for possible repetition of the disconnection. Its value is equal to the value of T3110. Before this patch, we use it also to time the RF REL ACK message. That is pretty bad, because T3111 is only 2 seconds by default, making RF CHAN REL vulnerable for timeout. When a user increased T3111 to alleviate the problem, the result is that each lchan also delays its normal channel release procedure by the configured amount of time. Very inelegant. Instead, use the X6 timer for REL ACK, because X6 already times the CHAN ACTIV ACK, which is semantically identical. Compatibility / user impact: No negative impact expected. We can assume that every user out there has X6 configured to work for CHAN ACTIV ACK. From that logic, switching channel release ACK to the same timer is guaranteed to be what the user intends. We could instruct users in the release notes that they may now choose T3111 freely (as short as 2 seconds) without jeopardising channel release anymore. Related: SYS#6655 Change-Id: Ibd118fa23e5deb4381bc31b11a7b495f57901d6c
2024-04-01attempt to catch a segfault: lchan pointing at stale connNeels Hofmeyr1-0/+34
Change-Id: I47655da40a913d85d5bb5240a5e0ed95173f156e
2024-04-01Allow disabling SDCCH8 on DYN ChansKeith4-1/+22
Change-Id: Ie1a4103ec78a0840c83ad72e7cd6a4a1fc758af9
2023-09-12Bump version: 1.10.0.237-94878-dirty → 1.11.01.11.0Pau Espin Pedrol5-31/+288
Change-Id: I25bfb1ecb202dc43928ee92a303bc1c6159d1626
2023-09-01oml: ipacc: Use new packed struct abis_nm_ipacc_att_rlc_cfg from libosmcorePau Espin Pedrol1-19/+26
This way it becomes a lot clearer what kind of content is expected to be transmitted over the wire. It is expected that in the future the nowadays hardcoded values will be fed into struct abis_nm_ipacc_att_ns_cfg come from osmo_tdef, etc. Change-Id: I4b4dfac9fd36378b20889fb90135be74f8968d5f Depends: libosmocore.git Change-Id I60e17dedd1fadce0f705616e3ed96cabb318bcec Related: OS#5335
2023-09-01oml: ipacc: Use new packed struct abis_nm_ipacc_att_ns_cfg from libosmcorePau Espin Pedrol1-5/+13
This way it becomes a lot clearer what kind of content is expected to be transmitted over the wire. It is expected that in the future the bts_sm->gprs.nse.timer will disappear and the values fed into struct abis_nm_ipacc_att_ns_cfg come from osmo_tdef, etc. Change-Id: I610ca34babc0b0ac9477622aa7b8360be8f3f59f Depends: libosmocore.git Change-Id Ie477b0e6d79e6d408e0004fd60307afc5feaa3b6 Related: OS#5335
2023-09-01oml: ipacc: Use new packed struct abis_nm_ipacc_att_bssgp_cfg from libosmcorePau Espin Pedrol1-3/+16
This way it becomes a lot clearer what kind of content is expected to be transmitted over the wire. It is expected that in the future the bts->gprs.cell.timer will disappear and the values fed into struct abis_nm_ipacc_att_bssgp_cfg come from osmo_tdef, etc. Depends: libosmocore.git Change-Id Ibfd759cb8a252f801bb3a758ea7960072c96f254 Related: OS#5335 Change-Id: Ie659879c548b29a08eeb8bf3fc023bf3d7d52aa1
2023-09-01oml: ipacc: Remove BSSGP value assignment being overwritten afterwardsPau Espin Pedrol2-15/+14
bts->gprs.cell.timer is initialized during BTS allocation from bts_cell_timer_default. Later on, during nanobts_gen_set_nse_attr(), the same default values are applied to an internal buffer and immedately later overwritten by the content of bts->gprs.cell.timer. Hence, drop the temporary assignment since it gets overwritten and is basically a NO-OP. This is only an intermediate one-step-at-a-time commit, since anyway that arrive has to be convertd to osmocom tdef, etc. Change-Id: I2a170093e62f726e594d3b9c456087f47d2b4198
2023-08-31pcu_sock: use PCU_IF_SAPI_AGCH_2 instead PCU_IF_SAPI_AGCHPhilipp Maier4-13/+41
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. One new feature of PCU_IF_SAPI_AGCH_2 is that the PCU may ask to send a confirmation when the MAC block is sent. CAUTION: This patch breaks compatibility to current master osmo-pcu (See also "Depends") Related: OS#5927 Depends: osmo-pcu.git I9effdcec1da91a6e2e7a7c41f95d3300ad1bb292 Change-Id: I709c27adaf09a6766cfde4d76d878626d30ebb3c
2023-08-31pcuif_proto: check confirm flag in struct gsm_pcu_if_pchPhilipp Maier4-9/+20
Since osmo-bsc uses RSL (with a propritary Ericsson RBS specific extension) to send a confirmed IMMEDIATE ASSIGNMENT messages via PCH, we can not just forward the MAC blocks into the paging queue without determining whether the MAC block is a PAGING message or an IMMEDIATE ASSIGNMENT message. the reason for this is that RSL uses two different message types (IMMEDIATE ASSIGNMENT COMMAND and PAGING COMMAND) to process IMMEDIATE ASSIGNMENT and PAGING messages. This means we have to look into the MAC block to make sure whether the message is a PAGING message or an IMMEDIATE ASSIGNMENT message. We also need to make sure that the confirm flag is properly executed. In the case of the IMMEDIATE ASSIGNMENT this means we have to include (confirm=true) or not include (confirm=false) the RSL_IE_ERIC_MOBILE_ID into the IMMEDIATE ASSIGNMENT COMMAND message. In the case of PAGING we directly echo a confirmation after sending the PAGING COMMAND via RSL when a confirmation is requested. Related: OS#5927 Depends: osmo-pcu.git Ia202862aafc1f0cb6601574ef61eb9155de11f04 Change-Id: I3d2842626b7e8325860ea3160c7d900d39e953a0
2023-08-30meas_feed: Increase wqueue max_len to 100 and make it vty-configurablePau Espin Pedrol3-1/+33
The previous amount of 10 messages may be small if the BSC is processing lots of measurements from lots of BTS connected to it. Increase it to 100 by default, and allow changing the write_queue length through the VTY. Related: SYS#6550 Change-Id: Ib2e3591498c038b8e59f3ad447ac1f65928d6da8
2023-08-29meas_feed: Refactor fd/wqueue lifecyclePau Espin Pedrol1-31/+34
The previous checks had several rough edges which may end up in unexpected behaviors, specially with fd=0 vs fd=-1. The new code is much more robust. Change-Id: I96b0b5c4654970ba1c3e2aecfa896e310063ab6f
2023-08-29ASCI: Fix uninitialized values in vgcs_fsm.c, found by gcc 13.1.1.20230714Andreas Eversberg1-2/+4
Change-Id: Iee4cc0fbf03e7ca4b53424f7f52ed9d599f96e49
2023-08-10pcuif_proto: get rid of _DT, _dt (Direct TLLI)Philipp Maier2-25/+25
Since we now no longer refer to TLLI when we mean "message ID" (msg_id), we should also remove the "_DT" / "_dt" suffix from structs and define constants and replace it with "_2" if required. Depends: osmo-pcu.git If641b507dcb6b176109c99dce7cff2a7561364b0 Change-Id: I628aaf19999a0004d0760d25ecd323cdbc0076f5 Related: OS#5927
2023-08-10pcuif_proto: remove unnecessary members from gsm_pcu_if_data_cnf_dtPhilipp Maier1-9/+0
The struct gsm_pcu_if_data_cnf_dt was added when the first experiments mit Ericsson RBS base stations were made. It is essentially a copy of gsm_pcu_if_data, where the mamber "data" was replaced with a member "msg_id" (which was originally called "tlli"). Since we didn't know back then which parameters we would still need at some later point we kept all the other parameters. However, to this day we never used the parameters below fn. Even fn was only used for logging purposes, but is now also unused. Let's remove all those unused members. (Since all removed members are at the tail of the struct, compatibility with other programs that use the PCUIF should not break.) Change-Id: I37845408edd96017b50559964c82b2cdc5e143a7 Related: OS#5927
2023-08-08pcuif_proto: rename tlli to msg_idPhilipp Maier5-21/+18
To confirm downlink IMMEDIATE ASSIGNMENT messages, we use the TLLI as an identifier and the related struct member is also called "tlli". Unfortunately this is misleading since the message identifier does not necessarly have to be a TLLI. It is just an implementation detail that osmo-pcu uses the TLLI as a message identifier. To make that clear, lets rename the tlli member (and variable and parameter names where it is passed on) to "msg_id". (Since this change only renames variables and struct members it will not break compatibility with other programs that use the PCUIF) Related: OS#5927 Depends: osmo-pcu.git I4a25039dfe329e68879bc68936e49c4b190625e6 Change-Id: Ifb3f257099b52c50e525768484f9e93282089d0f
2023-07-26fix send_assignment_complete(): proper SCE encoding for CSDVadim Yanitskiy1-19/+38
As stated in 3GPP TS 48.008, section 3.2.2.103, coding of the Speech Codec Element for the CSData Codec Type differs from coding for the actual speech codecs like FR/HR/AMR/etc. However, osmo-bsc currently encodes the "Speech Codec (Choosen)" IE regardless of the channel mode, be it GSM0808_CHAN_SPEECH or GSM0808_CHAN_DATA. This causes failures at the establishment stage of modem-to-modem data calls. Change-Id: I8b94c0292964f6d5f5ffa98ad8da03728f8bf6a0 Related: OS#6110, OS#4393
2023-07-21Select channel type by enum instead of three booleanAndreas Eversberg7-35/+52
struct lchan_activate_info and struct lchan_modify_info use an enum to define, if the channel type is for a normal channel, a VAMOS channel or a VGCS/VBS channel. Change-Id: I21167eb4192c02cd7b5e1574cddb382a3feaebe0
2023-07-21ASCI: Add assignment to a VGCS/VBS channelAndreas Eversberg4-4/+51
The assignment is triggered by the MSC by sending an ASSIGNMENT REQUEST with a group call reference. The reference is used to find the VGCS/VBS channel that belogs to the referenced call. The existing VGCS/VBS channel is reactivated. This will put the channel into a state where the MS can establish the link on it, to complete the assignment. The old connection is released by the MSC and assignment completion is handled by the VGCS FSM. Change-Id: Idaa864cd5ce4df6c3193494ce12d91523c104d89 Related: OS#4852
2023-07-21ASCI: Send release on VGCS/VBS channel via unit dataAndreas Eversberg3-7/+25
Channel release is sent to MS that is in dedicated mode on the main DCCH. Additionally it is sent as unit data on a VGCS/VBS to notify all listeners that the channel has been released. All listeners return to IDLE mode. Change-Id: Ib777fe98c8ce2342082d88d227b796167d92cfe1 Related: OS#4852
2023-07-21ASCI: Add support for reception of TALKER/LISTENER DETECTIONAndreas Eversberg1-2/+66
TALKER DETECTION and LISTENER DETECTION is used when the uplink is accessed on the VGCS channel by a talker or listener. Change-Id: I166d6d42c04337e669307943ecbb8eea6906b385 Related: OS#4852
2023-07-21ASCI: Indicate release of subscriber connection to VGCS FSMAndreas Eversberg1-0/+25
If an SCCP connection or channel is released or fails, send indications towards VGCS FSM, so that it can terminate the state machines belonging to these connections. Change-Id: Ia74db9ba47fea11b359ac01269f714482485d464 Related: OS#4852
2023-07-21ASCI: Forward lchan activation states to VGCS FSMAndreas Eversberg1-0/+57
Change-Id: I757b562e02480c1a68446d91217910069f17d060 Related: OS#4852
2023-07-21ASCI: Forward RLL to VGCS FSMAndreas Eversberg1-0/+40
RLL events are forwarded to VGCS FSM. Included L3 information are not forwarded to gsm0408_rcvmsg(), but forwarded to VGCS FSM only. Change-Id: I5e098a20225ba11206f43281f4da519a4086bae5 Related: OS#4852
2023-07-21ASCI: Add decoding of VGCS/VBS A-interface messagesAndreas Eversberg1-0/+115
Change-Id: I77b4d072d76039b1889ae4bba4a602e956405eb8 Related: OS#4852
2023-07-21ASCI: Add processing and FSMs for VGCS/VBSAndreas Eversberg7-1/+1469
Change-Id: Id9e94fb4f27bb438b7093c031344a3400bfa34f1 Related: OS#4852
2023-07-21ASCI: Add encoding of VGCS/VBS A-interface messagesAndreas Eversberg1-0/+178
Change-Id: Ic2203a5119a226ac859a91dc42d81cbd71027ec8 Related: OS#4852
2023-07-21ASCI: Forward UPLINK RELEASE on dedicated channel to MSCAndreas Eversberg1-0/+6
If the phone is (still) on a dedicated channel, it may release the uplink in case of a voice group call. It depends on the MSC how to handle the situation. Currently it releases the call. Generally the phone is assigned to the VGCS/VBS channel before it releases the uplink. Change-Id: Ib91c282ed36e82b38c0e738533e3a421de81a9a8 Related: OS#4852
2023-07-21ASCI: Add TX support for UPLINK FREE/BUSY messagesAndreas Eversberg2-0/+47
Change-Id: Ia27e0ebb5bf7edb1b9f84999cafc028231b9489f Related: OS#4852
2023-07-21ASCI: Add support for sending RSL UNIT-DATA towards BTSAndreas Eversberg3-0/+35
This is required to send UPLINK FREE and UPLINK BUSY messages to the BTS. Change-Id: I25e80f079989a4c7dede58c327c22b958784f3ff Related: OS#4852
2023-07-21ASCI: Do not wait for RLL establishmentAndreas Eversberg1-3/+7
A VGCS channel is established, even if there is no RLL establishmnt. RLL connection can be established or released by the talker, while the channel is kept in established state all the time. Change-Id: I96390924736029b92e54590157e38093be749dd9 Related: OS#4852
2023-07-21ASCI: Do not release channel, if SAPI 0 is releasedAndreas Eversberg2-3/+18
A VGCS channel must not release, if all SAPIs (including 0) are released. lchan FSM will ignore this. Change-Id: Ief1e1894362c4917f6e0092268690f68c8193750 Related: OS#4852
2023-07-21ASCI: Add new debug category "ASCI" for VGCS/VBS state machinesAndreas Eversberg2-0/+7
Change-Id: I4714fa4ff2b1327183a365223a3e3d89ae0357f7 Related: OS#4852
2023-07-21ASCI: Prepare bssmap_handle_ass_req_ct_speech() for VGCS/VBSAndreas Eversberg1-7/+6
bssmap_handle_ass_req_ct_speech() calls select_codecs(), which requires a bts pointer. An extra bts pointer is added to both function and used instead of deiving it from the conn->lchan pointer. This funcion can then be called if no channel is assigned (yet). (conn->lchan is NULL) This function will be used by the VGCS/VBS call control also. (Chg-Id: Id9e94fb4f27bb438b7093c031344a3400bfa34f1) Change-Id: Ifc1e315d5282f01f8d1bd600d62476c2ae74eca9 Related: OS#4852
2023-07-21ASCI: Make function to add OSMUX IE publicAndreas Eversberg2-2/+4
Rename _gsm0808_ass_compl_extend_osmux() to gsm0808_extend_osmux(). This IE is also used for VGCS/VBS assignment command that is located in a different file. Change-Id: I1452cabb142f9e7a169f4ddfeac85908abaf8dfc Related: OS#4852
2023-07-21ASCI: Add TX support for UPLINK RELEASE messageAndreas Eversberg2-0/+16
Change-Id: Ie3d8ad1ea8325c13759838d8083c6e47a0f54497 Related: OS#4852
2023-07-21ASCI: Add selection reason for VGCS/VBS channelsAndreas Eversberg5-1/+19
"enum lchan_select_reason" gets a new selection reason: "SELECT_FOR_VGCS" The selection "direction" can also be changed via VTY. Change-Id: I6b96d0a1df68efa5858b98297ebe0944b1473aaf Related: OS#4852
2023-07-21ASCI: Add support for Group/Broadcast channel activationAndreas Eversberg3-5/+25
"struct lchan_activate_info" is expanded to support flags for VGCS and VBS. These are used to send the correct Channel Mode to the BTS. "enum lchan_activate_for" is expanded to indicate and activation of VGCS/VBS calls. Change-Id: Ic0c0597d149d0758d6766937d99660fa02e0e139 Related: OS#4852
2023-07-21ASCI: Add support for NOTIFICATION COMMAND (RSL) messageAndreas Eversberg2-0/+40
This message will be sent to each BTS with a VGCS/VBS channel to notify the served MSs about ongoing group/broadcast calls. It is also used to remove the notification, if the call is terminated. Change-Id: I96ec0ee5d1a772a45f1ebfd64210718c8bf5aa58 Related: OS#4852
2023-07-21Cleanup code style of rate counters in osmo_bsc_msc.cAndreas Eversberg1-47/+180
Change-Id: I7cfd4f20ebfee0c8df9305372977d6628d6337c5
2023-07-21Fix typo in rate counters ASSIGMENT->ASSIGNMENTAndreas Eversberg4-7/+8
Change-Id: I73079948afbdde35594660959b5335118a810d7b
2023-07-21ASCI: Add new rate counters to support VGCS/VBS messagesAndreas Eversberg2-0/+100
Change-Id: I18e4ca3599e480de2d0f64cc1b6f4bb6ce8020d4 Related: OS#4852
2023-07-21control.adoc: Update with recent changesMatan Perelman1-0/+18
Change-Id: Iea1a416b958e28b95bc881b4ebf0568b43447fec
2023-07-21control.adoc: Remove short-name and long-nameMatan Perelman1-2/+0
Those options don't actually exist in the CTRL interface! Change-Id: Ic30807fc9ef6b586d040b81c88e4a8d2a76aa0a6
2023-07-20lchan_select: fix lchan selection for GSM48_CMODE_DATA_{14k5,12k0}Vadim Yanitskiy1-3/+3
Change-Id: I271ebf7e64e3d0861586e9bc63bec113cb5fb410 Fixes: d5eb0f1b5 "lchan_select: chan_mode_to_chan_type: support CSD" Related: OS#4393
2023-07-20configure: add --enable-meas-udp2db/pcap2db/visOliver Smith4-19/+44
Do not build these utils implicitly if libsqlite3/libpcap/libcdk are installed. Add configure flags for explicit building and fail if dependencies are missing. Keep behavior in deb and rpm packaging: * deb: build meas_vis * rpm: build none of these (libcdk dependency for meas_vis is not available in most rpm-based distributions we build for) Fixes: OS#5173 Depends: docker-playground I015b6d7cb834e99ea5d04206ba5f8c519c4e6af1 Change-Id: I8b3d5efb769437a5d3036e1e627b8d477275d93e
2023-07-17ctrl: Support adding si2quater earfcn neighborMatan Perelman1-1/+145
Change-Id: Ifd2740ee54db66742785437a278cb9244e1f76d0
2023-07-17ctrl: Add getting si2quater earfcn neighbor listMatan Perelman1-0/+40
Change-Id: Ib942bfa95aca2b514ac68f602545b9e7cbed097a
2023-07-17ctrl: Support adding si2quater uarfcn neighborMatan Perelman1-1/+81
Change-Id: I8116175b5dff1ee4bbff0dc3b4f93890ce4c975b