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
e3f15a16
Commit
e3f15a16
authored
Jan 10, 2023
by
Siddharth Rana
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '3GPP_TTCN_System_Simulator' into 6126_changes
parents
1b0db4e4
54c9059e
Changes
21
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
718 additions
and
433 deletions
+718
-433
openair2/COMMON/rrc_messages_types.h
openair2/COMMON/rrc_messages_types.h
+4
-1
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+3
-0
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+3
-3
openair2/LAYER2/MAC/eNB_scheduler_bch.c
openair2/LAYER2/MAC/eNB_scheduler_bch.c
+4
-4
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+4
-4
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+4
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+2
-2
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+37
-26
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+26
-13
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+3
-0
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+416
-238
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+68
-2
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+1
-1
openair3/SS/ss_eNB_drb_task.c
openair3/SS/ss_eNB_drb_task.c
+27
-27
openair3/SS/ss_eNB_srb_task.c
openair3/SS/ss_eNB_srb_task.c
+56
-56
openair3/SS/ss_eNB_sys_task.c
openair3/SS/ss_eNB_sys_task.c
+18
-1
openair3/SS/ss_gNB_sys_task.c
openair3/SS/ss_gNB_sys_task.c
+37
-46
No files found.
openair2/COMMON/rrc_messages_types.h
View file @
e3f15a16
...
@@ -336,7 +336,7 @@ typedef struct InterFreqCarrierFreqInfo_s {
...
@@ -336,7 +336,7 @@ typedef struct InterFreqCarrierFreqInfo_s {
bool
presenceAntennaPort1
;
bool
presenceAntennaPort1
;
bool
cellReselectionPriority_Present
;
bool
cellReselectionPriority_Present
;
long
*
cellReselectionPriority
;
/* OPTIONAL */
long
*
cellReselectionPriority
;
/* OPTIONAL */
LTE_NeighCellConfig_t
neighCellConfig
;
uint8_t
neighCellConfig
;
bool
q_OffsetFreqPresent
;
bool
q_OffsetFreqPresent
;
e_LTE_Q_OffsetRange
*
q_OffsetFreq
;
/* OPTIONAL */
e_LTE_Q_OffsetRange
*
q_OffsetFreq
;
/* OPTIONAL */
bool
interFreqNeighCellList_Present
;
bool
interFreqNeighCellList_Present
;
...
@@ -477,6 +477,9 @@ typedef struct RrcConfigurationReq_s {
...
@@ -477,6 +477,9 @@ typedef struct RrcConfigurationReq_s {
long
cellReselectionPriority
[
MAX_NUM_CCs
];
long
cellReselectionPriority
[
MAX_NUM_CCs
];
long
sib3_q_RxLevMin
[
MAX_NUM_CCs
];
long
sib3_q_RxLevMin
[
MAX_NUM_CCs
];
long
t_ReselectionEUTRA
[
MAX_NUM_CCs
];
long
t_ReselectionEUTRA
[
MAX_NUM_CCs
];
uint8_t
neighCellConfig
[
MAX_NUM_CCs
];
long
*
sib3_q_QualMin
[
MAX_NUM_CCs
];
long
*
sib3_threshServingLowQ
[
MAX_NUM_CCs
];
//SIB4
//SIB4
bool
sib4_Present
[
MAX_NUM_CCs
];
bool
sib4_Present
[
MAX_NUM_CCs
];
...
...
openair2/GNB_APP/gnb_config.c
View file @
e3f15a16
...
@@ -1518,6 +1518,9 @@ int RCconfig_nr_parallel(void) {
...
@@ -1518,6 +1518,9 @@ int RCconfig_nr_parallel(void) {
if
(
parallel_config
==
NULL
)
set_parallel_conf
(
parallel_conf
);
if
(
parallel_config
==
NULL
)
set_parallel_conf
(
parallel_conf
);
if
(
worker_config
==
NULL
)
set_worker_conf
(
worker_conf
);
if
(
worker_config
==
NULL
)
set_worker_conf
(
worker_conf
);
RRM_FREE
(
worker_conf
);
RRM_FREE
(
parallel_conf
);
return
0
;
return
0
;
}
}
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
e3f15a16
...
@@ -908,7 +908,7 @@ generate_Msg4(module_id_t module_idP,
...
@@ -908,7 +908,7 @@ generate_Msg4(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_idP
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
ra
->
msg4_rrc_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_idP
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
ra
->
msg4_rrc_sdu_length
);
}
// Msg4 frame/subframe
}
// Msg4 frame/subframe
}
// rach_resource_type > 0
}
// rach_resource_type > 0
else
{
else
{
...
@@ -1112,7 +1112,7 @@ generate_Msg4(module_id_t module_idP,
...
@@ -1112,7 +1112,7 @@ generate_Msg4(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_idP
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
rrc_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_idP
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
rrc_sdu_length
);
if
(
RC
.
mac
[
module_idP
]
->
scheduler_mode
==
SCHED_MODE_FAIR_RR
)
{
if
(
RC
.
mac
[
module_idP
]
->
scheduler_mode
==
SCHED_MODE_FAIR_RR
)
{
set_dl_ue_select_msg4
(
CC_idP
,
4
,
UE_id
,
ra
->
rnti
);
set_dl_ue_select_msg4
(
CC_idP
,
4
,
UE_id
,
ra
->
rnti
);
}
}
...
@@ -1733,7 +1733,7 @@ generate_macCeRrcConnectionSetup(module_id_t module_idP,
...
@@ -1733,7 +1733,7 @@ generate_macCeRrcConnectionSetup(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_idP
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
rrc_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_idP
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
rrc_sdu_length
);
}
}
}
}
else
else
...
...
openair2/LAYER2/MAC/eNB_scheduler_bch.c
View file @
e3f15a16
...
@@ -287,7 +287,7 @@ schedule_SIB1_MBMS(module_id_t module_idP,
...
@@ -287,7 +287,7 @@ schedule_SIB1_MBMS(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_BR_pdu
[
0
].
payload
[
0
],
(
int
)
bcch_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_BR_pdu
[
0
].
payload
[
0
],
(
int
)
bcch_sdu_length
);
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
LOG_D
(
MAC
,
LOG_D
(
MAC
,
...
@@ -519,7 +519,7 @@ schedule_SIB1_BR(module_id_t module_idP,
...
@@ -519,7 +519,7 @@ schedule_SIB1_BR(module_id_t module_idP,
mac_pkt
.
rnti
=
0xffff
;
mac_pkt
.
rnti
=
0xffff
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_BR_pdu
[
0
].
payload
[
0
],
(
int
)
bcch_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_BR_pdu
[
0
].
payload
[
0
],
(
int
)
bcch_sdu_length
);
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
LOG_D
(
MAC
,
LOG_D
(
MAC
,
...
@@ -711,7 +711,7 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP,
...
@@ -711,7 +711,7 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP,
mac_pkt
.
rnti
=
0xffff
;
mac_pkt
.
rnti
=
0xffff
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_BR_pdu
[
i
+
1
].
payload
[
0
],
(
int
)
bcch_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_BR_pdu
[
i
+
1
].
payload
[
0
],
(
int
)
bcch_sdu_length
);
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
LOG_D
(
MAC
,
"[eNB] Frame %d : Scheduling BCCH-BR %d->DLSCH (TDD) for CC_id %d SI-BR %d bytes
\n
"
,
LOG_D
(
MAC
,
"[eNB] Frame %d : Scheduling BCCH-BR %d->DLSCH (TDD) for CC_id %d SI-BR %d bytes
\n
"
,
...
@@ -1245,7 +1245,7 @@ schedule_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP)
...
@@ -1245,7 +1245,7 @@ schedule_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP)
mac_pkt
.
rnti
=
0xffff
;
mac_pkt
.
rnti
=
0xffff
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_pdu
.
payload
[
0
],
(
int
)
bcch_sdu_length
);
LOG_MAC_P
(
OAILOG_
TRACE
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
cc
->
BCCH_pdu
.
payload
[
0
],
(
int
)
bcch_sdu_length
);
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
if
(
cc
->
tdd_Config
!=
NULL
)
{
//TDD
LOG_D
(
MAC
,
LOG_D
(
MAC
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
e3f15a16
...
@@ -1029,7 +1029,7 @@ schedule_ue_spec(module_id_t module_idP,
...
@@ -1029,7 +1029,7 @@ schedule_ue_spec(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
dlsch_pdu
->
payload
[
0
],
(
int
)
TBS
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
dlsch_pdu
->
payload
[
0
],
(
int
)
TBS
);
trace_pdu
(
DIRECTION_DOWNLINK
,
trace_pdu
(
DIRECTION_DOWNLINK
,
(
uint8_t
*
)
dlsch_pdu
->
payload
[
0
],
(
uint8_t
*
)
dlsch_pdu
->
payload
[
0
],
TBS
,
TBS
,
...
@@ -1702,7 +1702,7 @@ schedule_ue_spec_br(module_id_t module_idP,
...
@@ -1702,7 +1702,7 @@ schedule_ue_spec_br(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
(
int
)
TBS
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
mac
->
frame
,
mac
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
(
int
)
TBS
);
trace_pdu
(
DIRECTION_DOWNLINK
,
trace_pdu
(
DIRECTION_DOWNLINK
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
TBS
,
TBS
,
...
@@ -1923,7 +1923,7 @@ schedule_ue_spec_br(module_id_t module_idP,
...
@@ -1923,7 +1923,7 @@ schedule_ue_spec_br(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
frameP
,
subframeP
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_id
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
TX_req
->
pdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
frameP
,
subframeP
,
mac_pkt
,
(
uint8_t
*
)
mac
->
UE_info
.
DLSCH_pdu
[
CC_id
][
0
][(
unsigned
char
)
UE_id
].
payload
[
0
],
(
int
)
TX_req
->
pdu_length
);
}
// end else if ((subframeP == 7) && (round_DL < 8))
}
// end else if ((subframeP == 7) && (round_DL < 8))
}
// end loop on UE_id
}
// end loop on UE_id
}
}
...
@@ -2466,7 +2466,7 @@ schedule_PCH(module_id_t module_idP,
...
@@ -2466,7 +2466,7 @@ schedule_PCH(module_id_t module_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_PCCH_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
eNB
->
common_channels
[
CC_id
].
PCCH_pdu
.
payload
[
0
],
(
int
)
pcch_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_PCCH_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
&
eNB
->
common_channels
[
CC_id
].
PCCH_pdu
.
payload
[
0
],
(
int
)
pcch_sdu_length
);
trace_pdu
(
DIRECTION_DOWNLINK
,
trace_pdu
(
DIRECTION_DOWNLINK
,
&
eNB
->
common_channels
[
CC_id
].
PCCH_pdu
.
payload
[
0
],
&
eNB
->
common_channels
[
CC_id
].
PCCH_pdu
.
payload
[
0
],
pcch_sdu_length
,
pcch_sdu_length
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
View file @
e3f15a16
...
@@ -1943,7 +1943,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -1943,7 +1943,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
mac_pkt
.
rnti
=
UE_RNTI
(
module_idP
,
UE_id
);
mac_pkt
.
rnti
=
UE_RNTI
(
module_idP
,
UE_id
);
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
(
int
)
TBS
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_DL_PDU"
,
eNB
->
frame
,
eNB
->
subframe
,
mac_pkt
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
(
int
)
TBS
);
trace_pdu
(
DIRECTION_DOWNLINK
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
trace_pdu
(
DIRECTION_DOWNLINK
,
(
uint8_t
*
)
UE_info
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
TBS
,
module_idP
,
WS_C_RNTI
,
UE_RNTI
(
module_idP
,
UE_id
),
TBS
,
module_idP
,
WS_C_RNTI
,
UE_RNTI
(
module_idP
,
UE_id
),
eNB
->
frame
,
eNB
->
subframe
,
0
,
0
);
eNB
->
frame
,
eNB
->
subframe
,
0
,
0
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
e3f15a16
...
@@ -148,7 +148,7 @@ rx_sdu(const module_id_t enb_mod_idP,
...
@@ -148,7 +148,7 @@ rx_sdu(const module_id_t enb_mod_idP,
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"LTE_MAC_UL_PDU"
,
frameP
,
subframeP
,
mac_pkt
,
(
uint8_t
*
)
sduP
,
(
int
)
sdu_lenP
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"LTE_MAC_UL_PDU"
,
frameP
,
subframeP
,
mac_pkt
,
(
uint8_t
*
)
sduP
,
(
int
)
sdu_lenP
);
if
(
UE_id
!=
-
1
)
{
if
(
UE_id
!=
-
1
)
{
UE_scheduling_control
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
UE_scheduling_control
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
e3f15a16
...
@@ -1219,7 +1219,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1219,7 +1219,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
long
BWPStart
=
0
;
long
BWPStart
=
0
;
long
BWPSize
=
0
;
long
BWPSize
=
0
;
NR_Type0_PDCCH_CSS_config_t
*
type0_PDCCH_CSS_config
=
NULL
;
NR_Type0_PDCCH_CSS_config_t
*
type0_PDCCH_CSS_config
=
NULL
;
LOG_D
(
NR_MAC
,
"controlResourceSetId:%
d locationAndBandwidth:%d genericParameters.locationAndBandwidth:%
d
\n
"
,
LOG_D
(
NR_MAC
,
"controlResourceSetId:%
ld locationAndBandwidth:%ld genericParameters.locationAndBandwidth:%l
d
\n
"
,
*
ss
->
controlResourceSetId
,
*
ss
->
controlResourceSetId
,
genericParameters
->
locationAndBandwidth
,
genericParameters
->
locationAndBandwidth
,
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
);
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
locationAndBandwidth
);
...
@@ -1488,7 +1488,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1488,7 +1488,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
mac_pkt
.
rnti
=
ra
->
RA_rnti
;
mac_pkt
.
rnti
=
ra
->
RA_rnti
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_DL_RAR_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
&
tx_req
->
TLVs
[
0
].
value
.
direct
[
0
],
(
int
)
tx_req
->
TLVs
[
0
].
length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_DL_RAR_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
&
tx_req
->
TLVs
[
0
].
value
.
direct
[
0
],
(
int
)
tx_req
->
TLVs
[
0
].
length
);
tx_req
->
PDU_length
=
pdsch_pdu_rel15
->
TBSize
[
0
];
tx_req
->
PDU_length
=
pdsch_pdu_rel15
->
TBSize
[
0
];
tx_req
->
PDU_index
=
pduindex
;
tx_req
->
PDU_index
=
pduindex
;
...
@@ -1714,7 +1714,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1714,7 +1714,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
*
N_DMRS_SLOT
,
0
,
tb_scaling
,
1
)
>>
3
;
rbSize
,
nrOfSymbols
,
N_PRB_DMRS
*
N_DMRS_SLOT
,
0
,
tb_scaling
,
1
)
>>
3
;
}
while
(
harq
->
tb_size
<
ra
->
mac_pdu_length
&&
mcsIndex
<=
28
);
}
while
(
harq
->
tb_size
<
ra
->
mac_pdu_length
&&
mcsIndex
<=
28
);
LOG_D
(
NR_MAC
,
"rbSize:%d rbStart:%d BWPSize:%
d BWPStart:%
d startSymbolIndex:%d nrOfSymbols:%d
\n
"
,
LOG_D
(
NR_MAC
,
"rbSize:%d rbStart:%d BWPSize:%
ld BWPStart:%l
d startSymbolIndex:%d nrOfSymbols:%d
\n
"
,
rbSize
,
rbSize
,
rbStart
,
rbStart
,
BWPSize
,
BWPSize
,
...
@@ -1896,7 +1896,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1896,7 +1896,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
mac_pkt
.
rnti
=
ra
->
rnti
;
mac_pkt
.
rnti
=
ra
->
rnti
;
mac_pkt
.
harq_pid
=
current_harq_pid
;
mac_pkt
.
harq_pid
=
current_harq_pid
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_DL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
harq
->
tb
,
(
int
)
harq
->
tb_size
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_DL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
harq
->
tb
,
(
int
)
harq
->
tb_size
);
// DL TX request
// DL TX request
nfapi_nr_pdu_t
*
tx_req
=
&
nr_mac
->
TX_req
[
CC_id
].
pdu_list
[
nr_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
];
nfapi_nr_pdu_t
*
tx_req
=
&
nr_mac
->
TX_req
[
CC_id
].
pdu_list
[
nr_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
];
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
e3f15a16
...
@@ -700,7 +700,7 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
...
@@ -700,7 +700,7 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
mac_pkt
.
rnti
=
SI_RNTI
;
mac_pkt
.
rnti
=
SI_RNTI
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
harq_pid
=
0
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_DL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
sib1_payload
,
(
int
)
sib1_sdu_length
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_DL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
sib1_payload
,
(
int
)
sib1_sdu_length
);
}
}
}
}
}
}
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
e3f15a16
...
@@ -1330,7 +1330,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -1330,7 +1330,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
mac_pkt
.
rnti
=
rnti
;
mac_pkt
.
rnti
=
rnti
;
mac_pkt
.
harq_pid
=
current_harq_pid
;
mac_pkt
.
harq_pid
=
current_harq_pid
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_RETRANSMISSION_DL_PDU"
,
frame
,
slot
,
mac_pkt
,
(
uint8_t
*
)
harq
->
tb
,
(
int
)
TBS
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_RETRANSMISSION_DL_PDU"
,
frame
,
slot
,
mac_pkt
,
(
uint8_t
*
)
harq
->
tb
,
(
int
)
TBS
);
}
else
{
/* initial transmission */
}
else
{
/* initial transmission */
...
@@ -1475,7 +1475,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -1475,7 +1475,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
mac_pkt
.
rnti
=
rnti
;
mac_pkt
.
rnti
=
rnti
;
mac_pkt
.
harq_pid
=
current_harq_pid
;
mac_pkt
.
harq_pid
=
current_harq_pid
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_DL_PDU"
,
frame
,
slot
,
mac_pkt
,
(
uint8_t
*
)
harq
->
tb
,
(
int
)
TBS
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_DL_PDU"
,
frame
,
slot
,
mac_pkt
,
(
uint8_t
*
)
harq
->
tb
,
(
int
)
TBS
);
}
}
const
int
ntx_req
=
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
;
const
int
ntx_req
=
gNB_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
e3f15a16
...
@@ -688,7 +688,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
...
@@ -688,7 +688,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
mac_pkt
.
rnti
=
current_rnti
;
mac_pkt
.
rnti
=
current_rnti
;
mac_pkt
.
harq_pid
=
harq_pid
;
mac_pkt
.
harq_pid
=
harq_pid
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_UL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
sduP
,
(
int
)
sdu_lenP
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_UL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
sduP
,
(
int
)
sdu_lenP
);
}
}
UE_info
->
mac_stats
[
UE_id
].
ulsch_total_bytes_rx
+=
sdu_lenP
;
UE_info
->
mac_stats
[
UE_id
].
ulsch_total_bytes_rx
+=
sdu_lenP
;
...
@@ -787,7 +787,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
...
@@ -787,7 +787,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
mac_pkt
.
rnti
=
rntiP
;
mac_pkt
.
rnti
=
rntiP
;
mac_pkt
.
harq_pid
=
-
1
;
mac_pkt
.
harq_pid
=
-
1
;
mac_pkt
.
preamble
=
-
1
;
/* TODO */
mac_pkt
.
preamble
=
-
1
;
/* TODO */
LOG_MAC_P
(
OAILOG_
INFO
,
"MAC_UL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
sduP
,
(
int
)
sdu_lenP
);
LOG_MAC_P
(
OAILOG_
DEBUG
,
"MAC_UL_PDU"
,
frameP
,
slotP
,
mac_pkt
,
(
uint8_t
*
)
sduP
,
(
int
)
sdu_lenP
);
/* we don't know this UE (yet). Check whether there is a ongoing RA (Msg 3)
/* we don't know this UE (yet). Check whether there is a ongoing RA (Msg 3)
* and check the corresponding UE's RNTI match, in which case we activate
* and check the corresponding UE's RNTI match, in which case we activate
...
...
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
View file @
e3f15a16
...
@@ -268,7 +268,10 @@ static void do_pdcp_data_ind(
...
@@ -268,7 +268,10 @@ static void do_pdcp_data_ind(
if
(
rb_id
<
1
||
rb_id
>
2
)
if
(
rb_id
<
1
||
rb_id
>
2
)
rb
=
NULL
;
rb
=
NULL
;
else
{
else
{
rb
=
ue
->
srb
[
rb_id
-
1
];
if
(
ue
!=
NULL
&&
ue
->
srb
[
rb_id
-
1
]
!=
NULL
)
{
rb
=
ue
->
srb
[
rb_id
-
1
];
}
(
rb_id
==
1
)
?
(
pdcp_pkt
.
bearerType
=
4
)
:
(
pdcp_pkt
.
bearerType
=
1
);
(
rb_id
==
1
)
?
(
pdcp_pkt
.
bearerType
=
4
)
:
(
pdcp_pkt
.
bearerType
=
1
);
(
rb_id
==
1
)
?
(
pdcp_pkt
.
bearerId
=
0
)
:
(
pdcp_pkt
.
bearerId
=
1
);
(
rb_id
==
1
)
?
(
pdcp_pkt
.
bearerId
=
0
)
:
(
pdcp_pkt
.
bearerId
=
1
);
pdcp_pkt
.
plane
=
1
;
pdcp_pkt
.
plane
=
1
;
...
@@ -277,7 +280,10 @@ static void do_pdcp_data_ind(
...
@@ -277,7 +280,10 @@ static void do_pdcp_data_ind(
if
(
rb_id
<
1
||
rb_id
>
5
)
if
(
rb_id
<
1
||
rb_id
>
5
)
rb
=
NULL
;
rb
=
NULL
;
else
{
else
{
rb
=
ue
->
drb
[
rb_id
-
1
];
if
(
ue
!=
NULL
)
{
rb
=
ue
->
drb
[
rb_id
-
1
];
}
pdcp_pkt
.
bearerType
=
8
;
pdcp_pkt
.
bearerType
=
8
;
pdcp_pkt
.
bearerId
=
rb_id
-
1
;
pdcp_pkt
.
bearerId
=
rb_id
-
1
;
pdcp_pkt
.
plane
=
2
;
pdcp_pkt
.
plane
=
2
;
...
@@ -1328,8 +1334,8 @@ static boolean_t pdcp_data_req_srb(
...
@@ -1328,8 +1334,8 @@ static boolean_t pdcp_data_req_srb(
unsigned
char
*
const
sdu_buffer
)
unsigned
char
*
const
sdu_buffer
)
{
{
LOG_D
(
PDCP
,
"%s() called, size %d
\n
"
,
__func__
,
sdu_buffer_size
);
LOG_D
(
PDCP
,
"%s() called, size %d
\n
"
,
__func__
,
sdu_buffer_size
);
nr_pdcp_ue_t
*
ue
;
nr_pdcp_ue_t
*
ue
=
NULL
;
nr_pdcp_entity_t
*
rb
;
nr_pdcp_entity_t
*
rb
=
NULL
;
int
rnti
=
ctxt_pP
->
rnti
;
int
rnti
=
ctxt_pP
->
rnti
;
if
(
ctxt_pP
->
module_id
!=
0
||
if
(
ctxt_pP
->
module_id
!=
0
||
...
@@ -1344,24 +1350,24 @@ static boolean_t pdcp_data_req_srb(
...
@@ -1344,24 +1350,24 @@ static boolean_t pdcp_data_req_srb(
/** TRACE PDCP PDU */
/** TRACE PDCP PDU */
if
(
NULL
!=
ue
&&
NULL
!=
rb
)
{
if
(
NULL
!=
ue
&&
NULL
!=
rb
)
{
nr_pdcp_pkt_info_t
pdcp_pkt
;
nr_pdcp_pkt_info_t
pdcp_pkt
;
pdcp_pkt
.
direction
=
1
;
//PDCP_NR_DIRECTION_DOWNLINK
memset
(
&
pdcp_pkt
,
0
,
sizeof
(
pdcp_pkt
));
pdcp_pkt
.
ueid
=
ue
->
rnti
;
pdcp_pkt
.
direction
=
1
;
//PDCP_NR_DIRECTION_DOWNLINK
pdcp_pkt
.
bearerType
=
8
;
//TODO
pdcp_pkt
.
ueid
=
ue
->
rnti
;
pdcp_pkt
.
bearerId
=
rb_id
-
1
;
pdcp_pkt
.
bearerType
=
8
;
//TODO
pdcp_pkt
.
plane
=
(
rb_id
==
1
)
?
4
:
1
;
pdcp_pkt
.
bearerId
=
rb_id
-
1
;
pdcp_pkt
.
plane
=
(
rb_id
==
1
)
?
4
:
1
;
pdcp_pkt
.
seqnum_length
=
rb
->
sn_size
;
pdcp_pkt
.
maci_present
=
(
rb
->
has_integrity
)
?
1
:
0
;
pdcp_pkt
.
seqnum_length
=
rb
->
sn_size
;
pdcp_pkt
.
ciphering_disabled
=
(
rb
->
has_ciphering
)
?
1
:
0
;
pdcp_pkt
.
maci_present
=
(
rb
->
has_integrity
)
?
1
:
0
;
pdcp_pkt
.
sdap_header
=
(
rb
->
has_sdapULheader
)
?
1
:
0
;
pdcp_pkt
.
ciphering_disabled
=
(
rb
->
has_ciphering
)
?
1
:
0
;
pdcp_pkt
.
is_retx
=
0
;
pdcp_pkt
.
sdap_header
=
(
rb
->
has_sdapULheader
)
?
1
:
0
;
pdcp_pkt
.
pdu_length
=
sdu_buffer_size
;
pdcp_pkt
.
is_retx
=
0
;
pdcp_pkt
.
pdu_length
=
sdu_buffer_size
;
LOG_PDCP_P
(
OAILOG_INFO
,
"DL_PDCP_PDU"
,
-
1
,
-
1
,
(
pdcp_pkt
),
(
unsigned
char
*
)
sdu_buffer
,
sdu_buffer_size
);
LOG_PDCP_P
(
OAILOG_INFO
,
"DL_PDCP_PDU"
,
-
1
,
-
1
,
(
pdcp_pkt
),
(
unsigned
char
*
)
sdu_buffer
,
sdu_buffer_size
);
}
}
nr_pdcp_manager_lock
(
nr_pdcp_ue_manager
);
nr_pdcp_manager_lock
(
nr_pdcp_ue_manager
);
ue
=
nr_pdcp_manager_get_ue
(
nr_pdcp_ue_manager
,
rnti
);
ue
=
nr_pdcp_manager_get_ue
(
nr_pdcp_ue_manager
,
rnti
);
...
@@ -1428,20 +1434,25 @@ static boolean_t pdcp_data_req_drb(
...
@@ -1428,20 +1434,25 @@ static boolean_t pdcp_data_req_drb(
/** TRACE PDCP PDU */
/** TRACE PDCP PDU */
nr_pdcp_pkt_info_t
pdcp_pkt
;
nr_pdcp_pkt_info_t
pdcp_pkt
;
pdcp_pkt
.
direction
=
1
;
//PDCP_NR_DIRECTION_DOWNLINK
pdcp_pkt
.
direction
=
1
;
//PDCP_NR_DIRECTION_DOWNLINK
pdcp_pkt
.
ueid
=
ue
->
rnti
;
if
(
ue
!=
NULL
)
{
pdcp_pkt
.
ueid
=
ue
->
rnti
;
}
pdcp_pkt
.
bearerType
=
8
;
//TODO
pdcp_pkt
.
bearerType
=
8
;
//TODO
pdcp_pkt
.
bearerId
=
rb_id
-
1
;
pdcp_pkt
.
bearerId
=
rb_id
-
1
;
pdcp_pkt
.
plane
=
2
;
pdcp_pkt
.
plane
=
2
;
pdcp_pkt
.
seqnum_length
=
rb
->
sn_size
;
if
(
rb
!=
NULL
)
pdcp_pkt
.
maci_present
=
(
rb
->
has_integrity
)
?
1
:
0
;
{
pdcp_pkt
.
ciphering_disabled
=
(
rb
->
has_ciphering
)
?
1
:
0
;
pdcp_pkt
.
seqnum_length
=
rb
->
sn_size
;
pdcp_pkt
.
sdap_header
=
(
rb
->
has_sdapULheader
)
?
1
:
0
;
pdcp_pkt
.
maci_present
=
(
rb
->
has_integrity
)
?
1
:
0
;
pdcp_pkt
.
ciphering_disabled
=
(
rb
->
has_ciphering
)
?
1
:
0
;
pdcp_pkt
.
sdap_header
=
(
rb
->
has_sdapULheader
)
?
1
:
0
;
}
pdcp_pkt
.
is_retx
=
0
;
pdcp_pkt
.
is_retx
=
0
;
pdcp_pkt
.
pdu_length
=
sdu_buffer_size
;
pdcp_pkt
.
pdu_length
=
sdu_buffer_size
;
LOG_PDCP_P
(
OAILOG_INFO
,
"DL_PDCP_PDU"
,
-
1
,
-
1
,
(
pdcp_pkt
),
(
unsigned
char
*
)
sdu_buffer
,
sdu_buffer_size
);
LOG_PDCP_P
(
OAILOG_INFO
,
"DL_PDCP_PDU"
,
-
1
,
-
1
,
(
pdcp_pkt
),
(
unsigned
char
*
)
sdu_buffer
,
sdu_buffer_size
);
rb
->
recv_sdu
(
rb
,
(
char
*
)
sdu_buffer
,
sdu_buffer_size
,
muiP
);
rb
->
recv_sdu
(
rb
,
(
char
*
)
sdu_buffer
,
sdu_buffer_size
,
muiP
);
nr_pdcp_manager_unlock
(
nr_pdcp_ue_manager
);
nr_pdcp_manager_unlock
(
nr_pdcp_ue_manager
);
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
e3f15a16
...
@@ -1081,7 +1081,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
...
@@ -1081,7 +1081,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
}
else
{
}
else
{
(
*
sib1
)
->
systemInfoValueTag
=
0
;
(
*
sib1
)
->
systemInfoValueTag
=
0
;
}
}
LOG_A
(
RRC
,
"Updating systemInfoValueTag Value: %d
\n
"
,(
*
sib1
)
->
systemInfoValueTag
);
LOG_A
(
RRC
,
"Updating systemInfoValueTag Value: %
l
d
\n
"
,(
*
sib1
)
->
systemInfoValueTag
);
(
*
sib1
)
->
nonCriticalExtension
=
calloc
(
1
,
sizeof
(
LTE_SystemInformationBlockType1_v890_IEs_t
));
(
*
sib1
)
->
nonCriticalExtension
=
calloc
(
1
,
sizeof
(
LTE_SystemInformationBlockType1_v890_IEs_t
));
LTE_SystemInformationBlockType1_v890_IEs_t
*
sib1_890
=
(
*
sib1
)
->
nonCriticalExtension
;
LTE_SystemInformationBlockType1_v890_IEs_t
*
sib1_890
=
(
*
sib1
)
->
nonCriticalExtension
;
sib1_890
->
lateNonCriticalExtension
=
NULL
;
sib1_890
->
lateNonCriticalExtension
=
NULL
;
...
@@ -1945,9 +1945,10 @@ uint8_t do_SIB23(uint8_t Mod_id,
...
@@ -1945,9 +1945,10 @@ uint8_t do_SIB23(uint8_t Mod_id,
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
allowedMeasBandwidth
=
CALLOC
(
1
,
sizeof
(
*
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
allowedMeasBandwidth
));
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
allowedMeasBandwidth
=
CALLOC
(
1
,
sizeof
(
*
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
allowedMeasBandwidth
));
*
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
allowedMeasBandwidth
=
LTE_AllowedMeasBandwidth_mbw6
;
*
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
allowedMeasBandwidth
=
LTE_AllowedMeasBandwidth_mbw6
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
presenceAntennaPort1
=
0
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
presenceAntennaPort1
=
0
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
buf
=
CALLOC
(
8
,
1
);
LOG_A
(
RRC
,
"[eNB][SIB3] neighCellConfig:0x%x
\n
"
,
configuration
->
neighCellConfig
[
CC_id
]);
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
buf
=
CALLOC
(
1
,
sizeof
(
uint8_t
));
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
size
=
1
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
size
=
1
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
buf
[
0
]
=
1
<<
6
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
buf
[
0
]
=
configuration
->
neighCellConfig
[
CC_id
]
<<
6
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
bits_unused
=
6
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
neighCellConfig
.
bits_unused
=
6
;
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
{
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
{
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA
=
configuration
->
t_ReselectionEUTRA
[
CC_id
];
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA
=
configuration
->
t_ReselectionEUTRA
[
CC_id
];
...
@@ -1955,10 +1956,22 @@ uint8_t do_SIB23(uint8_t Mod_id,
...
@@ -1955,10 +1956,22 @@ uint8_t do_SIB23(uint8_t Mod_id,
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA
=
1
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA
=
1
;
}
}
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA_SF
=
(
struct
LTE_SpeedStateScaleFactors
*
)
NULL
;
(
*
sib3
)
->
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA_SF
=
(
struct
LTE_SpeedStateScaleFactors
*
)
NULL
;
(
*
sib3
)
->
ext1
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformationBlockType3__ext1
));
if
(
configuration
->
sib3_q_QualMin
[
CC_id
]
||
configuration
->
sib3_threshServingLowQ
[
CC_id
]){
(
*
sib3
)
->
ext1
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformationBlockType3__ext1
));
}
/*
(*sib3)->ext1->s_IntraSearch_v920 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext1__s_IntraSearch_v920));
(*sib3)->ext1->s_IntraSearch_v920 = CALLOC(1, sizeof(struct LTE_SystemInformationBlockType3__ext1__s_IntraSearch_v920));
(*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchP_r9 = 31; // FIXME
(*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchP_r9 = 31; // FIXME
(*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchQ_r9 = 4;
(*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchQ_r9 = 4;
*/
if
(
configuration
->
sib3_q_QualMin
[
CC_id
]){
(
*
sib3
)
->
ext1
->
q_QualMin_r9
=
CALLOC
(
1
,
sizeof
(
LTE_Q_QualMin_r9_t
));
*
((
*
sib3
)
->
ext1
->
q_QualMin_r9
)
=
*
(
configuration
->
sib3_q_QualMin
[
CC_id
]);
}
if
(
configuration
->
sib3_threshServingLowQ
[
CC_id
]){
(
*
sib3
)
->
ext1
->
threshServingLowQ_r9
=
CALLOC
(
1
,
sizeof
(
LTE_ReselectionThresholdQ_r9_t
));
*
((
*
sib3
)
->
ext1
->
threshServingLowQ_r9
)
=
*
(
configuration
->
sib3_threshServingLowQ
[
CC_id
]);
}
(
*
sib3
)
->
ext4
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformationBlockType3__ext4
));
(
*
sib3
)
->
ext4
=
CALLOC
(
1
,
sizeof
(
struct
LTE_SystemInformationBlockType3__ext4
));
(
*
sib3
)
->
ext4
->
cellSelectionInfoCE_r13
=
CALLOC
(
1
,
sizeof
(
LTE_CellSelectionInfoCE_r13_t
));
(
*
sib3
)
->
ext4
->
cellSelectionInfoCE_r13
=
CALLOC
(
1
,
sizeof
(
LTE_CellSelectionInfoCE_r13_t
));
(
*
sib3
)
->
ext4
->
cellSelectionInfoCE_r13
->
q_RxLevMinCE_r13
=
-
70
;
(
*
sib3
)
->
ext4
->
cellSelectionInfoCE_r13
->
q_RxLevMinCE_r13
=
-
70
;
...
@@ -2457,20 +2470,20 @@ uint8_t do_SIB5(uint8_t Mod_id,
...
@@ -2457,20 +2470,20 @@ uint8_t do_SIB5(uint8_t Mod_id,
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
cellReselectionPriority_Present
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
cellReselectionPriority_Present
)
{
InterFreqCarrierInfo
->
cellReselectionPriority
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
cellReselectionPriority
;
InterFreqCarrierInfo
->
cellReselectionPriority
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
cellReselectionPriority
;
}
}
// TODO: Need to handle neighCellConfig IE properly
LOG_A
(
RRC
,
"[eNB][SIB5] CC_id:%d neighCellConfig:0x%x
\n
"
,
CC_id
,
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
neighCellConfig
);
InterFreqCarrierInfo
->
neighCellConfig
.
size
=
0
;
//1
;
InterFreqCarrierInfo
->
neighCellConfig
.
buf
=
CALLOC
(
1
,
sizeof
(
uint8_t
))
;
//InterFreqCarrierInfo->neighCellConfig.buf = CALLOC(1,1)
;
InterFreqCarrierInfo
->
neighCellConfig
.
size
=
1
;
InterFreqCarrierInfo
->
neighCellConfig
.
b
its_unused
=
0
;
InterFreqCarrierInfo
->
neighCellConfig
.
b
uf
[
0
]
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
neighCellConfig
<<
6
;
InterFreqCarrierInfo
->
neighCellConfig
.
b
uf
=
NULL
;
//[0] = 0x01<<4
;
InterFreqCarrierInfo
->
neighCellConfig
.
b
its_unused
=
6
;
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_OffsetFreqPresent
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_OffsetFreqPresent
)
{
InterFreqCarrierInfo
->
q_OffsetFreq
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_OffsetFreq
;
InterFreqCarrierInfo
->
q_OffsetFreq
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_OffsetFreq
;
}
}
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqNeighCellList_Present
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqNeighCellList_Present
)
{
InterFreqCarrierInfo
->
interFreqNeighCellList
=
CALLOC
(
1
,
sizeof
(
struct
LTE_InterFreqNeighCellList
));
//
InterFreqCarrierInfo->interFreqNeighCellList = CALLOC(1,sizeof(struct LTE_InterFreqNeighCellList));
InterFreqCarrierInfo
->
interFreqNeighCellList
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqNeighCellList
;
InterFreqCarrierInfo
->
interFreqNeighCellList
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqNeighCellList
;
}
}
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqBlackCellList_Present
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqBlackCellList_Present
)
{
InterFreqCarrierInfo
->
interFreqBlackCellList
=
CALLOC
(
1
,
sizeof
(
struct
LTE_InterFreqBlackCellList
));
//
InterFreqCarrierInfo->interFreqBlackCellList = CALLOC(1,sizeof(struct LTE_InterFreqBlackCellList));
InterFreqCarrierInfo
->
interFreqBlackCellList
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqBlackCellList
;
InterFreqCarrierInfo
->
interFreqBlackCellList
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
interFreqBlackCellList
;
}
}
if
((
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
threshX_Q_r9_Present
)
||
if
((
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
threshX_Q_r9_Present
)
||
...
@@ -2479,7 +2492,7 @@ uint8_t do_SIB5(uint8_t Mod_id,
...
@@ -2479,7 +2492,7 @@ uint8_t do_SIB5(uint8_t Mod_id,
LOG_A
(
RRC
,
"add ext1 for CC_ID %d
\n
"
,
CC_id
);
LOG_A
(
RRC
,
"add ext1 for CC_ID %d
\n
"
,
CC_id
);
}
}
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMin_r9_Present
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMin_r9_Present
)
{
InterFreqCarrierInfo
->
ext1
->
q_QualMin_r9
=
CALLOC
(
1
,
sizeof
(
LTE_Q_QualMin_r9_t
));
//
InterFreqCarrierInfo->ext1->q_QualMin_r9 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t));
InterFreqCarrierInfo
->
ext1
->
q_QualMin_r9
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMin_r9
;
InterFreqCarrierInfo
->
ext1
->
q_QualMin_r9
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMin_r9
;
}
}
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
threshX_Q_r9_Present
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
threshX_Q_r9_Present
)
{
...
@@ -2492,7 +2505,7 @@ uint8_t do_SIB5(uint8_t Mod_id,
...
@@ -2492,7 +2505,7 @@ uint8_t do_SIB5(uint8_t Mod_id,
}
}
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMinWB_r11_Present
)
{
if
(
true
==
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMinWB_r11_Present
)
{
InterFreqCarrierInfo
->
ext2
=
CALLOC
(
1
,
sizeof
(
struct
LTE_InterFreqCarrierFreqInfo__ext2
));
InterFreqCarrierInfo
->
ext2
=
CALLOC
(
1
,
sizeof
(
struct
LTE_InterFreqCarrierFreqInfo__ext2
));
InterFreqCarrierInfo
->
ext2
->
q_QualMinWB_r11
=
CALLOC
(
1
,
sizeof
(
LTE_Q_QualMin_r9_t
));
//
InterFreqCarrierInfo->ext2->q_QualMinWB_r11 = CALLOC(1,sizeof(LTE_Q_QualMin_r9_t));
InterFreqCarrierInfo
->
ext2
->
q_QualMinWB_r11
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMinWB_r11
;
InterFreqCarrierInfo
->
ext2
->
q_QualMinWB_r11
=
configuration
->
InterFreqCarrierFreqInfo
[
CC_id
][
i
].
q_QualMinWB_r11
;
}
}
ASN_SEQUENCE_ADD
(
&
(
*
sib5
)
->
interFreqCarrierFreqList
,
InterFreqCarrierInfo
);
ASN_SEQUENCE_ADD
(
&
(
*
sib5
)
->
interFreqCarrierFreqList
,
InterFreqCarrierInfo
);
...
...
openair2/RRC/LTE/rrc_defs.h
View file @
e3f15a16
...
@@ -666,6 +666,9 @@ typedef struct eNB_RRC_UE_s {
...
@@ -666,6 +666,9 @@ typedef struct eNB_RRC_UE_s {
int8_t
reestablishment_xid
;
int8_t
reestablishment_xid
;
int
does_nr
;
int
does_nr
;
int
nr_capabilities_requested
;
int
nr_capabilities_requested
;
uint32_t
sdu_size
;
/* This is size of SDU received from TTCN */
uint8_t
sdu
[
SDU_SIZE
];
/* This is sdu received from ttcn */
}
eNB_RRC_UE_t
;
}
eNB_RRC_UE_t
;
typedef
uid_t
ue_uid_t
;
typedef
uid_t
ue_uid_t
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
e3f15a16
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
e3f15a16
...
@@ -341,6 +341,10 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -341,6 +341,10 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
*
mnc1
=
(
mnc
/
10
)
%
10
;
*
mnc1
=
(
mnc
/
10
)
%
10
;
asn1cSequenceAdd
(
nr_plmn
->
mnc
.
list
,
NR_MCC_MNC_Digit_t
,
mnc2
);
asn1cSequenceAdd
(
nr_plmn
->
mnc
.
list
,
NR_MCC_MNC_Digit_t
,
mnc2
);
*
mnc2
=
(
mnc
)
%
10
;
*
mnc2
=
(
mnc
)
%
10
;
if
(
nr_plmn
->
mcc
!=
NULL
)
RRM_FREE
(
nr_plmn
->
mcc
);
}
//end plmn loop
}
//end plmn loop
nr_plmn_info
->
cellIdentity
.
buf
=
CALLOC
(
1
,
5
);
nr_plmn_info
->
cellIdentity
.
buf
=
CALLOC
(
1
,
5
);
...
@@ -419,7 +423,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -419,7 +423,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
uint32_t
absolute_diff
=
0
;
uint32_t
absolute_diff
=
0
;
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
{
{
LOG_A
(
NR_RRC
,
"fxn:%s absoluteFrequencySSB:%d "
,
__FUNCTION__
,
absoluteFrequencySSB
);
LOG_A
(
NR_RRC
,
"fxn:%s absoluteFrequencySSB:%
l
d "
,
__FUNCTION__
,
absoluteFrequencySSB
);
absoluteFrequencySSB
=
*
RC
.
nrrrc
[
0
]
->
configuration
.
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
;
absoluteFrequencySSB
=
*
RC
.
nrrrc
[
0
]
->
configuration
.
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
;
absolute_diff
=
absoluteFrequencySSB
-
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
absolute_diff
=
absoluteFrequencySSB
-
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
}
}
...
@@ -547,7 +551,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -547,7 +551,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
asn1cSequenceAdd
(
Z8
->
list
,
asn1cSequenceAdd
(
Z8
->
list
,
long
,
long
,
ZoneEight
);
ZoneEight
);
asn1cCallocOne
(
ZoneEight
,
0
);
//
asn1cCallocOne(ZoneEight, 0);
asn1cCalloc
(
ServCellCom
->
uplinkConfigCommon
,
UL
)
asn1cCalloc
(
ServCellCom
->
uplinkConfigCommon
,
UL
)
asn_set_empty
(
&
UL
->
frequencyInfoUL
.
scs_SpecificCarrierList
.
list
);
asn_set_empty
(
&
UL
->
frequencyInfoUL
.
scs_SpecificCarrierList
.
list
);
...
@@ -674,6 +678,47 @@ The first/ leftmost bit corresponds to the first SS/PBCH block index in the grou
...
@@ -674,6 +678,47 @@ The first/ leftmost bit corresponds to the first SS/PBCH block index in the grou
return
(
-
1
);
return
(
-
1
);
}
}
if
(
sib1
->
ue_TimersAndConstants
!=
NULL
)
RRM_FREE
(
sib1
->
ue_TimersAndConstants
);
if
(
ServCellCom
->
tdd_UL_DL_ConfigurationCommon
!=
NULL
)
RRM_FREE
(
ServCellCom
->
tdd_UL_DL_ConfigurationCommon
);
if
(
ServCellCom
->
ssb_PositionsInBurst
.
groupPresence
!=
NULL
)
RRM_FREE
(
ServCellCom
->
ssb_PositionsInBurst
.
groupPresence
);
if
(
ZoneEight
!=
NULL
)
RRM_FREE
(
ZoneEight
);
if
(
Z8
!=
NULL
)
RRM_FREE
(
Z8
);
if
(
P0
!=
NULL
)
RRM_FREE
(
P0
);
if
(
sib1
->
servingCellConfigCommon
)
RRM_FREE
(
sib1
->
servingCellConfigCommon
);
if
(
nr_plmn_info
->
trackingAreaCode
->
buf
!=
NULL
)
RRM_FREE
(
nr_plmn_info
->
trackingAreaCode
->
buf
);
if
(
nr_plmn_info
->
trackingAreaCode
!=
NULL
)
RRM_FREE
(
nr_plmn_info
->
trackingAreaCode
);
if
(
nr_plmn_info
->
cellIdentity
.
buf
!=
NULL
)
RRM_FREE
(
nr_plmn_info
->
cellIdentity
.
buf
);
if
(
sib1
->
cellSelectionInfo
!=
NULL
)
RRM_FREE
(
sib1
->
cellSelectionInfo
);
if
(
sib1_message
->
message
.
choice
.
c1
->
choice
.
systemInformationBlockType1
!=
NULL
)
RRM_FREE
(
sib1_message
->
message
.
choice
.
c1
->
choice
.
systemInformationBlockType1
);
if
(
sib1_message
->
message
.
choice
.
c1
)
RRM_FREE
(
sib1_message
->
message
.
choice
.
c1
);
if
(
sib1_message
!=
NULL
)
RRM_FREE
(
sib1_message
);
return
((
enc_rval
.
encoded
+
7
)
/
8
);
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
}
...
@@ -723,6 +768,27 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -723,6 +768,27 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
LOG_D
(
RRC
,
"[eNB] SystemInformation Encoded %zd bits (%zd bytes)
\n
"
,
enc_rval
.
encoded
,
(
enc_rval
.
encoded
+
7
)
/
8
);
LOG_D
(
RRC
,
"[eNB] SystemInformation Encoded %zd bits (%zd bytes)
\n
"
,
enc_rval
.
encoded
,
(
enc_rval
.
encoded
+
7
)
/
8
);
LOG_P
(
OAILOG_INFO
,
"BCCH_DL_SCH_Message"
,
(
uint8_t
*
)
carrier
->
SIB23
,
100
);
LOG_P
(
OAILOG_INFO
,
"BCCH_DL_SCH_Message"
,
(
uint8_t
*
)
carrier
->
SIB23
,
100
);
if
(
sib3
->
choice
.
sib3
!=
NULL
)
RRM_FREE
(
sib3
->
choice
.
sib3
);
if
(
sib3
!=
NULL
)
RRM_FREE
(
sib3
);
if
(
sib2
->
choice
.
sib2
!=
NULL
)
RRM_FREE
(
sib2
->
choice
.
sib2
);
if
(
sib2
!=
NULL
)
RRM_FREE
(
sib2
);
if
(
sib
->
criticalExtensions
.
choice
.
systemInformation
!=
NULL
)
RRM_FREE
(
sib
->
criticalExtensions
.
choice
.
systemInformation
);
if
(
sib_message
->
message
.
choice
.
c1
!=
NULL
)
RRM_FREE
(
sib_message
->
message
.
choice
.
c1
);
if
(
sib_message
!=
NULL
)
RRM_FREE
(
sib_message
);
if
(
enc_rval
.
encoded
==-
1
)
{
if
(
enc_rval
.
encoded
==-
1
)
{
return
(
-
1
);
return
(
-
1
);
}
}
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
e3f15a16
...
@@ -224,7 +224,7 @@ char openair_rrc_gNB_configuration(const module_id_t gnb_mod_idP, gNB_RrcConfigu
...
@@ -224,7 +224,7 @@ char openair_rrc_gNB_configuration(const module_id_t gnb_mod_idP, gNB_RrcConfigu
rrc
->
carrier
.
sib1_tda
=
configuration
->
sib1_tda
;
rrc
->
carrier
.
sib1_tda
=
configuration
->
sib1_tda
;
rrc
->
carrier
.
do_CSIRS
=
configuration
->
do_CSIRS
;
rrc
->
carrier
.
do_CSIRS
=
configuration
->
do_CSIRS
;
rrc
->
carrier
.
do_SRS
=
configuration
->
do_SRS
;
rrc
->
carrier
.
do_SRS
=
configuration
->
do_SRS
;
LOG_A
(
NR_RRC
,
"fxn:%s rrc->carrier:pci:%d rrc->configuration:pci:%d gnb_mod_idP:%d"
,
__FUNCTION__
,
rrc
->
carrier
.
physCellId
,
*
rrc
->
configuration
.
scc
->
physCellId
,
gnb_mod_idP
);
LOG_A
(
NR_RRC
,
"fxn:%s rrc->carrier:pci:%d rrc->configuration:pci:%
l
d gnb_mod_idP:%d"
,
__FUNCTION__
,
rrc
->
carrier
.
physCellId
,
*
rrc
->
configuration
.
scc
->
physCellId
,
gnb_mod_idP
);
nr_rrc_config_ul_tda
(
configuration
->
scc
,
configuration
->
minRXTXTIME
);
nr_rrc_config_ul_tda
(
configuration
->
scc
,
configuration
->
minRXTXTIME
);
/// System Information INIT
/// System Information INIT
pthread_mutex_init
(
&
rrc
->
cell_info_mutex
,
NULL
);
pthread_mutex_init
(
&
rrc
->
cell_info_mutex
,
NULL
);
...
...
openair3/SS/ss_eNB_drb_task.c
View file @
e3f15a16
...
@@ -146,36 +146,36 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind, int cell_index){
...
@@ -146,36 +146,36 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind, int cell_index){
static
void
ss_task_handle_drb_pdu_req
(
struct
DRB_COMMON_REQ
*
req
,
int
cell_index
)
static
void
ss_task_handle_drb_pdu_req
(
struct
DRB_COMMON_REQ
*
req
,
int
cell_index
)
{
{
assert
(
req
);
assert
(
req
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_PDCP_ENB
,
0
,
SS_DRB_PDU_REQ
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_PDCP_ENB
,
0
,
SS_DRB_PDU_REQ
);
assert
(
message_p
);
assert
(
message_p
);
if
(
message_p
)
if
(
message_p
)
{
{
/* Populate the message and send to eNB */
/* Populate the message and send to eNB */
SS_DRB_PDU_REQ
(
message_p
).
drb_id
=
req
->
Common
.
RoutingInfo
.
v
.
RadioBearerId
.
v
.
Drb
;
SS_DRB_PDU_REQ
(
message_p
).
drb_id
=
req
->
Common
.
RoutingInfo
.
v
.
RadioBearerId
.
v
.
Drb
;
memset
(
SS_DRB_PDU_REQ
(
message_p
).
sdu
,
0
,
SDU_SIZE
);
memset
(
SS_DRB_PDU_REQ
(
message_p
).
sdu
,
0
,
SDU_SIZE
);
for
(
int
i
=
0
;
i
<
req
->
U_Plane
.
SubframeDataList
.
d
;
i
++
){
for
(
int
i
=
0
;
i
<
req
->
U_Plane
.
SubframeDataList
.
d
;
i
++
){
if
(
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
d
==
L2DataList_Type_PdcpSdu
){
if
(
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
d
==
L2DataList_Type_PdcpSdu
){
LOG_A
(
ENB_APP
,
"PDCP SDU Received in DRB_COMMON_REQ"
);
LOG_A
(
ENB_SS
,
"PDCP SDU Received in DRB_COMMON_REQ"
);
for
(
int
j
=
0
;
j
<
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
d
;
j
++
){
for
(
int
j
=
0
;
j
<
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
d
;
j
++
){
SS_DRB_PDU_REQ
(
message_p
).
sdu_size
=
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
d
;
SS_DRB_PDU_REQ
(
message_p
).
sdu_size
=
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
d
;
LOG_A
(
ENB_APP
,
"Length of PDCP SDU received in DRB_COMMON_REQ: %lu
\n
"
,
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
d
);
LOG_A
(
ENB_SS
,
"Length of PDCP SDU received in DRB_COMMON_REQ: %lu
\n
"
,
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
d
);
memcpy
(
SS_DRB_PDU_REQ
(
message_p
).
sdu
,
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
v
,
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
d
);
memcpy
(
SS_DRB_PDU_REQ
(
message_p
).
sdu
,
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
v
,
req
->
U_Plane
.
SubframeDataList
.
v
[
i
].
PduSduList
.
v
.
PdcpSdu
.
v
[
j
].
d
);
}
}
}
}
}
}
}
}
SS_DRB_PDU_REQ
(
message_p
).
rnti
=
SS_context
.
SSCell_list
[
cell_index
].
ss_rnti_g
;
SS_DRB_PDU_REQ
(
message_p
).
rnti
=
SS_context
.
SSCell_list
[
cell_index
].
ss_rnti_g
;
int
send_res
=
itti_send_msg_to_task
(
TASK_RRC_ENB
,
instance_g
,
message_p
);
int
send_res
=
itti_send_msg_to_task
(
TASK_RRC_ENB
,
instance_g
,
message_p
);
if
(
send_res
<
0
)
if
(
send_res
<
0
)
{
{
LOG_A
(
ENB_APP
,
"[SS_DRB] Error in itti_send_msg_to_task"
);
LOG_A
(
ENB_APP
,
"[SS_DRB] Error in itti_send_msg_to_task"
);
}
}
LOG_A
(
ENB_APP
,
"Send res: %d"
,
send_res
);
LOG_A
(
ENB_APP
,
"Send res: %d"
,
send_res
);
}
}
...
...
openair3/SS/ss_eNB_srb_task.c
View file @
e3f15a16
...
@@ -213,7 +213,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req)
...
@@ -213,7 +213,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req)
assert
(
req
);
assert
(
req
);
LTE_DL_DCCH_Message_t
*
dl_dcch_msg
=
NULL
;
LTE_DL_DCCH_Message_t
*
dl_dcch_msg
=
NULL
;
LTE_DL_CCCH_Message_t
*
dl_ccch_msg
=
NULL
;
LTE_DL_CCCH_Message_t
*
dl_ccch_msg
=
NULL
;
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
SS_RRC_PDU_REQ
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
SS_RRC_PDU_REQ
);
assert
(
message_p
);
assert
(
message_p
);
instance_g
=
0
;
instance_g
=
0
;
if
(
message_p
)
if
(
message_p
)
...
@@ -443,61 +443,61 @@ void ss_eNB_srb_init(void)
...
@@ -443,61 +443,61 @@ void ss_eNB_srb_init(void)
*/
*/
void
*
ss_eNB_srb_process_itti_msg
(
void
*
notUsed
)
void
*
ss_eNB_srb_process_itti_msg
(
void
*
notUsed
)
{
{
MessageDef
*
received_msg
=
NULL
;
MessageDef
*
received_msg
=
NULL
;
int
result
=
0
;
int
result
=
0
;
int
cell_index
=
0
;
int
cell_index
=
0
;
itti_receive_msg
(
TASK_SS_SRB
,
&
received_msg
);
itti_receive_msg
(
TASK_SS_SRB
,
&
received_msg
);
/* Check if there is a packet to handle */
/* Check if there is a packet to handle */
if
(
received_msg
!=
NULL
)
if
(
received_msg
!=
NULL
)
{
{
switch
(
ITTI_MSG_ID
(
received_msg
))
switch
(
ITTI_MSG_ID
(
received_msg
))
{
{
case
SS_RRC_PDU_IND
:
case
SS_RRC_PDU_IND
:
{
{
task_id_t
origin_task
=
ITTI_MSG_ORIGIN_ID
(
received_msg
);
task_id_t
origin_task
=
ITTI_MSG_ORIGIN_ID
(
received_msg
);
if
(
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
.
physCellId
){
if
(
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
.
physCellId
){
cell_index
=
get_cell_index_pci
(
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
.
physCellId
,
SS_context
.
SSCell_list
);
cell_index
=
get_cell_index_pci
(
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
.
physCellId
,
SS_context
.
SSCell_list
);
LOG_A
(
ENB_SS
,
"[SS_SRB] cell_index in SS_RRC_PDU_IND: %d PhysicalCellId: %d
\n
"
,
cell_index
,
SS_context
.
SSCell_list
[
cell_index
].
PhysicalCellId
);
LOG_A
(
ENB_SS
,
"[SS_SRB] cell_index in SS_RRC_PDU_IND: %d PhysicalCellId: %d
\n
"
,
cell_index
,
SS_context
.
SSCell_list
[
cell_index
].
PhysicalCellId
);
}
}
if
(
origin_task
==
TASK_SS_PORTMAN
)
if
(
origin_task
==
TASK_SS_PORTMAN
)
{
{
LOG_D
(
ENB_APP
,
"[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d
\n
"
,
SS_context
.
SSCell_list
[
cell_index
].
State
);
LOG_D
(
ENB_APP
,
"[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d
\n
"
,
SS_context
.
SSCell_list
[
cell_index
].
State
);
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"[SS_SRB] Received SS_RRC_PDU_IND from RRC
\n
"
);
LOG_A
(
ENB_SS
,
"[SS_SRB] Received SS_RRC_PDU_IND from RRC
\n
"
);
if
(
SS_context
.
SSCell_list
[
cell_index
].
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
SS_context
.
SSCell_list
[
cell_index
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
ss_send_srb_data
(
&
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
,
cell_index
);
ss_send_srb_data
(
&
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
,
cell_index
);
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d
\n
"
,
SS_context
.
SSCell_list
[
cell_index
].
State
);
LOG_A
(
ENB_SS
,
"ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d
\n
"
,
SS_context
.
SSCell_list
[
cell_index
].
State
);
}
}
}
}
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
AssertFatal
(
result
==
EXIT_SUCCESS
,
"Failed to free memory (%d)!
\n
"
,
result
);
AssertFatal
(
result
==
EXIT_SUCCESS
,
"Failed to free memory (%d)!
\n
"
,
result
);
received_msg
=
NULL
;
received_msg
=
NULL
;
}
}
break
;
break
;
case
TERMINATE_MESSAGE
:
case
TERMINATE_MESSAGE
:
LOG_A
(
ENB_SS
,
"[SS_SRB] Received TERMINATE_MESSAGE
\n
"
);
LOG_A
(
ENB_SS
,
"[SS_SRB] Received TERMINATE_MESSAGE
\n
"
);
itti_exit_task
();
itti_exit_task
();
break
;
break
;
default:
default:
LOG_A
(
ENB_SS
,
"[SS_SRB] Received unhandled message %d:%s
\n
"
,
LOG_A
(
ENB_SS
,
"[SS_SRB] Received unhandled message %d:%s
\n
"
,
ITTI_MSG_ID
(
received_msg
),
ITTI_MSG_NAME
(
received_msg
));
ITTI_MSG_ID
(
received_msg
),
ITTI_MSG_NAME
(
received_msg
));
break
;
break
;
}
}
}
}
return
NULL
;
return
NULL
;
}
}
/*
/*
...
...
openair3/SS/ss_eNB_sys_task.c
View file @
e3f15a16
...
@@ -487,6 +487,23 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
...
@@ -487,6 +487,23 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
RRC_CONFIGURATION_REQ
(
msg_p
).
cellReselectionPriority
[
cell_index
]
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
cellReselectionServingFreqInfo
.
cellReselectionPriority
;
RRC_CONFIGURATION_REQ
(
msg_p
).
cellReselectionPriority
[
cell_index
]
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
cellReselectionServingFreqInfo
.
cellReselectionPriority
;
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_RxLevMin
[
cell_index
]
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
intraFreqCellReselectionInfo
.
q_RxLevMin
;
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_RxLevMin
[
cell_index
]
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
intraFreqCellReselectionInfo
.
q_RxLevMin
;
RRC_CONFIGURATION_REQ
(
msg_p
).
t_ReselectionEUTRA
[
cell_index
]
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA
;
RRC_CONFIGURATION_REQ
(
msg_p
).
t_ReselectionEUTRA
[
cell_index
]
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
intraFreqCellReselectionInfo
.
t_ReselectionEUTRA
;
RRC_CONFIGURATION_REQ
(
msg_p
).
neighCellConfig
[
cell_index
]
=
(
uint8_t
)
bin_to_int
(
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
intraFreqCellReselectionInfo
.
neighCellConfig
,
2
);
if
(
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_QualMin
[
cell_index
]){
free
(
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_QualMin
[
cell_index
]);
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_QualMin
[
cell_index
]
=
NULL
;
}
if
(
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
q_QualMin_r9
.
d
){
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_QualMin
[
cell_index
]
=
calloc
(
1
,
sizeof
(
long
));
*
(
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_q_QualMin
[
cell_index
])
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
q_QualMin_r9
.
v
;
}
if
(
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_threshServingLowQ
[
cell_index
]){
free
(
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_threshServingLowQ
[
cell_index
]);
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_threshServingLowQ
[
cell_index
]
=
NULL
;
}
if
(
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
threshServingLowQ_r9
.
d
){
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_threshServingLowQ
[
cell_index
]
=
calloc
(
1
,
sizeof
(
long
));
*
(
RRC_CONFIGURATION_REQ
(
msg_p
).
sib3_threshServingLowQ
[
cell_index
])
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib3
.
threshServingLowQ_r9
.
v
;
}
}
}
/* SIB4: Received SIB4 from TTCN */
/* SIB4: Received SIB4 from TTCN */
if
(
SQN_SystemInformation_r8_IEs_sib_TypeAndInfo_s_sib4
==
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
d
)
{
if
(
SQN_SystemInformation_r8_IEs_sib_TypeAndInfo_s_sib4
==
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
d
)
{
...
@@ -528,7 +545,7 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
...
@@ -528,7 +545,7 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
cellReselectionPriority_Present
=
true
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
cellReselectionPriority_Present
=
true
;
*
(
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
cellReselectionPriority
)
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib5
.
interFreqCarrierFreqList
.
v
[
k
].
cellReselectionPriority
.
v
;
*
(
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
cellReselectionPriority
)
=
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib5
.
interFreqCarrierFreqList
.
v
[
k
].
cellReselectionPriority
.
v
;
}
}
//RRC_CONFIGURATION_REQ(msg_p).InterFreqCarrierFreqInfo[k].neighCellConfig = AddOrReconfigure->Basic.v.BcchConfig.v.BcchInfo.v.SIs.v.v[i].message.v.c1.v.systemInformation.criticalExtensions.v.systemInformation_r8.sib_TypeAndInfo.v[j].v.sib5.interFreqCarrierFreqList.v[k].neighCellConfig
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
neighCellConfig
=
(
uint8_t
)
bin_to_int
(
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib5
.
interFreqCarrierFreqList
.
v
[
k
].
neighCellConfig
,
2
)
;
if
(
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib5
.
interFreqCarrierFreqList
.
v
[
k
].
q_OffsetFreq
.
d
)
{
if
(
AddOrReconfigure
->
Basic
.
v
.
BcchConfig
.
v
.
BcchInfo
.
v
.
SIs
.
v
.
v
[
i
].
message
.
v
.
c1
.
v
.
systemInformation
.
criticalExtensions
.
v
.
systemInformation_r8
.
sib_TypeAndInfo
.
v
[
j
].
v
.
sib5
.
interFreqCarrierFreqList
.
v
[
k
].
q_OffsetFreq
.
d
)
{
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
q_OffsetFreqPresent
=
true
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
q_OffsetFreqPresent
=
true
;
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
q_OffsetFreq
=
CALLOC
(
1
,
sizeof
(
enum
LTE_Q_OffsetRange
));
RRC_CONFIGURATION_REQ
(
msg_p
).
InterFreqCarrierFreqInfo
[
cell_index
][
k
].
q_OffsetFreq
=
CALLOC
(
1
,
sizeof
(
enum
LTE_Q_OffsetRange
));
...
...
openair3/SS/ss_gNB_sys_task.c
View file @
e3f15a16
This diff is collapsed.
Click to expand it.
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