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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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-RAN
Commits
9ceb3ddf
Commit
9ceb3ddf
authored
Apr 18, 2024
by
Ejaz Ahmed
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'episys/sl-eurecom2' into episys/ea/fix_mac_subheaders_length_issue
parents
4e10e4fa
289991b0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
22 deletions
+31
-22
openair2/LAYER2/NR_MAC_UE/nr_ue_sci_slsch.c
openair2/LAYER2/NR_MAC_UE/nr_ue_sci_slsch.c
+7
-1
openair2/RRC/NR_UE/rrc_sl_preconfig.c
openair2/RRC/NR_UE/rrc_sl_preconfig.c
+16
-14
targets/PROJECTS/NR-SIDELINK/CONF/sl_preconfiguration.conf
targets/PROJECTS/NR-SIDELINK/CONF/sl_preconfiguration.conf
+8
-7
No files found.
openair2/LAYER2/NR_MAC_UE/nr_ue_sci_slsch.c
View file @
9ceb3ddf
...
@@ -824,7 +824,13 @@ int nr_ue_process_sci2_indication_pdu(NR_UE_MAC_INST_t *mac, module_id_t mod_id,
...
@@ -824,7 +824,13 @@ int nr_ue_process_sci2_indication_pdu(NR_UE_MAC_INST_t *mac, module_id_t mod_id,
sl_res_pool
,
sl_res_pool
,
sl_mac_params
);
sl_mac_params
);
rx_config
.
sl_rx_config_list
[
0
].
pdu_type
=
SL_NR_CONFIG_TYPE_RX_PSSCH_SLSCH
;
rx_config
.
sl_rx_config_list
[
0
].
pdu_type
=
SL_NR_CONFIG_TYPE_RX_PSSCH_SLSCH
;
if
(
sci_pdu
->
csi_req
)
{
sl_nr_phy_config_request_t
*
sl_cfg
=
&
mac
->
SL_MAC_PARAMS
->
sl_phy_config
.
sl_config_req
;
uint8_t
mu
=
sl_cfg
->
sl_bwp_config
.
sl_scs
;
uint8_t
slots_per_frame
=
nr_slots_per_frame
[
mu
];
if
((
!
mac
->
SL_MAC_PARAMS
->
sl_CSI_Acquisition
)
&&
(((
slots_per_frame
*
frame
+
slot
-
mac
->
SL_MAC_PARAMS
->
slot_offset
)
%
mac
->
SL_MAC_PARAMS
->
slot_periodicity
)
==
0
)
&&
sci_pdu
->
csi_req
)
{
sl_nr_phy_config_request_t
*
sl_cfg
=
&
sl_mac_params
->
sl_phy_config
.
sl_config_req
;
sl_nr_phy_config_request_t
*
sl_cfg
=
&
sl_mac_params
->
sl_phy_config
.
sl_config_req
;
uint8_t
mu
=
sl_cfg
->
sl_bwp_config
.
sl_scs
;
uint8_t
mu
=
sl_cfg
->
sl_bwp_config
.
sl_scs
;
nr_ue_sl_csi_rs_scheduler
(
mac
,
mu
,
mac
->
sl_bwp
,
NULL
,
&
rx_config
,
NULL
);
nr_ue_sl_csi_rs_scheduler
(
mac
,
mu
,
mac
->
sl_bwp
,
NULL
,
&
rx_config
,
NULL
);
...
...
openair2/RRC/NR_UE/rrc_sl_preconfig.c
View file @
9ceb3ddf
...
@@ -245,20 +245,22 @@ static void prepare_NR_SL_ResourcePool(NR_SL_ResourcePool_r16_t *sl_res_pool,
...
@@ -245,20 +245,22 @@ static void prepare_NR_SL_ResourcePool(NR_SL_ResourcePool_r16_t *sl_res_pool,
const
uint8_t
psfch_periods
[]
=
{
0
,
1
,
2
,
4
};
const
uint8_t
psfch_periods
[]
=
{
0
,
1
,
2
,
4
};
AssertFatal
(
*
nr_sl_psfch_config
->
sl_PSFCH_Period_r16
<
4
,
"sl_PSFCH_Period_r16 index must be less than 4
\n
"
);
AssertFatal
(
*
nr_sl_psfch_config
->
sl_PSFCH_Period_r16
<
4
,
"sl_PSFCH_Period_r16 index must be less than 4
\n
"
);
uint8_t
psfch_period
=
psfch_periods
[
*
nr_sl_psfch_config
->
sl_PSFCH_Period_r16
];
uint8_t
psfch_period
=
psfch_periods
[
*
nr_sl_psfch_config
->
sl_PSFCH_Period_r16
];
uint16_t
prod_numCh_period
=
*
sl_res_pool
->
sl_NumSubchannel_r16
*
psfch_period
;
if
(
psfch_period
)
{
uint16_t
num_prbs
=
(
*
sl_res_pool
->
sl_RB_Number_r16
/
prod_numCh_period
)
*
prod_numCh_period
;
uint16_t
prod_numCh_period
=
*
sl_res_pool
->
sl_NumSubchannel_r16
*
psfch_period
;
uint16_t
num_bytes
=
(
num_prbs
%
8
)
?
(
num_prbs
/
8
)
+
1
:
(
num_prbs
/
8
);
uint16_t
num_prbs
=
(
*
sl_res_pool
->
sl_RB_Number_r16
/
prod_numCh_period
)
*
prod_numCh_period
;
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
size
=
num_bytes
;
uint16_t
num_bytes
=
(
num_prbs
%
8
)
?
(
num_prbs
/
8
)
+
1
:
(
num_prbs
/
8
);
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
size
=
num_bytes
;
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
bits_unused
=
(
num_prbs
%
8
)
?
8
-
(
num_prbs
%
8
)
:
0
;
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
buf
=
calloc
(
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
size
,
sizeof
(
uint8_t
));
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
bits_unused
=
(
num_prbs
%
8
)
?
8
-
(
num_prbs
%
8
)
:
0
;
memset
(
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
buf
,
0xFF
,
num_prbs
/
8
);
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
buf
=
calloc
(
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
size
,
sizeof
(
uint8_t
));
uint8_t
remaining_prbs
=
0
;
memset
(
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
buf
,
0xFF
,
num_prbs
/
8
);
for
(
int
i
=
8
-
(
num_prbs
%
8
);
i
<
8
;
i
++
)
uint8_t
remaining_prbs
=
0
;
remaining_prbs
|=
1
<<
i
;
for
(
int
i
=
8
-
(
num_prbs
%
8
);
i
<
8
;
i
++
)
if
(
num_prbs
%
8
!=
0
)
remaining_prbs
|=
1
<<
i
;
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
buf
[
num_prbs
/
8
]
=
remaining_prbs
;
if
(
num_prbs
%
8
!=
0
)
LOG_D
(
RRC
,
"M: %d, PRBs %d, size in bytes %d, unused bits %d, full size bytes %d, remaining prbs %d
\n
"
,
prod_numCh_period
,
num_prbs
,
num_bytes
,
(
num_prbs
%
8
)
?
8
-
(
num_prbs
%
8
)
:
0
,
num_prbs
/
8
,
remaining_prbs
);
sl_res_pool
->
sl_PSFCH_Config_r16
->
choice
.
setup
->
sl_PSFCH_RB_Set_r16
->
buf
[
num_prbs
/
8
]
=
remaining_prbs
;
LOG_D
(
RRC
,
"M: %d, PRBs %d, size in bytes %d, unused bits %d, full size bytes %d, remaining prbs %d
\n
"
,
prod_numCh_period
,
num_prbs
,
num_bytes
,
(
num_prbs
%
8
)
?
8
-
(
num_prbs
%
8
)
:
0
,
num_prbs
/
8
,
remaining_prbs
);
}
}
}
static
void
prepare_NR_SL_BWPConfigCommon
(
NR_SL_BWP_ConfigCommon_r16_t
*
sl_bwp
,
static
void
prepare_NR_SL_BWPConfigCommon
(
NR_SL_BWP_ConfigCommon_r16_t
*
sl_bwp
,
...
...
targets/PROJECTS/NR-SIDELINK/CONF/sl_preconfiguration.conf
View file @
9ceb3ddf
...
@@ -8,7 +8,7 @@ SIDELINK_PRECONFIGURATION = (
...
@@ -8,7 +8,7 @@ SIDELINK_PRECONFIGURATION = (
sl_nrofUplinkSymbols
=
4
;
sl_nrofUplinkSymbols
=
4
;
sl_csi_rs
= (
sl_csi_rs
= (
{
{
symb_l0
=
4
;
symb_l0
=
5
;
# csi_type 2 is not supported 38211, 8.4.1.5.3
# csi_type 2 is not supported 38211, 8.4.1.5.3
csi_Type
=
1
;
csi_Type
=
1
;
sl_powerControlOffset
=
1
;
sl_powerControlOffset
=
1
;
...
@@ -16,7 +16,7 @@ SIDELINK_PRECONFIGURATION = (
...
@@ -16,7 +16,7 @@ SIDELINK_PRECONFIGURATION = (
slot_Offset
=
0
;
slot_Offset
=
0
;
slot_Periodicity
=
4
;
slot_Periodicity
=
4
;
# Indicates if CSI Reporting is enabled in UNICAST. is 0-ENABLED, 1-DISABLED
# Indicates if CSI Reporting is enabled in UNICAST. is 0-ENABLED, 1-DISABLED
sl_CSI_Acquisition
=
0
;
sl_CSI_Acquisition
=
1
;
}
}
);
);
sl_FrequencyCommonConfig
= (
sl_FrequencyCommonConfig
= (
...
@@ -38,9 +38,10 @@ SIDELINK_PRECONFIGURATION = (
...
@@ -38,9 +38,10 @@ SIDELINK_PRECONFIGURATION = (
{
{
#RB start 0, RB size = 106. occupies complete Bw.
#RB start 0, RB size = 106. occupies complete Bw.
sl_locationAndBandwidth
=
28875
;
sl_locationAndBandwidth
=
28875
;
#Num Symbols used for Sidelink in an uplink slot
# Num Symbols used for Sidelink in an uplink slot
#Value can be between symbols 7 to 14
# Herein, sl_LengthSymbols represents an index; not the number of symbols.
sl_LengthSymbols
=
7
;
# This index value can be from 0 to 7 representing the (7 to 14 symbols)
sl_LengthSymbols
=
5
;
#Sidelink Starting symbol in a slot
#Sidelink Starting symbol in a slot
#Value can be between symbols 0 to 7
#Value can be between symbols 0 to 7
sl_StartSymbol
=
0
;
sl_StartSymbol
=
0
;
...
@@ -76,7 +77,7 @@ SIDELINK_PRECONFIGURATION = (
...
@@ -76,7 +77,7 @@ SIDELINK_PRECONFIGURATION = (
sl_NumSubchannel
=
1
;
sl_NumSubchannel
=
1
;
# period of PSFCH resource in units of slots within this resource pool
# period of PSFCH resource in units of slots within this resource pool
# Possible values sl0 means no PSFCH resource, {sl0, sl1, sl2, sl4}
# Possible values sl0 means no PSFCH resource, {sl0, sl1, sl2, sl4}
sl_PSFCH_Period
=
3
; //
sl4
sl_PSFCH_Period
=
0
; //
sl0
# Number of cyclic shift pairs used for a PSFCH transmission that can be multiplexed in a PRB
# Number of cyclic shift pairs used for a PSFCH transmission that can be multiplexed in a PRB
# Possible values {n1, n2, n3, n4}
# Possible values {n1, n2, n3, n4}
sl_NumMuxCS_Pair
=
1
;
sl_NumMuxCS_Pair
=
1
;
...
@@ -107,7 +108,7 @@ SIDELINK_PRECONFIGURATION = (
...
@@ -107,7 +108,7 @@ SIDELINK_PRECONFIGURATION = (
sl_NumSubchannel
=
1
;
sl_NumSubchannel
=
1
;
# period of PSFCH resource in units of slots within this resource pool
# period of PSFCH resource in units of slots within this resource pool
# Possible values sl0 means no PSFCH resource, {sl0, sl1, sl2, sl4}
# Possible values sl0 means no PSFCH resource, {sl0, sl1, sl2, sl4}
sl_PSFCH_Period
=
3
; //
sl4
sl_PSFCH_Period
=
0
; //
sl0
# Number of cyclic shift pairs used for a PSFCH transmission that can be multiplexed in a PRB
# Number of cyclic shift pairs used for a PSFCH transmission that can be multiplexed in a PRB
# Possible values {n1, n2, n3, n4}
# Possible values {n1, n2, n3, n4}
sl_NumMuxCS_Pair
=
1
;
sl_NumMuxCS_Pair
=
1
;
...
...
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