Commit Graph

13 Commits

Author SHA1 Message Date
Vadim Yanitskiy aab5d12bdd layer23/modem: handle and forward L1CTL UL BLOCK.cnf
Change-Id: I9255ac17529b5ac260f9a0f141f3af6b3b72a802
Depends: libosmo-gprs.git I145b9586f83ae0235b4648916bd44996e8dc57f0
2024-02-05 15:34:28 +00:00
Vadim Yanitskiy 9978b00ea0 modem: grr: implement RACH.req retransmission
Sometimes sending one Access Burst is not enough, so we need to repeat
sending it a few more more times changing the 3 LSBs randomly.  This
is what we already do in the mobile app, but not in the modem app.

* Rename GRR_EV_RACH_{REQ,CNF} to GRR_EV_CHAN_ACCESS_{REQ,CNF}.
* Rename VTY command 'grr tx-chan-req' to 'grr start-chan-access'.
* Add an intermediate state GRR_ST_PACKET_ACCESS.
** The GRR_EV_CHAN_ACCESS_REQ transitions to this state.
** One RACH.req gets transmitted when entering this state.
** The GRR_EV_CHAN_ACCESS_CNF confirms transmission of a RACH.req.
** Upon the timeout (300 ms) expiry, a loop state transition happens.
** After 3 loop-transitions, transition to GRR_ST_PACKET_NOT_READY.

Change-Id: Iab6d9147f6e0aeb99239affacf318a3897fd6ffe
Related: libosmo-gprs.git If0de3ed86b1e2897d70183f3b0f4fbfd7d2bda80
Related: OS#5500, OS#6131
2023-09-23 03:22:12 +07:00
Pau Espin fa833e4095 l1gprs/l1ctl: Decouple RTS.ind from DL_BLOCK.ind
Before this patch, the RTS:ind was crafted up in the stack when
receiving the DL_BLOCK.ind. This created some problems since the
internal low level state has to be updated in between signalling
DL_BLOCK.ind and RTS.ind, as there's a fn-advnace of one block between
those 2 signals (hence the timeslot allocation has to be applied at the
time when the fn-advance is applied).
This is actually not fixing the whole issue, since there's several
timeslots and hence the following events will have the internal timeslot updated
during the event in the middle, hence potentially causing problems in the
remaining TS:
DL_BLOCK.ind(FN=N, TS=1),  RTS.ind(FN=N+4, TS=1), DL_BLOCK.ind(FN=N, TS=2)

In any case, this decoupling already improves the situation and is step
needed anyway towards fully fixing the problem (by, for instance,
maintaining a timeslot state duplicated both for DL and Ul directions,
since they drive based on differnet FN time (1 PDCH block).

Change-Id: I1494e0aac7555f6e01b4b435b77140afc42c098e
2023-09-04 22:34:08 +00:00
Vadim Yanitskiy 5462ad040c modem: handle OSMO_GPRS_RLCMAC_L1CTL_PDCH_{ESTABLISH,RELEASE}
Change-Id: Ic39ce696834943dc661c85cbf3d54ccd598b60ce
Depends: libosmo-gprs.git I2568c58646ce7511367275ac96cd55e7fdd7ec18
2023-07-24 14:00:47 +02:00
Vadim Yanitskiy 3f0f1a4214 layer23: modem: implement GPRS-RR FSM
Change-Id: I8a7d85df7b07d85ac86e0b7e340f6bbacc65e1bc
2023-07-24 14:00:41 +02:00
Vadim Yanitskiy b1e3742a94 modem: do not send RTS.ind if we got PTCCH/D
Change-Id: Idcdf56de7fc6279d8b942f3670ecdc6f88c3dfd1
Related: OS#5500
2023-06-07 15:56:45 +00:00
Pau Espin 81b3237c88 layer23: modem: Forward LLC-TRANSMITTED.ind RLCMAC->GMM
Change-Id: Ife91ad87fed78daf86e9f28ceed981d61799758e
2023-06-06 15:56:18 +02:00
Vadim Yanitskiy 7a6e1874cb copyright: fix typo: sysmocom s/s.m.f.c./s.f.m.c./ GmbH
Change-Id: I408cde7f2b4642500e5362052365c92856c02bef
2023-05-18 18:51:15 +07:00
Pau Espin 3e31b3232d layer23: modem: Forward GMMRR primitives between GMM and RLCMAC layers
Related: OS#5501
Change-Id: I7603d8bbda0cdd437eb7557267efb7bbc3552565
2023-03-28 10:59:20 +02:00
Vadim Yanitskiy d692e6ca9c modem: set logging cat for OSMO_GPRS_RLCMAC_LOGC_TBF{UL,DL}
... otherwise the library will be using default DLGLOBAL.

Change-Id: I98efa4c8137c7ec57da6ef7ea1307b4e46b4fc98
Related: OS#5500
2023-03-25 06:04:19 +07:00
Vadim Yanitskiy 3b582af2eb modem: route L1CTL prims to/from libosmo-gprs-rlcmac
Change-Id: I38e9a686f8edc3fe55f961d75e68602c33bbbaaf
Related: OS#5500
2023-03-17 12:15:29 +00:00
Vadim Yanitskiy 7ea900525c modem: clean up #includes (using include-what-you-use)
Change-Id: I728f3eea1590f46bef6e0eb4beb9714f6c9a1614
2023-03-14 15:06:26 +00:00
Pau Espin 60716bcfe6 modem: Initial integration of libosmo-gprs-rlcmac
This commit places code to forward unitdata LLC<->RLCMAC.

Depends: libosmo-gprs.git Change-Id I1870fa6a264612c5a669bfb832e6e8c0a892cb74
Related: OS#5500
Change-Id: I0e628d9ddaa5ad6a205f07746d4176d1b8df7eb0
2023-01-30 19:57:36 +00:00