Accelerate3g5 -- benoit » History » Version 6
Accelerate3g5 -- benoit¶
Benoit Michau, email contact: michau[dot]benoit[at]gmail[dot]com
Provide a 3G and 4G core network entirely written in Python, mainly for testing handsets easily and smoothly.
A 4G core network has already been developed, based on an old library (libmich).
It is available here: https://github.com/mitshell/corenet/.
The intention is to develop a new framework with a clean API,
a wider Python support (both 2.7 and 3.4+), a complete ASN.1 compiler and runtime,
and the additional protocol handlers for RUA / RANAP and 2G-3G NAS.
The new framework is available here: https://github.com/ANSSI-FR/pycrate.
It currently proposes:
- a complete ASN.1 compiler and runtime (with BER/CER/DER/(U)PER encoders and decoders)
- a large set of ASN.1 libraries, ready to be used
- a CSN.1 translater and runtime for encoding and decoding
- 24.008 MM, GMM and IE encoders and decoders
- A signaling server to handle Iuh interface
Some results (october 2017)¶
The pycrate_corenet subdirectory has a server handling connections from HNB over IuH.
It supports connecting / disconnecting femtocells and UE with HNBAP.
It supports RUA to transport RANAP transactions for both CS and PS domains.
It supports enough of RANAP to support the attachment and mobility of UE through the femtocells.
It supports mobility procedures from the TS 24.008 for both the CS and PS domains.
As a result, it is possible to connect UEs to the signaling server, through femtocells:
- CS procedures supported: location update, IMSI detach, and all MM common procedures
- PS procedures supported: attach, routing area update, detach and all GMM common procedures
A wiki has been started here: https://github.com/anssi-fr/pycrate/wiki
Basic information on how to configure and run the server will follow soon.
Questions raised during the development¶
- How to configure a lower global Tx level in the femtocell statically ?
I have currently a temporary solution, which consists in using the web server of the femtocell
exposing some configuration parameters. For this, we need to replace the .htaccess file of the