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
wangjie
OpenXG-RAN
Commits
39577ba0
Commit
39577ba0
authored
Mar 11, 2021
by
Mahesh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UL P7 messages and UL scheduling re-enabled. Disabled HARQ from the UE side --> DL CRC OK
parent
6e61393f
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
49 additions
and
42 deletions
+49
-42
nfapi/open-nFAPI/nfapi/src/nfapi.c
nfapi/open-nFAPI/nfapi/src/nfapi.c
+1
-1
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
+8
-8
nfapi/open-nFAPI/pnf/src/pnf_p7.c
nfapi/open-nFAPI/pnf/src/pnf_p7.c
+1
-1
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+8
-8
openair1/SCHED_NR_UE/harq_nr.c
openair1/SCHED_NR_UE/harq_nr.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+2
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+2
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+26
-18
No files found.
nfapi/open-nFAPI/nfapi/src/nfapi.c
View file @
39577ba0
...
...
@@ -189,7 +189,7 @@ uint8_t pull8(uint8_t **in, uint8_t *out, uint8_t *end)
return
1
;
}
else
{
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s no space in buffer
\n
"
,
__FUNCTION__
);
return
0
;
}
...
...
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
View file @
39577ba0
...
...
@@ -2047,7 +2047,7 @@ static uint8_t pack_ul_dci_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
for
(
uint8_t
i
=
0
;
i
<
MAX_DCI_CORESET
;
++
i
)
{
if
(
!
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
RNTI
,
ppWritePackedMsg
,
end
)
&&
if
(
!
(
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
RNTI
,
ppWritePackedMsg
,
end
)
&&
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
ScramblingId
,
ppWritePackedMsg
,
end
)
&&
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
ScramblingRNTI
,
ppWritePackedMsg
,
end
)
&&
...
...
@@ -2058,7 +2058,7 @@ static uint8_t pack_ul_dci_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
push8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
powerControlOffsetSS
,
ppWritePackedMsg
,
end
)
&&
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
ppWritePackedMsg
,
end
)
&&
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
Payload
,
DCI_PAYLOAD_BYTE_LEN
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
ppWritePackedMsg
,
end
));
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
Payload
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
ppWritePackedMsg
,
end
)))
return
0
;
}
...
...
@@ -2078,7 +2078,9 @@ static uint8_t pack_ul_dci_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
push8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
RegBundleSize
,
ppWritePackedMsg
,
end
)
&&
push8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
InterleaverSize
,
ppWritePackedMsg
,
end
)
&&
push8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
CoreSetType
,
ppWritePackedMsg
,
end
)
&&
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
ShiftIndex
,
ppWritePackedMsg
,
end
));
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
ShiftIndex
,
ppWritePackedMsg
,
end
)
&&
push8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
precoderGranularity
,
ppWritePackedMsg
,
end
)
&&
push16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
,
ppWritePackedMsg
,
end
));
}
...
...
@@ -5834,10 +5836,9 @@ static uint8_t unpack_hi_dci0_request_body_value(void *tlv, uint8_t **ppReadPack
static
uint8_t
unpack_ul_dci_pdu_list_value
(
uint8_t
**
ppReadPackedMsg
,
uint8_t
*
end
,
void
*
msg
)
{
nfapi_nr_ul_dci_request_pdus_t
*
value
=
(
nfapi_nr_ul_dci_request_pdus_t
*
)
msg
;
for
(
uint8_t
i
=
0
;
i
<
MAX_DCI_CORESET
;
++
i
)
{
if
(
!
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
RNTI
,
end
)
&&
if
(
!
(
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
RNTI
,
end
)
&&
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
ScramblingId
,
end
)
&&
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
ScramblingRNTI
,
end
)
&&
...
...
@@ -5848,7 +5849,7 @@ static uint8_t unpack_ul_dci_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t *
pull8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
powerControlOffsetSS
,
end
)
&&
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
Payload
,
DCI_PAYLOAD_BYTE_LEN
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
end
));
pullarray8
(
ppReadPackedMsg
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
Payload
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
[
i
].
PayloadSizeBits
,
end
)))
return
0
;
}
...
...
@@ -5869,7 +5870,6 @@ static uint8_t unpack_ul_dci_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t *
pull8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
InterleaverSize
,
end
)
&&
pull8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
CoreSetType
,
end
)
&&
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
ShiftIndex
,
end
)
&&
pull8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
precoderGranularity
,
end
)
&&
pull16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
,
end
));
...
...
@@ -8052,7 +8052,7 @@ int nfapi_nr_p7_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *
nfapi_p7_message_header_t
*
pMessageHeader
=
(
nfapi_p7_message_header_t
*
)
pUnpackedBuf
;
uint8_t
*
pReadPackedMessage
=
pMessageBuf
;
uint8_t
*
end
=
pMessageBuf
+
messageBufLen
;
if
(
pMessageBuf
==
NULL
||
pUnpackedBuf
==
NULL
)
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"P7 unpack supplied pointers are null
\n
"
);
...
...
nfapi/open-nFAPI/pnf/src/pnf_p7.c
View file @
39577ba0
...
...
@@ -2009,7 +2009,7 @@ void pnf_handle_ul_dci_request(void* pRecvMsg, int recvMsgLen, pnf_p7_t* pnf_p7)
}
else
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"Failed to unpack
hi_dci0_
req
\n
"
);
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"Failed to unpack
UL DCI
req
\n
"
);
deallocate_nfapi_ul_dci_request
(
req
,
pnf_p7
);
}
}
...
...
openair1/SCHED_NR/fapi_nr_l1.c
View file @
39577ba0
...
...
@@ -234,15 +234,15 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
}
}
//
if(NFAPI_MODE != NFAPI_MONOLITHIC && number_ul_tti_pdu>0)
//
{
//
oai_nfapi_ul_tti_req(UL_tti_req);
//
}
if
(
NFAPI_MODE
!=
NFAPI_MONOLITHIC
&&
number_ul_tti_pdu
>
0
)
{
oai_nfapi_ul_tti_req
(
UL_tti_req
);
}
//
if (NFAPI_MODE != NFAPI_MONOLITHIC && Sched_INFO->UL_dci_req->numPdus!=0)
//
{
//
oai_nfapi_ul_dci_req(Sched_INFO->UL_dci_req);
//
}
if
(
NFAPI_MODE
!=
NFAPI_MONOLITHIC
&&
Sched_INFO
->
UL_dci_req
->
numPdus
!=
0
)
{
oai_nfapi_ul_dci_req
(
Sched_INFO
->
UL_dci_req
);
}
if
(
NFAPI_MODE
!=
NFAPI_MONOLITHIC
)
{
...
...
openair1/SCHED_NR_UE/harq_nr.c
View file @
39577ba0
...
...
@@ -472,7 +472,7 @@ harq_result_t downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int
dl_harq
->
round
=
0
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
DCINdi
=
ndi
;
dl_harq
->
first_tx
=
0
;
//
dl_harq->first_tx = 0;
result_harq
=
NEW_TRANSMISSION_HARQ
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
39577ba0
...
...
@@ -394,10 +394,8 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
// clear last scheduled slot's content (only)!
const
int
num_slots
=
nr_slots_per_frame
[
*
scc
->
ssbSubcarrierSpacing
];
const
int
last_slot
=
(
slot
+
num_slots
-
1
)
%
num_slots
;
const
int
two_slots_back
=
(
slot
+
num_slots
-
2
)
%
num_slots
;
uint16_t
*
vrb_map_UL
=
cc
[
CC_id
].
vrb_map_UL
;
memset
(
&
vrb_map_UL
[
last_slot
*
MAX_BWP_SIZE
],
0
,
sizeof
(
uint16_t
)
*
MAX_BWP_SIZE
);
memset
(
&
vrb_map_UL
[
two_slots_back
*
MAX_BWP_SIZE
],
0
,
sizeof
(
uint16_t
)
*
MAX_BWP_SIZE
);
clear_nr_nfapi_information
(
RC
.
nrmac
[
module_idP
],
CC_id
,
frame
,
slot
);
}
...
...
@@ -448,13 +446,13 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
gNB
->
UL_tti_req_ahead
[
0
][
9
].
SFN
=
frame
;
//Added to set the UL_tti_req_ahead SFN in VNF mode for slot 9
gNB
->
UL_tti_req
[
0
]
=
&
gNB
->
UL_tti_req_ahead
[
0
][
slot
];
}
//
nr_schedule_ulsch(module_idP, frame, slot, num_slots_per_tdd, nr_ulmix_slots, ulsch_in_slot_bitmap);
nr_schedule_ulsch
(
module_idP
,
frame
,
slot
,
num_slots_per_tdd
,
nr_ulmix_slots
,
ulsch_in_slot_bitmap
);
}
// This schedules the DCI for Downlink and PDSCH
if
(
is_xlsch_in_slot
(
dlsch_in_slot_bitmap
,
slot
))
nr_schedule_ue_spec
(
module_idP
,
frame
,
slot
);
//
nr_schedule_pucch(module_idP, frame, slot);
nr_schedule_pucch
(
module_idP
,
frame
,
slot
);
stop_meas
(
&
RC
.
nrmac
[
module_idP
]
->
eNB_scheduler
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
39577ba0
...
...
@@ -460,7 +460,8 @@ bool nr_acknack_scheduling(int mod_id,
"illegal number of bits in PUCCH of UE %d
\n
"
,
UE_id
);
/* if the currently allocated PUCCH of this UE is full, allocate it */
pucch
->
sr_flag
=
1
;
pucch
->
dai_c
=
1
;
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
)
pucch
->
sr_flag
=
1
;
pucch
->
dai_c
=
1
;
if
(
pucch
->
sr_flag
+
pucch
->
dai_c
==
max_acknacks
)
{
/* advance the UL slot information in PUCCH by one so we won't schedule in
* the same slot again */
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
39577ba0
...
...
@@ -883,30 +883,38 @@ void nr_schedule_ulsch(module_id_t module_id,
uint16_t
rnti
=
UE_info
->
rnti
[
UE_id
];
int8_t
harq_id
=
sched_pusch
->
ul_harq_pid
;
if
(
harq_id
<
0
)
{
/* PP has not selected a specific HARQ Process, get a new one */
harq_id
=
sched_ctrl
->
available_ul_harq
.
head
;
// if(NFAPI_MODE == NFAPI_MODE_VNF)
// harq_id = 1;
AssertFatal
(
harq_id
>=
0
,
"no free HARQ process available for UE %d
\n
"
,
UE_id
);
remove_front_nr_list
(
&
sched_ctrl
->
available_ul_harq
);
sched_pusch
->
ul_harq_pid
=
harq_id
;
}
else
{
/* PP selected a specific HARQ process. Check whether it will be a new
* transmission or a retransmission, and remove from the corresponding
* list */
if
(
sched_ctrl
->
ul_harq_processes
[
harq_id
].
round
==
0
)
remove_nr_list
(
&
sched_ctrl
->
available_ul_harq
,
harq_id
);
else
remove_nr_list
(
&
sched_ctrl
->
retrans_ul_harq
,
harq_id
);
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
)
harq_id
=
1
;
else
{
if
(
harq_id
<
0
)
{
/* PP has not selected a specific HARQ Process, get a new one */
harq_id
=
sched_ctrl
->
available_ul_harq
.
head
;
// if(NFAPI_MODE == NFAPI_MODE_VNF)
// harq_id = 1;
AssertFatal
(
harq_id
>=
0
,
"no free HARQ process available for UE %d
\n
"
,
UE_id
);
remove_front_nr_list
(
&
sched_ctrl
->
available_ul_harq
);
sched_pusch
->
ul_harq_pid
=
harq_id
;
}
else
{
/* PP selected a specific HARQ process. Check whether it will be a new
* transmission or a retransmission, and remove from the corresponding
* list */
if
(
sched_ctrl
->
ul_harq_processes
[
harq_id
].
round
==
0
)
remove_nr_list
(
&
sched_ctrl
->
available_ul_harq
,
harq_id
);
else
remove_nr_list
(
&
sched_ctrl
->
retrans_ul_harq
,
harq_id
);
}
}
NR_UE_ul_harq_t
*
cur_harq
=
&
sched_ctrl
->
ul_harq_processes
[
harq_id
];
DevAssert
(
!
cur_harq
->
is_waiting
);
add_tail_nr_list
(
&
sched_ctrl
->
feedback_ul_harq
,
harq_id
);
cur_harq
->
feedback_slot
=
sched_pusch
->
slot
;
cur_harq
->
is_waiting
=
true
;
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
)
cur_harq
->
is_waiting
=
0
;
int
rnti_types
[
2
]
=
{
NR_RNTI_C
,
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