gbproxy: Send STATUS(BVCI unknown) to BSS on unknown PTP BVCI

Currently BSSGP PTP messages are silently dropped when the BVCI is
not known and patching is enabled. The nanoBTS will not recognize
this and continue to send messages on the BVCI. If it receives a
STATUS(BVCI unknown) instead, it will start a BVC reset procedure
instead.

This patch modifies gbprox_rx_ptp_from_bss() to return a
STATUS(BVCI unknown) to the BSS instead of dropping the message.

Sponsored-by: On-Waves ehf
diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c
index c23e718..1437646 100644
--- a/openbsc/src/gprs/gb_proxy.c
+++ b/openbsc/src/gprs/gb_proxy.c
@@ -791,12 +791,19 @@
 
 	peer = gbproxy_peer_by_bvci(cfg, ns_bvci);
 
-	if (peer)
-		check_peer_nsei(peer, nsei);
-
+	check_peer_nsei(peer, nsei);
 	rc = gbprox_process_bssgp_ul(cfg, msg, peer);
-	if (!rc)
+	if (!rc) {
+		if (!peer) {
+			LOGP(DGPRS, LOGL_NOTICE, "Didn't find peer for "
+			     "BVCI=%u for PTP message from NSVC=%u/NSEI=%u (BSS)\n",
+			     ns_bvci, nsvci, nsei);
+			return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI,
+					       &ns_bvci, msg);
+		}
+
 		return 0;
+	}
 
 	switch (pdu_type) {
 	case BSSGP_PDUT_FLOW_CONTROL_BVC: