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
10433206
Commit
10433206
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
012db77f
503b46cd
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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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 @
10433206
...
...
@@ -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