summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2010-11-14 16:12:24 +0100
committerHarald Welte <laforge@gnumonks.org>2017-01-15 21:35:07 +0100
commit2ee0ee6306ede497001d48ecdafcf168fd0f32c0 (patch)
tree789ff60ae2e925cebd20cd09af523e041e08c06e
parent465e5c27a9bfcf76fd00c29f00c0fbe90591e737 (diff)
l1ctl: Add definition for BURST INDICATION messages
(as a side effect data_ind is no longer the biggest message, so need to update L3_MSG_SIZE) Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r--include/l1ctl_proto.h15
-rw-r--r--src/target/firmware/layer1/l23_api.c3
2 files changed, 16 insertions, 2 deletions
diff --git a/include/l1ctl_proto.h b/include/l1ctl_proto.h
index 771bf1c3..ab80aa12 100644
--- a/include/l1ctl_proto.h
+++ b/include/l1ctl_proto.h
@@ -56,6 +56,7 @@ enum {
L1CTL_TRAFFIC_REQ,
L1CTL_TRAFFIC_CONF,
L1CTL_TRAFFIC_IND,
+ L1CTL_BURST_IND,
};
enum ccch_mode {
@@ -139,6 +140,20 @@ struct l1ctl_traffic_ind {
uint8_t data[TRAFFIC_DATA_LEN];
} __attribute__((packed));
+/* raw burst data. This is following the header */
+#define BI_FLG_DUMMY (1<<4)
+#define BI_FLG_SACCH (1<<5)
+
+struct l1ctl_burst_ind {
+ uint32_t frame_nr;
+ uint16_t band_arfcn; /* ARFCN + band + ul indicator */
+ uint8_t chan_nr; /* GSM 08.58 channel number (9.3.1) */
+ uint8_t flags; /* BI_FLG_xxx + burst_id = 2LSBs */
+ uint8_t rx_level; /* 0 .. 63 in typical GSM notation (dBm+110) */
+ uint8_t snr; /* Reported SNR >> 8 (0-255) */
+ uint8_t bits[15]; /* 114 bits + 2 steal bits. Filled MSB first */
+} __attribute__((packed));
+
/*
* uplink info
*/
diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c
index 311ca6a2..6ada2e4d 100644
--- a/src/target/firmware/layer1/l23_api.c
+++ b/src/target/firmware/layer1/l23_api.c
@@ -51,8 +51,7 @@
/* the size we will allocate struct msgb* for HDLC */
#define L3_MSG_HEAD 4
-#define L3_MSG_DATA 200
-#define L3_MSG_SIZE (L3_MSG_HEAD + sizeof(struct l1ctl_hdr) + L3_MSG_DATA)
+#define L3_MSG_SIZE (sizeof(struct l1ctl_hdr)+sizeof(struct l1ctl_info_dl)+sizeof(struct l1ctl_burst_ind) + L3_MSG_HEAD)
void (*l1a_l23_tx_cb)(struct msgb *msg) = NULL;