Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG
OpenXG UE
Commits
88448ce5
Commit
88448ce5
authored
Jul 29, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UL_scheduling' into ul_harq
parents
c05bb750
c65e3aa9
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
69 additions
and
29 deletions
+69
-29
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+5
-4
openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h
openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h
+1
-0
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+1
-0
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
+8
-8
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+6
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-1
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+41
-5
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_enb.conf
targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_enb.conf
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
+4
-4
No files found.
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
View file @
88448ce5
...
...
@@ -34,6 +34,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
unsigned
char
Ns
,
unsigned
short
p
,
unsigned
char
symbol
,
int
ul_id
,
unsigned
short
bwp_start_subcarrier
,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
)
{
...
...
@@ -43,8 +44,8 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
unsigned
int
pilot_cnt
,
re_cnt
;
int16_t
ch
[
2
],
ch_r
[
2
],
ch_l
[
2
],
*
pil
,
*
rxF
,
*
ul_ch
;
int16_t
*
fl
,
*
fm
,
*
fr
,
*
fml
,
*
fmr
,
*
fmm
,
*
fdcl
,
*
fdcr
,
*
fdclh
,
*
fdcrh
;
int
ch_offset
,
symbol_offset
,
UE_id
=
0
;
int32_t
**
ul_ch_estimates_time
=
gNB
->
pusch_vars
[
UE
_id
]
->
ul_ch_estimates_time
;
int
ch_offset
,
symbol_offset
;
int32_t
**
ul_ch_estimates_time
=
gNB
->
pusch_vars
[
ul
_id
]
->
ul_ch_estimates_time
;
__m128i
*
ul_ch_128
;
#ifdef DEBUG_CH
...
...
@@ -55,7 +56,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
//uint16_t Nid_cell = (eNB_offset == 0) ? gNB->frame_parms.Nid_cell : gNB->measurements.adj_cell_id[eNB_offset-1];
uint8_t
nushift
;
int
**
ul_ch_estimates
=
gNB
->
pusch_vars
[
UE
_id
]
->
ul_ch_estimates
;
int
**
ul_ch_estimates
=
gNB
->
pusch_vars
[
ul
_id
]
->
ul_ch_estimates
;
int
**
rxdataF
=
gNB
->
common_vars
.
rxdataF
;
nushift
=
(
p
>>
1
)
&
1
;
...
...
@@ -338,7 +339,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
8
);
}
}
#ifdef DEBUG_P
D
SCH
#ifdef DEBUG_P
U
SCH
ul_ch
=
(
int16_t
*
)
&
ul_ch_estimates
[
aarx
][
ch_offset
];
for
(
uint16_t
idxP
=
0
;
idxP
<
ceil
((
float
)
nb_rb_pusch
*
12
/
8
);
idxP
++
)
{
for
(
uint8_t
idxI
=
0
;
idxI
<
16
;
idxI
+=
2
)
{
...
...
openair1/PHY/NR_ESTIMATION/nr_ul_estimation.h
View file @
88448ce5
...
...
@@ -43,6 +43,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
unsigned
char
Ns
,
unsigned
short
p
,
unsigned
char
symbol
,
int
ul_id
,
unsigned
short
bwp_start_subcarrier
,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
);
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
88448ce5
...
...
@@ -1082,6 +1082,7 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
nr_tti_rx
,
0
,
// p
symbol
,
ulsch_id
,
bwp_start_subcarrier
,
rel15_ul
);
stop_meas
(
&
gNB
->
ulsch_channel_estimation_stats
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_demodulation.c
View file @
88448ce5
...
...
@@ -333,9 +333,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
dlsch0_harq
->
pmi_alloc
,
pdsch_vars
[
eNB_id_i
]
->
pmi_ext
,
symbol
,
pilots
,
start_rb
,
nb_rb_pdsch
,
pilots
,
start_rb
,
nb_rb_pdsch
,
nr_tti_rx
,
ue
->
high_speed_flag
,
frame_parms
,
...
...
@@ -348,9 +348,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
dlsch0_harq
->
pmi_alloc
,
pdsch_vars
[
eNB_id_i
]
->
pmi_ext
,
symbol
,
pilots
,
start_rb
,
nb_rb_pdsch
,
pilots
,
start_rb
,
nb_rb_pdsch
,
nr_tti_rx
,
ue
->
high_speed_flag
,
frame_parms
,
...
...
@@ -510,7 +510,7 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
(
aatx
>
1
)
?
pdsch_vars
[
eNB_id
]
->
rho
:
NULL
,
frame_parms
,
symbol
,
pilots
,
pilots
,
first_symbol_flag
,
dlsch0_harq
->
Qm
,
nb_rb
,
...
...
@@ -1141,7 +1141,7 @@ void nr_dlsch_channel_compensation(int **rxdataF_ext,
int
**
rho
,
NR_DL_FRAME_PARMS
*
frame_parms
,
unsigned
char
symbol
,
uint8_t
pilots
,
uint8_t
pilots
,
uint8_t
first_symbol_flag
,
unsigned
char
mod_order
,
unsigned
short
nb_rb
,
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
88448ce5
...
...
@@ -448,7 +448,7 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
slot_offset
-=
ru
->
N_TA_offset
;
char
name
[
128
];
FILE
*
f
;
sprintf
(
name
,
"rxdata.%d.%d.
raw"
,
frame_rx
,
slot_rx
);
sprintf
(
name
,
"rxdata.%d.%d.
%d.raw"
,
ulsch
->
rnti
,
frame_rx
,
slot_rx
);
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
&
ru
->
common
.
rxdata
[
0
][
slot_offset
],
2
,
frame_parms
->
get_samples_per_slot
(
slot_rx
,
frame_parms
)
*
2
,
f
);
fclose
(
f
);
...
...
@@ -457,14 +457,15 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
uint8_t
symbol_start
=
ulsch_harq
->
ulsch_pdu
.
start_symbol_index
;
uint8_t
symbol_end
=
symbol_start
+
ulsch_harq
->
ulsch_pdu
.
nr_of_symbols
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
1
);
for
(
uint8_t
symbol
=
symbol_start
;
symbol
<
symbol_end
;
symbol
++
)
{
nr_rx_pusch
(
gNB
,
ULSCH_id
,
frame_rx
,
slot_rx
,
symbol
,
harq_pid
);
}
for
(
uint8_t
symbol
=
symbol_start
;
symbol
<
symbol_end
;
symbol
++
)
{
no_sig
=
nr_rx_pusch
(
gNB
,
ULSCH_id
,
frame_rx
,
slot_rx
,
symbol
,
harq_pid
);
if
(
no_sig
)
return
;
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
0
);
//LOG_M("rxdataF_comp.m","rxF_comp",gNB->pusch_vars[0]->rxdataF_comp[0],6900,1,1);
//LOG_M("rxdataF_ext.m","rxF_ext",gNB->pusch_vars[0]->rxdataF_ext[0],6900,1,1);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX
,
1
);
nr_ulsch_procedures
(
gNB
,
frame_rx
,
slot_rx
,
ULSCH_id
,
harq_pid
);
nr_ulsch_procedures
(
gNB
,
frame_rx
,
slot_rx
,
ULSCH_id
,
harq_pid
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_ULSCH_PROCEDURES_RX
,
0
);
break
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
88448ce5
...
...
@@ -820,7 +820,7 @@ void fill_dci_pdu_rel15(NR_ServingCellConfigCommon_t *scc,
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
]
=
dci_size
;
AssertFatal
(
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
]
<=
64
,
"DCI sizes above 64 bits not yet supported"
);
if
(
dci_formats
[
d
]
==
NR_DL_DCI_FORMAT_1_1
)
if
(
dci_formats
[
d
]
==
NR_DL_DCI_FORMAT_1_1
||
dci_formats
[
d
]
==
NR_UL_DCI_FORMAT_0_1
)
prepare_dci
(
secondaryCellGroup
,
&
dci_pdu_rel15
[
d
],
dci_formats
[
d
],
bwp_id
);
/// Payload generation
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
88448ce5
...
...
@@ -3198,6 +3198,42 @@ uint8_t do_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
ASN_SEQUENCE_ADD
(
&
dl_dcch_msg
.
message
.
choice
.
c1
.
choice
.
ueCapabilityEnquiry
.
criticalExtensions
.
choice
.
c1
.
choice
.
ueCapabilityEnquiry_r8
.
ue_CapabilityRequest
.
list
,
&
rat
);
/* request NR configuration */
LTE_UECapabilityEnquiry_r8_IEs_t
*
r8
=
&
dl_dcch_msg
.
message
.
choice
.
c1
.
choice
.
ueCapabilityEnquiry
.
criticalExtensions
.
choice
.
c1
.
choice
.
ueCapabilityEnquiry_r8
;
LTE_UECapabilityEnquiry_v8a0_IEs_t
r8_a0
;
LTE_UECapabilityEnquiry_v1180_IEs_t
r11_80
;
LTE_UECapabilityEnquiry_v1310_IEs_t
r13_10
;
LTE_UECapabilityEnquiry_v1430_IEs_t
r14_30
;
LTE_UECapabilityEnquiry_v1510_IEs_t
r15_10
;
memset
(
&
r8_a0
,
0
,
sizeof
(
r8_a0
));
memset
(
&
r11_80
,
0
,
sizeof
(
r11_80
));
memset
(
&
r13_10
,
0
,
sizeof
(
r13_10
));
memset
(
&
r14_30
,
0
,
sizeof
(
r14_30
));
memset
(
&
r15_10
,
0
,
sizeof
(
r15_10
));
r8
->
nonCriticalExtension
=
&
r8_a0
;
r8_a0
.
nonCriticalExtension
=
&
r11_80
;
r11_80
.
nonCriticalExtension
=
&
r13_10
;
r13_10
.
nonCriticalExtension
=
&
r14_30
;
r14_30
.
nonCriticalExtension
=
&
r15_10
;
/* TODO: no hardcoded values here */
OCTET_STRING_t
req_freq
;
unsigned
char
req_freq_buf
[
5
]
=
{
0x00
,
0x20
,
0x1a
,
0x02
,
0x68
};
// bands 7 & nr78
//unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x08, 0x18 }; // bands 7 & nr260
//unsigned char req_freq_buf[13] = { 0x00, 0xc0, 0x18, 0x01, 0x01, 0x30, 0x4b, 0x04, 0x0e, 0x08, 0x24, 0x04, 0xd0 };
// unsigned char req_freq_buf[21] = {
//0x01, 0x60, 0x18, 0x05, 0x80, 0xc0, 0x04, 0x04, 0xc1, 0x2c, 0x10, 0x08, 0x20, 0x30, 0x40, 0xe0, 0x82, 0x40, 0x28, 0x80, 0x9a
// };
req_freq
.
buf
=
req_freq_buf
;
req_freq
.
size
=
5
;
// req_freq.size = 21;
r15_10
.
requestedFreqBandsNR_MRDC_r15
=
&
req_freq
;
if
(
LOG_DEBUGFLAG
(
DEBUG_ASN1
)
)
{
xer_fprint
(
stdout
,
&
asn_DEF_LTE_DL_DCCH_Message
,
(
void
*
)
&
dl_dcch_msg
);
}
...
...
@@ -3276,17 +3312,17 @@ uint8_t do_NR_UECapabilityEnquiry( const protocol_ctxt_t *const ctxt_pP,
/* TODO: no hardcoded values here */
OCTET_STRING_t
req_freq
;
//
unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x02, 0x68 }; // bands 7 & nr78
unsigned
char
req_freq_buf
[
5
]
=
{
0x00
,
0x20
,
0x1a
,
0x02
,
0x68
};
// bands 7 & nr78
//unsigned char req_freq_buf[5] = { 0x00, 0x20, 0x1a, 0x08, 0x18 }; // bands 7 & nr260
//unsigned char req_freq_buf[13] = { 0x00, 0xc0, 0x18, 0x01, 0x01, 0x30, 0x4b, 0x04, 0x0e, 0x08, 0x24, 0x04, 0xd0 };
unsigned
char
req_freq_buf
[
21
]
=
{
0x01
,
0x60
,
0x18
,
0x05
,
0x80
,
0xc0
,
0x04
,
0x04
,
0xc1
,
0x2c
,
0x10
,
0x08
,
0x20
,
0x30
,
0x40
,
0xe0
,
0x82
,
0x40
,
0x28
,
0x80
,
0x9a
};
//
unsigned char req_freq_buf[21] = {
//
0x01, 0x60, 0x18, 0x05, 0x80, 0xc0, 0x04, 0x04, 0xc1, 0x2c, 0x10, 0x08, 0x20, 0x30, 0x40, 0xe0, 0x82, 0x40, 0x28, 0x80, 0x9a
//
};
req_freq
.
buf
=
req_freq_buf
;
req_freq
.
size
=
5
;
req_freq
.
size
=
21
;
//
req_freq.size = 21;
r15_10
.
requestedFreqBandsNR_MRDC_r15
=
&
req_freq
;
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
88448ce5
...
...
@@ -917,7 +917,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
srs_res0
->
resourceMapping
.
repetitionFactor
=
NR_SRS_Resource__resourceMapping__repetitionFactor_n1
;
srs_res0
->
freqDomainPosition
=
0
;
srs_res0
->
freqDomainShift
=
0
;
srs_res0
->
freqHopping
.
c_SRS
=
61
;
srs_res0
->
freqHopping
.
c_SRS
=
0
;
srs_res0
->
freqHopping
.
b_SRS
=
0
;
srs_res0
->
freqHopping
.
b_hop
=
0
;
srs_res0
->
groupOrSequenceHopping
=
NR_SRS_Resource__groupOrSequenceHopping_neither
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_enb.conf
View file @
88448ce5
...
...
@@ -235,7 +235,7 @@ MACRLCs = (
THREAD_STRUCT
= (
{
parallel_config
=
"PARALLEL_RU_L1_TRX_SPLIT
aaaaaa
"
;
parallel_config
=
"PARALLEL_RU_L1_TRX_SPLIT"
;
worker_config
=
"ENABLE"
;
}
);
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/testing_gnb.conf
View file @
88448ce5
...
...
@@ -132,12 +132,12 @@ gNBs =
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0
=
2
;
initialULBWPmappingType_0
=
1
# this is SS=0 L=1
1
# this is SS=0 L=1
2
initialULBWPstartSymbolAndLength_0
=
55
;
initialULBWPk2_1
=
2
;
initialULBWPmappingType_1
=
1
;
# this is SS=0 L=1
2
# this is SS=0 L=1
1
initialULBWPstartSymbolAndLength_1
=
69
;
initialULBWPk2_2
=
7
;
...
...
@@ -266,8 +266,8 @@ RUs = (
THREAD_STRUCT
= (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
//
parallel_config
=
"PARALLEL_RU_L1_TRX_SPLIT"
;
parallel_config
=
"PARALLEL_SINGLE_THREAD"
;
parallel_config
=
"PARALLEL_RU_L1_TRX_SPLIT"
;
//
parallel_config
=
"PARALLEL_SINGLE_THREAD"
;
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config
=
"WORKER_ENABLE"
;
}
...
...
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