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
8ad3b40c
Commit
8ad3b40c
authored
Jul 12, 2021
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixes in pucch configuration for SA
parent
5055023d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
3 deletions
+35
-3
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
+3
-0
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+27
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+4
-1
No files found.
openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
View file @
8ad3b40c
...
...
@@ -91,6 +91,9 @@ void nr_generate_pucch0(PHY_VARS_NR_UE *ue,
// the value of u,v (delta always 0 for PUCCH) has to be calculated according to TS 38.211 Subclause 6.3.2.2.1
uint8_t
u
[
2
]
=
{
0
,
0
},
v
[
2
]
=
{
0
,
0
};
LOG_D
(
PHY
,
"pucch0: nr_symbols %d, start_symbol %d, prb_start %d, second_hop_prb %d, group_hop_flag %d, sequence_hop_flag %d, mcs %d
\n
"
,
pucch_pdu
->
nr_of_symbols
,
pucch_pdu
->
start_symbol_index
,
pucch_pdu
->
prb_start
,
pucch_pdu
->
second_hop_prb
,
pucch_pdu
->
group_hop_flag
,
pucch_pdu
->
sequence_hop_flag
,
pucch_pdu
->
mcs
);
#ifdef DEBUG_NR_PUCCH_TX
printf
(
"
\t
[nr_generate_pucch0] sequence generation: variable initialization for test
\n
"
);
#endif
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
8ad3b40c
...
...
@@ -1053,7 +1053,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
break
;
}
LOG_D
(
PHY
,
"In %s DL PDU length in bits: %d, in bytes: %d
\n
"
,
__FUNCTION__
,
dlsch0
->
harq_processes
[
harq_pid
]
->
TBS
,
dlsch0
->
harq_processes
[
harq_pid
]
->
TBS
/
8
);
LOG_D
(
PHY
,
"In %s DL PDU length in bits: %d, in bytes: %d
\n
"
,
__FUNCTION__
,
dlsch0
->
harq_processes
[
harq_pid
]
->
TBS
,
dlsch0
->
harq_processes
[
harq_pid
]
->
TBS
/
8
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
8ad3b40c
...
...
@@ -1310,6 +1310,27 @@ void nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
}
pucch_pdu
->
freq_hop_flag
=
1
;
pucch_pdu
->
time_domain_occ_idx
=
0
;
if
(
O_SR
==
0
||
pucch
->
sr_payload
==
0
)
{
/* only ack is transmitted TS 36.213 9.2.3 UE procedure for reporting HARQ-ACK */
if
(
O_ACK
==
1
)
pucch_pdu
->
mcs
=
sequence_cyclic_shift_1_harq_ack_bit
[
pucch
->
ack_payload
&
0x1
];
/* only harq of 1 bit */
else
pucch_pdu
->
mcs
=
sequence_cyclic_shift_2_harq_ack_bits
[
pucch
->
ack_payload
&
0x3
];
/* only harq with 2 bits */
}
else
{
/* SR + eventually ack are transmitted TS 36.213 9.2.5.1 UE procedure for multiplexing HARQ-ACK or CSI and SR */
if
(
pucch
->
sr_payload
==
1
)
{
/* positive scheduling request */
if
(
O_ACK
==
1
)
pucch_pdu
->
mcs
=
sequence_cyclic_shift_1_harq_ack_bit_positive_sr
[
pucch
->
ack_payload
&
0x1
];
/* positive SR and harq of 1 bit */
else
if
(
O_ACK
==
2
)
pucch_pdu
->
mcs
=
sequence_cyclic_shift_2_harq_ack_bits_positive_sr
[
pucch
->
ack_payload
&
0x3
];
/* positive SR and harq with 2 bits */
else
pucch_pdu
->
mcs
=
0
;
/* only positive SR */
}
}
// TODO verify if SR can be transmitted in this mode
pucch_pdu
->
payload
=
(
pucch
->
sr_payload
<<
O_ACK
)
|
pucch
->
ack_payload
;
}
else
if
(
pucch
->
pucch_resource
!=
NULL
)
{
...
...
@@ -1522,6 +1543,10 @@ int16_t get_pucch_tx_power_ue(NR_UE_MAC_INST_t *mac,
else
P_O_NOMINAL_PUCCH
=
*
mac
->
scc_SIB
->
uplinkConfigCommon
->
initialUplinkBWP
.
pucch_ConfigCommon
->
choice
.
setup
->
p0_nominal
;
struct
NR_PUCCH_PowerControl
*
power_config
=
pucch_Config
->
pucch_PowerControl
;
if
(
!
power_config
)
return
(
PUCCH_POWER_DEFAULT
);
int16_t
P_O_UE_PUCCH
;
int16_t
G_b_f_c
=
0
;
...
...
@@ -1730,7 +1755,7 @@ void select_pucch_resource(NR_UE_MAC_INST_t *mac,
NR_BWP_Id_t
bwp_id
=
mac
->
UL_BWP_Id
;
int
n_list
;
if
((
bwp_id
==
0
&&
if
((
bwp_id
==
0
&&
mac
->
cg
==
NULL
)
||
(
bwp_id
==
0
&&
mac
->
cg
&&
...
...
@@ -2033,6 +2058,7 @@ uint8_t get_downlink_ack(NR_UE_MAC_INST_t *mac,
}
pucch
->
ack_payload
=
o_ACK
;
return
(
number_harq_feedback
);
}
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
8ad3b40c
...
...
@@ -1879,7 +1879,10 @@ void nr_ue_pucch_scheduler(module_id_t module_idP, frame_t frameP, int slotP, in
// if multiplexing of HARQ and CSI is not possible, transmit only HARQ bits
if
((
O_ACK
!=
0
)
&&
(
O_ACK
!=
0
)
&&
pucch_Config
&&
(
pucch_Config
->
format2
->
choice
.
setup
->
simultaneousHARQ_ACK_CSI
==
NULL
))
{
if
((
O_ACK
!=
0
)
&&
(
O_CSI
!=
0
)
&&
pucch_Config
&&
pucch_Config
->
format2
&&
(
pucch_Config
->
format2
->
choice
.
setup
->
simultaneousHARQ_ACK_CSI
==
NULL
))
{
O_CSI
=
0
;
pucch
->
csi_part1_payload
=
0
;
pucch
->
csi_part2_payload
=
0
;
...
...
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