plan for openbsc.git split and code review

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

Neels Hofmeyr nhofmeyr at
Mon Jul 10 15:33:14 UTC 2017

I am currently setting up separate repositories to replace openbsc.git.

- 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

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.

   | copy
   | - `mv openbsc/* .`
   | 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 now.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <>

More information about the OpenBSC mailing list