|
|
|
@ -83,7 +83,6 @@ public:
|
|
|
|
|
rand_gen(RAND_SEED),
|
|
|
|
|
rand_dist(MIN_TB_LEN, MAX_TB_LEN)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
log_h->set_level(srslte::LOG_LEVEL_WARNING);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -177,9 +176,6 @@ private:
|
|
|
|
|
fd.fd = sockfd;
|
|
|
|
|
fd.events = POLLIN;
|
|
|
|
|
|
|
|
|
|
// const uint32_t max_basic_api_pdu = sizeof(basic_vnf_api::dl_conf_msg_t) + 32; // larger than biggest message
|
|
|
|
|
// std::unique_ptr<std::array<uint8_t, max_basic_api_pdu> > rx_buffer =
|
|
|
|
|
// std::unique_ptr<std::array<uint8_t, max_basic_api_pdu> >(new std::array<uint8_t, max_basic_api_pdu>);
|
|
|
|
|
std::unique_ptr<msg_buffer_t> rx_buffer{new msg_buffer_t{}};
|
|
|
|
|
|
|
|
|
|
while (running) {
|
|
|
|
@ -193,7 +189,6 @@ private:
|
|
|
|
|
case 0:
|
|
|
|
|
// Timeout
|
|
|
|
|
printf("Error: Didn't receive response after %dms\n", RX_TIMEOUT_MS);
|
|
|
|
|
// running = false;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
int recv_ret = recv(sockfd, rx_buffer->data(), sizeof(*rx_buffer), 0);
|
|
|
|
@ -328,7 +323,7 @@ private:
|
|
|
|
|
{
|
|
|
|
|
basic_vnf_api::msg_header_t* header = (basic_vnf_api::msg_header_t*)buffer;
|
|
|
|
|
|
|
|
|
|
// log_h->info("Received %s (%d B) in TTI\n", basic_vnf_api::msg_type_text[header->type], len);
|
|
|
|
|
log_h->debug("Received %s (%d B) in TTI\n", basic_vnf_api::msg_type_text[header->type], len);
|
|
|
|
|
|
|
|
|
|
switch (header->type) {
|
|
|
|
|
case basic_vnf_api::SF_IND:
|
|
|
|
@ -552,6 +547,8 @@ private:
|
|
|
|
|
std::mt19937 rand_gen;
|
|
|
|
|
std::uniform_int_distribution<uint16_t> rand_dist;
|
|
|
|
|
|
|
|
|
|
// two policies possible: dummy packets generated by the PNF class, or bridge between UE and gNB PNFs with TBs
|
|
|
|
|
// entering/exiting each PNF via the rf_in_queue/rf_out_queue.
|
|
|
|
|
srslte::block_queue<srslte::unique_byte_buffer_t>* rf_out_queue = nullptr;
|
|
|
|
|
srslte::block_queue<srslte::unique_byte_buffer_t> rf_in_queue;
|
|
|
|
|
enum data_policy_t { self_gen, bridge } policy = self_gen;
|
|
|
|
|