For quite some time there has been a project called Wireless3G4Free. I suspect it is
little known outside a certain academic community. So what is it all about?
Creating a FOSS based test platform for wireless 3G systems. Yes, this is the
so-called baseband side. The parts that are usually very carefully locked
away in the proprietary stack of cellular handsets and other equipments
Even though the project, funded by the European union and implemented at
EURECOM in France, is 'finished', it is not as easy as to just use that
software and get UMTS connectivity.
First of all, it implements the 3.84MChip/s TDD variant of the physical layer
(layer 1), whereas most commercially deployed UMTS systems for cellular access
use the FDD variant. For those not as familiar with 3G technology: There's
three different layer 1 options: the 3.84MChip/s TDD, the low-chip-rate Chinese
TDD variant, and the FDD variant. The layer 1 is separated in two parts, one
that is TDD/FDD independent, and the other part that is shared.
Secondly, the Wireless3G4Free project uses IP on the layer 3, as opposed to the
actual layer 3 protocol of UMTS (which borrows a lot from the layer 3 protocol
for GSM, which in turn borrows a lot from Q.931 / Euro-ISDN).
So if one was to make that code interoperate with UMTS cellular networks, the
lower half of layer 1 need to be rewritten for FDD, and layer 3 needs to be
implemented.
What is exciting about 3G compared to GSM: GSM uses proprietary ciphers (A5/1,
A5/2) for the actual air interface. Those ciphers have leaked quite some time ago,
and they're no longer secret (and thus the GSM security is no longer existing),
but still people are not supposed to know how it works.
In the 3G world, the corresponding cipher is public. This means that in
theory, it should be possible to implement everything in Free Software based on
publicly known information. Yes, it is a lot of work. But it definitely can
be done.
Before actually using this on any official network, it would obviously need to
be certified. Certification for this kind of protocol is a time-consuming and
expensive process. It requires development cycles of going to a certified
test lab, obtaining test results, going back to actually fixing the problems,
re-running the test lab tests, and so on. Nevertheless, Free Software has
already proven that this can be done. The isdn4linux project did a full EDSS1
certification some 10 years ago. ELSA, a maker of passive ISDN cards,
sponsored that effort. And if you used an unmodified code version, then you
were certified. As soon as the source code was changed, you were running an
uncertified version. I don't see any big problem why the same scheme should
not work for a 3G baseband software stack.
One important question though, is the question of hardware. None of the
existing commercial vendors of 3G chipsets will ever provide you with the
hardware documentation that you would need or want to run that kind of code on
their hardware. It is their business to sell their proprietary 3G stack along
with their chip, so they would only loose money if there was any FOSS
implementation in competition.
Sure, you can use something like the USRP or USRP2 or any other software defined
radio platform. But while that would be ok for a proof-of-concept, it is too
large, expensive and power-consuming to be used or 'ported' to any actual
handset-type product.
So any possible real-world plan of making this happen would probably go as far
as to implement everything based on the USRP, then have a proof-of-concept
prototype and then do a modem design based on existing, openly documented RF
components and ADC as well as DSP+Processor combination that is suitable for
low-power operation.
Sure, I'm just daydreaming. But sometimes you have to dare to dream in order to
make things happen. Anyone wanting to turn this idea into a business, let me
know ;)