osmocom-bb/src
Vadim Yanitskiy 13ec32d380 trx_toolkit/ctrl_if_trx.py: implement TRXD header version negotiation
Messages on DATA interface may have different header formats, defined
by a version number, which can be negotiated on the control interface.
By default, the Transceiver will use the legacy header version (0).

The header format negotiation can be initiated by the L1 using the
'SETFORMAT' command. If the requested version is not supported by
the transceiver, status code of the response message should indicate
a preferred (basically, the latest) version. The format of this
message is the following:

  L1 -> TRX: CMD SETFORMAT VER_REQ
  L1 <- TRX: RSP SETFORMAT VER_RSP VER_REQ

where:

  - VER_REQ is the requested version (suggested by the L1),
  - VER_RSP is either the applied version if matches VER_REQ,
    or a preferred version if VER_REQ is not supported.

If the transceiver indicates VER_RSP different than VER_REQ, the L1
is supposed to reinitiate the version negotiation using the suggested
VER_RSP. For example:

  L1 -> TRX: CMD SETFORMAT 2
  L1 <- TRX: RSP SETFORMAT 1 2

  L1 -> TRX: CMD SETFORMAT 1
  L1 <- TRX: RSP SETFORMAT 1 1

If no suitable VER_RSP is found, or the VER_REQ is incorrect,
the status code in the response shall be -1.

As soon as VER_RSP matches VER_REQ in the response, the process
of negotiation is complete. Changing the header version is
supposed to be done before POWERON, but can be also done after.

Change-Id: I8d441b2559863d2dbd680db371062e4f3a2f9ff9
Related: OS#4006
2019-07-16 14:52:24 +07:00
..
host trxcon/scheduer: fix: properly check rc of gsm0503_pdtch_encode() 2019-06-30 17:30:11 +07:00
shared vty: skip installing cmds now always installed by default 2017-11-09 01:14:49 +00:00
target trx_toolkit/ctrl_if_trx.py: implement TRXD header version negotiation 2019-07-16 14:52:24 +07:00
target_dsp target_dsp/bin2cfile.py: make it compatible with python3 2019-07-11 16:10:43 +02:00
Makefile Merge 'fixeria/trx' into master 2018-04-07 19:35:24 +02:00
README.building README.building: cosmetic: correct wiki links 2018-05-20 15:34:16 +03:00
README.development README.development: add brief info about the TRX Toolkit 2018-05-20 15:46:20 +03:00

README.development

= Contributing to OsmocomBB development =

Feel free to help us by extending the code.  Always make sure to
send back all your patches to Gerrit (recommended) or to the
baseband-devel@lists.osmocom.org mailing list - Free Software
is all about sharing. For details, see:

https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit
https://gerrit.osmocom.org/

== Coding Style ==

Like all C language Osmocom projects, we use the Linux Kernel coding
style, you can find it in the Documentation/CodingStyle subdirectory
of any Linux Kernel source. For details, see:

https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

== More Information ==

Please consult the https://osmocom.org/projects/baseband/wiki/.

If you have any technical questions regarding the code, don't hesitate
to ask the baseband-devel@lists.osmocom.org mailing list.

== subdirectories containing libraries and code ==

=== src/shared/libosmocore ===

This is a library of various utility routines, including linked lists,
message buffers, bit-vectors, memory allocator, signals, select loop
handling, timers - as well as some more specifically GSM related things
like a TLV parser, a Comp128V1 implementation and utility functions for
RSL (TS 08.58) and CC/MM/RR (TS 04.08).

libosmocore is maintained in git://git.osmocom.org/libosmocore.git, so

	DO NOT DIRECTLY COMMIT TO libosmocore IN THIS REPOSITORY!

We simply maintain a copy (synchronized by git-subtree) in this
repository for the ease of building and to make sure everyone is using
the proper/compatible version of libosmocore

Please note, whatever you add to libosmocore will need to build as a
Linux userspace program (using glibc) just as well as on the OsmocomBB
embedded target without OS.  So please refrain from using fancy
functions.


=== src/target/firmware ===

The firmware is what we build for the actual target (phone).  It was
written with some idea of modularity in mind, i.e. we have

 * Ti Calypso specific code in calypso/
 * Analog Baseband code in abb/
 * RF Mixer code in rf/
 * Layer1 code in layer1/
 * NOR flash handling in flash/
 * LCD display handling in display/
 * minimal C-Library code in lib/
 * communications utility routines in comm/
 * Board (phone model/family) specific code in board/
   * board/compal_e88 is the Motorola C115-C124 family
   * board/compal_e99 is the Motorola C155 family
 * Applications (each app builds one firmware image) in apps/

=== src/target/trx_toolkit ===

A set of tools in Python for debugging TRX interface and creating
a virtual Um-interface between OsmocomBB and OsmoBTS. For details,
please refer:

https://osmocom.org/projects/baseband/wiki/TRX_Interface
https://osmocom.org/projects/baseband/wiki/FakeTRX
target/trx_toolkit/README

=== src/target_dsp/calypso ===

This is where we keep some (assembly) code that we wrote for
the DSP that is part of the Calypso DBB.

=== src/host/layer23 ===

The Layer2 (LAPDm / TS 04.06) and Layer3 (CC/MM/RR / TS 04.08)
implementations, as they are growing.