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
e451ff54
Commit
e451ff54
authored
Mar 26, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixing compilation errors and one file left behind
parent
d320fa13
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
42 additions
and
122 deletions
+42
-122
openair1/PHY/NR_REFSIG/dmrs_nr.c
openair1/PHY/NR_REFSIG/dmrs_nr.c
+0
-3
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+1
-9
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+10
-103
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+0
-2
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+2
-1
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+2
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+26
-2
No files found.
openair1/PHY/NR_REFSIG/dmrs_nr.c
View file @
e451ff54
...
...
@@ -141,9 +141,6 @@ uint8_t is_dmrs_symbol(uint8_t l,
is_dmrs_freq
=
0
;
is_dmrs_time
=
0
;
if
(
mapping_type
==
typeB
)
l
-=
start_symbol
;
AssertFatal
(
l
>=
0
,
"Check DMRS configuration (start_symbol) !
\n
"
);
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
e451ff54
...
...
@@ -307,12 +307,6 @@ void nr_ulsch_extract_rbs_single(int32_t **rxdataF,
printf
(
"re = %d, symbol = %d
\n
"
,
re
,
symbol
);
#endif
if
(
symbol
==
dmrs_symbol
)
is_dmrs_re
=
(
re
==
get_dmrs_freq_idx_ul
(
n
,
k_prime
,
delta
,
pusch_pdu
->
dmrs_config_type
));
else
is_dmrs_re
=
0
;
if
(
is_dmrs_re
==
0
&&
is_ptrs_symbol_flag
==
0
)
{
rxF_ext
[
rxF_ext_index
]
=
(
rxF
[
((
start_re
+
re
)
*
2
)
%
(
frame_parms
->
ofdm_symbol_size
*
2
)]);
...
...
@@ -1027,7 +1021,7 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
unsigned
char
harq_pid
)
{
uint8_t
first_symbol_flag
,
aarx
,
aatx
,
dmrs_symbol_flag
,
ptrs_symbol_flag
;
// dmrs_symbol_flag, a flag to indicate DMRS REs in current symbol
uint8_t
aarx
,
aatx
,
dmrs_symbol_flag
,
ptrs_symbol_flag
;
// dmrs_symbol_flag, a flag to indicate DMRS REs in current symbol
uint32_t
nb_re_pusch
,
bwp_start_subcarrier
;
uint8_t
L_ptrs
=
0
;
// PTRS parameter
int
avgs
;
...
...
@@ -1038,7 +1032,6 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
dmrs_symbol_flag
=
0
;
ptrs_symbol_flag
=
0
;
first_symbol_flag
=
0
;
gNB
->
pusch_vars
[
UE_id
]
->
ptrs_sc_per_ofdm_symbol
=
0
;
if
(
symbol
==
rel15_ul
->
start_symbol_index
){
...
...
@@ -1046,7 +1039,6 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
gNB
->
pusch_vars
[
UE_id
]
->
dmrs_symbol
=
0
;
gNB
->
pusch_vars
[
UE_id
]
->
cl_done
=
0
;
gNB
->
pusch_vars
[
UE_id
]
->
ptrs_symbols
=
0
;
first_symbol_flag
=
1
;
if
(
((
rel15_ul
->
pdu_bit_map
)
>>
2
)
&
0x01
)
{
// if there is ptrs pdu
L_ptrs
=
1
<<
(
rel15_ul
->
pusch_ptrs
.
ptrs_time_density
);
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
View file @
e451ff54
...
...
@@ -90,7 +90,7 @@ void phy_adjust_gain_nr(PHY_VARS_NR_UE *ue,
uint32_t
rx_power_fil_dB
,
uint8_t
eNB_id
);
int16_t
get_nr_PL
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_index
);
int16_t
get_nr_PL
(
uint8_t
Mod_id
,
uint8_t
CC_id
,
uint8_t
gNB_index
);
#endif
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
e451ff54
...
...
@@ -126,14 +126,9 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
n_rnti
=
0x1234
;
Nid_cell
=
0
;
N_PRB_oh
=
0
;
// higher layer (RRC) parameter xOverhead in PUSCH-ServingCellConfig
<<<<<<<
HEAD
mapping_type
=
UE
->
pusch_config
.
pusch_TimeDomainResourceAllocation
[
0
]
->
mappingType
;
int
dmrs_symb
;
=======
number_dmrs_symbols
=
0
;
uint8_t
mapping_type
=
UE
->
pusch_config
.
pusch_TimeDomainResourceAllocation
[
0
]
->
mappingType
;
>>>>>>>
develop
for
(
cwd_index
=
0
;
cwd_index
<
num_of_codewords
;
cwd_index
++
)
{
...
...
@@ -142,47 +137,23 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
start_symbol
=
harq_process_ul_ue
->
start_symbol
;
<<<<<<<
HEAD
dmrs_symb
=-
1
;
number_dmrs_symbols
=
0
;
for
(
i
=
start_symbol
;
i
<
start_symbol
+
harq_process_ul_ue
->
number_of_symbols
;
i
++
)
{
number_dmrs_symbols
+=
is_dmrs_symbol
(
i
,
=======
for
(
i
=
start_symbol
;
i
<
start_symbol
+
harq_process_ul_ue
->
number_of_symbols
;
i
++
)
number_dmrs_symbols
+=
is_dmrs_symbol
((
mapping_type
)
?
i
-
start_symbol
:
i
,
>>>>>>>
develop
0
,
0
,
0
,
0
,
0
,
harq_process_ul_ue
->
number_of_symbols
,
<<<<<<<
HEAD
start_symbol
,
&
UE
->
dmrs_UplinkConfig
,
mapping_type
,
=======
UE
->
pusch_config
.
dmrs_UplinkConfig
.
pusch_dmrs_type
,
>>>>>>>
develop
frame_parms
->
ofdm_symbol_size
);
if
(
dmrs_symb
==
-
1
&&
number_dmrs_symbols
==
1
)
dmrs_symb
=
i
;
}
AssertFatal
(
number_dmrs_symbols
==
1
,
"number_dmrs_symbols != 1
\n
"
);
AssertFatal
(
dmrs_symb
>=
0
,
"dmrs_symb < 0
\n
"
);
LOG_D
(
PHY
,
"pusch: start_symbol %d, dmrs_symbol %d, num_symbols %d
\n
"
,
start_symbol
,
dmrs_symb
,
harq_process_ul_ue
->
number_of_symbols
);
ulsch_ue
->
length_dmrs
=
number_dmrs_symbols
;
// pusch.MaxLenght is redundant here as number_dmrs_symbols
// contains all dmrs symbols even for double symbol dmrs
ulsch_ue
->
rnti
=
n_rnti
;
ulsch_ue
->
Nid_cell
=
Nid_cell
;
<<<<<<<
HEAD
ulsch_ue
->
nb_re_dmrs
=
12
;
//((UE->dmrs_UplinkConfig.pusch_dmrs_type == pusch_dmrs_type1)?6:4)*number_dmrs_symbols;
=======
ulsch_ue
->
nb_re_dmrs
=
((
UE
->
pusch_config
.
dmrs_UplinkConfig
.
pusch_dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
);
>>>>>>>
develop
N_RE_prime
=
NR_NB_SC_PER_RB
*
harq_process_ul_ue
->
number_of_symbols
-
ulsch_ue
->
nb_re_dmrs
*
number_dmrs_symbols
-
N_PRB_oh
;
...
...
@@ -415,17 +386,13 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
uint8_t
l_ref
;
uint16_t
m
=
0
,
n
=
0
,
dmrs_idx
=
0
,
ptrs_idx
=
0
;
for
(
l
=
start_symbol
;
l
<
start_symbol
+
harq_process_ul_ue
->
number_of_symbols
;
l
++
)
{
for
(
l
=
start_symbol
;
l
<
start_symbol
+
harq_process_ul_ue
->
number_of_symbols
;
l
++
)
{
k
=
start_sc
;
n
=
0
;
dmrs_idx
=
0
;
l_ref
=
(
mapping_type
)
?
l
-
start_symbol
:
l
;
<<<<<<<
HEAD
if
(
l
!=
dmrs_symb
)
{
for
(
i
=
0
;
i
<
harq_process_ul_ue
->
nb_rb
*
NR_NB_SC_PER_RB
;
i
++
)
{
=======
for
(
i
=
0
;
i
<
harq_process_ul_ue
->
nb_rb
*
NR_NB_SC_PER_RB
;
i
++
)
{
sample_offsetF
=
l
*
frame_parms
->
ofdm_symbol_size
+
k
;
...
...
@@ -491,81 +458,21 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
ptrs_idx
++
;
}
else
{
>>>>>>>
develop
sample_offsetF
=
l
*
frame_parms
->
ofdm_symbol_size
+
k
;
((
int16_t
*
)
txdataF
[
ap
])[(
sample_offsetF
)
<<
1
]
=
((
int16_t
*
)
ulsch_ue
->
y
)[
m
<<
1
];
((
int16_t
*
)
txdataF
[
ap
])[((
sample_offsetF
)
<<
1
)
+
1
]
=
((
int16_t
*
)
ulsch_ue
->
y
)[(
m
<<
1
)
+
1
];
#ifdef DEBUG_PUSCH_MAPPING
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
#ifdef DEBUG_PUSCH_MAPPING
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
m
,
l
,
k
,
((
int16_t
*
)
txdataF
[
ap
])[(
sample_offsetF
)
<<
1
],
((
int16_t
*
)
txdataF
[
ap
])[((
sample_offsetF
)
<<
1
)
+
1
]);
#endif
#endif
m
++
;
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
else
{
for
(
i
=
0
;
i
<
harq_process_ul_ue
->
nb_rb
*
NR_NB_SC_PER_RB
;
i
++
)
{
sample_offsetF
=
l
*
frame_parms
->
ofdm_symbol_size
+
k
;
is_dmrs
=
0
;
is_dmrs
=
is_dmrs_symbol
(
l
,
k
,
start_sc
,
k_prime
,
n
,
delta
,
harq_process_ul_ue
->
number_of_symbols
,
start_symbol
,
&
UE
->
dmrs_UplinkConfig
,
mapping_type
,
frame_parms
->
ofdm_symbol_size
);
if
(
is_dmrs
==
1
)
{
nr_modulation
(
pusch_dmrs
[
l
][
0
],
n_dmrs
*
2
,
DMRS_MOD_ORDER
,
mod_dmrs
);
// currently only codeword 0 is modulated. Qm = 2 as DMRS is QPSK modulated
((
int16_t
*
)
txdataF
[
ap
])[(
sample_offsetF
)
<<
1
]
=
(
Wt
[
l_prime
[
0
]]
*
Wf
[
k_prime
]
*
AMP
*
mod_dmrs
[
dmrs_idx
<<
1
])
>>
15
;
((
int16_t
*
)
txdataF
[
ap
])[((
sample_offsetF
)
<<
1
)
+
1
]
=
(
Wt
[
l_prime
[
0
]]
*
Wf
[
k_prime
]
*
AMP
*
mod_dmrs
[(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_PUSCH_MAPPING
printf
(
"dmrs_idx %d
\t
l %d
\t
k %d
\t
k_prime %d
\t
n %d
\t
dmrs: %d %d
\n
"
,
dmrs_idx
,
l
,
k
,
k_prime
,
n
,
((
int16_t
*
)
txdataF
[
ap
])[(
sample_offsetF
)
<<
1
],
((
int16_t
*
)
txdataF
[
ap
])[((
sample_offsetF
)
<<
1
)
+
1
]);
#endif
dmrs_idx
++
;
k_prime
++
;
k_prime
&=
1
;
n
+=
(
k_prime
)
?
0
:
1
;
}
else
{
//remove PDSCH REs from DMRS symbols for now
/*
((int16_t*)txdataF[ap])[(sample_offsetF)<<1] = ((int16_t *) ulsch_ue->y)[m<<1];
((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1] = ((int16_t *) ulsch_ue->y)[(m<<1) + 1];
#ifdef DEBUG_PUSCH_MAPPING
printf("m %d\t l %d \t k %d \t txdataF: %d %d\n",
m, l, k, ((int16_t*)txdataF[ap])[(sample_offsetF)<<1],
((int16_t*)txdataF[ap])[((sample_offsetF)<<1) + 1]);
#endif
m++;
*/
}
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
}
}
}
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
e451ff54
...
...
@@ -235,8 +235,6 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
G
=
nr_get_G
(
pusch_pdu
->
rb_size
,
number_symbols
,
nb_re_dmrs
,
pusch_pdu
->
qam_mod_order
,
pusch_pdu
->
nrOfLayers
);
number_dmrs_symbols
,
// number of dmrs symbols irrespective of single or double symbol dmrs
pusch_pdu
->
qam_mod_order
,
pusch_pdu
->
nrOfLayers
);
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
e451ff54
...
...
@@ -163,7 +163,8 @@ unsigned char nr_generate_ulsch_pdu(uint8_t *sdus_payload,
uint16_t
truncated_bsr
,
uint16_t
short_bsr
,
uint16_t
long_bsr
,
unsigned
short
post_padding
);
unsigned
short
post_padding
,
uint16_t
buflen
);
int8_t
nr_ue_process_dlsch
(
module_id_t
module_id
,
int
cc_id
,
uint8_t
gNB_index
,
fapi_nr_dci_indication_t
*
dci_ind
,
void
*
pduP
,
uint32_t
pdu_len
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
e451ff54
...
...
@@ -470,7 +470,8 @@ void nr_ue_get_rach(NR_PRACH_RESOURCES_t *prach_resources,
0
,
// truncated bsr
0
,
// short bsr
0
,
// long_bsr
post_padding
);
// post_padding
post_padding
,
0
);
// Padding: fill remainder with 0
if
(
post_padding
>
0
){
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
e451ff54
...
...
@@ -33,6 +33,7 @@
#include "executables/softmodem-common.h"
//#define ENABLE_MAC_PAYLOAD_DEBUG 1
void
nr_process_mac_pdu
(
module_id_t
module_idP
,
uint8_t
CC_id
,
...
...
@@ -88,7 +89,13 @@ void nr_process_mac_pdu(
/*#ifdef DEBUG_HEADER_PARSING
LOG_D(MAC, "[UE] LCID %d, PDU length %d\n", ((NR_MAC_SUBHEADER_FIXED *)pdu_ptr)->LCID, pdu_len);
#endif*/
case
UL_SCH_LCID_RECOMMENDED_BITRATE_QUERY
:
// 38.321 Ch6.1.3.20
mac_ce_len
=
2
;
break
;
case
UL_SCH_LCID_CONFIGURED_GRANT_CONFIRMATION
:
// 38.321 Ch6.1.3.7
break
;
case
UL_SCH_LCID_S_BSR
:
//38.321 section 6.1.3.1
//fixed length
...
...
@@ -171,6 +178,24 @@ void nr_process_mac_pdu(
// end of MAC PDU, can ignore the rest.
break
;
// MAC SDUs
case
UL_SCH_LCID_SRB1
:
// todo
break
;
case
UL_SCH_LCID_SRB2
:
// todo
break
;
case
UL_SCH_LCID_SRB3
:
// todo
break
;
case
UL_SCH_LCID_CCCH_MSG3
:
// todo
break
;
case
UL_SCH_LCID_CCCH
:
// todo
mac_subheader_len
=
2
;
break
;
case
UL_SCH_LCID_DTCH
:
// check if LCID is valid at current time.
if
(((
NR_MAC_SUBHEADER_SHORT
*
)
pdu_ptr
)
->
F
){
...
...
@@ -230,7 +255,6 @@ void nr_process_mac_pdu(
}
}
/*
* When data are received on PHY and transmitted to MAC
*/
...
...
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