gprs_ns2: add gprs_ns2_free_nses() to free all NS-E

Allow users to clean up most of the state (e.g. the PCU).

Change-Id: Ia00753a64b7622a0864341f51ea49b6963543755
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index e3fc078..50acf99 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -598,6 +598,15 @@
 	talloc_free(nse);
 }
 
+void gprs_ns2_free_nses(struct gprs_ns2_inst *nsi)
+{
+	struct gprs_ns2_nse *nse, *ntmp;
+
+	llist_for_each_entry_safe(nse, ntmp, &nsi->nse, list) {
+		gprs_ns2_free_nse(nse);
+	}
+}
+
 static inline int ns2_tlv_parse(struct tlv_parsed *dec,
 			 const uint8_t *buf, int buf_len, uint8_t lv_tag,
 			 uint8_t lv_tag2)
@@ -997,15 +1006,10 @@
  *  \param[in] nsi NS instance to destroy */
 void gprs_ns2_free(struct gprs_ns2_inst *nsi)
 {
-	struct gprs_ns2_nse *nse, *ntmp;
-
 	if (!nsi)
 		return;
 
-	llist_for_each_entry_safe(nse, ntmp, &nsi->nse, list) {
-		gprs_ns2_free_nse(nse);
-	}
-
+	gprs_ns2_free_nses(nsi);
 	gprs_ns2_free_binds(nsi);
 
 	talloc_free(nsi);