Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
b972891e
Commit
b972891e
authored
Jul 28, 2023
by
Stone WU
Committed by
Jerome Peraldi
Aug 02, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug #125147: Fix SS timing HSFN number issue
parent
cbc7822c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
28 additions
and
15 deletions
+28
-15
openair2/COMMON/ss_messages_types.h
openair2/COMMON/ss_messages_types.h
+1
-0
openair3/SS/ss_eNB_drb_task.c
openair3/SS/ss_eNB_drb_task.c
+1
-1
openair3/SS/ss_eNB_port_man_task.c
openair3/SS/ss_eNB_port_man_task.c
+1
-2
openair3/SS/ss_eNB_srb_task.c
openair3/SS/ss_eNB_srb_task.c
+3
-2
openair3/SS/ss_eNB_sys_task.c
openair3/SS/ss_eNB_sys_task.c
+16
-4
openair3/SS/ss_eNB_sysind_task.c
openair3/SS/ss_eNB_sysind_task.c
+1
-1
openair3/SS/ss_eNB_vtp_task.c
openair3/SS/ss_eNB_vtp_task.c
+5
-5
No files found.
openair2/COMMON/ss_messages_types.h
View file @
b972891e
...
@@ -94,6 +94,7 @@ typedef struct ss_nr_sys_port_msg_cnf {
...
@@ -94,6 +94,7 @@ typedef struct ss_nr_sys_port_msg_cnf {
/** SYS */
/** SYS */
typedef
struct
ss_set_timinfo_s
{
typedef
struct
ss_set_timinfo_s
{
uint16_t
hsfn
;
uint16_t
sfn
;
uint16_t
sfn
;
uint8_t
sf
;
uint8_t
sf
;
int
cell_index
;
int
cell_index
;
...
...
openair3/SS/ss_eNB_drb_task.c
View file @
b972891e
...
@@ -98,7 +98,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind, int cell_index){
...
@@ -98,7 +98,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind, int cell_index){
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
pdu_ind
->
subframe
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
pdu_ind
->
subframe
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
0
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
SS_context
.
hsfn
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
v
.
Any
=
true
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
v
.
Any
=
true
;
...
...
openair3/SS/ss_eNB_port_man_task.c
View file @
b972891e
...
@@ -257,9 +257,8 @@ void ss_port_man_send_data(
...
@@ -257,9 +257,8 @@ void ss_port_man_send_data(
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
d
=
SubFrameInfo_Type_Number
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
d
=
SubFrameInfo_Type_Number
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
tinfo
->
sf
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
tinfo
->
sf
;
/** TODO: Always filling HSFN as 0, need to change this */
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
0
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
tinfo
->
hsfn
;
/** TODO: Always marking as first slot, need to change this */
/** TODO: Always marking as first slot, need to change this */
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_FirstSlot
;
cnf
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_FirstSlot
;
...
...
openair3/SS/ss_eNB_srb_task.c
View file @
b972891e
...
@@ -123,8 +123,8 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind,int cell_index)
...
@@ -123,8 +123,8 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind,int cell_index)
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
d
=
SubFrameInfo_Type_Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
d
=
SubFrameInfo_Type_Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
pdu_ind
->
subframe
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
pdu_ind
->
subframe
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_
Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_
Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
0
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
SS_context
.
hsfn
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
v
.
Any
=
true
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
v
.
Any
=
true
;
...
@@ -257,6 +257,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req)
...
@@ -257,6 +257,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req)
SS_RRC_PDU_REQ
(
message_p
).
rnti
=
rnti_g
;
SS_RRC_PDU_REQ
(
message_p
).
rnti
=
rnti_g
;
vt_add_sf
(
&
req
->
Common
.
TimingInfo
,
-
1
);
//RRC PDU schedule(if future timing) shall be ahead 1 subframe because of latency between RRC and PDCP
if
(
!
vt_timer_push_msg
(
&
req
->
Common
.
TimingInfo
,
TASK_RRC_ENB
,
instance_g
,
message_p
))
if
(
!
vt_timer_push_msg
(
&
req
->
Common
.
TimingInfo
,
TASK_RRC_ENB
,
instance_g
,
message_p
))
{
{
itti_send_msg_to_task
(
TASK_RRC_ENB
,
instance_g
,
message_p
);
itti_send_msg_to_task
(
TASK_RRC_ENB
,
instance_g
,
message_p
);
...
...
openair3/SS/ss_eNB_sys_task.c
View file @
b972891e
...
@@ -295,7 +295,8 @@ static void ss_task_sys_handle_timing_info(ss_set_timinfo_t *tinfo)
...
@@ -295,7 +295,8 @@ static void ss_task_sys_handle_timing_info(ss_set_timinfo_t *tinfo)
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_SYS
,
0
,
SS_SET_TIM_INFO
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_SYS
,
0
,
SS_SET_TIM_INFO
);
if
(
message_p
)
if
(
message_p
)
{
{
LOG_A
(
ENB_SS_SYS_TASK
,
"Reporting info sfn:%d
\t
sf:%d.
\n
"
,
tinfo
->
sfn
,
tinfo
->
sf
);
LOG_A
(
ENB_SS_SYS_TASK
,
"Reporting info hsfn:%d sfn:%d
\t
sf:%d.
\n
"
,
tinfo
->
hsfn
,
tinfo
->
sfn
,
tinfo
->
sf
);
SS_SET_TIM_INFO
(
message_p
).
hsfn
=
tinfo
->
hsfn
;
SS_SET_TIM_INFO
(
message_p
).
sf
=
tinfo
->
sf
;
SS_SET_TIM_INFO
(
message_p
).
sf
=
tinfo
->
sf
;
SS_SET_TIM_INFO
(
message_p
).
sfn
=
tinfo
->
sfn
;
SS_SET_TIM_INFO
(
message_p
).
sfn
=
tinfo
->
sfn
;
SS_SET_TIM_INFO
(
message_p
).
cell_index
=
cell_index
;
SS_SET_TIM_INFO
(
message_p
).
cell_index
=
cell_index
;
...
@@ -2190,6 +2191,7 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
...
@@ -2190,6 +2191,7 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
case
SystemRequest_Type_Paging
:
case
SystemRequest_Type_Paging
:
LOG_A
(
ENB_SS_SYS_TASK
,
"SystemRequest_Type Paging received
\n
"
);
LOG_A
(
ENB_SS_SYS_TASK
,
"SystemRequest_Type Paging received
\n
"
);
ss_set_timinfo_t
pg_timinfo
;
ss_set_timinfo_t
pg_timinfo
;
pg_timinfo
.
hsfn
=
req
->
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
;
pg_timinfo
.
sfn
=
req
->
Common
.
TimingInfo
.
v
.
SubFrame
.
SFN
.
v
.
Number
;
pg_timinfo
.
sfn
=
req
->
Common
.
TimingInfo
.
v
.
SubFrame
.
SFN
.
v
.
Number
;
pg_timinfo
.
sf
=
req
->
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
;
pg_timinfo
.
sf
=
req
->
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
;
sys_handle_paging_req
(
&
(
req
->
Request
.
v
.
Paging
),
pg_timinfo
);
sys_handle_paging_req
(
&
(
req
->
Request
.
v
.
Paging
),
pg_timinfo
);
...
@@ -2373,7 +2375,8 @@ void *ss_eNB_sys_process_itti_msg(void *notUsed)
...
@@ -2373,7 +2375,8 @@ void *ss_eNB_sys_process_itti_msg(void *notUsed)
{
{
MessageDef
*
received_msg
=
NULL
;
MessageDef
*
received_msg
=
NULL
;
int
result
;
int
result
;
static
ss_set_timinfo_t
tinfo
=
{.
sfn
=
0xFFFF
,
.
sf
=
0xFF
};
static
ss_set_timinfo_t
tinfo
=
{.
hsfn
=
0xFFFF
,
.
sfn
=
0xFFFF
,
.
sf
=
0xFF
};
SS_context
.
hsfn
=
tinfo
.
hsfn
;
SS_context
.
sfn
=
tinfo
.
sfn
;
SS_context
.
sfn
=
tinfo
.
sfn
;
SS_context
.
sf
=
tinfo
.
sf
;
SS_context
.
sf
=
tinfo
.
sf
;
...
@@ -2402,17 +2405,26 @@ void *ss_eNB_sys_process_itti_msg(void *notUsed)
...
@@ -2402,17 +2405,26 @@ void *ss_eNB_sys_process_itti_msg(void *notUsed)
}
}
case
SS_UPD_TIM_INFO
:
case
SS_UPD_TIM_INFO
:
{
{
/*WA: calculate hsfn here */
if
(
tinfo
.
hsfn
==
0xFFFF
){
tinfo
.
hsfn
=
0
;
}
else
if
(
tinfo
.
sfn
==
1023
&&
SS_UPD_TIM_INFO
(
received_msg
).
sfn
==
0
){
tinfo
.
hsfn
++
;
if
(
tinfo
.
hsfn
==
1024
){
tinfo
.
hsfn
=
0
;
}
}
tinfo
.
sf
=
SS_UPD_TIM_INFO
(
received_msg
).
sf
;
tinfo
.
sf
=
SS_UPD_TIM_INFO
(
received_msg
).
sf
;
tinfo
.
sfn
=
SS_UPD_TIM_INFO
(
received_msg
).
sfn
;
tinfo
.
sfn
=
SS_UPD_TIM_INFO
(
received_msg
).
sfn
;
SS_context
.
sfn
=
tinfo
.
sfn
;
SS_context
.
sfn
=
tinfo
.
sfn
;
SS_context
.
sf
=
tinfo
.
sf
;
SS_context
.
sf
=
tinfo
.
sf
;
//
SS_context.hsfn = tinfo.hsfn;
SS_context
.
hsfn
=
tinfo
.
hsfn
;
g_log
->
sfn
=
tinfo
.
sfn
;
g_log
->
sfn
=
tinfo
.
sfn
;
g_log
->
sf
=
(
uint32_t
)
tinfo
.
sf
;
g_log
->
sf
=
(
uint32_t
)
tinfo
.
sf
;
if
(
g_log
->
sfn
%
64
==
0
&&
g_log
->
sf
==
0
)
{
if
(
g_log
->
sfn
%
64
==
0
&&
g_log
->
sf
==
0
)
{
LOG_I
(
ENB_SS_SYS_TASK
,
"[SYS] received SS_UPD_TIM_INFO
SFN: %d SF: %d
\n
"
,
tinfo
.
sfn
,
tinfo
.
sf
);
LOG_I
(
ENB_SS_SYS_TASK
,
"[SYS] received SS_UPD_TIM_INFO
HSFN:%d SFN: %d SF: %d
\n
"
,
tinfo
.
hsfn
,
tinfo
.
sfn
,
tinfo
.
sf
);
}
}
}
}
break
;
break
;
...
...
openair3/SS/ss_eNB_sysind_task.c
View file @
b972891e
...
@@ -96,7 +96,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind,int cell_index)
...
@@ -96,7 +96,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind,int cell_index)
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
p_ind
->
sf
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Subframe
.
v
.
Number
=
p_ind
->
sf
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
0
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
HSFN
.
v
.
Number
=
SS_context
.
hsfn
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
d
=
SlotTimingInfo_Type_Any
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
v
.
Any
=
true
;
ind
.
Common
.
TimingInfo
.
v
.
SubFrame
.
Slot
.
v
.
Any
=
true
;
...
...
openair3/SS/ss_eNB_vtp_task.c
View file @
b972891e
...
@@ -88,15 +88,14 @@ void ss_vtp_send_tinfo(
...
@@ -88,15 +88,14 @@ void ss_vtp_send_tinfo(
size_t
msgSize
=
size
;
size_t
msgSize
=
size
;
memset
(
&
virtualTime
,
0
,
sizeof
(
virtualTime
));
memset
(
&
virtualTime
,
0
,
sizeof
(
virtualTime
));
virtualTime
.
Enable
=
true
;
virtualTime
.
Enable
=
true
;
virtualTime
.
TimingInfo
.
SFN
.
d
=
true
;
virtualTime
.
TimingInfo
.
SFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
virtualTime
.
TimingInfo
.
SFN
.
v
.
Number
=
tinfo
->
sfn
;
virtualTime
.
TimingInfo
.
SFN
.
v
.
Number
=
tinfo
->
sfn
;
virtualTime
.
TimingInfo
.
Subframe
.
d
=
true
;
virtualTime
.
TimingInfo
.
Subframe
.
d
=
SubFrameInfo_Type_Number
;
virtualTime
.
TimingInfo
.
Subframe
.
v
.
Number
=
tinfo
->
sf
;
virtualTime
.
TimingInfo
.
Subframe
.
v
.
Number
=
tinfo
->
sf
;
/** TODO: Always filling HSFN as 0, need to check this */
virtualTime
.
TimingInfo
.
HSFN
.
d
=
SystemFrameNumberInfo_Type_Number
;
virtualTime
.
TimingInfo
.
HSFN
.
d
=
false
;
virtualTime
.
TimingInfo
.
HSFN
.
v
.
Number
=
tinfo
->
hsfn
;
virtualTime
.
TimingInfo
.
HSFN
.
v
.
Number
=
0
;
/** TODO: Always marking as first slot, need to check this */
/** TODO: Always marking as first slot, need to check this */
virtualTime
.
TimingInfo
.
Slot
.
d
=
SlotTimingInfo_Type_FirstSlot
;
virtualTime
.
TimingInfo
.
Slot
.
d
=
SlotTimingInfo_Type_FirstSlot
;
...
@@ -327,6 +326,7 @@ void *ss_eNB_vtp_process_itti_msg(void *notUsed)
...
@@ -327,6 +326,7 @@ void *ss_eNB_vtp_process_itti_msg(void *notUsed)
case
SS_UPD_TIM_INFO
:
case
SS_UPD_TIM_INFO
:
{
{
ss_set_timinfo_t
tinfo
;
ss_set_timinfo_t
tinfo
;
tinfo
.
hsfn
=
SS_context
.
hsfn
;
//it is supposed that SS_UPD_TIM_INFO processed by eNB_sys task firstly
tinfo
.
sf
=
SS_UPD_TIM_INFO
(
received_msg
).
sf
;
tinfo
.
sf
=
SS_UPD_TIM_INFO
(
received_msg
).
sf
;
tinfo
.
sfn
=
SS_UPD_TIM_INFO
(
received_msg
).
sfn
;
tinfo
.
sfn
=
SS_UPD_TIM_INFO
(
received_msg
).
sfn
;
if
(
SS_UPD_TIM_INFO
(
received_msg
).
physCellId
)
{
if
(
SS_UPD_TIM_INFO
(
received_msg
).
physCellId
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment