PDP contexts not cleared/released if GGSN is restarted
When re-starting OpenGGSN while OsmoSGSN remains running and has PDP contexts established, the PDP contexts are not cleared.
All MS-originated GTP-U messages are rejected by the GGSN with an "Error Indication". This Error Indication is insufficient to close that specific PDP context.
Also the concept of the gsn restart counter doesn't appear to be helping? Let's find out why
- Status changed from New to In Progress
- % Done changed from 0 to 20
I think the problem is threefold:
- the SGSN doesn't seem to use the ECHO req/resp procedure to poll the GSN restart counter of the GGSN and thus doesn't know about a restart
- the GGSN isn't including mandatory information elements in the GTP Error Indication, which would be required to resolve the GTP context that's causing the error (#2434)
- the SGSN isn't resolving the PDP context on an incoming GTP Error Indication
- % Done changed from 20 to 50
Change-Id: I3e843f9ef1d6fd7868cc992e083c0891d16b6da9 adresses the libgtp part of matching the PDP context and deleting it: https://gerrit.osmocom.org/3503
However, now we have the problem that the SGSN is not properly informing the MS about this, i.e. the MS continues to send packets for that PDP context.
cb_delete_context() is called for PDP context deletion, but this is called for both those PDP contexts that the SGSN has previously requested to be deleted, as well as for those that were "unilaterally" deleted by libgtp. We need to work out something here...