summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/l1ctl_proto.h5
-rw-r--r--src/host/layer23/include/osmocom/bb/common/osmocom_data.h2
-rw-r--r--src/host/layer23/src/common/l1ctl.c6
3 files changed, 10 insertions, 3 deletions
diff --git a/include/l1ctl_proto.h b/include/l1ctl_proto.h
index 05d65deb..f2ed9242 100644
--- a/include/l1ctl_proto.h
+++ b/include/l1ctl_proto.h
@@ -346,12 +346,15 @@ struct l1ctl_neigh_pm_req {
uint8_t tn[64];
} __attribute__((packed));
+#define L1CTL_BSIC_INVAL 255
+
/* neighbour cell measurement results */
struct l1ctl_neigh_pm_ind {
uint16_t band_arfcn;
uint8_t pm[2];
uint8_t tn;
- uint8_t padding;
+ uint8_t bsic;
+ int16_t toa;
} __attribute__((packed));
/* traffic data to network */
diff --git a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h
index 14e594cb..a280e750 100644
--- a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h
+++ b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h
@@ -148,6 +148,8 @@ struct osmobb_neigh_pm_ind {
struct osmocom_ms *ms;
uint16_t band_arfcn;
uint8_t rx_lev;
+ uint8_t bsic;
+ int16_t toa;
};
#endif
diff --git a/src/host/layer23/src/common/l1ctl.c b/src/host/layer23/src/common/l1ctl.c
index 5d6d9c0c..cb75957d 100644
--- a/src/host/layer23/src/common/l1ctl.c
+++ b/src/host/layer23/src/common/l1ctl.c
@@ -873,11 +873,13 @@ static int rx_l1_neigh_pm_ind(struct osmocom_ms *ms, struct msgb *msg)
for (pm_ind = (struct l1ctl_neigh_pm_ind *) msg->l1h;
(uint8_t *) pm_ind < msg->tail; pm_ind++) {
struct osmobb_neigh_pm_ind mi;
- DEBUGP(DL1C, "NEIGH_PM IND: ARFCN: %4u RxLev: %3d %3d\n",
+ DEBUGP(DL1C, "NEIGH_PM IND: ARFCN: %4u RxLev: %3d BSIC: %3d\n",
ntohs(pm_ind->band_arfcn), pm_ind->pm[0],
- pm_ind->pm[1]);
+ pm_ind->bsic);
mi.band_arfcn = ntohs(pm_ind->band_arfcn);
mi.rx_lev = pm_ind->pm[0];
+ mi.bsic = pm_ind->bsic;
+ mi.toa = pm_ind->toa;
mi.ms = ms;
osmo_signal_dispatch(SS_L1CTL, S_L1CTL_NEIGH_PM_IND, &mi);
}