osmo-bsc refactoring / inter-BSC handover

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Neels Hofmeyr nhofmeyr at sysmocom.de
Mon Jun 18 05:50:56 UTC 2018


Good morning,

I wanted to get inter-BSC handover complete before today, and worked like a
maniac for the last two weeks.

I'm looking forward to your comments on the osmo-bsc rework, which started so
small and rippled through the entire code base like a flash flood. I hope you
will find review of it not too daunting, it fully qualifies as a code bomb.

It is refactoring no less than:
- dynamic timeslots,
- lchan states from allocation through release,
- assignment,
- handover
- handling of MGW endpoints, and
- the conn FSM.
- gsm_network->T123 timer handling,
- the way a BTS's neighbors are configured,
- handover and assignment rate counters,
- and whatnot.
- adding five new FSM implementations to osmo-bsc,
- and actually adding inter-BSC Handover, both sides (almost).

Of course I couldn't wrap things up completely, but the good news is that the
only problem left now is that I can't get a ttcn3 test written for inter-bsc MT
handover [1]. Consider the MT side broken yet, though it should be small fixes.

So the refactoring is done and all ttcn3-bsc-tests pass. Yes, *all*!

I will now submit the patches to gerrit; some though could want to go to
libosmocore, and for some other "neat" inventions of mine I'm watching the
comment space in curiosity.

I did try to separate some changes into individual commits, but the final chunk
is too inter-related to pull it apart without spending huge amounts of time to
make osmo-bsc work for each intermediate state.

I feel both like saying "sorry" and "you're welcome" about this at the same
time. Sorry about the size of the single patch; but a lot of code got extremely
easier to read and follow, and a lot safer too, into a nicer osmo-bsc future.

~N

[1]
I have a marginal test added for inter-bsc MO, but the inter-bsc MT gets me.
The problem there is that it is the first time a conn is initiated by the MSC
side. I can get that to work by using BSSAP on that Test_CT. It goes well up to
the point where osmo-bsc sends MGCP CRCX and expects a response. Now I want to
use the MSC_ConnHdlr to manage MGCP, but I can't for the life of me figure out
how to be able to do both at the same time. I tried for very long to resolve
"BSC_Tests.ttcn:2755.13-2756.31: error: Message type `@BSSAP_CodecPort.BSSAP_N_CONNECT_req' is not present on the outgoing list of port type `@BSSMAP_Emulation.BSSAP_Conn_PT'"
but it feels like a brick wall...
It's the final thing before I can say: I'm done, take a look at inter-BSC HO.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20180618/020c8353/attachment.bin>


More information about the OpenBSC mailing list