summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2010-06-20 22:40:03 +0200
committerHarald Welte <laforge@gnumonks.org>2010-06-22 06:37:09 +0200
commit38c6b4b35a4400a62b0e534c9326154bb4f232f9 (patch)
tree56d898f68fced20858b998571c8885e7b23a8831 /include
parenta3e0c559a45f3c719082acf9eb2f7657ea4e35b5 (diff)
fw/layer1: Add support CCCH combined/non-combined
We introduce the concept of CCCH mode. It can be either - NONE: receive BCCCH only - COMBINED: CCCH on a BCCH/CCCH+SDDCH/4 - NON_COMBINED: CCCH on a BCCH/CCCH There is also a new command to change the mode without having to do the resync. Currently, we keep the previous default behavior of requesting a combined CCCH by default Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Diffstat (limited to 'include')
-rw-r--r--include/l1a_l23_interface.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/include/l1a_l23_interface.h b/include/l1a_l23_interface.h
index 95ec82b2..741221bc 100644
--- a/include/l1a_l23_interface.h
+++ b/include/l1a_l23_interface.h
@@ -39,6 +39,14 @@
#define L1CTL_RESET_REQ 14
#define L1CTL_RESET_CONF 15
#define L1CTL_DATA_CONF 16
+#define L1CTL_CCCH_MODE_REQ 17
+#define L1CTL_CCCH_MODE_CONF 18
+
+enum ccch_mode {
+ CCCH_MODE_NONE = 0,
+ CCCH_MODE_NON_COMBINED,
+ CCCH_MODE_COMBINED,
+};
/*
* NOTE: struct size. We do add manual padding out of the believe
@@ -84,6 +92,12 @@ struct l1ctl_fbsb_conf {
/* FIXME: contents of cell_info ? */
} __attribute__((packed));
+/* CCCH mode was changed */
+struct l1ctl_ccch_mode_conf {
+ uint8_t ccch_mode; /* enum ccch_mode */
+ uint8_t padding[3];
+} __attribute__((packed));
+
/* data on the CCCH was found. This is following the header */
struct l1ctl_data_ind {
uint8_t data[23];
@@ -117,7 +131,7 @@ struct l1ctl_fbsb_req {
uint8_t num_freqerr_avg;
uint8_t flags; /* L1CTL_FBSB_F_* */
uint8_t sync_info_idx;
- uint8_t reserved;
+ uint8_t ccch_mode; /* enum ccch_mode */
} __attribute__((packed));
#define L1CTL_FBSB_F_FB0 (1 << 0)
@@ -125,6 +139,15 @@ struct l1ctl_fbsb_req {
#define L1CTL_FBSB_F_SB (1 << 2)
#define L1CTL_FBSB_F_FB01SB (L1CTL_FBSB_F_FB0|L1CTL_FBSB_F_FB1|L1CTL_FBSB_F_SB)
+/*
+ * msg for CCCH_MODE_REQ
+ * the l1_info_ul header is in front
+ */
+struct l1ctl_ccch_mode_req {
+ uint8_t ccch_mode; /* enum ccch_mode */
+ uint8_t padding[3];
+} __attribute__((packed));
+
/* the l1_info_ul header is in front */
struct l1ctl_rach_req {
uint8_t ra;