34 lines
1.0 KiB
C
34 lines
1.0 KiB
C
#pragma once
|
|
/* MSC RAN connection implementation */
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <osmocom/core/linuxlist.h>
|
|
|
|
struct ran_peer;
|
|
struct osmo_fsm_inst;
|
|
struct msgb;
|
|
|
|
/* active radio connection of a mobile subscriber */
|
|
struct ran_conn {
|
|
/* Entry in sccp_ran_inst->ran_conns */
|
|
struct llist_head entry;
|
|
|
|
struct ran_peer *ran_peer;
|
|
uint32_t sccp_conn_id;
|
|
|
|
/* MSC role that this RAN connection belongs to. This will be either an msc_i (currently active
|
|
* connection) or an msc_t (transitory new connection during Handover). */
|
|
struct osmo_fsm_inst *msc_role;
|
|
|
|
bool closing;
|
|
};
|
|
|
|
struct ran_conn *ran_conn_create_incoming(struct ran_peer *ran_peer, uint32_t sccp_conn_id);
|
|
struct ran_conn *ran_conn_create_outgoing(struct ran_peer *ran_peer);
|
|
const char *ran_conn_name(struct ran_conn *conn);
|
|
int ran_conn_down_l2_co(struct ran_conn *conn, struct msgb *l3, bool initial);
|
|
void ran_conn_msc_role_gone(struct ran_conn *conn, struct osmo_fsm_inst *msc_role);
|
|
void ran_conn_close(struct ran_conn *conn);
|
|
void ran_conn_discard(struct ran_conn *conn);
|