Commit Graph

2440 Commits

Author SHA1 Message Date
Pau Espin 75727403bf doc: Introduce code architecture section with main class diagram
This is useful to understand the data model in a quick gasp.

Change-Id: Ibf6dd6f7e4d6370ad40733820faa70f9e5bc0e7d
2024-04-12 21:53:02 +02:00
Pau Espin f0a654cc46 tbf_ul.h: Mark empty param list as void
While at it, fix wrong whitespace indentation in one of the lines.

Change-Id: I2a9213a9fdbe0f4b70d820c449dbb71539a733ce
2024-04-12 17:50:14 +02:00
Pau Espin d93f051b14 tbf.h: Fix wrong type declaration of field dl_ass_fsm
The typo was harmless since as of now the two structs where identical.

Change-Id: Ibbc59a0584ee0cd83de0e04eebdcca2aebe3e970
2024-04-12 17:13:10 +02:00
Pau Espin eeeaa072a6 bts: Drop no-longer existing GprsMsStorage reference
This struct was removed (merged into gprs_rlcmac_bts) in commit

Change-Id: I2047588b1c187c842007fcb1eab0e8e4b7d7ed10
2024-04-12 14:44:53 +02:00
Pau Espin 1e4519e77a Remove 'multi-slot ul tbf' line from 'Current Limitations'
This feature was implemented in commit
ed2afa3bed, ~3 years ago.

Change-Id: I9abe54f280ab4e62c0c5220d010575b912c8c141
2024-04-12 14:05:59 +02:00
Pau Espin d76e3a3427 Make sure GprsMs free() also frees its tbfs
This fixes TBF objects leaking and ending up alive when the MS object is
explicitly freed through talloc_free (and sporadically
crashing TbfTest once a timeout for them occur).

This mostly affects unit tests, where most of the explicit free()
In osmo-pcu, in general, the GprsMs object only gets _free() called when
its resource count reaches 0, aka no more TBFs are attached to it. Hence
in general GprsMs object is freed() only when no TBFs (to be leaked) are
However, in the unit tests it's usual that we want to wipe the entire
context by eg. feeing the PCU, the BTS or MS object, which should also
free the related TBFs.

When running osmo-pcu this may only be an issue when the MS object is
freed explicitly, which could happen for instance when a BTS is torn down,
ie. PCUIF going down, moment at which all GprsMs of that BTS are freed.
But in there actually it iterates over PDCHs to free all TBFs, so it's
If we iterated over MS, this could have ended up in a crash, like
it happened in TbfTest sporadically, but it's not a bit problem if we
crash + restart at that time since anyway the BTS is gone ore just
getting up around that time.

Related: OS#6359
Change-Id: Ibbdec94acb8132be20508d3178d88da44bfaf91d
2024-03-25 21:09:25 +01:00
Pau Espin 5eb7699b6d cosmetic: TbfTest: fix typo in comment
Change-Id: I35bb28c5669747823b0dfebe27ecd7a5a0c5d60f
2024-03-25 18:38:57 +01:00
Harald Welte 2262916e0c doc: Mention the `gb-dialect` vty option, as it is quite essential
We should have introduced this documentation snipped years ago, when
first introducing IP-SNS support in libosmogb/osmo-pcu.

Change-Id: I83709b7231c2a3930e1b3f09b737319fb7d7e741
2024-03-09 20:00:13 +01:00
Harald Welte 874aac5953 fix license headers
I'm not sure why some files did contain an AGPLv3+ header, instead of
the GPLv2+ which is the actual overall project license.  I consider it a

In any case, any copyrightable contribution to those files was done by
sysmocom employees, so I as managing directory can legally make a
license change, whther or not it was a mistake early on or not.

The only  remaining AGPLv3+ files are those implementing the "direct
PHY" interface for osmo-bts-{symo,lc15,oc2g}.  That is als
unintentional, but more complex to resolve as they were copied from
osmo-bts, which is indeed an AGPLv3+ project.

Change-Id: I52533193de0ec7e24bf7c5bb035589ba5b9419e4
2024-02-17 10:35:54 +01:00
Pau Espin 0f0cc4477c tbf_ul_fsm: Fix wrong cast
Change-Id: I6c68e85cfa7ca8d08ed7c851e31831c30772012e
2024-02-13 10:55:25 +01:00
Oliver Smith b04e1d7d0c Revert "Revert "pdch_ul_controller: migrate from fn_cmp() to gsm0502_fncmp()""
Now that 1.4.0 is released, bring back the patch that was temporarily
reverted to avoid the need for a new libosmocore.

This reverts commit 16729ba727.

Change-Id: Idd113e328a693df2e8f2f5d172eaf5bf2bfcf009
2023-12-12 16:59:03 +01:00
Oliver Smith 5c227e7f1e Bump version: → 1.4.0
Change-Id: I5b4efbffc6cf056a1e6865d077da4c7870a7e375
2023-12-12 16:58:20 +01:00
Oliver Smith 16729ba727 Revert "pdch_ul_controller: migrate from fn_cmp() to gsm0502_fncmp()"
In preparation for an 1.4.0 osmo-pcu release that should not require a
new libosmocore, revert this patch.

This reverts commit a155fe85de.

Change-Id: I714efdc9c9403d3ff74e18df1629e2de6876e9d7
2023-12-12 16:57:58 +01:00
Philipp Maier 41bb800e3e bts: rename struct member gen_idle_blocks to gen_idle_blocks_C0
The struct member gen_idle_blocks controls whether the the PCU has to
generate dummy blocks to fill idle periods or if this task is left to
the BTS hardware.

Since idle dummy blocks only have to be transmitted on the C0 carrier,
we should rename the gen_idle_blocks struct member to

Related: OS#6198
Change-Id: If9511ed911f9c5d6d463881a387a9e7d11a15465
2023-12-05 14:12:37 +01:00
Andreas Eversberg 13fa09d46d Use uniform log format for default config files
Related: OS#6272
Change-Id: I0d0042aa37da887afa0e9a5060cfbacaec23ed0a
2023-12-01 12:14:14 +01:00
Philipp Maier 469584f136 gprs_rlcmac_sched: fix condition for generating dummy blocks on idle
When a PDCH is idle, then the gaps are filled with dummy blocks. OsmoPCU
supports generating the dummy blocks locally, so that a continous stream of
PDCH blocks is sent to L1. However, some BTS models (the OsmoTRX based models
in particular) are able to generate the idle blocks locally. In this case the
PCU should leave the genration of the dummy blocks to the BTS in order to
save processing time and load on the PCUIF interface.

In gprs_rlcmac_sched we already have a flag to skip idle frames in case we do
not use the so called "direct phy access". A similar mechanism also exists in
pcu_l1_if.cpp in function pcu_rx_rts_req_ptcch().

Unfortunately this check is not implemented correctly. The flag gets set when
the ENABLE_DIRECT_PHY define constant is set. However, this does not say
anything about whether the BTS model supports the generation of idle blocks or
not. The define constant is intended to be used to disable direct phy related
code in on platforms where no direct phy code is used or cannot be used. We
must instead check the BTS model (bts->bts_model) in order to decide whether
this particular BTS type requires the generation of dummy blocks or not.

Related: OS#6191
Change-Id: I7a08d8cc670fa14f7206ffffdbc22351f3668a17
2023-11-24 14:18:51 +01:00
Philipp Maier 26dca56db7 pcu_l1_if: signal BTS model via PCUIF
At the moment the PCU has no way of knowing with which BTS model it is
used with. However, some BTS models may require slightly different
behaviour by the PCU, depending on which BTS model is used. So, lets add
an additional bts_model field to struct gsm_pcu_if_info_ind in order to
convey the exact BTS model to the PCU and store this information in
struct gprs_rlcmac_bts

Related: OS#6191
Change-Id: I48eb75f65ab54fdec41ef913e24c1f18cd4a4047
2023-11-21 09:17:14 +00:00
Keith Whyte c25f4fb9c9 TBF status: Fix VTY output text
The vty command 'show bts pdch' had the UL and DL TBF count reversed.
This patch corrects that.

Change-Id: Ic906ca9d02811cb96e4530af43fbc3769f6afce7
2023-11-11 21:17:57 -06:00
Philipp Maier 46140948d9 pcuif_proto: drop support for PCUIF v10
We now use PCUIF v11 in the TTCN3 tests exclusively and also osmo-bts
and osmo-bsc only support PCUIF v11. There is no longer a need to
maintain a backward compatibility to PCUIF v10 in osmo-pcu.

Related: OS#5927
Change-Id: I68a3f59d5c960ae3a4fbd74f9d4a894295cb9ed8
2023-10-23 11:46:13 +02:00
Andreas Eversberg 952f5c7b95 Increase RR scheduler priority to 20, to avoid dropped bursts
This has been fixed in osmo-bts too.

If frames are not deliverd fast enough to the DSP, bursts will get
dropped. The osmo-bts-sysmo process must have priority over other
processes, so it can deliver frames fast enough.

Related: OS#6199
Change-Id: Ifa2c36bc0975e89d21b6fb2fc49db6077e5207da
2023-10-09 13:11:36 +02:00
Philipp Maier 8caa915c46 pcuif_proto: rename PCU_IF_FLAG_SYSMO to PCU_IF_FLAG_DIRECT_PHY
The PCUIF flag PCU_IF_FLAG_SYSMO was originally used by osmo-bts-sysmo
to signal to the PCU that the direct PHY access for the sysmo-bts DSP
should be enabled. With time, support for other BTS models was added and
the flag became a synonym for "direct PHY access", so it makes sense to
rename it to "PCU_IF_FLAG_DIRECT_PHY"

Related: OS#6191
Change-Id: I29b7b78a3a91d062b9ea3cd72623d30618cd3f0b
2023-09-29 14:49:49 +02:00
Oliver Smith 24a2ac99d4 systemd: remove RestartPreventExitStatus=1
Fix OsmoPCU not restarting if e.g. an external gsmtap IP is configured
that is currently not available. Also make the service files more
consistent with other Osmocom projects.

Revert f81e2f76 ("systemd: Do not re-start in case of exit(1) (e.g. a
config issue)").

Related: SYS#6581
Change-Id: I061206a6f61abddfa698a4ce809afcbdf0cbce9c
2023-09-27 12:11:59 +00:00
Vadim Yanitskiy 30a7d26c83 bts: bts_tfi_find_free(): fix -Wmaybe-uninitialized (false positive)
We cannot see how uninitialized access is possible, but gcc v13.2.1
does complain about it.  Let's work this around by assigning an
invalid value, like trx_count_free_tfi() does.

src/bts.cpp: In function 'int bts_tfi_find_free(const gprs_rlcmac_bts*,
						uint8_t*, int8_t)':
warning: 'tmp_first_tfi' may be used uninitialized [-Wmaybe-uninitialized]

Change-Id: Ia446cdf573ee25e6da6b4aa917972c63472229bb
Fixes: OS#6190
2023-09-26 20:43:53 +07:00
Vadim Yanitskiy a155fe85de pdch_ul_controller: migrate from fn_cmp() to gsm0502_fncmp()
This function is also needed in osmocom-bb.git, so it becomes
a library function (part of libosmogsm).

Change-Id: I6a8502c2b2015ca7d0452ab9f5da0484a03ce91e
Depends: libosmocore.git I9590f2e836fc48650decf1564b6ab46306c4fe2d
Depends: libosmocore.git Ie8bb9c49c6f81b8f4a1766547d6943f9880d1186
2023-09-26 20:33:37 +07:00
Pau Espin c1b0a37610 tbf: Log poll timeout reason
Change-Id: Ie0339b55e6d617a3e788972c3b226eef64124d2b
2023-09-15 10:04:30 +00:00
Pau Espin 9658f02214 Bump version: → 1.3.1
Change-Id: I7fe48ac3176f9d48660260fb268ee22eedc78d1a
2023-09-15 11:33:49 +02:00
Pau Espin 09dc6b21e2 tbf_dl_fsm: Fix assert hit due to EV_MAX_N3105 received in ST_RELEASING
That code path was incorrectly removed a few commits back, re-add it.

Fixes: 40a297f3b0
Change-Id: I27e61dc4b3396360327dcd377d171daa30684d23
2023-09-15 00:06:57 +02:00
Pau Espin 3ef173b980 Bump version: → 1.3.0
Change-Id: I1b6c967fd93fab1ff1751bf0c2802abdf0cd835a
2023-09-12 16:00:30 +02:00
Philipp Maier 35a7824658 pcuif_sock: improve log output (OsmoBTS/OsmoBSC)
When printing the PCUIF protocol version, we only mention OsmoBTS, but
since OsmoPCU can also be used in co-location with OsmoBSC, we should
also mention OsmoBSC here. Let's write "OsmoBTS/OsmoBSC"

Related: OS#5927
Change-Id: Ibe49064d04dff0617357e3e0b00fea961b657784
2023-09-01 11:53:49 +02:00
Philipp Maier b52e843136 osmobts_sock: cosmetic: rename osmobts_sock.c to pcuif_sock.c
since OsmoPCU is no longer exclusively used in co-location to OsmoBTS
the module osmobts_sock (PCUIF) should get a more generic name.

Related: OS#5927
Change-Id: Ic7f6246265fa31be189e4aea36dfaa89bd0eeddd
2023-09-01 11:48:12 +02:00
Philipp Maier 06b50c57a1 pcu_l1_if: add support for PCU_IF_SAPI_AGCH_2 for PCUIF v.11
When a downlink IMMEDIATE ASSIGNMENT message is sent through the PCH,
an IMSI is always required in order to be able to calculate the paging
group. However, when the downlink IMMEDIATE ASSIGNMENT has to be sent
before the MS has completed the GMM ATTACH REQUEST, the IMSI is still
unknown. In this case we may assume that the MS is still in non-DRX
mode, which means it listens on all CCCH blocks (PCH and AGCH).

This means we may send the IMMEDIATE ASSIGNMENT through the AGCH in this
situation. This will also have the advantage that the scheduling through
the AGCH will have less latency than the paging queue.

Unfortunately the SAPI PCU_IF_SAPI_AGCH only supports sending whole MAC
blocks, so it won't be possible to attach a TLLI that can be used for
confirmation. To fix this, let's add a new SAPI_PCUI_IF_AGCH_2, that
works similar as SAPI PCU_IF_SAPI_PCH_2 and use it to send the

CAUTION: This patch breaks compatibility with current master osmo-bts
and osmo-bsc (see "Depends")

Related: OS#5927
Depends: osmo-bts.git I29858fa20ad8bd0aefe81a5c40ad77a2559a8c10
Change-Id: I9effdcec1da91a6e2e7a7c41f95d3300ad1bb292
2023-08-31 10:03:50 +02:00
Philipp Maier 0e47642e96 pcuif_proto: add confirm flag to struct gsm_pcu_if_pch
At the moment we let OsmoBTS (or OsmoBSC) look into the MAC block we
send and in case it is an IMMEDIATE ASSIGNMENT message, a confirmation
would be sent back. Unfortunately, this method is not very practical,
lets add a flag to struct gsm_pcu_if_pch to tell the receiving end that
the MAC block (data) needs to be confirmed when it is sent.

Related: OS#5927
Change-Id: Ia202862aafc1f0cb6601574ef61eb9155de11f04
2023-08-25 12:27:16 +02:00
Pau Espin 3a6e19ce2b vty: Allow modifying default msclass
Until now, if timeslot resources where being allocated for an MS
whose msclass is not known, msclass=12 was being selected.
While it's true that msclass=12 is quite a usual one implemented by
phones (Rx=4, Rx=4, Sum=5), some MS implementations may not support such
As a result, if the PCU allocates a TBF for an MS which its msclass is
not known (eg. because it used 1-phase access aka no Pkt Res Req), then
a minimal msclass=1 should be assumed. Otherwise, it may assign more
multislots than the MS can handle, and will work incorrectly since an
amount of RLC/MAC blocks won't be sent/received properly.

With the existing code base, changing the default MSCLASS to 1 would,
however, create a worse user experiencie for the vast majority of devices
(which are msclass >= 12). The code should be improved to first use only
1 TS until the MS CLASS is known, and at that point reallocate resources
and re-assign them (eg. RECONFIGURE TBF rlc/mac ctrl blk).

So, for now, simply add a hidden VTY config to allow changing the
default assumed MS Class, so that operators wishing to support all
devices can eg. set it to 1.

Change-Id: If80fdd793db7dad029faa83dbf980ffc4959e2e5
2023-08-23 11:55:59 +00:00
Philipp Maier 245d340006 pcuif_proto: get rid of _DT, _dt (Direct TLLI)
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.

Change-Id: If641b507dcb6b176109c99dce7cff2a7561364b0
Related: OS#5927
2023-08-10 14:57:01 +02:00
Philipp Maier 60664a4df1 pcuif_proto: remove unnecessary members from gsm_pcu_if_data_cnf_dt
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: Id6109264e4144c2ab7b8410d4087705d857cd4c9
Related: OS#5927
2023-08-10 14:56:26 +02:00
Philipp Maier 02ea46eff9 bts: get rid of fn parameter in bts_rcv_imm_ass_cnf
The function bts_rcv_imm_ass_cnf, which processes the confirmation
message from osmo-bts or osmo-bsc has an fn (frame number) parameter.
This parameter not used for anything other than logging. The source of
this frame number parameter is the conformation message that comes from
osmo-pcu or osmo-bsc. In the case of osmo-bsc the frame number is always
0, since osmo-bsc uses RSL and can not know the exact frame numbers.

since we do not really need the frame number for the confirmation, lets
remove the fn parameter entirely.

Related: OS#5927
Change-Id: I35bc99eaec5d0287ae3916bc668f0babaddfd6ce
2023-08-10 14:56:26 +02:00
Philipp Maier fa96a767d1 pcuif_proto: rename tlli to msg_id
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
Change-Id: I4a25039dfe329e68879bc68936e49c4b190625e6
2023-08-10 14:56:24 +02:00
Pau Espin e98b315d12 pcu_l1_if.cpp: Fix gsmtap not sent in PCU_IF_SAPI_PCH_DT
Change-Id: I2cfa0486a3483140ce219b4645e0544e7923870a
2023-07-31 13:08:22 +02:00
Pau Espin 90e33bffd6 cosmetic: Document foce_two_phase feature based on specs
Change-Id: I4f8e3d0dcb721d51838b50aba5b40d0551c8d0c5
2023-07-28 18:03:30 +02:00
Pau Espin 6691f51990 cosmetic: mslot_class.h: Update spec reference
Change-Id: I402a34c62d6714f054e8a3ff9042de3d2cf30727
2023-07-27 21:49:09 +02:00
Pau Espin c1278288b5 gprs_rlc_ul_window: Mark received BSNs falling out of the V(N)/RBB when V(R) is raised
This is a port of libosmo-gprs.git commit 49535bec37caddcea5718ed4e526c477c71f1b3a applied to osmo-pcu.

Problem this patch is fixing:
The current RLCMAC code is never invalidating the BSNs which have
been received after they are not needed.
This is somehow workaround by the following check when eg BSN wraps
around 127->0 and the BSN=0 is received:
		/* Offset to the end of the received window */
		offset_v_r = (m_v_r - 1 - bsn) & mod_sns();
		return m_v_n.is_received(bsn) && offset_v_r < ws();

The first m_v_n_is_received() would return true because the BSN has
never been invalidated, which is wrong, but fortunately the extra check
"offset_v_r < ws()" returns > ws() since:
v_r=0, bsn=0: "(0 - 1 - 0) & 127" ----> 0xffff & 0x007f ---> 0x007f > 64

So thanks to the above the BSN is considered not received, but looking
at the V(N) array would say the opposite. Hence, this commit aims at
fixing the V(N) array to contain proper values (marked "invalid") for
BSNs becoming out of the window when it rolls forward.

Explanation of the solution:
The V(N) array contains the status of the previous WS (64 in GPRS) data
blocks. This array is used to construct the RRB signaled to the peer
during PKT UL ACK/NACK messages together with the SSN (start sequence
number), which in our case is mainly V(R), aka one block higher than the
highest received block in the rx window.
Hence, whenever PKT UL ACK/NACK is transmitted, it contains an RRB
ranging [V(R)-1,...V(R)-WS)] mod SNS (SNS=128 in GPRS).

The receive window is basically [V(Q) <= BSN < V(R)] mod SNS, as is of
size 64.
The V(R) is increased whenever a highest new block arrives which is in the
receive window (guaranteeing it will be increased to at most V(Q)+64.

Since we are only announcing state of blocks from V(R)..V(R)-WS, and
blocks received which are before that BSN are dropped since don't fall
inside the rx window, we can securely mark as invalid those blocks
falling behind V(R)-WS whenever we increase V(R).

Related: OS#6102
Change-Id: I5ef4dcb0c5eac07a892114897f9e4f565b1dcc2c
2023-07-26 17:03:53 +02:00
Pau Espin ff33597e4b Split rlc_{dl_,ul_,}window out of rlc.{h,cpp}
This new structure was already used when porting existing osmo-pcu code
to libosmo-gprs-rlcmac, and proved to be much more clear.
It makes no sense to keep both ul and dl window code mixed, since the
code base is mostly different between them, and the developer usually is
only interested in reading/debugging one side at a time.

Change-Id: If21b6f48ef190a718502389cbfde8cbdfc8d7f7a
2023-07-26 16:55:22 +02:00
Pau Espin 61f64c39a0 gprs_rlc_ul_window: Make sure V(N) array is cleared during reset_state()
Otherwise unit tests (the only real used of that API so far) would end
up with v_r and v_q variables reset, but with previous state in v_n
array, which is not good.

Let's make sure everything is reset in
gprs_rlc_ul_window::reset_state(), and simply call that method during
constructor time.

Change-Id: I007b672527664b05353077b9208722056799f43f
2023-07-25 18:05:50 +02:00
Philipp Maier a1e54e7e27 nacc_fsm: fix uninitialized neigh_key variable
in handle_retrans_pkt_cell_chg_notif, the variable neigh_key is used
uninitialized at end of the function. This has been introduced with
Change I96280f0ec5955ed3cb17641bf4118496c929bdac, where we modified
fill_neigh_key_from_bts_pkt_cell_chg()_not so that it write directly
at the ctx variable. This works in st_initial but not in
handle_retrans_pkt_cell_chg_notif(), so let's have neigh_key and
neigh_key_present as a parameter so that the caller can decide where
the result is stored.

Fixes: CID#322150
Related: OS#6100
Change-Id: I7e74beda03829d909b6542659316241c275a36b3
2023-07-24 13:08:09 +02:00
Philipp Maier 0cde91de1f nacc_fsm: Add support for NACC with UTRAN and E-UTRAN cells
The NACC procedure in OsmoPCU currently only supports NACC with GERAN
cells. When an UTRAN or E-UTRAN cell is proposed in the
PacketCellChangeNotification, then the FSM is immediately terminated,
meaning that the NACC procedure can not commence.

When the NACC procedure is carried out for UTRAN or E-UTRAN cells, the
PCU will not send any system information to the UE. Instead it
immediately sends a PacketCellChangeContinue message. This also means
that we do not carry out any RAN Information Requests in the background.

This patch adds logic to detect if the proprosed cell is an UTRAN or
E-UTRAN cell and the adds a new transition to the FSM so that a short
route to NACC_ST_TX_CELL_CHG_CONTINUE can be taken.

Related: OS#6044
Change-Id: I96280f0ec5955ed3cb17641bf4118496c929bdac
2023-07-18 07:07:59 +00:00
Pau Espin b8f79e85cb pcu_l1_if: Document tx_pch empty IMSI scenario
Related: OS#6097
Change-Id: I327ca0e0f53be2d9b2a0705fe4de600229bdc5f9
2023-07-14 19:41:54 +02:00
Pau Espin eca828b8f9 oc2g: Fix multiple definitions of arrays
These errors started appearing lately when upgrading  builders to
debian12, with a newer gcc version.

Change-Id: I0046a6f4fb3979710b4cd5222de599d9aaac227b
2023-07-14 19:41:54 +02:00
Pau Espin d67542588c gprs_ms: Update assert condition
A recent commit adding TBF_ST_WAIT_REUSE_TFI state updated
ms_append_llc_dl_data() to attempt creating a new DL TBF while in that
state, but forgot to update the assert checking for the conditions in

Related: OS#6084
Fixes: 40a297f3b0
Change-Id: I3d51e909c9a9f688b7f4425a5ba319d183c71d1f
2023-07-05 14:19:13 +02:00
Pau Espin a4e755e563 gprs_ms: Constify variable in ms_is_reachable_for_dl_ass()
Change-Id: If37907b2f75b61b3243b9d8499bb0cf5c02c28c1
2023-07-05 14:18:24 +02:00
Pau Espin 68e3d787f0 pcuif: Log read() error cause
Change-Id: Ifdc46a228752452c8d403f2d49f4bac23c450b4d
2023-07-05 14:03:36 +02:00