diff --git a/openbsc/include/osmocom/gprs/gprs_bssgp.h b/openbsc/include/osmocom/gprs/gprs_bssgp.h
index e060fc0..66c2290 100644
--- a/openbsc/include/osmocom/gprs/gprs_bssgp.h
+++ b/openbsc/include/osmocom/gprs/gprs_bssgp.h
@@ -236,7 +236,7 @@
 #include <osmocom/gprs/gprs_msgb.h>
 
 /* BSSGP-UL-UNITDATA.ind */
-int gprs_bssgp_rcvmsg(struct msgb *msg);
+int bssgp_rcvmsg(struct msgb *msg);
 
 /* BSSGP-DL-UNITDATA.req */
 struct bssgp_lv {
@@ -252,8 +252,8 @@
 	struct bssgp_lv ms_ra_cap;
 	uint8_t qos_profile[3];
 };
-int gprs_bssgp_tx_dl_ud(struct msgb *msg, uint16_t pdu_lifetime,
-			struct bssgp_dl_ud_par *dup);
+int bssgp_tx_dl_ud(struct msgb *msg, uint16_t pdu_lifetime,
+		   struct bssgp_dl_ud_par *dup);
 
 uint16_t bssgp_parse_cell_id(struct gprs_ra_id *raid, const uint8_t *buf);
 int bssgp_create_cell_id(uint8_t *buf, const struct gprs_ra_id *raid,
@@ -292,12 +292,12 @@
 };
 
 /* Send a single GMM-PAGING.req to a given NSEI/NS-BVCI */
-int gprs_bssgp_tx_paging(uint16_t nsei, uint16_t ns_bvci,
-			 struct bssgp_paging_info *pinfo);
+int bssgp_tx_paging(uint16_t nsei, uint16_t ns_bvci,
+		    struct bssgp_paging_info *pinfo);
 
 /* gprs_bssgp_vty.c */
-int gprs_bssgp_vty_init(void);
-void gprs_bssgp_set_log_ss(int ss);
+int bssgp_vty_init(void);
+void bssgp_set_log_ss(int ss);
 
 int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx);
 
diff --git a/openbsc/src/libgb/gprs_bssgp.c b/openbsc/src/libgb/gprs_bssgp.c
index 4775048..4b8c730 100644
--- a/openbsc/src/libgb/gprs_bssgp.c
+++ b/openbsc/src/libgb/gprs_bssgp.c
@@ -540,8 +540,8 @@
 }
 
 /* Receive a BSSGP PDU from a BSS on a PTP BVCI */
-static int gprs_bssgp_rx_ptp(struct msgb *msg, struct tlv_parsed *tp,
-			     struct bssgp_bvc_ctx *bctx)
+static int bssgp_rx_ptp(struct msgb *msg, struct tlv_parsed *tp,
+			struct bssgp_bvc_ctx *bctx)
 {
 	struct bssgp_normal_hdr *bgph =
 			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
@@ -619,8 +619,8 @@
 }
 
 /* Receive a BSSGP PDU from a BSS on a SIGNALLING BVCI */
-static int gprs_bssgp_rx_sign(struct msgb *msg, struct tlv_parsed *tp,
-				struct bssgp_bvc_ctx *bctx)
+static int bssgp_rx_sign(struct msgb *msg, struct tlv_parsed *tp,
+			 struct bssgp_bvc_ctx *bctx)
 {
 	struct bssgp_normal_hdr *bgph =
 			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
@@ -710,7 +710,7 @@
 }
 
 /* We expect msgb_bssgph() to point to the BSSGP header */
-int gprs_bssgp_rcvmsg(struct msgb *msg)
+int bssgp_rcvmsg(struct msgb *msg)
 {
 	struct bssgp_normal_hdr *bgph =
 			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
@@ -752,17 +752,17 @@
 	}
 
 	if (ns_bvci == BVCI_SIGNALLING)
-		rc = gprs_bssgp_rx_sign(msg, &tp, bctx);
+		rc = bssgp_rx_sign(msg, &tp, bctx);
 	else if (ns_bvci == BVCI_PTM)
 		rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg);
 	else
-		rc = gprs_bssgp_rx_ptp(msg, &tp, bctx);
+		rc = bssgp_rx_ptp(msg, &tp, bctx);
 
 	return rc;
 }
 
-int gprs_bssgp_tx_dl_ud(struct msgb *msg, uint16_t pdu_lifetime,
-			struct bssgp_dl_ud_par *dup)
+int bssgp_tx_dl_ud(struct msgb *msg, uint16_t pdu_lifetime,
+		   struct bssgp_dl_ud_par *dup)
 {
 	struct bssgp_bvc_ctx *bctx;
 	struct bssgp_ud_hdr *budh;
@@ -851,8 +851,8 @@
 }
 
 /* Send a single GMM-PAGING.req to a given NSEI/NS-BVCI */
-int gprs_bssgp_tx_paging(uint16_t nsei, uint16_t ns_bvci,
-			 struct bssgp_paging_info *pinfo)
+int bssgp_tx_paging(uint16_t nsei, uint16_t ns_bvci,
+		     struct bssgp_paging_info *pinfo)
 {
 	struct msgb *msg = bssgp_msgb_alloc();
 	struct bssgp_normal_hdr *bgph =
@@ -913,7 +913,7 @@
 	return gprs_ns_sendmsg(bssgp_nsi, msg);
 }
 
-void gprs_bssgp_set_log_ss(int ss)
+void bssgp_set_log_ss(int ss)
 {
 	DBSSGP = ss;
 }
diff --git a/openbsc/src/libgb/gprs_bssgp_bss.c b/openbsc/src/libgb/gprs_bssgp_bss.c
index 4ca11ff..c058850 100644
--- a/openbsc/src/libgb/gprs_bssgp_bss.c
+++ b/openbsc/src/libgb/gprs_bssgp_bss.c
@@ -336,8 +336,8 @@
 }
 
 /* Parse a single GMM-PAGING.req to a given NSEI/NS-BVCI */
-int gprs_bssgp_rx_paging(struct bssgp_paging_info *pinfo,
-			 struct msgb *msg)
+int bssgp_rx_paging(struct bssgp_paging_info *pinfo,
+		    struct msgb *msg)
 {
 	struct bssgp_normal_hdr *bgph =
 			(struct bssgp_normal_hdr *) msgb_bssgph(msg);
diff --git a/openbsc/src/libgb/gprs_bssgp_vty.c b/openbsc/src/libgb/gprs_bssgp_vty.c
index 49a90c3..aa1f106 100644
--- a/openbsc/src/libgb/gprs_bssgp_vty.c
+++ b/openbsc/src/libgb/gprs_bssgp_vty.c
@@ -167,7 +167,7 @@
 	return CMD_SUCCESS;
 }
 
-int gprs_bssgp_vty_init(void)
+int bssgp_vty_init(void)
 {
 	install_element_ve(&show_bssgp_cmd);
 	install_element_ve(&show_bssgp_stats_cmd);
diff --git a/openbsc/src/libgb/libosmo-gb.map b/openbsc/src/libgb/libosmo-gb.map
index 60f85b2..83a8302 100644
--- a/openbsc/src/libgb/libosmo-gb.map
+++ b/openbsc/src/libgb/libosmo-gb.map
@@ -23,13 +23,12 @@
 bssgp_tx_suspend_ack;
 bssgp_tx_suspend_nack;
 bssgp_tx_ul_ud;
-
-gprs_bssgp_rcvmsg
-gprs_bssgp_rx_paging
-gprs_bssgp_set_log_ss
-gprs_bssgp_tx_dl_ud
-gprs_bssgp_tx_paging
-gprs_bssgp_vty_init
+bssgp_rcvmsg
+bssgp_rx_paging
+bssgp_set_log_ss
+bssgp_tx_dl_ud
+bssgp_tx_paging
+bssgp_vty_init
 
 gprs_ns_cause_str;
 gprs_ns_destroy;
