blob: f1ff9baeced1538150ec95495438d18e42f3d3e9 [file] [log] [blame]
Holger Hans Peter Freyther2f4dbeb2010-06-30 14:29:53 +08001#ifndef OSMO_BSC_RF
2#define OSMO_BSC_RF
3
Pablo Neira Ayuso136f4532011-03-22 16:47:59 +01004#include <osmocom/core/write_queue.h>
5#include <osmocom/core/timer.h>
Holger Hans Peter Freyther2f4dbeb2010-06-30 14:29:53 +08006
7struct gsm_network;
8
9struct osmo_bsc_rf {
Holger Hans Peter Freyther7a1591b2010-09-16 00:10:18 +080010 /* the value of signal.h */
11 int policy;
Holger Hans Peter Freyther2f4dbeb2010-06-30 14:29:53 +080012 struct bsc_fd listen;
13 struct gsm_network *gsm_network;
Holger Hans Peter Freyther70c232f2010-11-22 19:09:38 +010014
Holger Hans Peter Freyther37ac4202011-02-24 14:19:14 +010015 const char *last_state_command;
16
Holger Hans Peter Freyther11762452011-02-14 23:41:42 +010017 /* delay the command */
18 char last_request;
Pablo Neira Ayusobf540cb2011-05-06 12:11:06 +020019 struct osmo_timer_list delay_cmd;
Holger Hans Peter Freyther11762452011-02-14 23:41:42 +010020
Holger Hans Peter Freyther00c805f2011-02-24 14:40:11 +010021 /* verify that RF is up as it should be */
Pablo Neira Ayusobf540cb2011-05-06 12:11:06 +020022 struct osmo_timer_list rf_check;
Holger Hans Peter Freyther00c805f2011-02-24 14:40:11 +010023
Holger Hans Peter Freyther70c232f2010-11-22 19:09:38 +010024 /* some handling for the automatic grace switch */
Pablo Neira Ayusobf540cb2011-05-06 12:11:06 +020025 struct osmo_timer_list grace_timeout;
Holger Hans Peter Freyther2f4dbeb2010-06-30 14:29:53 +080026};
27
28struct osmo_bsc_rf_conn {
29 struct write_queue queue;
Holger Hans Peter Freyther7a1591b2010-09-16 00:10:18 +080030 struct osmo_bsc_rf *rf;
Holger Hans Peter Freyther2f4dbeb2010-06-30 14:29:53 +080031};
32
33struct osmo_bsc_rf *osmo_bsc_rf_create(const char *path, struct gsm_network *net);
34
35#endif