Commit 42d9ab50 authored by Manu Agrawal's avatar Manu Agrawal

5G Enquire Timing Changes

parents 2a2769c0 9a7d4426
......@@ -2083,6 +2083,8 @@ set(SS_SRC
${OPENAIR3_DIR}/SS/ss_eNB_drb_task.c
${OPENAIR3_DIR}/SS/ss_eNB_vt_timer_task.c
${OPENAIR3_DIR}/SS/ss_gNB_srb_task.c
${OPENAIR3_DIR}/SS/ss_gNB_port_man_task.c
${OPENAIR3_DIR}/SS/ss_gNB_sys_task.c
)
file(GLOB ss_sidl ${SIDL_CMPLR}/src/*.c)
file(GLOB ss_acp ${SIDL_DIR}/acp/src/*.c)
......
......@@ -327,7 +327,9 @@ void *rrc_enb_process_msg(void *);
TASK_DEF(TASK_M3AP_MCE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SCTP, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SS_PORTMAN, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SS_PORTMAN_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SYS, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SYS_GNB, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SS_SYSIND, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SS_SYSIND_ACP, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SS_SRB, TASK_PRIORITY_MED, 200, NULL, NULL) \
......
......@@ -244,6 +244,7 @@ void rx_func(void *param) {
gNB->if_inst->NR_UL_indication(&gNB->UL_INFO);
pthread_mutex_unlock(&gNB->UL_INFO_mutex);
stop_meas(&gNB->ul_indication_stats);
if (tx_slot_type == NR_DOWNLINK_SLOT || tx_slot_type == NR_MIXED_SLOT) {
notifiedFIFO_elt_t *res;
......
......@@ -80,6 +80,8 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "gnb_paramdef.h"
#include <openair3/ocp-gtpu/gtp_itf.h>
#include "nfapi/oai_integration/vendor_ext.h"
#include "ss_gNB_sys_task.h"
#include "ss_gNB_port_man_task.h"
#include "ss_gNB_srb_task.h"
pthread_cond_t nfapi_sync_cond;
......@@ -352,12 +354,26 @@ int create_gNB_tasks(uint32_t gnb_nb) {
LOG_E(GNB_APP, "Create task for gNB APP failed\n");
return -1;
}
if (RC.ss.mode >= SS_SOFTMODEM)
{
if(itti_create_task(TASK_SS_PORTMAN_GNB, ss_gNB_port_man_task, NULL) < 0)
{
LOG_E(GNB_APP, "Create task for SS Port manager GNB failed\n");
return -1;
}
/* This sleep is for gNB_app_task to load the RRC configuration */
usleep(1000);
if(itti_create_task(TASK_SYS_GNB, ss_gNB_sys_task, NULL) < 0)
{
LOG_E(GNB_APP, "Create task for SS GNB failed\n");
return -1;
}
}
if(itti_create_task(TASK_SS_SRB, ss_gNB_srb_task, NULL) < 0) {
LOG_E(SCTP, "Create task for SS SRB failed\n");
return -1;
}
LOG_I(NR_RRC,"Creating NR RRC gNB Task\n");
if (itti_create_task (TASK_RRC_GNB, rrc_gnb_task, NULL) < 0) {
......
......@@ -21,15 +21,20 @@
MESSAGE_DEF(SS_GET_TIM_INFO, MESSAGE_PRIORITY_MED, ss_get_timinfo_t , ss_get_timinfo)
MESSAGE_DEF(SS_SET_TIM_INFO, MESSAGE_PRIORITY_MED, ss_set_timinfo_t , ss_set_timinfo)
MESSAGE_DEF(SS_NRSET_TIM_INFO, MESSAGE_PRIORITY_MED, ss_nrset_timinfo_t , ss_nrset_timinfo)
MESSAGE_DEF(SS_RRC_PDU_REQ, MESSAGE_PRIORITY_MED, ss_rrc_pdu_req_t , ss_rrc_pdu_req)
MESSAGE_DEF(SS_RRC_PDU_IND, MESSAGE_PRIORITY_MED, ss_rrc_pdu_ind_t , ss_rrc_pdu_ind)
MESSAGE_DEF(SS_DRB_PDU_REQ, MESSAGE_PRIORITY_MED, ss_drb_pdu_req_t , ss_drb_pdu_req)
MESSAGE_DEF(SS_DRB_PDU_IND, MESSAGE_PRIORITY_MED, ss_drb_pdu_ind_t , ss_drb_pdu_ind)
MESSAGE_DEF(SS_UPD_TIM_INFO, MESSAGE_PRIORITY_MED, ss_upd_timinfo_t , ss_upd_timinfo)
MESSAGE_DEF(SS_NRUPD_TIM_INFO, MESSAGE_PRIORITY_MED, ss_nrupd_timinfo_t , ss_nrupd_timinfo)
MESSAGE_DEF(SS_SYS_PORT_MSG_IND, MESSAGE_PRIORITY_MED, ss_sys_port_msg_ind_t , ss_sys_port_msg_ind)
MESSAGE_DEF(SS_SYS_PORT_MSG_CNF, MESSAGE_PRIORITY_MED, ss_sys_port_msg_cnf_t , ss_sys_port_msg_cnf)
MESSAGE_DEF(SS_NR_SYS_PORT_MSG_IND, MESSAGE_PRIORITY_MED, ss_nr_sys_port_msg_ind_t , ss_nr_sys_port_msg_ind)
MESSAGE_DEF(SS_NR_SYS_PORT_MSG_CNF, MESSAGE_PRIORITY_MED, ss_nr_sys_port_msg_cnf_t , ss_nr_sys_port_msg_cnf)
MESSAGE_DEF(SS_GET_PDCP_CNT, MESSAGE_PRIORITY_MED, ss_get_pdcp_cnt_t , ss_get_pdcp_cnt)
MESSAGE_DEF(SS_SET_PDCP_CNT, MESSAGE_PRIORITY_MED, ss_set_pdcp_cnt_t , ss_set_pdcp_cnt)
MESSAGE_DEF(SS_REQ_PDCP_CNT, MESSAGE_PRIORITY_MED, ss_req_pdcp_cnt_t , ss_req_pdcp_cnt)
......
......@@ -25,9 +25,14 @@
#define SS_SYS_PORT_MSG_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_sys_port_msg_ind
#define SS_SYS_PORT_MSG_CNF(mSGpTR) (mSGpTR)->ittiMsg.ss_sys_port_msg_cnf
#define SS_NR_SYS_PORT_MSG_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_nr_sys_port_msg_ind
#define SS_NR_SYS_PORT_MSG_CNF(mSGpTR) (mSGpTR)->ittiMsg.ss_nr_sys_port_msg_cnf
#define SS_GET_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_get_timinfo
#define SS_SET_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_set_timinfo
#define SS_NRSET_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_nrset_timinfo
#define SS_UPD_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_upd_timinfo
#define SS_NRUPD_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_nrupd_timinfo
#define SS_CELL_ATTN_LIST_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_cell_attn_list_ind
#define SS_CELL_ATTN_LIST_CNF(mSGpTR) (mSGpTR)->ittiMsg.ss_cell_attn_list_cnf
......@@ -75,6 +80,15 @@ typedef struct ss_sys_port_msg_cnf {
struct SYSTEM_CTRL_CNF* cnf;
} ss_sys_port_msg_cnf_t;
typedef struct ss_nr_sys_port_msg_ind {
struct NR_SYSTEM_CTRL_REQ* req;
int userId;
} ss_nr_sys_port_msg_ind_t;
typedef struct ss_nr_sys_port_msg_cnf {
struct NR_SYSTEM_CTRL_CNF* cnf;
} ss_nr_sys_port_msg_cnf_t;
/** SYS */
typedef struct ss_set_timinfo_s {
uint16_t sfn;
......@@ -83,6 +97,13 @@ typedef struct ss_set_timinfo_s {
typedef ss_set_timinfo_t ss_upd_timinfo_t;
typedef struct ss_nrset_timinfo_s {
uint16_t sfn;
uint32_t slot;
} ss_nrset_timinfo_t;
typedef ss_nrset_timinfo_t ss_nrupd_timinfo_t;
typedef struct ss_get_timinfo_s {
uint8_t EnquireTiming;
} ss_get_timinfo_t;
......
......@@ -732,6 +732,7 @@ void RCconfig_nr_ssparam(void) {
RC.ss.Srbport = *(SSConfig_ParamList.paramarray[0][GNB_CONFIG_SS_SRBPORT_IDX].iptr);
RC.ss.Vngport = *(SSConfig_ParamList.paramarray[0][GNB_CONFIG_SS_VNGPORT_IDX].iptr);
RC.ss.mode = *(SSConfig_ParamList.paramarray[0][GNB_CONFIG_SS_MODE_IDX].iptr);
RC.ss.SysportNR = *(SSConfig_ParamList.paramarray[0][GNB_CONFIG_SS_SYSPORT_IDX].iptr);
}
LOG_A(GNB_APP,"SS_Config:SSMode %d, hostIp=%s, Sysport=%d, Srbport=%d Vngport=%d\n",
RC.ss.mode, RC.ss.hostIp,RC.ss.Sysport,RC.ss.Srbport,RC.ss.Vngport);
......
......@@ -389,6 +389,24 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
gnb_rx_ind_queue.num_items,
gnb_crc_ind_queue.num_items);
if (RC.ss.mode >= SS_SOFTMODEM)
{
MessageDef *message_p = itti_alloc_new_message(TASK_SYS_GNB, INSTANCE_DEFAULT, SS_NRUPD_TIM_INFO);
if (message_p)
{
SS_NRUPD_TIM_INFO(message_p).slot = UL_info->slot;
SS_NRUPD_TIM_INFO(message_p).sfn = UL_info->frame;
int send_res = itti_send_msg_to_task(TASK_SYS_GNB, INSTANCE_DEFAULT, message_p);
if (send_res < 0)
{
LOG_E(NR_PHY, "[SS] Error in L1_Thread itti_send_msg_to_task");
}
LOG_D(NR_PHY, "[SS] SS_NRUPD_TIM_INFO from L1_Thread to SYS task itti_send_msg_to_task sfn %d slot %d",
UL_info->frame, UL_info->slot);
}
}
nfapi_nr_rach_indication_t *rach_ind = NULL;
nfapi_nr_uci_indication_t *uci_ind = NULL;
nfapi_nr_rx_data_indication_t *rx_ind = NULL;
......
This diff is collapsed.
#ifndef SS_GNB_TASK_PORT_MAN_H_
#define SS_GNB_TASK_PORT_MAN_H_
void ss_gNB_port_man_init(void);
void *ss_gNB_port_man_task(void *arg);
#endif /* SS_ENB_TASK_PORT_MAN_H_ */
This diff is collapsed.
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#ifndef SS_GNB_TASK_H_
#define SS_GNB_TASK_H_
// void ss_eNB_init(void);
void *ss_gNB_sys_process_itti_msg(void *);
void *ss_gNB_sys_task(void *arg);
enum Proxy_Msg_Id
{
Cell_Attenuation_Req = 1,
Cell_Attenuation_Cnf = 2,
Cell_Config_Req = 3,
Cell_Config_Cnf = 4,
Max_Msg_Id = 5
};
typedef struct udpSockReq_s
{
uint32_t port;
char *address;
} udpSockReq_t;
#endif /* SS_ENB_TASK_H_ */
......@@ -61,6 +61,9 @@ typedef struct ss_config_s {
int SysIndport;
/** DRB port number */
int Drbport;
/** SYS Port NR number */
int SysportNR;
uint8_t configured;
/** State info */
int State;
int vtp_ready;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment