summaryrefslogtreecommitdiffstats
path: root/include/l1a_l23_interface.h
AgeCommit message (Collapse)AuthorFilesLines
2010-06-24l1a_l23_interface: Update DM EST REQ formatSylvain Munaut1-13/+10
We include all the parameters we're gonna need to support TS!=0, hopping, TSC, ... We also assume the upper layer have decoded the low level bit fields and gives us neat accessible variables and a sorted ARFCN array for the Mobile Allocation Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-06-22fw/layer1: Add support CCCH combined/non-combinedSylvain Munaut1-1/+24
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>
2010-06-20[L1CTL] Introduce completion for transmit of L2 frameHarald Welte1-0/+1
Every time we have completed the transmit of a L2 frame (mac block), we send L1CTL_DATA_CONF up to L2.
2010-06-20[L1CTL] rename primitives to comply with official naming s/_REQ/_CONF/Harald Welte1-7/+7
When L23 issues a REQ, we should respond with CONF, rather than _RESP
2010-06-20[L1CTL] Introduce L1CTL_RESET_RESPHarald Welte1-0/+1
1) On boot, L23 is notified by L1CTL_RESET_IND: 2) At any time, L23 can call L1CTL_RESET_REQ and get a L1CTL_RESET_RESP once the reset has been performed. Also, there is no 'l1ctl_info_dl' in the RESET_IND anymore, as it is useless.
2010-06-20[L1CTL] rename L1CTL_RESET to L1CTL_RESET_INDHarald Welte1-1/+13
and define a new structure that indicates the type of reset
2010-06-20[layer1] Add L1CTL_RACH_RESP to confirm that a RACH request was sentHarald Welte1-0/+1
2010-05-29L1CTL: Include num_biterr/fire_crc in downlink info + proper alignment/paddingHarald Welte1-6/+9
2010-05-20Make new L1CTL_FBSB_REQ work reliablyHarald Welte1-1/+1
* port 'mobile' application to new l1ctl_tx_fbsb_req() * make sure we have a proper downlinke header in front of l1ctl_fbsb_resp * remove duplicate band_arfcn member of struct l1ctl_fbsb_resp * reset the AFC to its default value when starting new FBSB task * remove bogus l1s.sb.{synced.count} variables * allocate msg and send l1ctl_fbsb_resp() only from process context, not FIQ * properly report SNR and BSIC in fbsb_resp * introduce arbitrary SNR thresholds for FB0->FB1 and FB1->SB switching
2010-05-19layer1/l1ctl: Split L1CTL_NEW_CCCH_REQ in FBSB_REQ nad SYNC_REQHarald Welte1-6/+20
We really want to have those two as distinct operations - and we want proper state machines in L1 to quickly return if they've managed to acquire a FB or SB or not. Otherwise scanning will take ages... This code now introduces a new l1ctl_fbsb_req that is sent via L1CTL to ask for a bitmask of FB0/FB1/SB operations. The actual FB0/FB1 detection now no longer runs for 500 TDMA interrupts but completes as soon as we either know there is no FCCH, or that our frequency error is smaller than a caller-specified threshold. FB0/FB1 are already working, SB is not yet, sorry.
2010-04-05l1ctl protocol: Introduce multi-part message DONE flagHarald Welte1-1/+4
In case a single request from L2 triggers multiple response messages from L1, we need a way to signal via L1CTL if the response is the final or some intermediate response.
2010-03-27Implement L23-triggered L1 power measurement scanHarald Welte1-2/+9
Now layer23 can ask L1 to scan an entire range of ARFCN's and do power measurements. This is the first step in the cell (re)selection process.
2010-03-27add L1CTL ECHO REQUEST codeHarald Welte1-0/+2
2010-03-21L1A/L23 interface (L1CTL) cleanupHarald Welte1-8/+20
* introduce a new 'l1ctl_hdr' structure common to all messages on this interface * use struct l1ctl_hdr in both the firmware and layer23 * add a new L1CTL_PM_REQ request for performing layer23-initiated power measurements (firmware does not implement them yet)
2010-03-07start to use libosmocore within the firmwareHarald Welte1-11/+4
* remove linuxlist.h copy and use osmocore * don't put 'struct gsm_time' into l1ctl packets * include rx_level and snr for each burst in l1ctl * properly build libosmocore.a for target * move gsmtime functions into libosmocore * move ctype.h to standard location
2010-03-04l1a_l23_interface.h: struct gsm_time was not packed and had paddingHolger Hans Peter Freyther1-1/+1
The following issue was found by Andreas Bogk. The l1ctl_info_dl struct is supposed to be packed but we included the struct gsm_time which was not packed and added three bytes of padding. Pack the structure to avoid that.
2010-03-02Inter-Layer intergration workHarald Welte1-33/+26
L1 and L2 now pass UI frames like BCCH and CCCH downlink up into L3, which detects an IMMediate ASSignment command and instructs the L1 to switch to SDCCH/4. From this point on, SDCCH/4 and SACCH4/C messages end up in our L2 LAPDm implementation and are forwarded to L3.
2010-03-01Include channel number and link identifier in L1 DL infoHarald Welte1-1/+7
This enables the layer2 to identify on which channel (BCCH/CCCH/SDCCH/TCH/...) the respective message was received. * Encode MFrame Task Number + SACCH info in 'p3' parameter * Generate channel number and link identifier * Decode channel number in layer2 program
2010-03-01add an actual Layer1 asynchronous (L1A) API that can be called from higher ↵Harald Welte1-0/+1
layers
2010-02-18Initial import of OsmocomBB into git repositoryHarald Welte1-0/+134