<p>Neels Hofmeyr has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12015">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rename gsm_subscriber_connection to ran_conn<br><br>In preparation for inter-BSC and inter-MSC handover, we need to separate the<br>subscriber management logic from the actual RAN connections. What better time<br>to finally rename gsm_subscriber_connection.<br><br>* Name choice:<br><br>In 2G, this is a connection to the BSS, but even though 3GPP TS commonly talk<br>of "BSS-A" and "BSS-B" when explaining handover, it's not good to call it<br>"bss_conn": in 3G a BSS is called RNS, IIUC.<br><br>The overall term for 2G (GERAN) and 3G (UTRAN) is RAN: Radio Access Network.<br><br>* Rationale:<br><br>A subscriber in the MSC so far has only one RAN connection, but e.g. for<br>inter-BSC handover, a second one needs to be created to handover to. Most of<br>the items in the former gsm_subscriber_connection are actually related to the<br>RAN, with only a few MM and RTP related items. So, as a first step, just rename<br>it to ran_conn, to cosmetically prepare for moving the not strictly RAN related<br>items away later.<br><br>Change-Id: Ic595f7a558d3553c067f77dc67543ab59659707a<br>---<br>M include/osmocom/msc/a_iface.h<br>M include/osmocom/msc/gsm_04_08.h<br>M include/osmocom/msc/gsm_04_11.h<br>M include/osmocom/msc/gsm_04_14.h<br>M include/osmocom/msc/gsm_04_80.h<br>M include/osmocom/msc/gsm_09_11.h<br>M include/osmocom/msc/gsm_data.h<br>M include/osmocom/msc/gsm_subscriber.h<br>M include/osmocom/msc/iucs.h<br>M include/osmocom/msc/msc_ifaces.h<br>M include/osmocom/msc/msc_mgcp.h<br>M include/osmocom/msc/osmo_msc.h<br>M include/osmocom/msc/signal.h<br>M include/osmocom/msc/silent_call.h<br>M include/osmocom/msc/transaction.h<br>M src/libmsc/a_iface.c<br>M src/libmsc/a_iface_bssap.c<br>M src/libmsc/gsm_04_08.c<br>M src/libmsc/gsm_04_08_cc.c<br>M src/libmsc/gsm_04_11.c<br>M src/libmsc/gsm_04_14.c<br>M src/libmsc/gsm_04_80.c<br>M src/libmsc/gsm_09_11.c<br>M src/libmsc/gsm_subscriber.c<br>M src/libmsc/iucs.c<br>M src/libmsc/iucs_ranap.c<br>M src/libmsc/msc_ifaces.c<br>M src/libmsc/msc_mgcp.c<br>M src/libmsc/msc_vty.c<br>M src/libmsc/osmo_msc.c<br>M src/libmsc/rrlp.c<br>M src/libmsc/silent_call.c<br>M src/libmsc/smpp_openbsc.c<br>M src/libmsc/smpp_smsc.h<br>M src/libmsc/subscr_conn.c<br>M src/libmsc/transaction.c<br>M tests/msc_vlr/msc_vlr_test_reject_concurrency.c<br>M tests/msc_vlr/msc_vlr_tests.c<br>M tests/msc_vlr/msc_vlr_tests.h<br>39 files changed, 285 insertions(+), 285 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/12015/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h</span><br><span>index 9a758d3..f66324e 100644</span><br><span>--- a/include/osmocom/msc/a_iface.h</span><br><span>+++ b/include/osmocom/msc/a_iface.h</span><br><span>@@ -66,7 +66,7 @@</span><br><span> int a_iface_tx_dtap(struct msgb *msg);</span><br><span> </span><br><span> /* Send Cipher mode command via A-interface */</span><br><span style="color: hsl(0, 100%, 40%);">-int a_iface_tx_cipher_mode(const struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int a_iface_tx_cipher_mode(const struct ran_conn *conn,</span><br><span>                     struct gsm0808_encrypt_info *ei, int include_imeisv);</span><br><span> </span><br><span> /* Page a subscriber via A-interface */</span><br><span>@@ -76,9 +76,9 @@</span><br><span> int a_iface_tx_assignment(const struct gsm_trans *trans);</span><br><span> </span><br><span> /* Send clear command via A-interface */</span><br><span style="color: hsl(0, 100%, 40%);">-int a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int a_iface_tx_clear_cmd(struct ran_conn *conn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int a_iface_tx_classmark_request(const struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int a_iface_tx_classmark_request(const struct ran_conn *conn);</span><br><span> </span><br><span> /* Clear all subscriber connections on a specified BSC</span><br><span>  * (Helper function for a_iface_bssap.c) */</span><br><span>diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h</span><br><span>index 8767070..b93a4b4 100644</span><br><span>--- a/include/osmocom/msc/gsm_04_08.h</span><br><span>+++ b/include/osmocom/msc/gsm_04_08.h</span><br><span>@@ -9,7 +9,7 @@</span><br><span> struct gsm_bts;</span><br><span> struct gsm_network;</span><br><span> struct gsm_trans;</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn;</span><br><span> struct amr_multirate_conf;</span><br><span> struct amr_mode;</span><br><span> </span><br><span>@@ -22,30 +22,30 @@</span><br><span>                                    name);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void cm_service_request_concludes(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void cm_service_request_concludes(struct ran_conn *conn,</span><br><span>                                  struct msgb *msg);</span><br><span> </span><br><span> /* config options controlling the behaviour of the lower leves */</span><br><span> void gsm0408_allow_everyone(int allow);</span><br><span> void gsm0408_clear_all_trans(struct gsm_network *net, int protocol);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0408_dispatch(struct ran_conn *conn, struct msgb *msg);</span><br><span> </span><br><span> int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id);</span><br><span> /* don't use "enum gsm_chreq_reason_t" to avoid circular dependency */</span><br><span> void gsm_net_update_ctype(struct gsm_network *net);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_simple(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_simple(struct ran_conn *conn,</span><br><span>                  uint8_t pdisc, uint8_t msg_type);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_info(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_auth_req(struct gsm_subscriber_connection *conn, uint8_t *rand,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_info(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_auth_req(struct ran_conn *conn, uint8_t *rand,</span><br><span>                       uint8_t *autn, int key_seq);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_auth_rej(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_auth_rej(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_serv_ack(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_serv_rej(struct ran_conn *conn,</span><br><span>                                 enum gsm48_reject_value value);</span><br><span> int gsm48_send_rr_release(struct gsm_lchan *lchan);</span><br><span> int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_send_rr_app_info(struct gsm_subscriber_connection *conn, uint8_t apdu_id,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_send_rr_app_info(struct ran_conn *conn, uint8_t apdu_id,</span><br><span>                         uint8_t apdu_len, const uint8_t *apdu);</span><br><span> int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_class);</span><br><span> int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan,</span><br><span>@@ -71,12 +71,12 @@</span><br><span> void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd,</span><br><span>                         const struct gsm_lchan *lchan);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void release_security_operation(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void allocate_security_operation(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void release_security_operation(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void allocate_security_operation(struct ran_conn *conn);</span><br><span> </span><br><span> int gsm48_multirate_config(uint8_t *lv, const struct amr_multirate_conf *mr, const struct amr_mode *modes);</span><br><span> </span><br><span> int gsm48_tch_rtp_create(struct gsm_trans *trans);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_conn_sendmsg(struct msgb *msg, struct gsm_subscriber_connection *conn, struct gsm_trans *trans);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_conn_sendmsg(struct msgb *msg, struct ran_conn *conn, struct gsm_trans *trans);</span><br><span> </span><br><span> #endif</span><br><span>diff --git a/include/osmocom/msc/gsm_04_11.h b/include/osmocom/msc/gsm_04_11.h</span><br><span>index a368d46..95098c9 100644</span><br><span>--- a/include/osmocom/msc/gsm_04_11.h</span><br><span>+++ b/include/osmocom/msc/gsm_04_11.h</span><br><span>@@ -4,7 +4,7 @@</span><br><span> #include <osmocom/gsm/protocol/gsm_04_11.h></span><br><span> </span><br><span> struct vlr_subscr;</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn;</span><br><span> struct gsm_trans;</span><br><span> </span><br><span> #define UM_SAPI_SMS 3       /* See GSM 04.05/04.06 */</span><br><span>@@ -30,7 +30,7 @@</span><br><span> struct gsm_network;</span><br><span> struct msgb;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0411_rcv_sms(struct ran_conn *conn, struct msgb *msg);</span><br><span> </span><br><span> struct gsm_sms *sms_alloc(void);</span><br><span> void sms_free(struct gsm_sms *sms);</span><br><span>@@ -41,7 +41,7 @@</span><br><span> int gsm411_send_sms(struct gsm_network *net,</span><br><span>                 struct vlr_subscr *vsub,</span><br><span>                     struct gsm_sms *sms);</span><br><span style="color: hsl(0, 100%, 40%);">-void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void gsm411_sapi_n_reject(struct ran_conn *conn);</span><br><span> </span><br><span> int gsm411_send_rp_ack(struct gsm_trans *trans, uint8_t msg_ref);</span><br><span> int gsm411_send_rp_error(struct gsm_trans *trans, uint8_t msg_ref,</span><br><span>diff --git a/include/osmocom/msc/gsm_04_14.h b/include/osmocom/msc/gsm_04_14.h</span><br><span>index 3cdbe04..a6bafce 100644</span><br><span>--- a/include/osmocom/msc/gsm_04_14.h</span><br><span>+++ b/include/osmocom/msc/gsm_04_14.h</span><br><span>@@ -2,14 +2,14 @@</span><br><span> </span><br><span> #include <osmocom/gsm/protocol/gsm_04_14.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_close_tch_loop_cmd(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_close_tch_loop_cmd(struct ran_conn *conn,</span><br><span>                             enum gsm414_tch_loop_mode loop_mode);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_open_loop_cmd(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_act_emmi_cmd(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_test_interface(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_open_loop_cmd(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_act_emmi_cmd(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_test_interface(struct ran_conn *conn,</span><br><span>                             uint8_t tested_devs);</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_reset_ms_pos_store(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_reset_ms_pos_store(struct ran_conn *conn,</span><br><span>                                 uint8_t technology);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_rcv_test(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_rcv_test(struct ran_conn *conn,</span><br><span>               struct msgb *msg);</span><br><span>diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h</span><br><span>index c448c91..29b800b 100644</span><br><span>--- a/include/osmocom/msc/gsm_04_80.h</span><br><span>+++ b/include/osmocom/msc/gsm_04_80.h</span><br><span>@@ -2,12 +2,12 @@</span><br><span> </span><br><span> #include <stdint.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_send_ussd_reject(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_send_ussd_reject(struct ran_conn *conn,</span><br><span>                         uint8_t transaction_id, int invoke_id,</span><br><span>                       uint8_t problem_tag, uint8_t problem_code);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_send_ussd_notify(struct ran_conn *conn, int level,</span><br><span>                   const char *text);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_send_ussd_release_complete(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_send_ussd_release_complete(struct ran_conn *conn);</span><br><span>diff --git a/include/osmocom/msc/gsm_09_11.h b/include/osmocom/msc/gsm_09_11.h</span><br><span>index 5e689fb..8fbe41b 100644</span><br><span>--- a/include/osmocom/msc/gsm_09_11.h</span><br><span>+++ b/include/osmocom/msc/gsm_09_11.h</span><br><span>@@ -3,5 +3,5 @@</span><br><span> #include <osmocom/core/msgb.h></span><br><span> #include <osmocom/gsm/gsup.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg);</span><br><span> int gsm0911_gsup_handler(struct vlr_subscr *vsub, struct osmo_gsup_message *gsup);</span><br><span>diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h</span><br><span>index 94a6ffd..5c167e1 100644</span><br><span>--- a/include/osmocom/msc/gsm_data.h</span><br><span>+++ b/include/osmocom/msc/gsm_data.h</span><br><span>@@ -90,7 +90,7 @@</span><br><span> }</span><br><span> </span><br><span> /* active radio connection of a mobile subscriber */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection {</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn {</span><br><span>       /* global linked list of subscriber_connections */</span><br><span>   struct llist_head entry;</span><br><span> </span><br><span>diff --git a/include/osmocom/msc/gsm_subscriber.h b/include/osmocom/msc/gsm_subscriber.h</span><br><span>index 01d9c58..ec2d3a4 100644</span><br><span>--- a/include/osmocom/msc/gsm_subscriber.h</span><br><span>+++ b/include/osmocom/msc/gsm_subscriber.h</span><br><span>@@ -58,13 +58,13 @@</span><br><span> </span><br><span> void subscr_remove_request(struct subscr_request *req);</span><br><span> int subscr_rx_paging_response(struct msgb *msg,</span><br><span style="color: hsl(0, 100%, 40%);">-                             struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+                              struct ran_conn *conn);</span><br><span> </span><br><span> void subscr_paging_cancel(struct vlr_subscr *vsub, enum gsm_paging_event event);</span><br><span> int subscr_paging_dispatch(unsigned int hooknum, unsigned int event,</span><br><span>                           struct msgb *msg, void *data, void *param);</span><br><span> </span><br><span> /* Find an allocated channel for a specified subscriber */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *connection_for_subscr(struct vlr_subscr *vsub);</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *connection_for_subscr(struct vlr_subscr *vsub);</span><br><span> </span><br><span> #endif /* _GSM_SUBSCR_H */</span><br><span>diff --git a/include/osmocom/msc/iucs.h b/include/osmocom/msc/iucs.h</span><br><span>index 8b22104..baedc0e 100644</span><br><span>--- a/include/osmocom/msc/iucs.h</span><br><span>+++ b/include/osmocom/msc/iucs.h</span><br><span>@@ -5,7 +5,7 @@</span><br><span> int gsm0408_rcvmsg_iucs(struct gsm_network *network, struct msgb *msg,</span><br><span>                       uint16_t *lac);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *subscr_conn_lookup_iu(struct gsm_network *network,</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *subscr_conn_lookup_iu(struct gsm_network *network,</span><br><span>                                                         struct ranap_ue_conn_ctx *ue);</span><br><span> int iu_rab_act_cs(struct gsm_trans *trans);</span><br><span> </span><br><span>diff --git a/include/osmocom/msc/msc_ifaces.h b/include/osmocom/msc/msc_ifaces.h</span><br><span>index ca25e9d..94423ca 100644</span><br><span>--- a/include/osmocom/msc/msc_ifaces.h</span><br><span>+++ b/include/osmocom/msc/msc_ifaces.h</span><br><span>@@ -29,11 +29,11 @@</span><br><span> /* Each main linkage must implement this function (see comment above). */</span><br><span> extern int iu_tx(struct msgb *msg, uint8_t sapi);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_tx_dtap(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_tx_dtap(struct ran_conn *conn,</span><br><span>            struct msgb *msg);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_gsm48_tx_mm_serv_ack(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_gsm48_tx_mm_serv_rej(struct ran_conn *conn,</span><br><span>                        enum gsm48_reject_value value);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_tx_common_id(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_tx_common_id(struct ran_conn *conn);</span><br><span>diff --git a/include/osmocom/msc/msc_mgcp.h b/include/osmocom/msc/msc_mgcp.h</span><br><span>index 3c4bc62..957f363 100644</span><br><span>--- a/include/osmocom/msc/msc_mgcp.h</span><br><span>+++ b/include/osmocom/msc/msc_mgcp.h</span><br><span>@@ -26,7 +26,7 @@</span><br><span> /* MGCP state handler context. This context information stores all information</span><br><span>  * to handle the direction of the RTP streams via MGCP. There is one instance</span><br><span>  * of this context struct per subscriber connection.</span><br><span style="color: hsl(0, 100%, 40%);">- * (see also struct gsm_subscriber_connection) */</span><br><span style="color: hsl(120, 100%, 40%);">+ * (see also struct ran_conn) */</span><br><span> struct mgcp_ctx {</span><br><span>      /* FSM instance, which handles the connection switching procedure */</span><br><span>         struct osmo_fsm_inst *fsm;</span><br><span>@@ -56,6 +56,6 @@</span><br><span> };</span><br><span> </span><br><span> int msc_mgcp_call_assignment(struct gsm_trans *trans);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_mgcp_ass_complete(struct gsm_subscriber_connection *conn, uint16_t port, char *addr);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_mgcp_ass_complete(struct ran_conn *conn, uint16_t port, char *addr);</span><br><span> int msc_mgcp_call_complete(struct gsm_trans *trans, uint16_t port, char *addr);</span><br><span> int msc_mgcp_call_release(struct gsm_trans *trans);</span><br><span>diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h</span><br><span>index a757a99..399236e 100644</span><br><span>--- a/include/osmocom/msc/osmo_msc.h</span><br><span>+++ b/include/osmocom/msc/osmo_msc.h</span><br><span>@@ -47,46 +47,46 @@</span><br><span>   MSC_CONN_REJECT = 1,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network,</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *msc_subscr_conn_alloc(struct gsm_network *network,</span><br><span>                                                      enum ran_type via_ran, uint16_t lac);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_update_id(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_update_id(struct ran_conn *conn,</span><br><span>                              enum complete_layer3_type from, const char *id);</span><br><span style="color: hsl(0, 100%, 40%);">-char *msc_subscr_conn_get_conn_id(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+char *msc_subscr_conn_get_conn_id(struct ran_conn *conn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_complete_layer_3(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_complete_layer_3(struct ran_conn *conn);</span><br><span> </span><br><span> int msc_vlr_alloc(struct gsm_network *net);</span><br><span> int msc_vlr_start(struct gsm_network *net);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_compl_l3(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_sapi_n_reject(struct ran_conn *conn, int dlci);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_clear_request(struct ran_conn *conn, uint32_t cause);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_compl_l3(struct ran_conn *conn,</span><br><span>                  struct msgb *msg, uint16_t chosen_channel);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_classmark_request_then_cipher_mode_cmd(struct gsm_subscriber_connection *conn, bool umts_aka,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_dtap(struct ran_conn *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_classmark_request_then_cipher_mode_cmd(struct ran_conn *conn, bool umts_aka,</span><br><span>                                            bool retrieve_imeisv);</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_geran_set_cipher_mode(struct gsm_subscriber_connection *conn, bool umts_aka, bool retrieve_imeisv);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_cipher_mode_compl(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_geran_set_cipher_mode(struct ran_conn *conn, bool umts_aka, bool retrieve_imeisv);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_cipher_mode_compl(struct ran_conn *conn,</span><br><span>                       struct msgb *msg, uint8_t alg_id);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_rx_sec_mode_compl(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_classmark_chg(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_rx_sec_mode_compl(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_classmark_chg(struct ran_conn *conn,</span><br><span>                   const uint8_t *cm2, uint8_t cm2_len,</span><br><span>                 const uint8_t *cm3, uint8_t cm3_len);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_assign_fail(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_assign_fail(struct ran_conn *conn,</span><br><span>                     uint8_t cause, uint8_t *rr_cause);</span><br><span> </span><br><span> void msc_subscr_conn_init(void);</span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_is_accepted(const struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_is_establishing_auth_ciph(const struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_communicating(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_close(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_is_accepted(const struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_is_establishing_auth_ciph(const struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_communicating(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_close(struct ran_conn *conn,</span><br><span>                           uint32_t cause);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_mo_close(struct gsm_subscriber_connection *conn, uint32_t cause);</span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_in_release(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_mo_close(struct ran_conn *conn, uint32_t cause);</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_in_release(struct ran_conn *conn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_rx_bssmap_clear_complete(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_rx_iu_release_complete(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_rx_bssmap_clear_complete(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_rx_iu_release_complete(struct ran_conn *conn);</span><br><span> </span><br><span> enum msc_subscr_conn_use {</span><br><span>        MSC_CONN_USE_UNTRACKED = -1,</span><br><span>@@ -109,14 +109,14 @@</span><br><span>         _msc_subscr_conn_get(conn, balance_token, __FILE__, __LINE__)</span><br><span> #define msc_subscr_conn_put(conn, balance_token) \</span><br><span>  _msc_subscr_conn_put(conn, balance_token, __FILE__, __LINE__)</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *</span><br><span style="color: hsl(0, 100%, 40%);">-_msc_subscr_conn_get(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *</span><br><span style="color: hsl(120, 100%, 40%);">+_msc_subscr_conn_get(struct ran_conn *conn,</span><br><span>               enum msc_subscr_conn_use balance_token,</span><br><span>                      const char *file, int line);</span><br><span style="color: hsl(0, 100%, 40%);">-void _msc_subscr_conn_put(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void _msc_subscr_conn_put(struct ran_conn *conn,</span><br><span>                           enum msc_subscr_conn_use balance_token,</span><br><span>                      const char *file, int line);</span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_used_by(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_used_by(struct ran_conn *conn,</span><br><span>                           enum msc_subscr_conn_use token);</span><br><span> </span><br><span> void msc_stop_paging(struct vlr_subscr *vsub);</span><br><span>diff --git a/include/osmocom/msc/signal.h b/include/osmocom/msc/signal.h</span><br><span>index f630b27..5126976 100644</span><br><span>--- a/include/osmocom/msc/signal.h</span><br><span>+++ b/include/osmocom/msc/signal.h</span><br><span>@@ -83,11 +83,11 @@</span><br><span>       int paging_result;</span><br><span> </span><br><span>       /* NULL in case the paging didn't work */</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> };</span><br><span> </span><br><span> struct scall_signal_data {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       void *data;</span><br><span> };</span><br><span> struct sms_signal_data {</span><br><span>diff --git a/include/osmocom/msc/silent_call.h b/include/osmocom/msc/silent_call.h</span><br><span>index 5fec77b..70324e5 100644</span><br><span>--- a/include/osmocom/msc/silent_call.h</span><br><span>+++ b/include/osmocom/msc/silent_call.h</span><br><span>@@ -1,15 +1,15 @@</span><br><span> #ifndef _SILENT_CALL_H</span><br><span> #define _SILENT_CALL_H</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn;</span><br><span> </span><br><span> extern int gsm_silent_call_start(struct vlr_subscr *vsub,</span><br><span>                                  void *data, int type);</span><br><span> extern int gsm_silent_call_stop(struct vlr_subscr *vsub);</span><br><span> </span><br><span> #if 0</span><br><span style="color: hsl(0, 100%, 40%);">-extern int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(0, 100%, 40%);">-extern int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+extern int silent_call_rx(struct ran_conn *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+extern int silent_call_reroute(struct ran_conn *conn, struct msgb *msg);</span><br><span> #endif</span><br><span> </span><br><span> #endif /* _SILENT_CALL_H */</span><br><span>diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h</span><br><span>index 762eeea..0760c07 100644</span><br><span>--- a/include/osmocom/msc/transaction.h</span><br><span>+++ b/include/osmocom/msc/transaction.h</span><br><span>@@ -38,7 +38,7 @@</span><br><span>    struct vlr_subscr *vsub;</span><br><span> </span><br><span>         /* The associated connection we are using to transmit messages */</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   /* reference from MNCC or other application */</span><br><span>       uint32_t callref;</span><br><span>@@ -98,11 +98,11 @@</span><br><span> </span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_trans *trans_find_by_id(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_trans *trans_find_by_id(struct ran_conn *conn,</span><br><span>                                uint8_t proto, uint8_t trans_id);</span><br><span> struct gsm_trans *trans_find_by_callref(struct gsm_network *net,</span><br><span>                                     uint32_t callref);</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_trans *trans_find_by_sm_rp_mr(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_trans *trans_find_by_sm_rp_mr(struct ran_conn *conn,</span><br><span>                                   uint8_t sm_rp_mr);</span><br><span> </span><br><span> struct gsm_trans *trans_alloc(struct gsm_network *net,</span><br><span>@@ -113,7 +113,7 @@</span><br><span> </span><br><span> int trans_assign_trans_id(struct gsm_network *net, struct vlr_subscr *vsub,</span><br><span>                     uint8_t protocol, uint8_t ti_flag);</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_trans *trans_has_conn(const struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void trans_conn_closed(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_trans *trans_has_conn(const struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void trans_conn_closed(struct ran_conn *conn);</span><br><span> </span><br><span> #endif</span><br><span>diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c</span><br><span>index bd9b890..2829a39 100644</span><br><span>--- a/src/libmsc/a_iface.c</span><br><span>+++ b/src/libmsc/a_iface.c</span><br><span>@@ -142,12 +142,12 @@</span><br><span> /* Send DTAP message via A-interface, take ownership of msg */</span><br><span> int a_iface_tx_dtap(struct msgb *msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct msgb *msg_resp;</span><br><span> </span><br><span>   uint8_t link_id = OMSC_LINKID_CB(msg);</span><br><span>       OSMO_ASSERT(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-       conn = (struct gsm_subscriber_connection *)msg->dst;</span><br><span style="color: hsl(120, 100%, 40%);">+       conn = (struct ran_conn *)msg->dst;</span><br><span>       OSMO_ASSERT(conn);</span><br><span>   OSMO_ASSERT(conn->a.scu);</span><br><span> </span><br><span>@@ -171,7 +171,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Send Cipher mode command via A-interface */</span><br><span style="color: hsl(0, 100%, 40%);">-int a_iface_tx_cipher_mode(const struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int a_iface_tx_cipher_mode(const struct ran_conn *conn,</span><br><span>                      struct gsm0808_encrypt_info *ei, int include_imeisv)</span><br><span> {</span><br><span>         /* TODO generalize for A- and Iu interfaces, don't name after 08.08 */</span><br><span>@@ -358,7 +358,7 @@</span><br><span> /* Send assignment request via A-interface */</span><br><span> int a_iface_tx_assignment(const struct gsm_trans *trans)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct gsm0808_channel_type ct;</span><br><span>      struct gsm0808_speech_codec_list scl;</span><br><span>        uint32_t *ci_ptr = NULL;</span><br><span>@@ -412,7 +412,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Send clear command via A-interface */</span><br><span style="color: hsl(0, 100%, 40%);">-int a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int a_iface_tx_clear_cmd(struct ran_conn *conn)</span><br><span> {</span><br><span>    struct msgb *msg;</span><br><span> </span><br><span>@@ -422,7 +422,7 @@</span><br><span>  return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int a_iface_tx_classmark_request(const struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int a_iface_tx_classmark_request(const struct ran_conn *conn)</span><br><span> {</span><br><span>    struct msgb *msg;</span><br><span> </span><br><span>@@ -615,8 +615,8 @@</span><br><span> /* Clear all subscriber connections on a specified BSC */</span><br><span> void a_clear_all(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *bsc_addr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn_temp;</span><br><span style="color: hsl(120, 100%, 40%);">+  struct ran_conn *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn_temp;</span><br><span>  struct gsm_network *network = gsm_network;</span><br><span> </span><br><span>       OSMO_ASSERT(scu);</span><br><span>diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c</span><br><span>index 9a2333d..78a8c03 100644</span><br><span>--- a/src/libmsc/a_iface_bssap.c</span><br><span>+++ b/src/libmsc/a_iface_bssap.c</span><br><span>@@ -46,11 +46,11 @@</span><br><span>  */</span><br><span> </span><br><span> /* Allocate a new subscriber connection */</span><br><span style="color: hsl(0, 100%, 40%);">-static struct gsm_subscriber_connection *subscr_conn_allocate_a(const struct a_conn_info *a_conn_info,</span><br><span style="color: hsl(120, 100%, 40%);">+static struct ran_conn *subscr_conn_allocate_a(const struct a_conn_info *a_conn_info,</span><br><span>                                                           struct gsm_network *network,</span><br><span>                                                                 uint16_t lac, struct osmo_sccp_user *scu, int conn_id)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   LOGP(DMSC, LOGL_DEBUG, "Allocating A-Interface subscriber conn: lac %i, conn_id %i\n", lac, conn_id);</span><br><span> </span><br><span>@@ -71,9 +71,9 @@</span><br><span> </span><br><span> /* Return an existing A subscriber connection record for the given</span><br><span>  * connection IDs, or return NULL if not found. */</span><br><span style="color: hsl(0, 100%, 40%);">-static struct gsm_subscriber_connection *subscr_conn_lookup_a(const struct gsm_network *network, int conn_id)</span><br><span style="color: hsl(120, 100%, 40%);">+static struct ran_conn *subscr_conn_lookup_a(const struct gsm_network *network, int conn_id)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   OSMO_ASSERT(network);</span><br><span> </span><br><span>@@ -213,7 +213,7 @@</span><br><span>  */</span><br><span> </span><br><span> /* Endpoint to handle BSSMAP clear request */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_clear_rqst(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_clear_rqst(struct ran_conn *conn,</span><br><span>                           struct msgb *msg, struct tlv_parsed *tp)</span><br><span> {</span><br><span>        uint8_t cause;</span><br><span>@@ -234,7 +234,7 @@</span><br><span> /* Endpoint to handle BSSMAP clear complete */</span><br><span> static int bssmap_rx_clear_complete(struct osmo_sccp_user *scu,</span><br><span>                                const struct a_conn_info *a_conn_info,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+                               struct ran_conn *conn)</span><br><span> {</span><br><span>      int rc;</span><br><span> </span><br><span>@@ -263,7 +263,7 @@</span><br><span>    int rc;</span><br><span> </span><br><span>  struct gsm_network *network = a_conn_info->network;</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   LOGP(DBSSAP, LOGL_INFO, "Rx BSSMAP COMPLETE L3 INFO (conn_id=%i)\n", a_conn_info->conn_id);</span><br><span> </span><br><span>@@ -359,7 +359,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Endpoint to handle BSSMAP classmark update */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_classmark_upd(struct gsm_subscriber_connection *conn, struct msgb *msg,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_classmark_upd(struct ran_conn *conn, struct msgb *msg,</span><br><span>                                struct tlv_parsed *tp)</span><br><span> {</span><br><span>       const uint8_t *cm2 = NULL;</span><br><span>@@ -389,7 +389,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Endpoint to handle BSSMAP cipher mode complete */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_ciph_compl(struct gsm_subscriber_connection *conn, struct msgb *msg,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_ciph_compl(struct ran_conn *conn, struct msgb *msg,</span><br><span>                                 struct tlv_parsed *tp)</span><br><span> {</span><br><span>  /* FIXME: The field GSM0808_IE_LAYER_3_MESSAGE_CONTENTS is optional by</span><br><span>@@ -424,7 +424,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Endpoint to handle BSSMAP cipher mode reject, 3GPP TS 08.08 Â§3.2.1.48 */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_ciph_rej(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_ciph_rej(struct ran_conn *conn,</span><br><span>                           struct msgb *msg, struct tlv_parsed *tp)</span><br><span> {</span><br><span>  int rc;</span><br><span>@@ -451,7 +451,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Endpoint to handle BSSMAP assignment failure */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_ass_fail(struct gsm_subscriber_connection *conn, struct msgb *msg,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_ass_fail(struct ran_conn *conn, struct msgb *msg,</span><br><span>                        struct tlv_parsed *tp)</span><br><span> {</span><br><span>    uint8_t cause;</span><br><span>@@ -484,7 +484,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Endpoint to handle sapi "n" reject */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_sapi_n_rej(struct gsm_subscriber_connection *conn, struct msgb *msg,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_sapi_n_rej(struct ran_conn *conn, struct msgb *msg,</span><br><span>                               struct tlv_parsed *tp)</span><br><span> {</span><br><span>  uint8_t dlci;</span><br><span>@@ -549,7 +549,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Endpoint to handle assignment complete */</span><br><span style="color: hsl(0, 100%, 40%);">-static int bssmap_rx_ass_compl(struct gsm_subscriber_connection *conn, struct msgb *msg,</span><br><span style="color: hsl(120, 100%, 40%);">+static int bssmap_rx_ass_compl(struct ran_conn *conn, struct msgb *msg,</span><br><span>                               struct tlv_parsed *tp)</span><br><span> {</span><br><span>   struct sockaddr_storage rtp_addr;</span><br><span>@@ -601,7 +601,7 @@</span><br><span> /* Handle incoming connection oriented BSSMAP messages */</span><br><span> static int rx_bssmap(struct osmo_sccp_user *scu, const struct a_conn_info *a_conn_info, struct msgb *msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct tlv_parsed tp;</span><br><span>        int rc;</span><br><span>      uint8_t msg_type;</span><br><span>@@ -671,7 +671,7 @@</span><br><span> static int rx_dtap(const struct osmo_sccp_user *scu, const struct a_conn_info *a_conn_info, struct msgb *msg)</span><br><span> {</span><br><span>        struct gsm_network *network = a_conn_info->network;</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct dtap_header *dtap = (struct dtap_header *) msg->l2h;</span><br><span> </span><br><span>   conn = subscr_conn_lookup_a(network, a_conn_info->conn_id);</span><br><span>diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c</span><br><span>index d5cc212..0a52b45 100644</span><br><span>--- a/src/libmsc/gsm_04_08.c</span><br><span>+++ b/src/libmsc/gsm_04_08.c</span><br><span>@@ -77,7 +77,7 @@</span><br><span> void *tall_locop_ctx;</span><br><span> void *tall_authciphop_ctx;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0408_loc_upd_acc(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0408_loc_upd_acc(struct ran_conn *conn,</span><br><span>                             uint32_t send_tmsi);</span><br><span> </span><br><span> /*! Send a simple GSM 04.08 message without any payload</span><br><span>@@ -86,7 +86,7 @@</span><br><span>  * \param[in]  msg_type  Message type</span><br><span>  * \return     result of \ref gsm48_conn_sendmsg</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_simple(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_simple(struct ran_conn *conn,</span><br><span>                uint8_t pdisc, uint8_t msg_type)</span><br><span> {</span><br><span>    struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 TX SIMPLE");</span><br><span>@@ -176,7 +176,7 @@</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_conn_sendmsg(struct msgb *msg, struct gsm_subscriber_connection *conn, struct gsm_trans *trans)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_conn_sendmsg(struct msgb *msg, struct ran_conn *conn, struct gsm_trans *trans)</span><br><span> {</span><br><span>   struct gsm48_hdr *gh = (struct gsm48_hdr *) msg->data;</span><br><span> </span><br><span>@@ -206,7 +206,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Chapter 9.2.14 : Send LOCATION UPDATING REJECT */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0408_loc_upd_rej(struct gsm_subscriber_connection *conn, uint8_t cause)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0408_loc_upd_rej(struct ran_conn *conn, uint8_t cause)</span><br><span> {</span><br><span>         struct msgb *msg;</span><br><span> </span><br><span>@@ -223,7 +223,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Chapter 9.2.13 : Send LOCATION UPDATE ACCEPT */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0408_loc_upd_acc(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0408_loc_upd_acc(struct ran_conn *conn,</span><br><span>                             uint32_t send_tmsi)</span><br><span> {</span><br><span>      struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 LOC UPD ACC");</span><br><span>@@ -274,7 +274,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Transmit Chapter 9.2.10 Identity Request */</span><br><span style="color: hsl(0, 100%, 40%);">-static int mm_tx_identity_req(struct gsm_subscriber_connection *conn, uint8_t id_type)</span><br><span style="color: hsl(120, 100%, 40%);">+static int mm_tx_identity_req(struct ran_conn *conn, uint8_t id_type)</span><br><span> {</span><br><span>      struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ID REQ");</span><br><span>      struct gsm48_hdr *gh;</span><br><span>@@ -288,7 +288,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Parse Chapter 9.2.11 Identity Response */</span><br><span style="color: hsl(0, 100%, 40%);">-static int mm_rx_id_resp(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int mm_rx_id_resp(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>       struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         uint8_t mi_type = gh->data[1] & GSM_MI_TYPE_MASK;</span><br><span>@@ -319,7 +319,7 @@</span><br><span> </span><br><span> /* Chapter 9.2.15: Receive Location Updating Request.</span><br><span>  * Keep this function non-static for direct invocation by unit tests. */</span><br><span style="color: hsl(0, 100%, 40%);">-int mm_rx_loc_upd_req(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int mm_rx_loc_upd_req(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>  struct gsm_network *net = conn->network;</span><br><span>  struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>@@ -451,7 +451,7 @@</span><br><span> </span><br><span> </span><br><span> /* Section 9.2.15a */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_info(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_info(struct ran_conn *conn)</span><br><span> {</span><br><span>    struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 MM INF");</span><br><span>      struct gsm48_hdr *gh;</span><br><span>@@ -610,7 +610,7 @@</span><br><span>  *       send; must be 16 bytes long, or pass NULL for plain GSM auth.</span><br><span>  * \param[in] key_seq  auth tuple's sequence number.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_auth_req(struct gsm_subscriber_connection *conn, uint8_t *rand,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_auth_req(struct ran_conn *conn, uint8_t *rand,</span><br><span>                       uint8_t *autn, int key_seq)</span><br><span> {</span><br><span>    struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 AUTH REQ");</span><br><span>@@ -640,7 +640,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Section 9.2.1 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_tx_mm_auth_rej(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_tx_mm_auth_rej(struct ran_conn *conn)</span><br><span> {</span><br><span>        DEBUGP(DMM, "-> AUTH REJECT\n");</span><br><span>        return gsm48_tx_simple(conn, GSM48_PDISC_MM, GSM48_MT_MM_AUTH_REJ);</span><br><span>@@ -649,7 +649,7 @@</span><br><span> static int msc_vlr_tx_cm_serv_acc(void *msc_conn_ref);</span><br><span> static int msc_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum gsm48_reject_value result);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int cm_serv_reuse_conn(struct gsm_subscriber_connection *conn, const uint8_t *mi_lv)</span><br><span style="color: hsl(120, 100%, 40%);">+static int cm_serv_reuse_conn(struct ran_conn *conn, const uint8_t *mi_lv)</span><br><span> {</span><br><span>        uint8_t mi_type;</span><br><span>     char mi_string[GSM48_MI_SIZE];</span><br><span>@@ -704,7 +704,7 @@</span><br><span>  *</span><br><span>  * Keep this function non-static for direct invocation by unit tests.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_rx_mm_serv_req(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_rx_mm_serv_req(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         struct gsm_network *net = conn->network;</span><br><span>  uint8_t mi_type;</span><br><span>@@ -812,7 +812,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a CM Re-establish Request */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_cm_reest_req(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_cm_reest_req(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         uint8_t mi_type;</span><br><span>     char mi_string[GSM48_MI_SIZE];</span><br><span>@@ -831,7 +831,7 @@</span><br><span>         return msc_gsm48_tx_mm_serv_rej(conn, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_mm_imsi_detach_ind(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_mm_imsi_detach_ind(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>    struct gsm_network *network = conn->network;</span><br><span>      struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>@@ -898,7 +898,7 @@</span><br><span> }</span><br><span> </span><br><span> static int parse_gsm_auth_resp(uint8_t *res, uint8_t *res_len,</span><br><span style="color: hsl(0, 100%, 40%);">-                          struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+                               struct ran_conn *conn,</span><br><span>                               struct msgb *msg)</span><br><span> {</span><br><span>        struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>@@ -918,7 +918,7 @@</span><br><span> }</span><br><span> </span><br><span> static int parse_umts_auth_resp(uint8_t *res, uint8_t *res_len,</span><br><span style="color: hsl(0, 100%, 40%);">-                          struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+                               struct ran_conn *conn,</span><br><span>                               struct msgb *msg)</span><br><span> {</span><br><span>       struct gsm48_hdr *gh;</span><br><span>@@ -970,7 +970,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Chapter 9.2.3: Authentication Response */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_mm_auth_resp(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_mm_auth_resp(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>       uint8_t res[16];</span><br><span>     uint8_t res_len;</span><br><span>@@ -1010,7 +1010,7 @@</span><br><span>                                    res, res_len);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_mm_auth_fail(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_mm_auth_fail(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>     struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         uint8_t cause;</span><br><span>@@ -1092,7 +1092,7 @@</span><br><span>       return vlr_subscr_rx_auth_fail(conn->vsub, auts);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_mm_tmsi_reall_compl(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_mm_tmsi_reall_compl(struct ran_conn *conn)</span><br><span> {</span><br><span>    DEBUGP(DMM, "TMSI Reallocation Completed. Subscriber: %s\n",</span><br><span>              vlr_subscr_name(conn->vsub));</span><br><span>@@ -1105,7 +1105,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a GSM 04.08 Mobility Management (MM) message */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0408_rcv_mm(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0408_rcv_mm(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>   struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         int rc = 0;</span><br><span>@@ -1148,7 +1148,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a PAGING RESPONSE message from the MS */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_rr_pag_resp(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_rr_pag_resp(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>  struct gsm_network *net = conn->network;</span><br><span>  struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>@@ -1211,7 +1211,7 @@</span><br><span>         return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm48_rx_rr_app_info(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm48_rx_rr_app_info(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>   struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         uint8_t apdu_id_flags;</span><br><span>@@ -1234,7 +1234,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a GSM 04.08 Radio Resource (RR) message */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0408_rcv_rr(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0408_rcv_rr(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         int rc = 0;</span><br><span>@@ -1255,7 +1255,7 @@</span><br><span>  return rc;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm48_send_rr_app_info(struct gsm_subscriber_connection *conn, uint8_t apdu_id,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm48_send_rr_app_info(struct ran_conn *conn, uint8_t apdu_id,</span><br><span>                      uint8_t apdu_len, const uint8_t *apdu)</span><br><span> {</span><br><span>       struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 APP INF");</span><br><span>@@ -1311,7 +1311,7 @@</span><br><span>     return false;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void cm_service_request_concludes(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void cm_service_request_concludes(struct ran_conn *conn,</span><br><span>                              struct msgb *msg)</span><br><span> {</span><br><span> </span><br><span>@@ -1393,7 +1393,7 @@</span><br><span> }</span><br><span> </span><br><span> /* TS 24.007 11.2.3.2 Message Type Octet / Duplicate Detection */</span><br><span style="color: hsl(0, 100%, 40%);">-static bool gsm0407_is_duplicate(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static bool gsm0407_is_duplicate(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         struct gsm48_hdr *gh;</span><br><span>        uint8_t pdisc;</span><br><span>@@ -1425,10 +1425,10 @@</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-extern int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *msg);</span><br><span style="color: hsl(120, 100%, 40%);">+extern int gsm0408_rcv_cc(struct ran_conn *conn, struct msgb *msg);</span><br><span> </span><br><span> /* Main entry point for GSM 04.08/44.008 Layer 3 data (e.g. from the BSC). */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0408_dispatch(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>   struct gsm48_hdr *gh;</span><br><span>        uint8_t pdisc;</span><br><span>@@ -1518,7 +1518,7 @@</span><br><span> static int msc_vlr_tx_auth_req(void *msc_conn_ref, struct gsm_auth_tuple *at,</span><br><span>                             bool send_autn)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return gsm48_tx_mm_auth_req(conn, at->vec.rand,</span><br><span>                               send_autn? at->vec.autn : NULL,</span><br><span>                                   at->key_seq);</span><br><span>@@ -1527,48 +1527,48 @@</span><br><span> /* VLR asks us to send an authentication reject */</span><br><span> static int msc_vlr_tx_auth_rej(void *msc_conn_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return gsm48_tx_mm_auth_rej(conn);</span><br><span> }</span><br><span> </span><br><span> /* VLR asks us to transmit an Identity Request of given type */</span><br><span> static int msc_vlr_tx_id_req(void *msc_conn_ref, uint8_t mi_type)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return mm_tx_identity_req(conn, mi_type);</span><br><span> }</span><br><span> </span><br><span> /* VLR asks us to transmit a Location Update Accept */</span><br><span> static int msc_vlr_tx_lu_acc(void *msc_conn_ref, uint32_t send_tmsi)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return gsm0408_loc_upd_acc(conn, send_tmsi);</span><br><span> }</span><br><span> </span><br><span> /* VLR asks us to transmit a Location Update Reject */</span><br><span> static int msc_vlr_tx_lu_rej(void *msc_conn_ref, enum gsm48_reject_value cause)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return gsm0408_loc_upd_rej(conn, cause);</span><br><span> }</span><br><span> </span><br><span> /* VLR asks us to transmit a CM Service Accept */</span><br><span> static int msc_vlr_tx_cm_serv_acc(void *msc_conn_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return msc_gsm48_tx_mm_serv_ack(conn);</span><br><span> }</span><br><span> </span><br><span> static int msc_vlr_tx_common_id(void *msc_conn_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        return msc_tx_common_id(conn);</span><br><span> }</span><br><span> </span><br><span> /* VLR asks us to transmit MM info. */</span><br><span> static int msc_vlr_tx_mm_info(void *msc_conn_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        if (!conn->network->send_mm_info)</span><br><span>              return 0;</span><br><span>    return gsm48_tx_mm_info(conn);</span><br><span>@@ -1577,7 +1577,7 @@</span><br><span> /* VLR asks us to transmit a CM Service Reject */</span><br><span> static int msc_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum gsm48_reject_value cause)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        int rc;</span><br><span> </span><br><span>  rc = msc_gsm48_tx_mm_serv_rej(conn, cause);</span><br><span>@@ -1594,7 +1594,7 @@</span><br><span> osmo_static_assert(sizeof(((struct gsm0808_encrypt_info*)0)->key) >= sizeof(((struct osmo_auth_vector*)0)->kc),</span><br><span>                 gsm0808_encrypt_info_key_fits_osmo_auth_vec_kc);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_geran_set_cipher_mode(struct gsm_subscriber_connection *conn, bool umts_aka, bool retrieve_imeisv)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_geran_set_cipher_mode(struct ran_conn *conn, bool umts_aka, bool retrieve_imeisv)</span><br><span> {</span><br><span>    struct gsm_network *net = conn->network;</span><br><span>  struct gsm0808_encrypt_info ei;</span><br><span>@@ -1672,7 +1672,7 @@</span><br><span>                        bool umts_aka,</span><br><span>                       bool retrieve_imeisv)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        struct vlr_subscr *vsub;</span><br><span>     struct gsm_auth_tuple *tuple;</span><br><span> </span><br><span>@@ -1716,7 +1716,7 @@</span><br><span>    return -ENOTSUP;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_rx_sec_mode_compl(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_rx_sec_mode_compl(struct ran_conn *conn)</span><br><span> {</span><br><span>  struct vlr_ciph_result vlr_res = {};</span><br><span> </span><br><span>@@ -1760,7 +1760,7 @@</span><br><span> static void msc_vlr_subscr_assoc(void *msc_conn_ref,</span><br><span>                              struct vlr_subscr *vsub)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        OSMO_ASSERT(vsub);</span><br><span>   OSMO_ASSERT(!conn->vsub);</span><br><span>         conn->vsub = vlr_subscr_get(vsub);</span><br><span>diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c</span><br><span>index c9dffe3..557e218 100644</span><br><span>--- a/src/libmsc/gsm_04_08_cc.c</span><br><span>+++ b/src/libmsc/gsm_04_08_cc.c</span><br><span>@@ -310,7 +310,7 @@</span><br><span> static int setup_trig_pag_evt(unsigned int hooknum, unsigned int event,</span><br><span>                            struct msgb *msg, void *_conn, void *_transt)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn = _conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn = _conn;</span><br><span>       struct gsm_trans *transt = _transt;</span><br><span>  enum gsm_paging_event paging_event = event;</span><br><span> </span><br><span>@@ -1755,7 +1755,7 @@</span><br><span>       * mgcp-gw expects the incoming RTP stream from the remote</span><br><span>    * end (e.g. Asterisk) is known. */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = trans->conn;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct ran_conn *conn = trans->conn;</span><br><span>      struct gsm_network *network = conn->network;</span><br><span> </span><br><span>  mncc_recv_rtp_sock(network, trans, MNCC_RTP_CREATE);</span><br><span>@@ -1859,7 +1859,7 @@</span><br><span> {</span><br><span>    int i, rc = 0;</span><br><span>       struct gsm_trans *trans = NULL, *transt;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = NULL;</span><br><span>        struct gsm_mncc *data = arg, rel;</span><br><span> </span><br><span>        DEBUGP(DMNCC, "receive message %s\n", get_mncc_name(msg_type));</span><br><span>@@ -2112,7 +2112,7 @@</span><br><span> #define DATASLLEN \</span><br><span>     (sizeof(datastatelist) / sizeof(struct datastate))</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0408_rcv_cc(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         uint8_t msg_type = gsm48_hdr_msg_type(gh);</span><br><span>diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c</span><br><span>index 88dc433..40d0a99 100644</span><br><span>--- a/src/libmsc/gsm_04_11.c</span><br><span>+++ b/src/libmsc/gsm_04_11.c</span><br><span>@@ -120,7 +120,7 @@</span><br><span>        osmo_signal_dispatch(SS_SMS, sig_no, &sig);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm411_sendmsg(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm411_sendmsg(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         DEBUGP(DLSMS, "GSM4.11 TX %s\n", msgb_hexdump(msg));</span><br><span>       msg->l3h = msg->data;</span><br><span>@@ -131,7 +131,7 @@</span><br><span> static int paging_cb_mmsms_est_req(unsigned int hooknum, unsigned int event,</span><br><span>                               struct msgb *msg, void *_conn, void *_trans)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn = _conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn = _conn;</span><br><span>       struct gsm_trans *trans = _trans;</span><br><span>    struct gsm_sms *sms = trans->sms.sms;</span><br><span>     int rc = 0;</span><br><span>@@ -406,7 +406,7 @@</span><br><span>    return msg->len - old_msg_len;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int sms_route_mt_sms(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+static int sms_route_mt_sms(struct ran_conn *conn,</span><br><span>                        struct gsm_sms *gsms)</span><br><span> {</span><br><span>       int rc;</span><br><span>@@ -477,7 +477,7 @@</span><br><span> static int gsm340_rx_tpdu(struct gsm_trans *trans, struct msgb *msg,</span><br><span>                          uint32_t gsm411_msg_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = trans->conn;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct ran_conn *conn = trans->conn;</span><br><span>      uint8_t *smsp = msgb_sms(msg);</span><br><span>       struct gsm_sms *gsms;</span><br><span>        unsigned int sms_alphabet;</span><br><span>@@ -755,7 +755,7 @@</span><br><span> }</span><br><span> </span><br><span> static void sms_status_report(struct gsm_sms *gsms,</span><br><span style="color: hsl(0, 100%, 40%);">-                              struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+                       struct ran_conn *conn)</span><br><span> {</span><br><span>    struct gsm_sms *sms_report;</span><br><span>  int rc;</span><br><span>@@ -982,7 +982,7 @@</span><br><span> static struct gsm_trans *gsm411_alloc_mt_trans(struct gsm_network *net,</span><br><span>                                            struct vlr_subscr *vsub)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct gsm_trans *trans;</span><br><span>     int tid;</span><br><span> </span><br><span>@@ -1094,7 +1094,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Entry point for incoming GSM48_PDISC_SMS from abis_rsl.c */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0411_rcv_sms(struct ran_conn *conn,</span><br><span>                   struct msgb *msg)</span><br><span> {</span><br><span>   struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>@@ -1199,7 +1199,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Process incoming SAPI N-REJECT from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void gsm411_sapi_n_reject(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void gsm411_sapi_n_reject(struct ran_conn *conn)</span><br><span> {</span><br><span>       struct gsm_network *net;</span><br><span>     struct gsm_trans *trans, *tmp;</span><br><span>diff --git a/src/libmsc/gsm_04_14.c b/src/libmsc/gsm_04_14.c</span><br><span>index 2be534c..8fe03a8 100644</span><br><span>--- a/src/libmsc/gsm_04_14.c</span><br><span>+++ b/src/libmsc/gsm_04_14.c</span><br><span>@@ -51,12 +51,12 @@</span><br><span>    return msg;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0414_conn_sendmsg(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0414_conn_sendmsg(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         return msc_tx_dtap(conn, msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int gsm0414_tx_simple(struct gsm_subscriber_connection *conn, uint8_t msg_type)</span><br><span style="color: hsl(120, 100%, 40%);">+static int gsm0414_tx_simple(struct ran_conn *conn, uint8_t msg_type)</span><br><span> {</span><br><span>    struct msgb *msg = create_gsm0414_msg(msg_type);</span><br><span> </span><br><span>@@ -65,7 +65,7 @@</span><br><span> </span><br><span> </span><br><span> /* Send a CLOSE_TCH_LOOOP_CMD according to Section 8.1 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_close_tch_loop_cmd(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_close_tch_loop_cmd(struct ran_conn *conn,</span><br><span>                               enum gsm414_tch_loop_mode loop_mode)</span><br><span> {</span><br><span>  struct msgb *msg = create_gsm0414_msg(GSM414_MT_CLOSE_TCH_LOOP_CMD);</span><br><span>@@ -78,25 +78,25 @@</span><br><span> }</span><br><span> </span><br><span> /* Send a OPEN_LOOP_CMD according to Section 8.3 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_open_loop_cmd(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_open_loop_cmd(struct ran_conn *conn)</span><br><span> {</span><br><span>     return gsm0414_tx_simple(conn, GSM414_MT_OPEN_LOOP_CMD);</span><br><span> }</span><br><span> </span><br><span> /* Send a ACT_EMMI_CMD according to Section 8.8 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_act_emmi_cmd(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_act_emmi_cmd(struct ran_conn *conn)</span><br><span> {</span><br><span>  return gsm0414_tx_simple(conn, GSM414_MT_ACT_EMMI_CMD);</span><br><span> }</span><br><span> </span><br><span> /* Send a DEACT_EMMI_CMD according to Section 8.10 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_deact_emmi_cmd(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_deact_emmi_cmd(struct ran_conn *conn)</span><br><span> {</span><br><span>    return gsm0414_tx_simple(conn, GSM414_MT_DEACT_EMMI_CMD);</span><br><span> }</span><br><span> </span><br><span> /* Send a TEST_INTERFACE according to Section 8.11 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_test_interface(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_test_interface(struct ran_conn *conn,</span><br><span>                             uint8_t tested_devs)</span><br><span> {</span><br><span>      struct msgb *msg = create_gsm0414_msg(GSM414_MT_TEST_INTERFACE);</span><br><span>@@ -105,7 +105,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Send a RESET_MS_POSITION_STORED according to Section 8.11 */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_tx_reset_ms_pos_store(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_tx_reset_ms_pos_store(struct ran_conn *conn,</span><br><span>                                  uint8_t technology)</span><br><span> {</span><br><span>   struct msgb *msg = create_gsm0414_msg(GSM414_MT_RESET_MS_POS_STORED);</span><br><span>@@ -116,7 +116,7 @@</span><br><span> </span><br><span> </span><br><span> /* Entry point for incoming GSM48_PDISC_TEST received from MS */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0414_rcv_test(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0414_rcv_test(struct ran_conn *conn,</span><br><span>                  struct msgb *msg)</span><br><span> {</span><br><span>  struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c</span><br><span>index 81f2001..7bd50f3 100644</span><br><span>--- a/src/libmsc/gsm_04_80.c</span><br><span>+++ b/src/libmsc/gsm_04_80.c</span><br><span>@@ -47,7 +47,7 @@</span><br><span>  * failed, any incorrect value can be passed (0x00 > x > 0xff), so</span><br><span>  * the universal NULL-tag (see table 3.6) will be used instead.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_send_ussd_reject(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_send_ussd_reject(struct ran_conn *conn,</span><br><span>                              uint8_t transaction_id, int invoke_id,</span><br><span>                       uint8_t problem_tag, uint8_t problem_code)</span><br><span> {</span><br><span>@@ -70,7 +70,7 @@</span><br><span>     return msc_tx_dtap(conn, msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level, const char *text)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_send_ussd_notify(struct ran_conn *conn, int level, const char *text)</span><br><span> {</span><br><span>      struct msgb *msg = gsm0480_create_ussd_notify(level, text);</span><br><span>  if (!msg)</span><br><span>@@ -78,7 +78,7 @@</span><br><span>        return msc_tx_dtap(conn, msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_send_ussd_release_complete(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_send_ussd_release_complete(struct ran_conn *conn)</span><br><span> {</span><br><span>    struct msgb *msg = gsm0480_create_ussd_release_complete();</span><br><span>   if (!msg)</span><br><span>diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c</span><br><span>index 63a1047..bd949ec 100644</span><br><span>--- a/src/libmsc/gsm_09_11.c</span><br><span>+++ b/src/libmsc/gsm_09_11.c</span><br><span>@@ -53,7 +53,7 @@</span><br><span> static uint32_t new_callref = 0x20000001;</span><br><span> </span><br><span> /* Entry point for call independent MO SS messages */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>     struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         struct osmo_gsup_message gsup_msg;</span><br><span>@@ -217,7 +217,7 @@</span><br><span> static int handle_paging_event(unsigned int hooknum, unsigned int event,</span><br><span>                               struct msgb *msg, void *_conn, void *_transt)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn = _conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn = _conn;</span><br><span>       enum gsm_paging_event paging_event = event;</span><br><span>  struct gsm_trans *transt = _transt;</span><br><span>  struct gsm48_hdr *gh;</span><br><span>@@ -272,7 +272,7 @@</span><br><span> static struct gsm_trans *establish_nc_ss_trans(struct gsm_network *net,</span><br><span>       struct vlr_subscr *vsub, struct osmo_gsup_message *gsup_msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct gsm_trans *trans, *transt;</span><br><span>    int tid;</span><br><span> </span><br><span>diff --git a/src/libmsc/gsm_subscriber.c b/src/libmsc/gsm_subscriber.c</span><br><span>index fb61209..6b66933 100644</span><br><span>--- a/src/libmsc/gsm_subscriber.c</span><br><span>+++ b/src/libmsc/gsm_subscriber.c</span><br><span>@@ -59,7 +59,7 @@</span><br><span>                       struct msgb *msg, void *data, void *param)</span><br><span> {</span><br><span>   struct subscr_request *request, *tmp;</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gsm_subscriber_connection *conn = data;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = data;</span><br><span>        struct vlr_subscr *vsub = param;</span><br><span>     struct paging_signal_data sig_data;</span><br><span> </span><br><span>@@ -189,10 +189,10 @@</span><br><span>      talloc_free(request);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *connection_for_subscr(struct vlr_subscr *vsub)</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *connection_for_subscr(struct vlr_subscr *vsub)</span><br><span> {</span><br><span>         struct gsm_network *net = vsub->vlr->user_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   llist_for_each_entry(conn, &net->subscr_conns, entry) {</span><br><span>               if (conn->vsub == vsub)</span><br><span>diff --git a/src/libmsc/iucs.c b/src/libmsc/iucs.c</span><br><span>index 95bbbee..7227b2a 100644</span><br><span>--- a/src/libmsc/iucs.c</span><br><span>+++ b/src/libmsc/iucs.c</span><br><span>@@ -48,11 +48,11 @@</span><br><span> #endif /* BUILD_IU */</span><br><span> </span><br><span> /* For A-interface see libbsc/bsc_api.c subscr_con_allocate() */</span><br><span style="color: hsl(0, 100%, 40%);">-static struct gsm_subscriber_connection *subscr_conn_allocate_iu(struct gsm_network *network,</span><br><span style="color: hsl(120, 100%, 40%);">+static struct ran_conn *subscr_conn_allocate_iu(struct gsm_network *network,</span><br><span>                                                                 struct ranap_ue_conn_ctx *ue,</span><br><span>                                                                uint16_t lac)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   DEBUGP(DIUCS, "Allocating IuCS subscriber conn: lac %d, conn_id %" PRIx32 "\n",</span><br><span>         lac, ue->conn_id);</span><br><span>@@ -78,7 +78,7 @@</span><br><span>     if (!log_check_level(DIUCS, LOGL_DEBUG))</span><br><span>             return;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       int i = 0;</span><br><span>   llist_for_each_entry(conn, &network->subscr_conns, entry) {</span><br><span>           DEBUGP(DIUCS, "%3d: %s", i, vlr_subscr_name(conn->vsub));</span><br><span>@@ -110,11 +110,11 @@</span><br><span> </span><br><span> /* Return an existing IuCS subscriber connection record for the given</span><br><span>  * connection IDs, or return NULL if not found. */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *subscr_conn_lookup_iu(</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *subscr_conn_lookup_iu(</span><br><span>                                           struct gsm_network *network,</span><br><span>                                                 struct ranap_ue_conn_ctx *ue)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   DEBUGP(DIUCS, "Looking for IuCS subscriber: conn_id %" PRIx32 "\n",</span><br><span>             ue->conn_id);</span><br><span>@@ -144,7 +144,7 @@</span><br><span> {</span><br><span>   int rc;</span><br><span>      struct ranap_ue_conn_ctx *ue_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   ue_ctx = (struct ranap_ue_conn_ctx*)msg->dst;</span><br><span> </span><br><span>@@ -199,7 +199,7 @@</span><br><span> </span><br><span> int iu_rab_act_cs(struct gsm_trans *trans)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct msgb *msg;</span><br><span>    bool use_x213_nsap;</span><br><span>  uint32_t conn_id;</span><br><span>diff --git a/src/libmsc/iucs_ranap.c b/src/libmsc/iucs_ranap.c</span><br><span>index ec0b569..d23cb41 100644</span><br><span>--- a/src/libmsc/iucs_ranap.c</span><br><span>+++ b/src/libmsc/iucs_ranap.c</span><br><span>@@ -43,9 +43,9 @@</span><br><span> #include <asn1c/asn1helpers.h></span><br><span> </span><br><span> /* To continue authorization after a Security Mode Complete */</span><br><span style="color: hsl(0, 100%, 40%);">-int gsm0408_authorize(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int gsm0408_authorize(struct ran_conn *conn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int iucs_rx_rab_assign(struct gsm_subscriber_connection *conn, RANAP_RAB_SetupOrModifiedItemIEs_t * setup_ies)</span><br><span style="color: hsl(120, 100%, 40%);">+static int iucs_rx_rab_assign(struct ran_conn *conn, RANAP_RAB_SetupOrModifiedItemIEs_t * setup_ies)</span><br><span> {</span><br><span>        uint8_t rab_id;</span><br><span>      RANAP_RAB_SetupOrModifiedItem_t *item = &setup_ies->raB_SetupOrModifiedItem;</span><br><span>@@ -89,7 +89,7 @@</span><br><span>      return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int iucs_rx_sec_mode_compl(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int iucs_rx_sec_mode_compl(struct ran_conn *conn,</span><br><span>                         RANAP_SecurityModeCompleteIEs_t *ies)</span><br><span> {</span><br><span>        OSMO_ASSERT(conn->via_ran == RAN_UTRAN_IU);</span><br><span>@@ -103,7 +103,7 @@</span><br><span> int iucs_rx_ranap_event(struct gsm_network *network,</span><br><span>                         struct ranap_ue_conn_ctx *ue_ctx, int type, void *data)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   conn = subscr_conn_lookup_iu(network, ue_ctx);</span><br><span> </span><br><span>diff --git a/src/libmsc/msc_ifaces.c b/src/libmsc/msc_ifaces.c</span><br><span>index b76cdb4..8ae34fc 100644</span><br><span>--- a/src/libmsc/msc_ifaces.c</span><br><span>+++ b/src/libmsc/msc_ifaces.c</span><br><span>@@ -46,7 +46,7 @@</span><br><span>      { 0, NULL }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int msc_tx(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+static int msc_tx(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>    if (!msg)</span><br><span>            return -EINVAL;</span><br><span>@@ -77,7 +77,7 @@</span><br><span> }</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_tx_dtap(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_tx_dtap(struct ran_conn *conn,</span><br><span>              struct msgb *msg)</span><br><span> {</span><br><span>       return msc_tx(conn, msg);</span><br><span>@@ -85,7 +85,7 @@</span><br><span> </span><br><span> </span><br><span> /* 9.2.5 CM service accept */</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_gsm48_tx_mm_serv_ack(struct ran_conn *conn)</span><br><span> {</span><br><span>         struct msgb *msg;</span><br><span>    struct gsm48_hdr *gh;</span><br><span>@@ -106,7 +106,7 @@</span><br><span> }</span><br><span> </span><br><span> /* 9.2.6 CM service reject */</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_gsm48_tx_mm_serv_rej(struct ran_conn *conn,</span><br><span>                            enum gsm48_reject_value value)</span><br><span> {</span><br><span>     struct msgb *msg;</span><br><span>@@ -125,7 +125,7 @@</span><br><span>      return msc_tx_dtap(conn, msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_tx_common_id(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_tx_common_id(struct ran_conn *conn)</span><br><span> {</span><br><span>        if (!conn)</span><br><span>           return -EINVAL;</span><br><span>diff --git a/src/libmsc/msc_mgcp.c b/src/libmsc/msc_mgcp.c</span><br><span>index c2bbe5f..8b6bf0e 100644</span><br><span>--- a/src/libmsc/msc_mgcp.c</span><br><span>+++ b/src/libmsc/msc_mgcp.c</span><br><span>@@ -280,7 +280,7 @@</span><br><span>       struct msgb *msg;</span><br><span>    int rc;</span><br><span>      struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   OSMO_ASSERT(mgcp_ctx);</span><br><span>       mgcp = mgcp_ctx->mgcp;</span><br><span>@@ -338,7 +338,7 @@</span><br><span>      struct mgcp_ctx *mgcp_ctx = priv;</span><br><span>    int rc;</span><br><span>      struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   /* NOTE: In case of error, we will not be able to perform any DLCX</span><br><span>    * operation because until we either get a parseable message that</span><br><span>@@ -393,7 +393,7 @@</span><br><span>      struct msgb *msg;</span><br><span>    int rc;</span><br><span>      struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   OSMO_ASSERT(mgcp_ctx);</span><br><span>       mgcp = mgcp_ctx->mgcp;</span><br><span>@@ -447,7 +447,7 @@</span><br><span>      struct mgcp_ctx *mgcp_ctx = priv;</span><br><span>    int rc;</span><br><span>      struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   OSMO_ASSERT(mgcp_ctx);</span><br><span>       trans = mgcp_ctx->trans;</span><br><span>@@ -487,7 +487,7 @@</span><br><span> {</span><br><span>       struct mgcp_ctx *mgcp_ctx = data;</span><br><span>    struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   OSMO_ASSERT(mgcp_ctx);</span><br><span>       trans = mgcp_ctx->trans;</span><br><span>@@ -548,7 +548,7 @@</span><br><span>    struct mgcp_ctx *mgcp_ctx = data;</span><br><span>    struct mgcp_client *mgcp;</span><br><span>    struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct mgcp_msg mgcp_msg;</span><br><span>    struct msgb *msg;</span><br><span>    int rc;</span><br><span>@@ -631,7 +631,7 @@</span><br><span> static void fsm_mdcx_cn_compl_cb(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>         struct mgcp_ctx *mgcp_ctx = data;</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct gsm_trans *trans;</span><br><span> </span><br><span>         OSMO_ASSERT(mgcp_ctx);</span><br><span>@@ -667,7 +667,7 @@</span><br><span>         struct mgcp_ctx *mgcp_ctx = data;</span><br><span>    struct mgcp_client *mgcp;</span><br><span>    struct gsm_trans *trans;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct mgcp_msg mgcp_msg;</span><br><span>    struct msgb *msg;</span><br><span>    int rc;</span><br><span>@@ -959,7 +959,7 @@</span><br><span>        struct mgcp_ctx *mgcp_ctx;</span><br><span>   char name[32];</span><br><span>       static bool fsm_registered = false;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct mgcp_client *mgcp;</span><br><span> </span><br><span>        OSMO_ASSERT(trans);</span><br><span>@@ -1031,7 +1031,7 @@</span><br><span>  * port: port number of the remote leg.</span><br><span>  * addr: IP-address of the remote leg.</span><br><span>  * Returns -EINVAL on error, 0 on success. */</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_mgcp_ass_complete(struct gsm_subscriber_connection *conn, uint16_t port, char *addr)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_mgcp_ass_complete(struct ran_conn *conn, uint16_t port, char *addr)</span><br><span> {</span><br><span>      struct mgcp_ctx *mgcp_ctx;</span><br><span> </span><br><span>@@ -1081,7 +1081,7 @@</span><br><span> int msc_mgcp_call_complete(struct gsm_trans *trans, uint16_t port, char *addr)</span><br><span> {</span><br><span>        struct mgcp_ctx *mgcp_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   OSMO_ASSERT(trans);</span><br><span>  OSMO_ASSERT(addr);</span><br><span>diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c</span><br><span>index 4f3ac04..9c82713 100644</span><br><span>--- a/src/libmsc/msc_vty.c</span><br><span>+++ b/src/libmsc/msc_vty.c</span><br><span>@@ -489,7 +489,7 @@</span><br><span>                VTY_NEWLINE);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void vty_dump_one_conn(struct vty *vty, const struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+static void vty_dump_one_conn(struct vty *vty, const struct ran_conn *conn)</span><br><span> {</span><br><span>         vty_out(vty, "%08x %22s %3s %5u %3u %08x %c /%1u %27s %s",</span><br><span>                 conn->a.conn_id,</span><br><span>@@ -507,7 +507,7 @@</span><br><span> DEFUN(show_msc_conn, show_msc_conn_cmd,</span><br><span>         "show connection", SHOW_STR "Subscriber Connections\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   vty_conn_hdr(vty);</span><br><span>   llist_for_each_entry(conn, &gsmnet->subscr_conns, entry)</span><br><span>@@ -628,7 +628,7 @@</span><br><span> </span><br><span>    /* Connection */</span><br><span>     if (vsub->msc_conn_ref) {</span><br><span style="color: hsl(0, 100%, 40%);">-            struct gsm_subscriber_connection *conn = vsub->msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+               struct ran_conn *conn = vsub->msc_conn_ref;</span><br><span>               vty_conn_hdr(vty);</span><br><span>           vty_dump_one_conn(vty, conn);</span><br><span>        }</span><br><span>@@ -1003,7 +1003,7 @@</span><br><span>       "Text of USSD message to send\n")</span><br><span> {</span><br><span>  char *text;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct vlr_subscr *vsub = get_vsub_by_argv(gsmnet, argv[0], argv[1]);</span><br><span>        int level;</span><br><span> </span><br><span>@@ -1095,7 +1095,7 @@</span><br><span>       "Loop Type F\n"</span><br><span>       "Loop Type I\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct vlr_subscr *vsub = get_vsub_by_argv(gsmnet, argv[0], argv[1]);</span><br><span>        const char *loop_str;</span><br><span>        int loop_mode;</span><br><span>@@ -1128,7 +1128,7 @@</span><br><span>       SUBSCR_HELP "Send a TS 04.14 MS Test Command to subscriber\n"</span><br><span>       "Open a TCH Loop inside the MS\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct vlr_subscr *vsub = get_vsub_by_argv(gsmnet, argv[0], argv[1]);</span><br><span> </span><br><span>    if (!vsub) {</span><br><span>diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c</span><br><span>index f2c84e6..1c45b32 100644</span><br><span>--- a/src/libmsc/osmo_msc.c</span><br><span>+++ b/src/libmsc/osmo_msc.c</span><br><span>@@ -79,7 +79,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a SAPI-N-REJECT from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_sapi_n_reject(struct ran_conn *conn, int dlci)</span><br><span> {</span><br><span>   int sapi = dlci & 0x7;</span><br><span> </span><br><span>@@ -89,7 +89,7 @@</span><br><span> </span><br><span> /* receive a Level 3 Complete message and return MSC_CONN_ACCEPT or</span><br><span>  * MSC_CONN_REJECT */</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_compl_l3(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_compl_l3(struct ran_conn *conn,</span><br><span>               struct msgb *msg, uint16_t chosen_channel)</span><br><span> {</span><br><span>     msc_subscr_conn_get(conn, MSC_CONN_USE_COMPL_L3);</span><br><span>@@ -121,7 +121,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a DTAP message from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_dtap(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>        msc_subscr_conn_get(conn, MSC_CONN_USE_DTAP);</span><br><span>        gsm0408_dispatch(conn, msg);</span><br><span>@@ -130,7 +130,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive an ASSIGNMENT COMPLETE from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_assign_compl(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_assign_compl(struct ran_conn *conn,</span><br><span>                    uint8_t rr_cause, uint8_t chosen_channel,</span><br><span>                    uint8_t encr_alg_id, uint8_t speec)</span><br><span> {</span><br><span>@@ -138,14 +138,14 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive an ASSIGNMENT FAILURE from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_assign_fail(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_assign_fail(struct ran_conn *conn,</span><br><span>                  uint8_t cause, uint8_t *rr_cause)</span><br><span> {</span><br><span>  LOGP(DRR, LOGL_DEBUG, "MSC assign failure (do nothing).\n");</span><br><span> }</span><br><span> </span><br><span> /* Receive a CLASSMARK CHANGE from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_classmark_chg(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_classmark_chg(struct ran_conn *conn,</span><br><span>                   const uint8_t *cm2, uint8_t cm2_len,</span><br><span>                 const uint8_t *cm3, uint8_t cm3_len)</span><br><span> {</span><br><span>@@ -181,7 +181,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a CIPHERING MODE COMPLETE from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_cipher_mode_compl(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_cipher_mode_compl(struct ran_conn *conn,</span><br><span>                        struct msgb *msg, uint8_t alg_id)</span><br><span> {</span><br><span>    struct vlr_ciph_result ciph_res = { .cause = VLR_CIPH_REJECT };</span><br><span>@@ -227,13 +227,13 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a CLEAR REQUEST from BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-int msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause)</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_clear_request(struct ran_conn *conn, uint32_t cause)</span><br><span> {</span><br><span>   msc_subscr_conn_close(conn, cause);</span><br><span>  return 1;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static const char *used_ref_counts_str(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+static const char *used_ref_counts_str(struct ran_conn *conn)</span><br><span> {</span><br><span>         static char buf[256];</span><br><span>        int bit_nr;</span><br><span>@@ -265,8 +265,8 @@</span><br><span> }</span><br><span> </span><br><span> /* increment the ref-count. Needs to be called by every user */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *</span><br><span style="color: hsl(0, 100%, 40%);">-_msc_subscr_conn_get(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *</span><br><span style="color: hsl(120, 100%, 40%);">+_msc_subscr_conn_get(struct ran_conn *conn,</span><br><span>               enum msc_subscr_conn_use balance_token,</span><br><span>                      const char *file, int line)</span><br><span> {</span><br><span>@@ -293,7 +293,7 @@</span><br><span> }</span><br><span> </span><br><span> /* decrement the ref-count. Once it reaches zero, we release */</span><br><span style="color: hsl(0, 100%, 40%);">-void _msc_subscr_conn_put(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void _msc_subscr_conn_put(struct ran_conn *conn,</span><br><span>                     enum msc_subscr_conn_use balance_token,</span><br><span>                      const char *file, int line)</span><br><span> {</span><br><span>@@ -328,7 +328,7 @@</span><br><span>             osmo_fsm_inst_dispatch(conn->fi, SUBSCR_CONN_E_UNUSED, NULL);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_used_by(struct gsm_subscriber_connection *conn, enum msc_subscr_conn_use token)</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_used_by(struct ran_conn *conn, enum msc_subscr_conn_use token)</span><br><span> {</span><br><span>      return conn && (conn->use_tokens & (1 << token));</span><br><span> }</span><br><span>diff --git a/src/libmsc/rrlp.c b/src/libmsc/rrlp.c</span><br><span>index 2a5c1aa..c0747cd 100644</span><br><span>--- a/src/libmsc/rrlp.c</span><br><span>+++ b/src/libmsc/rrlp.c</span><br><span>@@ -58,7 +58,7 @@</span><br><span>     return get_value_string(rrlp_mode_names, mode);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int send_rrlp_req(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+static int send_rrlp_req(struct ran_conn *conn)</span><br><span> {</span><br><span>       struct gsm_network *net = conn->network;</span><br><span>  const uint8_t *req;</span><br><span>@@ -89,7 +89,7 @@</span><br><span>                       void *handler_data, void *signal_data)</span><br><span> {</span><br><span>         struct vlr_subscr *vsub;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   switch (signal) {</span><br><span>    case S_SUBSCR_ATTACHED:</span><br><span>diff --git a/src/libmsc/silent_call.c b/src/libmsc/silent_call.c</span><br><span>index 9888894..a5ebe50 100644</span><br><span>--- a/src/libmsc/silent_call.c</span><br><span>+++ b/src/libmsc/silent_call.c</span><br><span>@@ -36,7 +36,7 @@</span><br><span> static int paging_cb_silent(unsigned int hooknum, unsigned int event,</span><br><span>                        struct msgb *msg, void *_conn, void *_data)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn = _conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn = _conn;</span><br><span>       struct scall_signal_data sigdata;</span><br><span>    int rc = 0;</span><br><span> </span><br><span>@@ -76,7 +76,7 @@</span><br><span> </span><br><span> #if 0</span><br><span> /* receive a layer 3 message from a silent call */</span><br><span style="color: hsl(0, 100%, 40%);">-int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int silent_call_rx(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>         /* FIXME: do something like sending it through a UDP port */</span><br><span>         LOGP(DLSMS, LOGL_NOTICE, "Discarding L3 message from a silent call.\n");</span><br><span>@@ -95,7 +95,7 @@</span><br><span> };</span><br><span> </span><br><span> /* decide if we need to reroute a message as part of a silent call */</span><br><span style="color: hsl(0, 100%, 40%);">-int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+int silent_call_reroute(struct ran_conn *conn, struct msgb *msg)</span><br><span> {</span><br><span>    struct gsm48_hdr *gh = msgb_l3(msg);</span><br><span>         uint8_t pdisc = gsm48_hdr_pdisc(gh);</span><br><span>@@ -138,7 +138,7 @@</span><br><span> /* end a silent call with a given subscriber */</span><br><span> int gsm_silent_call_stop(struct vlr_subscr *vsub)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   conn = connection_for_subscr(vsub);</span><br><span>  if (!conn) {</span><br><span>diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c</span><br><span>index 051372c..10f3cfa 100644</span><br><span>--- a/src/libmsc/smpp_openbsc.c</span><br><span>+++ b/src/libmsc/smpp_openbsc.c</span><br><span>@@ -536,7 +536,7 @@</span><br><span> </span><br><span> void smpp_cmd_ack(struct osmo_smpp_cmd *cmd)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct gsm_trans *trans;</span><br><span> </span><br><span>         if (cmd->is_report)</span><br><span>@@ -562,7 +562,7 @@</span><br><span> </span><br><span> void smpp_cmd_err(struct osmo_smpp_cmd *cmd, uint32_t status)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct gsm_trans *trans;</span><br><span>     int gsm411_cause;</span><br><span> </span><br><span>@@ -636,7 +636,7 @@</span><br><span> }</span><br><span> </span><br><span> static int deliver_to_esme(struct osmo_esme *esme, struct gsm_sms *sms,</span><br><span style="color: hsl(0, 100%, 40%);">-                    struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+                       struct ran_conn *conn)</span><br><span> {</span><br><span>       struct deliver_sm_t deliver;</span><br><span>         int mode, ret;</span><br><span>@@ -731,13 +731,13 @@</span><br><span> </span><br><span> static struct smsc *g_smsc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int smpp_route_smpp_first(struct gsm_sms *sms, struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int smpp_route_smpp_first(struct gsm_sms *sms, struct ran_conn *conn)</span><br><span> {</span><br><span>      return g_smsc->smpp_first;</span><br><span> }</span><br><span> </span><br><span> int smpp_try_deliver(struct gsm_sms *sms,</span><br><span style="color: hsl(0, 100%, 40%);">-                  struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+               struct ran_conn *conn)</span><br><span> {</span><br><span>     struct osmo_esme *esme;</span><br><span>      struct osmo_smpp_addr dst;</span><br><span>diff --git a/src/libmsc/smpp_smsc.h b/src/libmsc/smpp_smsc.h</span><br><span>index 755e685..27a2646 100644</span><br><span>--- a/src/libmsc/smpp_smsc.h</span><br><span>+++ b/src/libmsc/smpp_smsc.h</span><br><span>@@ -158,10 +158,10 @@</span><br><span> </span><br><span> </span><br><span> struct gsm_sms;</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn;</span><br><span> </span><br><span> int smpp_route_smpp_first(struct gsm_sms *sms,</span><br><span style="color: hsl(0, 100%, 40%);">-                         struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+                      struct ran_conn *conn);</span><br><span> int smpp_try_deliver(struct gsm_sms *sms,</span><br><span style="color: hsl(0, 100%, 40%);">-                     struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+              struct ran_conn *conn);</span><br><span> #endif</span><br><span>diff --git a/src/libmsc/subscr_conn.c b/src/libmsc/subscr_conn.c</span><br><span>index e6fa7e1..69bab25 100644</span><br><span>--- a/src/libmsc/subscr_conn.c</span><br><span>+++ b/src/libmsc/subscr_conn.c</span><br><span>@@ -57,7 +57,7 @@</span><br><span> </span><br><span> static void update_counters(struct osmo_fsm_inst *fi, bool conn_accepted)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span>         switch (conn->complete_layer3_type) {</span><br><span>     case COMPLETE_LAYER3_LU:</span><br><span>             rate_ctr_inc(&conn->network->msc_ctrs->ctr[</span><br><span>@@ -81,7 +81,7 @@</span><br><span> </span><br><span> static void evaluate_acceptance_outcome(struct osmo_fsm_inst *fi, bool conn_accepted)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span> </span><br><span>     update_counters(fi, conn_accepted);</span><br><span> </span><br><span>@@ -164,7 +164,7 @@</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int msc_classmark_request_then_cipher_mode_cmd(struct gsm_subscriber_connection *conn, bool umts_aka,</span><br><span style="color: hsl(120, 100%, 40%);">+int msc_classmark_request_then_cipher_mode_cmd(struct ran_conn *conn, bool umts_aka,</span><br><span>                                               bool retrieve_imeisv)</span><br><span> {</span><br><span>    int rc;</span><br><span>@@ -184,7 +184,7 @@</span><br><span> </span><br><span> static void subscr_conn_fsm_wait_classmark_update(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span>         switch (event) {</span><br><span>     case SUBSCR_CONN_E_CLASSMARK_UPDATE:</span><br><span>                 /* Theoretically, this event can be used for requesting Classmark in various situations.</span><br><span>@@ -226,7 +226,7 @@</span><br><span> </span><br><span> static bool subscr_conn_fsm_has_active_transactions(struct osmo_fsm_inst *fi)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span>         struct gsm_trans *trans;</span><br><span> </span><br><span>         if (conn->silent_call) {</span><br><span>@@ -263,7 +263,7 @@</span><br><span> </span><br><span> static void subscr_conn_fsm_accepted_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span> </span><br><span>     /* Stop Location Update expiry for this subscriber. While the subscriber</span><br><span>      * has an open connection the LU expiry timer must remain disabled.</span><br><span>@@ -324,7 +324,7 @@</span><br><span> </span><br><span> static int subscr_conn_fsm_timeout(struct osmo_fsm_inst *fi)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span>         if (msc_subscr_conn_in_release(conn)) {</span><br><span>              LOGPFSML(fi, LOGL_ERROR, "Timeout while releasing, discarding right now\n");</span><br><span>               osmo_fsm_inst_term(fi, OSMO_FSM_TERM_TIMEOUT, NULL);</span><br><span>@@ -337,7 +337,7 @@</span><br><span> </span><br><span> static void subscr_conn_fsm_releasing_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span> </span><br><span>     /* Use count for either conn->a.waiting_for_clear_complete or</span><br><span>      * conn->iu.waiting_for_release_complete. 'get' it early, so we don't deallocate after tearing</span><br><span>@@ -397,7 +397,7 @@</span><br><span> </span><br><span> static void subscr_conn_fsm_released(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     /* Terminate, deallocate and also deallocate the gsm_subscriber_connection, which is allocated as</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Terminate, deallocate and also deallocate the ran_conn, which is allocated as</span><br><span>      * a talloc child of fi. Also calls the cleanup function. */</span><br><span>         osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL);</span><br><span> }</span><br><span>@@ -492,7 +492,7 @@</span><br><span>      .timer_cb = subscr_conn_fsm_timeout,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-char *msc_subscr_conn_get_conn_id(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+char *msc_subscr_conn_get_conn_id(struct ran_conn *conn)</span><br><span> {</span><br><span>       char *id;</span><br><span> </span><br><span>@@ -514,7 +514,7 @@</span><br><span> /* Tidy up before the FSM deallocates */</span><br><span> static void subscr_conn_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gsm_subscriber_connection *conn = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct ran_conn *conn = fi->priv;</span><br><span> </span><br><span>     if (subscr_conn_fsm_has_active_transactions(fi))</span><br><span>             LOGPFSML(fi, LOGL_ERROR, "Deallocating despite active transactions\n");</span><br><span>@@ -537,14 +537,14 @@</span><br><span> }</span><br><span> </span><br><span> /* Signal success of Complete Layer 3. Allow to keep the conn open for Auth and Ciph. */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_complete_layer_3(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_complete_layer_3(struct ran_conn *conn)</span><br><span> {</span><br><span>       if (!conn)</span><br><span>           return;</span><br><span>      osmo_fsm_inst_dispatch(conn->fi, SUBSCR_CONN_E_COMPLETE_LAYER_3, NULL);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void subscr_conn_release_when_unused(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void subscr_conn_release_when_unused(struct ran_conn *conn)</span><br><span> {</span><br><span>    if (!conn)</span><br><span>           return;</span><br><span>@@ -563,7 +563,7 @@</span><br><span>        osmo_fsm_inst_dispatch(conn->fi, SUBSCR_CONN_E_RELEASE_WHEN_UNUSED, NULL);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void conn_close(struct gsm_subscriber_connection *conn, uint32_t cause, uint32_t event)</span><br><span style="color: hsl(120, 100%, 40%);">+static void conn_close(struct ran_conn *conn, uint32_t cause, uint32_t event)</span><br><span> {</span><br><span>     if (!conn) {</span><br><span>                 LOGP(DMM, LOGL_ERROR, "Cannot release NULL connection\n");</span><br><span>@@ -577,17 +577,17 @@</span><br><span>         osmo_fsm_inst_dispatch(conn->fi, event, &cause);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_close(struct gsm_subscriber_connection *conn, uint32_t cause)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_close(struct ran_conn *conn, uint32_t cause)</span><br><span> {</span><br><span>   return conn_close(conn, cause, SUBSCR_CONN_E_CN_CLOSE);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_mo_close(struct gsm_subscriber_connection *conn, uint32_t cause)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_mo_close(struct ran_conn *conn, uint32_t cause)</span><br><span> {</span><br><span>     return conn_close(conn, cause, SUBSCR_CONN_E_MO_CLOSE);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_in_release(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_in_release(struct ran_conn *conn)</span><br><span> {</span><br><span>         if (!conn || !conn->fi)</span><br><span>           return true;</span><br><span>@@ -598,7 +598,7 @@</span><br><span>   return false;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_is_accepted(const struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_is_accepted(const struct ran_conn *conn)</span><br><span> {</span><br><span>     if (!conn)</span><br><span>           return false;</span><br><span>@@ -612,7 +612,7 @@</span><br><span> </span><br><span> /* Indicate that *some* communication is happening with the phone, so that the conn FSM no longer times</span><br><span>  * out to release within a few seconds. */</span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_communicating(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_communicating(struct ran_conn *conn)</span><br><span> {</span><br><span>   osmo_fsm_inst_dispatch(conn->fi, SUBSCR_CONN_E_COMMUNICATING, NULL);</span><br><span> }</span><br><span>@@ -627,10 +627,10 @@</span><br><span>  * SUBSCR_CONN_E_RELEASE_COMPLETE event is dispatched, the FSM terminates and deallocates both FSM and</span><br><span>  * conn. As long as the FSM is waiting for responses from the subscriber, it will itself hold a use count</span><br><span>  * on the conn. */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network,</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *msc_subscr_conn_alloc(struct gsm_network *network,</span><br><span>                                                   enum ran_type via_ran, uint16_t lac)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       struct osmo_fsm_inst *fi;</span><br><span> </span><br><span>        fi = osmo_fsm_inst_alloc(&subscr_conn_fsm, network, NULL, LOGL_DEBUG, NULL);</span><br><span>@@ -639,13 +639,13 @@</span><br><span>             return NULL;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   conn = talloc_zero(fi, struct gsm_subscriber_connection);</span><br><span style="color: hsl(120, 100%, 40%);">+     conn = talloc_zero(fi, struct ran_conn);</span><br><span>     if (!conn) {</span><br><span>                 osmo_fsm_inst_free(fi);</span><br><span>              return NULL;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   *conn = (struct gsm_subscriber_connection){</span><br><span style="color: hsl(120, 100%, 40%);">+   *conn = (struct ran_conn){</span><br><span>           .network = network,</span><br><span>          .via_ran = via_ran,</span><br><span>          .lac = lac,</span><br><span>@@ -657,7 +657,7 @@</span><br><span>    return conn;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-bool msc_subscr_conn_is_establishing_auth_ciph(const struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+bool msc_subscr_conn_is_establishing_auth_ciph(const struct ran_conn *conn)</span><br><span> {</span><br><span>  if (!conn)</span><br><span>           return false;</span><br><span>@@ -673,7 +673,7 @@</span><br><span>  { 0, NULL }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_update_id(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_update_id(struct ran_conn *conn,</span><br><span>                          enum complete_layer3_type from, const char *id)</span><br><span> {</span><br><span>        conn->complete_layer3_type = from;</span><br><span>@@ -681,7 +681,7 @@</span><br><span>        LOGPFSML(conn->fi, LOGL_DEBUG, "Updated ID\n");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void rx_close_complete(struct gsm_subscriber_connection *conn, const char *label, bool *flag)</span><br><span style="color: hsl(120, 100%, 40%);">+static void rx_close_complete(struct ran_conn *conn, const char *label, bool *flag)</span><br><span> {</span><br><span>      if (!conn)</span><br><span>           return;</span><br><span>@@ -698,12 +698,12 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_rx_bssmap_clear_complete(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_rx_bssmap_clear_complete(struct ran_conn *conn)</span><br><span> {</span><br><span>   rx_close_complete(conn, "BSSMAP Clear Complete", &conn->a.waiting_for_clear_complete);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void msc_subscr_conn_rx_iu_release_complete(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void msc_subscr_conn_rx_iu_release_complete(struct ran_conn *conn)</span><br><span> {</span><br><span>         rx_close_complete(conn, "Iu Release Complete", &conn->iu.waiting_for_release_complete);</span><br><span> }</span><br><span>diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c</span><br><span>index cffbe0d..51263e1 100644</span><br><span>--- a/src/libmsc/transaction.c</span><br><span>+++ b/src/libmsc/transaction.c</span><br><span>@@ -40,7 +40,7 @@</span><br><span>  * \param[in] trans_id Transaction ID of transaction</span><br><span>  * \returns Matching transaction, if any</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_trans *trans_find_by_id(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_trans *trans_find_by_id(struct ran_conn *conn,</span><br><span>                                  uint8_t proto, uint8_t trans_id)</span><br><span> {</span><br><span>     struct gsm_trans *trans;</span><br><span>@@ -78,7 +78,7 @@</span><br><span>  * \param[in] sm_rp_mr RP Message Reference (see GSM TS 04.11, section 8.2.3)</span><br><span>  * \returns Matching transaction, NULL otherwise</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_trans *trans_find_by_sm_rp_mr(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_trans *trans_find_by_sm_rp_mr(struct ran_conn *conn,</span><br><span>                                     uint8_t sm_rp_mr)</span><br><span> {</span><br><span>      struct gsm_network *net = conn->network;</span><br><span>@@ -141,7 +141,7 @@</span><br><span> void trans_free(struct gsm_trans *trans)</span><br><span> {</span><br><span>   enum msc_subscr_conn_use conn_usage_token = MSC_CONN_USE_UNTRACKED;</span><br><span style="color: hsl(0, 100%, 40%);">-     struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span> </span><br><span>   switch (trans->protocol) {</span><br><span>        case GSM48_PDISC_CC:</span><br><span>@@ -220,7 +220,7 @@</span><br><span>  * \param[in] conn Connection to check</span><br><span>  * \returns 1 in case there is a transaction, 0 otherwise</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_trans *trans_has_conn(const struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_trans *trans_has_conn(const struct ran_conn *conn)</span><br><span> {</span><br><span>   struct gsm_trans *trans;</span><br><span> </span><br><span>@@ -236,7 +236,7 @@</span><br><span>  * facilities, which will then send the necessary release indications.</span><br><span>  * \param[in] conn Connection that is going to be closed.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-void trans_conn_closed(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+void trans_conn_closed(struct ran_conn *conn)</span><br><span> {</span><br><span>   struct gsm_trans *trans;</span><br><span> </span><br><span>diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c</span><br><span>index d206571..fcc8db7 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c</span><br><span>@@ -25,7 +25,7 @@</span><br><span> </span><br><span> static void test_reject_2nd_conn()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gsm_subscriber_connection *conn1;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct ran_conn *conn1;</span><br><span>      comment_start();</span><br><span> </span><br><span>         btw("Location Update Request on one connection");</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c</span><br><span>index 01f5974..9e7e518 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_tests.c</span><br><span>+++ b/tests/msc_vlr/msc_vlr_tests.c</span><br><span>@@ -161,9 +161,9 @@</span><br><span>           OSMO_ASSERT(gsup_tx_confirmed);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-bool conn_exists(const struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+bool conn_exists(const struct ran_conn *conn)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *c;</span><br><span style="color: hsl(120, 100%, 40%);">+  struct ran_conn *c;</span><br><span> </span><br><span>      if (!conn)</span><br><span>           return false;</span><br><span>@@ -177,7 +177,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Simplified version of the cm_service_request_concludes() */</span><br><span style="color: hsl(0, 100%, 40%);">-void conn_conclude_cm_service_req(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+void conn_conclude_cm_service_req(struct ran_conn *conn,</span><br><span>                              enum ran_type via_ran)</span><br><span> {</span><br><span>        btw("Concluding CM Service Request");</span><br><span>@@ -193,9 +193,9 @@</span><br><span> </span><br><span> enum ran_type rx_from_ran = RAN_GERAN_A;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *conn_new(void)</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *conn_new(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct ran_conn *conn;</span><br><span>       conn = msc_subscr_conn_alloc(net, rx_from_ran, 23);</span><br><span>  if (conn->via_ran == RAN_UTRAN_IU) {</span><br><span>              struct ranap_ue_conn_ctx *ue_ctx = talloc_zero(conn, struct ranap_ue_conn_ctx);</span><br><span>@@ -207,7 +207,7 @@</span><br><span>        return conn;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *g_conn = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+struct ran_conn *g_conn = NULL;</span><br><span> </span><br><span> void rx_from_ms(struct msgb *msg)</span><br><span> {</span><br><span>@@ -643,8 +643,8 @@</span><br><span> }</span><br><span> </span><br><span> /* override, requires '-Wl,--wrap=a_iface_tx_clear_cmd' */</span><br><span style="color: hsl(0, 100%, 40%);">-int __real_a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-int __wrap_a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn)</span><br><span style="color: hsl(120, 100%, 40%);">+int __real_a_iface_tx_clear_cmd(struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+int __wrap_a_iface_tx_clear_cmd(struct ran_conn *conn)</span><br><span> {</span><br><span>       btw("BSSAP Clear --%s--> MS", ran_type_name(RAN_GERAN_A));</span><br><span>      OSMO_ASSERT(bssap_clear_expected);</span><br><span>@@ -679,7 +679,7 @@</span><br><span> </span><br><span> static int fake_vlr_tx_lu_acc(void *msc_conn_ref, uint32_t send_tmsi)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        if (send_tmsi == GSM_RESERVED_TMSI)</span><br><span>          btw("sending LU Accept for %s", vlr_subscr_name(conn->vsub));</span><br><span>   else</span><br><span>@@ -691,7 +691,7 @@</span><br><span> </span><br><span> static int fake_vlr_tx_lu_rej(void *msc_conn_ref, enum gsm48_reject_value cause)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        btw("sending LU Reject for %s, cause %u", vlr_subscr_name(conn->vsub), cause);</span><br><span>  lu_result_sent |= RES_REJECT;</span><br><span>        return 0;</span><br><span>@@ -699,7 +699,7 @@</span><br><span> </span><br><span> static int fake_vlr_tx_cm_serv_acc(void *msc_conn_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        btw("sending CM Service Accept for %s", vlr_subscr_name(conn->vsub));</span><br><span>   cm_service_result_sent |= RES_ACCEPT;</span><br><span>        return 0;</span><br><span>@@ -707,7 +707,7 @@</span><br><span> </span><br><span> static int fake_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum gsm48_reject_value cause)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        btw("sending CM Service Reject for %s, cause: %s",</span><br><span>             vlr_subscr_name(conn->vsub), gsm48_reject_value_name(cause));</span><br><span>         cm_service_result_sent |= RES_REJECT;</span><br><span>@@ -717,7 +717,7 @@</span><br><span> static int fake_vlr_tx_auth_req(void *msc_conn_ref, struct gsm_auth_tuple *at,</span><br><span>                                bool send_autn)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        char *hex;</span><br><span>   bool ok = true;</span><br><span>      btw("sending %s Auth Request for %s: tuple use_count=%d key_seq=%d auth_types=0x%x and...",</span><br><span>@@ -761,15 +761,15 @@</span><br><span> </span><br><span> static int fake_vlr_tx_auth_rej(void *msc_conn_ref)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        btw("sending Auth Reject for %s", vlr_subscr_name(conn->vsub));</span><br><span>         return 0;</span><br><span> }</span><br><span> </span><br><span> /* override, requires '-Wl,--wrap=a_iface_tx_cipher_mode' */</span><br><span style="color: hsl(0, 100%, 40%);">-int __real_a_iface_tx_cipher_mode(const struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int __real_a_iface_tx_cipher_mode(const struct ran_conn *conn,</span><br><span>                              struct gsm0808_encrypt_info *ei, int include_imeisv);</span><br><span style="color: hsl(0, 100%, 40%);">-int __wrap_a_iface_tx_cipher_mode(const struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+int __wrap_a_iface_tx_cipher_mode(const struct ran_conn *conn,</span><br><span>                                 struct gsm0808_encrypt_info *ei, int include_imeisv)</span><br><span> {</span><br><span>  int i;</span><br><span>@@ -824,7 +824,7 @@</span><br><span> #ifndef BUILD_IU</span><br><span>     /* If we built without support for IU, fake the IU part here. The root cause is that we don't</span><br><span>     * have differing sets of expected outputs for --enable-iu and --disable-iu. */</span><br><span style="color: hsl(0, 100%, 40%);">- struct gsm_subscriber_connection *conn = msc_conn_ref;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ran_conn *conn = msc_conn_ref;</span><br><span>        if (conn->via_ran == RAN_UTRAN_IU) {</span><br><span>              DEBUGP(DMM, "-> SECURITY MODE CONTROL %s\n", vlr_subscr_name(conn->vsub));</span><br><span>           rc = __wrap_ranap_iu_tx_sec_mode_cmd(conn->iu.ue_ctx, &conn->vsub->last_tuple->vec,</span><br><span>diff --git a/tests/msc_vlr/msc_vlr_tests.h b/tests/msc_vlr/msc_vlr_tests.h</span><br><span>index 40377c1..fd9ec91 100644</span><br><span>--- a/tests/msc_vlr/msc_vlr_tests.h</span><br><span>+++ b/tests/msc_vlr/msc_vlr_tests.h</span><br><span>@@ -49,7 +49,7 @@</span><br><span> #define comment_start() fprintf(stderr, "===== %s\n", __func__);</span><br><span> #define comment_end() fprintf(stderr, "===== %s: SUCCESS\n\n", __func__);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-extern struct gsm_subscriber_connection *g_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+extern struct ran_conn *g_conn;</span><br><span> extern struct gsm_network *net;</span><br><span> extern struct gsm_bts *the_bts;</span><br><span> extern void *msgb_ctx;</span><br><span>@@ -152,8 +152,8 @@</span><br><span> struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex);</span><br><span> </span><br><span> void clear_vlr();</span><br><span style="color: hsl(0, 100%, 40%);">-bool conn_exists(const struct gsm_subscriber_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-void conn_conclude_cm_service_req(struct gsm_subscriber_connection *conn,</span><br><span style="color: hsl(120, 100%, 40%);">+bool conn_exists(const struct ran_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+void conn_conclude_cm_service_req(struct ran_conn *conn,</span><br><span>                                  enum ran_type via_ran);</span><br><span> </span><br><span> void dtap_expect_tx(const char *hex);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12015">change 12015</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12015"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ic595f7a558d3553c067f77dc67543ab59659707a </div>
<div style="display:none"> Gerrit-Change-Number: 12015 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>