gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr role

Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a
diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h
index ef9a56a..0b3ea1f 100644
--- a/include/osmocom/gprs/gprs_ns2.h
+++ b/include/osmocom/gprs/gprs_ns2.h
@@ -182,6 +182,7 @@
 		struct gprs_ns2_inst *nsi,
 		const char *netif);
 const char *gprs_ns2_fr_bind_netif(struct gprs_ns2_vc_bind *bind);
+enum osmo_fr_role gprs_ns2_fr_bind_role(struct gprs_ns2_vc_bind *bind);
 int gprs_ns2_fr_bind(struct gprs_ns2_inst *nsi,
 		     const char *name,
 		     const char *netif,
diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c
index 925d5ed..8147f66 100644
--- a/src/gb/gprs_ns2_fr.c
+++ b/src/gb/gprs_ns2_fr.c
@@ -558,6 +558,21 @@
 	return rc;
 }
 
+/*! Return the frame relay role of a bind
+ * \param[in] bind The bind
+ * \return the frame relay role or -EINVAL if bind is not frame relay
+ */
+enum osmo_fr_role gprs_ns2_fr_bind_role(struct gprs_ns2_vc_bind *bind)
+{
+	struct priv_bind *priv;
+
+	if (bind->driver != &vc_driver_fr)
+		return -EINVAL;
+
+	priv = bind->priv;
+	return priv->link->role;
+}
+
 /*! Return the network interface of the bind
  * \param[in] bind The bind
  * \return the network interface