Hi, I am using OsmoSGSN in topology with OpenGGSN and proprietary simulator of BSS. There was a problem with an implementation of Network service, cause Network Service implementation in the simulator of BSS is based on different release of 3GPP standard (3GPP TS 48. 016 v7. 4. 0 (2008-04)/Network service (Release 7))...and the problem is that in IP-subnetwork, which I am using there is no use for RESET or UNBLOCK procedure, so I had to do a PATCH in gprs_ns.c, which was needed to complete succesful connection between sim-bss and OsmoSGSN:

switch (nsh->pdu_type) {
     case NS_PDUT_ALIVE:
+++        LOGP(DNS, LOGL_INFO, "Rx NS ALIVE\n");
+++        /*mark NS-VC as alive*/
+++        (*nsvc)->state = NSE_S_ALIVE;
+++        (*nsvc)->remote_state = NSE_S_ALIVE;
+++        /*initiate TEST procedure: Send ALIVE_ACK and start timer*/
+++        rc = gprs_ns_tx_simple((*nsvc), NS_PDUT_ALIVE_ACK);
+++        nsvc_start_timer((*nsvc), NSVC_TIMER_TNS_TEST);
+++        break;
.
.
.
}


another PATCH I needed to do was to change a little bit procedure for allocation of P-TMSI in procedure uint32_t sgsn_alloc_ptmsi(void) in gprs_sgsn.c

uint32_t sgsn_alloc_ptmsi(void)
{
      struct sgsn_mm_ctx *mm;
      uint32_t ptmsi;

restart:
+++    ptmsi = rand() | 0xc0000000;              /*because of GPRS IMSI ATTACH*/
          llist_for_each_entry(mm, &sgsn_mm_ctxts, list) {
                 if (mm->p_tmsi == ptmsi)
                          goto restart;
          }
          return ptmsi;
}

because in GPRS IMSI ATTACH in message ATTACH COMPLETE (3GPP 24.008, 23.003, 48.018) there is new TLLI==new allocated P-TMSI and I need local TLLI, so I had to do it this way

regards Michal