Add mandatory routeing area IE to SUSPEND-NACK
diff --git a/openbsc/src/gprs/gprs_bssgp.c b/openbsc/src/gprs/gprs_bssgp.c
index 051ec92..e94f358 100644
--- a/openbsc/src/gprs/gprs_bssgp.c
+++ b/openbsc/src/gprs/gprs_bssgp.c
@@ -156,12 +156,14 @@
 
 /* 10.3.8 SUSPEND-NACK PDU */
 int bssgp_tx_suspend_nack(uint16_t nsei, uint32_t tlli,
+			  const struct gprs_ra_id *ra_id,
 			  uint8_t *cause)
 {
 	struct msgb *msg = bssgp_msgb_alloc();
 	struct bssgp_normal_hdr *bgph =
 		(struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));
 	uint32_t _tlli;
+	uint8_t ra[6];
 
 	msgb_nsei(msg) = nsei;
 	msgb_bvci(msg) = 0; /* Signalling */
@@ -169,6 +171,8 @@
 
 	_tlli = htonl(tlli);
 	msgb_tvlv_put(msg, BSSGP_IE_TLLI, 4, (uint8_t *) &_tlli);
+	gsm48_construct_ra(ra, ra_id);
+	msgb_tvlv_put(msg, BSSGP_IE_ROUTEING_AREA, 6, ra);
 	if (cause)
 		msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, cause);
 
@@ -383,7 +387,7 @@
 	/* Inform GMM about the SUSPEND request */
 	rc = gprs_gmm_rx_suspend(&raid, tlli);
 	if (rc < 0)
-		return bssgp_tx_suspend_nack(msgb_nsei(msg), tlli, NULL);
+		return bssgp_tx_suspend_nack(msgb_nsei(msg), tlli, &raid, NULL);
 
 	bssgp_tx_suspend_ack(msgb_nsei(msg), tlli, &raid, 0);