Introducing osmo-bsc to master

Holger Hans Peter Freyther holger at
Mon Nov 15 09:26:58 CET 2010

Hi all,

after months of work on the BSC API and on/off on the osmo-bsc it seems to be
close to a working state. It has a lot of code from bsc_msc_ip of the
on-waves/bsc-master branch but in a better structure thanks to the BSC API.

Right now it is on the zecke/osmo-bsc branch and has about 58 commits to build
the BSC. It can be found in the src/bsc directory and has the main files:

osmo_bsc_main.c - The main method
osmo_bsc_sccp.c - To handle the SCCP connections, connection release,
connection timeouts, IT timer..
osmo_bsc_msc.c  - To handle the connection(s) to the MSC, authentication,
ping/pong to test the link and connection failure via a signal
osmo_bsc_bssap.c - This is parsing the GSM0808 messages and maps that to the
BSC API functions
osmo_bsc_api.c - Callbacks for the BSC API, creating GSM0808 messages and
sending them to the MSC
osmo_bsc_sound.c - Handle the CRCX_ACK and send a MDCX...
osmo_bsc_filter.c - To inspect incoming and outgoing packets and provide extra
osmo_bsc_vty.c - VTY options for the MSC connection(s). This is a msc subgroup
of the VTY.

I will have to heavily test the new code for leaks, crashes, failure and such
and will do this with call testing overnight, but I think it should not be
less stable than bsc_msc_ip.

There are two things that should be done next. Work on paging and decouple the
BSC part of scheduling the messages, not scheduling too many to not crash the
nanoBTS and the MSC part that triggers the callback. Be able to 'switch' from
Osmo-BSC functionality and bsc_hack functionality on the fly. This could be
very interesting for fuzzing that only after a certain message someone wants
to start fuzzing with an external app. Use the MSC functionality from a new
application and have a true MSC...

More information about the OpenBSC mailing list