Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: Ia1da9f005b7f801872c542d31cc8eabd859d997a
|
|
Change-Id: Id1ad279ce9bef38eb3d11ac62337276207e8d8bd
|
|
Change-Id: I940d220a399166122f33e67a222dd572085e1401
|
|
Ubsan complains about shifts into the sign bit due to automatic int
promotion, so cast explicitly.
Change-Id: I6387c7313832f6c7c920e1016b74562b66d6b68e
Related: OS#4029
|
|
Change-Id: Iae4332cd3b87f37164655d3df16554de4876159d
Closes: CID#188855
|
|
Change-Id: I381618eb55cc513cfa9c2e384c27cead0935c8bf
|
|
Change-Id: Iec5c65776fc54b2f9e5dd55c711ace2471662db1
|
|
The recent versions of OsmoBTS do provide the following measurements:
- RSSI (Received Signal Strength Indication),
- ToA (Timing of Arrival),
- BER (Bit Error Rate),
as well as C/I (Carrier-to-Interference ratio) since [1] (OS#4006).
[1] https://gerrit.osmocom.org/r/Ia58043bd2381a4d34d604522e02899ae64ee0d26
Change-Id: I0fd6c35e8cf0b1314f4e3c336b233b5f7e42dfc6
Related: OS#1855
|
|
In most cases the length field was present and this field takes 7
bits of the maximum available 110 rest bits.
The length field was only removed when encoding huge bitmaps usually
only happen on lossy connections with packet lost.
However the cases without length field were encoded incorrect,
because all remaining bits must be used by the uncompressed bitmaps,
but the PCU violates this by encoding always the "release 5" bit.
Rather than fixing the encoding without length field, simply remove it
and always encode with length field. This also reduces the code
complexity.
Change-Id: I7bc2e18d647b72b8f17ba7a5c9c5e421d88275fb
|
|
Related: OS#3047
Change-Id: I733df8f8bfaf448a6507c9c9d75d2f076fedb342
|
|
The ESN, SSN and uncompress bitmap len are uint16_t. The Window is using uint16_t in
function arguments and return values. Don't do so many integer conversions.
Change-Id: If62fa09d7bfa8e91ce707824f7019edb1b83da9e
|
|
Found by Asan
Relates: OS#4029
Change-Id: I21640e40e689016d6fb80a8db4257b22e85b303b
|
|
The rest_bits are never read after calling this function nor are rest_bits
updated properly.
Change-Id: Ic350b0365b125638a6c752f692bef981ad6b9d89
|
|
search_runlen() must know the exact size in bits when parsing
the bits otherwise it read over the buffer.
Fixes testcase #7 which was wrongly decoded.
Change-Id: Ie34a0651e7e7efea4e9ecff1e3a467588113cf47
|
|
The bts is not used at all.
Change-Id: Ia07755e825913a16352ab13f6cf55f2918de8681
|
|
The i value will only count forward and is limited to 11 bit. The integer is also
converted when returning to uint16_t
Change-Id: Ib8a9081bbcb8b4344498254c58941002d17f9381
|
|
Change-Id: I02c6b2655df54ca40717ce7609013d0bc54eabdf
|
|
The testcase is showing the compressed rbb.
Change-Id: Ie7a2b31e305dffb2776698d1bc8e80d6a435c135
|
|
Related: OS#1700
Change-Id: I4a5da9b2b1caa625754383b0f9a180e7503bc60e
|
|
Change-Id: Iff570e85828c87d69a7a49a00d9459094077ca30
Related: OS#1700
|
|
Change-Id: I43a5acc2dda4ba567ada9846880e31c85bc98394
|
|
Change-Id: Ifff9526b15bfda7a0f85c92bcb0d3fabab61ca32
|
|
The last bits of the CRBB (compressed receive block bitmap) was incorrect
encoded when the CRBB is not byte aligned.
Related: OS#3728
Change-Id: I7261aa71b37d7ead52992f8db462f72a3804988e
|
|
The instance bssgp_nsi is a global instance to be used by all
NS related functions. Previous the PCU allocated and initialized
the bssgp_nsi instance when (re-)connecting and freeing on disconnect.
The problem of the implicit initialisation is gprs_ns_vty_init(bssgp_nsi).
All vty init functions must be called before the configuration is read,
otherwise a previous vty written configuration is invalid.
Furthermore the vty modifications to the `ns` object were lost when the PCU has to
reconnect to the SGSN.
Fixes: OS#4024
Change-Id: I2aa53ea54e9352577f6280ad7b9d1d9da9f57eaf
|
|
I have verified, that the resulting debian packages build in my own OBS
namespace (see the -doc packages):
https://download.opensuse.org/repositories/home:/osmith42/Debian_9.0/all/
https://build.opensuse.org/project/show/home:osmith42
Depends: Ib7251cca9116151e473798879375cd5eb48ff3ad (osmo-ci)
Related: OS#3899
Change-Id: I9f2e7cfd93ee0b13d064c606a20378c1ea01400e
|
|
rename the function sgsn_ns_cb -> gprs_bssgp_ns_cb.
To allow writing and reading the same configuration, the pcu needs to register
all vty commands before reading the configuration. This callback
is required to register NS based vty commands
Related: OS#4024
Change-Id: I440c0df2e32fe22bf43288c00bb4aa3a0c6a3a51
|
|
Right now set_mode() on GprsMs behaves in pretty counter-intuitive way:
* it's possible to set current DL MCS higher than max value
* EGPRS and EGPRS_GMSK have the same max DL MCS
* setting EGPRS* mode drops current/max MCS values to unknown
Let's capture this in a unit-test before attempting any further
modifications.
Change-Id: Ibf917f4b49d927a21cbd467775806fa6ea06a6a6
|
|
Change-Id: If4ecf9be5a0739bb54aedb077eda51ad091b4c3f
|
|
It's used several time for logging so let's call it once to make code
easier to follow.
Change-Id: Icfd9e5603a5d8701f487f17e9c0335d458e9e80b
|
|
In 3GPP TS 44.060 the selection of MCS for retransmissions is defined as
separate tables (8.1.1.1 and 8.1.1.2) depending on the value of
resegmentation bit (which is opposite to the way EGPRS_ARQ are defined
in the source code). Let's follow the same idea and explicitly check for
resegmentation bit value and use separate tables. This also makes it
easier to add proper support for special cases (MCS-6-9 and MCS-5-7) and
padding in future independently for different ARQ types. The code is
also moved to c to avoid unnecessary conversions to and from cpp class.
Change-Id: Ia73baeefee7a58834f0fc50e3b8bf8d5e3eb7815
|
|
Add vty commands to show only TBFs allocated via PACCH or CCCH.
Change-Id: I80f8df4fe663a0346f4289a4220b761e39726312
Related: OS#1759
|
|
* restructure code for easier reading
* use consistent formatting for output
* log essential allocation parameters on failure
Change-Id: I4b78951a79ddbc0745b39d091080a4e0e247d3c5
Related: OS#2282
|
|
Related: OS#3749, SYS#4524
Change-Id: I014e5e59bc5e904a616ddf50ebfb8247f0d428cf
|
|
Change-Id: I95ced5da1c89dae5a16963b10b005747277f320b
|
|
Don't try to send custom alarms that weren't included in upstream.
Change-Id: I51de826aa732a3875d75396b46b7d2821ef7417c
|
|
From-Commit: 960aa3d1b0b1
From-Remote: https://gitlab.com/nrw_noa/osmo-pcu
Change-Id: Ia526f712b95eb7bba99252f2a348d9fb5d2f3838
|
|
Problem:
TA provided from L1 PH-DATA-IND is a relative amount of TA adjustment to actual TA
being used for given TBF. The current TA update algorithm in PCU simply applies the relative
amount of TA to given TBF but does not take into account of current TA.
As a result, the PCU will request wrong TA jump for given TBF if the MS is moving away from
BTS more than 2 km.
Related issue: http://osmocom.org/issues/2611
Fixes:
- The PCU needs increase or decrease current TA of given TBF on receiving of relative
amount of TA adjustment provided by PH-DATA-IND from L1.
- The PCU needs to set absolute TA of given TBF on receiving absolute TA provided by
PH-RA-IND from L1.
From-Commit: 139ad3f42193
From-Remote: https://gitlab.com/nrw_noa/osmo-pcu
Change-Id: I7665586dd5722bbe04632ee5673d3033bc082324
|
|
From-Commit: a9eefb54c62a
From-Remote: https://gitlab.com/nrw_noa/osmo-pcu
Change-Id: Ida0592c9da74588a57d9d2d5be40fcf79edcb596
|
|
From-Commit: b77fd00608dd
From-Remote: https://gitlab.com/nrw_noa/osmo-pcu
Change-Id: I7cd89a549c9463e81893ca7dd925299f728e4453
|
|
Write initial bits of 3GPP TS 44.018 §10.5.2.16 IA Rest Octets the same
way as write_ia_rest_*() routines do.
This should also fix the issue addressed in
I75dd5bebc74eea85edf9582607c774d0bba0d2a6 initially by properly encoding
L/H bits.
Change-Id: I7ed5270bf95c3f6e9e026ff447eef8539f6f0314
|
|
* use enum values where appropriate
* reformat to proper code style to improve readability
Change-Id: If1d2bc69b0d43fc520e579457007704b7975117e
|
|
* use enum CodingScheme directly instead of converting it to class and
back
* drop useless mode check
* log errorneous update attempt
Change-Id: I763136c2f356d63aa3d28d09c57fd5faf5336258
|
|
Write TAI (if available) when generating Rest Octets for UL
Assignment. This should not affect actual PCU behavior because TAI is
not yet supported by upper layers but we have to adjust corresponding
tests anyway.
That's updated version of reverted commit.
Change-Id: I69407793bdb863be5fc42adadf75842d22f27335
Related: OS#3014
|
|
Use bitvec_set_*() directly without external write pointer tracking to
simplify the code. This is part of IA Rest Octets (3GPP TS 44.018
§10.5.2.16) which is the last part of the message so it should not
interfere with the rest of encoding functions.
The difference in the expected test output is due to proper handling of
TAI which should not be transmitted for SBA according to the Note in
Table 10.5.2.16.1 in 3GPP TS 44.018.
The change was manually tested against real mobile phone using options
'gprs mode gprs' in osmo-bsc.cfg and 'two-phase-access' in osmo-pcu.cfg
to make sure appropriate code path is actually triggered.
That's partially based on reverted commit 93d947f5e8a30acc9250c124bf9d5bb6a8863526.
Change-Id: I97d53c27c1ca9e032d431b3aa7f915027d63ddc0
Related: OS#3014
|
|
Use bitvec_set_*() directly without external write pointer tracking to
simplify the code. This is part of IA Rest Octets (3GPP TS 44.018
§10.5.2.16) which is the last part of the message so it should not
interfere with the rest of encoding functions.
That's partially based on reverted commit 93d947f5e8a30acc9250c124bf9d5bb6a8863526.
Change-Id: Ibe294b26ac374b9264a734db9663cacc105a4474
Related: OS#3014
|
|
Previously result of ".to_num() - 1" was used without any checks which
means that in case of to_num() returning zero we would effectively try
to encode (uint8_t)(-1).
Let's fix this by using proper mcs_chan_code() function which returns
Channel Coding Command for MCS without the need to further correct it
and adjust expected tests output accordingly.
Change-Id: I868062a81fffe6714a811c032215f25a79259905
|
|
Add function to encode MCS value as proper EDGE or GPRS Channel Coding
value according to 3GPP TS 44.060 and corresponding helpers.
Use it for everything except IA Rest Octet encoding which is done in a
follow-up patches to make sure that we distinguish between
encoding-related changes to test output and unrelated changes.
Change-Id: I127fb29f5aaf77a7f6c4c565dfeb3b711af9845d
|
|
This is a much safe way, it allows for modifications of the debug
subsystem enum member values without breakage. Also, the syntax
introduced here is what we do in all other Osmocom CNI projects.
Change-Id: I2be88586ca44b0b8361f96cf3c034c8459244c2c
|
|
As specified in 3GPP TS 03.60 Section 16.2.1 and 44.018 Section 3.4.15,
a Class B MS is sending a "RR GPRS SUSPEND REQ" via a DCCH to the BTS if
it wants to suspend GPRS services. As of
Change-Id I3c1af662c8f0d3d22da200638480f6ef05c3ed1f, OsmoBTS forwards
this via the PCU socket, so we need to pick it up and send it via BSSGP
to the SGSN.
Change-Id: I7b4beb413a6f974373a404b5a11c44d86ba695d3
Closes: OS#2249
|
|
In Change-Id I787fed84a7b613158a5618dd5cffafe4e4927234 in February 2018
we accidentially introduced a change that would erroneously swap
the endianness of the CellID on the way between PCUIF socket and
BSGSP. This meant that all OsmoPCU based BTSs would report the
wrong CellId to the SGSN.
Closes: OS#3854
Change-Id: I2f6cc930c5dbf8dac386b24b0756df2efe8199e4
|