Merge branch 'master' of git://git.osmocom.org/osmo-pcu into Integration

This commit is contained in:
Aravind Sirsikar 2016-05-31 17:23:12 +05:30
commit a36b5d7896
3 changed files with 35 additions and 2 deletions

View File

@ -32,7 +32,7 @@ extern "C" {
#include <string.h>
#define LENGTH_TO_END 255
/*
/*!
* \returns num extensions fields (num frames == offset) on success,
* -errno otherwise.
*/
@ -197,6 +197,7 @@ int Decoding::rlc_data_from_ul_data(
e = rdbi->e;
if (e) {
if (chunks_size > 0) {
/* Block without LI means it only contains data of one LLC PDU */
chunks[num_chunks].offset = offs;
chunks[num_chunks].length = LENGTH_TO_END;
chunks[num_chunks].is_complete = is_last_block;

View File

@ -28,10 +28,11 @@ struct bitvec;
class Decoding {
public:
/* represents (parts) LLC PDUs within one RLC Data block */
struct RlcData {
uint8_t offset;
uint8_t length;
bool is_complete;
bool is_complete; /* if this PDU ends in this block */
};
static int rlc_data_from_ul_data(

View File

@ -897,6 +897,16 @@ unsigned int Encoding::rlc_copy_from_aligned_buffer(
return rdbi->data_len;
}
/*!
* \brief (GPRS) put llc pdu into an rlc/mac block. fragment the llc pdu if needed
* \param rdbi rlc/mac block info
* \param llc llc pdu
* \param offset given offset within the rlc/mac block
* \param num_chunks count the chunks (llc pdu data) within rlc/mac
* \param data_block buffer holds rlc/mac data
* \param is_final if this is the last rlc/mac within a TBF
* \return the state of the rlc/mac like if there is more space for another chunk
*/
static Encoding::AppendResult rlc_data_to_dl_append_gprs(
struct gprs_rlc_data_block_info *rdbi,
gprs_llc *llc, int *offset, int *num_chunks,
@ -1018,6 +1028,16 @@ static Encoding::AppendResult rlc_data_to_dl_append_gprs(
return Encoding::AR_COMPLETED_BLOCK_FILLED;
}
/*!
* \brief (EGPRS) put llc pdu into an rlc/mac block. fragment the llc pdu if needed
* \param rdbi rlc/mac block info
* \param llc llc pdu
* \param offset given offset within the rlc/mac block
* \param num_chunks count the chunks (llc pdu data) within rlc/mac
* \param data_block buffer holds rlc/mac data
* \param is_final if this is the last rlc/mac within a TBF
* \return the state of the rlc/mac like if there is more space for another chunk
*/
static Encoding::AppendResult rlc_data_to_dl_append_egprs(
struct gprs_rlc_data_block_info *rdbi,
gprs_llc *llc, int *offset, int *num_chunks,
@ -1160,6 +1180,17 @@ static Encoding::AppendResult rlc_data_to_dl_append_egprs(
return Encoding::AR_COMPLETED_BLOCK_FILLED;
}
/*!
* \brief Encoding::rlc_data_to_dl_append
* \param rdbi rlc/mac block info
* \param cs the coding scheme to use
* \param llc llc pdu
* \param offset given offset within the rlc/mac block
* \param num_chunks count the chunks (llc pdu data) within rlc/mac
* \param data_block buffer holds rlc/mac data
* \param is_final if this is the last rlc/mac within a TBF
* \return the state of the rlc/mac like if there is more space for another chunk
*/
Encoding::AppendResult Encoding::rlc_data_to_dl_append(
struct gprs_rlc_data_block_info *rdbi, GprsCodingScheme cs,
gprs_llc *llc, int *offset, int *num_chunks,