Another document in German about SAP XML format

Mychaela Falconia mychaela.falconia at gmail.com
Mon May 15 17:34:50 UTC 2017


Serg wrote:

> Some information about XML documents defining messages format. It is in
> German, so DS can probably assess it much faster if it is useful enough in
> order to understand how to process raw XML

For everyone else on the list: to get the context of what Serg is
talking about, read this README file I wrote back in 2014 during the
first attempt at FreeCalypso GSM fw that later became Citrine:

https://bitbucket.org/falconian/freecalypso-citrine/src/b56928f8c0013a8056fb703276a31b5f02a597a6/cdg/README?at=default&fileviewer=file-view-default

(cdg/README in freecalypso-citrine or cdg3/README in fc-magnetite)

The issues described there apply equally to FC Citrine and to the
TCS2/TCS3 hybrid configuration of Magnetite.  That README file
describes my understanding and my approach as of 2014-09, but since
then there has been one important new discovery.

It turns out that using TCS3-based G23M with TCS3-based cdginc headers
atop of TCS211 L1 (doesn't matter if that L1 is blobs or source-
reconstructed, as our reconstruction of it is 100% accurate) does not
work correctly because some L23<->L1 message structures have changed
between TCS2 and TCS3; when one side uses the old struct definition
and the other side uses the new one, corrupt interlayer communication
ensues.  The one visible symptom we had was the AMR bug (voice calls
would not work in AMR mode), caused by AMR parameters not being passed
correctly between layers, but who knows what other breakage was
happening.

When I discovered the above in 2016-10, I created a hybrid version of
the cdginc headers as the solution: I took mph[cp].pdf (the interface
to L1) from TCS211, took the rest of *.pdf and all of *.mdf from
TCS3/LoCosto, used my earlier "conservative" version of fflags.h
(lists all of the new feature flags added in TCS3, but sets them all
to disabled), and fed this set to ccdgen.  The resulting hybrid cdginc
headers are currently used in both Magnetite hybrid and Citrine.

One remaining open issue with this hybrid arrangement is the ALR fw
component.  Like with ACI, we have the source for both TCS211 and
TCS3/LoCosto versions of ALR.  Citrine uses the TCS3/LoCosto version,
unchanged from our first-attempt GSM fw with broken L1, whereas
Magnetite hybrid currently uses the TCS211 version.  It is not clear
to me which approach is better, and both versions may well have bugs
hiding in them.  Taking another look at ALR is on my list of things to
do when I get done with hardware and calibration issues and can start
working on the firmware once again.

M~


More information about the Community mailing list