diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/osmocom/bsc/Makefile.am | 12 | ||||
-rw-r--r-- | include/osmocom/bsc/auth.h | 22 | ||||
-rw-r--r-- | include/osmocom/bsc/bss.h | 2 | ||||
-rw-r--r-- | include/osmocom/bsc/chan_alloc.h | 3 | ||||
-rw-r--r-- | include/osmocom/bsc/common_bsc.h | 3 | ||||
-rw-r--r-- | include/osmocom/bsc/common_cs.h | 5 | ||||
-rw-r--r-- | include/osmocom/bsc/crc24.h | 10 | ||||
-rw-r--r-- | include/osmocom/bsc/gsm_data.h | 39 | ||||
-rw-r--r-- | include/osmocom/bsc/gsm_data_shared.h | 1 | ||||
-rw-r--r-- | include/osmocom/bsc/gsm_subscriber.h | 68 | ||||
-rw-r--r-- | include/osmocom/bsc/ipaccess.h | 4 | ||||
-rw-r--r-- | include/osmocom/bsc/mncc.h | 215 | ||||
-rw-r--r-- | include/osmocom/bsc/mncc_int.h | 14 | ||||
-rw-r--r-- | include/osmocom/bsc/msc_ifaces.h | 42 | ||||
-rw-r--r-- | include/osmocom/bsc/rtp_proxy.h | 95 | ||||
-rw-r--r-- | include/osmocom/bsc/signal.h | 69 | ||||
-rw-r--r-- | include/osmocom/bsc/silent_call.h | 15 | ||||
-rw-r--r-- | include/osmocom/bsc/smpp.h | 4 | ||||
-rw-r--r-- | include/osmocom/bsc/sms_queue.h | 17 | ||||
-rw-r--r-- | include/osmocom/bsc/transaction.h | 102 | ||||
-rw-r--r-- | include/osmocom/bsc/trau_mux.h | 70 | ||||
-rw-r--r-- | include/osmocom/bsc/trau_upqueue.h | 7 |
22 files changed, 6 insertions, 813 deletions
diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 9d2ee6ec2..1b86f9ae4 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -4,7 +4,6 @@ noinst_HEADERS = \ abis_om2000.h \ abis_rsl.h \ arfcn_range_encode.h \ - auth.h \ bsc_msc.h \ bsc_msg_filter.h \ bsc_nat.h \ @@ -18,7 +17,6 @@ noinst_HEADERS = \ common.h \ common_bsc.h \ common_cs.h \ - crc24.h \ ctrl.h \ debug.h \ e1_config.h \ @@ -26,16 +24,12 @@ noinst_HEADERS = \ gsm_04_80.h \ gsm_data.h \ gsm_data_shared.h \ - gsm_subscriber.h \ handover.h \ handover_decision.h \ ipaccess.h \ meas_feed.h \ meas_rep.h \ misdn.h \ - mncc.h \ - mncc_int.h \ - msc_ifaces.h \ nat_rewrite_trie.h \ network_listen.h \ openbscdefines.h \ @@ -52,15 +46,9 @@ noinst_HEADERS = \ rest_octets.h \ rrlp.h \ rs232.h \ - rtp_proxy.h \ signal.h \ - silent_call.h \ - sms_queue.h \ socket.h \ system_information.h \ - transaction.h \ - trau_mux.h \ - trau_upqueue.h \ ussd.h \ vty.h \ bsc_api.h \ diff --git a/include/osmocom/bsc/auth.h b/include/osmocom/bsc/auth.h deleted file mode 100644 index b314bbf19..000000000 --- a/include/osmocom/bsc/auth.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _AUTH_H -#define _AUTH_H - -#include <osmocom/core/utils.h> - -struct gsm_auth_tuple; - -enum auth_action { - AUTH_ERROR = -1, /* Internal error */ - AUTH_NOT_AVAIL = 0, /* No auth tuple available */ - AUTH_DO_AUTH_THEN_CIPH = 1, /* Firsth authenticate, then cipher */ - AUTH_DO_CIPH = 2, /* Only ciphering */ - AUTH_DO_AUTH = 3, /* Only authentication, no ciphering */ -}; - -extern const struct value_string auth_action_names[]; -static inline const char *auth_action_str(enum auth_action a) -{ - return get_value_string(auth_action_names, a); -} - -#endif /* _AUTH_H */ diff --git a/include/osmocom/bsc/bss.h b/include/osmocom/bsc/bss.h index b12487d02..9891f5f1d 100644 --- a/include/osmocom/bsc/bss.h +++ b/include/osmocom/bsc/bss.h @@ -6,7 +6,7 @@ struct msgb; /* start and stop network */ -extern int bsc_network_alloc(mncc_recv_cb_t mncc_recv); +extern int bsc_network_alloc(void); extern int bsc_network_configure(const char *cfg_file); extern int bsc_shutdown_net(struct gsm_network *net); diff --git a/include/osmocom/bsc/chan_alloc.h b/include/osmocom/bsc/chan_alloc.h index 320fa947c..62d0286ef 100644 --- a/include/osmocom/bsc/chan_alloc.h +++ b/include/osmocom/bsc/chan_alloc.h @@ -24,9 +24,6 @@ struct gsm_subscriber_connection; -/* Find an allocated channel for a specified subscriber */ -struct gsm_subscriber_connection *connection_for_subscr(struct vlr_subscr *vsub); - /* Allocate a logical channel (SDCCH, TCH, ...) */ struct gsm_lchan *lchan_alloc(struct gsm_bts *bts, enum gsm_chan_t type, int allow_bigger); diff --git a/include/osmocom/bsc/common_bsc.h b/include/osmocom/bsc/common_bsc.h index 08394e989..32e509716 100644 --- a/include/osmocom/bsc/common_bsc.h +++ b/include/osmocom/bsc/common_bsc.h @@ -5,5 +5,4 @@ struct gsm_network *bsc_network_init(void *ctx, uint16_t country_code, - uint16_t network_code, - mncc_recv_cb_t mncc_recv); + uint16_t network_code); diff --git a/include/osmocom/bsc/common_cs.h b/include/osmocom/bsc/common_cs.h index 09a4b0224..c2e8515df 100644 --- a/include/osmocom/bsc/common_cs.h +++ b/include/osmocom/bsc/common_cs.h @@ -6,8 +6,6 @@ struct msgb; struct gsm_network; -typedef int (*mncc_recv_cb_t)(struct gsm_network *, struct msgb *); - struct vty; #define MAX_A5_KEY_LEN (128/8) @@ -20,8 +18,7 @@ struct gsm_encr { struct gsm_network *gsm_network_init(void *ctx, uint16_t country_code, - uint16_t network_code, - mncc_recv_cb_t mncc_recv); + uint16_t network_code); int common_cs_vty_init(struct gsm_network *network, int (* config_write_net )(struct vty *)); diff --git a/include/osmocom/bsc/crc24.h b/include/osmocom/bsc/crc24.h deleted file mode 100644 index 756638c03..000000000 --- a/include/osmocom/bsc/crc24.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _CRC24_H -#define _CRC24_H - -#include <stdint.h> - -#define INIT_CRC24 0xffffff - -uint32_t crc24_calc(uint32_t fcs, uint8_t *cp, unsigned int len); - -#endif diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index cbb809b33..326842694 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -24,11 +24,9 @@ #define OBSC_NM_W_ACK_CB(__msgb) (__msgb)->cb[3] -struct mncc_sock_state; struct gsm_subscriber_group; struct bsc_subscr; struct vlr_instance; -struct vlr_subscr; struct gprs_ra_id; #define OBSC_LINKID_CB(__msgb) (__msgb)->cb[3] @@ -107,42 +105,15 @@ struct gsm_subscriber_connection { /* global linked list of subscriber_connections */ struct llist_head entry; - /* usage count. If this drops to zero, we start the release - * towards A/Iu */ - uint32_t use_count; - - /* The MS has opened the conn with a CM Service Request, and we shall - * keep it open for an actual request (or until timeout). */ - bool received_cm_service_request; - /* libbsc subscriber information (if available) */ struct bsc_subscr *bsub; - /* libmsc/libvlr subscriber information (if available) */ - struct vlr_subscr *vsub; - - /* LU expiration handling */ - uint8_t expire_timer_stopped; - /* SMS helpers for libmsc */ - uint8_t next_rp_ref; - - struct osmo_fsm_inst *conn_fsm; - - /* Are we part of a special "silent" call */ - int silent_call; - - /* MNCC rtp bridge markers */ - int mncc_rtp_bridge; - int mncc_rtp_create_pending; - int mncc_rtp_connect_pending; - /* bsc structures */ struct osmo_bsc_sccp_con *sccp_con; /* BSC */ /* back pointers */ struct gsm_network *network; - bool in_release; struct gsm_lchan *lchan; /* BSC */ struct gsm_lchan *ho_lchan; /* BSC */ struct gsm_bts *bts; /* BSC */ @@ -151,9 +122,6 @@ struct gsm_subscriber_connection { struct osmo_timer_list T10; /* BSC */ struct gsm_lchan *secondary_lchan; /* BSC */ - /* connected via 2G or 3G? */ - enum ran_type via_ran; - struct gsm_classmark classmark; uint16_t lac; @@ -336,10 +304,6 @@ struct gsm_network { struct rate_ctr_group *bsc_ctrs; struct osmo_counter *active_calls; - /* layer 4 */ - struct mncc_sock_state *mncc_state; - mncc_recv_cb_t mncc_recv; - struct llist_head upqueue; /* * TODO: Move the trans_list into the subscriber connection and * create a pending list for MT transactions. These exist before @@ -381,8 +345,6 @@ struct gsm_network { /* MSC data in case we are a true BSC */ struct osmo_bsc_data *bsc_data; - struct gsm_sms_queue *sms_queue; - /* control interface */ struct ctrl_handle *ctrl; @@ -451,7 +413,6 @@ struct gsm_sms_addr { struct gsm_sms { unsigned long long id; - struct vlr_subscr *receiver; struct gsm_sms_addr src, dst; enum gsm_sms_source_id source; diff --git a/include/osmocom/bsc/gsm_data_shared.h b/include/osmocom/bsc/gsm_data_shared.h index e762c24d4..9bbcabd9d 100644 --- a/include/osmocom/bsc/gsm_data_shared.h +++ b/include/osmocom/bsc/gsm_data_shared.h @@ -33,7 +33,6 @@ struct osmo_bsc_data; struct osmo_bsc_sccp_con; -struct gsm_sms_queue; /* RRLP mode of operation */ enum rrlp_mode { diff --git a/include/osmocom/bsc/gsm_subscriber.h b/include/osmocom/bsc/gsm_subscriber.h deleted file mode 100644 index ca66d47a9..000000000 --- a/include/osmocom/bsc/gsm_subscriber.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef _GSM_SUBSCR_H -#define _GSM_SUBSCR_H - -#include <stdbool.h> - -#include <osmocom/core/linuxlist.h> -#include <osmocom/gsm/protocol/gsm_23_003.h> - -#include <osmocom/bsc/gsm_data.h> - -#define GSM_NAME_LENGTH 160 - -#define GSM_EXTENSION_LENGTH 15 /* MSISDN can only be 15 digits length */ -#define GSM_MIN_EXTEN 20000 -#define GSM_MAX_EXTEN 49999 - -#define GSM_SUBSCRIBER_FIRST_CONTACT 0x00000001 -/* gprs_sgsn.h defines additional flags including and above bit 16 (0x10000) */ - -#define GSM_SUBSCRIBER_NO_EXPIRATION 0x0 - -enum gsm_subscriber_field { - GSM_SUBSCRIBER_IMSI, - GSM_SUBSCRIBER_TMSI, - GSM_SUBSCRIBER_EXTENSION, - GSM_SUBSCRIBER_ID, -}; - -enum gsm_subscriber_update_reason { - GSM_SUBSCRIBER_UPDATE_ATTACHED, - GSM_SUBSCRIBER_UPDATE_DETACHED, - GSM_SUBSCRIBER_UPDATE_EQUIPMENT, -}; - -/* - * Struct for pending channel requests. This is managed in the - * llist_head requests of each subscriber. The reference counting - * should work in such a way that a subscriber with a pending request - * remains in memory. - */ -struct subscr_request { - struct llist_head entry; - - /* human readable label to be able to log pending request kinds */ - const char *label; - - /* the callback data */ - gsm_cbfn *cbfn; - void *param; -}; - -int subscr_update(struct vlr_subscr *vsub, int reason); - -/* - * Paging handling with authentication - */ -struct subscr_request *subscr_request_conn(struct vlr_subscr *vsub, - gsm_cbfn *cbfn, void *param, - const char *label); - -void subscr_remove_request(struct subscr_request *req); -int subscr_rx_paging_response(struct msgb *msg, - struct gsm_subscriber_connection *conn); - -int subscr_paging_dispatch(unsigned int hooknum, unsigned int event, - struct msgb *msg, void *data, void *param); - -#endif /* _GSM_SUBSCR_H */ diff --git a/include/osmocom/bsc/ipaccess.h b/include/osmocom/bsc/ipaccess.h index 82e89c27d..3d0f6128c 100644 --- a/include/osmocom/bsc/ipaccess.h +++ b/include/osmocom/bsc/ipaccess.h @@ -2,11 +2,13 @@ #define _IPACCESS_H #include <osmocom/abis/e1_input.h> -#include "gsm_subscriber.h" #include <osmocom/core/linuxlist.h> #include <osmocom/gsm/protocol/ipaccess.h> #include <osmocom/gsm/protocol/gsm_23_003.h> +struct gsm_bts; +struct gsm_bts_trx; + struct ipac_msgt_sccp_state { uint8_t src_ref[3]; uint8_t dst_ref[3]; diff --git a/include/osmocom/bsc/mncc.h b/include/osmocom/bsc/mncc.h deleted file mode 100644 index 881e0418e..000000000 --- a/include/osmocom/bsc/mncc.h +++ /dev/null @@ -1,215 +0,0 @@ -/* GSM Mobile Radio Interface Layer 3 messages on the A-bis interface - * 3GPP TS 04.08 version 7.21.0 Release 1998 / ETSI TS 100 940 V7.21.0 */ - -/* (C) 2008-2009 by Harald Welte <laforge@gnumonks.org> - * (C) 2008, 2009 by Holger Hans Peter Freyther <zecke@selfish.org> - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#ifndef _MNCC_H -#define _MNCC_H - -#include <osmocom/core/linuxlist.h> -#include <osmocom/gsm/mncc.h> - -#include <stdint.h> - -struct gsm_network; -struct msgb; - - -/* One end of a call */ -struct gsm_call { - struct llist_head entry; - - /* network handle */ - void *net; - - /* the 'local' transaction */ - uint32_t callref; - /* the 'remote' transaction */ - uint32_t remote_ref; -}; - -#define MNCC_SETUP_REQ 0x0101 -#define MNCC_SETUP_IND 0x0102 -#define MNCC_SETUP_RSP 0x0103 -#define MNCC_SETUP_CNF 0x0104 -#define MNCC_SETUP_COMPL_REQ 0x0105 -#define MNCC_SETUP_COMPL_IND 0x0106 -/* MNCC_REJ_* is perfomed via MNCC_REL_* */ -#define MNCC_CALL_CONF_IND 0x0107 -#define MNCC_CALL_PROC_REQ 0x0108 -#define MNCC_PROGRESS_REQ 0x0109 -#define MNCC_ALERT_REQ 0x010a -#define MNCC_ALERT_IND 0x010b -#define MNCC_NOTIFY_REQ 0x010c -#define MNCC_NOTIFY_IND 0x010d -#define MNCC_DISC_REQ 0x010e -#define MNCC_DISC_IND 0x010f -#define MNCC_REL_REQ 0x0110 -#define MNCC_REL_IND 0x0111 -#define MNCC_REL_CNF 0x0112 -#define MNCC_FACILITY_REQ 0x0113 -#define MNCC_FACILITY_IND 0x0114 -#define MNCC_START_DTMF_IND 0x0115 -#define MNCC_START_DTMF_RSP 0x0116 -#define MNCC_START_DTMF_REJ 0x0117 -#define MNCC_STOP_DTMF_IND 0x0118 -#define MNCC_STOP_DTMF_RSP 0x0119 -#define MNCC_MODIFY_REQ 0x011a -#define MNCC_MODIFY_IND 0x011b -#define MNCC_MODIFY_RSP 0x011c -#define MNCC_MODIFY_CNF 0x011d -#define MNCC_MODIFY_REJ 0x011e -#define MNCC_HOLD_IND 0x011f -#define MNCC_HOLD_CNF 0x0120 -#define MNCC_HOLD_REJ 0x0121 -#define MNCC_RETRIEVE_IND 0x0122 -#define MNCC_RETRIEVE_CNF 0x0123 -#define MNCC_RETRIEVE_REJ 0x0124 -#define MNCC_USERINFO_REQ 0x0125 -#define MNCC_USERINFO_IND 0x0126 -#define MNCC_REJ_REQ 0x0127 -#define MNCC_REJ_IND 0x0128 - -#define MNCC_BRIDGE 0x0200 -#define MNCC_FRAME_RECV 0x0201 -#define MNCC_FRAME_DROP 0x0202 -#define MNCC_LCHAN_MODIFY 0x0203 -#define MNCC_RTP_CREATE 0x0204 -#define MNCC_RTP_CONNECT 0x0205 -#define MNCC_RTP_FREE 0x0206 - -#define GSM_TCHF_FRAME 0x0300 -#define GSM_TCHF_FRAME_EFR 0x0301 -#define GSM_TCHH_FRAME 0x0302 -#define GSM_TCH_FRAME_AMR 0x0303 -#define GSM_BAD_FRAME 0x03ff - -#define MNCC_SOCKET_HELLO 0x0400 - -#define GSM_MAX_FACILITY 128 -#define GSM_MAX_SSVERSION 128 -#define GSM_MAX_USERUSER 128 - -#define MNCC_F_BEARER_CAP 0x0001 -#define MNCC_F_CALLED 0x0002 -#define MNCC_F_CALLING 0x0004 -#define MNCC_F_REDIRECTING 0x0008 -#define MNCC_F_CONNECTED 0x0010 -#define MNCC_F_CAUSE 0x0020 -#define MNCC_F_USERUSER 0x0040 -#define MNCC_F_PROGRESS 0x0080 -#define MNCC_F_EMERGENCY 0x0100 -#define MNCC_F_FACILITY 0x0200 -#define MNCC_F_SSVERSION 0x0400 -#define MNCC_F_CCCAP 0x0800 -#define MNCC_F_KEYPAD 0x1000 -#define MNCC_F_SIGNAL 0x2000 - -struct gsm_mncc { - /* context based information */ - uint32_t msg_type; - uint32_t callref; - - /* which fields are present */ - uint32_t fields; - - /* data derived informations (MNCC_F_ based) */ - struct gsm_mncc_bearer_cap bearer_cap; - struct gsm_mncc_number called; - struct gsm_mncc_number calling; - struct gsm_mncc_number redirecting; - struct gsm_mncc_number connected; - struct gsm_mncc_cause cause; - struct gsm_mncc_progress progress; - struct gsm_mncc_useruser useruser; - struct gsm_mncc_facility facility; - struct gsm_mncc_cccap cccap; - struct gsm_mncc_ssversion ssversion; - struct { - int sup; - int inv; - } clir; - int signal; - - /* data derived information, not MNCC_F based */ - int keypad; - int more; - int notify; /* 0..127 */ - int emergency; - char imsi[16]; -}; - -struct gsm_data_frame { - uint32_t msg_type; - uint32_t callref; - unsigned char data[0]; -}; - -#define MNCC_SOCK_VERSION 5 -struct gsm_mncc_hello { - uint32_t msg_type; - uint32_t version; - - /* send the sizes of the structs */ - uint32_t mncc_size; - uint32_t data_frame_size; - - /* send some offsets */ - uint32_t called_offset; - uint32_t signal_offset; - uint32_t emergency_offset; -}; - -struct gsm_mncc_rtp { - uint32_t msg_type; - uint32_t callref; - uint32_t ip; - uint16_t port; - uint32_t payload_type; - uint32_t payload_msg_type; -}; - -struct gsm_mncc_bridge { - uint32_t msg_type; - uint32_t callref[2]; -}; - -const char *get_mncc_name(int value); -void mncc_set_cause(struct gsm_mncc *data, int loc, int val); -void cc_tx_to_mncc(struct gsm_network *net, struct msgb *msg); - -/* input from CC code into mncc_builtin */ -int int_mncc_recv(struct gsm_network *net, struct msgb *msg); - -/* input from CC code into mncc_sock */ -int mncc_sock_from_cc(struct gsm_network *net, struct msgb *msg); - -int mncc_sock_init(struct gsm_network *net, const char *sock_path); - -#define mncc_is_data_frame(msg_type) \ - (msg_type == GSM_TCHF_FRAME \ - || msg_type == GSM_TCHF_FRAME_EFR \ - || msg_type == GSM_TCHH_FRAME \ - || msg_type == GSM_TCH_FRAME_AMR \ - || msg_type == GSM_BAD_FRAME) - - -#endif diff --git a/include/osmocom/bsc/mncc_int.h b/include/osmocom/bsc/mncc_int.h deleted file mode 100644 index 213ce1414..000000000 --- a/include/osmocom/bsc/mncc_int.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _MNCC_INT_H -#define _MNCC_INT_H - -#include <stdint.h> - -struct mncc_int { - uint8_t def_codec[2]; -}; - -extern struct mncc_int mncc_int; - -uint8_t mncc_codec_for_mode(int lchan_type); - -#endif diff --git a/include/osmocom/bsc/msc_ifaces.h b/include/osmocom/bsc/msc_ifaces.h deleted file mode 100644 index dadb82800..000000000 --- a/include/osmocom/bsc/msc_ifaces.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once - -#include <osmocom/core/msgb.h> -#include <osmocom/bsc/gsm_data.h> - -/* These are the interfaces of the MSC layer towards (from?) the BSC and RNC, - * i.e. in the direction towards the mobile device (MS aka UE). - * - * 2G will use the A-interface, - * 3G aka UMTS will use the Iu-interface (for the MSC, it's IuCS). - * - * To allow linking parts of the MSC code without having to include entire - * infrastructures of external libraries, the core transmitting and receiving - * functions are left unimplemented. For example, a unit test does not need to - * link against external ASN1 libraries if it is never going to encode actual - * outgoing messages. It is up to each building scope to implement real world - * functions or to plug mere dummy implementations. - * - * For example, msc_tx_dtap(conn, msg), depending on conn->via_iface, will call - * either iu_tx() or a_tx() [note: at time of writing, the A-interface is not - * yet implemented]. When you try to link against libmsc, you will find that - * the compiler complains about an undefined reference to iu_tx(). If you, - * however, link against libiu as well as the osmo-iuh libs (etc.), iu_tx() is - * available. A unit test may instead simply implement a dummy iu_tx() function - * and not link against osmo-iuh, see tests/libiudummy/. - */ - -/* Each main linkage must implement this function (see comment above). */ -extern int iu_tx(struct msgb *msg, uint8_t sapi); - -int msc_tx_dtap(struct gsm_subscriber_connection *conn, - struct msgb *msg); - -int msc_gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn); -int msc_gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn, - enum gsm48_reject_value value); - -int msc_tx_common_id(struct gsm_subscriber_connection *conn); -int msc_call_assignment(struct gsm_trans *trans); -int msc_call_bridge(struct gsm_trans *trans1, struct gsm_trans *trans2); -void msc_call_release(struct gsm_trans *trans); -int msc_call_connect(struct gsm_trans *trans, uint16_t port, uint32_t ip); diff --git a/include/osmocom/bsc/rtp_proxy.h b/include/osmocom/bsc/rtp_proxy.h deleted file mode 100644 index 918420ce5..000000000 --- a/include/osmocom/bsc/rtp_proxy.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef _RTP_PROXY_H -#define _RTP_PROXY_H - -/* RTP proxy handling for ip.access nanoBTS */ - -/* (C) 2009 by Harald Welte <laforge@gnumonks.org> - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - - -#include <netinet/in.h> - -#include <osmocom/core/linuxlist.h> -#include <osmocom/core/select.h> - -#include <osmocom/bsc/mncc.h> - -#define RTP_PT_GSM_FULL 3 -#define RTP_PT_GSM_HALF 96 -#define RTP_PT_GSM_EFR 97 -#define RTP_PT_AMR 98 -#define RTP_LEN_GSM_FULL 33 -#define RTP_LEN_GSM_HALF 15 -#define RTP_LEN_GSM_EFR 31 -#define RTP_GSM_DURATION 160 - -enum rtp_rx_action { - RTP_NONE, - RTP_PROXY, - RTP_RECV_UPSTREAM, -}; - -enum rtp_tx_action { - RTP_SEND_NONE, - RTP_SEND_DOWNSTREAM, -}; - -struct rtp_sub_socket { - struct sockaddr_in sin_local; - struct sockaddr_in sin_remote; - - struct osmo_fd bfd; - /* linked list of to-be-transmitted msgb's */ - struct llist_head tx_queue; -}; - -struct rtp_socket { - struct llist_head list; - - struct rtp_sub_socket rtp; - struct rtp_sub_socket rtcp; - - /* what should we do on receive? */ - enum rtp_rx_action rx_action; - union { - struct { - struct rtp_socket *other_sock; - } proxy; - struct { - struct gsm_network *net; - uint32_t callref; - } receive; - }; - enum rtp_tx_action tx_action; - struct { - uint16_t sequence; - uint32_t timestamp; - uint32_t ssrc; - struct timeval last_tv; - } transmit; -}; - -struct rtp_socket *rtp_socket_create(void); -int rtp_socket_bind(struct rtp_socket *rs, uint32_t ip); -int rtp_socket_connect(struct rtp_socket *rs, uint32_t ip, uint16_t port); -int rtp_socket_proxy(struct rtp_socket *this, struct rtp_socket *other); -int rtp_socket_upstream(struct rtp_socket *this, struct gsm_network *net, uint32_t callref); -int rtp_socket_free(struct rtp_socket *rs); -int rtp_send_frame(struct rtp_socket *rs, struct gsm_data_frame *frame); - -#endif /* _RTP_PROXY_H */ diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index feab246c2..58d9acfa2 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -34,19 +34,15 @@ */ enum signal_subsystems { SS_PAGING, - SS_SMS, SS_ABISIP, SS_NM, SS_LCHAN, - SS_SUBSCR, - SS_SCALL, SS_CHALLOC, SS_IPAC_NWL, SS_RF, SS_MSC, SS_HO, SS_CCCH, - SS_SGSN, }; /* SS_PAGING signals */ @@ -55,15 +51,6 @@ enum signal_paging { S_PAGING_EXPIRED, }; -/* SS_SMS signals */ -enum signal_sms { - S_SMS_SUBMITTED, /* A SMS has been successfully submitted to us */ - S_SMS_DELIVERED, /* A SMS has been successfully delivered to a MS */ - S_SMS_SMMA, /* A MS tells us it has more space available */ - S_SMS_MEM_EXCEEDED, /* A MS tells us it has no more space available */ - S_SMS_UNKNOWN_ERROR, /* A MS tells us it has an error */ -}; - /* SS_ABISIP signals */ enum signal_abisip { S_ABISIP_CRCX_ACK, @@ -108,20 +95,6 @@ enum signal_challoc { S_CHALLOC_FREED, /* lchan has been successfully freed */ }; -/* SS_SUBSCR signals */ -enum signal_subscr { - S_SUBSCR_ATTACHED, - S_SUBSCR_DETACHED, - S_SUBSCR_IDENTITY, /* we've received some identity information */ -}; - -/* SS_SCALL signals */ -enum signal_scall { - S_SCALL_SUCCESS, - S_SCALL_EXPIRED, - S_SCALL_DETACHED, -}; - /* SS_IPAC_NWL signals */ enum signal_ipaccess { S_IPAC_NWL_COMPLETE, @@ -138,21 +111,6 @@ enum signal_rf { S_RF_GRACE, }; -struct paging_signal_data { - struct vlr_subscr *vsub; - struct gsm_bts *bts; - - int paging_result; - - /* NULL in case the paging didn't work */ - struct gsm_subscriber_connection *conn; -}; - -struct scall_signal_data { - struct gsm_subscriber_connection *conn; - void *data; -}; - struct ipacc_ack_signal_data { struct gsm_bts_trx *trx; uint8_t msg_type; @@ -197,15 +155,6 @@ struct rf_signal_data { struct gsm_network *net; }; -struct sms_signal_data { - /* The transaction where this occured */ - struct gsm_trans *trans; - /* Can be NULL for SMMA */ - struct gsm_sms *sms; - /* int paging result. Only the ones with > 0 */ - int paging_result; -}; - struct lchan_signal_data { /* The lchan the signal happened on */ struct gsm_lchan *lchan; @@ -239,22 +188,4 @@ struct ccch_signal_data { uint16_t rach_access_count; }; -/* GPRS SGSN signals SS_SGSN */ -enum signal_sgsn { - S_SGSN_ATTACH, - S_SGSN_DETACH, - S_SGSN_UPDATE, - S_SGSN_PDP_ACT, - S_SGSN_PDP_DEACT, - S_SGSN_PDP_TERMINATE, - S_SGSN_PDP_FREE, - S_SGSN_MM_FREE, -}; - -struct sgsn_mm_ctx; -struct sgsn_signal_data { - struct sgsn_mm_ctx *mm; - struct sgsn_pdp_ctx *pdp; /* non-NULL for PDP_ACT, PDP_DEACT, PDP_FREE */ -}; - #endif diff --git a/include/osmocom/bsc/silent_call.h b/include/osmocom/bsc/silent_call.h deleted file mode 100644 index 5fec77b73..000000000 --- a/include/osmocom/bsc/silent_call.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _SILENT_CALL_H -#define _SILENT_CALL_H - -struct gsm_subscriber_connection; - -extern int gsm_silent_call_start(struct vlr_subscr *vsub, - void *data, int type); -extern int gsm_silent_call_stop(struct vlr_subscr *vsub); - -#if 0 -extern int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg); -extern int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg); -#endif - -#endif /* _SILENT_CALL_H */ diff --git a/include/osmocom/bsc/smpp.h b/include/osmocom/bsc/smpp.h deleted file mode 100644 index bcdac8f0b..000000000 --- a/include/osmocom/bsc/smpp.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -int smpp_openbsc_alloc_init(void *ctx); -int smpp_openbsc_start(struct gsm_network *net); diff --git a/include/osmocom/bsc/sms_queue.h b/include/osmocom/bsc/sms_queue.h deleted file mode 100644 index 2a8bd5850..000000000 --- a/include/osmocom/bsc/sms_queue.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SMS_QUEUE_H -#define SMS_QUEUE_H - -struct gsm_network; -struct gsm_sms_queue; -struct vty; - -int sms_queue_start(struct gsm_network *, int in_flight); -int sms_queue_trigger(struct gsm_sms_queue *); - -/* vty helper functions */ -int sms_queue_stats(struct gsm_sms_queue *, struct vty* vty); -int sms_queue_set_max_pending(struct gsm_sms_queue *, int max); -int sms_queue_set_max_failure(struct gsm_sms_queue *, int fail); -int sms_queue_clear(struct gsm_sms_queue *); - -#endif diff --git a/include/osmocom/bsc/transaction.h b/include/osmocom/bsc/transaction.h deleted file mode 100644 index 5465548ea..000000000 --- a/include/osmocom/bsc/transaction.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef _TRANSACT_H -#define _TRANSACT_H - -#include <osmocom/bsc/gsm_data.h> -#include <osmocom/bsc/gsm_subscriber.h> -#include <osmocom/core/linuxlist.h> -#include <osmocom/bsc/mncc.h> -#include <osmocom/gsm/gsm0411_smc.h> -#include <osmocom/gsm/gsm0411_smr.h> - -enum bridge_state { - BRIDGE_STATE_NONE, - BRIDGE_STATE_LOOPBACK_PENDING, - BRIDGE_STATE_LOOPBACK_ESTABLISHED, - BRIDGE_STATE_BRIDGE_PENDING, - BRIDGE_STATE_BRIDGE_ESTABLISHED, -}; - -/* One transaction */ -struct gsm_trans { - /* Entry in list of all transactions */ - struct llist_head entry; - - /* Back pointer to the network struct */ - struct gsm_network *net; - - /* The protocol within which we live */ - uint8_t protocol; - - /* The current transaction ID */ - uint8_t transaction_id; - - /* To whom we belong, unique identifier of remote MM entity */ - struct vlr_subscr *vsub; - - /* The associated connection we are using to transmit messages */ - struct gsm_subscriber_connection *conn; - - /* reference from MNCC or other application */ - uint32_t callref; - - /* if traffic channel receive was requested */ - int tch_recv; - - /* is thats one paging? */ - struct subscr_request *paging_request; - - /* bearer capabilities (rate and codec) */ - struct gsm_mncc_bearer_cap bearer_cap; - - /* status of the assignment, true when done */ - bool assignment_done; - - /* if true, TCH_RTP_CREATE is sent after the - * assignment is done */ - bool tch_rtp_create; - - union { - struct { - - /* current call state */ - int state; - - /* current timer and message queue */ - int Tcurrent; /* current CC timer */ - int T308_second; /* used to send release again */ - struct osmo_timer_list timer; - struct gsm_mncc msg; /* stores setup/disconnect/release message */ - } cc; - struct { - struct gsm411_smc_inst smc_inst; - struct gsm411_smr_inst smr_inst; - - struct gsm_sms *sms; - } sms; - }; - - struct { - struct gsm_trans *peer; - enum bridge_state state; - } bridge; -}; - - - -struct gsm_trans *trans_find_by_id(struct gsm_subscriber_connection *conn, - uint8_t proto, uint8_t trans_id); -struct gsm_trans *trans_find_by_callref(struct gsm_network *net, - uint32_t callref); - -struct gsm_trans *trans_alloc(struct gsm_network *net, - struct vlr_subscr *vsub, - uint8_t protocol, uint8_t trans_id, - uint32_t callref); -void trans_free(struct gsm_trans *trans); - -int trans_assign_trans_id(struct gsm_network *net, struct vlr_subscr *vsub, - uint8_t protocol, uint8_t ti_flag); -struct gsm_trans *trans_has_conn(const struct gsm_subscriber_connection *conn); -void trans_conn_closed(struct gsm_subscriber_connection *conn); - -#endif diff --git a/include/osmocom/bsc/trau_mux.h b/include/osmocom/bsc/trau_mux.h deleted file mode 100644 index eeceff5cc..000000000 --- a/include/osmocom/bsc/trau_mux.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Simple TRAU frame reflector to route voice calls */ - -/* (C) 2009 by Harald Welte <laforge@gnumonks.org> - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -/* The "TRAU mux map" defines which particular 16kbit sub-slot (in which E1 - * timeslot on which E1 interface) should be directly muxed to which other - * sub-slot. Entries in the mux map are always bi-directional. - * - * The idea of all this is to directly switch voice channels in the BSC - * from one phone to another. We do this right now since we don't support - * any external interface for voice channels, and in the future as an - * optimization to routing them externally. - */ - -#include <stdint.h> -#include <osmocom/bsc/gsm_data.h> -#include <osmocom/bsc/mncc.h> - -struct decoded_trau_frame; - -/* map a TRAU mux map entry */ -int trau_mux_map(const struct gsm_e1_subslot *src, - const struct gsm_e1_subslot *dst); -int trau_mux_map_lchan(const struct gsm_lchan *src, - const struct gsm_lchan *dst); - -/* unmap a TRAU mux map entry */ -int trau_mux_unmap(const struct gsm_e1_subslot *ss, uint32_t callref); - -/* we get called by subchan_demux */ -int trau_mux_input(struct gsm_e1_subslot *src_e1_ss, - const uint8_t *trau_bits, int num_bits); - -/* add a trau receiver */ -int trau_recv_lchan(struct gsm_lchan *lchan, uint32_t callref); - -/* send trau from application */ -int trau_send_frame(struct gsm_lchan *lchan, struct gsm_data_frame *frame); - -/* switch trau muxer to new lchan */ -int switch_trau_mux(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan); - -/* callback invoked if we receive TRAU frames */ -int subch_cb(struct subch_demux *dmx, int ch, uint8_t *data, int len, void *_priv); - -/* TRAU frame transcoding */ -struct msgb *trau_decode_fr(uint32_t callref, - const struct decoded_trau_frame *tf); -struct msgb *trau_decode_efr(uint32_t callref, - const struct decoded_trau_frame *tf); -void trau_encode_fr(struct decoded_trau_frame *tf, - const unsigned char *data); -void trau_encode_efr(struct decoded_trau_frame *tf, - const unsigned char *data); diff --git a/include/osmocom/bsc/trau_upqueue.h b/include/osmocom/bsc/trau_upqueue.h deleted file mode 100644 index ecc765843..000000000 --- a/include/osmocom/bsc/trau_upqueue.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _TRAU_UPQUEUE_H -#define _TRAU_UPQUEUE_H - -void trau_tx_to_mncc(struct gsm_network *net, struct msgb *msg); - -#endif /* _TRAU_UPQUEUE_H */ - |