AgeCommit message (Collapse)AuthorFilesLines
2019-02-15scheduler_trx: use stored fn for pdtch data indicationspmaier/first_fn2Philipp Maier1-1/+1
When the ph-data indications for the PDTCH are passed up to l1sap, then a forumla is used to calculate the frame number of the beginning of the block that is just passed up. This is not necessary since the start frame number of the block is stored in *first_fn when the block arrives. We should use this frame number instead. (For the measurement indication it is already done this way). Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Related: OS#2977
2019-02-14Log lchan kind on PCU-related errorMax1-2/+2
Change-Id: Iadb464e7040dd11e4a8cabfc96d6d90f32594109
2019-02-14osmo-bts-trx: add extended (11-bit) RACH supportMax1-10/+38
Attempt to decode incoming RACH burst as 11-bit first and fallback to 8-bit if unsuccessful. Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Related: OS#1854
2019-02-12OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short lengthHarald Welte1-4/+11
OsmoBSC used to have a bug in encoding the "GET ATTRIBUTES" OML message, resulting in the actual message length being three bytes longer than the encoded length value. As in Ib98f0d7c2cff9172714ed18667c02564540d65d7 we have introduced proper consistency checks on length values, all "GET ATTRIBUTES" from OsmoBSC version suntil today will fail. This patch introduces a work-around to remain compatible with old OsmoBSC while still keeping the consistency checks for all other messages. Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Related: OS#3799
2019-02-12OML: Properly reject short messages and truncate over-long messagesHarald Welte1-0/+23
For OML, what matters is the length indicated in the OML message header. If we don't have sufficient bytes, reject the message and send a failure event report. If we have more bytes, truncate the message at the number of bytes indicated in the OML length header. Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7
2019-02-12OML: Reject segmented OML messagesHarald Welte1-1/+9
TS 12.21 describes segmenting of OML messages using placement fist/middle/last and the "sequence' number of the OML header. We don't implement this and hence must ignore or reject any related messages. Before this patch however, we simply treated such segments as if they were a complete OML message. Let's fix that. Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Closes: OS#3795
2019-02-12OML: Use 'const struct abis_oml_mo *' whenever users only readHarald Welte2-22/+22
Try to constrain the code a bit further by making all read-only accesses use 'const *'. Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0
2019-02-12OML: Report short messages even for invalid TRX numbers in down_fom()Harald Welte1-5/+3
Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8
2019-02-12OML: Reduce code duplication in down_mom/down_fomHarald Welte1-18/+10
Simply use a "mo" variable on the stack rather than having duplicate but otherwise identical calls to oml_tx_failure_event_rep() Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2
2019-02-12OML: send proper OML alerts in case of errorsHarald Welte1-9/+21
Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a
2019-02-09OML: remove double-logging on oml_tx_failure_event_rep()Harald Welte1-6/+0
When we send an OML failure event report using oml_tx_failure_event_rep(), the function itself will not only send the report to the BSC but also log it. So there's no need to both have an explicit LOGP() and a call to oml_tx_failure_event_rep(). Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c
2019-02-09OML: Don't overwrite MO instance before oml_tx_failure_event_rep()Harald Welte1-11/+1
In Change-Id Ic163bcfb6361a8ebd39e0bc0f238ef51e2cb214e we introduced several additional calls to oml_tx_failure_event_rep() during OML messaeg processing. However, for some reason, we *overwrite* the bts_nt/trx_nr/ts_nr of the TRX MO. This is clearly wrong. The "address" of a managed object doesn't change at runtime! Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3
2019-02-09OML: Ensure MOs are initialized with valid "Administrative State'Harald Welte1-1/+4
When osmo-bts connects to the BSC, it sends a ton of "State Change Event Report" messages indicating the Operational State (NULL), Availability status (power off) and [as an osmocom extension] also the Administrative State. However, the value of the administrative state is "0", which is not defined in TS 12.21 Section 9.4.4 Change-Id: I03f8a4b08b266cd40036076c76f9dc7e8bf08da2 Closes: OS#3785
2019-02-09OML: Return attributes in ACK/NACK messagesHarald Welte1-11/+8
As per 3GPP TS 12.21 Section 8.2 "ACK messages shall return all the attributes in the original message". OsmoBTS fails to do so but simply sends no attributes at all in the ACK. TS 12.21 is a bit vague whether or not the attributes shall also be achoed in the NACK. Let's do it and append the CAUSE in this case. Closes: OS#3788 Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49
2019-02-08OML: some more comments on what functions doHarald Welte1-0/+6
Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83
2019-02-05scheduler_trx: Fix erroneous multiply-by-fourHarald Welte1-4/+4
Commit acefd0586e5d463b2e7a6a039131994bc12573fc introduced the "toa256" resolution change. Before the change, _sched_compose_ph_data_ind() used quarter-bits as units, so multiplying the old "toa" value by four made sense. However, after said change, the value is in 1/256th of bits, and hence we need to report the toa256 value without any multiply-by-four. Change-Id: I9f980236ea1cd635cb229290e187747cc8c86d8d Related: OS#2977
2019-01-30doc/examples: Install OC2G config files with autotoolsdaniel/oc2gDaniel Willmann1-0/+9
Change-Id: I2fd587e91b5e0e4cd1b8ffa781f65dbfd4484f19
2019-01-30systemd: Install OC2G service files with autotoolsDaniel Willmann1-0/+4
Change-Id: Ifd37b6a01ad9007a9e887fe3dd208dc74047b4d8
2019-01-27common/vty.c: fix 'cfg_phy_no_inst_cmd' command descriptionVadim Yanitskiy1-2/+2
A comma is needed to separate a command definition from its description, not the parts of description. Let's fix this. Before this patch: OsmoBTS# configure terminal OsmoBTS(config)# phy 0 OsmoBTS(phy)# no? no PHY Instance number OsmoBTS(phy)# no ? instance osmotrx OsmoTRX Transceiver configuration After this patch: OsmoBTS# configure terminal OsmoBTS(config)# phy 0 OsmoBTS(phy)# no? no Negate a command or set its defaults OsmoBTS(phy)# no ? instance Select a PHY instance to remove osmotrx OsmoTRX Transceiver configuration Change-Id: If10d85abc6506118ba08c37e8101f423d6f838ea
2019-01-20Bump version: → 1.0.0Harald Welte2-8/+242
Change-Id: Ie33252aef4144f9bb825d7c234970fd4e6083bb2
2019-01-17dump_docs: Use new config file naming schemeDaniel Willmann1-1/+1
Change-Id: I05723ef50deb918ed1131c1d30f8e613351b3be5
2019-01-17Rename oc2g config file to match new naming schemeDaniel Willmann2-1/+1
examples/oc2g/osmo-bts.cfg->examples/oc2g/osmo-bts-oc2g.cfg Change-Id: Ie49d5695ea78da2995252c56c75ce42e6cec0e9c Related: SYS#4444
2018-12-23osmo-bts-trx/loops.c: Make code control flow more readableHarald Welte1-20/+9
Use the 'else' construct where applicable to avoid too many return paths from functions Change-Id: I819f0c80e90855e8b3252795c837f8e3053b6e87 Related: OS#1622, OS#1851
2018-12-23osmo-bts-trx/loops.c: Use lchan name based loggingHarald Welte2-56/+38
The loops.c code dates back to ancient times when we printed the TRX number and the raw channel number to identify a logical channel. We meanwhile have gsm_lchan_name() and should use it to log messages related to this lchan in a common format. This commit introduces the LOGPLCHAN() helper macro [similar to osmo-bsc], and uses it from loops.c. As a result, some functions don't need a chan_nr argument anymore, while some need to add a new lchan argument. Change-Id: I6976dd7444c26b1f52741bc367b0311ebbef1718 Related: OS#1622, OS#1851
2018-12-23osmo-bts-trx/loops.[ch]: Make functions "void" if they always return 0Harald Welte2-54/+35
The concept of a return value only makes sense if there's actually ever something non-constant to return, and if the caller actually processes that return value. If we always "return 0" and ignore it on the caller side, functions should be of "void" type. Change-Id: I3575a2cef75f3fd4c3f95eddb40719d28a055b54 Related: OS#1622, OS#1851
2018-12-23osmo-bts-trx/loops.c: Add comments documenting TA + MS power control loopHarald Welte1-0/+30
The loops.c code is not very easily understood, so let's add some comments to it. As can be seen, there are functions of integer type which always return 0, and whose callers don't check for the return value. This will be adressed in subsequent patches. Change-Id: Iafea07eb751ed85d29b214576bb0d31ea919cd72 Related: OS#1622, OS#1851
2018-12-23rsl: Send PDCH ACT NACK if TCH chan is still activePau Espin Pedrol1-0/+6
Fix recent commit which broke TTCN3 BTS_tests TC_dyn_ipa_pdch_tchf_act_pdch_act_nack. Prior to the breaking commit, logic was still not good, because 1- It didn't return after sending the NACK 2- It sent a NACK in all cases, while for PDCH DEACT we want to force its deactivation. Going through tests it can be seen that indeed it can deactivate it in that case: rsl.c:2206 (bts=0,trx=0,ts=3,pchan=TCH/F_PDCH as PDCH) Request to PDCH DEACT, but lchan is still in state ACTIVE ... rsl.c:2103 (bts=0,trx=0,ts=3,ss=0) Tx PDCH DEACT ACK Fixes: 133a3d96dc07ebda4dfc7899dab9c0d0c80c9fea ("rsl: Avoid sending ipa PDCH DEACT NACK followed by ACK") Change-Id: I6d6d12aec10c801fe55012ca6e58d0bc8755b15d
2018-12-18sysmobts_mgr: Add support for gpsd < 2.96Pau Espin Pedrol2-2/+21
This allows running sysmobts-mgr on systems with old gpsd releases (which may have other software depending on such old release). GPSD_API_MAJOR_VERSION define was first added in gpsd 2.39, before that it didn't exist (but this code is known to work against 2.38). GPSD_API_MAJOR_VERSION == 5 was set in version 2.96. Related gpsd commits: 3771dba081bd1175adab6096d7b6270d3822aaa1 e69bcb6b01af6b25c6a525fb1961b92ac04f5213 Related: SYS#4290 Change-Id: If3c35021a020a61d5fa3cde5eebcd09908db822b
2018-12-18sysmobts_mgr: Prepare code for gpsd < 2.96 supportPau Espin Pedrol2-8/+10
API prior to that version allocates the pointer internally. Let's change current code to always use a pointer and in current supported code (gpsd >= 2.96) point it to a user-allocated struct. Follow-up patch will introduce necessary ifdefs to support older gpsd. Change-Id: Iaeb5ac527cc3e58168027021d0f60afa93d1fb6f
2018-12-06contrib: fix makedistcheck with disabled systemdOliver Smith1-1/+11
EXTRA_DIST files need to be distributed, no matter if the systemd option is configured or not. Change-Id: I5d3712b54a8b777c33a9804a4f612e4f37f829df
2018-12-05contrib/jenkins_*.sh: build and publish manualsOliver Smith2-2/+23
Add new environment variables WITH_MANUALS and PUBLISH to control if the manuals should be built and uploaded. Describe all environment vars on top of jenkins_bts_model.sh. Change the top description line to look like all the other contrib/jenkins.sh files (from other repositories), so it is clear that this is the entry point of Jenkins (and not the other contrib/jenkins_*.sh scripts). When WITH_MANUALS is set, install osmo-gsm-manuals like any other dependency and add --enable-manuals to the configure flags (for "make" and "make distcheck"). Add the bin subdir of the installed files to PATH, so osmo-gsm-manuals-check-depends can be used by ./configure. Related: OS#3385 Change-Id: If51194cc595bd8cf1081b35ab0e1a5ddcd448860
2018-12-04bts-trx: (n)ack PDCH DEACT only after TRX answered SETSLOTPau Espin Pedrol3-9/+81
Before this patch, PDCH DEACT was (n)acked to the BSC without taking into account if TRX succeeded or failed to set the TS: 20181123044720655 DRLL rsl.c:2523 (bts=0,trx=0,ts=0,ss=0) Rx RLL DATA_REQ Abis -> LAPDm 20181123044720700 DRSL rsl.c:2805 (bts=0,trx=0,ts=6,pchan=TCH/F_PDCH as PDCH) ss=0 Rx RSL IPAC_PDCH_DEACT 20181123044720700 DRSL rsl.c:2205 (bts=0,trx=0,ts=6,pchan=TCH/F_PDCH as PDCH) Request to PDCH DEACT, but lchan is still active 20181123044720700 DRSL rsl.c:2131 (bts=0,trx=0,ts=6,ss=0) Tx PDCH DEACT NACK (cause = 0x0f) 20181123044720700 DPCU pcu_sock.c:124 Sending info 20181123044720700 DPCU pcu_sock.c:139 BTS is up 20181123044720700 DPCU pcu_sock.c:232 trx=0 ts=7: available (tsc=7 arfcn=868) 20181123044720703 DPCU pcu_sock.c:608 Deactivate request received: TRX=0 TX=6 20181123044720703 DL1C l1sap.c:1519 deactivating channel chan_nr=TCH/F on TS6 trx=0 20181123044720703 DTRX trx_if.c:242 Enqueuing TRX control command 'CMD NOHANDOVER 6 0' 20181123044720703 DL1C l1sap.c:648 deactivate confirm chan_nr=TCH/F on TS6 trx=0 20181123044720703 DRSL rsl.c:714 (bts=0,trx=0,ts=6,ss=0) not sending REL ACK 20181123044720703 DRSL rsl.c:2264 (bts=0,trx=0,ts=6,ss=0) PDCH DEACT operation: channel disconnected, will reconnect as TCH 20181123044720703 DL1C scheduler.c:593 Configuring multiframe with TCH/F+SACCH trx=0 ts=6 20181123044720703 DTRX trx_if.c:242 Enqueuing TRX control command 'CMD SETSLOT 6 1' 20181123044720703 DL1C l1_if.c:780 (bts=0,trx=0,ts=6) bts_model_ts_connect(as_pchan=TCH/F) success, calling cb_ts_connected() 20181123044720703 DRSL rsl.c:2339 (bts=0,trx=0,ts=6,ss=0) PDCH DEACT operation: timeslot connected as TCH/F 20181123044720703 DRSL rsl.c:2440 (bts=0,trx=0,ts=6,ss=0) TCH/F_PDCH switched to TCH/F mode (ts->flags == 0) 20181123044720703 DRSL rsl.c:2103 (bts=0,trx=0,ts=6,ss=0) Tx PDCH DEACT ACK 20181123044720704 DTRX trx_if.c:492 Response message: 'RSP NOHANDOVER 0 6' 20181123044720705 DTRX trx_if.c:492 Response message: 'RSP SETSLOT 0 6 1' Change-Id: I888de761b65c3ea8bfe623fcf009f3b2b57c926c
2018-12-04Fix DISTCHECK_CONFIGURE_FLAGS overrideOliver Smith1-1/+1
Set AM_DISTCHECK_CONFIGURE_FLAGS in Makefile.am instead of DISTCHECK_CONFIGURE_FLAGS. This is the recommended way from the automake manual, as otherwise the flag can't be changed by the user anymore. Related: OS#3718 Change-Id: I332c94502cce0f3f11fe3f4d9f6c9918ff0c0263
2018-12-04oc2g: Fix headers missing during make distcheckPau Espin Pedrol1-1/+1
Change-Id: I2e4aad190c44fea047b4aefcf55335789fa4c571
2018-11-27build manuals moved here from osmo-gsm-manuals.gitOliver Smith9-39/+106
Moved to doc/manuals/, with full commit history, in preceding merge commit. Now incorporate in the build system. Build with: $ autoreconf -fi $ ./configure --enable-manuals $ make Shared files from osmo-gsm-manuals.git are found automatically if - the repository is checked out in ../osmo-gsm-manuals; or - if it osmo-gsm-manuals was installed with "make install"; or - OSMO_GSM_MANUALS_DIR is set. Related: OS#3385 Change-Id: I728ebb56ade6dda079a0744c4e592284e1bea4f6
2018-11-27Merge history from osmo-gsm-manuals.gitNeels Hofmeyr38-0/+7041
Change-Id: Ib62d046bd84204b902cac3fe8c0765e32da0a0c6
2018-11-27OsmoBTS: Fix typoDaniel Willmann1-1/+1
Change-Id: I0a4c9f052f14816e88ed0a4a5fff9b3854da195a
2018-11-27OsmoBTS: Print VTY command in fixed-width fontDaniel Willmann1-1/+1
Surrounding with '@' didn't seem to yield the intended result, the charactars appeared in the compiled document. Change-Id: I66e7949fa4a6c2164bf9572a2beaf8ace169fa1c
2018-11-27bts: Fix typoPau Espin Pedrol1-1/+1
Change-Id: I47758acec07a587730552a9c46dc02976c807d9a
2018-11-27vty-ref: Update URI of docbook 5.0 schemaHarald Welte1-2/+2
... to match the /etc/xml/catalog file on debian (no "www" in hostname) Change-Id: Id9f3579c7f2bc3af13fe30b5268f249b6f59ed0d
2018-11-27Introduce chapter trx_if.adoc and add it to OsmoTRX and OsmoBTSPau Espin Pedrol1-1/+2
This chapter defines the protocol used between osmo-trx and osmo-bts-trx. Most of the text comes originally from osmo-trx.git/README, as it's the only known documentation of the protocol other than the code itself. Change-Id: I56c418eef0f826ae1aadbed5b151fbed241c7885
2018-11-27OsmoBTS: bts-models: Add Lime Microsystems devices as supported osmo-trxPau Espin Pedrol1-5/+5
Also take the chance to remove uneeded extra whitespace in surrounding text. Change-Id: I739e4dfba7c649a74cf67d6bbe6f74b22e7e24f0
2018-11-27refactor Makefile build rules, don't use the FORCENeels Hofmeyr1-45/+7
The initial goal was to make sure we don't have overall FORCE rules causing unnecessary rebuilds -- annoying while writing documentation. As I looked through possible dependencies, I finally understood what's going on here. Remove code dup and nicely sort which belongs where in build/Makefile.*.inc. In each, describe in a top comment how to use it, and also unify how they are used: - Rename Makefile.inc to Makefile.docbook.inc and refactor - Add Makefile.vty-reference.inc - Add Makefile.common.inc Make sure that we accurately pick up all dependencies. Drop use of the macro called 'command', that silenced the actual command lines invoked and replaced them with short strings: it obscures what is actually going on and makes the Makefiles hard to read and understand. Each manual's makefile is greatly reduced to few definitions and a Makefile include, e.g. one for asciidoc, one for VTY reference. Move common/bsc_vty_additions.xml to OsmoBSC/vty/libbsc_vty_additions.xml, link from OsmoNITB. It applies only to OsmoBSC and OsmoNITB. Add a script that combines a VTY reference file with *all* additions files found in a manual's vty/ dir. Call this from Makefile.vty-reference.inc. Change-Id: I9758e04162a480e28c7dc83475b514cf7fd25ec0
2018-11-27Allow easily disabling GFDL referencesPau Espin Pedrol2-0/+4
All parts referencing GFDL can be easily disabled by removing the 'gfdl-enabled' attribute from the document. Change-Id: I2489726ad2e90301bceadfada926e31ae0f85986
2018-11-27update osmo-bts-virtual documentation, now that code is mergedHarald Welte1-12/+41
Change-Id: Icd8706d29ca0e96cb89b7736dbb62f9ce159382d
2018-11-27rtp-amr: Fix typo and trailing whitespacePau Espin Pedrol1-2/+2
Change-Id: I8efda2387e0e5e95700b070dab8f8dd427fa562d
2018-11-27rtp-amr: Describe requirement to recieve all PH-DATA.ind eventsPau Espin Pedrol2-35/+59
Change-Id: I4a78b3398c36a8107fa1809ba9b89235980f0e4f
2018-11-27OsmoBTS: Update osmotrx ip to diff between local and remotePau Espin Pedrol1-2/+8
Change Id of the code implementation: I0bd34b7b02c1a9b0c6f6f89f327b486e5620c8d5 Change-Id: Ia4c70b3b8436e2647fc35d579a302dfbf32a83f0
2018-11-27OsmoBTS/chapters/configuration.adoc: Add bts index in examplePau Espin Pedrol1-2/+2
Change-Id: If13643cdfa59c50b6af8ab0657635fed2ca219f0
2018-11-27Sync DTX FSM with OsmoBTS codeMax2-35/+70
Change-Id: I050a07db99bc0038cfd2a9646a450f714653d804