On Thu, Aug 28, 2025 at 02:25:29PM +0200, Alexander 'lynxis' Couzens wrote:
> a couple month ago I proposed to make the VLR code of the osmo-msc 
> independent of the osmo-msc
> and create a new library called libosmo-vlr. Later use the libosmo-vlr code 
> to integrate it into
> osmo-sgsn.

A separate libosmo-vlr would be the idealistic optimum. But I think the most
important part is that, instead of starting a new VLR implementation from
scratch, to use what we learned in osmo-msc and use that in osmo-sgsn.

So if there is too much complexity in marrying msc and sgsn to a common
libosmo-vlr, I'd personally agree with adding a copy of the MSC's VLR into the
SGSN and just make it work from there, without idealistic expectations on
having a fully independent external library. I myself did once try to create
libiu-client to share Iu interface handling between SGSN and MSC, which was a
great idea in my nerdy dreams, but only held us back in practice. We've finally
recently gotten rid of it.

The vlr in osmo-msc does try to do proper layer separation, with those vlr_ops
callback functions and so on. So the vision *was* to be independent from the
MSC's code. But did it work out? It would be interesting for me personally to
take a closer look at the individual places that cause problems, to see the
places where the MSC's VLR isn't properly separated, after all. Maybe we can
even resolve those problems, but, I still think just keeping an own VLR copy in
osmo-sgsn is a very good option, too. If we ever make important fixes to the
VLR, copying those fixes over between SGSN and MSC, and otherwise allowing them
to slightly diverge, will very likely be less work than constantly keeping both
VLRs in sync. The VLR is not libosmocore...

> PS. The current concept (because of time pressure) is to keep 2 copies of
> libosmo-vlr in the code base of osmo-msc and osmo-sgsn and to move it later
> out of it into an own library.

(...and i would also be fine with not bothering to move it out later.)

> I would rather guarantee runtime stability within a library version, but not
> at build time. The strategy would be increasing the library major version
> more often.

(I don't understand this paragraph, I hope I gave a sufficient answer above)

~N

Reply via email to