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
常顺宇
OpenXG-RAN
Commits
1462f0e6
Commit
1462f0e6
authored
5 years ago
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ENDC path switch S1-U: Bugfixes at gNB side
parent
cbba3da3
dev
1
128-ues
256_QAM_demod
512-dataplane-bug-in-l2nfapi_nos1
FR2_NSA
Fix_SA_SIB1
NCTU_OpinConnect_LDPC
NR-PHY-MAC-IF-multi-UE
NRPRACH_highSpeed_saankhya
NRUE_usedlschparallel
NR_10MHz
NR_2port_CSIRS
NR_CSIRS_tomerge
NR_CSI_reporting
NR_DCI_01
NR_DLUL_PF
NR_DLUL_PF_4UL
NR_DLUL_PF_rebased
NR_DL_MIMO
NR_DL_sched_fixes
NR_DL_scheduler
NR_F1C_F1U_extensions
NR_FAPI_beamindex_SSB_RO
NR_FAPI_beamindex_SSB_RO_SEMPROJ
NR_FDD_FIX
NR_FR2_RA
NR_FR2_RRC_SSB
NR_FR2_initsync_fixes
NR_MAC_CE_GlobalEdge
NR_MAC_Multi_Rach_GlobalEdge
NR_MAC_Multi_Rach_GlobalEdge-old
NR_MAC_SSB
NR_MAC_SSB_RO_GlobalEdge
NR_MAC_SSB_RO_UE_IDCC
NR_MAC_SSB_RO_merge
NR_MAC_TCI_UCI_GlobalEdge
NR_MCS_BLER
NR_NGAP
NR_PDCP_noS1
NR_PUCCH_MultiUE
NR_RA_cleanup
NR_RA_updates
NR_RRCConfiguration_FR2
NR_RRC_PDCP
NR_RRC_PRACH_procedures
NR_RRC_X2AP_AMBR_Change_Global_edge
NR_RRC_X2AP_RemoveHardcodings_GlobalEdge
NR_RRC_config_simplified
NR_RRC_harq
NR_RRC_harq_hacks
NR_SA_F1AP_5GRECORDS
NR_SA_F1AP_5GRECORDS-USIM
NR_SA_F1AP_5GRECORDS-wf-0623
NR_SA_F1AP_5GRECORDS_lts
NR_SA_F1AP_RFSIMULATOR
NR_SA_F1AP_RFSIMULATOR2
NR_SA_F1AP_RFSIMULATOR2_SRB
NR_SA_F1AP_RFSIMULATOR3
NR_SA_F1AP_RFSIMULATOR3_tmp
NR_SA_F1AP_RFSIMULATOR3_wf
NR_SA_F1AP_RFSIMULATOR_w5GCN
NR_SA_F1AP_dev
NR_SA_NGAP_RRC
NR_SA_NGAP_RRC_wk42
NR_SA_itti_sim_wk48
NR_SA_itti_sim_wk48_hs
NR_SA_itti_sim_wk48_hs1
NR_SA_w5GCN_new_gtpu
NR_SCHED_HARQ
NR_SCHED_PDCCH_PUCCH_HARQ
NR_SCHED_PDCCH_PUCCH_HARQ_rebased
NR_SCHED_fixes
NR_SRB_Config
NR_UE_CONFIG_REQ_FIXES
NR_UE_MAC_scheduler
NR_UE_PUCCH_bugfixes
NR_UE_RA_fixes
NR_UE_SA
NR_UE_UL_DCI_improvements
NR_UE_dlsch_bugfix
NR_UE_enable_parallelization
NR_UE_rework_test
NR_UE_reworking_UCI_procedures
NR_UE_stability_fixes
NR_UL_FAPI_programming
NR_UL_SCFDMA_100MHz
NR_UL_scheduler
NR_UL_scheduler_rebased
NR_UL_scheduling
NR_Wireshark
NR_beam_simulation
NR_cleanup_PUCCH_resources
NR_gNB_initial_MIB_fix
NR_ipaccess_testing
NR_mac_uci_functions_rework
NR_msg2_phytest
NR_multiplexing_HARQ_CSI_PUCCH
NR_phytest_bugfixes
NR_reworking_UL_antennaports
NR_scheduling_CSIRS
NR_scheduling_request
NR_scheduling_request2
NR_scheduling_request3
NR_test_S1U_RRC_PRACH_procedures
NR_ue_dlsch_dmrs_cdm
PBCHNRTCFIX
PUSCH_TA_update
RA_CI_test
RFquality
Saankhya_NRPRACH_HighSpeed
Test_SA_5GREC
UE_DL_DCI_hotfix
add-dmrs-test
add-ru-docker-image
avxllr
bandwidth-testing
bch-fixes-bitmap
benetel_5g_prach_fix
benetel_config_file_fix
benetel_dpdk20
benetel_driver_uldl_pf_merge
benetel_driver_update
benetel_fixes
benetel_phase_rotation
benetel_phase_rotation_old
bsr-fix
bugfix-free-ra-process
bugfix-minor-remove-wrong-log
bugfix-nr-bands
bugfix-nr-ldpc-post-processing
bugfix-nr-ldpc-size-typo
bugfix-nr-pdcp-sn-size
bugfix-nr-rate-matching-assertion
bugfix-nr-t-reordering
bugfix-x2-SgNBAdditionRequest
bugfix_gnb_rt_stats_html
bupt-sa-merge
cce_indexing_fix
cce_indexing_fix2
ci-deploy-asterix
ci-deploy-docker-compose
ci-fix-module-ul-iperf
ci-new-docker-pipeline
ci-rd-july-improvements
ci-reduce-nb-vms
ci-test
ci-ul-iperf-from-trf-container
ci_benetel_longrun_limits
ci_benetel_test
ci_fix_iperf_for_module
ci_hotfix_module_ue_ip_address
ci_improve_module_ctl
ci_nsa_benetel
ci_nsa_fixes
ci_nsa_pipes_improve
ci_nsa_test_integration_2021_wk19
ci_nsa_traces
ci_nsa_uplink
ci_phytest
ci_quectel_support
ci_sa_rfsim_test
ci_solve_ul_for_module
ci_test_5GREC
ci_test_nsa_fix_quectel_nic
ci_test_nsa_on_develop
ci_test_ra_fr2
ci_testinfra_as_code
ci_vm_resource_fix
clean-5G-scope-round2
cleanup_softmodem_main
constant_power
debug-UL-5GRECORDS
debug_UL_signal
detached-w16-test
develop
develop-CBRA-v3
develop-CCE
develop-NR_SA_F1AP_5GRECORDS
develop-NR_SA_F1AP_5GRECORDS-abs
develop-NR_SA_F1AP_5GRECORDS-hs
develop-NR_SA_F1AP_5GRECORDS-hs1
develop-NR_SA_F1AP_5GRECORDS-lts
develop-NR_SA_F1AP_5GRECORDS-lts-wf
develop-NR_SA_F1AP_5GRECORDS-v3
develop-NR_SA_F1AP_5GRECORDS_100M
develop-NR_SA_F1AP_5GRECORDS_LDPC_FPGA
develop-NR_SA_F1AP_5GRECORDS_lfq_0607
develop-SA-CBRA
develop-SA-CBRA-CUDU
develop-SA-CBRA-Msg5
develop-SA-CBRA-lts
develop-SA-CBRA-ulsch-lts
develop-SA-RA
develop-SnT
develop-aw2sori
develop-oriecpriupdates
develop-sib1
develop-sib1-local
develop-sib1-lts
develop-sib1-update
develop-sib1-update-test1
develop-sib1-update-ue
develop-wf-du
develop_stable
dfts_alternatives
disable_CSI_measrep
dlsch-all-dlslots
dlsch_encode_mthread
dlsch_parallel
docker-improvements-2021-april
docker-no-cache-option
dongzhanyi-zte-develop
dongzhanyi-zte-develop1
dongzhanyi-zte-develop2
enhance-rfsim
episys-merge
episys/nsa_baseline
episys/nsa_development
feature/make-s1-mme-port-configurable
feature/make-s1-mme-port-configurable-with-astyle-fixes
fedora-gen-kernel-fix
fembms-enb-ue
fft_bench_hotfix
finalize-oaicn-integration
firas
fix-check
fix-ci-tun
fix-compile
fix-itti-segv
fix-nr-pdcp-timer
fix-nr-rlc-range-nack
fix-physim-deploy
fix-quectel
fix-realtime
fix-retransmission-rbg
fix-softmodem-restart
fix-x2-without-gnb
fix_NR_DLUL_PF
fix_NR_DLUL_PF_benchmark
fix_coreset_dmrs_idx
fix_do_ra_data
fix_nr_ulsim
fix_pdsch_low_prb
fix_rb_corruption
fix_reestablishment
fix_rfsim_mimo
fix_rrc_x2_ticking
fixes-CE-RLC-PDU-size
fixes-mac-sched-nfapi
fixes-mac-sched-tun
fixes-tun
fixgtpu
flexran-apps
flexran-repair-mme-mgmt
flexran-rtc-repo-is-public
fujitsu_lte_contribution
fujitsu_lte_contribution-128
git-dashboard
gnb-freerun-txru
gnb-n300-fixes
gnb-only-test
gnb-realtime-hotfix
gnb-realtime-quickfix
gnb-threadpool
hack-bch-no-sched-sf-0
hack-exit-gnb-when-no-enb-nsa
harq-hotfix
hotfix-minor-remove-nr-rlc-cppcheck-error
hotfix-nr-rlc-tick
hotfix-ocp-executable
improve_nr_modulation
improve_ue_stability
integ-w13-test-rt-issue
integration_2020_wk15
integration_2020_wk40
integration_2020_wk41
integration_2020_wk42_2
integration_2020_wk45
integration_2020_wk45_2
integration_2020_wk46
integration_2020_wk46_2
integration_2020_wk47
integration_2020_wk48
integration_2020_wk48_2
integration_2020_wk49
integration_2020_wk50
integration_2020_wk50_1
integration_2020_wk51
integration_2020_wk51_2
integration_2021_wk02
integration_2021_wk02_wMR988
integration_2021_wk04
integration_2021_wk05
integration_2021_wk06
integration_2021_wk06_MR978
integration_2021_wk06_b
integration_2021_wk06_c
integration_2021_wk08
integration_2021_wk08_2
integration_2021_wk08_MR963
integration_2021_wk09
integration_2021_wk09_b
integration_2021_wk10
integration_2021_wk10_b
integration_2021_wk11
integration_2021_wk12
integration_2021_wk12_b
integration_2021_wk13_a
integration_2021_wk13_b
integration_2021_wk13_b_fix_tdas
integration_2021_wk13_b_fixed
integration_2021_wk13_c
integration_2021_wk14_a
integration_2021_wk15_a
integration_2021_wk16
integration_2021_wk17_a
integration_2021_wk17_b
integration_2021_wk18_a
integration_2021_wk18_b
integration_2021_wk19
integration_2021_wk20_a
integration_2021_wk22
integration_2021_wk23
integration_2021_wk27
integration_w5GC_CBRA_test
inter-RRU-final
itti-enhancement
ldpc-decoder-codegen
ldpc-decoder-codegen2
ldpc_offload_t1
ldpc_short_codeword_fixes
load_gnb
lte-ulsch-bugfix
lte_uplink_improvement
mac-fixes-wk45_2
migrate-cpp-check-container
migrate-vm-pipeline-to-bionic
minor-fix-doc-basic-sim
mosaic5g-oai-ran
mosaic5g-oai-sim
msg4_phy_0303_lfq
multiple_ssb_sib1_bugfix
nasmesh_kernel_5.8
new-gtpu
nfapi-bugfix
nfapi_nr_arch_mod
nfapi_nr_develop
nfapi_nr_develop_new
ngap-dlul
ngap-support
ngap-w48-merge2
ngap-wf
ngap-wf-1120
ngap-wf-1120-srb
ngap-wf-1120-srb-gtp
ngap-wf-1120-srb-gtp-hs
ngap-wf-1120-srb-gtp-hs1
ngap-wf-1120-srb-gtp-hs2
ngap-wf-1120-srb-gtp-yhz
ngap-wf-1203-yunsdr
ngap-wf-liuyu
ngap_lfq_1120
ngap_merge
noCore
nr-bsr-fix
nr-dl-mimo-2layer
nr-dmrs-fixes
nr-mac-pdu-wireshark
nr-mac-remove-ue-list
nr-pdcp-benchmarking
nr-pdcp-improvements
nr-pdcp-nea2-security
nr-pdcp-nia2-integrity
nr-pdcp-small-bugfixes
nr-pdcp-srb-integrity
nr-ra-fix
nr-rlc-am-bugfix-w44
nr-rlc-bugfix-w44
nr-stats-print
nrPBCHTCFix
nrPbchTcFix
nrUE
nrUE-hs
nrUE-upper-layer
nr_bsr
nr_dl_dmrs_type2
nr_dl_pf
nr_dl_pf2
nr_dl_ul_ptrs
nr_fdd_if_fix
nr_improve_chanest
nr_polar_decoder_improvement
nr_power_measurement_fixes
nr_prach_fr2
nr_ue_msg3
nr_ue_pdcp_fix
nr_ue_tti_cleanup
nr_ul_pf
nr_ul_scfdma
nrue_msg2_reception
nsa-ue
nsa_remove_band_hardcodings
oai-sim
oairu
oairu-dockerfile-support
oc-docker-october-improvements
openxg/develop
phy-asan-fixes
physim-build-deploy
physim-deploy-handle-error-cases
polar8
prb_based_dl_channel_estimation
ptrs_rrc_config
pusch-mthread-scaling-fix
pusch-retrans-fix-ue
ra-dl-ul
recursive-cmake
remove_nos1_hack_pdcp
remove_x2_gnb_hardcoding
repair-TA
revert_memcpy
rh-ci-add-ue-parallelization
rh_ci_add_runtime_stats
rh_ci_add_uldlharq_stats
rh_ci_fix_autoterminate
rh_ci_fr1_update
rh_ci_gsheet_rt_monitoring
rh_ci_nsa2jenkins
rh_ci_nsa_test_n310
rh_ci_oc
rh_ci_phy_test_improve
rh_ci_py
rh_ci_ra_fr2
rh_ci_rfsim_ra
rh_ci_test_benetel
rh_ci_test_nsa
rh_ci_test_nsa_wk16
rh_ci_test_nsa_wk17_b
rh_ci_test_nsa_wk17b
rh_ci_test_rfsim_sa
rh_ci_ue_parallel
rh_fr1_newjenkins
rh_fr1_update
rh_gnb_compile_fix
rh_wk50_debug
rlc-v2-bugfix-status-reporting
rlc-v2-tick
rohan_ulsim2RxFix
rrc-enb-phy-testmode
s1-subnormal_rewrite
s1_subnormal
s1_subnormal-robert
s1ap-bugfix-rab_setup
sa-demo
sa-demo-hs
sa-merge-rrc-srb
sa-msg4
sa-msg4-rrc
sa-msg4-rrc-yihz
sa-msg4-rrc-yihz-hs
sa_rrc_yihz
sanitize-address
sanitize-v1
sanitize-v1-tmp
sarma_pvnp_oai
scs_60_iisc
sim-channels
small-bugfixes-w40
small-config-change
small_nr_bugfixes
smallcleanup
t-gnb-tracer
test-5GREC
test-nsa-benetel
test-panos
test_nsa_gtpu_fix
test_rt-fix_phy-test
testing_2symb_pdcch
testing_with_external_txdata
tp-ota-test
trx_thread_param
ue-csi
ue-dci-false-detection
ue-fixes
ue-fixes-ota
ue-pdsch-pusch-parallel
ue-race-fix
ue_beam_selection
ul-freq-iq-samps-to-file
ul_dl_dci_same_slot
ul_harq
ulsch_decode_mthread
ulsim_changes
usrp_stop_cleanly
usrp_x400
wf-sa-rrc
wf_testc
wireshark-T-hack-ueid
wireshark-log-scheduling-requests
wk11-with-phytest
x2-endc-processing
x2_handle_sctp_shutdown
xiangwab
xiangwan
xw2
yihongzheng_srb
zzs
2021.wk14_a
2021.wk13_d
2021.wk13_c
2021.w27
2021.w26
2021.w25
2021.w24
2021.w23
2021.w22
2021.w20
2021.w19
2021.w18_b
2021.w18_a
2021.w17_b
2021.w16
2021.w15
2021.w14
2021.w13_a
2021.w12
2021.w11
2021.w10
2021.w09
2021.w08
2021.w06
2021.w05
2021.w04
2021.w02
2020.w51_2
2020.w51
2020.w50
2020.w49
2020.w48_2
2020.w48
2020.w47
2020.w46_2
2020.w46
2020.w45_2
2020.w45
2020.w44
2020.w42_2
2020.w42
2020.w41
2020.w39
2020.w38
2020.w37
2020.w36
2020.w34
2020.w33
2020.w31
2020.w30
2020.w29
2020.w28
2020.w26
2020.w25
benetel_phase_rotation
benetel_gnb_rel_2.0
benetel_gnb_rel_1.0
benetel_enb_rel_2.0
benetel_enb_rel_1.0
No related merge requests found
Changes
18
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
229 additions
and
36 deletions
+229
-36
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+14
-0
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+2
-0
openair1/PHY/NR_TRANSPORT/nr_prach.c
openair1/PHY/NR_TRANSPORT/nr_prach.c
+37
-2
openair1/PHY/NR_TRANSPORT/nr_prach_common.c
openair1/PHY/NR_TRANSPORT/nr_prach_common.c
+1
-1
openair1/PHY/NR_TRANSPORT/nr_ulsch.c
openair1/PHY/NR_TRANSPORT/nr_ulsch.c
+1
-0
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
+25
-0
openair1/SCHED_NR/nr_prach_procedures.c
openair1/SCHED_NR/nr_prach_procedures.c
+4
-0
openair1/SCHED_NR/nr_ru_procedures.c
openair1/SCHED_NR/nr_ru_procedures.c
+12
-0
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+9
-4
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+4
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/nr_compute_tbs_common.c
openair2/LAYER2/NR_MAC_gNB/nr_compute_tbs_common.c
+4
-0
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+28
-0
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+64
-23
openair2/X2AP/x2ap_eNB_generate_messages.c
openair2/X2AP/x2ap_eNB_generate_messages.c
+2
-2
openair2/X2AP/x2ap_eNB_handler.c
openair2/X2AP/x2ap_eNB_handler.c
+9
-0
openair3/GTPV1-U/gtpv1u_eNB.c
openair3/GTPV1-U/gtpv1u_eNB.c
+11
-0
No files found.
openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
View file @
1462f0e6
...
@@ -36,6 +36,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
...
@@ -36,6 +36,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
unsigned
char
symbol
,
unsigned
char
symbol
,
unsigned
short
bwp_start_subcarrier
,
unsigned
short
bwp_start_subcarrier
,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
)
{
nfapi_nr_pusch_pdu_t
*
pusch_pdu
)
{
printf
(
"nr_pusch_channel_estimation Ns %d p %d symbol %d
\n
"
,
Ns
,
p
,
symbol
);
int
pilot
[
3280
]
__attribute__
((
aligned
(
16
)));
int
pilot
[
3280
]
__attribute__
((
aligned
(
16
)));
unsigned
char
aarx
;
unsigned
char
aarx
;
...
@@ -488,5 +489,18 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
...
@@ -488,5 +489,18 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
fclose
(
debug_ch_est
);
fclose
(
debug_ch_est
);
#endif
#endif
{
char
name
[
128
];
FILE
*
f
;
sprintf
(
name
,
"ch_estimate.%d.%d.raw"
,
gNB
->
proc
.
frame_rx
,
symbol
);
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
&
ul_ch_estimates
[
0
][
symbol_offset
],
nb_rb_pusch
*
12
*
4
,
1
,
f
);
fclose
(
f
);
sprintf
(
name
,
"ch_estimate_time.%d.%d.raw"
,
gNB
->
proc
.
frame_rx
,
symbol
);
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
ul_ch_estimates_time
[
0
],
1536
*
4
,
1
,
f
);
fclose
(
f
);
}
return
(
0
);
return
(
0
);
}
}
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
1462f0e6
...
@@ -238,6 +238,8 @@ uint8_t nr_generate_dci_top(nfapi_nr_dl_tti_pdcch_pdu *pdcch_pdu,
...
@@ -238,6 +238,8 @@ uint8_t nr_generate_dci_top(nfapi_nr_dl_tti_pdcch_pdu *pdcch_pdu,
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
],
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
],
0
,
NULL
);
0
,
NULL
);
polar_encoder_fast
((
uint64_t
*
)
pdcch_pdu_rel15
->
dci_pdu
.
Payload
[
d
],
encoder_output
,
n_RNTI
,
1
,
currentPtr
);
polar_encoder_fast
((
uint64_t
*
)
pdcch_pdu_rel15
->
dci_pdu
.
Payload
[
d
],
encoder_output
,
n_RNTI
,
1
,
currentPtr
);
printf
(
"DCI PDU: [0]->0x%lx
\t
[1]->0x%lx %d bits aggreg %d
\n
"
,
((
uint64_t
*
)
pdcch_pdu_rel15
->
dci_pdu
.
Payload
[
d
])[
0
],
((
uint64_t
*
)
pdcch_pdu_rel15
->
dci_pdu
.
Payload
[
d
])[
1
],
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
],
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
]);
#ifdef DEBUG_CHANNEL_CODING
#ifdef DEBUG_CHANNEL_CODING
printf
(
"polar rnti %x,length %d, L %d
\n
"
,
n_RNTI
,
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
],
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
]);
printf
(
"polar rnti %x,length %d, L %d
\n
"
,
n_RNTI
,
pdcch_pdu_rel15
->
dci_pdu
.
PayloadSizeBits
[
d
],
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
]);
printf
(
"DCI PDU: [0]->0x%lx
\t
[1]->0x%lx
\n
"
,
printf
(
"DCI PDU: [0]->0x%lx
\t
[1]->0x%lx
\n
"
,
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_prach.c
View file @
1462f0e6
...
@@ -81,6 +81,8 @@ void nr_fill_prach(PHY_VARS_gNB *gNB,
...
@@ -81,6 +81,8 @@ void nr_fill_prach(PHY_VARS_gNB *gNB,
void
init_prach_ru_list
(
RU_t
*
ru
)
{
void
init_prach_ru_list
(
RU_t
*
ru
)
{
//g_log->debug_mask |= PRACH;
AssertFatal
(
ru
!=
NULL
,
"ruis null
\n
"
);
AssertFatal
(
ru
!=
NULL
,
"ruis null
\n
"
);
for
(
int
i
=
0
;
i
<
NUMBER_OF_NR_RU_PRACH_MAX
;
i
++
)
ru
->
prach_list
[
i
].
frame
=-
1
;
for
(
int
i
=
0
;
i
<
NUMBER_OF_NR_RU_PRACH_MAX
;
i
++
)
ru
->
prach_list
[
i
].
frame
=-
1
;
pthread_mutex_init
(
&
ru
->
prach_list_mutex
,
NULL
);
pthread_mutex_init
(
&
ru
->
prach_list_mutex
,
NULL
);
...
@@ -382,6 +384,17 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -382,6 +384,17 @@ void rx_nr_prach_ru(RU_t *ru,
for
(
int
i
=
6
;
i
<
12
;
i
++
)
dft1536
(
prach2
+
(
3072
*
i
),
rxsigF
[
aa
]
+
(
3072
*
i
),
1
);
for
(
int
i
=
6
;
i
<
12
;
i
++
)
dft1536
(
prach2
+
(
3072
*
i
),
rxsigF
[
aa
]
+
(
3072
*
i
),
1
);
reps
+=
6
;
reps
+=
6
;
}
}
if
(
0
){
char
name
[
256
];
sprintf
(
name
,
"time.%d.%d.raw"
,
frame
,
slot
);
FILE
*
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
prach2
-
1536
*
4
,
1536
*
4
*
4
+
1536
*
4
,
1
,
f
);
fclose
(
f
);
sprintf
(
name
,
"freq.%d.%d.raw"
,
frame
,
slot
);
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
rxsigF
[
aa
],
1536
*
4
*
4
,
1
,
f
);
fclose
(
f
);
}
}
// mu==1
}
// mu==1
else
if
(
mu
==
2
)
AssertFatal
(
1
==
0
,
"Shouldn't get here
\n
"
);
else
if
(
mu
==
2
)
AssertFatal
(
1
==
0
,
"Shouldn't get here
\n
"
);
else
if
(
mu
==
3
)
AssertFatal
(
1
==
0
,
"Shouldn't get here
\n
"
);
else
if
(
mu
==
3
)
AssertFatal
(
1
==
0
,
"Shouldn't get here
\n
"
);
...
@@ -515,6 +528,13 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -515,6 +528,13 @@ void rx_nr_prach_ru(RU_t *ru,
}
}
memcpy
((
void
*
)
rxsigF2
,(
void
*
)
rxsigF_tmp
,
N_ZC
<<
2
);
memcpy
((
void
*
)
rxsigF2
,(
void
*
)
rxsigF_tmp
,
N_ZC
<<
2
);
if
(
0
){
char
name
[
256
];
sprintf
(
name
,
"sum.%d.%d.raw"
,
frame
,
slot
);
FILE
*
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
rxsigF_tmp
,
N_ZC
*
4
,
1
,
f
);
fclose
(
f
);
}
}
}
}
}
...
@@ -537,7 +557,7 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -537,7 +557,7 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
uint16_t
rootSequenceIndex
;
uint16_t
rootSequenceIndex
;
int
numrootSequenceIndex
;
int
numrootSequenceIndex
;
uint8_t
restricted_set
;
uint8_t
restricted_set
;
uint8_t
n_ra_prb
;
uint8_t
n_ra_prb
=
0
;
int16_t
*
prachF
=
NULL
;
int16_t
*
prachF
=
NULL
;
int
nb_rx
;
int
nb_rx
;
...
@@ -620,7 +640,19 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -620,7 +640,19 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
*
max_preamble_delay
=
0
;
*
max_preamble_delay
=
0
;
*
max_preamble
=
0
;
*
max_preamble
=
0
;
if
(
0
){
char
name
[
256
];
sprintf
(
name
,
"sum2.%d.%d.raw"
,
frame
,
subframe
);
FILE
*
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
rxsigF
[
0
],
N_ZC
*
4
,
1
,
f
);
fclose
(
f
);
}
for
(
preamble_index
=
0
;
preamble_index
<
64
;
preamble_index
++
)
{
for
(
preamble_index
=
0
;
preamble_index
<
64
;
preamble_index
++
)
{
{
int
en
=
dB_fixed
(
signal_energy
((
int32_t
*
)
&
rxsigF
[
0
][
0
],(
N_ZC
==
839
)
?
840
:
140
));
if
(
en
>
40
&&
preamble_index
==
0
)
LOG_I
(
PHY
,
"%d.%d: try preamble %d en %d
\n
"
,
frame
,
subframe
,
preamble_index
,
en
);
}
if
(
LOG_DEBUGFLAG
(
PRACH
)){
if
(
LOG_DEBUGFLAG
(
PRACH
)){
int
en
=
dB_fixed
(
signal_energy
((
int32_t
*
)
&
rxsigF
[
0
][
0
],(
N_ZC
==
839
)
?
840
:
140
));
int
en
=
dB_fixed
(
signal_energy
((
int32_t
*
)
&
rxsigF
[
0
][
0
],(
N_ZC
==
839
)
?
840
:
140
));
...
@@ -701,8 +733,9 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -701,8 +733,9 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
}
}
// Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex
// Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex
int
en
=
dB_fixed
(
signal_energy
((
int32_t
*
)
&
rxsigF
[
0
][
0
],
140
));
if
(
LOG_DEBUGFLAG
(
PRACH
))
{
if
(
LOG_DEBUGFLAG
(
PRACH
))
{
int
en
=
dB_fixed
(
signal_energy
((
int32_t
*
)
&
rxsigF
[
0
][
0
],
840
));
//
int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
if
(
en
>
60
)
LOG_I
(
PHY
,
"frame %d, subframe %d : preamble index %d, NCS %d, N_ZC/NCS %d: offset %d, preamble shift %d , en %d)
\n
"
,
if
(
en
>
60
)
LOG_I
(
PHY
,
"frame %d, subframe %d : preamble index %d, NCS %d, N_ZC/NCS %d: offset %d, preamble shift %d , en %d)
\n
"
,
frame
,
subframe
,
preamble_index
,
NCS
,
N_ZC
/
NCS
,
preamble_offset
,
preamble_shift
,
en
);
frame
,
subframe
,
preamble_index
,
NCS
,
N_ZC
/
NCS
,
preamble_offset
,
preamble_shift
,
en
);
}
}
...
@@ -765,6 +798,8 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -765,6 +798,8 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
for
(
i
=
0
;
i
<
NCS2
;
i
++
)
{
for
(
i
=
0
;
i
<
NCS2
;
i
++
)
{
lev
=
(
int32_t
)
prach_ifft
[(
preamble_shift2
+
i
)];
lev
=
(
int32_t
)
prach_ifft
[(
preamble_shift2
+
i
)];
levdB
=
dB_fixed_times10
(
lev
);
levdB
=
dB_fixed_times10
(
lev
);
//if (en>60) LOG_I(PHY, "preamble_index %d NCS2 %d i %d lev %d levdB %d preamble_shift2 %d\n", preamble_index, NCS2, i, lev, levdB, preamble_shift2);
if
(
levdB
>*
max_preamble_energy
)
{
if
(
levdB
>*
max_preamble_energy
)
{
*
max_preamble_energy
=
levdB
;
*
max_preamble_energy
=
levdB
;
*
max_preamble_delay
=
i
;
// Note: This has to be normalized to the 30.72 Ms/s sampling rate
*
max_preamble_delay
=
i
;
// Note: This has to be normalized to the 30.72 Ms/s sampling rate
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_prach_common.c
View file @
1462f0e6
...
@@ -94,7 +94,6 @@ void nr_fill_du(uint16_t N_ZC,uint16_t *prach_root_sequence_map)
...
@@ -94,7 +94,6 @@ void nr_fill_du(uint16_t N_ZC,uint16_t *prach_root_sequence_map)
nr_du
[
u
]
=
((
p
<
(
N_ZC
>>
1
))
?
p
:
(
N_ZC
-
p
));
nr_du
[
u
]
=
((
p
<
(
N_ZC
>>
1
))
?
p
:
(
N_ZC
-
p
));
}
}
}
}
...
@@ -159,6 +158,7 @@ void compute_nr_prach_seq(nfapi_nr_config_request_scf_t *config,
...
@@ -159,6 +158,7 @@ void compute_nr_prach_seq(nfapi_nr_config_request_scf_t *config,
for
(
k
=
0
;
k
<
N_ZC
;
k
++
)
{
for
(
k
=
0
;
k
<
N_ZC
;
k
++
)
{
// multiply by inverse of 2 (required since ru is exp[j 2\pi n])
// multiply by inverse of 2 (required since ru is exp[j 2\pi n])
X_u
[
i
][
k
]
=
((
uint32_t
*
)
nr_ru
)[(((
k
*
(
1
+
(
inv_u
*
k
)))
%
N_ZC
)
*
nr_ZC_inv
[
2
])
%
N_ZC
];
X_u
[
i
][
k
]
=
((
uint32_t
*
)
nr_ru
)[(((
k
*
(
1
+
(
inv_u
*
k
)))
%
N_ZC
)
*
nr_ZC_inv
[
2
])
%
N_ZC
];
if
(
k
<
16
)
printf
(
"u %d k %d I %d Q %d index %d
\n
"
,
u
,
k
,
(
short
)(
X_u
[
i
][
k
]
&
65535
),
(
short
)((
X_u
[
i
][
k
]
>>
16
)
&
65535
),
(((
k
*
(
1
+
(
inv_u
*
k
)))
%
N_ZC
)
*
70
)
%
N_ZC
);
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_ulsch.c
View file @
1462f0e6
...
@@ -88,6 +88,7 @@ void nr_ulsch_unscrambling(int16_t* llr,
...
@@ -88,6 +88,7 @@ void nr_ulsch_unscrambling(int16_t* llr,
uint32_t
Nid
,
uint32_t
Nid
,
uint32_t
n_RNTI
)
uint32_t
n_RNTI
)
{
{
printf
(
"nr_ulsch_unscrambling n_RNTI %d
\n
"
,
n_RNTI
);
uint8_t
reset
;
uint8_t
reset
;
uint32_t
x1
,
x2
,
s
=
0
;
uint32_t
x1
,
x2
,
s
=
0
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
View file @
1462f0e6
...
@@ -991,6 +991,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -991,6 +991,8 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
int
avg
[
4
];
int
avg
[
4
];
uint8_t
nodata_dmrs
=
1
;
// FIXME to be properly configured from fapi
uint8_t
nodata_dmrs
=
1
;
// FIXME to be properly configured from fapi
printf
(
"nr_rx_pusch frame %d nr_tti_rx %d symbol %d rel15_ul->start_symbol_index %d rel15_ul->nr_of_symbols %d
\n
"
,
frame
,
nr_tti_rx
,
symbol
,
rel15_ul
->
start_symbol_index
,
rel15_ul
->
nr_of_symbols
);
dmrs_symbol_flag
=
0
;
dmrs_symbol_flag
=
0
;
if
(
symbol
==
rel15_ul
->
start_symbol_index
){
if
(
symbol
==
rel15_ul
->
start_symbol_index
){
...
@@ -1034,6 +1036,15 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -1034,6 +1036,15 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
//--------------------- RBs extraction ---------------------
//--------------------- RBs extraction ---------------------
//----------------------------------------------------------
//----------------------------------------------------------
{
char
name
[
128
];
FILE
*
f
;
sprintf
(
name
,
"rxdataF.%d.%d.raw"
,
frame
,
symbol
);
f
=
fopen
(
name
,
"w"
);
fwrite
(
&
gNB
->
common_vars
.
rxdataF
[
0
][
symbol
*
frame_parms
->
ofdm_symbol_size
],
frame_parms
->
ofdm_symbol_size
*
4
,
1
,
f
);
fclose
(
f
);
}
if
(
nb_re_pusch
>
0
)
{
if
(
nb_re_pusch
>
0
)
{
nr_ulsch_extract_rbs_single
(
gNB
->
common_vars
.
rxdataF
,
nr_ulsch_extract_rbs_single
(
gNB
->
common_vars
.
rxdataF
,
...
@@ -1086,6 +1097,20 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
...
@@ -1086,6 +1097,20 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
rel15_ul
->
rb_size
,
rel15_ul
->
rb_size
,
gNB
->
pusch_vars
[
UE_id
]
->
log2_maxh
);
gNB
->
pusch_vars
[
UE_id
]
->
log2_maxh
);
{
char
name
[
128
];
FILE
*
f
;
sprintf
(
name
,
"rxdataF_ext.%d.%d.raw"
,
frame
,
symbol
);
f
=
fopen
(
name
,
"w"
);
int
nb_re_pusch
=
NR_NB_SC_PER_RB
*
rel15_ul
->
rb_size
;
fwrite
(
&
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_ext
[
0
][
symbol
*
nb_re_pusch
],
nb_re_pusch
*
4
,
1
,
f
);
fclose
(
f
);
sprintf
(
name
,
"rxdataF_comp.%d.%d.raw"
,
frame
,
symbol
);
f
=
fopen
(
name
,
"w"
);
fwrite
(
&
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_comp
[
0
][
symbol
*
nb_re_pusch
],
nb_re_pusch
*
4
,
1
,
f
);
fclose
(
f
);
}
#ifdef NR_SC_FDMA
#ifdef NR_SC_FDMA
nr_idft
(
&
((
uint32_t
*
)
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_ext
[
0
])[
symbol
*
rel15_ul
->
rb_size
*
NR_NB_SC_PER_RB
],
nb_re_pusch
);
nr_idft
(
&
((
uint32_t
*
)
gNB
->
pusch_vars
[
UE_id
]
->
rxdataF_ext
[
0
])[
symbol
*
rel15_ul
->
rb_size
*
NR_NB_SC_PER_RB
],
nb_re_pusch
);
#endif
#endif
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/nr_prach_procedures.c
View file @
1462f0e6
...
@@ -77,6 +77,8 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot,
...
@@ -77,6 +77,8 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot,
}
}
}
}
//ru = gNB->RU_list[0];
//rx_nr_prach_ru(ru, prach_pdu, frame, slot);
rx_nr_prach
(
gNB
,
rx_nr_prach
(
gNB
,
prach_pdu
,
prach_pdu
,
...
@@ -86,6 +88,8 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot,
...
@@ -86,6 +88,8 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot,
&
max_preamble_energy
[
0
],
&
max_preamble_energy
[
0
],
&
max_preamble_delay
[
0
]
&
max_preamble_delay
[
0
]
);
);
if
(
max_preamble_energy
[
0
]
>
200
)
printf
(
"ra %d.%d preamble %d energy %d delay %d gNB->measurements.prach_I0+100 %d
\n
"
,
frame
,
slot
,
max_preamble
[
0
],
max_preamble_energy
[
0
],
max_preamble_delay
[
0
],
gNB
->
measurements
.
prach_I0
+
100
);
LOG_D
(
PHY
,
"[RAPROC] Frame %d, slot %d : Most likely preamble %d, energy %d dB delay %d (prach_energy counter %d)
\n
"
,
LOG_D
(
PHY
,
"[RAPROC] Frame %d, slot %d : Most likely preamble %d, energy %d dB delay %d (prach_energy counter %d)
\n
"
,
frame
,
slot
,
frame
,
slot
,
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/nr_ru_procedures.c
View file @
1462f0e6
...
@@ -512,6 +512,16 @@ void nr_fep0(RU_t *ru, int first_half) {
...
@@ -512,6 +512,16 @@ void nr_fep0(RU_t *ru, int first_half) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX
+
proc
->
tti_rx
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX
+
proc
->
tti_rx
,
1
);
if
(
0
){
//printf("nr_fep0 proc->tti_rx %d f %dd\n", proc->tti_rx, proc->frame_rx);
char
name
[
128
];
FILE
*
f
;
sprintf
(
name
,
"rxdata.%d.%d.raw"
,
proc
->
frame_rx
,
proc
->
tti_rx
);
f
=
fopen
(
name
,
"w"
);
if
(
f
==
NULL
)
exit
(
1
);
fwrite
(
&
ru
->
common
.
rxdata
[
0
][
proc
->
tti_rx
*
23040
],
23040
*
4
,
1
,
f
);
fclose
(
f
);
}
// remove_7_5_kHz(ru,(slot&1)+(proc->tti_rx<<1));
// remove_7_5_kHz(ru,(slot&1)+(proc->tti_rx<<1));
for
(
l
=
start_symbol
;
l
<
end_symbol
;
l
++
)
{
for
(
l
=
start_symbol
;
l
<
end_symbol
;
l
++
)
{
for
(
aa
=
0
;
aa
<
fp
->
nb_antennas_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
fp
->
nb_antennas_rx
;
aa
++
)
{
...
@@ -648,6 +658,8 @@ void nr_fep_full(RU_t *ru, int slot) {
...
@@ -648,6 +658,8 @@ void nr_fep_full(RU_t *ru, int slot) {
// remove_7_5_kHz(ru,proc->tti_rx<<1);
// remove_7_5_kHz(ru,proc->tti_rx<<1);
// remove_7_5_kHz(ru,1+(proc->tti_rx<<1));
// remove_7_5_kHz(ru,1+(proc->tti_rx<<1));
printf
(
"nr_fep_full proc->tti_rx %d
\n
"
,
proc
->
tti_rx
);
for
(
l
=
0
;
l
<
fp
->
symbols_per_slot
;
l
++
)
{
for
(
l
=
0
;
l
<
fp
->
symbols_per_slot
;
l
++
)
{
for
(
aa
=
0
;
aa
<
fp
->
nb_antennas_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
fp
->
nb_antennas_rx
;
aa
++
)
{
nr_slot_fep_ul
(
fp
,
nr_slot_fep_ul
(
fp
,
...
...
This diff is collapsed.
Click to expand it.
openair2/GNB_APP/gnb_config.c
View file @
1462f0e6
...
@@ -237,6 +237,7 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
...
@@ -237,6 +237,7 @@ void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
]
=
0
;
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
]
=
0
;
for
(
int
i
=
0
;
i
<
8
;
i
++
)
for
(
int
i
=
0
;
i
<
8
;
i
++
)
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
]
|=
(((
ssbmap
>>
(
7
-
i
))
&
0x01
)
<<
i
);
scc
->
ssb_PositionsInBurst
->
choice
.
mediumBitmap
.
buf
[
0
]
|=
(((
ssbmap
>>
(
7
-
i
))
&
0x01
)
<<
i
);
//scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0] = 0x80; //ssbmap;
}
else
{
}
else
{
scc
->
ssb_PositionsInBurst
->
choice
.
longBitmap
.
size
=
8
;
scc
->
ssb_PositionsInBurst
->
choice
.
longBitmap
.
size
=
8
;
scc
->
ssb_PositionsInBurst
->
choice
.
longBitmap
.
bits_unused
=
0
;
scc
->
ssb_PositionsInBurst
->
choice
.
longBitmap
.
bits_unused
=
0
;
...
@@ -719,8 +720,12 @@ int RCconfig_nr_gtpu(void ) {
...
@@ -719,8 +720,12 @@ int RCconfig_nr_gtpu(void ) {
if
(
address
)
{
if
(
address
)
{
MessageDef
*
message
;
MessageDef
*
message
;
AssertFatal
((
message
=
itti_alloc_new_message
(
TASK_GNB_APP
,
GTPV1U_ENB_S1_REQ
))
!=
NULL
,
""
);
AssertFatal
((
message
=
itti_alloc_new_message
(
TASK_GNB_APP
,
GTPV1U_ENB_S1_REQ
))
!=
NULL
,
""
);
IPV4_STR_ADDR_TO_INT_NWBO
(
address
,
RC
.
gtpv1u_data_g
->
enb_ip_address_for_S1u_S12_S4_up
,
"BAD IP ADDRESS FORMAT FOR eNB S1_U !
\n
"
);
// IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" );
LOG_I
(
GTPU
,
"Configuring GTPu address : %s -> %x
\n
"
,
address
,
RC
.
gtpv1u_data_g
->
enb_ip_address_for_S1u_S12_S4_up
);
// LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up);
IPV4_STR_ADDR_TO_INT_NWBO
(
address
,
GTPV1U_ENB_S1_REQ
(
message
).
enb_ip_address_for_S1u_S12_S4_up
,
"BAD IP ADDRESS FORMAT FOR eNB S1_U !
\n
"
);
LOG_I
(
GTPU
,
"Configuring GTPu address : %s -> %x
\n
"
,
address
,
GTPV1U_ENB_S1_REQ
(
message
).
enb_ip_address_for_S1u_S12_S4_up
);
GTPV1U_ENB_S1_REQ
(
message
).
enb_port_for_S1u_S12_S4_up
=
gnb_port_for_S1U
;
GTPV1U_ENB_S1_REQ
(
message
).
enb_port_for_S1u_S12_S4_up
=
gnb_port_for_S1U
;
itti_send_msg_to_task
(
TASK_GTPV1_U
,
0
,
message
);
// data model is wrong: gtpu doesn't have enb_id (or module_id)
itti_send_msg_to_task
(
TASK_GTPV1_U
,
0
,
message
);
// data model is wrong: gtpu doesn't have enb_id (or module_id)
}
else
}
else
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
1462f0e6
...
@@ -1397,7 +1397,7 @@ void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
...
@@ -1397,7 +1397,7 @@ void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
uint8_t
N_sh_symb
=
pdsch_rel15
->
NrOfSymbols
;
uint8_t
N_sh_symb
=
pdsch_rel15
->
NrOfSymbols
;
uint8_t
Imcs
=
pdsch_rel15
->
mcsIndex
[
0
];
uint8_t
Imcs
=
pdsch_rel15
->
mcsIndex
[
0
];
uint16_t
N_RE_prime
=
NR_NB_SC_PER_RB
*
N_sh_symb
-
N_PRB_DMRS
-
N_PRB_oh
;
uint16_t
N_RE_prime
=
NR_NB_SC_PER_RB
*
N_sh_symb
-
N_PRB_DMRS
-
N_PRB_oh
;
LOG_
D
(
MAC
,
"N_RE_prime %d for %d symbols %d DMRS per PRB and %d overhead
\n
"
,
N_RE_prime
,
N_sh_symb
,
N_PRB_DMRS
,
N_PRB_oh
);
LOG_
I
(
MAC
,
"N_RE_prime %d for %d symbols %d DMRS per PRB and %d overhead
\n
"
,
N_RE_prime
,
N_sh_symb
,
N_PRB_DMRS
,
N_PRB_oh
);
uint16_t
R
;
uint16_t
R
;
uint32_t
TBS
=
0
;
uint32_t
TBS
=
0
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
1462f0e6
...
@@ -295,7 +295,7 @@ void nr_initiate_ra_proc(module_id_t module_idP,
...
@@ -295,7 +295,7 @@ void nr_initiate_ra_proc(module_id_t module_idP,
LOG_D
(
MAC
,
"%s() Msg2[%04d%d] SFN/SF:%04d%d
\n
"
,
__FUNCTION__
,
ra
->
Msg2_frame
,
ra
->
Msg2_slot
,
frameP
,
slotP
);
LOG_D
(
MAC
,
"%s() Msg2[%04d%d] SFN/SF:%04d%d
\n
"
,
__FUNCTION__
,
ra
->
Msg2_frame
,
ra
->
Msg2_slot
,
frameP
,
slotP
);
do
{
do
{
ra
->
rnti
=
(
taus
()
%
65518
)
+
1
;
ra
->
rnti
=
666
;
//
(taus() % 65518) + 1;
loop
++
;
loop
++
;
}
}
while
(
loop
!=
100
&&
!
(
find_nr_UE_id
(
module_idP
,
ra
->
rnti
)
==
-
1
&&
ra
->
rnti
>=
1
&&
ra
->
rnti
<=
65519
));
while
(
loop
!=
100
&&
!
(
find_nr_UE_id
(
module_idP
,
ra
->
rnti
)
==
-
1
&&
ra
->
rnti
>=
1
&&
ra
->
rnti
<=
65519
));
...
@@ -677,7 +677,7 @@ void nr_generate_Msg2(module_id_t module_idP,
...
@@ -677,7 +677,7 @@ void nr_generate_Msg2(module_id_t module_idP,
dci_formats
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
dci_formats
[
0
]
=
NR_DL_DCI_FORMAT_1_0
;
rnti_types
[
0
]
=
NR_RNTI_RA
;
rnti_types
[
0
]
=
NR_RNTI_RA
;
LOG_
D
(
MAC
,
"[RAPROC] DCI params: rnti %d, rnti_type %d, dci_format %d coreset params: FreqDomainResource %llx, start_symbol %d n_symb %d
\n
"
,
LOG_
I
(
MAC
,
"[RAPROC] DCI params: rnti %d, rnti_type %d, dci_format %d coreset params: FreqDomainResource %llx, start_symbol %d n_symb %d
\n
"
,
pdcch_pdu_rel15
->
dci_pdu
.
RNTI
[
0
],
pdcch_pdu_rel15
->
dci_pdu
.
RNTI
[
0
],
rnti_types
[
0
],
rnti_types
[
0
],
dci_formats
[
0
],
dci_formats
[
0
],
...
@@ -810,6 +810,8 @@ void nr_fill_rar(uint8_t Mod_idP,
...
@@ -810,6 +810,8 @@ void nr_fill_rar(uint8_t Mod_idP,
ul_grant
=
csi_req
|
(
tpc_command
<<
1
)
|
(
pusch_pdu
->
mcs_index
<<
4
)
|
(
ra
->
Msg3_tda_id
<<
8
)
|
(
f_alloc
<<
12
)
|
(
pusch_pdu
->
frequency_hopping
<<
26
);
ul_grant
=
csi_req
|
(
tpc_command
<<
1
)
|
(
pusch_pdu
->
mcs_index
<<
4
)
|
(
ra
->
Msg3_tda_id
<<
8
)
|
(
f_alloc
<<
12
)
|
(
pusch_pdu
->
frequency_hopping
<<
26
);
printf
(
"ul grant 0x%x mcs %d f_alloc %d tpc %d
\n
"
,
ul_grant
,
pusch_pdu
->
mcs_index
,
f_alloc
,
tpc_command
);
rar
->
UL_GRANT_1
=
(
uint8_t
)
(
ul_grant
>>
24
)
&
0x07
;
rar
->
UL_GRANT_1
=
(
uint8_t
)
(
ul_grant
>>
24
)
&
0x07
;
rar
->
UL_GRANT_2
=
(
uint8_t
)
(
ul_grant
>>
16
)
&
0xff
;
rar
->
UL_GRANT_2
=
(
uint8_t
)
(
ul_grant
>>
16
)
&
0xff
;
rar
->
UL_GRANT_3
=
(
uint8_t
)
(
ul_grant
>>
8
)
&
0xff
;
rar
->
UL_GRANT_3
=
(
uint8_t
)
(
ul_grant
>>
8
)
&
0xff
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
1462f0e6
...
@@ -84,7 +84,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
...
@@ -84,7 +84,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
if
(
mib_sdu_length
>
0
)
{
if
(
mib_sdu_length
>
0
)
{
LOG_
I
(
MAC
,
"Frame %d, slot %d: Adding BCH PDU in position %d (length %d)
\n
"
,
frameP
,
slotP
,
dl_req
->
nPDUs
,
mib_sdu_length
);
LOG_
D
(
MAC
,
"Frame %d, slot %d: Adding BCH PDU in position %d (length %d)
\n
"
,
frameP
,
slotP
,
dl_req
->
nPDUs
,
mib_sdu_length
);
if
((
frameP
&
1023
)
<
80
){
if
((
frameP
&
1023
)
<
80
){
LOG_I
(
MAC
,
"[gNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes
\n
"
,
module_idP
,
frameP
,
CC_id
,
mib_sdu_length
);
LOG_I
(
MAC
,
"[gNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes
\n
"
,
module_idP
,
frameP
,
CC_id
,
mib_sdu_length
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/nr_compute_tbs_common.c
View file @
1462f0e6
...
@@ -28,6 +28,8 @@
...
@@ -28,6 +28,8 @@
#include "common/utils/nr/nr_common.h"
#include "common/utils/nr/nr_common.h"
#include <math.h>
#include <math.h>
#include "LOG/log.h"
//Table 5.1.2.2-2
//Table 5.1.2.2-2
uint16_t
Tbstable_nr
[
INDEX_MAX_TBS_TABLE
]
=
{
24
,
32
,
40
,
48
,
56
,
64
,
72
,
80
,
88
,
96
,
104
,
112
,
120
,
128
,
136
,
144
,
152
,
160
,
168
,
176
,
184
,
192
,
208
,
224
,
240
,
256
,
272
,
288
,
304
,
320
,
336
,
352
,
368
,
384
,
408
,
432
,
456
,
480
,
504
,
528
,
552
,
576
,
608
,
640
,
672
,
704
,
736
,
768
,
808
,
848
,
888
,
928
,
984
,
1032
,
1064
,
1128
,
1160
,
1192
,
1224
,
1256
,
1288
,
1320
,
1352
,
1416
,
1480
,
1544
,
1608
,
1672
,
1736
,
1800
,
1864
,
1928
,
2024
,
2088
,
2152
,
2216
,
2280
,
2408
,
2472
,
2536
,
2600
,
2664
,
2728
,
2792
,
2856
,
2976
,
3104
,
3240
,
3368
,
3496
,
3624
,
3752
,
3824
};
uint16_t
Tbstable_nr
[
INDEX_MAX_TBS_TABLE
]
=
{
24
,
32
,
40
,
48
,
56
,
64
,
72
,
80
,
88
,
96
,
104
,
112
,
120
,
128
,
136
,
144
,
152
,
160
,
168
,
176
,
184
,
192
,
208
,
224
,
240
,
256
,
272
,
288
,
304
,
320
,
336
,
352
,
368
,
384
,
408
,
432
,
456
,
480
,
504
,
528
,
552
,
576
,
608
,
640
,
672
,
704
,
736
,
768
,
808
,
848
,
888
,
928
,
984
,
1032
,
1064
,
1128
,
1160
,
1192
,
1224
,
1256
,
1288
,
1320
,
1352
,
1416
,
1480
,
1544
,
1608
,
1672
,
1736
,
1800
,
1864
,
1928
,
2024
,
2088
,
2152
,
2216
,
2280
,
2408
,
2472
,
2536
,
2600
,
2664
,
2728
,
2792
,
2856
,
2976
,
3104
,
3240
,
3368
,
3496
,
3624
,
3752
,
3824
};
...
@@ -88,6 +90,8 @@ uint32_t nr_compute_tbs(uint16_t Qm,
...
@@ -88,6 +90,8 @@ uint32_t nr_compute_tbs(uint16_t Qm,
}
}
//printf("Ninfo %d nbp_re %d nb_re %d Qm %d, R %d, tbs %d\n", Ninfo, nbp_re, nb_re, Qm, R, nr_tbs);
//printf("Ninfo %d nbp_re %d nb_re %d Qm %d, R %d, tbs %d\n", Ninfo, nbp_re, nb_re, Qm, R, nr_tbs);
LOG_I
(
PHY
,
"Ninfo %d nbp_re %d nb_re %d Qm %d, R %d, tbs %d nb_symb_sch %d nb_dmrs_prb %d nb_rb_oh %d tb_scaling %d Nl %d
\n
"
,
Ninfo
,
nbp_re
,
nb_re
,
Qm
,
R
,
nr_tbs
,
nb_symb_sch
,
nb_dmrs_prb
,
nb_rb_oh
,
tb_scaling
,
Nl
);
return
nr_tbs
;
return
nr_tbs
;
}
}
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
1462f0e6
...
@@ -155,6 +155,14 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -155,6 +155,14 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
create_tunnel_req
.
sgw_S1u_teid
[
i
]
=
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
gtp_teid
;
create_tunnel_req
.
sgw_S1u_teid
[
i
]
=
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
gtp_teid
;
memcpy
(
&
create_tunnel_req
.
sgw_addr
[
i
],
&
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
sgw_addr
,
sizeof
(
transport_layer_addr_t
));
memcpy
(
&
create_tunnel_req
.
sgw_addr
[
i
],
&
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
sgw_addr
,
sizeof
(
transport_layer_addr_t
));
inde_list
[
i
]
=
i
;
inde_list
[
i
]
=
i
;
LOG_I
(
RRC
,
"S1-U tunnel: index %d target sgw ip %d.%d.%d.%d length %d gtp teid %u
\n
"
,
i
,
create_tunnel_req
.
sgw_addr
[
i
].
buffer
[
0
],
create_tunnel_req
.
sgw_addr
[
i
].
buffer
[
1
],
create_tunnel_req
.
sgw_addr
[
i
].
buffer
[
2
],
create_tunnel_req
.
sgw_addr
[
i
].
buffer
[
3
],
create_tunnel_req
.
sgw_addr
[
i
].
length
,
create_tunnel_req
.
sgw_S1u_teid
[
i
]);
}
}
//PM: Is this where we should extract the rnti from?
//PM: Is this where we should extract the rnti from?
create_tunnel_req
.
rnti
=
ue_context_p
->
ue_id_rnti
;
create_tunnel_req
.
rnti
=
ue_context_p
->
ue_id_rnti
;
...
@@ -175,6 +183,26 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -175,6 +183,26 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
e_rab_id
=
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
e_rab_id
;
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
e_rab_id
=
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
e_rab_id
;
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gtp_teid
=
create_tunnel_resp
.
enb_S1u_teid
[
i
];
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gtp_teid
=
create_tunnel_resp
.
enb_S1u_teid
[
i
];
memcpy
(
&
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
,
&
create_tunnel_resp
.
enb_addr
,
sizeof
(
transport_layer_addr_t
));
memcpy
(
&
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
,
&
create_tunnel_resp
.
enb_addr
,
sizeof
(
transport_layer_addr_t
));
//The length field in the X2AP targetting structure is expected in bits but the create_tunnel_resp returns the address length in bytes
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
length
=
create_tunnel_resp
.
enb_addr
.
length
*
8
;
LOG_I
(
RRC
,
"S1-U create_tunnel_resp tunnel: index %d target gNB ip %d.%d.%d.%d length %d gtp teid %u
\n
"
,
i
,
create_tunnel_resp
.
enb_addr
.
buffer
[
0
],
create_tunnel_resp
.
enb_addr
.
buffer
[
1
],
create_tunnel_resp
.
enb_addr
.
buffer
[
2
],
create_tunnel_resp
.
enb_addr
.
buffer
[
3
],
create_tunnel_resp
.
enb_addr
.
length
,
create_tunnel_resp
.
enb_S1u_teid
[
i
]);
LOG_I
(
RRC
,
"X2AP sGNB Addition Request: index %d target gNB ip %d.%d.%d.%d length %d gtp teid %u
\n
"
,
i
,
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
buffer
[
0
],
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
buffer
[
1
],
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
buffer
[
2
],
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
buffer
[
3
],
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
length
,
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gtp_teid
);
}
}
}
}
else
else
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
1462f0e6
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_generate_messages.c
View file @
1462f0e6
...
@@ -1748,8 +1748,8 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
...
@@ -1748,8 +1748,8 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
present
=
X2AP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPpresent
;
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
present
=
X2AP_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item__resource_configuration_PR_sgNBPDCPpresent
;
INT32_TO_OCTET_STRING
(
x2ap_sgnb_addition_req_ACK
->
e_rabs_admitted_tobeadded
[
i
].
gtp_teid
,
&
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
gTP_TEID
);
INT32_TO_OCTET_STRING
(
x2ap_sgnb_addition_req_ACK
->
e_rabs_admitted_tobeadded
[
i
].
gtp_teid
,
&
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
gTP_TEID
);
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
size
=
e_SCG_rabs_tobeadded
.
eNB
_addr
.
length
/
8
;
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
size
=
x2ap_sgnb_addition_req_ACK
->
e_rabs_admitted_tobeadded
[
i
].
gnb
_addr
.
length
/
8
;
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
bits_unused
=
e_SCG_rabs_tobeadded
.
eNB_addr
.
length
%
8
;
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
bits_unused
=
x2ap_sgnb_addition_req_ACK
->
e_rabs_admitted_tobeadded
[
i
].
gnb_addr
.
length
%
8
;
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
buf
=
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
buf
=
calloc
(
1
,
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
size
);
calloc
(
1
,
e_RABS_AdmittedToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_DL_GTPtunnelEndpoint
.
transportLayerAddress
.
size
);
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_handler.c
View file @
1462f0e6
...
@@ -1756,6 +1756,15 @@ int x2ap_gNB_handle_ENDC_sGNB_addition_request (instance_t instance,
...
@@ -1756,6 +1756,15 @@ int x2ap_gNB_handle_ENDC_sGNB_addition_request (instance_t instance,
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
length
=
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
length
=
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_UL_GTPtunnelEndpoint
.
transportLayerAddress
.
size
*
8
-
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_UL_GTPtunnelEndpoint
.
transportLayerAddress
.
bits_unused
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_UL_GTPtunnelEndpoint
.
transportLayerAddress
.
size
*
8
-
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_UL_GTPtunnelEndpoint
.
transportLayerAddress
.
bits_unused
;
LOG_I
(
RRC
,
"x2u tunnel: index %d target sgw ip %d.%d.%d.%d length %d gtp teid %u
\n
"
,
i
,
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
buffer
[
0
],
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
buffer
[
1
],
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
buffer
[
2
],
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
buffer
[
3
],
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
sgw_addr
.
length
,
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
gtp_teid
);
OCTET_STRING_TO_INT32
(
&
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_UL_GTPtunnelEndpoint
.
gTP_TEID
,
OCTET_STRING_TO_INT32
(
&
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
s1_UL_GTPtunnelEndpoint
.
gTP_TEID
,
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
gtp_teid
);
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
e_rabs_tobeadded
[
i
].
gtp_teid
);
}
}
...
...
This diff is collapsed.
Click to expand it.
openair3/GTPV1-U/gtpv1u_eNB.c
View file @
1462f0e6
...
@@ -943,6 +943,8 @@ gtpv1u_create_s1u_tunnel(
...
@@ -943,6 +943,8 @@ gtpv1u_create_s1u_tunnel(
memcpy
(
&
create_tunnel_resp_pP
->
enb_addr
.
buffer
,
memcpy
(
&
create_tunnel_resp_pP
->
enb_addr
.
buffer
,
&
RC
.
gtpv1u_data_g
->
enb_ip_address_for_S1u_S12_S4_up
,
&
RC
.
gtpv1u_data_g
->
enb_ip_address_for_S1u_S12_S4_up
,
sizeof
(
in_addr_t
));
sizeof
(
in_addr_t
));
LOG_I
(
GTPU
,
"Configured GTPu address : %x
\n
"
,
RC
.
gtpv1u_data_g
->
enb_ip_address_for_S1u_S12_S4_up
);
create_tunnel_resp_pP
->
enb_addr
.
length
=
sizeof
(
in_addr_t
);
create_tunnel_resp_pP
->
enb_addr
.
length
=
sizeof
(
in_addr_t
);
addrs_length_in_bytes
=
create_tunnel_req_pP
->
sgw_addr
[
i
].
length
/
8
;
addrs_length_in_bytes
=
create_tunnel_req_pP
->
sgw_addr
[
i
].
length
/
8
;
AssertFatal
((
addrs_length_in_bytes
==
4
)
||
AssertFatal
((
addrs_length_in_bytes
==
4
)
||
...
@@ -971,6 +973,15 @@ gtpv1u_create_s1u_tunnel(
...
@@ -971,6 +973,15 @@ gtpv1u_create_s1u_tunnel(
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_sgw
=
create_tunnel_req_pP
->
sgw_S1u_teid
[
i
];
gtpv1u_ue_data_p
->
bearers
[
eps_bearer_id
-
GTPV1U_BEARER_OFFSET
].
teid_sgw
=
create_tunnel_req_pP
->
sgw_S1u_teid
[
i
];
gtpv1u_ue_data_p
->
num_bearers
++
;
gtpv1u_ue_data_p
->
num_bearers
++
;
create_tunnel_resp_pP
->
enb_S1u_teid
[
i
]
=
s1u_teid
;
create_tunnel_resp_pP
->
enb_S1u_teid
[
i
]
=
s1u_teid
;
LOG_I
(
GTPU
,
"Copied to create_tunnel_resp tunnel: index %d target gNB ip %d.%d.%d.%d length %d gtp teid %u
\n
"
,
i
,
create_tunnel_resp_pP
->
enb_addr
.
buffer
[
0
],
create_tunnel_resp_pP
->
enb_addr
.
buffer
[
1
],
create_tunnel_resp_pP
->
enb_addr
.
buffer
[
2
],
create_tunnel_resp_pP
->
enb_addr
.
buffer
[
3
],
create_tunnel_resp_pP
->
enb_addr
.
length
,
create_tunnel_resp_pP
->
enb_S1u_teid
[
i
]);
}
else
{
}
else
{
create_tunnel_resp_pP
->
enb_S1u_teid
[
i
]
=
0
;
create_tunnel_resp_pP
->
enb_S1u_teid
[
i
]
=
0
;
create_tunnel_resp_pP
->
status
=
0xFF
;
create_tunnel_resp_pP
->
status
=
0xFF
;
...
...
This diff is collapsed.
Click to expand it.
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