Commit 5fee4dc4 authored by Vijay C's avatar Vijay C

Merge branch 'EnquireTiming5G' into '3GPP_TTCN_System_Simulator'

5G Enquire Timing Changes

See merge request firecell/rdsubscription/sequansrd!76
parents 27cc952d 89432c10
...@@ -2083,6 +2083,8 @@ set(SS_SRC ...@@ -2083,6 +2083,8 @@ set(SS_SRC
${OPENAIR3_DIR}/SS/ss_eNB_drb_task.c ${OPENAIR3_DIR}/SS/ss_eNB_drb_task.c
${OPENAIR3_DIR}/SS/ss_eNB_vt_timer_task.c ${OPENAIR3_DIR}/SS/ss_eNB_vt_timer_task.c
${OPENAIR3_DIR}/SS/ss_gNB_srb_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_sidl ${SIDL_CMPLR}/src/*.c)
file(GLOB ss_acp ${SIDL_DIR}/acp/src/*.c) file(GLOB ss_acp ${SIDL_DIR}/acp/src/*.c)
......
...@@ -327,7 +327,9 @@ void *rrc_enb_process_msg(void *); ...@@ -327,7 +327,9 @@ void *rrc_enb_process_msg(void *);
TASK_DEF(TASK_M3AP_MCE, TASK_PRIORITY_MED, 200, NULL, NULL) \ TASK_DEF(TASK_M3AP_MCE, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SCTP, 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, 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, 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, TASK_PRIORITY_MED, 200, NULL, NULL) \
TASK_DEF(TASK_SS_SYSIND_ACP, 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) \ TASK_DEF(TASK_SS_SRB, TASK_PRIORITY_MED, 200, NULL, NULL) \
......
...@@ -80,6 +80,8 @@ unsigned short config_frames[4] = {2,9,11,13}; ...@@ -80,6 +80,8 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "gnb_paramdef.h" #include "gnb_paramdef.h"
#include <openair3/ocp-gtpu/gtp_itf.h> #include <openair3/ocp-gtpu/gtp_itf.h>
#include "nfapi/oai_integration/vendor_ext.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" #include "ss_gNB_srb_task.h"
pthread_cond_t nfapi_sync_cond; pthread_cond_t nfapi_sync_cond;
...@@ -352,12 +354,26 @@ int create_gNB_tasks(uint32_t gnb_nb) { ...@@ -352,12 +354,26 @@ int create_gNB_tasks(uint32_t gnb_nb) {
LOG_E(GNB_APP, "Create task for gNB APP failed\n"); LOG_E(GNB_APP, "Create task for gNB APP failed\n");
return -1; 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) { if(itti_create_task(TASK_SS_SRB, ss_gNB_srb_task, NULL) < 0) {
LOG_E(SCTP, "Create task for SS SRB failed\n"); LOG_E(SCTP, "Create task for SS SRB failed\n");
return -1; return -1;
} }
LOG_I(NR_RRC,"Creating NR RRC gNB Task\n"); LOG_I(NR_RRC,"Creating NR RRC gNB Task\n");
if (itti_create_task (TASK_RRC_GNB, rrc_gnb_task, NULL) < 0) { if (itti_create_task (TASK_RRC_GNB, rrc_gnb_task, NULL) < 0) {
......
...@@ -21,15 +21,20 @@ ...@@ -21,15 +21,20 @@
MESSAGE_DEF(SS_GET_TIM_INFO, MESSAGE_PRIORITY_MED, ss_get_timinfo_t , ss_get_timinfo) 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_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_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_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_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_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_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_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_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_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_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) MESSAGE_DEF(SS_REQ_PDCP_CNT, MESSAGE_PRIORITY_MED, ss_req_pdcp_cnt_t , ss_req_pdcp_cnt)
......
...@@ -25,9 +25,14 @@ ...@@ -25,9 +25,14 @@
#define SS_SYS_PORT_MSG_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_sys_port_msg_ind #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_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_GET_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_get_timinfo
#define SS_SET_TIM_INFO(mSGpTR) (mSGpTR)->ittiMsg.ss_set_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_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_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_cell_attn_list_ind
#define SS_CELL_ATTN_LIST_CNF(mSGpTR) (mSGpTR)->ittiMsg.ss_cell_attn_list_cnf #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 { ...@@ -75,6 +80,15 @@ typedef struct ss_sys_port_msg_cnf {
struct SYSTEM_CTRL_CNF* cnf; struct SYSTEM_CTRL_CNF* cnf;
} ss_sys_port_msg_cnf_t; } 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 */ /** SYS */
typedef struct ss_set_timinfo_s { typedef struct ss_set_timinfo_s {
uint16_t sfn; uint16_t sfn;
...@@ -83,6 +97,13 @@ typedef struct ss_set_timinfo_s { ...@@ -83,6 +97,13 @@ typedef struct ss_set_timinfo_s {
typedef ss_set_timinfo_t ss_upd_timinfo_t; 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 { typedef struct ss_get_timinfo_s {
uint8_t EnquireTiming; uint8_t EnquireTiming;
} ss_get_timinfo_t; } ss_get_timinfo_t;
......
...@@ -732,6 +732,7 @@ void RCconfig_nr_ssparam(void) { ...@@ -732,6 +732,7 @@ void RCconfig_nr_ssparam(void) {
RC.ss.Srbport = *(SSConfig_ParamList.paramarray[0][GNB_CONFIG_SS_SRBPORT_IDX].iptr); 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.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.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", 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); 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) { ...@@ -389,6 +389,24 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
gnb_rx_ind_queue.num_items, gnb_rx_ind_queue.num_items,
gnb_crc_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_rach_indication_t *rach_ind = NULL;
nfapi_nr_uci_indication_t *uci_ind = NULL; nfapi_nr_uci_indication_t *uci_ind = NULL;
nfapi_nr_rx_data_indication_t *rx_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 { ...@@ -61,6 +61,9 @@ typedef struct ss_config_s {
int SysIndport; int SysIndport;
/** DRB port number */ /** DRB port number */
int Drbport; int Drbport;
/** SYS Port NR number */
int SysportNR;
uint8_t configured;
/** State info */ /** State info */
int State; int State;
int vtp_ready; 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