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