blob: 262a9c82edaa0ac83ec976c54c9bd431f044c9ad [file] [log] [blame]
Neels Hofmeyrc4628a32018-12-07 14:47:34 +01001#pragma once
2
3#include <osmocom/gsm/gsm_utils.h>
4#include <osmocom/gsm/gsup.h>
5#include <osmocom/msc/sccp_ran.h>
6#include <osmocom/msc/ran_msg.h>
Neels Hofmeyr1dc39612023-03-03 16:43:19 +01007#include <osmocom/msc/sdp_msg.h>
Neels Hofmeyrc4628a32018-12-07 14:47:34 +01008
9struct osmo_tdef;
10
11extern struct osmo_tdef msc_tdefs_geran[];
12extern struct osmo_tdef msc_tdefs_utran[];
13extern struct osmo_tdef msc_tdefs_sgs[];
14
15extern const struct value_string an_proto_names[];
16static inline const char *an_proto_name(enum osmo_gsup_access_network_protocol val)
17{ return get_value_string(an_proto_names, val); }
18
19struct ran_infra {
20 const enum osmo_rat_type type;
21 const enum osmo_gsup_access_network_protocol an_proto;
22 uint32_t ssn;
23 const int log_subsys;
24 struct osmo_tdef * const tdefs;
25 const struct sccp_ran_ops sccp_ran_ops;
26 const ran_dec_l2_t ran_dec_l2;
27 const ran_encode_t ran_encode;
28 struct sccp_ran_inst *sri;
Neels Hofmeyr1dc39612023-03-03 16:43:19 +010029 /* To always set up the MGW endpoint facing the RAN side with specific codecs, list those here. Otherwise leave
30 * empty (to use the result of codecs filtering). This exists for IuCS, to always set the MGW endpoint facing
31 * RAN to IUFP, to decapsulate the IuUP headers. */
32 struct sdp_audio_codecs force_mgw_codecs_to_ran;
Neels Hofmeyrc4628a32018-12-07 14:47:34 +010033};
34
35extern struct ran_infra msc_ran_infra[];
36extern const int msc_ran_infra_len;