diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h
index 9a758d3..b1b6c1c 100644
--- a/include/osmocom/msc/a_iface.h
+++ b/include/osmocom/msc/a_iface.h
@@ -66,7 +66,7 @@
 int a_iface_tx_dtap(struct msgb *msg);
 
 /* Send Cipher mode command via A-interface */
-int a_iface_tx_cipher_mode(const struct gsm_subscriber_connection *conn,
+int a_iface_tx_cipher_mode(const struct ran_conn *conn,
 			   struct gsm0808_encrypt_info *ei, int include_imeisv);
 
 /* Page a subscriber via A-interface */
@@ -76,11 +76,11 @@
 int a_iface_tx_assignment(const struct gsm_trans *trans);
 
 /* Send clear command via A-interface */
-int a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn);
+int a_iface_tx_clear_cmd(struct ran_conn *conn);
 
-int a_iface_tx_classmark_request(const struct gsm_subscriber_connection *conn);
+int a_iface_tx_classmark_request(const struct ran_conn *conn);
 
-/* Clear all subscriber connections on a specified BSC
+/* Clear all RAN connections on a specified BSC
  * (Helper function for a_iface_bssap.c) */
 void a_clear_all(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *bsc_addr);
 
diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h
index 0692e09..5ff16de 100644
--- a/include/osmocom/msc/gsm_04_08.h
+++ b/include/osmocom/msc/gsm_04_08.h
@@ -9,7 +9,7 @@
 struct gsm_bts;
 struct gsm_network;
 struct gsm_trans;
-struct gsm_subscriber_connection;
+struct ran_conn;
 struct amr_multirate_conf;
 struct amr_mode;
 
@@ -22,29 +22,29 @@
 				   name);
 }
 
-void cm_service_request_concludes(struct gsm_subscriber_connection *conn,
+void cm_service_request_concludes(struct ran_conn *conn,
 				  struct msgb *msg);
 
 /* config options controlling the behaviour of the lower leves */
 void gsm0408_clear_all_trans(struct gsm_network *net, int protocol);
-int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg);
+int gsm0408_dispatch(struct ran_conn *conn, struct msgb *msg);
 
 int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id);
 /* don't use "enum gsm_chreq_reason_t" to avoid circular dependency */
 void gsm_net_update_ctype(struct gsm_network *net);
 
-int gsm48_tx_simple(struct gsm_subscriber_connection *conn,
+int gsm48_tx_simple(struct ran_conn *conn,
 		    uint8_t pdisc, uint8_t msg_type);
-int gsm48_tx_mm_info(struct gsm_subscriber_connection *conn);
-int gsm48_tx_mm_auth_req(struct gsm_subscriber_connection *conn, uint8_t *rand,
+int gsm48_tx_mm_info(struct ran_conn *conn);
+int gsm48_tx_mm_auth_req(struct ran_conn *conn, uint8_t *rand,
 			 uint8_t *autn, int key_seq);
-int gsm48_tx_mm_auth_rej(struct gsm_subscriber_connection *conn);
-int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn);
-int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
+int gsm48_tx_mm_auth_rej(struct ran_conn *conn);
+int gsm48_tx_mm_serv_ack(struct ran_conn *conn);
+int gsm48_tx_mm_serv_rej(struct ran_conn *conn,
 				enum gsm48_reject_value value);
 int gsm48_send_rr_release(struct gsm_lchan *lchan);
 int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv);
-int gsm48_send_rr_app_info(struct gsm_subscriber_connection *conn, uint8_t apdu_id,
+int gsm48_send_rr_app_info(struct ran_conn *conn, uint8_t apdu_id,
 			   uint8_t apdu_len, const uint8_t *apdu);
 int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_class);
 int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan,
@@ -70,12 +70,12 @@
 void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd,
 			   const struct gsm_lchan *lchan);
 
-void release_security_operation(struct gsm_subscriber_connection *conn);
-void allocate_security_operation(struct gsm_subscriber_connection *conn);
+void release_security_operation(struct ran_conn *conn);
+void allocate_security_operation(struct ran_conn *conn);
 
 int gsm48_multirate_config(uint8_t *lv, const struct amr_multirate_conf *mr, const struct amr_mode *modes);
 
 int gsm48_tch_rtp_create(struct gsm_trans *trans);
-int gsm48_conn_sendmsg(struct msgb *msg, struct gsm_subscriber_connection *conn, struct gsm_trans *trans);
+int gsm48_conn_sendmsg(struct msgb *msg, struct ran_conn *conn, struct gsm_trans *trans);
 
 #endif
diff --git a/include/osmocom/msc/gsm_04_11.h b/include/osmocom/msc/gsm_04_11.h
index a368d46..95098c9 100644
--- a/include/osmocom/msc/gsm_04_11.h
+++ b/include/osmocom/msc/gsm_04_11.h
@@ -4,7 +4,7 @@
 #include <osmocom/gsm/protocol/gsm_04_11.h>
 
 struct vlr_subscr;
-struct gsm_subscriber_connection;
+struct ran_conn;
 struct gsm_trans;
 
 #define UM_SAPI_SMS 3	/* See GSM 04.05/04.06 */
@@ -30,7 +30,7 @@
 struct gsm_network;
 struct msgb;
 
-int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg);
+int gsm0411_rcv_sms(struct ran_conn *conn, struct msgb *msg);
 
 struct gsm_sms *sms_alloc(void);
 void sms_free(struct gsm_sms *sms);
@@ -41,7 +41,7 @@
 int gsm411_send_sms(struct gsm_network *net,
 		    struct vlr_subscr *vsub,
 		    struct gsm_sms *sms);
-void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn);
+void gsm411_sapi_n_reject(struct ran_conn *conn);
 
 int gsm411_send_rp_ack(struct gsm_trans *trans, uint8_t msg_ref);
 int gsm411_send_rp_error(struct gsm_trans *trans, uint8_t msg_ref,
diff --git a/include/osmocom/msc/gsm_04_14.h b/include/osmocom/msc/gsm_04_14.h
index 3cdbe04..a6bafce 100644
--- a/include/osmocom/msc/gsm_04_14.h
+++ b/include/osmocom/msc/gsm_04_14.h
@@ -2,14 +2,14 @@
 
 #include <osmocom/gsm/protocol/gsm_04_14.h>
 
-int gsm0414_tx_close_tch_loop_cmd(struct gsm_subscriber_connection *conn,
+int gsm0414_tx_close_tch_loop_cmd(struct ran_conn *conn,
 				  enum gsm414_tch_loop_mode loop_mode);
-int gsm0414_tx_open_loop_cmd(struct gsm_subscriber_connection *conn);
-int gsm0414_tx_act_emmi_cmd(struct gsm_subscriber_connection *conn);
-int gsm0414_tx_test_interface(struct gsm_subscriber_connection *conn,
+int gsm0414_tx_open_loop_cmd(struct ran_conn *conn);
+int gsm0414_tx_act_emmi_cmd(struct ran_conn *conn);
+int gsm0414_tx_test_interface(struct ran_conn *conn,
 			      uint8_t tested_devs);
-int gsm0414_tx_reset_ms_pos_store(struct gsm_subscriber_connection *conn,
+int gsm0414_tx_reset_ms_pos_store(struct ran_conn *conn,
 				  uint8_t technology);
 
-int gsm0414_rcv_test(struct gsm_subscriber_connection *conn,
+int gsm0414_rcv_test(struct ran_conn *conn,
 		     struct msgb *msg);
diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h
index c448c91..29b800b 100644
--- a/include/osmocom/msc/gsm_04_80.h
+++ b/include/osmocom/msc/gsm_04_80.h
@@ -2,12 +2,12 @@
 
 #include <stdint.h>
 
-struct gsm_subscriber_connection;
+struct ran_conn;
 
-int msc_send_ussd_reject(struct gsm_subscriber_connection *conn,
+int msc_send_ussd_reject(struct ran_conn *conn,
 			     uint8_t transaction_id, int invoke_id,
 			     uint8_t problem_tag, uint8_t problem_code);
 
-int msc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level,
+int msc_send_ussd_notify(struct ran_conn *conn, int level,
 			 const char *text);
-int msc_send_ussd_release_complete(struct gsm_subscriber_connection *conn);
+int msc_send_ussd_release_complete(struct ran_conn *conn);
diff --git a/include/osmocom/msc/gsm_09_11.h b/include/osmocom/msc/gsm_09_11.h
index 5e689fb..8fbe41b 100644
--- a/include/osmocom/msc/gsm_09_11.h
+++ b/include/osmocom/msc/gsm_09_11.h
@@ -3,5 +3,5 @@
 #include <osmocom/core/msgb.h>
 #include <osmocom/gsm/gsup.h>
 
-int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg);
+int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg);
 int gsm0911_gsup_handler(struct vlr_subscr *vsub, struct osmo_gsup_message *gsup);
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 864bc0a..12a02bd 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -90,11 +90,11 @@
 }
 
 /* active radio connection of a mobile subscriber */
-struct gsm_subscriber_connection {
-	/* global linked list of subscriber_connections */
+struct ran_conn {
+	/* global linked list of ran_conn instances */
 	struct llist_head entry;
 
-	/* FSM instance to control the subscriber connection's permissions and lifetime. */
+	/* FSM instance to control the RAN connection's permissions and lifetime. */
 	struct osmo_fsm_inst *fi;
 	enum complete_layer3_type complete_layer3_type;
 
@@ -168,12 +168,12 @@
 		struct osmo_sccp_user *scu;
 
 		/* The address of the BSC that is associated
-		 * with this subscriber connection */
+		 * with this RAN connection */
 		struct osmo_sccp_addr bsc_addr;
 
 		/* The connection identifier that is used
 		 * to reference the SCCP connection that is
-		 * associated with this subscriber connection */
+		 * associated with this RAN connection */
 		uint32_t conn_id;
 
 		bool waiting_for_clear_complete;
@@ -293,9 +293,9 @@
 	mncc_recv_cb_t mncc_recv;
 	struct llist_head upqueue;
 	/*
-	 * TODO: Move the trans_list into the subscriber connection and
+	 * TODO: Move the trans_list into the RAN connection and
 	 * create a pending list for MT transactions. These exist before
-	 * we have a subscriber connection.
+	 * we have a RAN connection.
 	 */
 	struct llist_head trans_list;
 
@@ -311,8 +311,8 @@
 	/* control interface */
 	struct ctrl_handle *ctrl;
 
-	/* all active subscriber connections. */
-	struct llist_head subscr_conns;
+	/* all active RAN connections. */
+	struct llist_head ran_conns;
 
 	/* if override is nonzero, this timezone data is used for all MM
 	 * contexts. */
diff --git a/include/osmocom/msc/gsm_subscriber.h b/include/osmocom/msc/gsm_subscriber.h
index 01d9c58..ec2d3a4 100644
--- a/include/osmocom/msc/gsm_subscriber.h
+++ b/include/osmocom/msc/gsm_subscriber.h
@@ -58,13 +58,13 @@
 
 void subscr_remove_request(struct subscr_request *req);
 int subscr_rx_paging_response(struct msgb *msg,
-			      struct gsm_subscriber_connection *conn);
+			      struct ran_conn *conn);
 
 void subscr_paging_cancel(struct vlr_subscr *vsub, enum gsm_paging_event event);
 int subscr_paging_dispatch(unsigned int hooknum, unsigned int event,
 			   struct msgb *msg, void *data, void *param);
 
 /* Find an allocated channel for a specified subscriber */
-struct gsm_subscriber_connection *connection_for_subscr(struct vlr_subscr *vsub);
+struct ran_conn *connection_for_subscr(struct vlr_subscr *vsub);
 
 #endif /* _GSM_SUBSCR_H */
diff --git a/include/osmocom/msc/iucs.h b/include/osmocom/msc/iucs.h
index 8b22104..2a70c65 100644
--- a/include/osmocom/msc/iucs.h
+++ b/include/osmocom/msc/iucs.h
@@ -5,8 +5,8 @@
 int gsm0408_rcvmsg_iucs(struct gsm_network *network, struct msgb *msg,
 			uint16_t *lac);
 
-struct gsm_subscriber_connection *subscr_conn_lookup_iu(struct gsm_network *network,
-							struct ranap_ue_conn_ctx *ue);
+struct ran_conn *ran_conn_lookup_iu(struct gsm_network *network,
+				    struct ranap_ue_conn_ctx *ue);
 int iu_rab_act_cs(struct gsm_trans *trans);
 
 uint32_t iu_get_conn_id(const struct ranap_ue_conn_ctx *ue);
diff --git a/include/osmocom/msc/msc_ifaces.h b/include/osmocom/msc/msc_ifaces.h
index ca25e9d..94423ca 100644
--- a/include/osmocom/msc/msc_ifaces.h
+++ b/include/osmocom/msc/msc_ifaces.h
@@ -29,11 +29,11 @@
 /* Each main linkage must implement this function (see comment above). */
 extern int iu_tx(struct msgb *msg, uint8_t sapi);
 
-int msc_tx_dtap(struct gsm_subscriber_connection *conn,
+int msc_tx_dtap(struct ran_conn *conn,
 		struct msgb *msg);
 
-int msc_gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn);
-int msc_gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
+int msc_gsm48_tx_mm_serv_ack(struct ran_conn *conn);
+int msc_gsm48_tx_mm_serv_rej(struct ran_conn *conn,
 			     enum gsm48_reject_value value);
 
-int msc_tx_common_id(struct gsm_subscriber_connection *conn);
+int msc_tx_common_id(struct ran_conn *conn);
diff --git a/include/osmocom/msc/msc_mgcp.h b/include/osmocom/msc/msc_mgcp.h
index 3c4bc62..ddd8837 100644
--- a/include/osmocom/msc/msc_mgcp.h
+++ b/include/osmocom/msc/msc_mgcp.h
@@ -25,8 +25,8 @@
 
 /* MGCP state handler context. This context information stores all information
  * to handle the direction of the RTP streams via MGCP. There is one instance
- * of this context struct per subscriber connection.
- * (see also struct gsm_subscriber_connection) */
+ * of this context struct per RAN connection.
+ * (see also struct ran_conn) */
 struct mgcp_ctx {
 	/* FSM instance, which handles the connection switching procedure */
 	struct osmo_fsm_inst *fsm;
@@ -56,6 +56,6 @@
 };
 
 int msc_mgcp_call_assignment(struct gsm_trans *trans);
-int msc_mgcp_ass_complete(struct gsm_subscriber_connection *conn, uint16_t port, char *addr);
+int msc_mgcp_ass_complete(struct ran_conn *conn, uint16_t port, char *addr);
 int msc_mgcp_call_complete(struct gsm_trans *trans, uint16_t port, char *addr);
 int msc_mgcp_call_release(struct gsm_trans *trans);
diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h
index 674de3b..38cb497 100644
--- a/include/osmocom/msc/osmo_msc.h
+++ b/include/osmocom/msc/osmo_msc.h
@@ -11,77 +11,74 @@
 #define MSC_HLR_REMOTE_IP_DEFAULT "127.0.0.1"
 #define MSC_HLR_REMOTE_PORT_DEFAULT OSMO_GSUP_PORT
 
-enum subscr_conn_fsm_event {
+enum ran_conn_fsm_event {
 	/* Accepted the initial Complete Layer 3 (starting to evaluate Authentication and Ciphering) */
-	SUBSCR_CONN_E_COMPLETE_LAYER_3,
+	RAN_CONN_E_COMPLETE_LAYER_3,
 	/* Received Classmark Update, typically neede for Ciphering Mode Command */
-	SUBSCR_CONN_E_CLASSMARK_UPDATE,
+	RAN_CONN_E_CLASSMARK_UPDATE,
 	/* LU or Process Access FSM has determined that this conn is good */
-	SUBSCR_CONN_E_ACCEPTED,
+	RAN_CONN_E_ACCEPTED,
 	/* received first reply from MS in "real" CC, SMS, USSD communication */
-	SUBSCR_CONN_E_COMMUNICATING,
+	RAN_CONN_E_COMMUNICATING,
 	/* Some async action has completed, check again whether all is done */
-	SUBSCR_CONN_E_RELEASE_WHEN_UNUSED,
+	RAN_CONN_E_RELEASE_WHEN_UNUSED,
 	/* MS/BTS/BSC originated close request */
-	SUBSCR_CONN_E_MO_CLOSE,
+	RAN_CONN_E_MO_CLOSE,
 	/* MSC originated close request, e.g. failed authentication */
-	SUBSCR_CONN_E_CN_CLOSE,
+	RAN_CONN_E_CN_CLOSE,
 	/* The usage count for the conn has reached zero */
-	SUBSCR_CONN_E_UNUSED,
+	RAN_CONN_E_UNUSED,
 };
 
-enum subscr_conn_fsm_state {
-	SUBSCR_CONN_S_NEW,
-	SUBSCR_CONN_S_AUTH_CIPH,
-	SUBSCR_CONN_S_WAIT_CLASSMARK_UPDATE,
-	SUBSCR_CONN_S_ACCEPTED,
-	SUBSCR_CONN_S_COMMUNICATING,
-	SUBSCR_CONN_S_RELEASING,
-	SUBSCR_CONN_S_RELEASED,
+enum ran_conn_fsm_state {
+	RAN_CONN_S_NEW,
+	RAN_CONN_S_AUTH_CIPH,
+	RAN_CONN_S_WAIT_CLASSMARK_UPDATE,
+	RAN_CONN_S_ACCEPTED,
+	RAN_CONN_S_COMMUNICATING,
+	RAN_CONN_S_RELEASING,
+	RAN_CONN_S_RELEASED,
 };
 
-struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network,
-							enum ran_type via_ran, uint16_t lac);
+struct ran_conn *ran_conn_alloc(struct gsm_network *network, enum ran_type via_ran, uint16_t lac);
 
-void msc_subscr_conn_update_id(struct gsm_subscriber_connection *conn,
-			       enum complete_layer3_type from, const char *id);
-char *msc_subscr_conn_get_conn_id(struct gsm_subscriber_connection *conn);
+void ran_conn_update_id(struct ran_conn *conn, enum complete_layer3_type from, const char *id);
+char *ran_conn_get_conn_id(struct ran_conn *conn);
 
-void msc_subscr_conn_complete_layer_3(struct gsm_subscriber_connection *conn);
+void ran_conn_complete_layer_3(struct ran_conn *conn);
 
 int msc_vlr_alloc(struct gsm_network *net);
 int msc_vlr_start(struct gsm_network *net);
 
-void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci);
-int msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause);
-void msc_compl_l3(struct gsm_subscriber_connection *conn,
+void msc_sapi_n_reject(struct ran_conn *conn, int dlci);
+int msc_clear_request(struct ran_conn *conn, uint32_t cause);
+void msc_compl_l3(struct ran_conn *conn,
 		  struct msgb *msg, uint16_t chosen_channel);
-void msc_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg);
-int msc_classmark_request_then_cipher_mode_cmd(struct gsm_subscriber_connection *conn, bool umts_aka,
+void msc_dtap(struct ran_conn *conn, struct msgb *msg);
+int msc_classmark_request_then_cipher_mode_cmd(struct ran_conn *conn, bool umts_aka,
 					       bool retrieve_imeisv);
-int msc_geran_set_cipher_mode(struct gsm_subscriber_connection *conn, bool umts_aka, bool retrieve_imeisv);
-void msc_cipher_mode_compl(struct gsm_subscriber_connection *conn,
+int msc_geran_set_cipher_mode(struct ran_conn *conn, bool umts_aka, bool retrieve_imeisv);
+void msc_cipher_mode_compl(struct ran_conn *conn,
 			   struct msgb *msg, uint8_t alg_id);
-void msc_rx_sec_mode_compl(struct gsm_subscriber_connection *conn);
-void msc_classmark_chg(struct gsm_subscriber_connection *conn,
+void msc_rx_sec_mode_compl(struct ran_conn *conn);
+void msc_classmark_chg(struct ran_conn *conn,
 		       const uint8_t *cm2, uint8_t cm2_len,
 		       const uint8_t *cm3, uint8_t cm3_len);
-void msc_assign_fail(struct gsm_subscriber_connection *conn,
+void msc_assign_fail(struct ran_conn *conn,
 		     uint8_t cause, uint8_t *rr_cause);
 
-void msc_subscr_conn_init(void);
-bool msc_subscr_conn_is_accepted(const struct gsm_subscriber_connection *conn);
-bool msc_subscr_conn_is_establishing_auth_ciph(const struct gsm_subscriber_connection *conn);
-void msc_subscr_conn_communicating(struct gsm_subscriber_connection *conn);
-void msc_subscr_conn_close(struct gsm_subscriber_connection *conn,
-			   uint32_t cause);
-void msc_subscr_conn_mo_close(struct gsm_subscriber_connection *conn, uint32_t cause);
-bool msc_subscr_conn_in_release(struct gsm_subscriber_connection *conn);
+void ran_conn_init(void);
+bool ran_conn_is_accepted(const struct ran_conn *conn);
+bool ran_conn_is_establishing_auth_ciph(const struct ran_conn *conn);
+void ran_conn_communicating(struct ran_conn *conn);
+void ran_conn_close(struct ran_conn *conn, uint32_t cause);
+void ran_conn_mo_close(struct ran_conn *conn, uint32_t cause);
+bool ran_conn_in_release(struct ran_conn *conn);
 
-void msc_subscr_conn_rx_bssmap_clear_complete(struct gsm_subscriber_connection *conn);
-void msc_subscr_conn_rx_iu_release_complete(struct gsm_subscriber_connection *conn);
+void ran_conn_rx_bssmap_clear_complete(struct ran_conn *conn);
+void ran_conn_rx_iu_release_complete(struct ran_conn *conn);
 
-enum msc_subscr_conn_use {
+enum ran_conn_use {
 	MSC_CONN_USE_UNTRACKED = -1,
 	MSC_CONN_USE_COMPL_L3,
 	MSC_CONN_USE_DTAP,
@@ -94,23 +91,19 @@
 	MSC_CONN_USE_RELEASE,
 };
 
-extern const struct value_string msc_subscr_conn_use_names[];
-static inline const char *msc_subscr_conn_use_name(enum msc_subscr_conn_use val)
-{ return get_value_string(msc_subscr_conn_use_names, val); }
+extern const struct value_string ran_conn_use_names[];
+static inline const char *ran_conn_use_name(enum ran_conn_use val)
+{ return get_value_string(ran_conn_use_names, val); }
 
-#define msc_subscr_conn_get(conn, balance_token) \
-	_msc_subscr_conn_get(conn, balance_token, __FILE__, __LINE__)
-#define msc_subscr_conn_put(conn, balance_token) \
-	_msc_subscr_conn_put(conn, balance_token, __FILE__, __LINE__)
-struct gsm_subscriber_connection *
-_msc_subscr_conn_get(struct gsm_subscriber_connection *conn,
-		     enum msc_subscr_conn_use balance_token,
-		     const char *file, int line);
-void _msc_subscr_conn_put(struct gsm_subscriber_connection *conn,
-			  enum msc_subscr_conn_use balance_token,
-			  const char *file, int line);
-bool msc_subscr_conn_used_by(struct gsm_subscriber_connection *conn,
-			     enum msc_subscr_conn_use token);
+#define ran_conn_get(conn, balance_token) \
+	_ran_conn_get(conn, balance_token, __FILE__, __LINE__)
+#define ran_conn_put(conn, balance_token) \
+	_ran_conn_put(conn, balance_token, __FILE__, __LINE__)
+struct ran_conn * _ran_conn_get(struct ran_conn *conn, enum ran_conn_use balance_token,
+				const char *file, int line);
+void _ran_conn_put(struct ran_conn *conn, enum ran_conn_use balance_token,
+		   const char *file, int line);
+bool ran_conn_used_by(struct ran_conn *conn, enum ran_conn_use token);
 
 void msc_stop_paging(struct vlr_subscr *vsub);
 
diff --git a/include/osmocom/msc/signal.h b/include/osmocom/msc/signal.h
index f630b27..5126976 100644
--- a/include/osmocom/msc/signal.h
+++ b/include/osmocom/msc/signal.h
@@ -83,11 +83,11 @@
 	int paging_result;
 
 	/* NULL in case the paging didn't work */
-	struct gsm_subscriber_connection *conn;
+	struct ran_conn *conn;
 };
 
 struct scall_signal_data {
-	struct gsm_subscriber_connection *conn;
+	struct ran_conn *conn;
 	void *data;
 };
 struct sms_signal_data {
diff --git a/include/osmocom/msc/silent_call.h b/include/osmocom/msc/silent_call.h
index 5fec77b..70324e5 100644
--- a/include/osmocom/msc/silent_call.h
+++ b/include/osmocom/msc/silent_call.h
@@ -1,15 +1,15 @@
 #ifndef _SILENT_CALL_H
 #define _SILENT_CALL_H
 
-struct gsm_subscriber_connection;
+struct ran_conn;
 
 extern int gsm_silent_call_start(struct vlr_subscr *vsub,
                                  void *data, int type);
 extern int gsm_silent_call_stop(struct vlr_subscr *vsub);
 
 #if 0
-extern int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg);
-extern int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg);
+extern int silent_call_rx(struct ran_conn *conn, struct msgb *msg);
+extern int silent_call_reroute(struct ran_conn *conn, struct msgb *msg);
 #endif
 
 #endif /* _SILENT_CALL_H */
diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h
index 762eeea..0760c07 100644
--- a/include/osmocom/msc/transaction.h
+++ b/include/osmocom/msc/transaction.h
@@ -38,7 +38,7 @@
 	struct vlr_subscr *vsub;
 
 	/* The associated connection we are using to transmit messages */
-	struct gsm_subscriber_connection *conn;
+	struct ran_conn *conn;
 
 	/* reference from MNCC or other application */
 	uint32_t callref;
@@ -98,11 +98,11 @@
 
 
 
-struct gsm_trans *trans_find_by_id(struct gsm_subscriber_connection *conn,
+struct gsm_trans *trans_find_by_id(struct ran_conn *conn,
 				   uint8_t proto, uint8_t trans_id);
 struct gsm_trans *trans_find_by_callref(struct gsm_network *net,
 					uint32_t callref);
-struct gsm_trans *trans_find_by_sm_rp_mr(struct gsm_subscriber_connection *conn,
+struct gsm_trans *trans_find_by_sm_rp_mr(struct ran_conn *conn,
 					 uint8_t sm_rp_mr);
 
 struct gsm_trans *trans_alloc(struct gsm_network *net,
@@ -113,7 +113,7 @@
 
 int trans_assign_trans_id(struct gsm_network *net, struct vlr_subscr *vsub,
 			  uint8_t protocol, uint8_t ti_flag);
-struct gsm_trans *trans_has_conn(const struct gsm_subscriber_connection *conn);
-void trans_conn_closed(struct gsm_subscriber_connection *conn);
+struct gsm_trans *trans_has_conn(const struct ran_conn *conn);
+void trans_conn_closed(struct ran_conn *conn);
 
 #endif
diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h
index d52713c..6e16903 100644
--- a/include/osmocom/msc/vlr.h
+++ b/include/osmocom/msc/vlr.h
@@ -289,7 +289,7 @@
 			   enum osmo_fsm_term_cause fsm_cause,
 			   uint8_t gsm48_cause);
 
-/* tell the VLR that the subscriber connection is gone */
+/* tell the VLR that the RAN connection is gone */
 int vlr_subscr_disconnected(struct vlr_subscr *vsub);
 bool vlr_subscr_expire(struct vlr_subscr *vsub);
 int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const uint8_t *mi, size_t mi_len);
