Project Scope

Reminder: GPRS Stack

gprs_stack.drawio.svg

Block diagram

ardc_darc_gprs_arch.v6.svg

libosmo-gprs: Introduction

libosmo-gprs-<layer>: Public API

libosmo-gprs-sm

SMREG:
GMMSM:

libosmo-gprs-gmm

GMMSM:
GMMREG:
LL:
LLGMM:
GMMRR:

libosmo-gprs-sndcp

SN:
SNSM:
LL:

libosmo-gprs-llc

LL:
LLGMM:
GRR: (MS role)
BSSGP: (SGSN role)

libosmo-gprs-rlcmac

GRR:
GMMRR:
L1CTL:

modem Application

Example: modem establishing a PDP Context

  1. modem: Configure APNs (VTY)
  2. modem: Modem syncs to cell (CCCH)
  3. modem → SM: SMREG-PDP_ACT.req
  4. SM → GMM: GMMSM-ESTABLISH.req
  5. GMM → LLC: LL-UNITDATA.req(GMMAttachReq)
  6. LLC → RLC/MAC: GRR-UNITDATA.req(llc_frame[GMMAttachReq])
  7. RLC/MAC needs a TBF to transmit data
    1. RLC/MAC → L1CTL: L1CTL-RACH.req
    2. L1CTL → RLC/MAC: L1CTL-CCCH_DATA.ind(ImmAss[ts, fn, usf, tfi])
    3. RLC/MAC → L1CTL: L1CTL-PDCH_EST.req
    4. RLC/MAC → L1CTL: L1CTL-CFG_UL_TBF.req
    5. L1CTL → RLC/MAC: L1CTL-PDCH_RTS.ind(fn, ts, usf)
  8. RLC/MAC → L1CTL: L1CTL-PDCH_DATA.req(rlc_blk[llc_frame[GMMAttachReq]])
  9. L1CTL → RLC/MAC: L1CTL-PDCH_DATA.ind(rlc_blk[llc_frame[GMMAttachAcc]])
  10. RLC/MAC → LLC: GRR-UNIT_DATA.req(llc_frame[GMMAttachAcc])
  11. LLC → GMM: LL-UNIT_DATA.req(GMMAttachAcc)
  12. GMM → SM: GMMSM-UNITDATA.req(SM-ActivatePDPContextReq)

trxcon

Project info

commit 8975b437ed476a1655e19b68d113bc93c468b087
Author: Vadim Yanitskiy <axilirator@gmail.com>
Date:   Thu Jun 30 00:41:58 2016 +0600

    host/trxcon: introduce a new 'trxcon' application

trxcon

Project architecture (before GPRS MS)

habr.png

trxcon

Project architecture (after GPRS MS)

trxcon_arch.drawio.svg

trxcon / trxcon_fsm

Event flow

slides__1.png
Figure 1. Cell selection

trxcon / trxcon_fsm

Event flow

slides__2.png
Figure 2. DCCH establishment & release

trxcon / trxcon_fsm

Event flow

slides__3.png
Figure 3. DCCH burst Rx/Tx

trxcon / l1gprs

Performance requirements

trxcon / l1gprs

The l1gprs library

l1gprs.drawio.svg

trxcon / l1gprs

New L1CTL messages

API

trxcon / l1gprs

Event flow

slides__4.png
Figure 4. PDCH block Rx/Tx

osmo-trx-ms

The MS side transceiver

Limitations

osmo-trx-ms

How to build?

$ git clone https://git.osmocom.org/osmo-trx
$ git submodule init # <1>
$ git submodule update # <1>
$ autoreconf -fi
$ ./configure --with-mstrx --with-bladerf
  1. Fetch the osmocom-bb git submodule

Debian package(s)

$ apt install osmo-trx-ms-blade

Future work

Know more