diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h index 269386d72..3a7539819 100644 --- a/openbsc/include/openbsc/gsm_data_shared.h +++ b/openbsc/include/openbsc/gsm_data_shared.h @@ -498,11 +498,29 @@ enum neigh_list_manual_mode { NL_MODE_MANUAL_SI5SEP = 2, /* SI2 and SI5 have separate neighbor lists */ }; +enum bts_loc_fix { + BTS_LOC_FIX_INVALID = 0, + BTS_LOC_FIX_2D = 1, + BTS_LOC_FIX_3D = 2, +}; + +struct bts_location { + struct llist_head list; + time_t tstamp; + enum bts_loc_fix valid; + double lat; + double lon; + double height; +}; + /* One BTS */ struct gsm_bts { /* list header in net->bts_list */ struct llist_head list; + /* Geographical location of the BTS */ + struct llist_head loc_list; + /* number of ths BTS in network */ uint8_t nr; /* human readable name / description */ diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c index c273e6bb2..8b030e9dd 100644 --- a/openbsc/src/libcommon/gsm_data.c +++ b/openbsc/src/libcommon/gsm_data.c @@ -410,6 +410,8 @@ struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, enum gsm_bts_typ INIT_LLIST_HEAD(&bts->abis_queue); + INIT_LLIST_HEAD(&bts->loc_list); + return bts; }