mirror of https://github.com/PentHertz/srsLTE.git
nr,gnb,mac: fix const-correctness of some methods of class srsran::mac_sch_pdu_nr
This commit is contained in:
parent
885e1bcc60
commit
4286ab81d9
|
@ -57,17 +57,18 @@ public:
|
||||||
mac_sch_subpdu_nr(mac_sch_pdu_nr* parent_) : parent(parent_), logger(&srslog::fetch_basic_logger("MAC-NR")){};
|
mac_sch_subpdu_nr(mac_sch_pdu_nr* parent_) : parent(parent_), logger(&srslog::fetch_basic_logger("MAC-NR")){};
|
||||||
|
|
||||||
nr_lcid_sch_t get_type();
|
nr_lcid_sch_t get_type();
|
||||||
bool is_sdu();
|
bool is_sdu() const;
|
||||||
bool is_valid_lcid();
|
bool is_valid_lcid();
|
||||||
bool is_var_len_ce(uint32_t lcid);
|
bool is_var_len_ce(uint32_t lcid);
|
||||||
bool is_ul_ccch();
|
bool is_ul_ccch();
|
||||||
|
|
||||||
int32_t read_subheader(const uint8_t* ptr);
|
int32_t read_subheader(const uint8_t* ptr);
|
||||||
uint32_t get_total_length();
|
uint32_t get_total_length() const;
|
||||||
uint32_t get_sdu_length();
|
uint32_t get_sdu_length() const;
|
||||||
uint32_t get_lcid();
|
uint32_t get_lcid() const;
|
||||||
uint8_t* get_sdu();
|
uint8_t* get_sdu();
|
||||||
uint16_t get_c_rnti();
|
const uint8_t* get_sdu() const;
|
||||||
|
uint16_t get_c_rnti() const;
|
||||||
|
|
||||||
// both return the reported values as per TS 38.321, mapping to dB according to TS 38.133 Sec 10.1.17 not done here
|
// both return the reported values as per TS 38.321, mapping to dB according to TS 38.133 Sec 10.1.17 not done here
|
||||||
uint8_t get_phr();
|
uint8_t get_phr();
|
||||||
|
@ -78,13 +79,13 @@ public:
|
||||||
uint8_t lcg_id;
|
uint8_t lcg_id;
|
||||||
uint8_t buffer_size;
|
uint8_t buffer_size;
|
||||||
};
|
};
|
||||||
lcg_bsr_t get_sbsr();
|
lcg_bsr_t get_sbsr() const;
|
||||||
static const uint8_t max_num_lcg_lbsr = 8;
|
static const uint8_t max_num_lcg_lbsr = 8;
|
||||||
struct lbsr_t {
|
struct lbsr_t {
|
||||||
uint8_t bitmap; // the first octet of LBSR and Long Trunc BSR
|
uint8_t bitmap; // the first octet of LBSR and Long Trunc BSR
|
||||||
std::vector<lcg_bsr_t> list; // one entry for each reported LCG
|
std::vector<lcg_bsr_t> list; // one entry for each reported LCG
|
||||||
};
|
};
|
||||||
lbsr_t get_lbsr();
|
lbsr_t get_lbsr() const;
|
||||||
|
|
||||||
// TA
|
// TA
|
||||||
struct ta_t {
|
struct ta_t {
|
||||||
|
@ -171,6 +172,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the SDU pointer.
|
/// Returns the SDU pointer.
|
||||||
|
const uint8_t* ptr() const { return sdu; }
|
||||||
uint8_t* ptr() { return sdu; }
|
uint8_t* ptr() { return sdu; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -187,7 +189,8 @@ public:
|
||||||
void pack();
|
void pack();
|
||||||
int unpack(const uint8_t* payload, const uint32_t& len);
|
int unpack(const uint8_t* payload, const uint32_t& len);
|
||||||
uint32_t get_num_subpdus();
|
uint32_t get_num_subpdus();
|
||||||
const mac_sch_subpdu_nr& get_subpdu(const uint32_t& index);
|
const mac_sch_subpdu_nr& get_subpdu(const uint32_t& index) const;
|
||||||
|
mac_sch_subpdu_nr& get_subpdu(uint32_t index);
|
||||||
bool is_ulsch();
|
bool is_ulsch();
|
||||||
|
|
||||||
int init_tx(byte_buffer_t* buffer_, uint32_t pdu_len_, bool is_ulsch_ = false);
|
int init_tx(byte_buffer_t* buffer_, uint32_t pdu_len_, bool is_ulsch_ = false);
|
||||||
|
|
|
@ -23,7 +23,7 @@ mac_sch_subpdu_nr::nr_lcid_sch_t mac_sch_subpdu_nr::get_type()
|
||||||
return CCCH;
|
return CCCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mac_sch_subpdu_nr::is_sdu()
|
bool mac_sch_subpdu_nr::is_sdu() const
|
||||||
{
|
{
|
||||||
return (lcid <= 32);
|
return (lcid <= 32);
|
||||||
}
|
}
|
||||||
|
@ -191,17 +191,17 @@ uint32_t mac_sch_subpdu_nr::write_subpdu(const uint8_t* start_)
|
||||||
return ptr - start_;
|
return ptr - start_;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t mac_sch_subpdu_nr::get_total_length()
|
uint32_t mac_sch_subpdu_nr::get_total_length() const
|
||||||
{
|
{
|
||||||
return (header_length + sdu_length);
|
return (header_length + sdu_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t mac_sch_subpdu_nr::get_sdu_length()
|
uint32_t mac_sch_subpdu_nr::get_sdu_length() const
|
||||||
{
|
{
|
||||||
return sdu_length;
|
return sdu_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t mac_sch_subpdu_nr::get_lcid()
|
uint32_t mac_sch_subpdu_nr::get_lcid() const
|
||||||
{
|
{
|
||||||
return lcid;
|
return lcid;
|
||||||
}
|
}
|
||||||
|
@ -211,10 +211,15 @@ uint8_t* mac_sch_subpdu_nr::get_sdu()
|
||||||
return sdu.ptr();
|
return sdu.ptr();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t mac_sch_subpdu_nr::get_c_rnti()
|
const uint8_t* mac_sch_subpdu_nr::get_sdu() const
|
||||||
|
{
|
||||||
|
return sdu.ptr();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t mac_sch_subpdu_nr::get_c_rnti() const
|
||||||
{
|
{
|
||||||
if (parent->is_ulsch() && lcid == CRNTI) {
|
if (parent->is_ulsch() && lcid == CRNTI) {
|
||||||
uint8_t* ptr = sdu.ptr();
|
const uint8_t* ptr = sdu.ptr();
|
||||||
return le16toh((uint16_t)ptr[0] << 8 | ptr[1]);
|
return le16toh((uint16_t)ptr[0] << 8 | ptr[1]);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -249,24 +254,24 @@ mac_sch_subpdu_nr::ta_t mac_sch_subpdu_nr::get_ta()
|
||||||
return ta;
|
return ta;
|
||||||
}
|
}
|
||||||
|
|
||||||
mac_sch_subpdu_nr::lcg_bsr_t mac_sch_subpdu_nr::get_sbsr()
|
mac_sch_subpdu_nr::lcg_bsr_t mac_sch_subpdu_nr::get_sbsr() const
|
||||||
{
|
{
|
||||||
lcg_bsr_t sbsr = {};
|
lcg_bsr_t sbsr = {};
|
||||||
if (parent->is_ulsch() && (lcid == SHORT_BSR || lcid == SHORT_TRUNC_BSR)) {
|
if (parent->is_ulsch() && (lcid == SHORT_BSR || lcid == SHORT_TRUNC_BSR)) {
|
||||||
uint8_t* ptr = sdu.ptr();
|
const uint8_t* ptr = sdu.ptr();
|
||||||
sbsr.lcg_id = (ptr[0] & 0xe0) >> 5;
|
sbsr.lcg_id = (ptr[0] & 0xe0) >> 5;
|
||||||
sbsr.buffer_size = ptr[0] & 0x1f;
|
sbsr.buffer_size = ptr[0] & 0x1f;
|
||||||
}
|
}
|
||||||
return sbsr;
|
return sbsr;
|
||||||
}
|
}
|
||||||
|
|
||||||
mac_sch_subpdu_nr::lbsr_t mac_sch_subpdu_nr::get_lbsr()
|
mac_sch_subpdu_nr::lbsr_t mac_sch_subpdu_nr::get_lbsr() const
|
||||||
{
|
{
|
||||||
lbsr_t lbsr = {};
|
lbsr_t lbsr = {};
|
||||||
lbsr.list.reserve(mac_sch_subpdu_nr::max_num_lcg_lbsr);
|
lbsr.list.reserve(mac_sch_subpdu_nr::max_num_lcg_lbsr);
|
||||||
|
|
||||||
if (parent->is_ulsch() && (lcid == LONG_BSR || lcid == LONG_TRUNC_BSR)) {
|
if (parent->is_ulsch() && (lcid == LONG_BSR || lcid == LONG_TRUNC_BSR)) {
|
||||||
uint8_t* ptr = sdu.ptr();
|
const uint8_t* ptr = sdu.ptr();
|
||||||
lbsr.bitmap = *ptr; // read LCG bitmap
|
lbsr.bitmap = *ptr; // read LCG bitmap
|
||||||
ptr++; // skip LCG bitmap
|
ptr++; // skip LCG bitmap
|
||||||
|
|
||||||
|
@ -444,7 +449,12 @@ uint32_t mac_sch_pdu_nr::get_num_subpdus()
|
||||||
return subpdus.size();
|
return subpdus.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
const mac_sch_subpdu_nr& mac_sch_pdu_nr::get_subpdu(const uint32_t& index)
|
const mac_sch_subpdu_nr& mac_sch_pdu_nr::get_subpdu(const uint32_t& index) const
|
||||||
|
{
|
||||||
|
return subpdus.at(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
mac_sch_subpdu_nr& mac_sch_pdu_nr::get_subpdu(uint32_t index)
|
||||||
{
|
{
|
||||||
return subpdus.at(index);
|
return subpdus.at(index);
|
||||||
}
|
}
|
||||||
|
@ -551,11 +561,11 @@ uint32_t mac_sch_pdu_nr::add_sudpdu(mac_sch_subpdu_nr& subpdu)
|
||||||
return SRSRAN_SUCCESS;
|
return SRSRAN_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mac_sch_pdu_nr::to_string(fmt::memory_buffer& buffer)
|
void mac_sch_pdu_nr::to_string(fmt::memory_buffer& fmtbuffer)
|
||||||
{
|
{
|
||||||
fmt::format_to(buffer, "{}", is_ulsch() ? "UL" : "DL");
|
fmt::format_to(fmtbuffer, "{}", is_ulsch() ? "UL" : "DL");
|
||||||
for (auto& subpdu : subpdus) {
|
for (auto& subpdu : subpdus) {
|
||||||
subpdu.to_string(buffer);
|
subpdu.to_string(fmtbuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue