gb: Fix NS RESET/RESET_ACK abnormal cases

This changes the implementations for the reception of RESET and
RESET_ACK to be compatible with 3GPP TS 08.16, 7.3.1:

- Just send a RESET_ACK with correct values back to the SGSN when a
  RESET with an invalid NSVCI or NSEI has been received.
- Check RESET_ACK for matching NSEI and NSVCI.
- Ignore unexpected RESET_ACKs.

In addition, use RESET_ACK from a BSS to update the BSS source
address based on the NSVCI to be tolerant with changing UDP source
addresses/ports.

Sponsored-by: On-Waves ehf
diff --git a/tests/gb/gprs_ns_test.c b/tests/gb/gprs_ns_test.c
index 3d0293e..546c20a 100644
--- a/tests/gb/gprs_ns_test.c
+++ b/tests/gb/gprs_ns_test.c
@@ -357,6 +357,12 @@
 		       gprs_ns_ll_str(nssd->old_nsvc));
 		break;
 
+	case S_NS_MISMATCH:
+		printf("==> got signal NS_MISMATCH: 0x%04x/%s pdu=%d, ie=%d\n",
+		       nssd->nsvc->nsvci, gprs_ns_ll_str(nssd->nsvc),
+		       nssd->pdu_type, nssd->ie_type);
+		break;
+
 	default:
 		printf("==> got signal %d, NS-VC 0x%04x/%s\n", signal,
 		       nssd->nsvc->nsvci,