aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-10-29tests: Don't use private version of log_info but global gprs_log_infoHarald Welte6-119/+15
There's no need for each test case to carry their own log_info and filter function. They can simply use the global gprs_log_info and configure the stderr log verbosity according to their needs. Change-Id: I8706a624e5d06e062d1198711aa197fbd0860769
2017-10-24gb: allow only packets from a specific SGSNPhilipp Maier1-0/+2
Each PCU has a specifically assigned SGSN, which may send packets to the PCU. Ensure that no one else except the configured SGSN can send packets to the PCU. Change-Id: Ic2009039fab7cf0fba916556239747ae5b410366 Depends: libosmocore Ifeb201d9006eec275a46708007ff342cdfc14e45
2017-10-10cosmetic: reformat multislot classes tableMax1-31/+32
Add header similar to the one used in the standard, reformat to facilitate further extention. Change-Id: I786df6b154c0668d2cefa0ea84d7dea336b0da1d Related: OS#2282
2017-09-12TS alloc: properly count UL slotsMax1-0/+4
Add cycle to mark multiple allocated UL slots similar to the way we count DL slots in AllocTest. Until multislot UL allocation is implemented it does not affect test output. Change-Id: I2705405119421da3066c6c6bdd5830df4c133a36 Related: OS#2282
2017-09-08TBF-DL: extend index check for RLC block copyMax2-0/+218
Log number of RLC blocks to copy and assert if trying to copy too many blocks. Change-Id: I01cbc26ec67400a44e9fff3f9a30d729320380f9 Fixes: CID143069
2017-09-08Assert valid CSMax2-0/+8
The coding scheme converted to number make sense only if it's valid. This is implicitly assumed by the code using this conversion as non-zero value. Make those assumptions explicit with OSMO_ASSERT(). Change-Id: I8f62627b7b7b89dfa1b0d1a7e71b95b2c40fdffa Fixes: CID70466
2017-09-04cosmetic: convert explicit warnings to fixme/todoMax6-7/+9
We do not use this style (#warning as an issue tracker replacement) in any other Osmocom project. Also those warnings clutter compiler output making it harder to spot warnings for the actual code. Change-Id: I72070e2a027e60e8b80c12ccfa23ff075434689f
2017-09-01Move gsmtap and accounting into separate functionMax1-13/+31
Change-Id: I3609da1850244f25bd4611c9d25795ca379d6325
2017-09-01Support receiving SI13 from BTSMax6-1/+33
* store SI13 in BTS struct * check and handle BCCH SAPI Change-Id: I610a93ce23725b182ec14e3507331295bd542f74 Related: OS#2400
2017-09-01cosmetic: tighten direct-phy related codeMax1-11/+11
* move the code to related SAPI case * get rid of 'unused variable' warning if direct-phy is not used Change-Id: If8cae6f3579cfdecc25bbe1d08fa88a4f664a03b
2017-08-24Use value string check from osmo-ciMax1-2/+2
Change-Id: Ib9c595ef80cb6b0d126d4da8244f6435e0526095
2017-08-24Facilitate future releasesMax3-1/+7
* use release helper from libosmocore * use semantic versioning Change-Id: Ie0a7f5977550bd0a1ba8b03bdb7e2d619a398e4e Related: OS#1861
2017-08-18EDGE: Fix UL link adaptation.Minh-Quang Nguyen4-5/+100
We have seen that UL MCS5- MCS9 link adaptation has not been implemented in current PCU implementation. If the MS slowly moves far away from the BTS, the UL MCS will always stick at MCS9 no matter UL link quality values leading to poor data service experience. The UL MCS is expected to adapt from MCS9 -> MCSx due to bad UL quality. Below PCU traces indicate that UL MCS is quickly increasing to MCS9 (max MCS 9 was used in this test) and it never changes to other UL MCS due zero thresholds. <0004> gprs_ms.cpp:670 MS (IMSI ): Link quality 23dB (23dB) left window [0, 0], modifying uplink CS level: MCS-6 -> MCS-7 <0004> gprs_ms.cpp:670 MS (IMSI 000): Link quality 23dB (23dB) left window [0, 0], modifying uplink CS level: MCS-7 -> MCS-8 <0004> gprs_ms.cpp:670 MS (IMSI 000): Link quality 23dB (23dB) left window [0, 0], modifying uplink CS level: MCS-8 -> MCS-9 Change-Id: I9272c337ad6399da4a47cc6e2736e25f24e099d8
2017-08-17GSMTAP: fix category checks in pcu_rx_data_ind and pcu_l1if_tx_ptcchHarald Welte1-2/+2
We needto shift the PCU_GSMTAP_C_* constants before comparing against the mask of enabled GSMTAP categories. Change-Id: Ieb9332c65ed7bd57baf1aeab5ab722f92fc23b24
2017-08-14Simplify polling troubleshootingMax6-103/+100
* introduce enum describing poll kind and use it in set_polling() * move state change into set_polling() * move logging into set_polling() and unify output * move duplicated code into static function * adjust tests to match unified logging output Change-Id: I14074207f8bbc18b3ebd60875bb99a0a3a4b399d Related: OS#1524
2017-08-14Move DL assignment to TBF-DLMax5-39/+38
This function does not really belongs to BTS and it heavily relies on direct access to TBF-DL members anyway. Change-Id: I04584103018675a2f35cfb565473bfd81a208d7c Closes: OS#1540
2017-08-14Move common code into functionsMax1-57/+36
* separate channel request responder into inline function * move generic TBF poll check into inline function Change-Id: I9ec3ab8de100f0bc75044f55ac769d1083d52806 Related: OS#1539
2017-08-14Encapsulate handling of UL ACK timeoutMax4-21/+39
Use helper methods instead checking and manipulating flag directly. Change-Id: Ia3f009c52118db95b38a077e08eecda844e7f8d1 Related: OS#1539
2017-08-09Add pcu-socket vty configPau Espin Pedrol5-1/+30
osmo-bts already supports configuring a different path for the bts<->pcu socket by using the 'pcu-socket' config field. Change-Id: I9b3e1171da467519750b201849ec892a1e318129
2017-07-29README: Clarify that fixed allocations have been revmoved from 3GPP specsHarald Welte1-1/+1
In Release 5, Fixed Allocations were removed as part of a "GPRS simplification project" inside 3PGPP. This means that any MS compatible with Rel-5 or higher may not support it, which makes implementation in the PCU af historical interest only. See Tdoc GP-021277 for the actual removal, it happened at 5.0.0 time. Change-Id: I8138bc0a47d3468b67cec866447fd4b0fc69d4c5
2017-07-29GSMTAP: Ad PTCCH as separate gsmtap categoryHarald Welte3-1/+5
This allows us to send GSMTAP for PTCCH only if requested by user/vty Change-Id: Id720f4bebdce7f6152fbddddbe05036638c5866e
2017-07-29GSMTAP: Fix logical channel of downlink PTCCHHarald Welte1-1/+1
Change-Id: I29ecc968d56d4d0165cffa206297c42d6fb02cf4
2017-07-29GSMTAP: Fix channel type for data blocks: PDTCH instead of PACCHHarald Welte2-3/+3
PACCH is used only for RLC/MAC control messages, while PDTCH is used for data. Change-Id: I6c912e17d8c8d4178096679a541e61eeeb4b6643
2017-07-29BSSGP: Improve logging of received messagesHarald Welte1-39/+73
We now differentiate clearly between messages that a) we don't expect based on our reading of the spec b) we have not implemented yet (but should) c) we do not even know of Also, unify the log string formats and provide BVCI whenever possible. Change-Id: Ie32f5771d49960547ec5d7611f96a74facc1b035
2017-07-29Remove #warnings that have been adressed since 2015Harald Welte1-2/+0
In commit 939904672961fa7e28397e27f942a7d1fff4bbdf the lookup by TLLI, TLLI-OLD and IMSI has been implemented, but the corresponding compile-time warning was never removed. Change-Id: I7a1767bc7cab01048e851fd4e63112bc676d6c78
2017-07-28BSSGP: Use libosmocore for BVC-RESETMax1-5/+22
Implement proper BVC RESET procedure by using libosmocore code to handle BVCI reset and initiate PTP BVC reset if necessary. Requires I9bf8f4dd784ccddbb9926492a85fff3293a0e913 in libosmocore. Related: OS#1638 Change-Id: I718c949759688cb34ce6bcbb3da2092fcdfa6989
2017-07-21Introduce GSMTAP categoriesHarald Welte7-48/+182
When looking at GSMTAP output so far, one is easily overwhelmed by way too much information being presented. A lot of is consists of DUMMY frames, which are probably of lowest interest, ever. A concept similar to the "gsmtap-sapi" of OsmoBTS is introduced, by which the user can configure which particular categories (uplink or downlink control or data, gprs or egprs, ...) he actually wants to see in his logs. Change-Id: I297183690e98a7234dfc1608c18847d8981306e4
2017-07-12check for missing result of rate_ctr_group_alloc()Harald Welte2-0/+26
In case the counter group allocation fails, we must handle this gracefully and fail the allocation of the parent object, too. Change-Id: Id6d780c67b4af15aaa5c6f2b8b00f2a0b70a7385 Related: OS#2361
2017-07-10jenkins.sh: Proper error message if local environment isn't set upHarald Welte1-0/+7
Change-Id: Ibd24ba6024714f3d7aac14ef661acf52de2a3825
2017-07-10Remove TBF knowledge from rcv_control*dl_ack_nackMax3-22/+34
Do not access TBF internals directly from rcv_control*dl_ack_nack() - wrap corresponding code into TBF-DL method. Change-Id: I3d1b5782001e45617b4a960612fcfc249904b37c Related: OS#1539
2017-07-10Ignore test binaries using maskMax1-9/+2
Change-Id: Ic7930c6e715447e91572f7ed6b0d2bb2238cf367
2017-07-03Copy sysmopcu.service to osmo-pcuMax2-0/+18
This way the name of systemd service file will match the name of the binary similar to OsmoBTS. Add aliases so the user can use both old and new names regardless of which file is installed. Once the corresponding changes to OE recipes are applied old file can be removed. Based on work by Pau Espin Pedrol <pespin@sysmocom.de> Change-Id: I2ca6f6c486bd6fcf4d5b3d0a05d25dc04f020c26
2017-06-26Remove comment warningMax1-3/+2
It's unclear why the warning was placed next to commented log statement to begin with, so let's just follow that warning's advice and drop it. Change-Id: I3ef7a45d015a28fdadf75f97294bc5d4f825b8ae
2017-06-22lc15: use environment for firmware versionMax1-1/+1
This allows to specify firmware version to use by jenkins builder via environment variable. If environment variable does not exist than default master branch is used. Change-Id: If8b249aa00270e60a0449f089a16823976e54d54 Related: SYS#3683
2017-06-22tests: remove unused definitionMax1-16/+0
Fix compilation warning. Change-Id: I1c95c6ec8bee68773643f9646b0319a83fbc6cfa
2017-06-19lc15: use generic L1 headers helperMax1-7/+9
* use generic L1 headers helper for both sysmocom-dsp and lc15bts-phy options * use sh instead of bash Related: SYS#3683 Change-Id: I3dc621731f47650cbc15a5f17b9e899e9ed2770f
2017-06-11use tlvp_val16be() rather than manual pointer-cast + ntohs()Harald Welte1-4/+2
Change-Id: Ib77cb703bb1710da396db3a939700515b5c20235
2017-06-11lc15: further fixes regarding --with-litecell15Harald Welte2-5/+5
The fix in 0fb294a8dd45a86b8f9eb93211b69b6dbf0a6853 was only partially valid, as it unconditionally used $includedir, without any prefix. This polluted the include path with host include files in cross-compiling builds. Let's take a different approach and simply define LITECELL15_CFLAGS (similar to what pkgconfig does), which makes the "-I" go away if no --with-litecell15 has been specified. Change-Id: I63393decfe42a24dab56c7654f716c1580416ab2
2017-06-11lc15: fix configure.ac variable substitution causing compile errorHarald Welte1-1/+1
When "--enable-lc15bts-phy" is passed to './configure' without specifying an explicit header file path using "--with-litecell15=", we ended up generating an empty string as LITECELL15_INCDIR and rendered something like "-DENABLE_DIRECT_PHY -I -I../../git/src/osmo-bts-litecell15" as part of the compiler invocation, where the -I with no argument will hide the second -I, as the second one is supposed to be the optarg for the first include. This in turn made the "#include <lc15_l1_if.h>" fail, when using separate source and build directories. This patch fixes the configur script to use $includedir, rather than the non-existant $incdir as default for LITECELL15_INCDIR Change-Id: I483e62f8331e7867a92f8055c4d450fdd5288cb6
2017-05-26Cleanup FN schedulingMax8-53/+48
* replace magic number with defined constant * move copy-pasted code to inline functions * remove unused code Change-Id: I6fee0714453d0c3c3f3f875f88daea2d9c477331 Related: OS#1524
2017-05-25Fix format string error (string needs %s)Harald Welte1-1/+2
In a49475b5a822773ce10e28bf5a02e91de78bd063 we introduce the use of bssgp_pdu_str() and change from printing the numeric code to the stringified version of the message code. However, the format string was not updated accordingly :/ Change-Id: I7173b692fb1f222aab44cd4f44a482038d0f51dc Fixes: Coverity CID 169684
2017-05-24Fix typo in loggingMax1-1/+1
DL-TBD was errorneously printed as UL-TBF. Change-Id: I94a224c0339a062e4c8d5aa6c4c858f3f0298a0d
2017-05-23Print human-readable BSSGP PDU typeMax1-8/+9
Change-Id: Ief4b5ce4e4020edaf771eaa24f4382ec368dd18c
2017-05-15remove pcu own bitvector implementationAlexander Couzens18-645/+475
The osmocore bitvec is exact the same, but use a pointer instead of a reference. Change-Id: Id8f797631d89aa12b6e48efb2dc153a3e2f059f7
2017-05-15fix PACCH paging: don't return early in case of NULL TBFNeels Hofmeyr1-7/+8
Commit b78a4a6dfef217c538d45949a6ae725e22a36b05 tried to fix a NULL dereference error, but apparently was overly eager to return, because it looked like all code paths would dereference the tbf. In fact the code path further above, for msg != NULL, has "always" dereferenced the tbf, but the lower code path, the one effecting the paging, has only started to dereference tbf since shortly before the overly eager fix: in da7250ad2c1cd5ddc7d3c6e10435a00b357ef8f7, to "update the dl ctrl msg counter for ms". It seems that this tbf dereference in the paging path is bogus and the cause for the segfault that made me write the early exit fix. Fix that fix: Do not exit early if tbf == NULL, stay in there to be able to reach the paging path below. In case of a message to be sent, assume that tbf is present, and verify: print an error message and abort if there is a msg but no tbf, so that we will see the error if I'm wrong there. If a tbf is missing, free the msg. In case of no message, go on to send pending pagings, but do not attempt to count ctrl messages for a tbf -- IIUC there will never be a tbf if we're paging. This should avoid segfaults while keeping PACCH paging intact. Tweak a comment for and add a blank line above the paging section. Related: OS#2176 CID#158969 Change-Id: Ib79f4a945e211a13ac7d1e511cc37b0940ac6202
2017-05-01tbf.cpp: use new tlli instead of old tlliAlexander Couzens2-3/+3
The old tlli might be 0x00000000. Change-Id: I2fd6fec022506e203d05e91c36ccd9e020ff816c
2017-03-27bitcomp test: use expected rc instead of 'verify' flagNeels Hofmeyr2-41/+51
The 'verify' flag is useless, we always want to verify everything. Replace 'verify' with 'expect_rc', expecting a specific decoding result per test set. When an error code was returned, cut short the loop and skip printing expected vs. decoded bits. This uncovers the fact that the first test marked as "invalid inputs" does not seem to be invalid after all, or at least does not produce an error to be returned. For now, only uncover this fact, the fix shall be submitted later. Change-Id: Icf815a8f1acb0e275463408450171df046879847
2017-03-27bitcomp test: fix: also verify bits after decoded dataNeels Hofmeyr2-16/+5
Before this, the expected data had seemingly random bits set after the end of the expected decoding result. Make the test expect these extra bits as zero, matching with the buffer initialization to zero. In result_matches(), compare the full length of bytes instead of masking the bits after the end of the decoded data (which caused us to not catch the wrong expectation until now). This fixes the underlying issues found in http://lists.osmocom.org/pipermail/osmocom-net-gprs/2017-March/000876.html [osmo-pcu 0.2.896-0a8f] testsuite: 4 failed from: Arnaud ZANETTI on: Fri Mar 24 09:53:53 UTC 2017 Change-Id: I2501208e2f8b4f709efbcadbd1057c086472c9e6
2017-03-27bitcomp test: fix: only one hexdump per log; use printfNeels Hofmeyr2-19/+17
The test wants to write multiline results, so it should use printf instead of the logging system. Split logs to only one hexdump per printf(). One cannot use osmo_hexdump twice in one printf(); before this, one of the two hexdumps won, both dumps would show as the same. Very bad for a regression test! This uncovers a discrepancy between expected and produced results, proving that the expected stderr output was not capable of uncovering test failures. The test's check_result() function *has* always verified the decoded data, but only up to the last decoded bit. Our expected data contains seemingly random bits after the end of the decoded bits, but check_result() never compares those, hence we don't catch that error. The extra bits should definitely be zero, because the destination buffer is pre-initialized to zero -- fixed in a subsequent patch. This should cosmetically fix the build failure found in: http://lists.osmocom.org/pipermail/osmocom-net-gprs/2017-March/000876.html [osmo-pcu 0.2.896-0a8f] testsuite: 4 failed from: Arnaud ZANETTI on: Fri Mar 24 09:53:53 UTC 2017 The real fix will follow. Change-Id: I24fc32eb55baaf22f9c6fdda917bfb8395d02b1c
2017-03-27cosmetic: BitcompTest: make readableNeels Hofmeyr1-37/+45
In order to understand what the bitcomp test is logging, cosmetically rearrange the code: - memset bits_data before assigning to destination bitvec. - use macro CEIL_DIV_8 to clarify what (x+7)/8 does. - rename check_result() to result_matches() and return a bool, also constify result_matches() args and pass a bitvec reference instead of copying the bitvec struct. - rearrange logging lines to make readable what is going on there. - drop unused 'init_flag' There are obviously errors like double hexdumps per log line, multiple newlines in a LOGP statement and so forth: these shall be fixed by subsequent patches. Change-Id: Id0da9d9b67f4713d3a67e3532ed44b8cb1bd1d08