diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2012-06-23 10:33:16 +0200 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2012-06-23 10:33:16 +0200 |
commit | 0aed654ac735749be31e4119336808596136aac3 (patch) | |
tree | 3c43968af08245576fa42198814347700dd978b8 /src/gprs_rlcmac.h | |
parent | f6b7ca5dd4ba93c13307313c61f06509645b6bca (diff) |
Split of L1 interface to be used with OpenBTS or sysmo-BTS
The OpenBTS socket functions are moved from main to pcu_l1_if.cpp.
New sysmo_l1_if.cpp is introduced. It used special unix socket interface
to connect to sysmo-BTS. This is required to access CCCH/RACH and info
about cell layout. Traffic is also forwarded via this interface, but
it direct access of L1 baseband DSP will be added soon.
In order to handle ready-to-send requests above l1_if, the transmit
queue (for downlink blocks) is moved to gprs_rlcmac.cpp.
The TBF instance additionally holds TRX and TS info, but this is only
a hack currently. TBF instance requires more details about allocated
ressources in the future.
Diffstat (limited to 'src/gprs_rlcmac.h')
-rw-r--r-- | src/gprs_rlcmac.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index eb651c61..d18c516e 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -52,6 +52,8 @@ struct gprs_rlcmac_tbf { uint8_t rlc_data[LLC_MAX_LEN]; uint16_t data_index; uint8_t bsn; + uint8_t trx, ts, tsc; + uint16_t arfcn, ta; struct osmo_timer_list timer; unsigned int T; /* Txxxx number */ @@ -66,13 +68,13 @@ extern struct llist_head gprs_rlcmac_tbfs; int tfi_alloc(); -struct gprs_rlcmac_tbf *tbf_alloc(uint8_t tfi); +struct gprs_rlcmac_tbf *tbf_alloc(uint8_t tfi, uint8_t trx, uint8_t ts); -static struct gprs_rlcmac_tbf *tbf_by_tfi(uint8_t tfi); +struct gprs_rlcmac_tbf *tbf_by_tfi(uint8_t tfi); -static struct gprs_rlcmac_tbf *tbf_by_tlli(uint8_t tlli); +struct gprs_rlcmac_tbf *tbf_by_tlli(uint8_t tlli); -static void tbf_free(struct gprs_rlcmac_tbf *tbf); +void tbf_free(struct gprs_rlcmac_tbf *tbf); /* TS 44.060 Section 10.4.7 Table 10.4.7.1: Payload Type field */ enum gprs_rlcmac_block_type { @@ -92,7 +94,10 @@ int gprs_rlcmac_rcv_control_block(bitvec *rlc_block); void gprs_rlcmac_rcv_block(bitvec *rlc_block); -int gprs_rlcmac_rcv_rach(uint8_t ra, uint32_t Fn, uint16_t ta); +void gprs_rlcmac_rcv_rts_block(uint8_t trx, uint8_t ts, uint16_t arfcn, + uint32_t fn, uint8_t block_nr); + +int gprs_rlcmac_rcv_rach(uint8_t ra, uint32_t Fn, int16_t qta); void gprs_rlcmac_tx_dl_data_block(uint32_t tlli, uint8_t tfi, uint8_t *pdu, int start_index, int end_index, uint8_t bsn, uint8_t fbi); |