diff options
Diffstat (limited to 'include/osmocom/bsc')
-rw-r--r-- | include/osmocom/bsc/handover.h | 18 | ||||
-rw-r--r-- | include/osmocom/bsc/handover_fsm.h | 12 | ||||
-rw-r--r-- | include/osmocom/bsc/neighbor_ident.h | 2 |
3 files changed, 18 insertions, 14 deletions
diff --git a/include/osmocom/bsc/handover.h b/include/osmocom/bsc/handover.h index 322913da4..b00ee60f8 100644 --- a/include/osmocom/bsc/handover.h +++ b/include/osmocom/bsc/handover.h @@ -10,6 +10,15 @@ #include <osmocom/bsc/neighbor_ident.h> #include <osmocom/bsc/gsm_data.h> +#define LOG_HO(conn, level, fmt, args...) do { \ + if (conn->ho.fi) \ + LOGPFSML(conn->ho.fi, level, "%s: " fmt, \ + handover_status(conn), ## args); \ + else \ + LOGP(DHODEC, level, "%s: " fmt, \ + handover_status(conn), ## args); \ + } while(0) + struct gsm_network; struct gsm_lchan; struct gsm_bts; @@ -25,6 +34,8 @@ enum handover_result { HO_RESULT_ERROR, }; +const char *handover_status(struct gsm_subscriber_connection *conn); + extern const struct value_string handover_result_names[]; inline static const char *handover_result_name(enum handover_result val) { return get_value_string(handover_result_names, val); } @@ -70,8 +81,11 @@ enum handover_result bsc_tx_bssmap_ho_complete(struct gsm_subscriber_connection struct gsm_lchan *lchan); void bsc_tx_bssmap_ho_failure(struct gsm_subscriber_connection *conn); -struct gsm_bts *bts_by_neighbor_ident(const struct gsm_network *net, - const struct neighbor_ident_key *search_for); +int find_handover_target_cell(struct gsm_bts **local_target_cell_p, + const struct gsm0808_cell_id_list2 **remote_target_cell_p, + struct gsm_subscriber_connection *conn, const struct neighbor_ident_key *search_for, + bool log_errors); + struct neighbor_ident_key *bts_ident_key(const struct gsm_bts *bts); void handover_parse_inter_bsc_mt(struct gsm_subscriber_connection *conn, diff --git a/include/osmocom/bsc/handover_fsm.h b/include/osmocom/bsc/handover_fsm.h index 7c2145e84..1628d8fd9 100644 --- a/include/osmocom/bsc/handover_fsm.h +++ b/include/osmocom/bsc/handover_fsm.h @@ -4,18 +4,6 @@ #include <osmocom/bsc/debug.h> #include <osmocom/bsc/handover.h> -const char *handover_status(struct gsm_subscriber_connection *conn); - -/* This macro automatically includes a final \n, if omitted. */ -#define LOG_HO(conn, level, fmt, args...) do { \ - if (conn->ho.fi) \ - LOGPFSML(conn->ho.fi, level, "%s: " fmt, \ - handover_status(conn), ## args); \ - else \ - LOGP(DHODEC, level, "%s: " fmt, \ - handover_status(conn), ## args); \ - } while(0) - /* Terminology: * Intra-Cell: stays within one BTS, this should actually be an Assignment. * Intra-BSC: stays within one BSC, but moves between BTSes. diff --git a/include/osmocom/bsc/neighbor_ident.h b/include/osmocom/bsc/neighbor_ident.h index 17bffbc14..aa3827635 100644 --- a/include/osmocom/bsc/neighbor_ident.h +++ b/include/osmocom/bsc/neighbor_ident.h @@ -47,6 +47,8 @@ void neighbor_ident_iter(const struct neighbor_ident_list *nil, void neighbor_ident_vty_init(struct gsm_network *net, struct neighbor_ident_list *nil); void neighbor_ident_vty_write(struct vty *vty, const char *indent, struct gsm_bts *bts); +bool neighbor_ident_bts_entry_exists(uint8_t from_bts); + #define NEIGHBOR_IDENT_VTY_KEY_PARAMS "arfcn <0-1023> bsic (<0-63>|any)" #define NEIGHBOR_IDENT_VTY_KEY_DOC \ "ARFCN of neighbor cell\n" "ARFCN value\n" \ |