diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2010-06-20 22:40:03 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-06-22 06:37:09 +0200 |
commit | 38c6b4b35a4400a62b0e534c9326154bb4f232f9 (patch) | |
tree | 56d898f68fced20858b998571c8885e7b23a8831 /include | |
parent | a3e0c559a45f3c719082acf9eb2f7657ea4e35b5 (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.h | 25 |
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; |