2929
3030namespace srsue {
3131
32+ class mac_nr_interface_demux
33+ {
34+ public:
35+ virtual bool received_contention_id (uint64_t id) = 0;
36+ };
37+
3238/* *
3339 * @brief Logical Channel Demultiplexing and MAC CE dissassemble according to TS 38.321
3440 *
@@ -45,25 +51,26 @@ class demux_nr : public demux_interface_harq_nr
4551 demux_nr (srslog::basic_logger& logger_);
4652 ~demux_nr ();
4753
48- int32_t init (rlc_interface_mac* rlc_, phy_interface_mac_nr* phy_);
54+ int32_t init (rlc_interface_mac* rlc_, phy_interface_mac_nr* phy_, mac_nr_interface_demux* mac_ );
4955
5056 void process_pdus (); // / Called by MAC to process received PDUs
5157
5258 // HARQ interface
53- void push_bcch (srsran::unique_byte_buffer_t pdu);
54- void push_pdu (srsran::unique_byte_buffer_t pdu, uint32_t tti);
55- void push_pdu_temp_crnti (srsran::unique_byte_buffer_t pdu, uint32_t tti);
56- uint64_t get_received_crueid ();
59+ void push_bcch (srsran::unique_byte_buffer_t pdu);
60+ void push_pdu (srsran::unique_byte_buffer_t pdu, uint32_t tti);
61+ void push_pdu_temp_crnti (srsran::unique_byte_buffer_t pdu, uint32_t tti);
62+ bool get_uecrid_successful ();
5763
5864private:
5965 // internal helpers
6066 void handle_pdu (srsran::mac_sch_pdu_nr& pdu_buffer, srsran::unique_byte_buffer_t pdu);
6167
62- srslog::basic_logger& logger;
63- rlc_interface_mac* rlc = nullptr ;
64- phy_interface_mac_nr* phy = nullptr ;
68+ srslog::basic_logger& logger;
69+ rlc_interface_mac* rlc = nullptr ;
70+ phy_interface_mac_nr* phy = nullptr ;
71+ mac_nr_interface_demux* mac = nullptr ;
6572
66- uint64_t received_crueid = 0 ;
73+ bool is_uecrid_successful = false ;
6774
6875 // /< currently only DCH & BCH PDUs supported (add PCH, etc)
6976 srsran::block_queue<srsran::unique_byte_buffer_t > pdu_queue;
0 commit comments