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
zzha zzha
OpenXG-RAN
Commits
3fac8bd2
Commit
3fac8bd2
authored
Nov 29, 2021
by
Melissa Elkadi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'episys/master-nsa' into eurecom-episys-merge-nsa
parents
4f9c2bd8
67df3052
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
195 additions
and
36 deletions
+195
-36
ci-scripts/conf_files/episci/episci_nr-ue0.nfapi.conf
ci-scripts/conf_files/episci/episci_nr-ue0.nfapi.conf
+52
-0
ci-scripts/conf_files/episci/episci_nr-ue1.nfapi.conf
ci-scripts/conf_files/episci/episci_nr-ue1.nfapi.conf
+52
-0
ci-scripts/conf_files/episci/episci_nr-ue2.nfapi.conf
ci-scripts/conf_files/episci/episci_nr-ue2.nfapi.conf
+52
-0
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+3
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+1
-1
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+26
-24
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+3
-2
No files found.
ci-scripts/conf_files/episci/episci_nr-ue0.nfapi.conf
0 → 100644
View file @
3fac8bd2
log_config
= {
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"medium"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"full"
;
};
uicc0
= {
imsi
=
"208950000000031"
;
key
=
"0c0a34601d4f07677303652c0462535b"
;
opc
=
"63bfa50ee6523365ff14c1f45f88737d"
;
dnn
=
"oai"
;
nssai_sst
=
222
;
nssai_sd
=
123
;
}
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"nfapi"
;
local_n_if_name
=
"ens3"
;
remote_n_address
=
"127.0.0.1"
; //
Proxy
IP
local_n_address
=
"127.0.0.1"
;
local_n_portc
=
50600
;
remote_n_portc
=
50601
;
local_n_portd
=
50610
;
remote_n_portd
=
50611
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
90
att_rx
=
0
;
bands
= [
7
,
38
,
42
,
43
];
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
125
;
}
);
ci-scripts/conf_files/episci/episci_nr-ue1.nfapi.conf
0 → 100644
View file @
3fac8bd2
log_config
= {
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"medium"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"full"
;
};
uicc0
= {
imsi
=
"208950000000032"
;
key
=
"0c0a34601d4f07677303652c0462535b"
;
opc
=
"63bfa50ee6523365ff14c1f45f88737d"
;
dnn
=
"oai"
;
nssai_sst
=
222
;
nssai_sd
=
123
;
}
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"nfapi"
;
local_n_if_name
=
"ens3"
;
remote_n_address
=
"127.0.0.1"
; //
Proxy
IP
local_n_address
=
"127.0.0.1"
;
local_n_portc
=
50600
;
remote_n_portc
=
50601
;
local_n_portd
=
50610
;
remote_n_portd
=
50611
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
90
att_rx
=
0
;
bands
= [
7
,
38
,
42
,
43
];
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
125
;
}
);
ci-scripts/conf_files/episci/episci_nr-ue2.nfapi.conf
0 → 100644
View file @
3fac8bd2
log_config
= {
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"medium"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"full"
;
};
uicc0
= {
imsi
=
"208950000000033"
;
key
=
"0c0a34601d4f07677303652c0462535b"
;
opc
=
"63bfa50ee6523365ff14c1f45f88737d"
;
dnn
=
"oai"
;
nssai_sst
=
222
;
nssai_sd
=
123
;
}
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"nfapi"
;
local_n_if_name
=
"ens3"
;
remote_n_address
=
"127.0.0.1"
; //
Proxy
IP
local_n_address
=
"127.0.0.1"
;
local_n_portc
=
50600
;
remote_n_portc
=
50601
;
local_n_portd
=
50610
;
remote_n_portd
=
50611
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
90
att_rx
=
0
;
bands
= [
7
,
38
,
42
,
43
];
max_pdschReferenceSignalPower
= -
27
;
max_rxgain
=
125
;
}
);
executables/nr-uesoftmodem.c
View file @
3fac8bd2
...
@@ -458,7 +458,7 @@ int main( int argc, char **argv ) {
...
@@ -458,7 +458,7 @@ int main( int argc, char **argv ) {
init_NR_UE
(
1
,
rrc_config_path
);
init_NR_UE
(
1
,
rrc_config_path
);
int
mode_offset
=
get_softmodem_params
()
->
nsa
?
NUMBER_OF_UE_MAX
:
0
;
int
mode_offset
=
get_softmodem_params
()
->
nsa
?
NUMBER_OF_UE_MAX
:
1
;
uint16_t
node_number
=
get_softmodem_params
()
->
node_number
;
uint16_t
node_number
=
get_softmodem_params
()
->
node_number
;
ue_id_g
=
(
node_number
==
0
)
?
0
:
node_number
-
2
;
ue_id_g
=
(
node_number
==
0
)
?
0
:
node_number
-
2
;
AssertFatal
(
ue_id_g
>=
0
,
"UE id is expected to be nonnegative.
\n
"
);
AssertFatal
(
ue_id_g
>=
0
,
"UE id is expected to be nonnegative.
\n
"
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
3fac8bd2
...
@@ -966,7 +966,7 @@ void nr_ra_succeeded(module_id_t mod_id, frame_t frame, int slot){
...
@@ -966,7 +966,7 @@ void nr_ra_succeeded(module_id_t mod_id, frame_t frame, int slot){
}
else
{
}
else
{
LOG_
I
(
MAC
,
"[UE %d][%d.%d][RAPROC] RA procedure succeeded. CB-RA: Contention Resolution is successful.
\n
"
,
mod_id
,
frame
,
slot
);
LOG_
A
(
MAC
,
"[UE %d][%d.%d][RAPROC] RA procedure succeeded. CB-RA: Contention Resolution is successful.
\n
"
,
mod_id
,
frame
,
slot
);
ra
->
RA_contention_resolution_timer_active
=
0
;
ra
->
RA_contention_resolution_timer_active
=
0
;
mac
->
crnti
=
ra
->
t_crnti
;
mac
->
crnti
=
ra
->
t_crnti
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
3fac8bd2
...
@@ -1022,7 +1022,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
...
@@ -1022,7 +1022,7 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
nr_Msg3_transmitted
(
ul_info
->
module_id
,
ul_info
->
cc_id
,
ul_info
->
frame_tx
,
ul_info
->
slot_tx
,
ul_info
->
gNB_index
);
nr_Msg3_transmitted
(
ul_info
->
module_id
,
ul_info
->
cc_id
,
ul_info
->
frame_tx
,
ul_info
->
slot_tx
,
ul_info
->
gNB_index
);
}
}
if
(
ra
->
ra_state
==
WAIT_RAR
&&
!
ra
->
cfra
){
if
(
ra
->
ra_state
==
WAIT_RAR
&&
!
ra
->
cfra
){
LOG_
I
(
NR_MAC
,
"[RAPROC][%d.%d] RA-Msg3 transmitted
\n
"
,
frame_tx
,
slot_tx
);
LOG_
A
(
NR_MAC
,
"[RAPROC][%d.%d] RA-Msg3 transmitted
\n
"
,
frame_tx
,
slot_tx
);
nr_Msg3_transmitted
(
ul_info
->
module_id
,
ul_info
->
cc_id
,
ul_info
->
frame_tx
,
ul_info
->
slot_tx
,
ul_info
->
gNB_index
);
nr_Msg3_transmitted
(
ul_info
->
module_id
,
ul_info
->
cc_id
,
ul_info
->
frame_tx
,
ul_info
->
slot_tx
,
ul_info
->
gNB_index
);
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
3fac8bd2
...
@@ -1221,7 +1221,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1221,7 +1221,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dl_req
->
nPDUs
+=
1
;
dl_req
->
nPDUs
+=
1
;
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
pdsch_pdu_rel15
=
&
dl_tti_pdsch_pdu
->
pdsch_pdu
.
pdsch_pdu_rel15
;
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
pdsch_pdu_rel15
=
&
dl_tti_pdsch_pdu
->
pdsch_pdu
.
pdsch_pdu_rel15
;
LOG_
I
(
NR_MAC
,
"[gNB %d][RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg2 DCI, rnti 0x%x, state %d, CoreSetType %d
\n
"
,
LOG_
A
(
NR_MAC
,
"[gNB %d][RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg2 DCI, rnti 0x%x, state %d, CoreSetType %d
\n
"
,
module_idP
,
CC_id
,
frameP
,
slotP
,
ra
->
RA_rnti
,
ra
->
state
,
pdcch_pdu_rel15
->
CoreSetType
);
module_idP
,
CC_id
,
frameP
,
slotP
,
ra
->
RA_rnti
,
ra
->
state
,
pdcch_pdu_rel15
->
CoreSetType
);
// SCF222: PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control
// SCF222: PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control
...
@@ -1597,7 +1597,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
...
@@ -1597,7 +1597,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dl_req
->
nPDUs
+=
1
;
dl_req
->
nPDUs
+=
1
;
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
pdsch_pdu_rel15
=
&
dl_tti_pdsch_pdu
->
pdsch_pdu
.
pdsch_pdu_rel15
;
nfapi_nr_dl_tti_pdsch_pdu_rel15_t
*
pdsch_pdu_rel15
=
&
dl_tti_pdsch_pdu
->
pdsch_pdu
.
pdsch_pdu_rel15
;
LOG_
I
(
NR_MAC
,
"[gNB %d] [RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg4 DCI, state %d
\n
"
,
module_idP
,
CC_id
,
frameP
,
slotP
,
ra
->
state
);
LOG_
A
(
NR_MAC
,
"[gNB %d] [RAPROC] CC_id %d Frame %d, slotP %d: Generating RA-Msg4 DCI, state %d
\n
"
,
module_idP
,
CC_id
,
frameP
,
slotP
,
ra
->
state
);
// SCF222: PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control
// SCF222: PDU index incremented for each PDSCH PDU sent in TX control message. This is used to associate control
// information to data and is reset every slot.
// information to data and is reset every slot.
...
@@ -1767,7 +1767,7 @@ void nr_check_Msg4_Ack(module_id_t module_id, int CC_id, frame_t frame, sub_fram
...
@@ -1767,7 +1767,7 @@ void nr_check_Msg4_Ack(module_id_t module_id, int CC_id, frame_t frame, sub_fram
if
(
harq
->
is_waiting
==
0
)
{
if
(
harq
->
is_waiting
==
0
)
{
if
(
harq
->
round
==
0
)
{
if
(
harq
->
round
==
0
)
{
if
(
stats
->
dlsch_errors
==
0
)
{
if
(
stats
->
dlsch_errors
==
0
)
{
LOG_
I
(
NR_MAC
,
"(ue %i, rnti 0x%04x) Received Ack of RA-Msg4. CBRA procedure succeeded!
\n
"
,
UE_id
,
ra
->
rnti
);
LOG_
A
(
NR_MAC
,
"(ue %i, rnti 0x%04x) Received Ack of RA-Msg4. CBRA procedure succeeded!
\n
"
,
UE_id
,
ra
->
rnti
);
nr_clear_ra_proc
(
module_id
,
CC_id
,
frame
,
ra
);
nr_clear_ra_proc
(
module_id
,
CC_id
,
frame
,
ra
);
UE_info
->
active
[
UE_id
]
=
true
;
UE_info
->
active
[
UE_id
]
=
true
;
UE_info
->
Msg4_ACKed
[
UE_id
]
=
true
;
UE_info
->
Msg4_ACKed
[
UE_id
]
=
true
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
3fac8bd2
...
@@ -851,7 +851,7 @@ void nr_fr1_dlsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
...
@@ -851,7 +851,7 @@ void nr_fr1_dlsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
frame
,
frame
,
slot
,
slot
,
&
UE_info
->
list
,
&
UE_info
->
list
,
2
,
MAX_MOBILES_PER_GNB
,
n_rb_sched
,
n_rb_sched
,
rballoc_mask
);
rballoc_mask
);
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
3fac8bd2
...
@@ -783,7 +783,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
...
@@ -783,7 +783,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
}
else
{
}
else
{
LOG_
I
(
NR_MAC
,
"[RAPROC] RA-Msg3 received (sdu_lenP %d)
\n
"
,
sdu_lenP
);
LOG_
A
(
NR_MAC
,
"[RAPROC] RA-Msg3 received (sdu_lenP %d)
\n
"
,
sdu_lenP
);
LOG_D
(
NR_MAC
,
"[RAPROC] Received Msg3:
\n
"
);
LOG_D
(
NR_MAC
,
"[RAPROC] Received Msg3:
\n
"
);
for
(
int
k
=
0
;
k
<
sdu_lenP
;
k
++
)
{
for
(
int
k
=
0
;
k
<
sdu_lenP
;
k
++
)
{
LOG_D
(
NR_MAC
,
"(%i): 0x%x
\n
"
,
k
,
sduP
[
k
]);
LOG_D
(
NR_MAC
,
"(%i): 0x%x
\n
"
,
k
,
sduP
[
k
]);
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
3fac8bd2
...
@@ -99,7 +99,7 @@ void handle_nr_rach(NR_UL_IND_t *UL_info)
...
@@ -99,7 +99,7 @@ void handle_nr_rach(NR_UL_IND_t *UL_info)
bool
in_timewindow
=
frame_diff
==
0
||
(
frame_diff
==
1
&&
UL_info
->
slot
<
7
);
bool
in_timewindow
=
frame_diff
==
0
||
(
frame_diff
==
1
&&
UL_info
->
slot
<
7
);
if
(
UL_INFO
.
rach_ind
.
number_of_pdus
>
0
&&
in_timewindow
)
{
if
(
UL_INFO
.
rach_ind
.
number_of_pdus
>
0
&&
in_timewindow
)
{
LOG_
I
(
MAC
,
"UL_info[Frame %d, Slot %d] Calling initiate_ra_proc RACH:SFN/SLOT:%d/%d
\n
"
,
LOG_
A
(
MAC
,
"UL_info[Frame %d, Slot %d] Calling initiate_ra_proc RACH:SFN/SLOT:%d/%d
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
UL_INFO
.
rach_ind
.
sfn
,
UL_INFO
.
rach_ind
.
slot
);
UL_info
->
frame
,
UL_info
->
slot
,
UL_INFO
.
rach_ind
.
sfn
,
UL_INFO
.
rach_ind
.
slot
);
int
npdus
=
UL_INFO
.
rach_ind
.
number_of_pdus
;
int
npdus
=
UL_INFO
.
rach_ind
.
number_of_pdus
;
for
(
int
i
=
0
;
i
<
npdus
;
i
++
)
{
for
(
int
i
=
0
;
i
<
npdus
;
i
++
)
{
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
3fac8bd2
...
@@ -278,6 +278,12 @@ static bool is_my_dci(NR_UE_MAC_INST_t *mac, nfapi_nr_dl_dci_pdu_t *received_pdu
...
@@ -278,6 +278,12 @@ static bool is_my_dci(NR_UE_MAC_INST_t *mac, nfapi_nr_dl_dci_pdu_t *received_pdu
{
{
if
(
received_pdu
->
RNTI
!=
mac
->
crnti
&&
mac
->
ra
.
ra_state
==
RA_SUCCEEDED
)
if
(
received_pdu
->
RNTI
!=
mac
->
crnti
&&
mac
->
ra
.
ra_state
==
RA_SUCCEEDED
)
return
false
;
return
false
;
if
(
received_pdu
->
RNTI
!=
mac
->
ra
.
t_crnti
&&
mac
->
ra
.
ra_state
==
WAIT_CONTENTION_RESOLUTION
)
return
false
;
if
(
received_pdu
->
RNTI
!=
0x10b
&&
mac
->
ra
.
ra_state
==
WAIT_RAR
)
return
false
;
if
(
received_pdu
->
RNTI
!=
0xFFFF
&&
mac
->
ra
.
ra_state
<=
GENERATE_PREAMBLE
)
return
false
;
}
}
return
true
;
return
true
;
}
}
...
@@ -294,11 +300,7 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
...
@@ -294,11 +300,7 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
int
pdu_idx
=
0
;
int
pdu_idx
=
0
;
int
num_pdus
=
dl_tti_request
->
dl_tti_request_body
.
nPDUs
;
int
num_pdus
=
dl_tti_request
->
dl_tti_request_body
.
nPDUs
;
if
(
num_pdus
<=
0
)
AssertFatal
(
num_pdus
>=
0
,
"Invalid dl_tti_request number of PDUS
\n
"
);
{
LOG_E
(
NR_PHY
,
"%s: dl_tti_request number of PDUS <= 0
\n
"
,
__FUNCTION__
);
abort
();
}
for
(
int
i
=
0
;
i
<
num_pdus
;
i
++
)
for
(
int
i
=
0
;
i
<
num_pdus
;
i
++
)
{
{
...
@@ -316,10 +318,13 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
...
@@ -316,10 +318,13 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
uint16_t
num_dcis
=
pdu_list
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
;
uint16_t
num_dcis
=
pdu_list
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
;
if
(
num_dcis
>
0
)
if
(
num_dcis
>
0
)
{
{
dl_info
->
dci_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_dci_indication_t
));
if
(
!
dl_info
->
dci_ind
)
{
dl_info
->
dci_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_dci_indication_t
));
}
dl_info
->
dci_ind
->
SFN
=
dl_tti_request
->
SFN
;
dl_info
->
dci_ind
->
SFN
=
dl_tti_request
->
SFN
;
dl_info
->
dci_ind
->
slot
=
dl_tti_request
->
Slot
;
dl_info
->
dci_ind
->
slot
=
dl_tti_request
->
Slot
;
AssertFatal
(
num_dcis
<
sizeof
(
dl_info
->
dci_ind
->
dci_list
)
/
sizeof
(
dl_info
->
dci_ind
->
dci_list
[
0
]),
AssertFatal
(
num_dcis
<
=
sizeof
(
dl_info
->
dci_ind
->
dci_list
)
/
sizeof
(
dl_info
->
dci_ind
->
dci_list
[
0
]),
"The number of DCIs is greater than dci_list"
);
"The number of DCIs is greater than dci_list"
);
for
(
int
j
=
0
;
j
<
num_dcis
;
j
++
)
for
(
int
j
=
0
;
j
<
num_dcis
;
j
++
)
{
{
...
@@ -360,7 +365,10 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
...
@@ -360,7 +365,10 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
will be freed after handling. This is why the PDU index will
will be freed after handling. This is why the PDU index will
always be zero for the RX_IND becasue we should not have more than
always be zero for the RX_IND becasue we should not have more than
one MIB. */
one MIB. */
dl_info
->
rx_ind
=
CALLOC
(
1
,
sizeof
(
*
dl_info
->
rx_ind
));
if
(
!
dl_info
->
rx_ind
)
{
dl_info
->
rx_ind
=
CALLOC
(
1
,
sizeof
(
*
dl_info
->
rx_ind
));
}
fapi_nr_rx_indication_t
*
rx_ind
=
dl_info
->
rx_ind
;
fapi_nr_rx_indication_t
*
rx_ind
=
dl_info
->
rx_ind
;
rx_ind
->
sfn
=
dl_tti_request
->
SFN
;
rx_ind
->
sfn
=
dl_tti_request
->
SFN
;
rx_ind
->
slot
=
dl_tti_request
->
Slot
;
rx_ind
->
slot
=
dl_tti_request
->
Slot
;
...
@@ -408,13 +416,12 @@ static void copy_tx_data_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi
...
@@ -408,13 +416,12 @@ static void copy_tx_data_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi
{
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
dl_info
->
module_id
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
dl_info
->
module_id
);
int
num_pdus
=
tx_data_request
->
Number_of_PDUs
;
int
num_pdus
=
tx_data_request
->
Number_of_PDUs
;
if
(
num_pdus
<=
0
)
AssertFatal
(
num_pdus
>=
0
,
"Invalid tx_data_request number of PDUS
\n
"
);
if
(
!
dl_info
->
rx_ind
)
{
{
LOG_E
(
NR_PHY
,
"%s: tx_data_request number of PDUS <= 0
\n
"
,
__FUNCTION__
);
dl_info
->
rx_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_rx_indication_t
));
abort
();
}
}
dl_info
->
rx_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_rx_indication_t
));
AssertFatal
(
dl_info
->
rx_ind
!=
NULL
,
"%s: Out of memory in calloc"
,
__FUNCTION__
);
AssertFatal
(
dl_info
->
rx_ind
!=
NULL
,
"%s: Out of memory in calloc"
,
__FUNCTION__
);
fapi_nr_rx_indication_t
*
rx_ind
=
dl_info
->
rx_ind
;
fapi_nr_rx_indication_t
*
rx_ind
=
dl_info
->
rx_ind
;
rx_ind
->
sfn
=
tx_data_request
->
SFN
;
rx_ind
->
sfn
=
tx_data_request
->
SFN
;
...
@@ -459,11 +466,7 @@ static void copy_ul_dci_data_req_to_dl_info(nr_downlink_indication_t *dl_info, n
...
@@ -459,11 +466,7 @@ static void copy_ul_dci_data_req_to_dl_info(nr_downlink_indication_t *dl_info, n
int
pdu_idx
=
0
;
int
pdu_idx
=
0
;
int
num_pdus
=
ul_dci_req
->
numPdus
;
int
num_pdus
=
ul_dci_req
->
numPdus
;
if
(
num_pdus
<=
0
)
AssertFatal
(
num_pdus
>=
0
,
"Invalid ul_dci_request number of PDUS
\n
"
);
{
LOG_E
(
NR_PHY
,
"%s: ul_dci_request number of PDUS <= 0
\n
"
,
__FUNCTION__
);
abort
();
}
for
(
int
i
=
0
;
i
<
num_pdus
;
i
++
)
for
(
int
i
=
0
;
i
<
num_pdus
;
i
++
)
{
{
...
@@ -475,7 +478,10 @@ static void copy_ul_dci_data_req_to_dl_info(nr_downlink_indication_t *dl_info, n
...
@@ -475,7 +478,10 @@ static void copy_ul_dci_data_req_to_dl_info(nr_downlink_indication_t *dl_info, n
uint16_t
num_dci
=
pdu_list
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
;
uint16_t
num_dci
=
pdu_list
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
;
if
(
num_dci
>
0
)
if
(
num_dci
>
0
)
{
{
dl_info
->
dci_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_dci_indication_t
));
if
(
!
dl_info
->
dci_ind
)
{
dl_info
->
dci_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_dci_indication_t
));
}
AssertFatal
(
dl_info
->
dci_ind
!=
NULL
,
"%s: Out of memory in calloc"
,
__FUNCTION__
);
AssertFatal
(
dl_info
->
dci_ind
!=
NULL
,
"%s: Out of memory in calloc"
,
__FUNCTION__
);
dl_info
->
dci_ind
->
SFN
=
ul_dci_req
->
SFN
;
dl_info
->
dci_ind
->
SFN
=
ul_dci_req
->
SFN
;
dl_info
->
dci_ind
->
slot
=
ul_dci_req
->
Slot
;
dl_info
->
dci_ind
->
slot
=
ul_dci_req
->
Slot
;
...
@@ -550,11 +556,7 @@ static void copy_ul_tti_data_req_to_dl_info(nr_downlink_indication_t *dl_info, n
...
@@ -550,11 +556,7 @@ static void copy_ul_tti_data_req_to_dl_info(nr_downlink_indication_t *dl_info, n
{
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
dl_info
->
module_id
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
dl_info
->
module_id
);
int
num_pdus
=
ul_tti_req
->
n_pdus
;
int
num_pdus
=
ul_tti_req
->
n_pdus
;
if
(
num_pdus
<=
0
)
AssertFatal
(
num_pdus
>=
0
,
"Invalid ul_tti_request number of PDUS
\n
"
);
{
LOG_E
(
NR_PHY
,
"%s: ul_tti_request number of PDUS <= 0
\n
"
,
__FUNCTION__
);
abort
();
}
AssertFatal
(
num_pdus
<=
sizeof
(
ul_tti_req
->
pdus_list
)
/
sizeof
(
ul_tti_req
->
pdus_list
[
0
]),
AssertFatal
(
num_pdus
<=
sizeof
(
ul_tti_req
->
pdus_list
)
/
sizeof
(
ul_tti_req
->
pdus_list
[
0
]),
"Too many pdus %d in ul_tti_req
\n
"
,
num_pdus
);
"Too many pdus %d in ul_tti_req
\n
"
,
num_pdus
);
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
3fac8bd2
...
@@ -1053,7 +1053,7 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
...
@@ -1053,7 +1053,7 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
uint8_t
nb_pdusessions_tosetup
=
NGAP_PDUSESSION_SETUP_REQ
(
msg_p
).
nb_pdusessions_tosetup
;
uint8_t
nb_pdusessions_tosetup
=
NGAP_PDUSESSION_SETUP_REQ
(
msg_p
).
nb_pdusessions_tosetup
;
pdu_sessions_done
=
0
;
pdu_sessions_done
=
0
;
PROTOCOL_CTXT_SET_BY_
INSTANCE
(
&
ctxt
,
instance
,
GNB_FLAG_YES
,
ue_context_p
->
ue_context
.
rnti
,
0
,
0
);
PROTOCOL_CTXT_SET_BY_
MODULE_ID
(
&
ctxt
,
0
,
GNB_FLAG_YES
,
ue_context_p
->
ue_context
.
rnti
,
0
,
0
,
0
);
for
(
int
i
=
0
;
i
<
NR_NB_RB_MAX
-
3
;
i
++
)
{
for
(
int
i
=
0
;
i
<
NR_NB_RB_MAX
-
3
;
i
++
)
{
if
(
ue_context_p
->
ue_context
.
pduSession
[
i
].
status
>=
PDU_SESSION_STATUS_DONE
)
if
(
ue_context_p
->
ue_context
.
pduSession
[
i
].
status
>=
PDU_SESSION_STATUS_DONE
)
continue
;
continue
;
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
3fac8bd2
...
@@ -578,7 +578,8 @@ int8_t nr_rrc_ue_decode_NR_BCCH_BCH_Message(
...
@@ -578,7 +578,8 @@ int8_t nr_rrc_ue_decode_NR_BCCH_BCH_Message(
if
(
NR_UE_rrc_inst
[
module_id
].
mib
!=
NULL
)
if
(
NR_UE_rrc_inst
[
module_id
].
mib
!=
NULL
)
SEQUENCE_free
(
&
asn_DEF_NR_BCCH_BCH_Message
,
(
void
*
)
bcch_message
,
1
);
SEQUENCE_free
(
&
asn_DEF_NR_BCCH_BCH_Message
,
(
void
*
)
bcch_message
,
1
);
else
LOG_I
(
NR_RRC
,
"Configuring MAC for first MIB reception
\n
"
);
else
LOG_A
(
NR_RRC
,
"Configuring MAC for first MIB reception
\n
"
);
asn_dec_rval_t
dec_rval
=
uper_decode_complete
(
NULL
,
asn_dec_rval_t
dec_rval
=
uper_decode_complete
(
NULL
,
&
asn_DEF_NR_BCCH_BCH_Message
,
&
asn_DEF_NR_BCCH_BCH_Message
,
...
@@ -1195,7 +1196,7 @@ int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(module_id_t module_id,
...
@@ -1195,7 +1196,7 @@ int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(module_id_t module_id,
if
(
g_log
->
log_component
[
NR_RRC
].
level
>=
OAILOG_DEBUG
)
{
if
(
g_log
->
log_component
[
NR_RRC
].
level
>=
OAILOG_DEBUG
)
{
xer_fprint
(
stdout
,
&
asn_DEF_NR_SIB1
,
(
const
void
*
)
NR_UE_rrc_inst
[
module_id
].
sib1
[
gNB_index
]);
xer_fprint
(
stdout
,
&
asn_DEF_NR_SIB1
,
(
const
void
*
)
NR_UE_rrc_inst
[
module_id
].
sib1
[
gNB_index
]);
}
}
LOG_
I
(
NR_RRC
,
"SIB1 decoded
\n
"
);
LOG_
A
(
NR_RRC
,
"SIB1 decoded
\n
"
);
/// dump_SIB1();
/// dump_SIB1();
// FIXME: improve condition for the RA trigger
// FIXME: improve condition for the RA trigger
...
...
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