|
|
@ -102,7 +102,6 @@ public:
|
|
|
|
class phy_interface_mac_lte
|
|
|
|
class phy_interface_mac_lte
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
/* MAC adds/removes an RNTI to the list of active RNTIs */
|
|
|
|
/* MAC adds/removes an RNTI to the list of active RNTIs */
|
|
|
|
virtual int add_rnti(uint16_t rnti, bool is_temporal = false) = 0;
|
|
|
|
virtual int add_rnti(uint16_t rnti, bool is_temporal = false) = 0;
|
|
|
|
virtual void rem_rnti(uint16_t rnti) = 0;
|
|
|
|
virtual void rem_rnti(uint16_t rnti) = 0;
|
|
|
@ -124,8 +123,8 @@ public:
|
|
|
|
phy_cfg_mbsfn_t mbsfn;
|
|
|
|
phy_cfg_mbsfn_t mbsfn;
|
|
|
|
} phy_rrc_cfg_t;
|
|
|
|
} phy_rrc_cfg_t;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void configure_mbsfn(asn1::rrc::sib_type2_s* sib2, asn1::rrc::sib_type13_r9_s* sib13,
|
|
|
|
virtual void
|
|
|
|
asn1::rrc::mcch_msg_s mcch) = 0;
|
|
|
|
configure_mbsfn(asn1::rrc::sib_type2_s* sib2, asn1::rrc::sib_type13_r9_s* sib13, asn1::rrc::mcch_msg_s mcch) = 0;
|
|
|
|
virtual void set_config_dedicated(uint16_t rnti, asn1::rrc::phys_cfg_ded_s* dedicated) = 0;
|
|
|
|
virtual void set_config_dedicated(uint16_t rnti, asn1::rrc::phys_cfg_ded_s* dedicated) = 0;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -145,8 +144,8 @@ public:
|
|
|
|
virtual int bearer_ue_rem(uint16_t rnti, uint32_t lc_id) = 0;
|
|
|
|
virtual int bearer_ue_rem(uint16_t rnti, uint32_t lc_id) = 0;
|
|
|
|
virtual int set_dl_ant_info(uint16_t rnti, asn1::rrc::phys_cfg_ded_s::ant_info_c_* dl_ant_info) = 0;
|
|
|
|
virtual int set_dl_ant_info(uint16_t rnti, asn1::rrc::phys_cfg_ded_s::ant_info_c_* dl_ant_info) = 0;
|
|
|
|
virtual void phy_config_enabled(uint16_t rnti, bool enabled) = 0;
|
|
|
|
virtual void phy_config_enabled(uint16_t rnti, bool enabled) = 0;
|
|
|
|
virtual void write_mcch(asn1::rrc::sib_type2_s* sib2, asn1::rrc::sib_type13_r9_s* sib13,
|
|
|
|
virtual void
|
|
|
|
asn1::rrc::mcch_msg_s* mcch) = 0;
|
|
|
|
write_mcch(asn1::rrc::sib_type2_s* sib2, asn1::rrc::sib_type13_r9_s* sib13, asn1::rrc::mcch_msg_s* mcch) = 0;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class mac_interface_rlc
|
|
|
|
class mac_interface_rlc
|
|
|
@ -159,7 +158,6 @@ public:
|
|
|
|
class rlc_interface_mac
|
|
|
|
class rlc_interface_mac
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
/* MAC calls RLC to get RLC segment of nof_bytes length.
|
|
|
|
/* MAC calls RLC to get RLC segment of nof_bytes length.
|
|
|
|
* Segmentation happens in this function. RLC PDU is stored in payload. */
|
|
|
|
* Segmentation happens in this function. RLC PDU is stored in payload. */
|
|
|
|
virtual int read_pdu(uint16_t rnti, uint32_t lcid, uint8_t* payload, uint32_t nof_bytes) = 0;
|
|
|
|
virtual int read_pdu(uint16_t rnti, uint32_t lcid, uint8_t* payload, uint32_t nof_bytes) = 0;
|
|
|
@ -170,10 +168,8 @@ public:
|
|
|
|
/* MAC calls RLC to push an RLC PDU. This function is called from an independent MAC thread.
|
|
|
|
/* MAC calls RLC to push an RLC PDU. This function is called from an independent MAC thread.
|
|
|
|
* PDU gets placed into the buffer and higher layer thread gets notified. */
|
|
|
|
* PDU gets placed into the buffer and higher layer thread gets notified. */
|
|
|
|
virtual void write_pdu(uint16_t rnti, uint32_t lcid, uint8_t* payload, uint32_t nof_bytes) = 0;
|
|
|
|
virtual void write_pdu(uint16_t rnti, uint32_t lcid, uint8_t* payload, uint32_t nof_bytes) = 0;
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// RLC interface for PDCP
|
|
|
|
// RLC interface for PDCP
|
|
|
|
class rlc_interface_pdcp
|
|
|
|
class rlc_interface_pdcp
|
|
|
|
{
|
|
|
|
{
|
|
|
|