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 functionality. 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...
On 11/15/2010 09:26 AM, Holger Hans Peter Freyther wrote:
Hi all,
I have now merged it. Immediate work items are:
1.) Fix the drop oml connection 2.) Add some more VTY commands (from branch) 3.) Remove the bsc_schedule_timer for ipaccess messages (from branch) 4.) Drop OML connection in case of a NACK (from branch) 5.) Only have one message that needs an ACK transferred to the nanoBTS (from branch). The last is mostly a 'hack' and I hope we will find the time to change our init structure... on the other hand 4.) and 5.) handle BTS crashes and weird stuff really well.
Zecke,
thanks for all your work getting this ready for master. It's great to see less divergence and more of the formerly OnWaves specific bsc_msc_ip go into our main branch.