Dear Osmocom community,
A little over a month ago I announced availability of this new MGW:
https://osmocom.org/projects/retro-gsm/wiki/ThemWi_E1_Abis_MGW
So far only two people responded to this news: Csaba has been testing
this new MGW on his Nokia MetroSite (he and I are working toward adding
AMR support), while Keith took only a passing notice - if I understood
him correctly (please forgive me if I misunderstood!), it looks like
Rhizomatica/TIC no longer operate GSM networks with Ericsson RBS gear,
hence no more need for improved E1 MGW from their side.
However, I am getting a sense that the larger Osmocom community may be
disappointed regarding my choice to develop this improved E1 Abis MGW
as a "rogue" project external to Osmocom, rather than in the form of
patches to osmo-mgw. Therefore, I have given some thought to how it
might be possible to merge this new E1 MGW into mainline Osmocom.
Here are my current thoughts:
1) Integrating improved functionality of tw-e1abis-mgw into osmo-mgw
in a fully unified manner, full coexistence of all existing osmo-mgw
functionality plus all tw-e1abis-mgw functionality within a single
program/process, running on one MGCP port and providing both rtpbridge
and E1 endpoints, is beyond my ability, or at least beyond what I can
do using only my own volunteer time. osmo-mgw code base is extremely
complex, and as much as I dread to say it, insanely and needlessly so
- it is a Gordian knot, and I tend to approach those the way Alexander
did...
2) As an intermediate compromise between the too-difficult goal of
point 1 above and the current status quo of tw-e1abis-mgw existing
externally to Osmocom, how would Osmocom community feel about a
hypothetical osmo-e1-mgw program? Suppose I were to produce patches
that add osmo-e1-mgw as a new program to osmo-mgw git source tree,
such that osmo-mgw and osmo-e1-mgw binaries would be built side by
side in the same source tree - any interest? The actual code bases
compiling into these two binaries would still be mostly separate, just
the autotools infra of osmo-mgw git tree would be shared, but the new
osmo-e1-mgw program would carry Osmocom branding, and it would live in
a mainline Osmocom repository where people other than me can shape its
future direction.
Please note that I don't need this integration for myself: for our own
use on our to-be-built network, we (A2GC) are quite happy running the
hybrid software stack where some components are built from Osmocom
source repositories while other components are built from ThemWi repos.
Instead I am making this offer to Osmocom community for social reasons:
I wish to continue as an active member of this community, if possible,
and fork-like activities are certainly _not_ the way to go, socially.
I am also making this integration offer to the community as food for
thought, without any urgency. If the greater Osmocom community does
wish to see tw-e1abis-mgw turned into something like osmo-e1-mgw,
integrated into mainline Osmocom, it will probably be another few
months before I can start submitting patches in this direction. The
reason for the delay is that tw-e1abis-mgw is not quite finished at
the present moment: two big missing features are AMR support and
UL-to-DL transform (aka TFO transform) for EFR. I would like to fill
these two functional gaps in the new MGW while staying in my own
tw-e1abis-mgw source tree, before beginning the process of merging
into Osmocom mainline - hence the time delay prognosis.
If Osmocom community does wish to see the improved E1 MGW as part of
mainline Osmocom code base, I would need an explicit "green light"
go-ahead before I start preparing any patches. The patch process
would need to proceed as follows:
1) I will need to prepare a patch for libosmocore, adding a header file
with definitions from 3GPP TS 48.103 Table 5.4.2.2.1. Right now ThemWi
software, including tw-e1abis-mgw, uses <themwi/common/aoip_rtp_pt.h>
header file - but of course the latter won't be available in pure
Osmocom environment without ThemWi dependencies.
2) There will need to be a whole bunch of patches to libosmo-abis.git
(libosmotrau portion thereof), adding various functions which I
currently collect in libtwtrau and which will be used by the upcoming
AMR-capable version of tw-e1abis-mgw.
3) Only after 1 and 2 above are merged, then I'll able to produce a
big patch for osmo-mgw.git, adding osmo-e1-mgw (or whatever other name
the community comes up with) as a new program.
In any case, in the immediate short term I am going to continue
improving tw-e1abis-mgw where it lives currently, in ThemWi area of
Osmocom Gitea. Once AMR support and UL-to-DL transform for EFR are
there, I will make another post here. At that point if the greater
community would like to see this work merged, I will need feedback
in this ML thread.
GSM/2G Forever,
Mother Mychaela