Commit Graph

19 Commits

Author SHA1 Message Date
Vadim Yanitskiy e961929748 pycrate_osmo.L1CTL: fix L1CTL_H0: add missing padding
Both L1CTL_H0 and L1CTL_H1 must have equal size.
2022-05-13 17:15:04 +03:00
Vadim Yanitskiy 9acd0e0b9c pycrate_osmo.L1CTL: fix L1CTLInfoUL: remove Buf('Payload')
This Envelope represents an Uplink header, there is no payload in it.
2022-05-13 17:13:43 +03:00
Vadim Yanitskiy d1cd22d75f pycrate_osmo.L1CTL: fix wrong bl in ARFCNFlags
Fixes e3eecabc06, in which I used
wrong field length values.  ARFCNFlags should be 16 bits total.
2022-05-13 17:08:06 +03:00
Vadim Yanitskiy c3d9fa8132 pycrate_osmo.RRCTL: fix wrong operator in RRCTLMsg.match() 2022-02-05 00:03:51 +06:00
Vadim Yanitskiy b2b71e8f61 pycrate_osmo.RRCTL: add (U)SIM specific protocol extensions 2022-02-01 17:38:01 +06:00
Vadim Yanitskiy 768d6ec079 pycrate_osmo.RRCTL: reserve a range for RRCTL protocol extensions
The idea is to group protocol extensions and have one message
type (with 4 variations: Req/Ind/Cnf/Err) per group.  Similar
to the stack and heap allocation model in Linux, new entries
shall be added to the 'RRCTLMsgType' enum as follows:

  * regular messages - from the bottom downward,
  * extension groups - from the end upward.

The mask '11xxxx'B gives us 16 unique messages, one is reserved.
2022-02-01 17:37:44 +06:00
Vadim Yanitskiy 2520b19588 pycrate_osmo.RRCTL: add SecMode message for setting EEA/EIA 2022-02-01 17:37:44 +06:00
Vadim Yanitskiy d7804463f6 pycrate_osmo.RRCTL: add Paging and Param messages 2022-02-01 17:37:44 +06:00
Vadim Yanitskiy 64f10f47b1 pycrate_osmo: add initial RRCTL protocol definition
RRCTL is a simple protocol (inspired by Osmocom's L1CTL) that allows
an external NAS entity to control the RRC layer of srsUE [1][2].
The basic primitives are PLMN search, selection, and PDU transfer.

The following message types are implemented:

  * Reset - reset internal state of the external NAS interface;
  * NetworkSearch - initiates PLMN (carrier) search on pre-configured
                    EARFCN (Absolute Radio Freqency Number);
  * NetworkSelect - binds the UE to one of the previously detected
                    carriers (see `NetworkSearch`) defined by a
                    given pair of MCC and MNC;
  * ConnEstabish - establishes connection to the serving cell
                   (previously selected using `NetworkSelect`)
                   with a given cause and NAS PDU;
  * ConnRelease - releases previously established dedicated connection;
  * ConnData - encapsulates a received (Downlink) or to be transmitted
               (Uplink) NAS PDU (the former also contains LCID).

[1] https://github.com/srsran/srsRAN (original project)
[2] https://github.com/axilirator/srsLTE (extNAS fork)
2022-02-01 17:37:40 +06:00
Vadim Yanitskiy 12c13ed98d pycrate_osmo: add missing SEDebugMux module to __init__.py 2022-02-01 16:43:33 +06:00
Vadim Yanitskiy cce155d71d pycrate_osmo.SEDebugMux: add inner message definitions 2022-01-19 03:48:01 +06:00
Vadim Yanitskiy 8f0d39af4f pycrate_osmo.SEDebugMux: use camel case for field names
This way the protocol definition is closer to the original DebugMux
terminology found in format strings of the firmware images.
2022-01-19 03:46:05 +06:00
Vadim Yanitskiy 43ef5aa80b pycrate_osmo: s/SEDebugMuxMsg/DebugMuxFrame/
Strictly speaking, what we have in SEDebugMux.py is a frame, which
may optionally contain a message.  Let's rename the class to avoid
confusion.
2022-01-19 03:46:05 +06:00
Vadim Yanitskiy f8aa13b958 pycrate_osmo/L1CTL: fix wrong parent class in L1CTLTrafficInd 2022-01-14 15:00:27 +06:00
p1-bmu ad6678a071 osmo: fix file header for SEDebugMux and add a description in the README 2022-01-14 09:40:36 +01:00
Vadim Yanitskiy c0790fbd98 pycrate_osmo: add Sony Ericsson DebugMux frame definition
DebugMux is a vendor specific interface exposed by nearly all old
Sony Ericsson phones and modems.  Similar to the Qualcomm's Diag
interface, DebugMux can be used to obtain logging messages from
different sub-systems, including the baseband.

Unfortunately, Sony Ericsson never published any documentation
describing the protocol.  All information was obtained by analyzing
serial port traces and reverse-engineering DebugMuxSrv.exe.
2022-01-14 02:51:02 +06:00
p1-bmu 446ba9b708 remove version indication from __init__.py files 2021-05-17 17:28:51 +02:00
Vadim Yanitskiy e3eecabc06 pycrate_osmo/L1CTL: fix: ARFCN comes with frequency band indicator
See ARFCN_FLAG_MASK and related macros in libosmocore.
2020-01-22 08:18:34 +07:00
mich 794eaa1b00 osmo: add support for the osmocom-bb L1CTL protocol 2020-01-17 14:27:11 +01:00