Cleanup of BSSGP code.

The hack for resetting BSSGP instance is removed and now performed
whenever the NS state changes to UNBLOCKED.

The BSSGP instance is now created only once, as it should be.

Received STATUS messages are ignored as they should be.

The creation and destruction of BSSGP/NS instances is now handled by
layer 1 interface alone.
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index c08cc8f..4921b21 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -23,7 +23,7 @@
 
 struct sgsn_instance *sgsn;
 void *tall_bsc_ctx;
-struct bssgp_bvc_ctx *bctx = btsctx_alloc(BVCI, NSEI);
+struct bssgp_bvc_ctx *bctx = NULL;
 struct gprs_nsvc *nsvc = NULL;
 extern uint16_t spoof_mcc, spoof_mnc;
 
@@ -225,6 +225,13 @@
 	uint16_t ns_bvci = msgb_bvci(msg);
 	int data_len;
 	int rc = 0;
+	struct bssgp_bvc_ctx *bctx;
+
+	if (pdu_type == BSSGP_PDUT_STATUS) {
+		LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u received STATUS\n",
+			msgb_nsei(msg), ns_bvci);
+		return 0;
+	}
 
 	/* Identifiers from DOWN: NSEI, BVCI (both in msg->cb) */
 
@@ -243,12 +250,6 @@
 	/* look-up or create the BTS context for this BVC */
 	bctx = btsctx_by_bvci_nsei(ns_bvci, msgb_nsei(msg));
 
-	/* Only a RESET PDU can create a new BVC context */
-	if (!bctx)
-	{
-		bctx = btsctx_alloc(ns_bvci, msgb_nsei(msg));
-	}
-
 	if (!bctx && pdu_type != BSSGP_PDUT_BVC_RESET_ACK)
 	{
 		LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU "