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
canghaiwuhen
OpenXG-RAN
Commits
a248c44d
Commit
a248c44d
authored
Feb 14, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
computation nb of root sequences in mac (plus some clean up in prach_common.c
parent
5eeb25e2
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
178 additions
and
214 deletions
+178
-214
openair1/PHY/NR_TRANSPORT/nr_prach.c
openair1/PHY/NR_TRANSPORT/nr_prach.c
+0
-7
openair1/PHY/NR_TRANSPORT/nr_prach_common.c
openair1/PHY/NR_TRANSPORT/nr_prach_common.c
+24
-191
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
+5
-0
openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
+5
-2
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+2
-1
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+0
-2
openair2/GNB_APP/RRC_nr_paramsvalues.h
openair2/GNB_APP/RRC_nr_paramsvalues.h
+1
-1
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+118
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+6
-0
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+8
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
+5
-5
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
+4
-4
No files found.
openair1/PHY/NR_TRANSPORT/nr_prach.c
View file @
a248c44d
...
@@ -34,13 +34,6 @@
...
@@ -34,13 +34,6 @@
#include "PHY/NR_TRANSPORT/nr_transport.h"
#include "PHY/NR_TRANSPORT/nr_transport.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto_common.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto_common.h"
extern
uint16_t
NCS_unrestricted_delta_f_RA_125
[
16
];
extern
uint16_t
NCS_restricted_TypeA_delta_f_RA_125
[
15
];
extern
uint16_t
NCS_restricted_TypeB_delta_f_RA_125
[
13
];
extern
uint16_t
NCS_unrestricted_delta_f_RA_5
[
16
];
extern
uint16_t
NCS_restricted_TypeA_delta_f_RA_5
[
16
];
extern
uint16_t
NCS_restricted_TypeB_delta_f_RA_5
[
14
];
extern
uint16_t
NCS_unrestricted_delta_f_RA_15
[
16
];
extern
uint16_t
prach_root_sequence_map_0_3
[
838
];
extern
uint16_t
prach_root_sequence_map_0_3
[
838
];
extern
uint16_t
prach_root_sequence_map_abc
[
138
];
extern
uint16_t
prach_root_sequence_map_abc
[
138
];
extern
uint16_t
nr_du
[
838
];
extern
uint16_t
nr_du
[
838
];
...
...
openair1/PHY/NR_TRANSPORT/nr_prach_common.c
View file @
a248c44d
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
View file @
a248c44d
...
@@ -213,6 +213,11 @@ uint32_t nr_get_code_rate_ul(uint8_t Imcs, uint8_t table_idx);
...
@@ -213,6 +213,11 @@ uint32_t nr_get_code_rate_ul(uint8_t Imcs, uint8_t table_idx);
uint32_t
nr_get_code_rate_dl
(
uint8_t
Imcs
,
uint8_t
table_idx
);
uint32_t
nr_get_code_rate_dl
(
uint8_t
Imcs
,
uint8_t
table_idx
);
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
);
void
rx_nr_prach
(
PHY_VARS_gNB
*
gNB
,
void
rx_nr_prach
(
PHY_VARS_gNB
*
gNB
,
nfapi_nr_prach_pdu_t
*
prach_pdu
,
nfapi_nr_prach_pdu_t
*
prach_pdu
,
int
frame
,
int
frame
,
...
...
openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
View file @
a248c44d
...
@@ -1648,8 +1648,6 @@ uint8_t get_num_prach_tdd(module_id_t Mod_id);
...
@@ -1648,8 +1648,6 @@ uint8_t get_num_prach_tdd(module_id_t Mod_id);
*/
*/
uint8_t
get_prach_fmt
(
uint8_t
prach_ConfigIndex
,
lte_frame_type_t
frame_type
);
uint8_t
get_prach_fmt
(
uint8_t
prach_ConfigIndex
,
lte_frame_type_t
frame_type
);
uint16_t
get_nr_prach_fmt
(
int
prach_ConfigIndex
,
lte_frame_type_t
frame_type
,
nr_frequency_range_e
fr
);
/*!
/*!
\brief Helper for MAC, returns frequency index of PRACH resource in TDD for a particular configuration index
\brief Helper for MAC, returns frequency index of PRACH resource in TDD for a particular configuration index
@param frame_parms Pointer to NR_DL_FRAME_PARMS structure
@param frame_parms Pointer to NR_DL_FRAME_PARMS structure
...
@@ -1673,8 +1671,13 @@ void compute_prach_seq(uint16_t rootSequenceIndex,
...
@@ -1673,8 +1671,13 @@ void compute_prach_seq(uint16_t rootSequenceIndex,
lte_frame_type_t
frame_type
,
lte_frame_type_t
frame_type
,
uint32_t
X_u
[
64
][
839
]);
uint32_t
X_u
[
64
][
839
]);
void
compute_nr_prach_seq
(
nfapi_nr_config_request_scf_t
*
config
,
uint8_t
highSpeedFlag
,
uint32_t
**
X_u
);
void
init_prach_tables
(
int
N_ZC
);
void
init_prach_tables
(
int
N_ZC
);
void
init_nr_prach_tables
(
int
N_ZC
);
void
init_unscrambling_lut
(
void
);
void
init_unscrambling_lut
(
void
);
void
init_scrambling_lut
(
void
);
void
init_scrambling_lut
(
void
);
...
...
openair1/SCHED_NR/fapi_nr_l1.c
View file @
a248c44d
...
@@ -212,7 +212,8 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
...
@@ -212,7 +212,8 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
break
;
break
;
case
NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE
:
case
NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE
:
LOG_D
(
PHY
,
"frame %d, slot %d, Got NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE for %d.%d
\n
"
,
frame
,
slot
,
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
);
LOG_D
(
PHY
,
"frame %d, slot %d, Got NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE for %d.%d
\n
"
,
frame
,
slot
,
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
);
nr_fill_prach
(
gNB
,
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
,
UL_tti_req
->
pdus_list
[
i
].
prach_pdu
);
nfapi_nr_prach_pdu_t
*
prach_pdu
=
&
UL_tti_req
->
pdus_list
[
i
].
prach_pdu
;
nr_fill_prach
(
gNB
,
UL_tti_req
->
SFN
,
UL_tti_req
->
Slot
,
prach_pdu
);
break
;
break
;
}
}
}
}
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
a248c44d
...
@@ -208,8 +208,6 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
...
@@ -208,8 +208,6 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
// VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX,1);
// VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX,1);
if (do_prach_rx(fp,frame,slot)) L1_nr_prach_procedures(gNB,frame,slot/fp->slots_per_subframe);
*/
*/
void
nr_ulsch_procedures
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
,
int
ULSCH_id
,
uint8_t
harq_pid
)
void
nr_ulsch_procedures
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
,
int
ULSCH_id
,
uint8_t
harq_pid
)
...
...
openair2/GNB_APP/RRC_nr_paramsvalues.h
View file @
a248c44d
...
@@ -311,7 +311,7 @@
...
@@ -311,7 +311,7 @@
{GNB_CONFIG_STRING_RSRPTHRESHOLDSSB,NULL,0,i64ptr:scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rsrp_ThresholdSSB,defint64val:19,TYPE_INT64,0
/*82*/
},\
{GNB_CONFIG_STRING_RSRPTHRESHOLDSSB,NULL,0,i64ptr:scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rsrp_ThresholdSSB,defint64val:19,TYPE_INT64,0
/*82*/
},\
{GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEXPR,NULL,0,uptr:&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.present,defuintval:NR_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139,TYPE_UINT,0
/*83*/
},\
{GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEXPR,NULL,0,uptr:&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.present,defuintval:NR_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139,TYPE_UINT,0
/*83*/
},\
{GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEX,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.choice.l139,defint64val:0,TYPE_INT64,0
/*84*/
},\
{GNB_CONFIG_STRING_PRACHROOTSEQUENCEINDEX,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->prach_RootSequenceIndex.choice.l139,defint64val:0,TYPE_INT64,0
/*84*/
},\
{GNB_CONFIG_STRING_
MSG1SUBCARRIERSPACIN
G,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->restrictedSetConfig,defintval:NR_RACH_ConfigCommon__restrictedSetConfig_unrestrictedSet,TYPE_INT64,0
/*85*/
}, \
{GNB_CONFIG_STRING_
RESTRICTEDSETCONFI
G,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->restrictedSetConfig,defintval:NR_RACH_ConfigCommon__restrictedSetConfig_unrestrictedSet,TYPE_INT64,0
/*85*/
}, \
{GNB_CONFIG_STRING_INITIALULBWPK2_0,NULL,0,i64ptr:scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[0]->k2,defint64val:-1,TYPE_INT64,0
/*86*/
},\
{GNB_CONFIG_STRING_INITIALULBWPK2_0,NULL,0,i64ptr:scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[0]->k2,defint64val:-1,TYPE_INT64,0
/*86*/
},\
{GNB_CONFIG_STRING_INITIALULBWPMAPPINGTYPE_0,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[0]->mappingType,defint64val:NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB,TYPE_INT64,
/*87*/
},\
{GNB_CONFIG_STRING_INITIALULBWPMAPPINGTYPE_0,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[0]->mappingType,defint64val:NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeB,TYPE_INT64,
/*87*/
},\
{GNB_CONFIG_STRING_INITIALULBWPSTARTSYMBOLANDLENGTH_0,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[0]->startSymbolAndLength,defint64val:55,TYPE_INT64,0
/*88*/
},\
{GNB_CONFIG_STRING_INITIALULBWPSTARTSYMBOLANDLENGTH_0,NULL,0,i64ptr:&scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->pusch_TimeDomainAllocationList->list.array[0]->startSymbolAndLength,defint64val:55,TYPE_INT64,0
/*88*/
},\
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
a248c44d
...
@@ -863,6 +863,19 @@ int64_t table_6_3_3_2_4_prachConfig_Index [256][10] = {
...
@@ -863,6 +863,19 @@ int64_t table_6_3_3_2_4_prachConfig_Index [256][10] = {
};
};
int
get_format0
(
uint8_t
index
,
uint8_t
unpaired
){
uint16_t
format
;
if
(
unpaired
)
format
=
table_6_3_3_2_3_prachConfig_Index
[
index
][
0
];
else
format
=
table_6_3_3_2_2_prachConfig_Index
[
index
][
0
];
return
format
;
}
int
get_nr_prach_info_from_index
(
uint8_t
index
,
int
get_nr_prach_info_from_index
(
uint8_t
index
,
int
frame
,
int
frame
,
int
slot
,
int
slot
,
...
@@ -962,6 +975,111 @@ int get_nr_prach_info_from_index(uint8_t index,
...
@@ -962,6 +975,111 @@ int get_nr_prach_info_from_index(uint8_t index,
}
}
}
}
//Table 6.3.3.1-3: Mapping from logical index i to sequence number u for preamble formats with L_RA = 839
uint16_t
table_63313
[
838
]
=
{
129
,
710
,
140
,
699
,
120
,
719
,
210
,
629
,
168
,
671
,
84
,
755
,
105
,
734
,
93
,
746
,
70
,
769
,
60
,
779
,
2
,
837
,
1
,
838
,
56
,
783
,
112
,
727
,
148
,
691
,
80
,
759
,
42
,
797
,
40
,
799
,
35
,
804
,
73
,
766
,
146
,
693
,
31
,
808
,
28
,
811
,
30
,
809
,
27
,
812
,
29
,
810
,
24
,
815
,
48
,
791
,
68
,
771
,
74
,
765
,
178
,
661
,
136
,
703
,
86
,
753
,
78
,
761
,
43
,
796
,
39
,
800
,
20
,
819
,
21
,
818
,
95
,
744
,
202
,
637
,
190
,
649
,
181
,
658
,
137
,
702
,
125
,
714
,
151
,
688
,
217
,
622
,
128
,
711
,
142
,
697
,
122
,
717
,
203
,
636
,
118
,
721
,
110
,
729
,
89
,
750
,
103
,
736
,
61
,
778
,
55
,
784
,
15
,
824
,
14
,
825
,
12
,
827
,
23
,
816
,
34
,
805
,
37
,
802
,
46
,
793
,
207
,
632
,
179
,
660
,
145
,
694
,
130
,
709
,
223
,
616
,
228
,
611
,
227
,
612
,
132
,
707
,
133
,
706
,
143
,
696
,
135
,
704
,
161
,
678
,
201
,
638
,
173
,
666
,
106
,
733
,
83
,
756
,
91
,
748
,
66
,
773
,
53
,
786
,
10
,
829
,
9
,
830
,
7
,
832
,
8
,
831
,
16
,
823
,
47
,
792
,
64
,
775
,
57
,
782
,
104
,
735
,
101
,
738
,
108
,
731
,
208
,
631
,
184
,
655
,
197
,
642
,
191
,
648
,
121
,
718
,
141
,
698
,
149
,
690
,
216
,
623
,
218
,
621
,
152
,
687
,
144
,
695
,
134
,
705
,
138
,
701
,
199
,
640
,
162
,
677
,
176
,
663
,
119
,
720
,
158
,
681
,
164
,
675
,
174
,
665
,
171
,
668
,
170
,
669
,
87
,
752
,
169
,
670
,
88
,
751
,
107
,
732
,
81
,
758
,
82
,
757
,
100
,
739
,
98
,
741
,
71
,
768
,
59
,
780
,
65
,
774
,
50
,
789
,
49
,
790
,
26
,
813
,
17
,
822
,
13
,
826
,
6
,
833
,
5
,
834
,
33
,
806
,
51
,
788
,
75
,
764
,
99
,
740
,
96
,
743
,
97
,
742
,
166
,
673
,
172
,
667
,
175
,
664
,
187
,
652
,
163
,
676
,
185
,
654
,
200
,
639
,
114
,
725
,
189
,
650
,
115
,
724
,
194
,
645
,
195
,
644
,
192
,
647
,
182
,
657
,
157
,
682
,
156
,
683
,
211
,
628
,
154
,
685
,
123
,
716
,
139
,
700
,
212
,
627
,
153
,
686
,
213
,
626
,
215
,
624
,
150
,
689
,
225
,
614
,
224
,
615
,
221
,
618
,
220
,
619
,
127
,
712
,
147
,
692
,
124
,
715
,
193
,
646
,
205
,
634
,
206
,
633
,
116
,
723
,
160
,
679
,
186
,
653
,
167
,
672
,
79
,
760
,
85
,
754
,
77
,
762
,
92
,
747
,
58
,
781
,
62
,
777
,
69
,
770
,
54
,
785
,
36
,
803
,
32
,
807
,
25
,
814
,
18
,
821
,
11
,
828
,
4
,
835
,
3
,
836
,
19
,
820
,
22
,
817
,
41
,
798
,
38
,
801
,
44
,
795
,
52
,
787
,
45
,
794
,
63
,
776
,
67
,
772
,
72
,
767
,
76
,
763
,
94
,
745
,
102
,
737
,
90
,
749
,
109
,
730
,
165
,
674
,
111
,
728
,
209
,
630
,
204
,
635
,
117
,
722
,
188
,
651
,
159
,
680
,
198
,
641
,
113
,
726
,
183
,
656
,
180
,
659
,
177
,
662
,
196
,
643
,
155
,
684
,
214
,
625
,
126
,
713
,
131
,
708
,
219
,
620
,
222
,
617
,
226
,
613
,
230
,
609
,
232
,
607
,
262
,
577
,
252
,
587
,
418
,
421
,
416
,
423
,
413
,
426
,
411
,
428
,
376
,
463
,
395
,
444
,
283
,
556
,
285
,
554
,
379
,
460
,
390
,
449
,
363
,
476
,
384
,
455
,
388
,
451
,
386
,
453
,
361
,
478
,
387
,
452
,
360
,
479
,
310
,
529
,
354
,
485
,
328
,
511
,
315
,
524
,
337
,
502
,
349
,
490
,
335
,
504
,
324
,
515
,
323
,
516
,
320
,
519
,
334
,
505
,
359
,
480
,
295
,
544
,
385
,
454
,
292
,
547
,
291
,
548
,
381
,
458
,
399
,
440
,
380
,
459
,
397
,
442
,
369
,
470
,
377
,
462
,
410
,
429
,
407
,
432
,
281
,
558
,
414
,
425
,
247
,
592
,
277
,
562
,
271
,
568
,
272
,
567
,
264
,
575
,
259
,
580
,
237
,
602
,
239
,
600
,
244
,
595
,
243
,
596
,
275
,
564
,
278
,
561
,
250
,
589
,
246
,
593
,
417
,
422
,
248
,
591
,
394
,
445
,
393
,
446
,
370
,
469
,
365
,
474
,
300
,
539
,
299
,
540
,
364
,
475
,
362
,
477
,
298
,
541
,
312
,
527
,
313
,
526
,
314
,
525
,
353
,
486
,
352
,
487
,
343
,
496
,
327
,
512
,
350
,
489
,
326
,
513
,
319
,
520
,
332
,
507
,
333
,
506
,
348
,
491
,
347
,
492
,
322
,
517
,
330
,
509
,
338
,
501
,
341
,
498
,
340
,
499
,
342
,
497
,
301
,
538
,
366
,
473
,
401
,
438
,
371
,
468
,
408
,
431
,
375
,
464
,
249
,
590
,
269
,
570
,
238
,
601
,
234
,
605
,
257
,
582
,
273
,
566
,
255
,
584
,
254
,
585
,
245
,
594
,
251
,
588
,
412
,
427
,
372
,
467
,
282
,
557
,
403
,
436
,
396
,
443
,
392
,
447
,
391
,
448
,
382
,
457
,
389
,
450
,
294
,
545
,
297
,
542
,
311
,
528
,
344
,
495
,
345
,
494
,
318
,
521
,
331
,
508
,
325
,
514
,
321
,
518
,
346
,
493
,
339
,
500
,
351
,
488
,
306
,
533
,
289
,
550
,
400
,
439
,
378
,
461
,
374
,
465
,
415
,
424
,
270
,
569
,
241
,
598
,
231
,
608
,
260
,
579
,
268
,
571
,
276
,
563
,
409
,
430
,
398
,
441
,
290
,
549
,
304
,
535
,
308
,
531
,
358
,
481
,
316
,
523
,
293
,
546
,
288
,
551
,
284
,
555
,
368
,
471
,
253
,
586
,
256
,
583
,
263
,
576
,
242
,
597
,
274
,
565
,
402
,
437
,
383
,
456
,
357
,
482
,
329
,
510
,
317
,
522
,
307
,
532
,
286
,
553
,
287
,
552
,
266
,
573
,
261
,
578
,
236
,
603
,
303
,
536
,
356
,
483
,
355
,
484
,
405
,
434
,
404
,
435
,
406
,
433
,
235
,
604
,
267
,
572
,
302
,
537
,
309
,
530
,
265
,
574
,
233
,
606
,
367
,
472
,
296
,
543
,
336
,
503
,
305
,
534
,
373
,
466
,
280
,
559
,
279
,
560
,
419
,
420
,
240
,
599
,
258
,
581
,
229
,
610
};
uint8_t
compute_nr_root_seq
(
NR_RACH_ConfigCommon_t
*
rach_config
,
uint8_t
nb_preambles
,
uint8_t
unpaired
)
{
uint8_t
config_index
=
rach_config
->
rach_ConfigGeneric
.
prach_ConfigurationIndex
;
uint8_t
ncs_index
=
rach_config
->
rach_ConfigGeneric
.
zeroCorrelationZoneConfig
;
uint16_t
format0
=
get_format0
(
config_index
,
unpaired
);
uint16_t
NCS
=
get_NCS
(
ncs_index
,
format0
,
rach_config
->
restrictedSetConfig
);
uint16_t
L_ra
=
(
rach_config
->
prach_RootSequenceIndex
.
present
)
?
139
:
839
;
uint16_t
r
,
u
,
index
,
q
,
d_u
,
n_shift_ra
,
n_shift_ra_bar
,
d_start
;
uint32_t
w
;
uint8_t
found_preambles
=
0
;
uint8_t
found_sequences
=
0
;
if
(
rach_config
->
restrictedSetConfig
==
0
)
{
if
(
NCS
==
0
)
return
nb_preambles
;
else
{
r
=
L_ra
/
NCS
;
return
(
nb_preambles
/
r
);
}
}
else
{
index
=
rach_config
->
prach_RootSequenceIndex
.
choice
.
l839
;
while
(
found_preambles
<
nb_preambles
)
{
u
=
table_63313
[
index
%
(
L_ra
-
1
)];
q
=
0
;
while
(((
q
*
u
)
%
L_ra
)
!=
1
)
q
++
;
if
(
q
<
420
)
d_u
=
q
;
else
d_u
=
L_ra
-
q
;
uint16_t
n_group_ra
=
0
;
if
(
rach_config
->
restrictedSetConfig
==
1
)
{
if
(
(
d_u
<
280
)
&&
(
d_u
>=
NCS
)
)
{
n_shift_ra
=
d_u
/
NCS
;
d_start
=
(
d_u
<<
1
)
+
(
n_shift_ra
*
NCS
);
n_group_ra
=
L_ra
/
d_start
;
n_shift_ra_bar
=
max
(
0
,(
L_ra
-
(
d_u
<<
1
)
-
(
n_group_ra
*
d_start
))
/
L_ra
);
}
else
if
(
(
d_u
>=
280
)
&&
(
d_u
<=
((
L_ra
-
NCS
)
>>
1
))
)
{
n_shift_ra
=
(
L_ra
-
(
d_u
<<
1
))
/
NCS
;
d_start
=
L_ra
-
(
d_u
<<
1
)
+
(
n_shift_ra
*
NCS
);
n_group_ra
=
d_u
/
d_start
;
n_shift_ra_bar
=
min
(
n_shift_ra
,
max
(
0
,(
d_u
-
(
n_group_ra
*
d_start
))
/
NCS
));
}
else
{
n_shift_ra
=
0
;
n_shift_ra_bar
=
0
;
}
w
=
n_shift_ra
*
n_group_ra
+
n_shift_ra_bar
;
found_preambles
+=
w
;
found_sequences
++
;
}
else
{
AssertFatal
(
1
==
0
,
"Procedure to find nb of sequences for restricted type B not implemented yet"
);
}
}
return
found_sequences
;
}
}
nr_bandentry_t
nr_bandtable
[]
=
{
nr_bandentry_t
nr_bandtable
[]
=
{
{
1
,
1920000
,
1980000
,
2110000
,
2170000
,
20
,
422000
,
100
},
{
1
,
1920000
,
1980000
,
2110000
,
2170000
,
20
,
422000
,
100
},
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
a248c44d
...
@@ -53,6 +53,12 @@ int get_nr_prach_info_from_index(uint8_t index,
...
@@ -53,6 +53,12 @@ int get_nr_prach_info_from_index(uint8_t index,
uint8_t
*
N_t_slot
,
uint8_t
*
N_t_slot
,
uint8_t
*
N_dur
);
uint8_t
*
N_dur
);
uint8_t
compute_nr_root_seq
(
NR_RACH_ConfigCommon_t
*
rach_config
,
uint8_t
nb_preambles
,
uint8_t
unpaired
);
int
get_format0
(
uint8_t
index
,
uint8_t
unpaired
);
uint16_t
get_NCS
(
uint8_t
index
,
uint16_t
format
,
uint8_t
restricted_set_config
);
uint16_t
get_NCS
(
uint8_t
index
,
uint16_t
format
,
uint8_t
restricted_set_config
);
typedef
enum
{
typedef
enum
{
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
a248c44d
...
@@ -154,6 +154,10 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
...
@@ -154,6 +154,10 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
// PRACH configuration
// PRACH configuration
uint8_t
nb_preambles
=
64
;
if
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
totalNumberOfRA_Preambles
!=
NULL
)
nb_preambles
=
*
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
totalNumberOfRA_Preambles
;
cfg
->
prach_config
.
prach_sequence_length
.
value
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
prach_RootSequenceIndex
.
present
;
cfg
->
prach_config
.
prach_sequence_length
.
value
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
prach_RootSequenceIndex
.
present
;
cfg
->
prach_config
.
prach_sequence_length
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_SEQUENCE_LENGTH_TAG
;
cfg
->
prach_config
.
prach_sequence_length
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_SEQUENCE_LENGTH_TAG
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
...
@@ -164,7 +168,6 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
...
@@ -164,7 +168,6 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
cfg
->
prach_config
.
prach_sub_c_spacing
.
value
=
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
;
cfg
->
prach_config
.
prach_sub_c_spacing
.
value
=
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
scs_SpecificCarrierList
.
list
.
array
[
0
]
->
subcarrierSpacing
;
cfg
->
prach_config
.
prach_sub_c_spacing
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_SUB_C_SPACING_TAG
;
cfg
->
prach_config
.
prach_sub_c_spacing
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_SUB_C_SPACING_TAG
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
cfg
->
prach_config
.
restricted_set_config
.
value
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
restrictedSetConfig
;
cfg
->
prach_config
.
restricted_set_config
.
value
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
restrictedSetConfig
;
cfg
->
prach_config
.
restricted_set_config
.
tl
.
tag
=
NFAPI_NR_CONFIG_RESTRICTED_SET_CONFIG_TAG
;
cfg
->
prach_config
.
restricted_set_config
.
tl
.
tag
=
NFAPI_NR_CONFIG_RESTRICTED_SET_CONFIG_TAG
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
...
@@ -203,6 +206,10 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
...
@@ -203,6 +206,10 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
cfg
->
prach_config
.
num_prach_fd_occasions_list
[
i
].
prach_zero_corr_conf
.
value
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
rach_ConfigGeneric
.
zeroCorrelationZoneConfig
;
cfg
->
prach_config
.
num_prach_fd_occasions_list
[
i
].
prach_zero_corr_conf
.
value
=
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
->
rach_ConfigGeneric
.
zeroCorrelationZoneConfig
;
cfg
->
prach_config
.
num_prach_fd_occasions_list
[
i
].
prach_zero_corr_conf
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_ZERO_CORR_CONF_TAG
;
cfg
->
prach_config
.
num_prach_fd_occasions_list
[
i
].
prach_zero_corr_conf
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_ZERO_CORR_CONF_TAG
;
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
cfg
->
prach_config
.
num_prach_fd_occasions_list
[
i
].
num_root_sequences
.
value
=
compute_nr_root_seq
(
scc
->
uplinkConfigCommon
->
initialUplinkBWP
->
rach_ConfigCommon
->
choice
.
setup
,
nb_preambles
,
frame_type
);
cfg
->
prach_config
.
num_prach_fd_occasions_list
[
i
].
num_root_sequences
.
tl
.
tag
=
NFAPI_NR_CONFIG_NUM_ROOT_SEQUENCES_TAG
;
cfg
->
num_tlv
++
;
//cfg->prach_config.num_prach_fd_occasions_list[i].num_unused_root_sequences.value = ???
//cfg->prach_config.num_prach_fd_occasions_list[i].num_unused_root_sequences.value = ???
}
}
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
View file @
a248c44d
...
@@ -105,8 +105,8 @@ gNBs =
...
@@ -105,8 +105,8 @@ gNBs =
#1,2,4,8,10,20,40,80
#1,2,4,8,10,20,40,80
ra_ResponseWindow
=
4
;
ra_ResponseWindow
=
4
;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#
0=oneeighth,1=onefourth,2=half,3=one,4=two,5=four,6=eight,7
=sixteen
#
1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8
=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
3
;
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
4
;
#oneHalf (0..15) 4,8,12,16,...60,64
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB
=
15
;
ssb_perRACH_OccasionAndCB_PreamblesPerSSB
=
15
;
#ra_ContentionResolutionTimer
#ra_ContentionResolutionTimer
...
@@ -114,16 +114,16 @@ gNBs =
...
@@ -114,16 +114,16 @@ gNBs =
ra_ContentionResolutionTimer
=
7
;
ra_ContentionResolutionTimer
=
7
;
rsrp_ThresholdSSB
=
19
;
rsrp_ThresholdSSB
=
19
;
#prach-RootSequenceIndex_PR
#prach-RootSequenceIndex_PR
#
0 = 839, 1
= 139
#
1 = 839, 2
= 139
prach_RootSequenceIndex_PR
=
1
;
prach_RootSequenceIndex_PR
=
2
;
prach_RootSequenceIndex
=
1
;
prach_RootSequenceIndex
=
1
;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
#
msg1_SubcarrierSpacing
=
1
,
msg1_SubcarrierSpacing
=
1
,
# restrictedSetConfig
# restrictedSetConfig
# 0=unrestricted, 1=restricted type A, 2=restricted type B
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig
=
0
,
restrictedSetConfig
=
0
,
# pusch-ConfigCommon (up to 16 elements)
# pusch-ConfigCommon (up to 16 elements)
initialULBWPk2_0
=
2
;
initialULBWPk2_0
=
2
;
initialULBWPmappingType_0
=
1
initialULBWPmappingType_0
=
1
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
View file @
a248c44d
...
@@ -105,8 +105,8 @@ gNBs =
...
@@ -105,8 +105,8 @@ gNBs =
#1,2,4,8,10,20,40,80
#1,2,4,8,10,20,40,80
ra_ResponseWindow
=
4
;
ra_ResponseWindow
=
4
;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#
0=oneeighth,1=onefourth,2=half,3=one,4=two,5=four,6=eight,7
=sixteen
#
1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8
=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
3
;
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
=
4
;
#oneHalf (0..15) 4,8,12,16,...60,64
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB
=
15
;
ssb_perRACH_OccasionAndCB_PreamblesPerSSB
=
15
;
#ra_ContentionResolutionTimer
#ra_ContentionResolutionTimer
...
@@ -114,8 +114,8 @@ gNBs =
...
@@ -114,8 +114,8 @@ gNBs =
ra_ContentionResolutionTimer
=
7
;
ra_ContentionResolutionTimer
=
7
;
rsrp_ThresholdSSB
=
19
;
rsrp_ThresholdSSB
=
19
;
#prach-RootSequenceIndex_PR
#prach-RootSequenceIndex_PR
#
0 = 839, 1
= 139
#
1 = 839, 2
= 139
prach_RootSequenceIndex_PR
=
1
;
prach_RootSequenceIndex_PR
=
2
;
prach_RootSequenceIndex
=
1
;
prach_RootSequenceIndex
=
1
;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
#
...
...
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