On Mon, May 14, 2018 at 03:08:04PM +0300, Mykola Shchetinin wrote:
Though I feel fluent in C, I find it hard to understand what is going on there.
osmo-hlr is receiving GSUP requests and replies to them. In hlr.c you will see osmo_gsup_server_create() putting in place the read_cb() you'll find in the same file, the main entry point. The read_cb will be invoked by the osmo_select_main() loop whenever a GSUP client connects and sends a request. That should get you started with the code.
Testing wise, we have https://git.osmocom.org/osmo-ttcn3-hacks/tree/hlr/HLR_Tests.ttcn which you can run from https://git.osmocom.org/docker-playground/tree/ttcn3-hlr-test in docker images with fairly minimal effort and without any cellular hardware.
You can also look at the real-hardware tests at https://jenkins.osmocom.org/jenkins/view/osmo-gsm-tester/job/osmo-gsm-tester... which have detailed logs and network traces taken with actual modems and BTS equipent, e.g. at https://jenkins.osmocom.org/jenkins/view/osmo-gsm-tester/job/osmo-gsm-tester...
Of course really understanding in depth what is going on is not trivial; osmo-hlr is but a tiny component of a cellular network. Why are you particularly interested in the HLR?
~N