Gb/BSSGP: replace hardcoded Tx into NS library by a callback

Add bssgp_ns_send callback() to set the transmission path into the
NS library. This allows to use the Gb implementation with
the old NS and the new upcoming NS implementation.
Users of the old NS implementation don't have to set the callback as
the default is the old NS implementation.

Only users of the new NS implementation need to set the callback and
the callback data.

Change-Id: I3a498e6a0d68b87fed80c64199b22395796761b4
diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c
index 7708949..917f1f3 100644
--- a/src/gb/gprs_bssgp_util.c
+++ b/src/gb/gprs_bssgp_util.c
@@ -32,6 +32,7 @@
 #include <osmocom/gprs/gprs_bssgp.h>
 #include <osmocom/gprs/gprs_ns.h>
 
+#include "gprs_bssgp_internal.h"
 #include "common_vty.h"
 
 struct gprs_ns_inst *bssgp_nsi;
@@ -210,7 +211,7 @@
 	_bvci = osmo_htons(bvci);
 	msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci);
 
-	return gprs_ns_sendmsg(bssgp_nsi, msg);
+	return bssgp_ns_send(bssgp_ns_send_data, msg);
 }
 
 /* Chapter 10.4.14: Status */
@@ -248,5 +249,5 @@
 	msgb_tvlv_put(msg, BSSGP_IE_PDU_IN_ERROR,
 		      msgb_bssgp_len(orig_msg), msgb_bssgph(orig_msg));
 
-	return gprs_ns_sendmsg(bssgp_nsi, msg);
+	return bssgp_ns_send(bssgp_ns_send_data, msg);
 }