Hi!
The gprs-sgsn branch has seen quite a number of changes during the last week, most of them are related to the gb-proxy that I'm currently implementing.
The Gb-proxy can multiplex several Gb connections (each to one BTS) and present them as one NS-VC with many BSSGP-VC (one for each BTS) to the SGSN. The proxy is not needed for most users OpenBSC operation.
However, I have now also adapted the SGSN support inside OpenBSC to the modified NS and BSSGP code for the proxy. Furthermore, I've fixed many of its limitations and it should now be fairly generic, working with multiple BTSs, etc. Also, the SGSN is now a standalone program called osmo_sgsn. A lot of the legacy cruft has been eliminated, i.e. the SGSN code does no longer need the gsm_network/bts/trx/... data structures that are not applicable to the GPRS network model anyway.
As a result, GPRS ATTACH and RA UPDATE are working again, like they did months ago.
I'm now still stuck somewhere in PDP context activation, and am confident that this will be solved tomorrow. After that point, the actual data plane can be worked on, i.e. flow control and fragmentation, as well as somehow actually routing IP packets into the LLC connection.
Regards, Harald
Hi!
As it has been pointed out to me in private by one of the lists subscribers, there is an OpenGGSN project (http://sourceforge.net/projects/ggsn/), implementing the actual GGSN part of a GPRS network, as well as libgtp, a library implementing GTP for both the GGSN and SGSN parts.
The projects seems more or less abandoned during recent years, but the source code still builds (after autoreconf -i) and seems to be pretty complete.
This is really good news, as those parts are complimentary to what I've been working on.
So as opposed to build a "SGSN+GGSN combo", I will probably now restrict myself to building a true SGSN, talking GTP to OpenGGSN instead.
This way we keep all options open.
I've contacted the OpenGGSN author in private mail, let's see if and what he responds. At some point we might have to go as far as to "adopt" the project...
Regards, Harald
Hi again,
On Sun, May 02, 2010 at 11:19:11PM +0200, Harald Welte wrote:
As a result, GPRS ATTACH and RA UPDATE are working again, like they did months ago.
I'm now still stuck somewhere in PDP context activation, and am confident that this will be solved tomorrow. After that point, the actual data plane can be worked on, i.e. flow control and fragmentation, as well as somehow actually routing IP packets into the LLC connection.
PDP context activation is now successful, and I get to the point where I see IP-packets from the mobile phone inside the SNDCP/LLC/BSSGP/NS protocol stack.
What now needs to be done is to implement a working SNDCP layer, starting with simple fragmentation support and none of the compression options.
For anyone who wants to try: There is not much that needs to be configured, I've attached two reference config files for openbsc and osmo_sgsn to this message. The only important part is to set the UDP port numbers in openbsc and osmo_sgsn to the same value. Simply check out the gprs-sgsn branch and start opensc and osmo_sgsn.
I am going to leave the SGSN at this state for now and work on other tasks again (like the Gb proxy, OsmocomBB layer1, ...). However, I expect to get back to continuing the SGSN work during the weeks to come.
Happy hacking, Harald