mirror of https://github.com/pvnis/srsRAN_4G.git
Added mux class and packing of msg3
parent
f90f10f6a8
commit
3af0342418
@ -0,0 +1,46 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* \section COPYRIGHT
|
||||||
|
*
|
||||||
|
* Copyright 2013-2020 Software Radio Systems Limited
|
||||||
|
*
|
||||||
|
* By using this file, you agree to the terms and conditions set
|
||||||
|
* forth in the LICENSE file which can be found at the top level of
|
||||||
|
* the distribution.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SRSUE_MUX_NR_H
|
||||||
|
#define SRSUE_MUX_NR_H
|
||||||
|
|
||||||
|
#include "srslte/common/byte_buffer.h"
|
||||||
|
#include "srslte/common/common.h"
|
||||||
|
#include "srslte/srslog/srslog.h"
|
||||||
|
#include "srslte/srslte.h"
|
||||||
|
|
||||||
|
namespace srsue {
|
||||||
|
class mux_nr
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit mux_nr(srslog::basic_logger& logger);
|
||||||
|
~mux_nr(){};
|
||||||
|
void reset();
|
||||||
|
void init();
|
||||||
|
|
||||||
|
void step();
|
||||||
|
|
||||||
|
void msg3_flush();
|
||||||
|
void msg3_prepare();
|
||||||
|
bool msg3_is_transmitted();
|
||||||
|
bool msg3_is_pending();
|
||||||
|
bool msg3_is_empty();
|
||||||
|
|
||||||
|
private:
|
||||||
|
srslog::basic_logger& logger;
|
||||||
|
srslte::unique_byte_buffer_t msg3_buff = nullptr;
|
||||||
|
typedef enum { none, pending, transmitted } msg3_state_t;
|
||||||
|
msg3_state_t msg3_state = none;
|
||||||
|
};
|
||||||
|
} // namespace srsue
|
||||||
|
|
||||||
|
#endif // SRSUE_MUX_NR_H
|
@ -0,0 +1,51 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* \section COPYRIGHT
|
||||||
|
*
|
||||||
|
* Copyright 2013-2020 Software Radio Systems Limited
|
||||||
|
*
|
||||||
|
* By using this file, you agree to the terms and conditions set
|
||||||
|
* forth in the LICENSE file which can be found at the top level of
|
||||||
|
* the distribution.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "srsue/hdr/stack/mac_nr/mux_nr.h"
|
||||||
|
#include "srslte/common/buffer_pool.h"
|
||||||
|
|
||||||
|
namespace srsue {
|
||||||
|
|
||||||
|
mux_nr::mux_nr(srslog::basic_logger& logger_) : logger(logger_)
|
||||||
|
{
|
||||||
|
msg3_buff = srslte::make_byte_buffer();
|
||||||
|
};
|
||||||
|
|
||||||
|
void mux_nr::init() {}
|
||||||
|
|
||||||
|
void mux_nr::msg3_flush()
|
||||||
|
{
|
||||||
|
msg3_buff->clear();
|
||||||
|
msg3_state = msg3_state_t::none;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mux_nr::msg3_prepare()
|
||||||
|
{
|
||||||
|
msg3_state = msg3_state_t::pending;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool mux_nr::msg3_is_transmitted()
|
||||||
|
{
|
||||||
|
return msg3_state == msg3_state_t::transmitted;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool mux_nr::msg3_is_pending()
|
||||||
|
{
|
||||||
|
return msg3_state == msg3_state_t::pending;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool mux_nr::msg3_is_empty()
|
||||||
|
{
|
||||||
|
return msg3_buff->N_bytes == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace srsue
|
Loading…
Reference in New Issue