I am currently setting up separate repositories to replace openbsc.git.
Aspects:
- choice how to separate
- apply 3G and AoIP changes to do code review
My plan is to separate openbsc.git into these parts:
osmo-msc.git = OsmoMSC
osmo-bsc.git = OsmoBSC, OsmoBSCNAT
osmo-sgsn.git = OsmoSGSN, OsmoGTPHUB
osmo-mgw.git = new OsmoMGW, at first plain renamed from osmo-bsc_mgcp
+ libosmo-mgcp
Each of these will contain the full openbsc.git history to be able to follow
changes back in the log easily.
The libmgcp has so far been internal to openbsc.git. I intend to make it an
installed library from osmo-mgw.git (similar to libosmo-ranap from
osmo-iuh.git), as libosmo-mgcp. libmgcp is used by MSC and BSC to communicate
with osmo-mgw (osmo-bsc_mgcp). Also by osmo-bsc_nat, which I had actually not
been aware of until now.
libiu, shared between MSC and SGSN, has already moved to osmo-iuh.
The other thing the MSC and SGSN still share is the GSUP client. The GSUP
protocol code has already moved to libosmocore, but the gsup_client is still in
openbsc. I believe it is appropriate to move the gsup_client along to
libosmocore, even though the notion so far has been to keep it out of there.
Otherwise we either duplicate the gsup_client or need another separate
libosmo-gsupclient.
Possibly other code needs to be moved around similarly, but AFAICT "decreasing
in importance".
Code review:
We can review in various ways. I believe the least troublesome would be this:
- create osmo-msc git from the current openbsc.
- remove the top level 'openbsc' dir.
- go through all of the patches in gerrit to apply to 'master', which will
apply the VLR+HLR, then 3G and then AoIP, across all of MSC, BSC, SGSN and MGW,
all of these in osmo-msc.git.
- the state thus reached is the basis for the split. Copy this to osmo-*.git
- in each separate git, remove the files not needed for that particular project.
Remove possible remaining code duplication as we go.
openbsc.git
|
| copy
v
osmo-msc.git
|
| - `mv openbsc/* .`
v
| gerrit code review:
| +VLR
| +3G
| +AoIP
|
+-------------------------------
| |
v |
----------copy-------- |
| | | |
v v v |
osmo-bsc osmo-sgsn osmo-mgw osmo-msc
| | | |
| | | | clean unrelated files
v v v v
continue ongoing development from these new master HEADs
I'm currently playing through the separation, osmo-msc with top-level openbsc
removed is done, osmo-mgw and osmo-bsc pending. This means that I will need to
apply commits merged to openbsc from now on to the new separate gits until we
move over for good. That's fairly similar to keeping the 3G,AoIP branch rebased
onto openbsc master as we did previously. It may make sense to focus AoIP
development onto the new repositories soon.
So far I'm keeping the gits privately on a sysmocom office machine. We could
also open up new osmo-* repositories on gerrit and
git.osmocom.org now.
~N