2023-04-05 15:39:39 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <osmocom/core/linuxlist.h>
|
2023-04-06 16:08:28 +00:00
|
|
|
#include <osmocom/core/socket.h>
|
2023-04-05 15:39:39 +00:00
|
|
|
#include <osmocom/gsm/gsm23003.h>
|
|
|
|
|
|
|
|
#include <osmo-bts/oml.h>
|
|
|
|
|
|
|
|
struct pcu_sock_state;
|
|
|
|
|
2023-04-06 16:08:28 +00:00
|
|
|
/* GPRS NSVC; ip.access specific NM Object */
|
|
|
|
struct gsm_gprs_nse;
|
|
|
|
struct gsm_gprs_nsvc {
|
|
|
|
struct gsm_abis_mo mo;
|
|
|
|
struct gsm_gprs_nse *nse;
|
|
|
|
/* data read via VTY config file, to configure the BTS
|
|
|
|
* via OML from BSC */
|
|
|
|
int id;
|
|
|
|
uint16_t nsvci;
|
|
|
|
struct osmo_sockaddr local; /* on the BTS */
|
|
|
|
struct osmo_sockaddr remote; /* on the SGSN */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* GPRS NSE; ip.access specific NM Object */
|
|
|
|
struct gsm_gprs_nse {
|
|
|
|
struct gsm_abis_mo mo;
|
|
|
|
uint16_t nsei;
|
|
|
|
uint8_t timer[7];
|
|
|
|
struct gsm_gprs_nsvc nsvc[2];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct gsm_bts *gsm_gprs_nse_get_bts(const struct gsm_gprs_nse *nse);
|
|
|
|
|
2023-04-05 15:39:39 +00:00
|
|
|
/* BTS Site Manager */
|
|
|
|
struct gsm_bts_sm {
|
|
|
|
struct gsm_abis_mo mo;
|
|
|
|
struct llist_head bts_list;
|
|
|
|
unsigned int num_bts;
|
|
|
|
struct osmo_plmn_id plmn;
|
2023-04-06 16:08:28 +00:00
|
|
|
struct {
|
2023-04-11 09:35:34 +00:00
|
|
|
struct pcu_sock_state *pcu_state;
|
2023-04-06 16:08:28 +00:00
|
|
|
struct gsm_gprs_nse nse;
|
|
|
|
} gprs;
|
2023-04-05 15:39:39 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
extern struct gsm_bts_sm *g_bts_sm;
|
|
|
|
|
|
|
|
struct gsm_bts_sm *gsm_bts_sm_alloc(void *talloc_ctx);
|