openbsc[master]: add struct bsc_subscr, separating libbsc from gsm_subscriber

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/gerrit-log@lists.osmocom.org/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Fri Feb 24 20:21:23 UTC 2017


Patch Set 8:

(1 comment)

https://gerrit.osmocom.org/#/c/1682/8/openbsc/include/openbsc/gsm_data.h
File openbsc/include/openbsc/gsm_data.h:

Line 391: 	/* List of all struct bsc_subscr used in libbsc. This llist_head is
> this is highly unusual in the osmocom code base.  the llist_head of the mas
The idea behind this is to pass to the bsc_subscr API only what it actually uses: instead of the entire gsm_network struct, I want to pass only the bsc_subscribers llist pointer. Hence that's the only hook for talloc ctx and it needs to be talloc'd. In the same way, thinking forward to the bsc-msc split, the MSC's gsm_network will not have a list of bsc_subscribers, and being NULL would indicate that. (Then again we'll probably rename it to msc_ctx and drop the member entirely; but if we want to keep the option of marrying BSC and MSC into a NITB, it would make sense.)

Quite nice for the unit test: instead of mocking a gsm_network and pulling in the entire gsm_data.h, we just create an llist and done.

Code that needs to change: callers of the bsc_subscr_find_* api need to pass the gsm_network instead of gsm_network->bsc_subscribers. It would be shallow in that no cascades of function arguments need to be adjusted.

We could also use the global bsc_gsmnet as talloc ctx, but I'm more for moving away from magic globals and towards explicit arguments.

The GPRS subscr uses a static global llist instead. We could also do that. But again, I like to keep globals grouped somewhere visible...

I'm aware that it's unusual, but there are some arguments for it. Feel free to say "no" again and I'll change it.


-- 
To view, visit https://gerrit.osmocom.org/1682
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia61cc00e8bb186b976939a4fc8f7cf9ce6aa3d8e
Gerrit-PatchSet: 8
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-HasComments: Yes



More information about the gerrit-log mailing list