Comments are welcome for https://osmocom.org/issues/2534 I want to remove gsup_client code dup and need a place to put it. Can't go to libosmocore, because it uses libosmo-abis' IPA Multiplex.
My main open question is: libosmo-abis sounds like it is specifically for the A-bis interface.
But GSUP, which we use to talk to the OsmoHLR, is not at all related to A-bis.
Does it make sense to put it in libosmo-netif? Or move the IPA Multiplex to libosmocore? And hence remove some duplication between libosmo-abis and libosmo-netif?
What do you guys think is worth the trouble? Just move gsup to libosmo-abis.git and care later?
Thanks!
~N
On Wed, Oct 04, 2017 at 04:31:27PM +0200, Neels Hofmeyr wrote:
My main open question is: libosmo-abis sounds like it is specifically for the A-bis interface.
Correct. And the IPA multiplex was first encountered by us on Abis, but was later found at other places (A interface, for example) and even re-used by us at more interfaces (GSUP).
But GSUP, which we use to talk to the OsmoHLR, is not at all related to A-bis.
Correct.
Does it make sense to put it in libosmo-netif?
No.
Or move the IPA Multiplex to libosmocore? And hence remove some duplication between libosmo-abis and libosmo-netif?
Actually, there is IPA multiplex related code in libosmocore, libosmo-abis and libosmo-netif.
* The core helpers should all be in libosmocore (I think the only function I would move from libosmo-abis is ipa_msg_push_header(), if similar doesn't alrady exist in libosmocore).
* the "stream server / client" implementation fits logically into libosmo-netif, where we already have a TCP and SCTP stream server, and where we also have the more modern "chan_abis_ipa_srv" code, both of which should probably be merged.
* libosmo-abis contains then only the "e1inp" integration of the IPA multiplex, i.e. making IPA look like an E1/T1 interface to our BSC. As much IPA related code should be reused here. It uses the stream_server, and if that moves to libosmo-netif, we introduce a new dependency from libosmo-abis -> libosmo-netif. However, we already have the inverse dependency in libosmo-netif/configure.ac where the only user seems to be two example programs that could also be moved.
The more interesting question is how to facilitate the related move[s] without breaking backwards compatibility in every single program.
Just move gsup to libosmo-abis.git and care later?
I don't like the approach of *knowingly* adding unrelated bits into "wrong" libraries. That's different from those cases where we have done this at the time due to a lack of knowledge.
If the above is too complex and time-consuming (which might be the case), then I'd rather keep two copies or even introduce a new library.
Regards, Harald