merge nfapi_cleanup
This commit is contained in:
@@ -21,31 +21,55 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <pthread.h>
|
||||
#include "nfapi/oai_integration/vendor_ext.h"
|
||||
#include "common/utils/LOG/log.h"
|
||||
static char nfapi_str_mode[6][24] = {"MONOLITHIC","PNF","VNF","UE_STUB_PNF","UE_STUB_OFFNET","<UNKNOWN NFAPI MODE>"};
|
||||
|
||||
void set_thread_priority(int priority)
|
||||
{
|
||||
typedef struct {
|
||||
nfapi_mode_t nfapi_mode;
|
||||
} nfapi_params_t;
|
||||
|
||||
static nfapi_params_t nfapi_params;
|
||||
|
||||
void set_thread_priority(int priority) {
|
||||
//printf("%s(priority:%d)\n", __FUNCTION__, priority);
|
||||
|
||||
pthread_attr_t ptAttr;
|
||||
|
||||
struct sched_param schedParam;
|
||||
schedParam.__sched_priority = priority; //79;
|
||||
if(sched_setscheduler(0, SCHED_RR, &schedParam) != 0)
|
||||
{
|
||||
|
||||
if(sched_setscheduler(0, SCHED_RR, &schedParam) != 0) {
|
||||
printf("Failed to set scheduler to SCHED_RR\n");
|
||||
}
|
||||
|
||||
if(pthread_attr_setschedpolicy(&ptAttr, SCHED_RR) != 0)
|
||||
{
|
||||
if(pthread_attr_setschedpolicy(&ptAttr, SCHED_RR) != 0) {
|
||||
printf("Failed to set pthread sched policy SCHED_RR\n");
|
||||
}
|
||||
|
||||
pthread_attr_setinheritsched(&ptAttr, PTHREAD_EXPLICIT_SCHED);
|
||||
|
||||
struct sched_param thread_params;
|
||||
thread_params.sched_priority = 20;
|
||||
if(pthread_attr_setschedparam(&ptAttr, &thread_params) != 0)
|
||||
{
|
||||
|
||||
if(pthread_attr_setschedparam(&ptAttr, &thread_params) != 0) {
|
||||
printf("failed to set sched param\n");
|
||||
}
|
||||
}
|
||||
|
||||
char *nfapi_get_strmode(void) {
|
||||
if (nfapi_params.nfapi_mode > NFAPI_MODE_UNKNOWN)
|
||||
return nfapi_str_mode[NFAPI_MODE_UNKNOWN];
|
||||
|
||||
return nfapi_str_mode[nfapi_params.nfapi_mode];
|
||||
}
|
||||
|
||||
void nfapi_logmode() {
|
||||
LOG_I(ENB_APP,"nfapi running mode: %s\n",nfapi_get_strmode());
|
||||
}
|
||||
|
||||
nfapi_mode_t nfapi_getmode(void) {
|
||||
return nfapi_params.nfapi_mode;
|
||||
}
|
||||
|
||||
void nfapi_setmode(nfapi_mode_t nfapi_mode) {
|
||||
nfapi_params.nfapi_mode = nfapi_mode;
|
||||
nfapi_logmode();
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "debug.h"
|
||||
#include "nfapi/oai_integration/vendor_ext.h"
|
||||
#include "nfapi_pnf_interface.h"
|
||||
#include "nfapi.h"
|
||||
#include "nfapi_pnf.h"
|
||||
@@ -76,7 +77,7 @@ extern void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame, int subfra
|
||||
extern void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, L1_rxtx_proc_t *proc, nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu);
|
||||
extern void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu, uint8_t *sdu);
|
||||
|
||||
extern uint8_t nfapi_mode;
|
||||
|
||||
|
||||
nfapi_tx_request_pdu_t *tx_request_pdu[1023][10][10]; // [frame][subframe][max_num_pdus]
|
||||
|
||||
@@ -485,7 +486,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
|
||||
// to keep only the necessary just to keep the nfapi FSM rolling by sending a dummy response.
|
||||
LTE_DL_FRAME_PARMS *fp;
|
||||
|
||||
if (nfapi_mode!=3) {
|
||||
if (NFAPI_MODE!=NFAPI_UE_STUB_PNF) {
|
||||
struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0];
|
||||
fp = &eNB->frame_parms;
|
||||
} else {
|
||||
@@ -647,7 +648,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
|
||||
num_tlv++;
|
||||
}
|
||||
|
||||
if(nfapi_mode!=3) {
|
||||
if(NFAPI_MODE!=NFAPI_UE_STUB_PNF) {
|
||||
printf("[PNF] CONFIG_REQUEST[num_tlv:%d] TLVs processed:%d\n", req->num_tlv, num_tlv);
|
||||
printf("[PNF] Simulating PHY CONFIG - DJP\n");
|
||||
PHY_Config_t phy_config;
|
||||
@@ -672,7 +673,7 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
|
||||
nfapi_pnf_config_resp(config, &nfapi_resp);
|
||||
printf("[PNF] Sent NFAPI_CONFIG_RESPONSE phy_id:%d\n", phy_info->id);
|
||||
|
||||
if(nfapi_mode ==3)
|
||||
if(NFAPI_MODE==NFAPI_UE_STUB_PNF)
|
||||
free(fp);
|
||||
|
||||
return 0;
|
||||
@@ -1023,7 +1024,7 @@ int start_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfapi
|
||||
p7_config->tx_req = &pnf_phy_tx_req;
|
||||
p7_config->lbt_dl_config_req = &pnf_phy_lbt_dl_config_req;
|
||||
|
||||
if (nfapi_mode==3) {
|
||||
if (NFAPI_MODE==NFAPI_UE_STUB_PNF) {
|
||||
p7_config->dl_config_req = &memcpy_dl_config_req;
|
||||
p7_config->ul_config_req = &memcpy_ul_config_req;
|
||||
p7_config->hi_dci0_req = &memcpy_hi_dci0_req;
|
||||
@@ -1080,7 +1081,7 @@ int start_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfapi
|
||||
//phy_init_RU(RC.ru[0]);
|
||||
printf("[PNF] About to call init_eNB_afterRU()\n");
|
||||
|
||||
if (nfapi_mode != 3) {
|
||||
if (NFAPI_MODE!=NFAPI_UE_STUB_PNF) {
|
||||
init_eNB_afterRU();
|
||||
}
|
||||
|
||||
@@ -1364,8 +1365,8 @@ void *pnf_start_thread(void *ptr) {
|
||||
void configure_nfapi_pnf(char *vnf_ip_addr, int vnf_p5_port, char *pnf_ip_addr, int pnf_p7_port, int vnf_p7_port) {
|
||||
printf("%s() PNF\n\n\n\n\n\n", __FUNCTION__);
|
||||
|
||||
if(nfapi_mode!=3) {
|
||||
nfapi_mode = 1; // PNF!
|
||||
if(NFAPI_MODE!=NFAPI_UE_STUB_PNF) {
|
||||
nfapi_setmode(NFAPI_PNF); // PNF!
|
||||
}
|
||||
|
||||
nfapi_pnf_config_t *config = nfapi_pnf_config_create();
|
||||
|
||||
@@ -904,10 +904,10 @@ void vnf_start_thread(void *ptr) {
|
||||
}
|
||||
|
||||
static vnf_info vnf;
|
||||
extern uint8_t nfapi_mode;
|
||||
|
||||
/*------------------------------------------------------------------------------*/
|
||||
void configure_nfapi_vnf(char *vnf_addr, int vnf_p5_port) {
|
||||
nfapi_mode = 2;
|
||||
nfapi_setmode(NFAPI_MODE_VNF);
|
||||
memset(&vnf, 0, sizeof(vnf));
|
||||
memset(vnf.p7_vnfs, 0, sizeof(vnf.p7_vnfs));
|
||||
vnf.p7_vnfs[0].timing_window = 32;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* Copyright 2017 Cisco Systems, Inc.
|
||||
*
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@@ -20,48 +20,62 @@
|
||||
#include "nfapi_interface.h"
|
||||
|
||||
typedef enum {
|
||||
P5_VENDOR_EXT_REQ = NFAPI_VENDOR_EXT_MSG_MIN,
|
||||
P5_VENDOR_EXT_RSP,
|
||||
P5_VENDOR_EXT_REQ = NFAPI_VENDOR_EXT_MSG_MIN,
|
||||
P5_VENDOR_EXT_RSP,
|
||||
|
||||
P7_VENDOR_EXT_REQ,
|
||||
P7_VENDOR_EXT_IND
|
||||
P7_VENDOR_EXT_REQ,
|
||||
P7_VENDOR_EXT_IND
|
||||
|
||||
} vendor_ext_message_id_e;
|
||||
|
||||
typedef struct {
|
||||
nfapi_p4_p5_message_header_t header;
|
||||
uint16_t dummy1;
|
||||
uint16_t dummy2;
|
||||
nfapi_p4_p5_message_header_t header;
|
||||
uint16_t dummy1;
|
||||
uint16_t dummy2;
|
||||
} vendor_ext_p5_req;
|
||||
|
||||
typedef struct {
|
||||
nfapi_p4_p5_message_header_t header;
|
||||
uint16_t error_code;
|
||||
nfapi_p4_p5_message_header_t header;
|
||||
uint16_t error_code;
|
||||
} vendor_ext_p5_rsp;
|
||||
|
||||
typedef struct {
|
||||
nfapi_p7_message_header_t header;
|
||||
uint16_t dummy1;
|
||||
uint16_t dummy2;
|
||||
nfapi_p7_message_header_t header;
|
||||
uint16_t dummy1;
|
||||
uint16_t dummy2;
|
||||
} vendor_ext_p7_req;
|
||||
|
||||
typedef struct {
|
||||
nfapi_p7_message_header_t header;
|
||||
uint16_t error_code;
|
||||
nfapi_p7_message_header_t header;
|
||||
uint16_t error_code;
|
||||
} vendor_ext_p7_ind;
|
||||
|
||||
typedef struct {
|
||||
nfapi_tl_t tl;
|
||||
uint32_t dummy;
|
||||
nfapi_tl_t tl;
|
||||
uint32_t dummy;
|
||||
} vendor_ext_tlv_1;
|
||||
|
||||
#define VENDOR_EXT_TLV_1_TAG 0xF001
|
||||
|
||||
typedef struct {
|
||||
nfapi_tl_t tl;
|
||||
uint32_t dummy;
|
||||
nfapi_tl_t tl;
|
||||
uint32_t dummy;
|
||||
} vendor_ext_tlv_2;
|
||||
|
||||
#define VENDOR_EXT_TLV_2_TAG 0xF002
|
||||
|
||||
typedef enum {
|
||||
NFAPI_MONOLITHIC=0,
|
||||
NFAPI_MODE_PNF,
|
||||
NFAPI_MODE_VNF,
|
||||
NFAPI_UE_STUB_PNF,
|
||||
NFAPI_UE_STUB_OFFNET,
|
||||
NFAPI_MODE_UNKNOWN
|
||||
} nfapi_mode_t;
|
||||
|
||||
char *nfapi_get_strmode(void);
|
||||
void nfapi_logmode(void);
|
||||
nfapi_mode_t nfapi_getmode(void);
|
||||
void nfapi_setmode(nfapi_mode_t nfapi_mode);
|
||||
#define NFAPI_MODE (nfapi_getmode())
|
||||
#endif // _VENDOR_EXT_
|
||||
|
||||
Reference in New Issue
Block a user