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
littleBu
OpenXG-RAN
Commits
3c766d29
Commit
3c766d29
authored
Sep 12, 2021
by
francescomani
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into NR_2port_CSIRS
parents
17c02687
de553cd1
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
82 additions
and
31 deletions
+82
-31
common/utils/T/T_messages.txt
common/utils/T/T_messages.txt
+1
-1
docker/Dockerfile.nrUE.rhel8.2
docker/Dockerfile.nrUE.rhel8.2
+1
-0
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+3
-1
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+3
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+3
-4
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-3
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+0
-1
openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
+1
-1
openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
+1
-1
openair2/LAYER2/nr_rlc/tests/run_tests.sh
openair2/LAYER2/nr_rlc/tests/run_tests.sh
+1
-1
openair2/LAYER2/nr_rlc/tests/test.c
openair2/LAYER2/nr_rlc/tests/test.c
+8
-8
openair2/LAYER2/nr_rlc/tests/test16.h
openair2/LAYER2/nr_rlc/tests/test16.h
+19
-0
openair2/LAYER2/nr_rlc/tests/test16.txt.gz
openair2/LAYER2/nr_rlc/tests/test16.txt.gz
+0
-0
openair2/LAYER2/nr_rlc/tests/test17.h
openair2/LAYER2/nr_rlc/tests/test17.h
+18
-0
openair2/LAYER2/nr_rlc/tests/test17.txt.gz
openair2/LAYER2/nr_rlc/tests/test17.txt.gz
+0
-0
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+22
-8
No files found.
common/utils/T/T_messages.txt
View file @
3c766d29
...
@@ -16,7 +16,7 @@ ID = ENB_PHY_DL_TICK
...
@@ -16,7 +16,7 @@ ID = ENB_PHY_DL_TICK
ID = ENB_PHY_DLSCH_UE_DCI
ID = ENB_PHY_DLSCH_UE_DCI
DESC = eNodeB downlink UE specific DCI as sent by the PHY layer
DESC = eNodeB downlink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:ENB
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,rnti : int,dci_format : int,harq_pid : int,mcs : int,TBS
FORMAT = int,eNB_ID : int,frame : int,subframe : int,rnti : int,dci_format : int,harq_pid : int,mcs : int,TBS
: int,ndi : int,rv : int,rbc : int,nb_rb : int,rb_alloc
ID = ENB_PHY_DLSCH_UE_ACK
ID = ENB_PHY_DLSCH_UE_ACK
DESC = eNodeB downlink UE ACK as seen by the PHY layer in process_HARQ_feedback
DESC = eNodeB downlink UE ACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:ENB
GROUP = ALL:PHY:GRAPHIC:ENB
...
...
docker/Dockerfile.nrUE.rhel8.2
View file @
3c766d29
...
@@ -49,6 +49,7 @@ RUN yum update -y && \
...
@@ -49,6 +49,7 @@ RUN yum update -y && \
nettle \
nettle \
net-tools \
net-tools \
iputils \
iputils \
iproute \
atlas \
atlas \
libXpm \
libXpm \
libX11 \
libX11 \
...
...
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
3c766d29
...
@@ -1527,7 +1527,9 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,
...
@@ -1527,7 +1527,9 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,
if
(
dlsch0
->
active
)
if
(
dlsch0
->
active
)
T
(
T_ENB_PHY_DLSCH_UE_DCI
,
T_INT
(
0
),
T_INT
(
frame
),
T_INT
(
subframe
),
T
(
T_ENB_PHY_DLSCH_UE_DCI
,
T_INT
(
0
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
rel8
->
rnti
),
T_INT
(
rel8
->
dci_format
),
T_INT
(
rel8
->
harq_process
),
T_INT
(
rel8
->
rnti
),
T_INT
(
rel8
->
dci_format
),
T_INT
(
rel8
->
harq_process
),
T_INT
(
rel8
->
mcs_1
),
T_INT
(
dlsch0_harq
->
TBS
));
T_INT
(
rel8
->
mcs_1
),
T_INT
(
dlsch0_harq
->
TBS
),
T_INT
(
rel8
->
new_data_indicator_1
),
T_INT
(
rel8
->
redundancy_version_1
),
T_INT
(
rel8
->
resource_block_coding
),
T_INT
(
dlsch0_harq
->
nb_rb
),
T_INT
(
dlsch0_harq
->
rb_alloc
[
0
]));
#endif
#endif
}
}
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
3c766d29
...
@@ -267,6 +267,8 @@ void nr_dlsim_preprocessor(module_id_t module_id,
...
@@ -267,6 +267,8 @@ void nr_dlsim_preprocessor(module_id_t module_id,
NR_pdsch_semi_static_t
*
ps
=
&
sched_ctrl
->
pdsch_semi_static
;
NR_pdsch_semi_static_t
*
ps
=
&
sched_ctrl
->
pdsch_semi_static
;
ps
->
nrOfLayers
=
g_nrOfLayers
;
nr_set_pdsch_semi_static
(
scc
,
nr_set_pdsch_semi_static
(
scc
,
UE_info
->
CellGroup
[
0
],
UE_info
->
CellGroup
[
0
],
sched_ctrl
->
active_bwp
,
sched_ctrl
->
active_bwp
,
...
@@ -284,7 +286,6 @@ void nr_dlsim_preprocessor(module_id_t module_id,
...
@@ -284,7 +286,6 @@ void nr_dlsim_preprocessor(module_id_t module_id,
ps
->
mcsTableIdx
=
g_mcsTableIdx
;
ps
->
mcsTableIdx
=
g_mcsTableIdx
;
ps
->
nrOfLayers
=
g_nrOfLayers
;
ps
->
nrOfLayers
=
g_nrOfLayers
;
sched_pdsch
->
nrOfLayers
=
g_nrOfLayers
;
sched_pdsch
->
Qm
=
nr_get_Qm_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
Qm
=
nr_get_Qm_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
R
=
nr_get_code_rate_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
R
=
nr_get_code_rate_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
tb_size
=
nr_compute_tbs
(
sched_pdsch
->
Qm
,
sched_pdsch
->
tb_size
=
nr_compute_tbs
(
sched_pdsch
->
Qm
,
...
@@ -294,7 +295,7 @@ void nr_dlsim_preprocessor(module_id_t module_id,
...
@@ -294,7 +295,7 @@ void nr_dlsim_preprocessor(module_id_t module_id,
ps
->
N_PRB_DMRS
*
ps
->
N_DMRS_SLOT
,
ps
->
N_PRB_DMRS
*
ps
->
N_DMRS_SLOT
,
0
/* N_PRB_oh, 0 for initialBWP */
,
0
/* N_PRB_oh, 0 for initialBWP */
,
0
/* tb_scaling */
,
0
/* tb_scaling */
,
g_
nrOfLayers
)
ps
->
nrOfLayers
)
>>
3
;
>>
3
;
/* the simulator assumes the HARQ PID is equal to the slot number */
/* the simulator assumes the HARQ PID is equal to the slot number */
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
3c766d29
...
@@ -368,11 +368,10 @@ void nr_preprocessor_phytest(module_id_t module_id,
...
@@ -368,11 +368,10 @@ void nr_preprocessor_phytest(module_id_t module_id,
sched_pdsch
->
rbStart
=
rbStart
;
sched_pdsch
->
rbStart
=
rbStart
;
sched_pdsch
->
rbSize
=
rbSize
;
sched_pdsch
->
rbSize
=
rbSize
;
const
int
tda
=
sched_ctrl
->
active_bwp
?
RC
.
nrmac
[
module_id
]
->
preferred_dl_tda
[
sched_ctrl
->
active_bwp
->
bwp_Id
][
slot
]
:
1
;
const
int
tda
=
sched_ctrl
->
active_bwp
?
RC
.
nrmac
[
module_id
]
->
preferred_dl_tda
[
sched_ctrl
->
active_bwp
->
bwp_Id
][
slot
]
:
1
;
int
nrOfLayers
=
1
;
if
(
ps
->
time_domain_allocation
!=
tda
||
ps
->
nrOfLayers
!=
nrOfLayers
)
nr_set_pdsch_semi_static
(
scc
,
UE_info
->
CellGroup
[
UE_id
],
sched_ctrl
->
active_bwp
,
tda
,
nrOfLayers
,
sched_ctrl
,
ps
);
ps
->
nrOfLayers
=
target_dl_Nl
;
if
(
ps
->
time_domain_allocation
!=
tda
||
ps
->
nrOfLayers
!=
target_dl_Nl
)
nr_set_pdsch_semi_static
(
scc
,
UE_info
->
CellGroup
[
UE_id
],
sched_ctrl
->
active_bwp
,
tda
,
target_dl_Nl
,
sched_ctrl
,
ps
);
sched_pdsch
->
mcs
=
target_dl_mcs
;
sched_pdsch
->
mcs
=
target_dl_mcs
;
sched_pdsch
->
Qm
=
nr_get_Qm_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
Qm
=
nr_get_Qm_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
R
=
nr_get_code_rate_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
sched_pdsch
->
R
=
nr_get_code_rate_dl
(
sched_pdsch
->
mcs
,
ps
->
mcsTableIdx
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
3c766d29
...
@@ -136,7 +136,6 @@ static inline uint8_t get_max_cces(uint8_t scs) {
...
@@ -136,7 +136,6 @@ static inline uint8_t get_max_cces(uint8_t scs) {
return
(
nr_max_number_of_cces_per_slot
[
scs
]);
return
(
nr_max_number_of_cces_per_slot
[
scs
]);
}
}
uint8_t
set_dl_nrOfLayers
(
NR_UE_sched_ctrl_t
*
sched_ctrl
)
{
uint8_t
set_dl_nrOfLayers
(
NR_UE_sched_ctrl_t
*
sched_ctrl
)
{
// TODO check this but it should be enough for now
// TODO check this but it should be enough for now
...
@@ -199,7 +198,6 @@ void set_dl_dmrs_ports(NR_pdsch_semi_static_t *ps) {
...
@@ -199,7 +198,6 @@ void set_dl_dmrs_ports(NR_pdsch_semi_static_t *ps) {
// for now it assumes a selection of Nl consecutive dmrs ports
// for now it assumes a selection of Nl consecutive dmrs ports
// and a single front loaded symbol
// and a single front loaded symbol
// dmrs_ports_id is the index of Tables 7.3.1.2.2-1/2/3/4
// dmrs_ports_id is the index of Tables 7.3.1.2.2-1/2/3/4
// number of front loaded symbols need to be consistent with maxLength
// number of front loaded symbols need to be consistent with maxLength
// when a more complete implementation is done
// when a more complete implementation is done
...
@@ -421,7 +419,7 @@ void nr_set_pdsch_semi_static(const NR_ServingCellConfigCommon_t *scc,
...
@@ -421,7 +419,7 @@ void nr_set_pdsch_semi_static(const NR_ServingCellConfigCommon_t *scc,
SLIV2SL
(
startSymbolAndLength
,
&
ps
->
startSymbolIndex
,
&
ps
->
nrOfSymbols
);
SLIV2SL
(
startSymbolAndLength
,
&
ps
->
startSymbolIndex
,
&
ps
->
nrOfSymbols
);
}
}
const
long
dci_format
=
sched_ctrl
->
search_space
->
searchSpaceType
->
choice
.
ue_Specific
->
dci_Formats
;
const
long
dci_format
=
sched_ctrl
->
active_bwp
?
sched_ctrl
->
search_space
->
searchSpaceType
->
choice
.
ue_Specific
->
dci_Formats
:
0
;
if
(
dci_format
==
NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0
||
if
(
dci_format
==
NR_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0
||
pdsch_Config
==
NULL
)
{
pdsch_Config
==
NULL
)
{
if
(
ps
->
nrOfSymbols
==
2
&&
ps
->
mapping_type
==
NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB
)
if
(
ps
->
nrOfSymbols
==
2
&&
ps
->
mapping_type
==
NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB
)
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
3c766d29
...
@@ -387,7 +387,6 @@ typedef struct NR_sched_pdsch {
...
@@ -387,7 +387,6 @@ typedef struct NR_sched_pdsch {
uint8_t
mcs
;
uint8_t
mcs
;
/// TBS-related info
/// TBS-related info
uint8_t
nrOfLayers
;
uint16_t
R
;
uint16_t
R
;
uint8_t
Qm
;
uint8_t
Qm
;
uint32_t
tb_size
;
uint32_t
tb_size
;
...
...
openair2/LAYER2/nr_rlc/nr_rlc_entity_am.c
View file @
3c766d29
...
@@ -218,7 +218,7 @@ static void reassemble_and_deliver(nr_rlc_entity_am_t *entity, int sn)
...
@@ -218,7 +218,7 @@ static void reassemble_and_deliver(nr_rlc_entity_am_t *entity, int sn)
bad_sdu
=
1
;
bad_sdu
=
1
;
}
}
if
(
!
bad_sdu
&&
len
>
0
)
{
if
(
!
bad_sdu
&&
len
>
0
)
{
memcpy
(
sdu
+
so
,
pdu
->
data
,
len
);
memcpy
(
sdu
+
so
,
pdu
->
data
+
so
-
pdu
->
so
,
len
);
so
+=
len
;
so
+=
len
;
}
}
free
(
pdu
->
data
);
free
(
pdu
->
data
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
View file @
3c766d29
...
@@ -148,7 +148,7 @@ static void reassemble_and_deliver(nr_rlc_entity_um_t *entity, int sn)
...
@@ -148,7 +148,7 @@ static void reassemble_and_deliver(nr_rlc_entity_um_t *entity, int sn)
bad_sdu
=
1
;
bad_sdu
=
1
;
}
}
if
(
!
bad_sdu
&&
len
>
0
)
{
if
(
!
bad_sdu
&&
len
>
0
)
{
memcpy
(
sdu
+
so
,
pdu
->
data
,
len
);
memcpy
(
sdu
+
so
,
pdu
->
data
+
so
-
pdu
->
so
,
len
);
so
+=
len
;
so
+=
len
;
}
}
free
(
pdu
->
data
);
free
(
pdu
->
data
);
...
...
openair2/LAYER2/nr_rlc/tests/run_tests.sh
View file @
3c766d29
#!/bin/sh
#!/bin/sh
test_count
=
1
5
test_count
=
1
7
for
i
in
`
seq
$test_count
`
for
i
in
`
seq
$test_count
`
do
do
...
...
openair2/LAYER2/nr_rlc/tests/test.c
View file @
3c766d29
...
@@ -22,13 +22,13 @@
...
@@ -22,13 +22,13 @@
* create the UE RLC AM entity with given parameters
* create the UE RLC AM entity with given parameters
*
*
* GNB_UM <rx_maxsize> <tx_maxsize> <t_reassembly> <sn_field_length>
* GNB_UM <rx_maxsize> <tx_maxsize> <t_reassembly> <sn_field_length>
* create the
e
NB RLC UM entity with given parameters
* create the
g
NB RLC UM entity with given parameters
*
*
* UE_UM <rx_maxsize> <tx_maxsize> <t_reassembly> <sn_field_length>
* UE_UM <rx_maxsize> <tx_maxsize> <t_reassembly> <sn_field_length>
* create the UE RLC UM entity with given parameters
* create the UE RLC UM entity with given parameters
*
*
* GNB_TM <tx_maxsize>
* GNB_TM <tx_maxsize>
* create the
e
NB RLC TM entity with given parameters
* create the
g
NB RLC TM entity with given parameters
*
*
* UE_UM <tx_maxsize>
* UE_UM <tx_maxsize>
* create the UE RLC TM entity with given parameters
* create the UE RLC TM entity with given parameters
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
* You must end your test definition with a line 'TIME, -1'.
* You must end your test definition with a line 'TIME, -1'.
*
*
* GNB_SDU <id> <size>
* GNB_SDU <id> <size>
* send an SDU to
e
NB with id <i> and size <size>
* send an SDU to
g
NB with id <i> and size <size>
* the SDU is [00 01 ... ff 01 ...]
* the SDU is [00 01 ... ff 01 ...]
* (ie. start byte is 00 then we increment for each byte, loop if needed)
* (ie. start byte is 00 then we increment for each byte, loop if needed)
*
*
...
@@ -47,10 +47,10 @@
...
@@ -47,10 +47,10 @@
* same as GNB_SDU but the SDU is sent to the UE
* same as GNB_SDU but the SDU is sent to the UE
*
*
* GNB_PDU <size> <'size' bytes>
* GNB_PDU <size> <'size' bytes>
* send a custom PDU from
eNB to UE (e
NB does not see this PDU at all)
* send a custom PDU from
gNB to UE (g
NB does not see this PDU at all)
*
*
* UE_PDU <size> <'size' bytes>
* UE_PDU <size> <'size' bytes>
* send a custom PDU from UE to
e
NB (UE does not see this PDU at all)
* send a custom PDU from UE to
g
NB (UE does not see this PDU at all)
*
*
* GNB_PDU_SIZE <size>
* GNB_PDU_SIZE <size>
* set 'gnb_pdu_size'
* set 'gnb_pdu_size'
...
@@ -70,7 +70,7 @@
...
@@ -70,7 +70,7 @@
* that the test must fail (ie. exit with non zero, crash not allowed)
* that the test must fail (ie. exit with non zero, crash not allowed)
*
*
* GNB_BUFFER_STATUS
* GNB_BUFFER_STATUS
* call buffer_status for
e
NB and print result
* call buffer_status for
g
NB and print result
*
*
* UE_BUFFER_STATUS
* UE_BUFFER_STATUS
* call buffer_status for UE and print result
* call buffer_status for UE and print result
...
@@ -82,7 +82,7 @@
...
@@ -82,7 +82,7 @@
* discards given SDU
* discards given SDU
*
*
* RE_ESTABLISH
* RE_ESTABLISH
* re-establish both
e
NB and UE
* re-establish both
g
NB and UE
*/
*/
enum
action
{
enum
action
{
...
@@ -368,7 +368,7 @@ int test_main(void)
...
@@ -368,7 +368,7 @@ int test_main(void)
pos
+=
2
;
pos
+=
2
;
break
;
break
;
case
RE_ESTABLISH
:
case
RE_ESTABLISH
:
printf
(
"TEST: %d: re-establish
e
NB and UE
\n
"
,
i
);
printf
(
"TEST: %d: re-establish
g
NB and UE
\n
"
,
i
);
gnb
->
reestablishment
(
gnb
);
gnb
->
reestablishment
(
gnb
);
ue
->
reestablishment
(
ue
);
ue
->
reestablishment
(
ue
);
pos
++
;
pos
++
;
...
...
openair2/LAYER2/nr_rlc/tests/test16.h
0 → 100644
View file @
3c766d29
/*
* am test (SN field size 18):
* there was a bug when we receive a full PDU after receiving only the
* beginning of it; the data was copied at the end but from the start of the
* full PDU instead of the correct offset. This test captures this case.
* Gnb sends the start of a PDU then the full PDU. That is the SDU is
* [00 .. 09]. First gnb sends [00 .. 08] then it sends [00 .. 09].
*/
TIME
,
1
,
GNB_AM
,
100000
,
100000
,
45
,
35
,
0
,
-
1
,
-
1
,
8
,
18
,
UE_AM
,
100000
,
100000
,
45
,
35
,
0
,
-
1
,
-
1
,
8
,
18
,
GNB_PDU_SIZE
,
12
,
UE_PDU_SIZE
,
20
,
GNB_PDU
,
12
,
0x90
,
0x00
,
0x00
,
0x00
,
0x01
,
0x02
,
0x03
,
0x04
,
0x05
,
0x06
,
0x07
,
0x08
,
TIME
,
2
,
GNB_PDU_SIZE
,
20
,
GNB_PDU
,
13
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x01
,
0x02
,
0x03
,
0x04
,
0x05
,
0x06
,
0x07
,
0x08
,
0x09
,
TIME
,
-
1
openair2/LAYER2/nr_rlc/tests/test16.txt.gz
0 → 100644
View file @
3c766d29
File added
openair2/LAYER2/nr_rlc/tests/test17.h
0 → 100644
View file @
3c766d29
/*
* um test (SN field size 12):
* same problem as for test16, but we test by sending [00 .. 08] then
* [02 .. 09] (they overlap, the full SDU is [00 .. 09]), which probably
* never occurs in practice but triggers the bug. Doing as for test16 does
* not trigger the bug.
*/
TIME
,
1
,
GNB_UM
,
100000
,
100000
,
35
,
12
,
UE_UM
,
100000
,
100000
,
35
,
12
,
GNB_PDU_SIZE
,
8
,
UE_PDU_SIZE
,
20
,
GNB_PDU
,
11
,
0x40
,
0x00
,
0x00
,
0x01
,
0x02
,
0x03
,
0x04
,
0x05
,
0x06
,
0x07
,
0x08
,
TIME
,
2
,
GNB_PDU_SIZE
,
20
,
GNB_PDU
,
12
,
0x80
,
0x00
,
0x00
,
0x02
,
0x02
,
0x03
,
0x04
,
0x05
,
0x06
,
0x07
,
0x08
,
0x09
,
TIME
,
-
1
openair2/LAYER2/nr_rlc/tests/test17.txt.gz
0 → 100644
View file @
3c766d29
File added
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
3c766d29
...
@@ -419,14 +419,28 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -419,14 +419,28 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
nrMultiBandInfo
->
freqBandIndicatorNR
=
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
i
];
nrMultiBandInfo
->
freqBandIndicatorNR
=
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
i
];
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
frequencyBandList
.
list
,
nrMultiBandInfo
);
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
frequencyBandList
.
list
,
nrMultiBandInfo
);
}
}
int
ref_scs
;
if
(
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
<
600000
)
int
scs_scaling0
=
1
<<
(
configuration
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
);
ref_scs
=
0
;
// 15 khz
int
scs_scaling
=
scs_scaling0
;
if
(
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
>
2016666
)
int
scs_scaling2
=
scs_scaling0
;
ref_scs
=
3
;
// 60 khz
if
(
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
<
600000
)
{
uint32_t
absolute_diff
=
(
*
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
);
scs_scaling
=
scs_scaling0
*
3
;
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
=
}
(
absolute_diff
/
12
)
-
(
10
<<
(
configuration
->
scc
->
downlinkConfigCommon
->
initialDownlinkBWP
->
genericParameters
.
subcarrierSpacing
-
ref_scs
));
if
(
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
>
2016666
)
{
scs_scaling
=
scs_scaling0
>>
2
;
scs_scaling2
=
scs_scaling0
>>
2
;
}
uint32_t
absolute_diff
=
(
*
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
-
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
);
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
=
scs_scaling2
*
(
absolute_diff
/
(
12
*
scs_scaling
)
-
10
);
LOG_I
(
NR_RRC
,
"SIB1 freq: absoluteFrequencySSB %ld, absoluteFrequencyPointA %ld
\n
"
,
*
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencySSB
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
);
LOG_I
(
NR_RRC
,
"SIB1 freq: absolute_diff %d, %d*(absolute_diff/(12*%d) - 10) %d
\n
"
,
absolute_diff
,
scs_scaling2
,
scs_scaling
,(
int
)
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
offsetToPointA
);
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
count
;
i
++
)
{
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
ASN_SEQUENCE_ADD
(
&
sib1
->
servingCellConfigCommon
->
downlinkConfigCommon
.
frequencyInfoDL
.
scs_SpecificCarrierList
.
list
,
configuration
->
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
i
]);
}
}
...
...
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