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
Michael Black
OpenXG-RAN
Commits
aebabbcc
Commit
aebabbcc
authored
May 04, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fixes-code-ci' into integration_2022_wk18
parents
f99f2be7
00609ed1
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
63 additions
and
76 deletions
+63
-76
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
+3
-3
ci-scripts/xml_files/container_5g_fdd_rfsim.xml
ci-scripts/xml_files/container_5g_fdd_rfsim.xml
+3
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+1
-1
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
+12
-11
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+6
-14
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+13
-15
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+23
-24
targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
+0
-2
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
...-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
+1
-0
No files found.
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
View file @
aebabbcc
...
@@ -63,8 +63,8 @@ gNBs =
...
@@ -63,8 +63,8 @@ gNBs =
dl_carrierBandwidth
=
106
;
dl_carrierBandwidth
=
106
;
#initialDownlinkBWP
#initialDownlinkBWP
#genericParameters
#genericParameters
# this is RBstart=
27,L=48
(275*(L-1))+RBstart
# this is RBstart=
0,L=106
(275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth
=
13475
;
# 6366 12925 12956 28875 12952
initialDLBWPlocationAndBandwidth
=
28875
;
# subcarrierSpacing
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing
=
1
;
initialDLBWPsubcarrierSpacing
=
1
;
...
@@ -85,7 +85,7 @@ gNBs =
...
@@ -85,7 +85,7 @@ gNBs =
pMax
=
20
;
pMax
=
20
;
#initialUplinkBWP
#initialUplinkBWP
#genericParameters
#genericParameters
initialULBWPlocationAndBandwidth
=
134
75
;
initialULBWPlocationAndBandwidth
=
288
75
;
# subcarrierSpacing
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing
=
1
;
initialULBWPsubcarrierSpacing
=
1
;
...
...
ci-scripts/xml_files/container_5g_fdd_rfsim.xml
View file @
aebabbcc
...
@@ -33,12 +33,10 @@
...
@@ -33,12 +33,10 @@
000013
000013
020011
020011
020012
020012
100011
</TestCaseRequestedList>
<!-- Not done yet because of code instability
030011
030011
030012
030012
-->
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000010"
>
<testCase
id=
"000010"
>
...
@@ -104,7 +102,7 @@
...
@@ -104,7 +102,7 @@
<server_container_name>
rfsim5g-oai-ext-dn
</server_container_name>
<server_container_name>
rfsim5g-oai-ext-dn
</server_container_name>
<client_container_name>
rfsim5g-oai-nr-ue
</client_container_name>
<client_container_name>
rfsim5g-oai-nr-ue
</client_container_name>
<server_options>
-u -i 1 -s
</server_options>
<server_options>
-u -i 1 -s
</server_options>
<client_options>
-B 12.1.1.2 -c 192.168.72.135 -u -i 1 -t 30 -b
1
M
</client_options>
<client_options>
-B 12.1.1.2 -c 192.168.72.135 -u -i 1 -t 30 -b
3
M
</client_options>
</testCase>
</testCase>
<testCase
id=
"100011"
>
<testCase
id=
"100011"
>
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
aebabbcc
...
@@ -391,7 +391,7 @@ void schedule_nr_prach(module_id_t module_idP, frame_t frameP, sub_frame_t slotP
...
@@ -391,7 +391,7 @@ void schedule_nr_prach(module_id_t module_idP, frame_t frameP, sub_frame_t slotP
const
int16_t
N_RA_RB
=
get_N_RA_RB
(
cfg
->
prach_config
.
prach_sub_c_spacing
.
value
,
mu_pusch
);
const
int16_t
N_RA_RB
=
get_N_RA_RB
(
cfg
->
prach_config
.
prach_sub_c_spacing
.
value
,
mu_pusch
);
uint16_t
*
vrb_map_UL
=
&
cc
->
vrb_map_UL
[
slotP
*
MAX_BWP_SIZE
];
uint16_t
*
vrb_map_UL
=
&
cc
->
vrb_map_UL
[
slotP
*
MAX_BWP_SIZE
];
for
(
int
i
=
0
;
i
<
N_RA_RB
*
fdm
;
++
i
)
for
(
int
i
=
0
;
i
<
N_RA_RB
*
fdm
;
++
i
)
vrb_map_UL
[
bwp_start
+
rach_ConfigGeneric
->
msg1_FrequencyStart
+
i
]
=
SL_to_bitmap
(
start_symbol
,
N_t_slot
*
N_dur
);
vrb_map_UL
[
bwp_start
+
rach_ConfigGeneric
->
msg1_FrequencyStart
+
i
]
|
=
SL_to_bitmap
(
start_symbol
,
N_t_slot
*
N_dur
);
}
}
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
aebabbcc
...
@@ -426,7 +426,7 @@ uint32_t schedule_control_sib1(module_id_t module_id,
...
@@ -426,7 +426,7 @@ uint32_t schedule_control_sib1(module_id_t module_id,
gNB_mac
->
sched_ctrlCommon
->
cce_index
,
gNB_mac
->
sched_ctrlCommon
->
cce_index
,
gNB_mac
->
sched_ctrlCommon
->
aggregation_level
);
gNB_mac
->
sched_ctrlCommon
->
aggregation_level
);
for
(
int
rb
=
0
;
rb
<
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbSize
;
rb
++
)
{
for
(
int
rb
=
0
;
rb
<
gNB_mac
->
sched_ctrlCommon
->
sched_pdsch
.
rbSize
;
rb
++
)
{
vrb_map
[
rb
+
rbStart
]
=
SL_to_bitmap
(
startSymbolIndex
,
nrOfSymbols
);
vrb_map
[
rb
+
rbStart
]
|
=
SL_to_bitmap
(
startSymbolIndex
,
nrOfSymbols
);
}
}
return
TBS
;
return
TBS
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
aebabbcc
...
@@ -576,8 +576,8 @@ bool allocate_dl_retransmission(module_id_t module_id,
...
@@ -576,8 +576,8 @@ bool allocate_dl_retransmission(module_id_t module_id,
rbStart
+=
rbSize
;
/* last iteration rbSize was not enough, skip it */
rbStart
+=
rbSize
;
/* last iteration rbSize was not enough, skip it */
rbSize
=
0
;
rbSize
=
0
;
while
(
rbStart
<
bwpSize
&&
const
int
slbitmap
=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
);
!
(
rballoc_mask
[
rbStart
]
&
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
))
)
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
rbStart
++
;
rbStart
++
;
if
(
rbStart
>=
bwpSize
)
{
if
(
rbStart
>=
bwpSize
)
{
...
@@ -586,7 +586,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
...
@@ -586,7 +586,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
}
}
while
(
rbStart
+
rbSize
<
bwpSize
&&
while
(
rbStart
+
rbSize
<
bwpSize
&&
(
rballoc_mask
[
rbStart
+
rbSize
]
&
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
))
&&
(
rballoc_mask
[
rbStart
+
rbSize
]
&
slbitmap
)
==
slbitmap
&&
rbSize
<
retInfo
->
rbSize
)
rbSize
<
retInfo
->
rbSize
)
rbSize
++
;
rbSize
++
;
}
}
...
@@ -619,12 +619,11 @@ bool allocate_dl_retransmission(module_id_t module_id,
...
@@ -619,12 +619,11 @@ bool allocate_dl_retransmission(module_id_t module_id,
sched_ctrl
,
sched_ctrl
,
&
temp_ps
);
&
temp_ps
);
while
(
rbStart
<
bwpSize
&&
const
uint16_t
slbitmap
=
SL_to_bitmap
(
temp_ps
.
startSymbolIndex
,
temp_ps
.
nrOfSymbols
);
!
(
rballoc_mask
[
rbStart
]
&
SL_to_bitmap
(
temp_ps
.
startSymbolIndex
,
temp_ps
.
nrOfSymbols
))
)
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
rbStart
++
;
rbStart
++
;
while
(
rbStart
+
rbSize
<
bwpSize
&&
while
(
rbStart
+
rbSize
<
bwpSize
&&
(
rballoc_mask
[
rbStart
+
rbSize
]
&
slbitmap
)
==
slbitmap
)
(
rballoc_mask
[
rbStart
+
rbSize
]
&
SL_to_bitmap
(
temp_ps
.
startSymbolIndex
,
temp_ps
.
nrOfSymbols
)))
rbSize
++
;
rbSize
++
;
uint32_t
new_tbs
;
uint32_t
new_tbs
;
...
@@ -933,14 +932,12 @@ void pf_dl(module_id_t module_id,
...
@@ -933,14 +932,12 @@ void pf_dl(module_id_t module_id,
const
uint16_t
slbitmap
=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
);
const
uint16_t
slbitmap
=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
);
// Freq-demain allocation
// Freq-demain allocation
while
(
rbStart
<
bwpSize
&&
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
!
(
rballoc_mask
[
rbStart
]
&
slbitmap
))
rbStart
++
;
rbStart
++
;
uint16_t
max_rbSize
=
1
;
uint16_t
max_rbSize
=
1
;
while
(
rbStart
+
max_rbSize
<
bwpSize
&&
while
(
rbStart
+
max_rbSize
<
bwpSize
&&
(
rballoc_mask
[
rbStart
+
max_rbSize
]
&
slbitmap
)
==
slbitmap
)
(
rballoc_mask
[
rbStart
+
max_rbSize
]
&
slbitmap
))
max_rbSize
++
;
max_rbSize
++
;
sched_pdsch
->
Qm
=
nr_get_Qm_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
Qm
=
nr_get_Qm_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
...
@@ -1483,6 +1480,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
...
@@ -1483,6 +1480,10 @@ void nr_schedule_ue_spec(module_id_t module_id,
header
->
L
=
htons
(
bufEnd
-
buf
);
header
->
L
=
htons
(
bufEnd
-
buf
);
dlsch_total_bytes
+=
bufEnd
-
buf
;
dlsch_total_bytes
+=
bufEnd
-
buf
;
for
(;
buf
<
bufEnd
-
3
;
buf
+=
4
)
{
uint32_t
*
buf32
=
(
uint32_t
*
)
buf
;
*
buf32
=
lrand48
();
}
for
(;
buf
<
bufEnd
;
buf
++
)
for
(;
buf
<
bufEnd
;
buf
++
)
*
buf
=
lrand48
()
&
0xff
;
*
buf
=
lrand48
()
&
0xff
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
aebabbcc
...
@@ -1621,18 +1621,10 @@ int nr_acknack_scheduling(int mod_id,
...
@@ -1621,18 +1621,10 @@ int nr_acknack_scheduling(int mod_id,
const
NR_ServingCellConfigCommon_t
*
scc
=
RC
.
nrmac
[
mod_id
]
->
common_channels
[
CC_id
].
ServingCellConfigCommon
;
const
NR_ServingCellConfigCommon_t
*
scc
=
RC
.
nrmac
[
mod_id
]
->
common_channels
[
CC_id
].
ServingCellConfigCommon
;
const
int
n_slots_frame
=
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
];
const
int
n_slots_frame
=
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
];
const
NR_TDD_UL_DL_Pattern_t
*
tdd
=
scc
->
tdd_UL_DL_ConfigurationCommon
?
&
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
:
NULL
;
const
NR_TDD_UL_DL_Pattern_t
*
tdd
=
scc
->
tdd_UL_DL_ConfigurationCommon
?
&
scc
->
tdd_UL_DL_ConfigurationCommon
->
pattern1
:
NULL
;
// initializing the values for FDD
AssertFatal
(
tdd
||
RC
.
nrmac
[
mod_id
]
->
common_channels
[
CC_id
].
frame_type
==
FDD
,
"Dynamic TDD not handled yet
\n
"
);
int
nr_slots_period
=
n_slots_frame
;
const
int
nr_slots_period
=
tdd
?
n_slots_frame
/
get_nb_periods_per_frame
(
tdd
->
dl_UL_TransmissionPeriodicity
)
:
n_slots_frame
;
int
first_ul_slot_tdd
=
slot
+
minfbtime
;
const
int
next_ul_slot
=
tdd
?
tdd
->
nrofDownlinkSlots
+
nr_slots_period
*
(
slot
/
nr_slots_period
)
:
slot
+
minfbtime
;
int
first_ul_slot_period
=
0
;
const
int
first_ul_slot_period
=
tdd
?
tdd
->
nrofDownlinkSlots
:
0
;
if
(
tdd
){
nr_slots_period
/=
get_nb_periods_per_frame
(
tdd
->
dl_UL_TransmissionPeriodicity
);
first_ul_slot_tdd
=
tdd
->
nrofDownlinkSlots
+
nr_slots_period
*
(
slot
/
nr_slots_period
);
first_ul_slot_period
=
tdd
->
nrofDownlinkSlots
;
}
else
// if TDD configuration is not present and the band is not FDD, it means it is a dynamic TDD configuration
AssertFatal
(
RC
.
nrmac
[
mod_id
]
->
common_channels
[
CC_id
].
frame_type
==
FDD
,
"Dynamic TDD not handled yet
\n
"
);
/* for the moment, we consider:
/* for the moment, we consider:
...
@@ -1788,8 +1780,8 @@ int nr_acknack_scheduling(int mod_id,
...
@@ -1788,8 +1780,8 @@ int nr_acknack_scheduling(int mod_id,
AssertFatal
(
pucch
->
sr_flag
+
pucch
->
dai_c
==
0
,
AssertFatal
(
pucch
->
sr_flag
+
pucch
->
dai_c
==
0
,
"expected no SR/AckNack for UE %d in %4d.%2d, but has %d/%d for %4d.%2d
\n
"
,
"expected no SR/AckNack for UE %d in %4d.%2d, but has %d/%d for %4d.%2d
\n
"
,
UE_id
,
frame
,
slot
,
pucch
->
sr_flag
,
pucch
->
dai_c
,
pucch
->
frame
,
pucch
->
ul_slot
);
UE_id
,
frame
,
slot
,
pucch
->
sr_flag
,
pucch
->
dai_c
,
pucch
->
frame
,
pucch
->
ul_slot
);
const
int
s
=
first_ul_slot_tdd
;
const
int
s
=
next_ul_slot
;
pucch
->
frame
=
(
s
<
n_slots_frame
-
1
)
?
frame
:
(
frame
+
1
)
%
1024
;
pucch
->
frame
=
s
<
n_slots_frame
?
frame
:
(
frame
+
1
)
%
1024
;
pucch
->
ul_slot
=
s
%
n_slots_frame
;
pucch
->
ul_slot
=
s
%
n_slots_frame
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
aebabbcc
...
@@ -1004,8 +1004,8 @@ bool allocate_ul_retransmission(module_id_t module_id,
...
@@ -1004,8 +1004,8 @@ bool allocate_ul_retransmission(module_id_t module_id,
}
}
/* Check the resource is enough for retransmission */
/* Check the resource is enough for retransmission */
while
(
rbStart
<
bwpSize
&&
const
uint16_t
slbitmap
=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
);
!
(
rballoc_mask
[
rbStart
]
&
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
))
)
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
rbStart
++
;
rbStart
++
;
if
(
rbStart
+
retInfo
->
rbSize
>
bwpSize
)
{
if
(
rbStart
+
retInfo
->
rbSize
>
bwpSize
)
{
LOG_W
(
NR_MAC
,
"cannot allocate retransmission of UE %d/RNTI %04x: no resources (rbStart %d, retInfo->rbSize %d, bwpSize %d
\n
"
,
UE_id
,
UE_info
->
rnti
[
UE_id
],
rbStart
,
retInfo
->
rbSize
,
bwpSize
);
LOG_W
(
NR_MAC
,
"cannot allocate retransmission of UE %d/RNTI %04x: no resources (rbStart %d, retInfo->rbSize %d, bwpSize %d
\n
"
,
UE_id
,
UE_info
->
rnti
[
UE_id
],
rbStart
,
retInfo
->
rbSize
,
bwpSize
);
...
@@ -1025,12 +1025,11 @@ bool allocate_ul_retransmission(module_id_t module_id,
...
@@ -1025,12 +1025,11 @@ bool allocate_ul_retransmission(module_id_t module_id,
&
temp_ps
);
&
temp_ps
);
/* the retransmission will use a different time domain allocation, check
/* the retransmission will use a different time domain allocation, check
* that we have enough resources */
* that we have enough resources */
while
(
rbStart
<
bwpSize
&&
const
uint16_t
slbitmap
=
SL_to_bitmap
(
temp_ps
.
startSymbolIndex
,
temp_ps
.
nrOfSymbols
);
!
(
rballoc_mask
[
rbStart
]
&
SL_to_bitmap
(
temp_ps
.
startSymbolIndex
,
temp_ps
.
nrOfSymbols
))
)
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
rbStart
++
;
rbStart
++
;
int
rbSize
=
0
;
int
rbSize
=
0
;
while
(
rbStart
+
rbSize
<
bwpSize
&&
while
(
rbStart
+
rbSize
<
bwpSize
&&
(
rballoc_mask
[
rbStart
+
rbSize
]
&
slbitmap
)
==
slbitmap
)
(
rballoc_mask
[
rbStart
+
rbSize
]
&
SL_to_bitmap
(
temp_ps
.
startSymbolIndex
,
temp_ps
.
nrOfSymbols
)))
rbSize
++
;
rbSize
++
;
uint32_t
new_tbs
;
uint32_t
new_tbs
;
uint16_t
new_rbSize
;
uint16_t
new_rbSize
;
...
@@ -1261,8 +1260,8 @@ void pf_ul(module_id_t module_id,
...
@@ -1261,8 +1260,8 @@ void pf_ul(module_id_t module_id,
}
}
LOG_D
(
NR_MAC
,
"Looking for min_rb %d RBs, starting at %d
\n
"
,
min_rb
,
rbStart
);
LOG_D
(
NR_MAC
,
"Looking for min_rb %d RBs, starting at %d
\n
"
,
min_rb
,
rbStart
);
while
(
rbStart
<
bwpSize
&&
const
uint16_t
slbitmap
=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
);
!
(
rballoc_mask
[
rbStart
]
&
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
))
)
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
rbStart
++
;
rbStart
++
;
if
(
rbStart
+
min_rb
>=
bwpSize
)
{
if
(
rbStart
+
min_rb
>=
bwpSize
)
{
LOG_W
(
NR_MAC
,
"cannot allocate continuous UL data for UE %d/RNTI %04x: no resources (rbStart %d, min_rb %d, bwpSize %d
\n
"
,
LOG_W
(
NR_MAC
,
"cannot allocate continuous UL data for UE %d/RNTI %04x: no resources (rbStart %d, min_rb %d, bwpSize %d
\n
"
,
...
@@ -1295,7 +1294,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1295,7 +1294,7 @@ void pf_ul(module_id_t module_id,
/* Mark the corresponding RBs as used */
/* Mark the corresponding RBs as used */
n_rb_sched
-=
sched_pusch
->
rbSize
;
n_rb_sched
-=
sched_pusch
->
rbSize
;
for
(
int
rb
=
0
;
rb
<
sched_ctrl
->
sched_pusch
.
rbSize
;
rb
++
)
for
(
int
rb
=
0
;
rb
<
sched_ctrl
->
sched_pusch
.
rbSize
;
rb
++
)
rballoc_mask
[
rb
+
sched_ctrl
->
sched_pusch
.
rbStart
]
^=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
)
;
rballoc_mask
[
rb
+
sched_ctrl
->
sched_pusch
.
rbStart
]
^=
slbitmap
;
continue
;
continue
;
}
}
...
@@ -1397,13 +1396,12 @@ void pf_ul(module_id_t module_id,
...
@@ -1397,13 +1396,12 @@ void pf_ul(module_id_t module_id,
}
}
update_ul_ue_R_Qm
(
sched_pusch
,
ps
);
update_ul_ue_R_Qm
(
sched_pusch
,
ps
);
while
(
rbStart
<
bwpSize
&&
const
uint16_t
slbitmap
=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
);
!
(
rballoc_mask
[
rbStart
]
&
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
))
)
while
(
rbStart
<
bwpSize
&&
(
rballoc_mask
[
rbStart
]
&
slbitmap
)
!=
slbitmap
)
rbStart
++
;
rbStart
++
;
sched_pusch
->
rbStart
=
rbStart
;
sched_pusch
->
rbStart
=
rbStart
;
uint16_t
max_rbSize
=
1
;
uint16_t
max_rbSize
=
1
;
while
(
rbStart
+
max_rbSize
<
bwpSize
&&
while
(
rbStart
+
max_rbSize
<
bwpSize
&&
(
rballoc_mask
[
rbStart
+
max_rbSize
]
&
slbitmap
)
==
slbitmap
)
(
rballoc_mask
[
rbStart
+
max_rbSize
]
&&
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
)))
max_rbSize
++
;
max_rbSize
++
;
if
(
rbStart
+
min_rb
>=
bwpSize
)
{
if
(
rbStart
+
min_rb
>=
bwpSize
)
{
...
@@ -1445,7 +1443,7 @@ void pf_ul(module_id_t module_id,
...
@@ -1445,7 +1443,7 @@ void pf_ul(module_id_t module_id,
n_rb_sched
-=
sched_pusch
->
rbSize
;
n_rb_sched
-=
sched_pusch
->
rbSize
;
for
(
int
rb
=
0
;
rb
<
sched_ctrl
->
sched_pusch
.
rbSize
;
rb
++
)
for
(
int
rb
=
0
;
rb
<
sched_ctrl
->
sched_pusch
.
rbSize
;
rb
++
)
rballoc_mask
[
rb
+
sched_ctrl
->
sched_pusch
.
rbStart
]
^=
SL_to_bitmap
(
ps
->
startSymbolIndex
,
ps
->
nrOfSymbols
)
;
rballoc_mask
[
rb
+
sched_ctrl
->
sched_pusch
.
rbStart
]
^=
slbitmap
;
}
}
}
}
...
@@ -1479,7 +1477,7 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
...
@@ -1479,7 +1477,7 @@ bool nr_fr1_ulsch_preprocessor(module_id_t module_id, frame_t frame, sub_frame_t
if
(
tda
<
0
)
if
(
tda
<
0
)
return
false
;
return
false
;
int
K2
=
get_K2
(
scc
,
scc_sib1
,
sched_ctrl
->
active_ubwp
,
tda
,
mu
);
int
K2
=
get_K2
(
scc
,
scc_sib1
,
sched_ctrl
->
active_ubwp
,
tda
,
mu
);
const
int
sched_frame
=
(
frame
+
(
slot
+
K2
>=
nr_slots_per_frame
[
mu
]))
&
1023
;
const
int
sched_frame
=
(
frame
+
(
slot
+
K2
>=
nr_slots_per_frame
[
mu
]))
%
1024
;
const
int
sched_slot
=
(
slot
+
K2
)
%
nr_slots_per_frame
[
mu
];
const
int
sched_slot
=
(
slot
+
K2
)
%
nr_slots_per_frame
[
mu
];
if
(
!
is_xlsch_in_slot
(
nr_mac
->
ulsch_slot_bitmap
[
sched_slot
/
64
],
sched_slot
))
if
(
!
is_xlsch_in_slot
(
nr_mac
->
ulsch_slot_bitmap
[
sched_slot
/
64
],
sched_slot
))
...
...
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
aebabbcc
...
@@ -338,8 +338,6 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -338,8 +338,6 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
sizeof
(
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
rrc_buffer
));
sizeof
(
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
rrc_buffer
));
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
rrc_buffer_size
=
(
enc_rval
.
encoded
+
7
)
>>
3
;
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
rrc_buffer_size
=
(
enc_rval
.
encoded
+
7
)
>>
3
;
itti_send_msg_to_task
(
TASK_X2AP
,
ENB_MODULE_ID_TO_INSTANCE
(
0
),
msg
);
//Check right id instead of hardcoding
itti_send_msg_to_task
(
TASK_X2AP
,
ENB_MODULE_ID_TO_INSTANCE
(
0
),
msg
);
//Check right id instead of hardcoding
}
else
if
(
get_softmodem_params
()
->
do_ra
||
get_softmodem_params
()
->
sa
)
{
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
rrc
->
module_id
,
GNB_FLAG_YES
,
ue_context_p
->
ue_id_rnti
,
0
,
0
,
rrc
->
module_id
);
}
}
rrc
->
Nb_ue
++
;
rrc
->
Nb_ue
++
;
...
@@ -373,35 +371,36 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -373,35 +371,36 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
}
}
if
(
m
==
NULL
){
if
(
m
==
NULL
){
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
rrc
->
module_id
,
GNB_FLAG_YES
,
ue_context_p
->
ue_id_rnti
,
0
,
0
,
rrc
->
module_id
);
LOG_W
(
RRC
,
"Calling RRC PDCP/RLC ASN1 request functions for protocol context %p with module_id %d, rnti %x, frame %d, subframe %d eNB_index %d
\n
"
,
&
ctxt
,
LOG_W
(
RRC
,
"Calling RRC PDCP/RLC ASN1 request functions for protocol context %p with module_id %d, rnti %x, frame %d, subframe %d eNB_index %d
\n
"
,
&
ctxt
,
ctxt
.
module_id
,
ctxt
.
module_id
,
ctxt
.
rnti
,
ctxt
.
rnti
,
ctxt
.
frame
,
ctxt
.
frame
,
ctxt
.
subframe
,
ctxt
.
subframe
,
ctxt
.
eNB_index
);
ctxt
.
eNB_index
);
}
nr_rrc_pdcp_config_asn1_req
(
&
ctxt
,
get_softmodem_params
()
->
sa
?
ue_context_p
->
ue_context
.
rb_config
->
srb_ToAddModList
:
(
NR_SRB_ToAddModList_t
*
)
NULL
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToAddModList
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToReleaseList
,
(
ue_context_p
->
ue_context
.
integrity_algorithm
<<
4
)
|
ue_context_p
->
ue_context
.
ciphering_algorithm
,
NULL
,
/* kRRCenc - unused */
NULL
,
/* kRRCint - unused */
kUPenc
,
/* kUPenc */
kUPint
,
/* kUPint */
NULL
,
NULL
,
ue_context_p
->
ue_context
.
secondaryCellGroup
->
rlc_BearerToAddModList
);
nr_rrc_rlc_config_asn1_req
(
&
ctxt
,
get_softmodem_params
()
->
sa
?
ue_context_p
->
ue_context
.
rb_config
->
srb_ToAddModList
:
(
NR_SRB_ToAddModList_t
*
)
NULL
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToAddModList
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToReleaseList
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
ue_context_p
->
ue_context
.
secondaryCellGroup
->
rlc_BearerToAddModList
);
LOG_D
(
RRC
,
"%s:%d: done RRC PDCP/RLC ASN1 request for UE rnti %x
\n
"
,
__FUNCTION__
,
__LINE__
,
ctxt
.
rnti
);
nr_rrc_pdcp_config_asn1_req
(
&
ctxt
,
get_softmodem_params
()
->
sa
?
ue_context_p
->
ue_context
.
rb_config
->
srb_ToAddModList
:
(
NR_SRB_ToAddModList_t
*
)
NULL
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToAddModList
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToReleaseList
,
(
ue_context_p
->
ue_context
.
integrity_algorithm
<<
4
)
|
ue_context_p
->
ue_context
.
ciphering_algorithm
,
NULL
,
/* kRRCenc - unused */
NULL
,
/* kRRCint - unused */
kUPenc
,
/* kUPenc */
kUPint
,
/* kUPint */
NULL
,
NULL
,
ue_context_p
->
ue_context
.
secondaryCellGroup
->
rlc_BearerToAddModList
);
nr_rrc_rlc_config_asn1_req
(
&
ctxt
,
get_softmodem_params
()
->
sa
?
ue_context_p
->
ue_context
.
rb_config
->
srb_ToAddModList
:
(
NR_SRB_ToAddModList_t
*
)
NULL
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToAddModList
,
ue_context_p
->
ue_context
.
rb_config
->
drb_ToReleaseList
,
(
LTE_PMCH_InfoList_r9_t
*
)
NULL
,
ue_context_p
->
ue_context
.
secondaryCellGroup
->
rlc_BearerToAddModList
);
LOG_D
(
RRC
,
"%s:%d: done RRC PDCP/RLC ASN1 request for UE rnti %x
\n
"
,
__FUNCTION__
,
__LINE__
,
ctxt
.
rnti
);
}
}
}
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf
View file @
aebabbcc
...
@@ -45,8 +45,6 @@ gNBs =
...
@@ -45,8 +45,6 @@ gNBs =
remote_s_portc
=
500
;
remote_s_portc
=
500
;
remote_s_portd
=
2152
;
remote_s_portd
=
2152
;
ssb_SubcarrierOffset
=
0
;
ssb_SubcarrierOffset
=
0
;
pdsch_AntennaPorts
=
1
;
pusch_AntennaPorts
=
1
;
min_rxtxtime
=
6
;
min_rxtxtime
=
6
;
pdcch_ConfigSIB1
= (
pdcch_ConfigSIB1
= (
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
View file @
aebabbcc
...
@@ -37,6 +37,7 @@ gNBs =
...
@@ -37,6 +37,7 @@ gNBs =
//////////
Physical
parameters
:
//////////
Physical
parameters
:
ssb_SubcarrierOffset
=
0
;
ssb_SubcarrierOffset
=
0
;
servingCellConfigCommon
= (
servingCellConfigCommon
= (
{
{
#spCellConfigCommon
#spCellConfigCommon
...
...
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